diff --git a/CMakeLists.txt b/CMakeLists.txt index 67b1f438d..efaa14e6f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,7 +41,6 @@ set(STRATAGUS_VERSION ${CMAKE_PROJECT_VERSION}) add_subdirectory(archimedes) add_subdirectory(src/third_party/lua-5.1.5) -add_subdirectory(src/third_party/toluapp) add_subdirectory(src/third_party/zlib) # Stratagus sources @@ -55,7 +54,7 @@ include_directories( src/stratagus src/third_party src/third_party/lua-5.1.5/src - src/third_party/toluapp/include + src/third_party/lua-5.1.5/toluapp-simple src/third_party/xbrz/include src/third_party/zlib ${CMAKE_CURRENT_BINARY_DIR} @@ -1459,7 +1458,7 @@ set(wyrmgus_LIBS ${SDL2_MIXER_LIBRARY} lua51_static zlibstatic - toluapp_lib + toluapp51 ${QT_LIBRARIES} archimedes ) diff --git a/src/third_party/lua-5.1.5/CMakeLists.txt b/src/third_party/lua-5.1.5/CMakeLists.txt index 029facf2e..998fc7742 100644 --- a/src/third_party/lua-5.1.5/CMakeLists.txt +++ b/src/third_party/lua-5.1.5/CMakeLists.txt @@ -4,4 +4,4 @@ project(lua) set(CMAKE_POSITION_INDEPENDENT_CODE ON) add_subdirectory(src/) - +add_subdirectory(toluapp-simple/) diff --git a/src/third_party/lua-5.1.5/toluapp-simple/CMakeLists.txt b/src/third_party/lua-5.1.5/toluapp-simple/CMakeLists.txt new file mode 100644 index 000000000..705b5516b --- /dev/null +++ b/src/third_party/lua-5.1.5/toluapp-simple/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.1) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED True) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) + +set(TOLUA_BIN_SRC +tolua.c +toluabind.c +) + +set(TOLUA_LIB_SRC +tolua_event.c +tolua_is.c +tolua_map.c +tolua_push.c +tolua_to.c +) + + +add_library(toluapp51 STATIC "${TOLUA_LIB_SRC}") +add_library(toluapp51_shared SHARED "${TOLUA_LIB_SRC}") +set_target_properties(toluapp51_shared PROPERTIES OUTPUT_NAME "toluapp51") +add_executable(toluapp "${TOLUA_BIN_SRC}" "${TOLUA_LIB_SRC}") + +if(MSVC) + target_link_libraries(toluapp51 PUBLIC "${PROJECT_BINARY_DIR}/$/lua51.lib" ${CMAKE_DL_LIBS}) + target_link_libraries(toluapp51_shared PUBLIC "${PROJECT_BINARY_DIR}/$/lua51.lib" ${CMAKE_DL_LIBS}) + target_link_libraries(toluapp PUBLIC "${PROJECT_BINARY_DIR}/$/lua51.lib" ${CMAKE_DL_LIBS}) +else() + target_link_libraries(toluapp51 PUBLIC "${PROJECT_BINARY_DIR}/liblua51.a" ${CMAKE_DL_LIBS}) + target_link_libraries(toluapp51_shared PUBLIC "${PROJECT_BINARY_DIR}/liblua51.a" ${CMAKE_DL_LIBS}) + target_link_libraries(toluapp PUBLIC "${PROJECT_BINARY_DIR}/liblua51.a" ${CMAKE_DL_LIBS}) +endif(MSVC) + +add_custom_command(TARGET toluapp51 POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/toluapp-simple/tolua++.h" ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) + +set_target_properties(toluapp PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} + ) + +set_target_properties(toluapp51 PROPERTIES LINKER_LANGUAGE CXX) +set_target_properties(toluapp51_shared PROPERTIES LINKER_LANGUAGE CXX) +set_target_properties(toluapp PROPERTIES LINKER_LANGUAGE CXX) + +add_dependencies(toluapp51_shared lua51 lua51_shared lua51_static) +add_dependencies(toluapp51 lua51 lua51_shared lua51_static) +add_dependencies(toluapp lua51 lua51_shared lua51_static) + +include_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) diff --git a/src/third_party/toluapp/COPYRIGHT b/src/third_party/lua-5.1.5/toluapp-simple/COPYRIGHT similarity index 100% rename from src/third_party/toluapp/COPYRIGHT rename to src/third_party/lua-5.1.5/toluapp-simple/COPYRIGHT diff --git a/src/third_party/toluapp/include/tolua++.h b/src/third_party/lua-5.1.5/toluapp-simple/tolua++.h similarity index 100% rename from src/third_party/toluapp/include/tolua++.h rename to src/third_party/lua-5.1.5/toluapp-simple/tolua++.h diff --git a/src/third_party/toluapp/src/bin/tolua.c b/src/third_party/lua-5.1.5/toluapp-simple/tolua.c similarity index 100% rename from src/third_party/toluapp/src/bin/tolua.c rename to src/third_party/lua-5.1.5/toluapp-simple/tolua.c diff --git a/src/third_party/toluapp/src/lib/tolua_event.c b/src/third_party/lua-5.1.5/toluapp-simple/tolua_event.c similarity index 100% rename from src/third_party/toluapp/src/lib/tolua_event.c rename to src/third_party/lua-5.1.5/toluapp-simple/tolua_event.c diff --git a/src/third_party/toluapp/src/lib/tolua_event.h b/src/third_party/lua-5.1.5/toluapp-simple/tolua_event.h similarity index 100% rename from src/third_party/toluapp/src/lib/tolua_event.h rename to src/third_party/lua-5.1.5/toluapp-simple/tolua_event.h diff --git a/src/third_party/toluapp/src/lib/tolua_is.c b/src/third_party/lua-5.1.5/toluapp-simple/tolua_is.c similarity index 100% rename from src/third_party/toluapp/src/lib/tolua_is.c rename to src/third_party/lua-5.1.5/toluapp-simple/tolua_is.c diff --git a/src/third_party/toluapp/src/lib/tolua_map.c b/src/third_party/lua-5.1.5/toluapp-simple/tolua_map.c similarity index 100% rename from src/third_party/toluapp/src/lib/tolua_map.c rename to src/third_party/lua-5.1.5/toluapp-simple/tolua_map.c diff --git a/src/third_party/toluapp/src/lib/tolua_push.c b/src/third_party/lua-5.1.5/toluapp-simple/tolua_push.c similarity index 100% rename from src/third_party/toluapp/src/lib/tolua_push.c rename to src/third_party/lua-5.1.5/toluapp-simple/tolua_push.c diff --git a/src/third_party/toluapp/src/lib/tolua_to.c b/src/third_party/lua-5.1.5/toluapp-simple/tolua_to.c similarity index 100% rename from src/third_party/toluapp/src/lib/tolua_to.c rename to src/third_party/lua-5.1.5/toluapp-simple/tolua_to.c diff --git a/src/third_party/toluapp/src/bin/toluabind.c b/src/third_party/lua-5.1.5/toluapp-simple/toluabind.c similarity index 100% rename from src/third_party/toluapp/src/bin/toluabind.c rename to src/third_party/lua-5.1.5/toluapp-simple/toluabind.c diff --git a/src/third_party/toluapp/src/bin/toluabind.h b/src/third_party/lua-5.1.5/toluapp-simple/toluabind.h similarity index 100% rename from src/third_party/toluapp/src/bin/toluabind.h rename to src/third_party/lua-5.1.5/toluapp-simple/toluabind.h diff --git a/src/third_party/toluapp/src/bin/toluabind_default.h b/src/third_party/lua-5.1.5/toluapp-simple/toluabind_default.h similarity index 100% rename from src/third_party/toluapp/src/bin/toluabind_default.h rename to src/third_party/lua-5.1.5/toluapp-simple/toluabind_default.h diff --git a/src/third_party/toluapp/.travis.yml b/src/third_party/toluapp/.travis.yml deleted file mode 100644 index 57493ebbc..000000000 --- a/src/third_party/toluapp/.travis.yml +++ /dev/null @@ -1,51 +0,0 @@ -# -# LuaDist Travis-CI Hook -# - -# We assume C build environments -language: C - -# Try using multiple Lua Implementations -env: - - TOOL="gcc" # Use native compiler (GCC usually) - - TOOL="clang" # Use clang - - TOOL="i686-w64-mingw32" # 32bit MinGW - - TOOL="x86_64-w64-mingw32" # 64bit MinGW - - TOOL="arm-linux-gnueabihf" # ARM hard-float (hf), linux - -# Crosscompile builds may fail -matrix: - allow_failures: - - env: TOOL="i686-w64-mingw32" - - env: TOOL="x86_64-w64-mingw32" - - env: TOOL="arm-linux-gnueabihf" - -# Install dependencies -install: - - git clone git://github.com/LuaDist/Tools.git ~/_tools - - ~/_tools/travis/travis install - -# Bootstap -before_script: - - ~/_tools/travis/travis bootstrap - -# Build the module -script: - - ~/_tools/travis/travis build - -# Execute additional tests or commands -after_script: - - ~/_tools/travis/travis test - -# Only watch the master branch -branches: - only: - - master - -# Notify the LuaDist Dev group if needed -notifications: - recipients: - - luadist-dev@googlegroups.com - email: - on_success: change - on_failure: always diff --git a/src/third_party/toluapp/CMakeLists.txt b/src/third_party/toluapp/CMakeLists.txt deleted file mode 100644 index 2b1bb9dc5..000000000 --- a/src/third_party/toluapp/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2007-2012 LuaDist. -# Created by Peter Kapec -# Redistribution and use of this file is allowed according to the terms of the MIT license. -# For details see the COPYRIGHT file distributed with LuaDist. -# Please note that the package source code is licensed under its own license. - -project ( toluapp C ) -cmake_minimum_required ( VERSION 2.8 ) -include ( cmake/dist.cmake ) - -include_directories ( include src/lib ../lua-5.1.5/src) - -# Build lib -file ( GLOB SRC_LIBTOLUAPP src/lib/*.c ) -if ( MSVC ) - set ( DEF_FILE libtoluapp.def ) -endif ( ) - -add_library ( toluapp_lib ${SRC_LIBTOLUAPP} ${DEF_FILE} ) -target_link_libraries ( toluapp_lib lua51_static ) -set_target_properties ( toluapp_lib PROPERTIES OUTPUT_NAME toluapp CLEAN_DIRECT_OUTPUT - 1 ) - -# Build app -include_directories ( src/bin ) -set ( SRC_TOLUA src/bin/tolua.c src/bin/toluabind.c ) -add_executable ( toluapp ${SRC_TOLUA} ) -target_link_libraries ( toluapp toluapp_lib lua51_static ) - -# Install -install_library ( toluapp_lib ) -install_executable ( toluapp ) -install_header ( include/ ) -install_data ( README INSTALL ) -install_doc ( doc/ ) diff --git a/src/third_party/toluapp/INSTALL b/src/third_party/toluapp/INSTALL deleted file mode 100644 index 5ee408f9e..000000000 --- a/src/third_party/toluapp/INSTALL +++ /dev/null @@ -1,42 +0,0 @@ -This version of tolua++ uses SCons to compile (http://www.scons.org). SCons uses -pythin. If you don't want to install python, check "Installation without scons" -below. - -* Installation - - 1. Edit the "config" file for your platform to suit your environment, - if at all necessary (for cygwin, mingw, BSD and mac OSX use - 'config_posix') - 2. Then, type "scons". - - You can use 'scons -h' to see a list of available command line options. - -* What you get - - If "scons" succeeds, you get: - * an executable to generate binding code in ./bin; - * the C library to be linked in your application in ./lib; - * the include file needed to compile your application in ./include. - These are the only directories you need for development, besides Lua. - - You can use 'scons install' to install the files, see the 'prefix' option. - -* Installation without scons - - The instructions for building tolua++ without scons depend on the particular - compiler you are using. - The simplest way is to create a folder with all .c and .h files except - 'toluabind_default.c', and then create a project for the executable and the - library, as follows: - - tolua.exe: all *.c *.h in src/bin (except toluabind_default.c) - tolua.lib: all *.c *.h in src/lib. - -* Installation with Microsoft Visual Studio - - The directory 'win32' contains project files for Microsoft Visual Studio 7 - (contributed by Makoto Hamanaka). The project has 4 different build options: - withLua50_Release, withLua51_Release, withLua50_Debug and withLua51_Debug. - They all expect the lua library names used by the LuaBinaries packages - (http://luabinaries.luaforge.net/). The resulting files are built on /lib and - /bin (for the library and tolua++.exe). diff --git a/src/third_party/toluapp/Makefile b/src/third_party/toluapp/Makefile deleted file mode 100644 index 92ded6c4e..000000000 --- a/src/third_party/toluapp/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# makefile for tolua hierarchy - -all: - @echo "Makefile is deprecated ;)" - @echo "see INSTALL for details on how to build tolua++" diff --git a/src/third_party/toluapp/README b/src/third_party/toluapp/README deleted file mode 100644 index cee381fb3..000000000 --- a/src/third_party/toluapp/README +++ /dev/null @@ -1,30 +0,0 @@ -This is tolua++-1.0 - -* What is tolua++? - tolua++ is an extension of toLua, a tool to integrate C/C++ code with - Lua. tolua++ includes new features oriented to c++, such as class - templates. - - tolua is a tool that greatly simplifies the integration of C/C++ code - with Lua. Based on a "cleaned" header file, tolua automatically generates - the binding code to access C/C++ features from Lua. Using Lua-5.0 API and - metamethod facilities, the current version automatically maps C/C++ - constants, external variables, functions, namespace, classes, and methods - to Lua. It also provides facilities to create Lua modules. - -* Availability - - tolua++ is freely available for both academic and commercial purposes. - See COPYRIGHT for details. - - tolua++ can be downloaded from the sites below: - http://www.codenix.com/~tolua/ - -* Installation - See INSTALL. - -* Contacting the author - tolua has been designed and implemented by Waldemar Celes. - tolua++ is maintained by Ariel Manzur. - Send your comments, bug reports and anything else to - tolua@codenix.com diff --git a/src/third_party/toluapp/README-5.1 b/src/third_party/toluapp/README-5.1 deleted file mode 100644 index f06f785e3..000000000 --- a/src/third_party/toluapp/README-5.1 +++ /dev/null @@ -1,50 +0,0 @@ -Compiling for lua 5.1 ---------------------- - -Starting from version 1.0.8pre1, tolua++ can be compiled with both lua 5.0 and -5.1. Both versions will output the same code, and the C API (tolua++.h) is the -same. - -The build system is not yet ready to detect/decide when to compile for 5.1, -the easiest way right now is to add a file called 'custom.py' on the root of -the package, with the following: - -## BEGIN custom.py - -CCFLAGS = ['-I/usr/local/include/lua5.1', '-O2', '-ansi'] -LIBPATH = ['/usr/local/lib'] -LIBS = ['lua5.1', 'dl', 'm'] -tolua_bin = 'tolua++5.1' -tolua_lib = 'tolua++5.1' -TOLUAPP = 'tolua++5.1' - -## END custom.py - -This will build the binary as 'tolua++5.1' and the library as 'libtolua++5.1.a' -(taken from tolua_bin and tolua_lib), and take the lua headers and libraries -from /usr/local/include/lua5.1 and /usr/local/lib. It will also link with -'-llua5.1'. Modify the parameters acording to your system. - -Compatibility -------------- - -There are a couple of things to keep in mind when running code inside tolua -using the -L option: - -* `...' and arg: you can still use 'arg' on 5.1, this is done automatically by -adding the 'arg' declaration to functions on files loaded with dofile. - -For example, the line: - -function foo( ... ) - -becomes - -function foo( ... ) local arg = {n=select('#', ...), ...}; - -This lets you use the same code on both versions without having to make any -modifications. - -* keep in mind that there are slight differences on the way string.gsub works, -and the original version of the function is always kept, so it will behave -diffently depending on which version of lua you're using. diff --git a/src/third_party/toluapp/SConstruct b/src/third_party/toluapp/SConstruct deleted file mode 100644 index 5c1e7746e..000000000 --- a/src/third_party/toluapp/SConstruct +++ /dev/null @@ -1,180 +0,0 @@ -import sys; -import os - -tools = ['default'] -if os.name == 'nt': - tools = ['mingw'] - -env = Environment(tools = tools) - -options_file = None -if sys.platform == 'linux2': - options_file = "linux" - -elif 'msvc' in env['TOOLS']: - options_file = "msvc" -else: - options_file = "posix" - -opts = Options(["config_"+options_file+".py", "custom.py", "custom_"+options_file+".py"], ARGUMENTS) -opts.Add('CC', 'The C compiler.') -opts.Add('CXX', 'The C++ compiler (for the tests)') -opts.Add('CCFLAGS', 'Flags for the compiler.', ['-O2', '-Wall']) -opts.Add('LINK', 'The linker.') -opts.Add('LINKFLAGS', 'Linker flags.', []) -opts.Add('no_cygwin', 'Use -mno-cygwin to build using the mingw compiler on cygwin', 0) -opts.Add('LIBS', 'libraries', []) -opts.Add('LIBPATH', 'library path', []) - -opts.Add('tolua_bin', 'the resulting binary', 'tolua++') -opts.Add('tolua_lib', 'the resulting library', 'tolua++') -opts.Add('TOLUAPP', 'the name of the tolua++ binary (to use with built_dev=1)', 'tolua++') - -opts.Add('prefix', 'The installation prefix') -opts.Add('build_dev', 'Build for development (uses tolua to rebuild toluabind.c with the embeded scripts', 0) -opts.Add('build_failsafe', "Build using 'factory default' toluabind file (in case build_dev fails)", 0) -opts.Add('ENV', 'The environment variables') -opts.Add('shared', 'Build a shared object', False) -opts.Update(env) -Help(opts.GenerateHelpText(env)) - -def save_config(target, source, env): - opts.Save('custom.py', env) - -cust = env.Command('custom.py', [], save_config) -env.Alias('configure', [cust]) - -env['TOLUAPP_BOOTSTRAP'] = env['tolua_bin']+"_bootstrap"+env['PROGSUFFIX'] - -env['build_dev'] = int(env['build_dev']) - -## detecting the install directory on win32 -if 'msvc' in env['TOOLS'] and not (env.has_key('prefix') or env['prefix']): - - if env['MSVS'].has_key('PLATFORMSDKDIR'): - env['prefix'] = env['MSVS']['PLATFORMSDKDIR'] - - -SConscriptChdir(0) - -############ helper builders -def pkg_scan_dep(self, target, source): - - import re - - ## TODO: detectar si el archivo existe antes de abrirlo asi nomas - pkg = open(source, "rt") - - for linea in pkg.xreadlines(): - dep = re.search("^[\t\w]*\$[cphl]file\s*\"([^\"]+)\"", linea) - if dep: - self.Depends(target, '#' + dep.groups()[0]); - - if dep.groups()[0][-4:] == '.pkg': - # recursividad - self.pkg_scan_dep(target, dep.groups()[0]) - - -def make_tolua_code(self, target, source, pkgname = None, bootstrap = False, use_own = False, use_typeid=None): - - ptarget = Dir('.').path + '/' + target - psource = Dir('.').path + '/' + source - header = target[:-2] + '.h' - pheader = Dir('.').path + '/' + header - - tolua = "" - if bootstrap: - if os.name == 'nt': - tolua = 'bin\\'+self['TOLUAPP_BOOTSTRAP'] - else: - tolua = 'bin/'+self['TOLUAPP_BOOTSTRAP'] - print("********* tolua is ", tolua) - else: - if use_own: - if 'msvc' in self['TOOLS']: - tolua = 'bin\\$tolua_bin' - else: - tolua = 'bin/$tolua_bin' - else: - tolua = "$TOLUAPP" - - if pkgname: - pkgname = ' -n '+pkgname - else: - pkgname = '' - - if use_typeid: - tolua = tolua+' -t' - - comando = tolua + ' -C -H ' + pheader + ' -o ' + ptarget + pkgname + ' ' + psource - command = self.Command(target, source, comando) - - self.SideEffect(header, target) - self.Depends(target, source) - - self.pkg_scan_dep(target, psource) - - if bootstrap: - self.Depends(target, "#/bin/$TOLUAPP_BOOTSTRAP") - if use_own: - self.Depends(target, "#/bin/$tolua_bin") - - return command - - -env.__class__.LuaBinding = make_tolua_code; -env.__class__.pkg_scan_dep = pkg_scan_dep; - -def print_install_error(target, source, env): - - msg = """Error: no install prefix was specified, or detected. - -you can use the 'prefix' option on command line to specify one. Examples: - - scons prefix=/usr/local install - -or on Windows: - - scons "prefix=c:\\program files\\visual basic" install - -Files will be installed on /bin, /lib and /include -""" - import SCons.Errors - raise SCons.Errors.UserError(msg) - -########### end of helper builders - -env['CPPPATH'] = '#/include' -env['LIBPATH'] = ['#/lib'] + env['LIBPATH'] - -if env['no_cygwin']: - - env['CCFLAGS'] += ['-mno-cygwin'] - env['LINKFLAGS'] += ['-mno-cygwin'] - -import string - -Export('env') - -SConscript('src/lib/SCsub') -SConscript('src/bin/SCsub') -#SConscript('src/lib/SCsub') -SConscript('src/tests/SCsub') - -env.Alias('all', [env.bin_target, env.lib_target]) -env.Alias('test', env.test_targets) - -Default('all') - -if env['prefix']: - env.Install(env['prefix']+'/bin', env.bin_target) - env.Install(env['prefix']+'/lib', env.lib_target) - env.Install(env['prefix']+'/include', '#include/tolua++.h') - - env.Alias('install', [env['prefix']+'/bin', env['prefix']+'/include', env['prefix']+'/lib']) -else: - env.Command('install', [], print_install_error) - env.Depends('install', 'all') - -env.Command('deb', [], 'dpkg-buildpackage -I.svn -Icustom.py -Itoluabind_dev.c -Itoluabind_dev.h -Itoluabind_default.o -Icustom.lua -I.sconsign', ENV=os.environ) - diff --git a/src/third_party/toluapp/cmake/FindLua.cmake b/src/third_party/toluapp/cmake/FindLua.cmake deleted file mode 100644 index 7fb7ca3f4..000000000 --- a/src/third_party/toluapp/cmake/FindLua.cmake +++ /dev/null @@ -1,118 +0,0 @@ -# Locate Lua library -# This module defines -# LUA_EXECUTABLE, if found -# LUA_FOUND, if false, do not try to link to Lua -# LUA_LIBRARIES -# LUA_INCLUDE_DIR, where to find lua.h -# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8) -# -# Note that the expected include convention is -# #include "lua.h" -# and not -# #include -# This is because, the lua location is not standardized and may exist -# in locations other than lua/ - -#============================================================================= -# Copyright 2007-2009 Kitware, Inc. -# Modified to support Lua 5.2 by LuaDist 2012 -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) -# -# The required version of Lua can be specified using the -# standard syntax, e.g. FIND_PACKAGE(Lua 5.1) -# Otherwise the module will search for any available Lua implementation - -# Always search for non-versioned lua first (recommended) -SET(_POSSIBLE_LUA_INCLUDE include include/lua) -SET(_POSSIBLE_LUA_EXECUTABLE lua) -SET(_POSSIBLE_LUA_LIBRARY lua) - -# Determine possible naming suffixes (there is no standard for this) -IF(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR) - SET(_POSSIBLE_SUFFIXES "${Lua_FIND_VERSION_MAJOR}${Lua_FIND_VERSION_MINOR}" "${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR}" "-${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR}") -ELSE(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR) - SET(_POSSIBLE_SUFFIXES "52" "5.2" "-5.2" "51" "5.1" "-5.1") -ENDIF(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR) - -# Set up possible search names and locations -FOREACH(_SUFFIX ${_POSSIBLE_SUFFIXES}) - LIST(APPEND _POSSIBLE_LUA_INCLUDE "include/lua${_SUFFIX}") - LIST(APPEND _POSSIBLE_LUA_EXECUTABLE "lua${_SUFFIX}") - LIST(APPEND _POSSIBLE_LUA_LIBRARY "lua${_SUFFIX}") -ENDFOREACH(_SUFFIX) - -# Find the lua executable -FIND_PROGRAM(LUA_EXECUTABLE - NAMES ${_POSSIBLE_LUA_EXECUTABLE} -) - -# Find the lua header -FIND_PATH(LUA_INCLUDE_DIR lua.h - HINTS - $ENV{LUA_DIR} - PATH_SUFFIXES ${_POSSIBLE_LUA_INCLUDE} - PATHS - ~/Library/Frameworks - /Library/Frameworks - /usr/local - /usr - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave - /opt -) - -# Find the lua library -FIND_LIBRARY(LUA_LIBRARY - NAMES ${_POSSIBLE_LUA_LIBRARY} - HINTS - $ENV{LUA_DIR} - PATH_SUFFIXES lib64 lib - PATHS - ~/Library/Frameworks - /Library/Frameworks - /usr/local - /usr - /sw - /opt/local - /opt/csw - /opt -) - -IF(LUA_LIBRARY) - # include the math library for Unix - IF(UNIX AND NOT APPLE) - FIND_LIBRARY(LUA_MATH_LIBRARY m) - SET( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries") - # For Windows and Mac, don't need to explicitly include the math library - ELSE(UNIX AND NOT APPLE) - SET( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") - ENDIF(UNIX AND NOT APPLE) -ENDIF(LUA_LIBRARY) - -# Determine Lua version -IF(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h") - FILE(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"") - - STRING(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}") - UNSET(lua_version_str) -ENDIF() - -INCLUDE(FindPackageHandleStandardArgs) -# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if -# all listed variables are TRUE -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua - REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR - VERSION_VAR LUA_VERSION_STRING) - -MARK_AS_ADVANCED(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY LUA_EXECUTABLE) - diff --git a/src/third_party/toluapp/cmake/dist.cmake b/src/third_party/toluapp/cmake/dist.cmake deleted file mode 100644 index 310ef94cc..000000000 --- a/src/third_party/toluapp/cmake/dist.cmake +++ /dev/null @@ -1,321 +0,0 @@ -# LuaDist CMake utility library. -# Provides sane project defaults and macros common to LuaDist CMake builds. -# -# Copyright (C) 2007-2012 LuaDist. -# by David Manura, Peter Drahoナ。 -# Redistribution and use of this file is allowed according to the terms of the MIT license. -# For details see the COPYRIGHT file distributed with LuaDist. -# Please note that the package source code is licensed under its own license. - -## Extract information from dist.info -if ( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/dist.info ) - message ( FATAL_ERROR - "Missing dist.info file (${CMAKE_CURRENT_SOURCE_DIR}/dist.info)." ) -endif () -file ( READ ${CMAKE_CURRENT_SOURCE_DIR}/dist.info DIST_INFO ) -if ( "${DIST_INFO}" STREQUAL "" ) - message ( FATAL_ERROR "Failed to load dist.info." ) -endif () -# Reads field `name` from dist.info string `DIST_INFO` into variable `var`. -macro ( _parse_dist_field name var ) - string ( REGEX REPLACE ".*${name}[ \t]?=[ \t]?[\"']([^\"']+)[\"'].*" "\\1" - ${var} "${DIST_INFO}" ) - if ( ${var} STREQUAL DIST_INFO ) - message ( FATAL_ERROR "Failed to extract \"${var}\" from dist.info" ) - endif () -endmacro () -# -_parse_dist_field ( name DIST_NAME ) -_parse_dist_field ( version DIST_VERSION ) -_parse_dist_field ( license DIST_LICENSE ) -_parse_dist_field ( author DIST_AUTHOR ) -_parse_dist_field ( maintainer DIST_MAINTAINER ) -_parse_dist_field ( url DIST_URL ) -_parse_dist_field ( desc DIST_DESC ) -message ( "DIST_NAME: ${DIST_NAME}") -message ( "DIST_VERSION: ${DIST_VERSION}") -message ( "DIST_LICENSE: ${DIST_LICENSE}") -message ( "DIST_AUTHOR: ${DIST_AUTHOR}") -message ( "DIST_MAINTAINER: ${DIST_MAINTAINER}") -message ( "DIST_URL: ${DIST_URL}") -message ( "DIST_DESC: ${DIST_DESC}") -string ( REGEX REPLACE ".*depends[ \t]?=[ \t]?[\"']([^\"']+)[\"'].*" "\\1" - DIST_DEPENDS ${DIST_INFO} ) -if ( DIST_DEPENDS STREQUAL DIST_INFO ) - set ( DIST_DEPENDS "" ) -endif () -message ( "DIST_DEPENDS: ${DIST_DEPENDS}") -## 2DO: Parse DIST_DEPENDS and try to install Dependencies with automatically using externalproject_add - - -## INSTALL DEFAULTS (Relative to CMAKE_INSTALL_PREFIX) -# Primary paths -set ( INSTALL_BIN bin CACHE PATH "Where to install binaries to." ) -set ( INSTALL_LIB lib CACHE PATH "Where to install libraries to." ) -set ( INSTALL_INC include CACHE PATH "Where to install headers to." ) -set ( INSTALL_ETC etc CACHE PATH "Where to store configuration files" ) -set ( INSTALL_SHARE share CACHE PATH "Directory for shared data." ) - -# Secondary paths -option ( INSTALL_VERSION - "Install runtime libraries and executables with version information." OFF) -set ( INSTALL_DATA ${INSTALL_SHARE}/${DIST_NAME} CACHE PATH - "Directory the package can store documentation, tests or other data in.") -set ( INSTALL_DOC ${INSTALL_DATA}/doc CACHE PATH - "Recommended directory to install documentation into.") -set ( INSTALL_EXAMPLE ${INSTALL_DATA}/example CACHE PATH - "Recommended directory to install examples into.") -set ( INSTALL_TEST ${INSTALL_DATA}/test CACHE PATH - "Recommended directory to install tests into.") -set ( INSTALL_FOO ${INSTALL_DATA}/etc CACHE PATH - "Where to install additional files") - -# Tweaks and other defaults -# Setting CMAKE to use loose block and search for find modules in source directory -set ( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true ) -set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH} ) -option ( BUILD_SHARED_LIBS "Build shared libraries" ON ) - -# In MSVC, prevent warnings that can occur when using standard libraries. -if ( MSVC ) - add_definitions ( -D_CRT_SECURE_NO_WARNINGS ) -endif () - -# RPath and relative linking -option ( USE_RPATH "Use relative linking." ON) -if ( USE_RPATH ) - string ( REGEX REPLACE "[^!/]+" ".." UP_DIR ${INSTALL_BIN} ) - set ( CMAKE_SKIP_BUILD_RPATH FALSE CACHE STRING "" FORCE ) - set ( CMAKE_BUILD_WITH_INSTALL_RPATH FALSE CACHE STRING "" FORCE ) - set ( CMAKE_INSTALL_RPATH $ORIGIN/${UP_DIR}/${INSTALL_LIB} - CACHE STRING "" FORCE ) - set ( CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE STRING "" FORCE ) - set ( CMAKE_INSTALL_NAME_DIR @executable_path/${UP_DIR}/${INSTALL_LIB} - CACHE STRING "" FORCE ) -endif () - -## MACROS -# Parser macro -macro ( parse_arguments prefix arg_names option_names) - set ( DEFAULT_ARGS ) - foreach ( arg_name ${arg_names} ) - set ( ${prefix}_${arg_name} ) - endforeach () - foreach ( option ${option_names} ) - set ( ${prefix}_${option} FALSE ) - endforeach () - - set ( current_arg_name DEFAULT_ARGS ) - set ( current_arg_list ) - foreach ( arg ${ARGN} ) - set ( larg_names ${arg_names} ) - list ( FIND larg_names "${arg}" is_arg_name ) - if ( is_arg_name GREATER -1 ) - set ( ${prefix}_${current_arg_name} ${current_arg_list} ) - set ( current_arg_name ${arg} ) - set ( current_arg_list ) - else () - set ( loption_names ${option_names} ) - list ( FIND loption_names "${arg}" is_option ) - if ( is_option GREATER -1 ) - set ( ${prefix}_${arg} TRUE ) - else () - set ( current_arg_list ${current_arg_list} ${arg} ) - endif () - endif () - endforeach () - set ( ${prefix}_${current_arg_name} ${current_arg_list} ) -endmacro () - - -# install_executable ( executable_targets ) -# Installs any executables generated using "add_executable". -# USE: install_executable ( lua ) -# NOTE: subdirectories are NOT supported -set ( CPACK_COMPONENT_RUNTIME_DISPLAY_NAME "${DIST_NAME} Runtime" ) -set ( CPACK_COMPONENT_RUNTIME_DESCRIPTION - "Executables and runtime libraries. Installed into ${INSTALL_BIN}." ) -macro ( install_executable ) - foreach ( _file ${ARGN} ) - if ( INSTALL_VERSION ) - set_target_properties ( ${_file} PROPERTIES VERSION ${DIST_VERSION} - SOVERSION ${DIST_VERSION} ) - endif () - install ( TARGETS ${_file} RUNTIME DESTINATION ${INSTALL_BIN} - COMPONENT Runtime ) - endforeach() -endmacro () - -# install_library ( library_targets ) -# Installs any libraries generated using "add_library" into apropriate places. -# USE: install_library ( libexpat ) -# NOTE: subdirectories are NOT supported -set ( CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "${DIST_NAME} Development Libraries" ) -set ( CPACK_COMPONENT_LIBRARY_DESCRIPTION - "Static and import libraries needed for development. Installed into ${INSTALL_LIB} or ${INSTALL_BIN}." ) -macro ( install_library ) - foreach ( _file ${ARGN} ) - if ( INSTALL_VERSION ) - set_target_properties ( ${_file} PROPERTIES VERSION ${DIST_VERSION} - SOVERSION ${DIST_VERSION} ) - endif () - install ( TARGETS ${_file} - RUNTIME DESTINATION ${INSTALL_BIN} COMPONENT Runtime - LIBRARY DESTINATION ${INSTALL_LIB} COMPONENT Runtime - ARCHIVE DESTINATION ${INSTALL_LIB} COMPONENT Library ) - endforeach() -endmacro () - -# helper function for various install_* functions, for PATTERN/REGEX args. -macro ( _complete_install_args ) - if ( NOT("${_ARG_PATTERN}" STREQUAL "") ) - set ( _ARG_PATTERN PATTERN ${_ARG_PATTERN} ) - endif () - if ( NOT("${_ARG_REGEX}" STREQUAL "") ) - set ( _ARG_REGEX REGEX ${_ARG_REGEX} ) - endif () -endmacro () - -# install_header ( files/directories [INTO destination] ) -# Install a directories or files into header destination. -# USE: install_header ( lua.h luaconf.h ) or install_header ( GL ) -# USE: install_header ( mylib.h INTO mylib ) -# For directories, supports optional PATTERN/REGEX arguments like install(). -set ( CPACK_COMPONENT_HEADER_DISPLAY_NAME "${DIST_NAME} Development Headers" ) -set ( CPACK_COMPONENT_HEADER_DESCRIPTION - "Headers needed for development. Installed into ${INSTALL_INC}." ) -macro ( install_header ) - parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) - _complete_install_args() - foreach ( _file ${_ARG_DEFAULT_ARGS} ) - if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) - install ( DIRECTORY ${_file} DESTINATION ${INSTALL_INC}/${_ARG_INTO} - COMPONENT Header ${_ARG_PATTERN} ${_ARG_REGEX} ) - else () - install ( FILES ${_file} DESTINATION ${INSTALL_INC}/${_ARG_INTO} - COMPONENT Header ) - endif () - endforeach() -endmacro () - -# install_data ( files/directories [INTO destination] ) -# This installs additional data files or directories. -# USE: install_data ( extra data.dat ) -# USE: install_data ( image1.png image2.png INTO images ) -# For directories, supports optional PATTERN/REGEX arguments like install(). -set ( CPACK_COMPONENT_DATA_DISPLAY_NAME "${DIST_NAME} Data" ) -set ( CPACK_COMPONENT_DATA_DESCRIPTION - "Application data. Installed into ${INSTALL_DATA}." ) -macro ( install_data ) - parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) - _complete_install_args() - foreach ( _file ${_ARG_DEFAULT_ARGS} ) - if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) - install ( DIRECTORY ${_file} - DESTINATION ${INSTALL_DATA}/${_ARG_INTO} - COMPONENT Data ${_ARG_PATTERN} ${_ARG_REGEX} ) - else () - install ( FILES ${_file} DESTINATION ${INSTALL_DATA}/${_ARG_INTO} - COMPONENT Data ) - endif () - endforeach() -endmacro () - -# INSTALL_DOC ( files/directories [INTO destination] ) -# This installs documentation content -# USE: install_doc ( doc/ doc.pdf ) -# USE: install_doc ( index.html INTO html ) -# For directories, supports optional PATTERN/REGEX arguments like install(). -set ( CPACK_COMPONENT_DOCUMENTATION_DISPLAY_NAME "${DIST_NAME} Documentation" ) -set ( CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION - "Application documentation. Installed into ${INSTALL_DOC}." ) -macro ( install_doc ) - parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) - _complete_install_args() - foreach ( _file ${_ARG_DEFAULT_ARGS} ) - if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) - install ( DIRECTORY ${_file} DESTINATION ${INSTALL_DOC}/${_ARG_INTO} - COMPONENT Documentation ${_ARG_PATTERN} ${_ARG_REGEX} ) - else () - install ( FILES ${_file} DESTINATION ${INSTALL_DOC}/${_ARG_INTO} - COMPONENT Documentation ) - endif () - endforeach() -endmacro () - -# install_example ( files/directories [INTO destination] ) -# This installs additional examples -# USE: install_example ( examples/ exampleA ) -# USE: install_example ( super_example super_data INTO super) -# For directories, supports optional PATTERN/REGEX argument like install(). -set ( CPACK_COMPONENT_EXAMPLE_DISPLAY_NAME "${DIST_NAME} Examples" ) -set ( CPACK_COMPONENT_EXAMPLE_DESCRIPTION - "Examples and their associated data. Installed into ${INSTALL_EXAMPLE}." ) -macro ( install_example ) - parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) - _complete_install_args() - foreach ( _file ${_ARG_DEFAULT_ARGS} ) - if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) - install ( DIRECTORY ${_file} DESTINATION ${INSTALL_EXAMPLE}/${_ARG_INTO} - COMPONENT Example ${_ARG_PATTERN} ${_ARG_REGEX} ) - else () - install ( FILES ${_file} DESTINATION ${INSTALL_EXAMPLE}/${_ARG_INTO} - COMPONENT Example ) - endif () - endforeach() -endmacro () - -# install_test ( files/directories [INTO destination] ) -# This installs tests and test files, DOES NOT EXECUTE TESTS -# USE: install_test ( my_test data.sql ) -# USE: install_test ( feature_x_test INTO x ) -# For directories, supports optional PATTERN/REGEX argument like install(). -set ( CPACK_COMPONENT_TEST_DISPLAY_NAME "${DIST_NAME} Tests" ) -set ( CPACK_COMPONENT_TEST_DESCRIPTION - "Tests and associated data. Installed into ${INSTALL_TEST}." ) -macro ( install_test ) - parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) - _complete_install_args() - foreach ( _file ${_ARG_DEFAULT_ARGS} ) - if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) - install ( DIRECTORY ${_file} DESTINATION ${INSTALL_TEST}/${_ARG_INTO} - COMPONENT Test ${_ARG_PATTERN} ${_ARG_REGEX} ) - else () - install ( FILES ${_file} DESTINATION ${INSTALL_TEST}/${_ARG_INTO} - COMPONENT Test ) - endif () - endforeach() -endmacro () - -# install_foo ( files/directories [INTO destination] ) -# This installs optional or otherwise unneeded content -# USE: install_foo ( etc/ example.doc ) -# USE: install_foo ( icon.png logo.png INTO icons) -# For directories, supports optional PATTERN/REGEX argument like install(). -set ( CPACK_COMPONENT_OTHER_DISPLAY_NAME "${DIST_NAME} Unspecified Content" ) -set ( CPACK_COMPONENT_OTHER_DESCRIPTION - "Other unspecified content. Installed into ${INSTALL_FOO}." ) -macro ( install_foo ) - parse_arguments ( _ARG "INTO;PATTERN;REGEX" "" ${ARGN} ) - _complete_install_args() - foreach ( _file ${_ARG_DEFAULT_ARGS} ) - if ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" ) - install ( DIRECTORY ${_file} DESTINATION ${INSTALL_FOO}/${_ARG_INTO} - COMPONENT Other ${_ARG_PATTERN} ${_ARG_REGEX} ) - else () - install ( FILES ${_file} DESTINATION ${INSTALL_FOO}/${_ARG_INTO} - COMPONENT Other ) - endif () - endforeach() -endmacro () - -## CTest defaults - -## CPack defaults -set ( CPACK_GENERATOR "ZIP" ) -set ( CPACK_STRIP_FILES TRUE ) -set ( CPACK_PACKAGE_NAME "${DIST_NAME}" ) -set ( CPACK_PACKAGE_VERSION "${DIST_VERSION}") -set ( CPACK_PACKAGE_VENDOR "LuaDist" ) -set ( CPACK_COMPONENTS_ALL Runtime Library Header Data Documentation Example Other ) -include ( CPack ) diff --git a/src/third_party/toluapp/cmake/lua.cmake b/src/third_party/toluapp/cmake/lua.cmake deleted file mode 100644 index 80bbc5f35..000000000 --- a/src/third_party/toluapp/cmake/lua.cmake +++ /dev/null @@ -1,293 +0,0 @@ -# LuaDist CMake utility library for Lua. -# -# Copyright (C) 2007-2012 LuaDist. -# by David Manura, Peter Drahos -# Redistribution and use of this file is allowed according to the terms of the MIT license. -# For details see the COPYRIGHT file distributed with LuaDist. -# Please note that the package source code is licensed under its own license. - -set ( INSTALL_LMOD ${INSTALL_LIB}/lua - CACHE PATH "Directory to install Lua modules." ) -set ( INSTALL_CMOD ${INSTALL_LIB}/lua - CACHE PATH "Directory to install Lua binary modules." ) - -option ( SKIP_LUA_WRAPPER - "Do not build and install Lua executable wrappers." OFF) - -# List of (Lua module name, file path) pairs. -# Used internally by add_lua_test. Built by add_lua_module. -set ( _lua_modules ) - -# utility function: appends path `path` to path `basepath`, properly -# handling cases when `path` may be relative or absolute. -macro ( _append_path basepath path result ) - if ( IS_ABSOLUTE "${path}" ) - set ( ${result} "${path}" ) - else () - set ( ${result} "${basepath}/${path}" ) - endif () -endmacro () - -# install_lua_executable ( target source ) -# Automatically generate a binary if srlua package is available -# The application or its source will be placed into /bin -# If the application source did not have .lua suffix then it will be added -# USE: lua_executable ( sputnik src/sputnik.lua ) -macro ( install_lua_executable _name _source ) - get_filename_component ( _source_name ${_source} NAME_WE ) - # Find srlua and glue - find_program( SRLUA_EXECUTABLE NAMES srlua ) - find_program( GLUE_EXECUTABLE NAMES glue ) - # Executable output - set ( _exe ${CMAKE_CURRENT_BINARY_DIR}/${_name}${CMAKE_EXECUTABLE_SUFFIX} ) - if ( NOT SKIP_LUA_WRAPPER AND SRLUA_EXECUTABLE AND GLUE_EXECUTABLE ) - # Generate binary gluing the lua code to srlua, this is a robuust approach for most systems - add_custom_command( - OUTPUT ${_exe} - COMMAND ${GLUE_EXECUTABLE} - ARGS ${SRLUA_EXECUTABLE} ${_source} ${_exe} - DEPENDS ${_source} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - VERBATIM - ) - # Make sure we have a target associated with the binary - add_custom_target(${_name} ALL - DEPENDS ${_exe} - ) - # Install with run permissions - install ( PROGRAMS ${_exe} DESTINATION ${INSTALL_BIN} COMPONENT Runtime) - # Also install source as optional resurce - install ( FILES ${_source} DESTINATION ${INSTALL_FOO} COMPONENT Other ) - else() - # Install into bin as is but without the lua suffix, we assume the executable uses UNIX shebang/hash-bang magic - install ( PROGRAMS ${_source} DESTINATION ${INSTALL_BIN} - RENAME ${_source_name} - COMPONENT Runtime - ) - endif() -endmacro () - -macro ( _lua_module_helper is_install _name ) - parse_arguments ( _MODULE "LINK;ALL_IN_ONE" "" ${ARGN} ) - # _target is CMake-compatible target name for module (e.g. socket_core). - # _module is relative path of target (e.g. socket/core), - # without extension (e.g. .lua/.so/.dll). - # _MODULE_SRC is list of module source files (e.g. .lua and .c files). - # _MODULE_NAMES is list of module names (e.g. socket.core). - if ( _MODULE_ALL_IN_ONE ) - string ( REGEX REPLACE "\\..*" "" _target "${_name}" ) - string ( REGEX REPLACE "\\..*" "" _module "${_name}" ) - set ( _target "${_target}_all_in_one") - set ( _MODULE_SRC ${_MODULE_ALL_IN_ONE} ) - set ( _MODULE_NAMES ${_name} ${_MODULE_DEFAULT_ARGS} ) - else () - string ( REPLACE "." "_" _target "${_name}" ) - string ( REPLACE "." "/" _module "${_name}" ) - set ( _MODULE_SRC ${_MODULE_DEFAULT_ARGS} ) - set ( _MODULE_NAMES ${_name} ) - endif () - if ( NOT _MODULE_SRC ) - message ( FATAL_ERROR "no module sources specified" ) - endif () - list ( GET _MODULE_SRC 0 _first_source ) - - get_filename_component ( _ext ${_first_source} EXT ) - if ( _ext STREQUAL ".lua" ) # Lua source module - list ( LENGTH _MODULE_SRC _len ) - if ( _len GREATER 1 ) - message ( FATAL_ERROR "more than one source file specified" ) - endif () - - set ( _module "${_module}.lua" ) - - get_filename_component ( _module_dir ${_module} PATH ) - get_filename_component ( _module_filename ${_module} NAME ) - _append_path ( "${CMAKE_CURRENT_SOURCE_DIR}" "${_first_source}" _module_path ) - list ( APPEND _lua_modules "${_name}" "${_module_path}" ) - - if ( ${is_install} ) - install ( FILES ${_first_source} DESTINATION ${INSTALL_LMOD}/${_module_dir} - RENAME ${_module_filename} - COMPONENT Runtime - ) - endif () - else () # Lua C binary module - enable_language ( C ) - find_package ( Lua REQUIRED ) - include_directories ( ${LUA_INCLUDE_DIR} ) - - set ( _module "${_module}${CMAKE_SHARED_MODULE_SUFFIX}" ) - - get_filename_component ( _module_dir ${_module} PATH ) - get_filename_component ( _module_filenamebase ${_module} NAME_WE ) - foreach ( _thisname ${_MODULE_NAMES} ) - list ( APPEND _lua_modules "${_thisname}" - "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_CFG_INTDIR}/${_module}" ) - endforeach () - - add_library( ${_target} MODULE ${_MODULE_SRC}) - target_link_libraries ( ${_target} ${LUA_LIBRARY} ${_MODULE_LINK} ) - set_target_properties ( ${_target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY - "${_module_dir}" PREFIX "" OUTPUT_NAME "${_module_filenamebase}" ) - if ( ${is_install} ) - install ( TARGETS ${_target} DESTINATION ${INSTALL_CMOD}/${_module_dir} COMPONENT Runtime) - endif () - endif () -endmacro () - -# add_lua_module -# Builds a Lua source module into a destination locatable by Lua -# require syntax. -# Binary modules are also supported where this function takes sources and -# libraries to compile separated by LINK keyword. -# USE: add_lua_module ( socket.http src/http.lua ) -# USE2: add_lua_module ( mime.core src/mime.c ) -# USE3: add_lua_module ( socket.core ${SRC_SOCKET} LINK ${LIB_SOCKET} ) -# USE4: add_lua_module ( ssl.context ssl.core ALL_IN_ONE src/context.c src/ssl.c ) -# This form builds an "all-in-one" module (e.g. ssl.so or ssl.dll containing -# both modules ssl.context and ssl.core). The CMake target name will be -# ssl_all_in_one. -# Also sets variable _module_path (relative path where module typically -# would be installed). -macro ( add_lua_module ) - _lua_module_helper ( 0 ${ARGN} ) -endmacro () - - -# install_lua_module -# This is the same as `add_lua_module` but also installs the module. -# USE: install_lua_module ( socket.http src/http.lua ) -# USE2: install_lua_module ( mime.core src/mime.c ) -# USE3: install_lua_module ( socket.core ${SRC_SOCKET} LINK ${LIB_SOCKET} ) -macro ( install_lua_module ) - _lua_module_helper ( 1 ${ARGN} ) -endmacro () - -# Builds string representing Lua table mapping Lua modules names to file -# paths. Used internally. -macro ( _make_module_table _outvar ) - set ( ${_outvar} ) - list ( LENGTH _lua_modules _n ) - if ( ${_n} GREATER 0 ) # avoids cmake complaint - foreach ( _i RANGE 1 ${_n} 2 ) - list ( GET _lua_modules ${_i} _path ) - math ( EXPR _ii ${_i}-1 ) - list ( GET _lua_modules ${_ii} _name ) - set ( ${_outvar} "${_table} ['${_name}'] = '${_path}'\;\n") - endforeach () - endif () - set ( ${_outvar} -"local modules = { -${_table}}" ) -endmacro () - -# add_lua_test ( _testfile [ WORKING_DIRECTORY _working_dir ] ) -# Runs Lua script `_testfile` under CTest tester. -# Optional named argument `WORKING_DIRECTORY` is current working directory to -# run test under (defaults to ${CMAKE_CURRENT_BINARY_DIR}). -# Both paths, if relative, are relative to ${CMAKE_CURRENT_SOURCE_DIR}. -# Any modules previously defined with install_lua_module are automatically -# preloaded (via package.preload) prior to running the test script. -# Under LuaDist, set test=true in config.lua to enable testing. -# USE: add_lua_test ( test/test1.lua [args...] [WORKING_DIRECTORY dir]) -macro ( add_lua_test _testfile ) - if ( NOT SKIP_TESTING ) - parse_arguments ( _ARG "WORKING_DIRECTORY" "" ${ARGN} ) - include ( CTest ) - find_program ( LUA NAMES lua lua.bat ) - get_filename_component ( TESTFILEABS ${_testfile} ABSOLUTE ) - get_filename_component ( TESTFILENAME ${_testfile} NAME ) - get_filename_component ( TESTFILEBASE ${_testfile} NAME_WE ) - - # Write wrapper script. - # Note: One simple way to allow the script to find modules is - # to just put them in package.preload. - set ( TESTWRAPPER ${CMAKE_CURRENT_BINARY_DIR}/${TESTFILENAME} ) - _make_module_table ( _table ) - set ( TESTWRAPPERSOURCE -"local CMAKE_CFG_INTDIR = ... or '.' -${_table} -local function preload_modules(modules) - for name, path in pairs(modules) do - if path:match'%.lua' then - package.preload[name] = assert(loadfile(path)) - else - local name = name:gsub('.*%-', '') -- remove any hyphen prefix - local symbol = 'luaopen_' .. name:gsub('%.', '_') - --improve: generalize to support all-in-one loader? - local path = path:gsub('%$%{CMAKE_CFG_INTDIR%}', CMAKE_CFG_INTDIR) - package.preload[name] = assert(package.loadlib(path, symbol)) - end - end -end -preload_modules(modules) -arg[0] = '${TESTFILEABS}' -table.remove(arg, 1) -return assert(loadfile '${TESTFILEABS}')(unpack(arg)) -" ) - if ( _ARG_WORKING_DIRECTORY ) - get_filename_component ( - TESTCURRENTDIRABS ${_ARG_WORKING_DIRECTORY} ABSOLUTE ) - # note: CMake 2.6 (unlike 2.8) lacks WORKING_DIRECTORY parameter. - set ( _pre ${CMAKE_COMMAND} -E chdir "${TESTCURRENTDIRABS}" ) - endif () - file ( WRITE ${TESTWRAPPER} ${TESTWRAPPERSOURCE}) - add_test ( NAME ${TESTFILEBASE} COMMAND ${_pre} ${LUA} - ${TESTWRAPPER} "${CMAKE_CFG_INTDIR}" - ${_ARG_DEFAULT_ARGS} ) - endif () - # see also http://gdcm.svn.sourceforge.net/viewvc/gdcm/Sandbox/CMakeModules/UsePythonTest.cmake - # Note: ${CMAKE_CFG_INTDIR} is a command-line argument to allow proper - # expansion by the native build tool. -endmacro () - - -# Converts Lua source file `_source` to binary string embedded in C source -# file `_target`. Optionally compiles Lua source to byte code (not available -# under LuaJIT2, which doesn't have a bytecode loader). Additionally, Lua -# versions of bin2c [1] and luac [2] may be passed respectively as additional -# arguments. -# -# [1] http://lua-users.org/wiki/BinToCee -# [2] http://lua-users.org/wiki/LuaCompilerInLua -function ( add_lua_bin2c _target _source ) - find_program ( LUA NAMES lua lua.bat ) - execute_process ( COMMAND ${LUA} -e "string.dump(function()end)" - RESULT_VARIABLE _LUA_DUMP_RESULT ERROR_QUIET ) - if ( NOT ${_LUA_DUMP_RESULT} ) - SET ( HAVE_LUA_DUMP true ) - endif () - message ( "-- string.dump=${HAVE_LUA_DUMP}" ) - - if ( ARGV2 ) - get_filename_component ( BIN2C ${ARGV2} ABSOLUTE ) - set ( BIN2C ${LUA} ${BIN2C} ) - else () - find_program ( BIN2C NAMES bin2c bin2c.bat ) - endif () - if ( HAVE_LUA_DUMP ) - if ( ARGV3 ) - get_filename_component ( LUAC ${ARGV3} ABSOLUTE ) - set ( LUAC ${LUA} ${LUAC} ) - else () - find_program ( LUAC NAMES luac luac.bat ) - endif () - endif ( HAVE_LUA_DUMP ) - message ( "-- bin2c=${BIN2C}" ) - message ( "-- luac=${LUAC}" ) - - get_filename_component ( SOURCEABS ${_source} ABSOLUTE ) - if ( HAVE_LUA_DUMP ) - get_filename_component ( SOURCEBASE ${_source} NAME_WE ) - add_custom_command ( - OUTPUT ${_target} DEPENDS ${_source} - COMMAND ${LUAC} -o ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo - ${SOURCEABS} - COMMAND ${BIN2C} ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo - ">${_target}" ) - else () - add_custom_command ( - OUTPUT ${_target} DEPENDS ${SOURCEABS} - COMMAND ${BIN2C} ${_source} ">${_target}" ) - endif () -endfunction() diff --git a/src/third_party/toluapp/config_linux.py b/src/third_party/toluapp/config_linux.py deleted file mode 100644 index 9a455e803..000000000 --- a/src/third_party/toluapp/config_linux.py +++ /dev/null @@ -1,22 +0,0 @@ - -## This is the linux configuration file -# use 'scons -h' to see the list of command line options available - -# Compiler flags (based on Debian's installation of lua) -#LINKFLAGS = ['-g'] -CCFLAGS = ['-I/usr/include/lua50', '-O2', '-ansi', '-Wall'] -#CCFLAGS = ['-I/usr/include/lua50', '-g'] - -# this is the default directory for installation. Files will be installed on -# /bin, /lib and /include when you run 'scons install' -# -# You can also specify this directory on the command line with the 'prefix' -# option -# -# You can see more 'generic' options for POSIX systems on config_posix.py - -prefix = '/usr/local' - -# libraries (based on Debian's installation of lua) -LIBS = ['lua50', 'lualib50', 'dl', 'm'] - diff --git a/src/third_party/toluapp/config_msvc.py b/src/third_party/toluapp/config_msvc.py deleted file mode 100644 index e2a21bd22..000000000 --- a/src/third_party/toluapp/config_msvc.py +++ /dev/null @@ -1,28 +0,0 @@ - -## This is the MSVC configuration file -# use 'scons -h' to see the list of command line options available - -# flags for the compiler -CCFLAGS = ['/nologo'] - -# this is the default directory for installation. Files will be installed on -# /bin, /lib and /include when you run 'scons install' -# -# You can also specify this directory on the command line with the 'prefix' -# option -# -# If you leave it as 'None', we'll try to auto-detect it (as 'PLATFORMSDKDIR' -# detected by SCons). - -prefix = None # (it's a string) - -# the libraries -LIBS = ['lua', 'lualib'] - -# linkflags -LINKFLAGS = ['/nologo'] - -## We need to specifiy the environment for the PATH and LIB and all those -# parameters cl tales from it -import os -ENV = os.environ diff --git a/src/third_party/toluapp/config_posix.py b/src/third_party/toluapp/config_posix.py deleted file mode 100644 index 2bb696ce4..000000000 --- a/src/third_party/toluapp/config_posix.py +++ /dev/null @@ -1,23 +0,0 @@ - -## This is the POSIX configuration file (will be included for cygwin, mingw -# and possibly mac OSX and BSDs) -# use 'scons -h' to see the list of command line options available - -# flags for the compiler -#CCFLAGS = [] -CCFLAGS = ['-O2', '-ansi', '-Wall'] - -# this is the default directory for installation. Files will be installed on -# /bin, /lib and /include when you run 'scons install' -# -# You can also specify this directory on the command line with the 'prefix' -# option - -prefix = '/usr/local' - -# libraries -LIBS = ['lua', 'lualib', 'm'] - - - -import os diff --git a/src/third_party/toluapp/custom-5.1.py b/src/third_party/toluapp/custom-5.1.py deleted file mode 100644 index 4d1007998..000000000 --- a/src/third_party/toluapp/custom-5.1.py +++ /dev/null @@ -1,9 +0,0 @@ -CCFLAGS = ['-I/usr/include/lua5.1', '-O2', '-ansi'] -#LIBPATH = ['/usr/local/lib'] -LIBS = ['lua5.1', 'dl', 'm'] -prefix = '/mingw' -#build_dev=1 -tolua_bin = 'tolua++5.1' -tolua_lib = 'tolua++5.1' -TOLUAPP = 'tolua++5.1' - diff --git a/src/third_party/toluapp/debian/README b/src/third_party/toluapp/debian/README deleted file mode 100644 index 2a7174e63..000000000 --- a/src/third_party/toluapp/debian/README +++ /dev/null @@ -1,6 +0,0 @@ -The Debian Package tolua++ ----------------------------- - -Comments regarding the Package - -Ariel Manzur , Thu, 30 Dec 2004 11:59:14 -0300 diff --git a/src/third_party/toluapp/debian/README.Debian b/src/third_party/toluapp/debian/README.Debian deleted file mode 100644 index 875a2fd36..000000000 --- a/src/third_party/toluapp/debian/README.Debian +++ /dev/null @@ -1,6 +0,0 @@ -tolua++ for Debian ------------------- - - - - -- Ariel Manzur , Thu, 30 Dec 2004 11:59:14 -0300 diff --git a/src/third_party/toluapp/debian/changelog b/src/third_party/toluapp/debian/changelog deleted file mode 100644 index ddbc03673..000000000 --- a/src/third_party/toluapp/debian/changelog +++ /dev/null @@ -1,121 +0,0 @@ -tolua++ (1.0.92pre1-1) unstable; urgency=low - - * fixed array bound check bug - * moved parsing of 'extern' keyword to the parser - * fixed bug in module name generation from package filename - * added -E command line option - - -- Ariel Manzur Mon, 13 Mar 2006 19:28:14 -0300 - -tolua++ (1.0.8pre3-1) unstable; urgency=low - - * changed tolua_touserdata - * fixed bugs - - -- Ariel Manzur Tue, 13 Dec 2005 01:46:33 +0100 - -tolua++ (1.0.7-1) unstable; urgency=low - - * added -C flag - * added object access - * added parser_hook - * merged Mildred's patch (sorry, no last name): code on open function is - nested, embedded lua chunks have better names - - -- Ariel Manzur Tue, 18 Oct 2005 22:51:04 -0300 - -tolua++ (1.0.6-1) unstable; urgency=low - - * fixed parser bugs - * added tolua_property - * added TOLUA_PROTECTED_DESTRUCTOR - * added inheritance from C objects by lua objects - * fixed class constructor bug (calling the class name directly works) - - -- Ariel Manzur Sat, 6 Aug 2005 09:24:10 -0300 - -tolua++ (1.0.6pre3-1) unstable; urgency=low - - * fixed tolua_tocppstring - - -- Ariel Manzur Sun, 26 Jun 2005 21:01:50 -0300 - -tolua++ (1.0.6pre2-1) unstable; urgency=low - - * fixed c compilation bug - * added -D flag - * fixed tolua.releaseownership? - - -- Ariel Manzur Mon, 2 May 2005 20:56:04 -0300 - -tolua++ (1.0.6pre1-1) unstable; urgency=low - - * something - - -- Ariel Manzur Wed, 27 Apr 2005 00:09:41 -0300 - -tolua++ (1.0.5-1) unstable; urgency=low - - * fixed missed inheritance bug. - * ready for 1.0.5 - - -- Ariel Manzur Fri, 8 Apr 2005 23:15:19 -0300 - -tolua++ (1.0.5~pre6-1) unstable; urgency=low - - * fixed bug in tolua.cast (introduced on previous version) - - -- Ariel Manzur Sat, 2 Apr 2005 00:36:45 -0300 - -tolua++ (1.0.5~pre5-1) unstable; urgency=low - - * fixed bug in tolua.cast - - -- Ariel Manzur Fri, 18 Mar 2005 01:13:55 -0300 - -tolua++ (1.0.5~pre4-1) unstable; urgency=low - - * fixed support for overloading methods across multiple class definitions - - -- Ariel Manzur Thu, 3 Mar 2005 19:03:04 -0300 - -tolua++ (1.0.5~pre3-1) unstable; urgency=low - - * fixed bugs in parser - - -- Ariel Manzur Sun, 20 Feb 2005 19:56:32 -0300 - -tolua++ (1.0.5~pre2-1) unstable; urgency=low - - * added tolua_outside - - -- Ariel Manzur Fri, 11 Feb 2005 02:50:45 -0300 - -tolua++ (1.0.5~pre1-1) unstable; urgency=low - - * fixed bug in type detection - * fixed bug in code output for static variables - - -- Ariel Manzur Thu, 3 Feb 2005 02:05:43 -0300 - -tolua++ (1.0.4-3) unstable; urgency=low - - * jumped the gun on the previous release - - -- Ariel Manzur Thu, 20 Jan 2005 23:20:17 -0300 - -tolua++ (1.0.4-2) unstable; urgency=low - - * added optimize flags for binary package - - -- Ariel Manzur Fri, 14 Jan 2005 00:43:09 -0300 - -tolua++ (1.0.4-1) unstable; urgency=low - - * Initial Release. - - -- Ariel Manzur Thu, 30 Dec 2004 11:59:14 -0300 - -Local variables: -mode: debian-changelog -End: diff --git a/src/third_party/toluapp/debian/compat b/src/third_party/toluapp/debian/compat deleted file mode 100644 index b8626c4cf..000000000 --- a/src/third_party/toluapp/debian/compat +++ /dev/null @@ -1 +0,0 @@ -4 diff --git a/src/third_party/toluapp/debian/conffiles.ex b/src/third_party/toluapp/debian/conffiles.ex deleted file mode 100644 index 9c988499b..000000000 --- a/src/third_party/toluapp/debian/conffiles.ex +++ /dev/null @@ -1,7 +0,0 @@ -# -# If you want to use this conffile, remove all comments and put files that -# you want dpkg to process here using their absolute pathnames. -# See the policy manual -# -# for example: -# /etc/tolua++/tolua++.conf diff --git a/src/third_party/toluapp/debian/control b/src/third_party/toluapp/debian/control deleted file mode 100644 index b35df1267..000000000 --- a/src/third_party/toluapp/debian/control +++ /dev/null @@ -1,13 +0,0 @@ -Source: tolua++ -Section: unknown -Priority: optional -Maintainer: Ariel Manzur -Build-Depends: debhelper (>= 4.0.0), scons, liblua50-dev, liblualib50-dev -Standards-Version: 3.6.1 - -Package: tolua++ -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, liblua50-dev, liblualib50-dev -Description: tolua++ - tolua++ is an extended version of tolua, a tool to integrate C/C++ code with - Lua. tolua++ includes new features oriented to c++. diff --git a/src/third_party/toluapp/debian/copyright b/src/third_party/toluapp/debian/copyright deleted file mode 100644 index 6f2e619e0..000000000 --- a/src/third_party/toluapp/debian/copyright +++ /dev/null @@ -1,16 +0,0 @@ -This package is maintained by Ariel Manzur on -Sat, 08 Jan 2005 06:11:22 -0300 - -Latest version can be found on http://www.codenix.com/~tolua/ - -Upstream Author(s): Waldemar Celes , - Ariel Manzur - -Copyright: - -Quoted from the README file accompanying tolua: - - 'tolua is freely available; you can redistribute it and/or modify it. - The software provided hereunder is on an "as is" basis, and - the author has no obligation to provide maintenance, support, - updates, enhancements, or modifications.' diff --git a/src/third_party/toluapp/debian/cron.d.ex b/src/third_party/toluapp/debian/cron.d.ex deleted file mode 100644 index d943b0555..000000000 --- a/src/third_party/toluapp/debian/cron.d.ex +++ /dev/null @@ -1,4 +0,0 @@ -# -# Regular cron jobs for the tolua++ package -# -0 4 * * * root tolua++_maintenance diff --git a/src/third_party/toluapp/debian/dirs b/src/third_party/toluapp/debian/dirs deleted file mode 100644 index 63312d207..000000000 --- a/src/third_party/toluapp/debian/dirs +++ /dev/null @@ -1,4 +0,0 @@ -usr/bin -usr/lib -usr/include - diff --git a/src/third_party/toluapp/debian/docs b/src/third_party/toluapp/debian/docs deleted file mode 100644 index e845566c0..000000000 --- a/src/third_party/toluapp/debian/docs +++ /dev/null @@ -1 +0,0 @@ -README diff --git a/src/third_party/toluapp/debian/emacsen-install.ex b/src/third_party/toluapp/debian/emacsen-install.ex deleted file mode 100644 index 15a7e8ad8..000000000 --- a/src/third_party/toluapp/debian/emacsen-install.ex +++ /dev/null @@ -1,45 +0,0 @@ -#! /bin/sh -e -# /usr/lib/emacsen-common/packages/install/tolua++ - -# Written by Jim Van Zandt , borrowing heavily -# from the install scripts for gettext by Santiago Vila -# and octave by Dirk Eddelbuettel . - -FLAVOR=$1 -PACKAGE=tolua++ - -if [ ${FLAVOR} = emacs ]; then exit 0; fi - -echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR} - -#FLAVORTEST=`echo $FLAVOR | cut -c-6` -#if [ ${FLAVORTEST} = xemacs ] ; then -# SITEFLAG="-no-site-file" -#else -# SITEFLAG="--no-site-file" -#fi -FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile" - -ELDIR=/usr/share/emacs/site-lisp/${PACKAGE} -ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} - -# Install-info-altdir does not actually exist. -# Maybe somebody will write it. -if test -x /usr/sbin/install-info-altdir; then - echo install/${PACKAGE}: install Info links for ${FLAVOR} - install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz -fi - -install -m 755 -d ${ELCDIR} -cd ${ELDIR} -FILES=`echo *.el` -cp ${FILES} ${ELCDIR} -cd ${ELCDIR} - -cat << EOF > path.el -(setq load-path (cons "." load-path) byte-compile-warnings nil) -EOF -${FLAVOR} ${FLAGS} ${FILES} -rm -f *.el path.el - -exit 0 diff --git a/src/third_party/toluapp/debian/emacsen-remove.ex b/src/third_party/toluapp/debian/emacsen-remove.ex deleted file mode 100644 index 7dbfb6af9..000000000 --- a/src/third_party/toluapp/debian/emacsen-remove.ex +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -e -# /usr/lib/emacsen-common/packages/remove/tolua++ - -FLAVOR=$1 -PACKAGE=tolua++ - -if [ ${FLAVOR} != emacs ]; then - if test -x /usr/sbin/install-info-altdir; then - echo remove/${PACKAGE}: removing Info links for ${FLAVOR} - install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/info/tolua++.info.gz - fi - - echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR} - rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE} -fi diff --git a/src/third_party/toluapp/debian/emacsen-startup.ex b/src/third_party/toluapp/debian/emacsen-startup.ex deleted file mode 100644 index 2def7e72d..000000000 --- a/src/third_party/toluapp/debian/emacsen-startup.ex +++ /dev/null @@ -1,19 +0,0 @@ -;; -*-emacs-lisp-*- -;; -;; Emacs startup file for the Debian tolua++ package -;; -;; Originally contributed by Nils Naumann -;; Modified by Dirk Eddelbuettel -;; Adapted for dh-make by Jim Van Zandt - -;; The tolua++ package follows the Debian/GNU Linux 'emacsen' policy and -;; byte-compiles its elisp files for each 'emacs flavor' (emacs19, -;; xemacs19, emacs20, xemacs20...). The compiled code is then -;; installed in a subdirectory of the respective site-lisp directory. -;; We have to add this to the load-path: -(let ((package-dir (concat "/usr/share/" - (symbol-name flavor) - "/site-lisp/tolua++"))) - (when (file-directory-p package-dir) - (setq load-path (cons package-dir load-path)))) - diff --git a/src/third_party/toluapp/debian/init.d.ex b/src/third_party/toluapp/debian/init.d.ex deleted file mode 100644 index 4ca163949..000000000 --- a/src/third_party/toluapp/debian/init.d.ex +++ /dev/null @@ -1,74 +0,0 @@ -#! /bin/sh -# -# skeleton example file to build /etc/init.d/ scripts. -# This file should be used to construct scripts for /etc/init.d. -# -# Written by Miquel van Smoorenburg . -# Modified for Debian -# by Ian Murdock . -# -# Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl -# - -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -DAEMON=/usr/sbin/tolua++ -NAME=tolua++ -DESC=tolua++ - -test -x $DAEMON || exit 0 - -# Include tolua++ defaults if available -if [ -f /etc/default/tolua++ ] ; then - . /etc/default/tolua++ -fi - -set -e - -case "$1" in - start) - echo -n "Starting $DESC: " - start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ - --exec $DAEMON -- $DAEMON_OPTS - echo "$NAME." - ;; - stop) - echo -n "Stopping $DESC: " - start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ - --exec $DAEMON - echo "$NAME." - ;; - #reload) - # - # If the daemon can reload its config files on the fly - # for example by sending it SIGHUP, do it here. - # - # If the daemon responds to changes in its config file - # directly anyway, make this a do-nothing entry. - # - # echo "Reloading $DESC configuration files." - # start-stop-daemon --stop --signal 1 --quiet --pidfile \ - # /var/run/$NAME.pid --exec $DAEMON - #;; - restart|force-reload) - # - # If the "reload" option is implemented, move the "force-reload" - # option to the "reload" entry above. If not, "force-reload" is - # just the same as "restart". - # - echo -n "Restarting $DESC: " - start-stop-daemon --stop --quiet --pidfile \ - /var/run/$NAME.pid --exec $DAEMON - sleep 1 - start-stop-daemon --start --quiet --pidfile \ - /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS - echo "$NAME." - ;; - *) - N=/etc/init.d/$NAME - # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 - echo "Usage: $N {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 diff --git a/src/third_party/toluapp/debian/manpage.1.ex b/src/third_party/toluapp/debian/manpage.1.ex deleted file mode 100644 index 6550b3731..000000000 --- a/src/third_party/toluapp/debian/manpage.1.ex +++ /dev/null @@ -1,59 +0,0 @@ -.\" Hey, EMACS: -*- nroff -*- -.\" First parameter, NAME, should be all caps -.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection -.\" other parameters are allowed: see man(7), man(1) -.TH TOLUA++ SECTION "December 30, 2004" -.\" Please adjust this date whenever revising the manpage. -.\" -.\" Some roff macros, for reference: -.\" .nh disable hyphenation -.\" .hy enable hyphenation -.\" .ad l left justify -.\" .ad b justify to both left and right margins -.\" .nf disable filling -.\" .fi enable filling -.\" .br insert line break -.\" .sp insert n+1 empty lines -.\" for manpage-specific macros, see man(7) -.SH NAME -tolua++ \- program to do something -.SH SYNOPSIS -.B tolua++ -.RI [ options ] " files" ... -.br -.B bar -.RI [ options ] " files" ... -.SH DESCRIPTION -This manual page documents briefly the -.B tolua++ -and -.B bar -commands. -.PP -.\" TeX users may be more comfortable with the \fB\fP and -.\" \fI\fP escape sequences to invode bold face and italics, -.\" respectively. -\fBtolua++\fP is a program that... -.SH OPTIONS -These programs follow the usual GNU command line syntax, with long -options starting with two dashes (`-'). -A summary of options is included below. -For a complete description, see the Info files. -.TP -.B \-h, \-\-help -Show summary of options. -.TP -.B \-v, \-\-version -Show version of program. -.SH SEE ALSO -.BR bar (1), -.BR baz (1). -.br -The programs are documented fully by -.IR "The Rise and Fall of a Fooish Bar" , -available via the Info system. -.SH AUTHOR -tolua++ was written by . -.PP -This manual page was written by Ariel Manzur , -for the Debian project (but may be used by others). diff --git a/src/third_party/toluapp/debian/manpage.sgml.ex b/src/third_party/toluapp/debian/manpage.sgml.ex deleted file mode 100644 index 2cd6f68a4..000000000 --- a/src/third_party/toluapp/debian/manpage.sgml.ex +++ /dev/null @@ -1,156 +0,0 @@ - manpage.1'. You may view - the manual page with: `docbook-to-man manpage.sgml | nroff -man | - less'. A typical entry in a Makefile or Makefile.am is: - -manpage.1: manpage.sgml - docbook-to-man $< > $@ - - - The docbook-to-man binary is found in the docbook-to-man package. - Please remember that if you create the nroff version in one of the - debian/rules file targets (such as build), you will need to include - docbook-to-man in your Build-Depends control field. - - --> - - - FIRSTNAME"> - SURNAME"> - - December 30, 2004"> - - SECTION"> - puntob@gmail.com"> - - TOLUA++"> - - - Debian"> - GNU"> - GPL"> -]> - - - -
- &dhemail; -
- - &dhfirstname; - &dhsurname; - - - 2003 - &dhusername; - - &dhdate; -
- - &dhucpackage; - - &dhsection; - - - &dhpackage; - - program to do something - - - - &dhpackage; - - - - - - - - DESCRIPTION - - This manual page documents briefly the - &dhpackage; and bar - commands. - - This manual page was written for the &debian; distribution - because the original program does not have a manual page. - Instead, it has documentation in the &gnu; - Info format; see below. - - &dhpackage; is a program that... - - - - OPTIONS - - These programs follow the usual &gnu; command line syntax, - with long options starting with two dashes (`-'). A summary of - options is included below. For a complete description, see the - Info files. - - - - - - - - Show summary of options. - - - - - - - - Show version of program. - - - - - - SEE ALSO - - bar (1), baz (1). - - The programs are documented fully by The Rise and - Fall of a Fooish Bar available via the - Info system. - - - AUTHOR - - This manual page was written by &dhusername; &dhemail; for - the &debian; system (but may be used by others). Permission is - granted to copy, distribute and/or modify this document under - the terms of the &gnu; General Public License, Version 2 any - later version published by the Free Software Foundation. - - - On Debian systems, the complete text of the GNU General Public - License can be found in /usr/share/common-licenses/GPL. - - - -
- - - - diff --git a/src/third_party/toluapp/debian/manpage.xml.ex b/src/third_party/toluapp/debian/manpage.xml.ex deleted file mode 100644 index 43df370f4..000000000 --- a/src/third_party/toluapp/debian/manpage.xml.ex +++ /dev/null @@ -1,148 +0,0 @@ - -.
will be generated. You may view the -manual page with: nroff -man .
| less'. A -typical entry in a Makefile or Makefile.am is: - -DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\ -manpages/docbook.xsl -XP=xsltproc -''-nonet - -manpage.1: manpage.dbk - $(XP) $(DB2MAN) $< - -The xsltproc binary is found in the xsltproc package. The -XSL files are in docbook-xsl. Please remember that if you -create the nroff version in one of the debian/rules file -targets (such as build), you will need to include xsltproc -and docbook-xsl in your Build-Depends control field. - ---> - - - FIRSTNAME"> - SURNAME"> - - December 30, 2004"> - - SECTION"> - puntob@gmail.com"> - - TOLUA++"> - - - Debian"> - GNU"> - GPL"> -]> - - - -
- &dhemail; -
- - &dhfirstname; - &dhsurname; - - - 2003 - &dhusername; - - &dhdate; -
- - &dhucpackage; - - &dhsection; - - - &dhpackage; - - program to do something - - - - &dhpackage; - - - - - - - - DESCRIPTION - - This manual page documents briefly the - &dhpackage; and bar - commands. - - This manual page was written for the &debian; distribution - because the original program does not have a manual page. - Instead, it has documentation in the &gnu; - Info format; see below. - - &dhpackage; is a program that... - - - - OPTIONS - - These programs follow the usual &gnu; command line syntax, - with long options starting with two dashes (`-'). A summary of - options is included below. For a complete description, see the - Info files. - - - - - - - - Show summary of options. - - - - - - - - Show version of program. - - - - - - SEE ALSO - - bar (1), baz (1). - - The programs are documented fully by The Rise and - Fall of a Fooish Bar available via the - Info system. - - - AUTHOR - - This manual page was written by &dhusername; &dhemail; for - the &debian; system (but may be used by others). Permission is - granted to copy, distribute and/or modify this document under - the terms of the &gnu; General Public License, Version 2 any - later version published by the Free Software Foundation. - - - On Debian systems, the complete text of the GNU General Public - License can be found in /usr/share/common-licenses/GPL. - - - -
- diff --git a/src/third_party/toluapp/debian/menu.ex b/src/third_party/toluapp/debian/menu.ex deleted file mode 100644 index c478fb4be..000000000 --- a/src/third_party/toluapp/debian/menu.ex +++ /dev/null @@ -1,2 +0,0 @@ -?package(tolua++):needs="X11|text|vc|wm" section="Apps/see-menu-manual"\ - title="tolua++" command="/usr/bin/tolua++" diff --git a/src/third_party/toluapp/debian/postinst.ex b/src/third_party/toluapp/debian/postinst.ex deleted file mode 100644 index 5dc370e4c..000000000 --- a/src/third_party/toluapp/debian/postinst.ex +++ /dev/null @@ -1,42 +0,0 @@ -#! /bin/sh -# postinst script for tolua++ -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * `configure' -# * `abort-upgrade' -# * `abort-remove' `in-favour' -# -# * `abort-deconfigure' `in-favour' -# `removing' -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package -# - -case "$1" in - configure) - - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - - diff --git a/src/third_party/toluapp/debian/postrm.ex b/src/third_party/toluapp/debian/postrm.ex deleted file mode 100644 index 8255a711f..000000000 --- a/src/third_party/toluapp/debian/postrm.ex +++ /dev/null @@ -1,38 +0,0 @@ -#! /bin/sh -# postrm script for tolua++ -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * `remove' -# * `purge' -# * `upgrade' -# * `failed-upgrade' -# * `abort-install' -# * `abort-install' -# * `abort-upgrade' -# * `disappear' overwrit>r> -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - -case "$1" in - purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) - - - ;; - - *) - echo "postrm called with unknown argument \`$1'" >&2 - exit 1 - -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/src/third_party/toluapp/debian/preinst.ex b/src/third_party/toluapp/debian/preinst.ex deleted file mode 100644 index 61176f7e4..000000000 --- a/src/third_party/toluapp/debian/preinst.ex +++ /dev/null @@ -1,44 +0,0 @@ -#! /bin/sh -# preinst script for tolua++ -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * `install' -# * `install' -# * `upgrade' -# * `abort-upgrade' -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - -case "$1" in - install|upgrade) -# if [ "$1" = "upgrade" ] -# then -# start-stop-daemon --stop --quiet --oknodo \ -# --pidfile /var/run/tolua++.pid \ -# --exec /usr/sbin/tolua++ 2>/dev/null || true -# fi - ;; - - abort-upgrade) - ;; - - *) - echo "preinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - - diff --git a/src/third_party/toluapp/debian/prerm.ex b/src/third_party/toluapp/debian/prerm.ex deleted file mode 100644 index 6d74b30ab..000000000 --- a/src/third_party/toluapp/debian/prerm.ex +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/sh -# prerm script for tolua++ -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * `remove' -# * `upgrade' -# * `failed-upgrade' -# * `remove' `in-favour' -# * `deconfigure' `in-favour' -# `removing' -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - -case "$1" in - remove|upgrade|deconfigure) -# install-info --quiet --remove /usr/info/tolua++.info.gz - ;; - failed-upgrade) - ;; - *) - echo "prerm called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - - diff --git a/src/third_party/toluapp/debian/rules b/src/third_party/toluapp/debian/rules deleted file mode 100644 index 26e157d42..000000000 --- a/src/third_party/toluapp/debian/rules +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - - - - -CFLAGS = -Wall -g - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif - -configure: configure-stamp -configure-stamp: - dh_testdir - # Add here commands to configure the package. - scons build_dev=0 prefix=$(CURDIR)/debian/tolua++/usr configure - - touch configure-stamp - - -build: build-stamp - -build-stamp: configure-stamp - dh_testdir - - # Add here commands to compile the package. - #$(MAKE) - scons all - #docbook-to-man debian/tolua++.sgml > tolua++.1 - - touch build-stamp - -clean: - dh_testdir - dh_testroot - rm -f build-stamp configure-stamp - - # Add here commands to clean up after the build process. - #-$(MAKE) clean - scons -c build_dev=0 all configure - - dh_clean - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - # Add here commands to install the package into debian/tolua++. - #$(MAKE) install DESTDIR=$(CURDIR)/debian/tolua++ - scons install - - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - dh_installchangelogs - dh_installdocs - dh_installexamples -# dh_install -# dh_installmenu -# dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_installinit -# dh_installcron -# dh_installinfo - dh_installman - dh_link - dh_strip - dh_compress - dh_fixperms -# dh_perl -# dh_python -# dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/src/third_party/toluapp/debian/tolua++-default.ex b/src/third_party/toluapp/debian/tolua++-default.ex deleted file mode 100644 index 922c66c0e..000000000 --- a/src/third_party/toluapp/debian/tolua++-default.ex +++ /dev/null @@ -1,10 +0,0 @@ -# Defaults for tolua++ initscript -# sourced by /etc/init.d/tolua++ -# installed at /etc/default/tolua++ by the maintainer scripts - -# -# This is a POSIX shell fragment -# - -# Additional options that are passed to the Daemon. -DAEMON_OPTS="" diff --git a/src/third_party/toluapp/debian/tolua++.doc-base.EX b/src/third_party/toluapp/debian/tolua++.doc-base.EX deleted file mode 100644 index 06bdb8d2f..000000000 --- a/src/third_party/toluapp/debian/tolua++.doc-base.EX +++ /dev/null @@ -1,22 +0,0 @@ -Document: tolua++ -Title: Debian tolua++ Manual -Author: -Abstract: This manual describes what tolua++ is - and how it can be used to - manage online manuals on Debian systems. -Section: unknown - -Format: debiandoc-sgml -Files: /usr/share/doc/tolua++/tolua++.sgml.gz - -Format: postscript -Files: /usr/share/doc/tolua++/tolua++.ps.gz - -Format: text -Files: /usr/share/doc/tolua++/tolua++.text.gz - -Format: HTML -Index: /usr/share/doc/tolua++/html/index.html -Files: /usr/share/doc/tolua++/html/*.html - - diff --git a/src/third_party/toluapp/debian/watch.ex b/src/third_party/toluapp/debian/watch.ex deleted file mode 100644 index e1134e054..000000000 --- a/src/third_party/toluapp/debian/watch.ex +++ /dev/null @@ -1,6 +0,0 @@ -# Example watch control file for uscan -# Rename this file to "watch" and then you can run the "uscan" command -# to check for upstream updates and more. -# Site Directory Pattern Version Script -version=2 -sunsite.unc.edu /pub/Linux/Incoming tolua++-(.*)\.tar\.gz debian uupdate diff --git a/src/third_party/toluapp/dist.info b/src/third_party/toluapp/dist.info deleted file mode 100644 index d1f0a0539..000000000 --- a/src/third_party/toluapp/dist.info +++ /dev/null @@ -1,14 +0,0 @@ ---- This file is part of LuaDist project - -name = "toluapp" -version = "1.0.93" - -desc = "tolua++ is an extension of toLua, a tool to integrate C/Cpp code with Lua." -author = "Waldemar Celes, Ariel Manzur" -license = "as-is" -url = "http://www.codenix.com/~tolua/" -maintainer = "Peter Kapec" - -depends = { - "lua ~> 5.1" -} diff --git a/src/third_party/toluapp/doc/index.html b/src/third_party/toluapp/doc/index.html deleted file mode 100644 index c51633619..000000000 --- a/src/third_party/toluapp/doc/index.html +++ /dev/null @@ -1,226 +0,0 @@ - -toLua++ - binding c/c++ code to lua - - - - -

-tolua++ - Home

-

- -news - -download - documentation - installing - -contact - lua_qt - Codenix -
- -


- -tolua++ is an extended version of tolua, a tool to integrate -C/C++ code with Lua. tolua++ -includes new features oriented to c++ such as: -

- -

    -
  • Support for std::string as a basic type (this can be turned off by a command line option).
  • -
  • Support for class templates
  • -
-

- -As well as other features and bugfixes. - -


- -

News:

-

- -15/02/09: Version 1.0.93 released. Some bugfixes and new features: -

-

    -
  • Build process bootstraps. -
  • Added hooks to handle custom types. -
  • Added hooks to handle exceptions. -
  • Fixed issues with newer GCC compilers. -
  • Changed to MIT license. See COPYRIGHT file for details. -
- -27/04/06: Version 1.0.92 released. Some bugfixes and new features: -

-

    -
  • Fixed garbage collector bug for C objects. -
  • Fixed problems with C compilers (including microsoft's) -
  • Added a .proj file to build with Visual Studio 7 (contributed by Makoto Hamanaka). -
  • New command line option: -E to define extra values -
  • New command line option: -t to associate C++ types with their lua names (see the manual for details) -
- -25/02/06: Version 1.0.91 released. This version contains a small garbage collection bugfix for 1.0.90 (thanks to Rolf E. Thorup for the report), everyone should upgrade. -

- -18/02/06: Version 1.0.90 released. Some bugfixes and new features: -

-

    -
  • lua 5.1 support (see README-5.1) -
  • Support for casting operators (for example operator const char();) -
  • New utility functions, tolua.setpeer and tolua.getpeer, for easier (and faster) inheritance from C/C++ objects (only for lua 5.1) -
  • Some small API changes (see the compatibility section of the manual) -
-

- -18/10/05: Version 1.0.7 released. Some bugfixes and new features: -

-

    -
  • New command line option: -C, to disable the cleanup of included lua code (for easier debugging). -
  • Merged Mildred's patch: embedded lua chunks have better names, code on package initializer function is nested. -
  • New hook: parser_hook, allows modifications to the behavior of the main parser. -
  • Objects can be private (or protected). This doesn't affect the normal usage (everything is public by default), but it's useful to declare types that don't export any code, but serve -as 'support' for other declarations. -
  • Misc bugfixes. -
-

- -01/9/05: Version 1.0.6 released. Several bugfixes and new features: -

-

    -
  • Classes can have properties, using the 'tolua_property' keyboard. Property types are customizable. -
  • Added a command line flag -D, to disable automatic generation of destructors for all classes with constructors (for compatibility with tolua5) -
  • Classes with protected or private destructors can be tagged individually using the "TOLUA_PROTECTED_DESTRUCTOR" macro. -
  • Added utility function "tolua.inherit", to allow a lua table to "inherit" from an instance of a C/C++ class -
  • Fixed class constructor bug (it is now possible to use 'ClassName()' to create a lua-owned instance of the class without problems) -
  • Misc bugfixes. -
-

- -10/4/05: Version 1.0.5 released. This version contains some minor bugfixes and a new feature, -the tolua_outside keyword, used to specify regular functions as methods of classes or structs. This release is also paired with lua_qt -version 0.0.1a. -

- -1/2/05: version 1.0.4 released. This version contains some bugfixes and new features: -

-

    -
  • Ability to customize tolua++'s behaviour to add functionality. -
  • Basic support for multiple inheritance. -
  • Several bugfixes on the parser. -
  • Debian package available for download. -
-

- -Most of the changes on this version were added for lua_qt, a package -to bind the Qt toolkit to lua. -

- -20/9/04: version 1.0.3 released. This version contains major bugfixes: -

-

    -
  • Fixed bugs in object tracking (the 'memory address' bug; there's still some work left, but people should be able to use unions with no problems)
  • -
  • Fixed parser bugs, functions with template parameters should work, also functions with default parameters that call constructos and with commas on them should work.
  • -
  • Added a __call method for class names, to replace new_local to create instances owned by lua. -
  • Fixed other minor bugs.
  • -
  • Removed the link to win32 binaries, since I aparently don't know what the hell I'm doing with a microsoft compiler ;-)
  • -
-

- -Everyone should upgrade. -

- -23/10/03: version 1.0.2 released. This version contains major bugfixes: -

-

    -
  • Fixed bugs in gargabe collection (thanks to Christian Vogler for doing all the work :-)
  • -
  • namespaces and nested types are now fully supported.
  • -
  • Fixed other minor bugs.
  • -
-

- -Everyone should upgrade. - -


- - -

Downloading

- -The latest development version of the code is available through SVN from tolua++'s BerliOS project page. You can checkout using: - -svn checkout svn://svn.berlios.de/toluapp/trunk - -The tolua++ source is freely available by http. -The software provided under the terms of the MIT license. See the COPYRIGHT file distributed -with the source. -

- -Current version is 1.0.93, older versions: -

-

  • tolua++-1.0.93.tar.bz2 -
  • tolua++-1.0.92.tar.bz2 -
  • tolua++-1.0.91.tar.bz2 -
  • tolua++_1.0.7-1.tar.gz [deb] -
  • tolua++_1.0.6-1.tar.gz [deb] -
  • tolua++_1.0.5-1.tar.gz [deb] -
  • tolua++-1.0.4.tar.bz2 [deb] -
  • tolua++-1.0.3.tar.bz2 -
  • tolua++-1.0.2.tar.bz2 -
  • tolua++-1.0.tar.bz2 - -
    - - -

    Documentation

    -

    -You can find the manual here or under the doc/ directory -on the distribution. -

    - -I'll also be adding interesting addons/examples to my page -on the lua-users wiki. - -


    - - -

    Instalation

    -

    - -tolua++ uses SCons to build. SCons is based on -python, you can get a stand-alone version on -their website. After you have SCons, follow this simple instructions: -

    - -

  • Type 'scons all' to compile.
  • -
  • Type 'scons install'. The default install prefix is /usr/local, so if you are -on a POSIX system, it should work. On other systems, you can change it with the -'prefix' option on command line. -

    - -scons prefix=/usr install -

    -or on windows -

    -scons "prefix=c:\Program Files\Visual C" install -

    - -Use scons -h to see a list of available command line options. - -

    -The files you need (in case you want to do a manual install) are: -

      -
    • bin/tolua++[.exe] - the main binary -
    • include/tolua++.h - the header file -
    • lib/libtolua++.a or lib/tolua++.lib - the library -
    - -
  • See INSTALL for instructions on how to install without SCons. There are also instructions on how -to build without scons at the lua-users wiki -(if you know the author of this, contact me)
  • - -
  • For lua 5.1, see README-5.1 - -
    - -tolua++ and this website are maintained by Ariel Manzur.
    -Contact us with any -bugs, fixes, suggestions, or questions about this package. - -
    - - - - diff --git a/src/third_party/toluapp/doc/tolua++.html b/src/third_party/toluapp/doc/tolua++.html deleted file mode 100644 index 78cb005b0..000000000 --- a/src/third_party/toluapp/doc/tolua++.html +++ /dev/null @@ -1,1956 +0,0 @@ - - - - - - - tolua++ reference manual - - - -

    -tolua++ - Reference Manual

    -by Waldemar Celes, Ariel Manzur. - -

    - -

    - -
    - -tolua++ is an extended version of tolua, a tool to integrate -C/C++ code with Lua. tolua++ -includes new features oriented to c++ such as: -

    - -

      -
    • Support for std::string as a basic type (this can be turned off by a command line option).
    • -
    • Support for class templates
    • -
    -

    - -As well as other features and bugfixes. -

    - - -tolua is a tool that greatly simplifies the integration of C/C++ -code with Lua. Based on -a cleaned header file (or extracts from real header files), -tolua automatically generates -the binding code to access C/C++ features from Lua. Using Lua API and tag -method facilities, tolua maps C/C++ constants, external variables, -functions, classes, and methods to Lua. -

    This manual is for tolua++ version 1.0 and is implemented upon Lua -5.0 and based on tolua 5.0. See Compatibility -for details on switching from older versions. -

    The sections below describe how to use tolua. Please contact us -with bug reports, suggestions, and comments. -

    - -
    -

    -How tolua works

    -To use tolua, we create a package file, a C/C++ cleaned header -file, listing the constants, variables, functions, classes, and -methods we want to export to the Lua environment. Then tolua parses -this file and creates a C/C++ file that automatically binds the C/C++ code -to Lua. If we link the created file with our application, the specified -C/C++ code can be accessed from Lua.
    -A package file can also include regular header files, other package files, -or lua files.
    -

    Let's start with some examples. If we specify as input the following -C-like header file to tolua: -

    #define FALSE 0
    -#define TRUE 1
    -
    -enum { 
    - POINT = 100, 
    - LINE, 
    - POLYGON
    -}
    - -
    Object* createObejct (int type);
    -void drawObject (Object* obj, double red, double green, double blue);
    -int isSelected (Object* obj);
    -A C file that binds such a code to Lua is automatically generated. Therefore, -in Lua code, we can access the C code, writing, for instance: -
    ...
    -myLine = createObject(LINE)
    -...
    -if isSelected(myLine) == TRUE then
    -  drawObject(myLine, 1.0, 0.0, 0.0);
    -else
    -  drawObject(myLine, 1.0, 1.0, 1.0);
    -end
    -...
    -Also, consider a C++-like header file: -
    #define FALSE 0
    -#define TRUE 1
    - -
    class Shape
    -{
    -  void draw (void);
    -  void draw (double red, double green, double blue);
    -  int isSelected (void);
    -};
    - -
    class Line : public Shape
    -{
    - Line (double x1, double y1, double x2, double y2);
    - ~Line (void);
    -};
    -If this file is used as input to tolua, a C++ file is automatically -generated proving access to such a code from Lua. Therefore, it would be -valid to write Lua statements like: -
    ...
    -myLine = Line:new (0,0,1,1)
    -...
    -if myLine:isSelected() == TRUE then
    - myLine:draw(1.0,0.0,0.0)
    -else
    - myLine:draw()
    -end
    -...
    -myLine:delete()
    -...
    -The package file (usually with extension .pkg) passed to tolua -is not the real C/C++ header file, but a cleaned version of it. -tolua -does not implement a complete parse to interpret C/C++ code, but it understands -a few declarations that are used to describe the features that are to be -exported to Lua. Regular header files can be included into packages files; tolua -will extract the code specified by the user to parse from the header (see Basic Concepts). -

    -How to use toLua

    -tolua is composed by two pieces of code: an executable and a library. -The executable represents the parser that reads a package file and output -a C/C++ code that implements the binding to access the C/C++ features from -Lua. If the package file is a C++ like code (i.e., includes class definitions), -a C++ code is generated. If the cleaned header file is a C like code (i.e., -without classes), a C code is generated. tolua accepts a set of -options. Running "tolua -h" displays the current accepted options. -For instance, to parse a file called myfile.pkg -generating the -binding code in myfile.c, we do: -

    tolua -o myfile.c myfile.pkg -

    The generated code must be compiled and linked with the application -to provide the desired access from Lua. Each parsed file represents a package -being exported to Lua. By default, the package name is the input file root -name (myfile in the example). The user can specify a different -name for the package: -

    tolua -n pkgname -o myfile.c myfile.pkg -

    The package should also be explicitly initialized. To initialize the -package from our C/C++ code, we must declare and call the initialization -function. The initialization function is defined as -

    int tolua_pkgname_open (lua_State*); -

    where pkgname represents the name of the package being -bound. If we are using C++, we can opt for automatic initialization: -

    tolua -a -n pkgname -o myfile.c myfile.pkg -

    In that case, the initialization function is automatically called. However, -if we are planning to use multiple Lua states, automatic initialization -does not work, because the order static variables are initialized in C++ -is not defined. - -

    Optionally, the prototype of the open function -can be outputted to a header file, which name is given by the -H -option. -

    The binding code generated by tolua uses a set of functions defined -in the tolua library. Thus, this library also has to be linked with -the application. The file tolua.h is also necessary to compile -the generated code. -

    An application can use tolua object oriented framework (see exported -utility functions) without binding any package. In that case, the application -must call tolua initialization function (this function is called -by any package file initialization function): -

    int tolua_open (void); - -

    -Basic Concepts

    -The first step in using tolua is to create the package file. Starting -with the real header files, we clean them by declaring the features we -want to access from Lua in a format that tolua can understand. The -format tolua understands is simple C/C++ declarations as described -below. - -

    Including files

    - -A package file may include other package file. The general format -to do that is: -

    -$pfile "include_file" -

    -A package file may also include regular C/C++ header files, using the hfile -or cfile directive: -

    - -$cfile "example.h" -

    -In which case, tolua will extract the code enclosed between tolua_begin -and tolua_end, or or tolua_export for a single line. Consider this C++ header as example: - -

    -
    -#ifndef EXAMPLE_H
    -#define EXAMPLE_H
    -
    -class Example { // tolua_export
    -
    -private:
    -
    -	string name;
    -	int number;
    -
    -public:
    -
    -	void set_number(int number);
    -
    -	//tolua_begin
    -
    -	string get_name();
    -	int get_number();
    -};
    -// tolua_end
    -
    -#endif
    -
    - -

    -In this case, the code that's not supported by tolua (the -private part of the class), along with the function set_number -is left outside of the package that includes this header. -

    - -Finally, lua files can be included on a package file, using $lfile: -

    - -$lfile "example.lua" -

    - -New on tolua++: an extra way to include source files is available since -version 1.0.4 of tolua++, using ifile: -

    - -$ifile "filename" -

    - -ifile also takes extra optional parameters after the filename, for example: -

    - - -$ifile "widget.h", GUI
    -$ifile "vector.h", math, 3d -
    -

    - -ifile's default behaviour is to include the whole file, untouched. However, -the contents of the file and the extra parameters are put through the include_file_hook -function before being included into the package (see Customizing tolua++ -for more details). -

    - -

    -Basic types

    -tolua automatically maps C/C++ basic types to Lua basic types. Thus, -char, -int, -float, and double are mapped to the Lua type number; -char* is mapped to string; and void* is mapped to -userdata. Types may be preceded by modifiers (unsigned, -static, short, const, etc.); however, be aware -that tolua ignores the modifier const if applied to basic -types. Thus, if we pass a constant basic type to Lua and then pass it back -to C/C++ code where a non constant is expected, the constant to non constant -conversion will be silently done. -

    Functions in C/C++ can also manipulate Lua objects explicitly. Thus -lua_Object -is also considered a basic type. In this case, any Lua value matches it. -

    - -New on tolua++: The C++ type string is also considered a basic type, and is passed as -a value to lua (using the c_str() method). This feature can be turned off -with the command line option -S. - -

    -User defined types

    -All other types that appear in the package file being processed are considered -user defined types. These are mapped to tagged userdata type in Lua. Lua -can only store pointers to user defined types; although, tolua -automatically -makes the necessary arrangement to deal with references and values. For -instance, if a function or method returns a value of user defined type, -tolua -allocates -a clone object when returning it to Lua and sets the garbage collection -tag method to automatically free the allocated object when no longer in -use by Lua. -

    For user defined types, constness is preserved. Thus passing a non constant -user defined type to a function that expects constant type generates an -type mismatching error. -

    -NULL and nil

    -C/C++ NULL or 0 pointers are mapped to Lua -nil type; -conversely, nil may be specified wherever a C/C++ pointer is expected. -This is valid for any type: char*, -void*, and pointers -to user defined types. -

    -Typedefs

    -tolua also accepts simple typedef's inside the package files. -Any occurrence of a type after its definition is mapped by tolua -to -the base type. They are useful because several packages redefine the basic -C/C++ types to their own types. For instance, one can define the type real -to -represent a double. In that case, real -can be used to -specify the variable types inside the package file interpreted by tolua, -but only if we include the following definition before any use of the type -real. -

    typedef double real; -

    Otherwise, real would be interpreted as a user defined type -and would not be mapped to Lua numbers. -

    -Including real header files

    -In the package file, we must specify which are the real header files that -should be included so that the generated code can access the constants, -variables, functions, and classes we are binding. Any line in the package -file beginning with a $ (except $[hclp]file, $[ , and $] lines) is -inserted into the generated binding C/C++ code without any change, but the -elimination of the $ itself. We use this feature to include the -real header files. So, our package files will usually start with a set -of $ beginning lines specifying the files that must be included, -that is, the files the package file is based on. -
    /* specify the files to be included */
    - -
    $#include "header1.h"                 // include first header
    -$#include "header2.h"                 // include second header
    -As illustrated, tolua also accepts comments, using C or C++ convention, -inside the package file. Nested C-like comments can also be used. -

    -Also note that files included with $cfile or $hfile don't -need to be included using this method, this is done automatically by tolua. - -

    In the following sections, we describe how to specify the C/C++ code -we want to bind to Lua. The formats are simplified valid C/C++ statements. - -

    -Binding constants

    -To bind constants, tolua accepts both define's and enum's. For define's -the general format is: -
    #define NAME [ VALUE ]
    -The value, as showed above, is optional. If such a code is inserted inside -the file being processed, tolua generates a code that allows the -use of NAME as a Lua global variable that has the corresponding -C/C++ constant value. Only numeric constants are accepted. -

    -New on tolua++: All other preprocessor directives are ignored. -

    For enum's, the general format is: -

    enum {
    -  NAME1 [ = VALUE1 ] ,
    -  NAME2 [ = VALUE2 ] ,
    -  ...
    -  NAMEn [ = VALUEn ]
    -};
    -Similarly, tolua creates a set of global variables, named NAMEi, -with their corresponding values. -

    -Binding external variables

    -Global extern variables can also be exported. In the cleaned header file -they are specified as: -
    [extern] type var;
    -tolua binds such declarations to Lua global variables. Thus, in -Lua, we can access the C/C++ variable naturally. If the variable is non -constant, we can also assign the variable a new value from Lua. Global -variables that represent arrays of value can also be bound to Lua. Arrays -can be of any type. The corresponding Lua objects for arrays are Lua tables -indexed with numeric values; however, be aware that index 1 in Lua is mapped -to index 0 in an C/C++ array. Arrays must be pre dimensioned. For instance: -

    double v[10]; - -

    -New on tolua++: External variables can use the tolua_readonly modifier (see Additional Features) - -

    -Binding functions

    -Functions are also specified as conventional C/C++ declarations: -
    type funcname (type1 par1[, type2 par2[,...typeN parN]]);
    -The returned type can be void, meaning no value is returned. A -function can also have no parameter. In that case, void may be -specified in the place of the list of parameters. The parameter types must -follow the rules already posted. tolua creates a Lua function binding -the C/C++ function. When calling a function from Lua, the parameter types -must match the corresponding C/C++ types, otherwise, tolua -generates -an error and reports which parameter is wrongly specified. If a parameter -name is omitted, tolua names it automatically, but its type should -be a basic type or user type previously used. -

    -Arrays

    -tolua also deals with function or method parameters that represent -arrays of values. The nice thing about arrays is that the corresponding -Lua tables have their values updated if the C/C++ function changes the -array contents. -

    The arrays must be pre dimensioned. For instance: -

    void func (double a[3]); -

    is a valid function declaration for tolua and calling this function -from Lua would be done by, for instance: -

    p = {1.0,1.5,8.6} -
    func (p) -

    The array dimension need not be a constant expression; the dimension -can also be specified by any expression that can be evaluated in run time. -For instance: -

    void func (int n, int m, double image[n*m]); -

    is also valid since the expression n*m is valid in the binding -function scope. However, be aware that tolua uses dynamic allocation -for binding this function, what can degrade the performance. -

    Despite the dimension specification, it is important to know that all -arrays passed to the actual C/C++ function are in the local scope of the -binding function. So, if the C/C++ function being called needs to hold -the array pointer for later use, the binding code will not work -properly. -

    -Overloaded functions

    -Overloaded functions are accepted. Remember that the distinction between -two functions with the same name is made based on the parameter types that -are mapped to Lua. So, although -

    void func (int a); -
    void func (double a); -

    represent two different functions in C++, they are the same function -for tolua, because both int and double are mapped -to the same Lua type: number. -

    Another tricky situation occurs when expecting pointers. Suppose: -

    void func (char* s);
    -void func (void* p);
    -void func (Object1* ptr);
    -void func (Object2* prt);
    -Although these four functions represent different functions in C++, a Lua -statement like: -
    func(nil)
    -matches all of them. -

    It is important to know that tolua decides which function will -be called in run-time, trying to match each provided function. tolua -first -tries to call the last specified function; if it fails, tolua -then -tries the previous one. This process is repeated until one function matches -the calling code or the first function is reached. For that reason, the -mismatching error message, when it occurs, is based on the first function -specification. When performance is important, we can specify the most used -function as the last one, because it will be tried first. -

    tolua allows the use of overloaded functions in C, see Renaming -for -details. -

    -Default parameter values

    -The last function parameters can have associated default values. In that -case, if the function is called with fewer parameters, the default values -are assumed. The format to specify the default values is the same as the -one used in C++ code: -

    type funcname (..., typeN-1 parN-1 -[= valueN-1], typeN parN [= valueN]); -

    toLua implements this feature without using any C++ mechanism; -so, it can be used also to bind C functions. -

    We can also specify default values for the elements of an array (there -is no way to specify a default value for the array itself, though). For -instance: -

    void func (int a[5]=0); -

    sets the default element values to zero, thus the function can be called -from Lua with an uninitialized table. -

    For Lua object types (lua_Object), tolua defines a constant -that can be used to specify nil as default value: -

    void func (lua_Object lo = TOLUA_NIL); -

    - -New on tolua++: C++ class constructors are valid -as default parameters. For example: -

    -void set_color(const Color& color = Color(0,0,0)); -

    - -

    -Multiple returned values

    -In Lua, a function may return any number of values. tolua uses this -feature to simulate values passed by reference. If a function parameter -is specified as a pointer to or reference of a basic type or a pointer -to or reference of a pointer to an user defined type, tolua accepts -the corresponding type as input and returns, besides the conventional function -returned value, if any, the updated parameter value. -

    For instance, consider a C function that swaps two values: -

    void swap (double* x, double* y); -

    or -

    void swap (double& x, double& y); -

    If such a function is declared in the package file, tolua binds -it as a function receiving two numbers as input and returning two numbers. -So, a valid Lua code would be: -

    x,y = swap(x,y) -

    If the input values are not used, the use of default parameter value -allows calling the function from Lua without specifying them: -

    void getBox (double* xmin=0, double* xmax=0, double* ymin=0, double* -ymax=0); -

    In Lua: -

    xmin, xmax, ymin, ymax = getBox() -

    With user defined types, we would have for instance: -

    void update (Point** p); -

    or -

    void update (Point*& p); -

    -Binding struct fields

    -User defined types are nicely bound by tolua. For each variable -or function type that does not correspond to a basic type, tolua automatically -creates a tagged userdata to represent the C/C++ type. If the type corresponds -to a struct, the struct fields can be directly accessed from Lua, indexing -a variable that holds an object of such a type. In C code, these types -are commonly defined using typedef's: -
    typedef struct [name] {
    -   type1 fieldname1;
    -   type2 fieldname2;
    -   ...
    -   typeN fieldnameN;
    -} typename;
    -If such a code is inserted in the package file being processed, tolua -allows -any variable that holds an object of type typename to access -any listed field indexing the variable by the field name. For instance, -if var holds a such object, var.fieldnamei accesses -the field named fieldnamei. -

    Fields that represent arrays of values can also be mapped: -

    typedef struct { -
      int x[10]; -
      int y[10]; -
    } Example; -
      -

    -Binding classes and methods

    -C++ class definitions are also supported by tolua. Actually, the -tolua -deals -with single inheritance and polymorphism in a natural way. The subsections -below describe what can be exported by a class definition. -

    -Specifying inheritance

    -If var is a Lua variable that holds an object of a derived class, -var -can -be used wherever its base class type is expected and var -can access -any method of its base class. For this mechanism to take effect, we must -indicate that the derived class actually inherits the base class. This -is done in the conventional way: -
    class classname : public basename
    -{
    - -
     /* class definition */
    - -
    };
    -

    - -In this case, the definition of basename needs to appear before classname -if the inheritance properties are to be taken advantage of from lua. - -

    Multiple inheritance

    - -tolua++ (starting from version 1.0.4) supports multiple inheritance by allowing you -to access the extra parents 'manually'. -

    -For example, consider the following class: -

    - -

    -class Slider : public Widget, public Range {
    -	...
    -};
    -
    -

    - -An object of type 'Slider' will fully retain its inheritance with Widget, -and will contain a 'member' of type Range, which will return the object -cast to the correct base type. -

    - -For example: -

    - -

    -slider = Slider:new()
    -slider:show() -- a Widget method
    -
    -slider:set_range(0, 100) -- this won't work, because
    -                         -- set_range is a method from Range
    -
    -slider.__Range__:set_range(0, 100) -- this is the correct way
    -
    - -

    - -This is an experimental feature. -

    - -

    -Specifying exported members and methods

    -As for struct fields, class fields, static or not, can be exported. Class -methods and class static methods can also be exported. Of course, they -must be declared as public in the actual C++ code (the -public:keyword may appear in the package files, it will be ignored by tolua). -

    For each bound class, tolua creates a Lua table and stores it -at a variable which name is the name of the C++ class. This tables may contain other -tables that represent other tables, the way C++ classes may contain other classes and structs. -Static exported -fields are accessed by indexing this table with the field names (similar -to struct fields). Static methods are also called using this table, with a colon. -Non static exported fields are accessed by indexing -the variable that holds the object. Class methods follow the format of -the function declaration showed above. They can be accessed from Lua code -using the conventional way Lua uses to call methods, applied of course -to a variable that holds the appropriate object or to the class table, -for static methods. -

    There are a few special methods that are also supported by tolua. -Constructors are called as static methods, named new, new_local (on tolua++), -or calling the class name directly (also on tolua++, see below for the difference betwheen these methods). Destructors -are called as a conventional method called delete. -

    Note that tolua does support overload. This applies even for -constructors. Also note that the virtual keyword has no effect -in the package file. -

    The following code exemplifies class definitions that can be interpreted -by tolua. -

    class Point {
    -   static int n;    // represents the total number of created Points
    -   static int get_n();    // static method
    -
    -   double x;        // represents the x coordinate
    -   double y;        // represents the y coordinate
    - -
       static char* className (void);   // returns the name of the class
    - -
       Point (void);                          // constructor 1
    -   Point (double px, double py);          // constructor 2
    -   ~Point (void);                         // destructor
    - -
       Point add (Point& other);              // add points, returning another one
    -};
    - -
    class ColorPoint : public Color {
    -   int red;      // red color component [0 - 255]
    -   int green;    // green color component [0 - 255]
    -   int blue;     // blue color component [0 - 255]
    - -
       ColorPoint (double px, double py, int r, int g, int b);
    -};
    -If this segment of code is processed by tolua, we would be able -to write the following Lua statements: -
    p1 = Point:new(0.0,1.0)
    -p2 = ColorPoint:new(1.5,2.2,0,0,255)
    -print(Point.n)                     -- would print 2
    -print(Point:get_n())               -- would also print 2
    -p3 = p1:add(p2)
    -local p4 = ColorPoint()
    -print(p3.x,p3.y)                   -- would print 1.5 and 3.2
    -print(p2.red,p2.green,p2.blue)     -- would print 0, 0, and 255
    -p1:delete()                        -- call destructor
    -p2:delete()                        -- call destructor
    - -Note that we can only explicitly delete objects that we explicitly create. -In the example above, the point p3 will be garbage-collected by -tolua -automatically; -we cannot delete it. -

    -New on tolua++: Also note that p4 is created by calling the class name directly (ColorPoint()); this has the same effect as calling new_local, which -leaves the object to be deleted by the garbaje collector, and it should not be -deleted using delete. For each constructor on the pkg, one new, -new_local and .call callback for the class is created. -

    Of course, we need to specify only the methods and members we want to -access from Lua. Sometimes, it will be necessary to declare a class with -no member or method just for the sake of not breaking a chain of inheritances. - -

    Using Regular functions as class methods

    -

    - -tolua++ (starting from version 1.0.5) uses the keyword tolua_outside to specify regular functions -as methods and static methods of a class or struct. For example: - -

    
    -/////////////// position.h:
    -
    -typedef struct {
    -
    -	int x;
    -	int y;
    -} Position;
    -
    -Position* position_create();
    -void position_set(Position* pos, int x, int y);
    -
    -/////////////// position.pkg:
    -
    -struct Position {
    -
    -	int x;
    -	int y;
    -
    -	static tolua_outside Position* position_create @ create();
    -	tolua_outside void position_set @ set(int x, int y);
    -};
    -
    ---------------- position.lua
    -
    -local pos = Position:create()
    -
    -pos:set(10, 10)
    -
    -
    - -Note that the position_set method takes a pointer to Position as its first parameter, -this is ommited on the tolua_outside declaration. Also note that we cannot name our methods -new or new_local, or as overloaded operators (see next section), this will result in -undefined behaviour. - - -

    -Overloaded operators

    -tolua automatically binds the following binary operators: -
      -
      operator+   operator-   operator*   operator/ 
      -operator<   operator>=  operator==  operator[]
      -
    -For the relational operators, toLua also automatically converts -a returned 0 value into nil, so false in C becomes -false -in -Lua. -

    As an example, suppose that in the code above, instead of having: -

       Point add (Point& other);              // add points, returning another one
    -we had: -
       Point operator+ (Point& other);        // add points, returning another one
    -In that case, in Lua, we could simply write: -
    p3 = p1 + p2
    -The indexing operator (operator[]) when receiving a numeric parameter -can also be exported to Lua. In this case, tolua accepts reference -as returned value, even for basic types. Then if a reference is returned, -from Lua, the programmer can either get or set the value. If the returned -value is not a reference, the programmer can only get the value. An example -may clarify: suppose we have a vector class and bind the following operator: -
       double& operator[] (int index);
    -In this case, in Lua, we would be able to write: value = myVector[i] -and also myVector[i] = value, which updates the C++ object. However, -if the bound operator was: -
       double operator[] (int index);
    -we would only be able to write: value = myVector[i]. -

    Free functions (i.e., not class members) that overload operators are -not supported. - -

    - -

    -Cast operators

    - -New on tolua++ (versions 1.0.90 and up): casting operators are also supported. -For example: - -
    -/////////////// node.h
    -
    -// a class that holds a value that can be of type int, double, string or Object*
    -class Node { // tolua_export
    -
    -private:
    -	union {
    -		int int_value;
    -		double double_value;
    -		string string_value;
    -		Object* object_value;
    -	};
    -
    -// tolua_begin
    -public:
    -
    -	enum Type {
    -		T_INT,
    -		T_DOUBLE,
    -		T_STRING,
    -		T_OBJECT,
    -		T_MAX,
    -	};
    -
    -	Type get_type();
    -
    -	operator int();
    -	operator double();
    -	operator string();
    -	operator Object*();
    -};
    -// tolua_end
    -
    - -tolua++ will produce code that calls the operators by casting the object Node (using C++ static_cast), -and register them inside the class as ".typename". For example: - -
    --- node.lua
    -
    -local node = list.get_node("some_node") -- returns a Node object
    -
    -if node.get_type() == Node.T_STRING then
    -
    -	print("node is "..node[".string"]())
    -
    -elseif node.get_type() == Node.T_OBJECT then
    -
    -	local object = node[".Object*"]()
    -	object:method()
    -end
    -
    -
    - -

    Binding Properties

    - -tolua++ (starting from version 1.0.6) supports declaration of class propeties, -using the tolua_property keyword. A -property will look like a 'field' of the class, but it's value will be retrieved -using class methods. For example: - -
    -/////////////// label.h
    -
    -class Label {
    -
    -public:
    -
    -	string get_name();
    -	void set_name(string p_name);
    -
    -	Widget* get_parent();
    -};
    -
    -/////////////// label.pkg
    -class Label {
    -
    -	tolua_property string name;
    -
    -	tolua_readonly tolua_property Widget* parent;
    -};
    -
    ---------------- label.lua
    -
    -local label = Label()
    -
    -label.name = "hello"
    -print(label.name)
    -
    -label.parent:show()
    -
    -
    - -

    Property types

    -

    - -A property can have differt types, which determine how it's value will be set and retrieved. -tolua++ comes with 3 different built-in types: -

    - -

  • default will use 'get_name' and 'set_name' methods to access a property called 'name' -
  • qt will use 'name' and 'setName' -
  • overload will use 'name' and 'name' (as in 'string name(void);' to get and 'void name(string);' to set) -

    - -The property type can be appended at the end of the 'tolua_property' keyword on the declaration: - -

      tolua_property__qt string name;
    - -When no type is specified, default will be used, but this can be changed (see below). -

    - -

    Changing the default property type

    -

    - -The default property type can be changed using the 'TOLUA_PROPERTY_TYPE' macro. This will change the -default type from the point of its invocation, until the end of the block that contains it. For example: -

    - -

    -
    -TOLUA_PROPERTY_TYPE(default); // default type for the 'global' scope
    -
    -namespace GUI {
    -
    -	class Point {
    -
    -		tolua_property int x; // will use get_x/set_x
    -		tolua_property int y; // will use get_y/set_y
    -	};
    -
    -	TOLUA_PROPERTY_TYPE(qt); // changes default type to 'qt' for the rest of the 'GUI' namespace
    -
    -	class Label {
    -
    -		tolua_property string name; // will use name/setName
    -	};
    -};
    -
    -class Sprite {
    -
    -	tolua_property GUI::Point position; // will use get_position/set_position
    -
    -	tolua_property__overload string name; // will use name/name
    -};
    -
    -
    - -

    Adding custom property types

    -

    - -Custom property types can be added by redefining the function "get_property_methods_hook" -(see Customizing tolua++ for more details). The functions takes -the property type and the name, and returns the setter and getter function names. For example: -

    - -

    -
    -/////////////// custom.lua
    -
    -function get_property_methods_hook(ptype, name)
    -
    -	if ptype == "hungarian_string" then
    -
    -		return "sGet"..name, "Set"..name
    -	end
    -
    -	if ptype == "hungarian_int" then
    -
    -		return "iGet"..name, "Set"..name
    -	end
    -	-- etc
    -end
    -
    -/////////////// label.pkg
    -class Label {
    -
    -	tolua_property__hungarian_string string Name; // uses 'sGetName' and 'SetName'
    -
    -	tolua_property__hungarian_int string Type; // uses 'iGetType' and 'SetType'
    -};
    -
    -
    - -

    Class Templates

    - -One of the additional features of tolua++ is the support for class templates, -by using the TOLUA_TEMPLATE_BIND directive. For example: - -
    -class vector {
    -
    -	TOLUA_TEMPLATE_BIND(T, int, string, Vector3D, double)
    -
    -	void clear();
    -	int size() const;
    -
    -	const T& operator[](int index) const;
    -	T& operator[](int index);
    -	void push_back(T val);
    -
    -	vector();
    -	~vector();
    -};
    -
    - -The TOLUA_TEMPLATE_BIND directive has to be the first thing on the class declaration, otherwise it will be ignored. -This code will create 4 versions of the class vector, one for each type -specified on the TOLUA_TEMPLATE_BIND parameters, each replacing the macro T -(specified as the first argument of TOLUA_TEMPLATE_BIND). -Thus, the functions operator[], &operator[] and push_back -will have different signatures on each version of the object. The objects will be -recognized as vector<type> on further declarations, and the name of -the table on Lua will be vector_type_. Thus, the following Lua code could be used: - -
    -string_vector = vector_string_:new_local()
    -string_vector:push_back("hello")
    -string_vector:push_back("world")
    -print(string_vector[0].." "..string_vector[1])
    -
    - -Similarily, a template with more than 1 macro could be bound, and it could also -inherit from another template: - -
    -class hash_map : public map<K,V> {
    -
    -	TOLUA_TEMPLATE_BIND(K V, int string, string vector<double>)
    -
    -	V get_element(K key);
    -	void set_element(K key, V value);
    -
    -	hash_map();
    -	~hash_map();
    -};
    -
    - -In this example, one of the objects has another template as one of its types, so -it will be recognized as hash_map<string,vector<double> > while -its constructor will be on the Lua table hash_map_string_vector_double___ (see -Type Renaming for a better way to access these objects). -

    - -Note that due to the complexity in the definition of some templates, you should be -careful on how you declare them. For example, if you create an object with type -hash_map<string,vector<double> > and then declare a variable -with type hash_map<string, vector<double> > (note the space -between string and vector), the type of the variable will not be recognized. The -safest way is to declare a typedef, and use that to use each type (this is also a -common practice on C++ programming). For example, using the previous declaration of -vector: -

    - -

    -typedef vector VectorInt;
    -
    -VectorInt variable;
    -
    - -TOLUA_TEMPLATE_BIND can be used with more than one parenthesis to open and close, -in order to be valid as a macro inside a regular .h file. The TOLUA_TEMPLATE_BIND -macro is declared on tolua.h as: -

    -#define TOLUA_TEMPLATE_BIND(x) -

    - -Also, the parameters can have double quotes. Thus, the following uses are valid: -

    - -

    -TOLUA_TEMPLATE_BIND((T, int, float)) // to be used inside a real header file
    -TOLUA_TEMPLATE_BIND("K V", "string string", int double)
    -
    - -Function templates are not supported on this version. - -

    -Module definition

    -tolua allows us to group constants, variables, and functions in -a module. The module itself is mapped to a table in Lua, and its constants, -variables, and functions are mapped to fields in that table. The general -format to specify a module is: -

    module name -
    { -
          ... // constant, variable, and function -declarations -
    } -

    Thus, if we bound the following module declaration: -

    module mod -
    { -
     #define N -
     extern int var; -
     int func (...): -
    } -

    In Lua we would be able to access such features by indexing the module: -mod.N, -mod.var, -mod.func. -

    -Renaming constants, variables and functions

    -When exporting constants, variable, and functions (members of a class or -not), we can rename them, such that they will be bound with a different -name from their C/C++ counterparts. To do that, we write the name they -will be referenced in Lua after the character @. For instance: -

    extern int cvar @ lvar; -

    #define CNAME @ LNAME -

    enum { -
      CITEM1 @ LITEM1, -
      CITEM2 @ LITEM2, -
      ... -
    }; -

    void cfunc @ lfunc (...); -

    class T -
    { -
       double cfield @ lfield; -
       void cmeth @ lmeth (...); -
       ... -
    }; -

    In such a case, the global variable cvar would be identified -in Lua by lvar, the constant CNAME by LNAME, -and so on. Note that class cannot be renamed, because they represent types -in C. -

    This renaming feature allows function overload in C, because we can -choose to export two different C functions with a same Lua name: -

    void glVertex3d @ glVertex (double x, double y, double z=0.0); -
    void glVertexdv @ glVertex (double v[3]=0.0); - -

    Renaming Types

    - -Types can be renamed using the $renaming directive on pkg files, using the -format: -

    - -$renaming real_name @ new_name -

    - -The parameters to renaming can be Lua patterns. For example: -

    - -

    -$renaming ^_+ @
    -$renaming hash_map<string,vector<double> > @ StringHash
    -
    - -The first example will remove all underscores at the beginning of all types, -the second will rename the template type hash_map<string,vector<double> > -to StringHash. Once renamed, the Lua table for each type can be accessed only by their -new name, for example: StringHash:new() - -

    Storing additional fields

    -Finally, it is important to know that even though the variables that hold -C/C++ objects are actually tagged userdata for Lua, tolua creates -a mechanism that allows us to store any additional field attached to these -objects. That is, these objects can be seen as conventional Lua tables. -
    obj = ClassName:new()
    - -
    obj.myfield = 1  -- even though "myfield" does not represent a field of ClassName
    -Such a construction is possible because, if needed, tolua automatically -creates a Lua table and associates it with the object. So that, the object -can store additional fields not mapped to C/C++, but actually stored in -the conjugate table. The Lua programmer accesses the C/C++ features and -these additional fields in an uniform way. Note that, in fact, these additional -fields overwrite C/C++ fields or methods when the names are the same. - - - -

    Additional features on tolua++

    - -

    Multiple variable declarations

    - -Multiple variables of the same type can be declared at the same time, for example: -

    -float x,y,z; -

    -will create 3 different variables of type float. Make sure you don't leave any -spaces between the commas, as that will raise a parse error. -

    - -

    tolua_readonly

    - -Any variable declaration can use the tolua_readonly modifier, to ensure -that the variable is read-only, even when its type is not const. Example: - -
    -class Widget {
    -
    -	tolua_readonly string name;
    -};
    -
    - -This feature could be used to 'hack' the support for other unsupported things like -operator->. Consider this example pkg file: - -
    -$hfile "node.h"
    -$#define __operator_arrow operator->()
    -$#define __get_name get_name()
    -
    - -And on the file node.h: - -
    -template class<T>
    -class Node { // tolua_export
    -
    -private:
    -	string name;
    -	T* value;
    -
    -public:
    -
    -	T* operator->() {return value;};
    -	string get_name() {return name;};
    -
    -	// tolua_begin
    -
    -	#if 0
    -	TOLUA_TEMPLATE_BIND(T, Vector3D)
    -
    -	tolua_readonly __operator_arrow @ p;
    -	tolua_readonly __get_name @ name;
    -	#endif
    -
    -
    -	Node* next;
    -	Node* prev;
    -
    -	void set_name(string p_name) {name = p_name;};
    -
    -	Node();
    -};
    -// tolua_end
    -
    - -While not a pretty thing to do to a header file, this accomplishes a number of -things: -

    - -

  • The method operator->() can be used from Lua by calling the variable -p on the object.
  • -
  • The method get_name() can be using from Lua by calling the variable -name on the boject.
  • - -Example lua usage: - -
    -node = Node_Vector3D_:new_local()
    --- do something with the node here --
    -print("node name is "..node.name)
    -print("node value is ".. node.p.x ..", ".. node.p.y ..", ".. node.p.z)
    -
    - -Since tolua++ ignores all preprocessor directives (except for #define), node.h -remains a valid C++ header file, and also a valid source for tolua++, -eliminating the need to maintain 2 different files, even for objects with -unusual features such as these ones. - -

    - -The ability to rename functions as variables might be expanded on future versions. - -

    Defining values on command line

    - -Starting from version 1.0.92, the command line option -E allows -you to introduce values into to the luastate where tolua++ runs, -similar to GCC's -D. For example: -

    - -

    $ tolua++ -E VERSION=5.1 -E HAVE_ZLIB package.pkg > package_bind.cpp
    - -

    -This will add 2 fields to the global table _extra_parameters: -"VERSION", with the string value "5.1", and "HAVE_ZLIB" with the boolean value -true. For the moment, there is no way to 'use' these values, except -in custom scripts defined by the user (see -customizing tolua++ for details). - -

    Using C++ typeid

    - -Starting from version 1.0.92, the command line option -t is available, -which generates a list of calls to the empty macro Mtolua_typeid, with its -C++ type_info object, and the name used by tolua++ to identify the type. For example, -if you have a package that binds 2 classes, Foo and Bar, using -t -will produce the following output: - -
    -#ifndef Mtolua_typeid
    -#define Mtolua_typeid(L,TI,T)
    -#endif
    - Mtolua_typeid(tolua_S,typeid(Foo), "Foo");
    - Mtolua_typeid(tolua_S,typeid(Bar), "Bar");
    -
    - -The implementation of Mtolua_typename is left as an exercise to the user. - -

    -Exported utility functions

    -tolua uses itself to export some utility functions to Lua, including -its object-oriented framework. The package file used by tolua is - -shown below: -

    module tolua -
    { -
     char* tolua_bnd_type @ type (lua_Object lo); - -
     void tolua_bnd_takeownership @ takeownership (lua_Object lo); -
     void tolua_bnd_releaseownership @ releaseownership (lua_Object lo); - -
     lua_Object tolua_bnd_cast @ cast (lua_Object lo, char* type); - -
     void tolua_bnd_inherit @ inherit (lua_Object table, lua_Object instance); -

    -/* for lua 5.1 */ -
     void tolua_bnd_setpeer @ setpeer (lua_Object object, lua_Object peer_table); -
     void tolua_bnd_getpeer @ getpeer (lua_Object object); - -
    } - -

    -tolua.type (var)

    -Returns a string representing the object type. For instance, tolua.type(tolua) -returns the string table and tolua.type(tolua.type) -returns cfunction. Similarly, if var is a variable holding -a user defined type T, tolua.type(var) would return -const -T or T, depending whether it is a constant reference. -

    - -

    tolua.takeownership (var)

    - -Takes ownership of the object referenced var. This means that when all references -to that object are lost, the objects itself will be deleted by lua. -

    - -

    tolua.releaseownership (var)

    - -Releases ownership of the object referenced by var. -

    - -

    tolua.cast (var, type)

    - -Changes the metatable of var in order to make it of type type. type needs -to be a string with the complete C type of the object (including namespaces, etc). - -

    tolua.inherit (table, var)

    (new on tolua++) - -Causes tolua++ to recognise table as an object with the same type as var, -and to use var when necesary. For example, consider this method: -

    - -

      void set_parent(Widget* p_parent);
    -

    - -A lua object could be used like this: -

    - -

    -local w = Widget()
    -local lua_widget = {}
    -tolua.inherit(lua_widget, w)
    -
    -set_parent(lua_widget);
    -
    -
    - -Remember that this will only cause the table to be recognised as type 'Widget' when -necesary. To be able to access Widget's methods, you'll have to implement your own -object system. A simple example: -

    - -

    -
    -lua_widget.show = Widget.show
    -
    -lua_widget:show() -- this will call the 'show' method from 'Widget', using the lua
    -                  -- table as 'self'. Since lua_widget inherits from a widget instance,
    -                  -- tolua++ will recognise 'self' as a 'Widget', and call the method
    -
    -
    -

    - -Of course a better way would be to add a __index metamethod for the lua object. -

    - -Similarily, to implement virtual functions, you'll need to create a c++ object that inherits -from the desired type, implement its virtual functions, and use that to inherit from lua. The -object would have a reference to the lua table, and call its methods from the c++ virtual -methods. -

    - -Note: the current implementation (as of version 1.0.6) stores the C instance -inside the lua table on the field ".c_instance", and looks that up when necesary. This -might change in the future, so it is recommended to use an alternative way to store the -C instance to use with your own object system. - -

    tolua.setpeer (object, peer_table) (lua 5.1 only)

    - -Sets the table as the object's peer table (can be nil). The peer table is where all the custom -lua fields for the object are stored. When compiled with lua 5.1, tolua++ stores the -peer as the object's envirnment table, and uses uses lua_gettable/settable (instead of -lua_rawget/set for lua 5.0) to retrieve and store fields on it. This allows us to implement our own -object system on our table (using metatables), and use it as a way to inherit from the userdata object. -Consider an alternative to the previous example: - -
    --- a 'LuaWidget' class
    -LuaWidget = {}
    -LuaWidget.__index = LuaWidget
    -
    -function LuaWidget:add_button(caption)
    -
    -	-- add a button to our widget here. 'self' will be the userdata Widget
    -end
    -
    -
    -local w = Widget()
    -local t = {}
    -setmetatable(t, LuaWidget) -- make 't' an instance of LuaWidget
    -
    -tolua.setpeer(w, t) -- make 't' the peer table of 'w'
    -
    -set_parent(w) -- we use 'w' as the object now
    -
    -w:show() -- a method from 'Widget'
    -w:add_button("Quit") -- a method from LuaWidget (but we still use 'w' to call it)
    -
    - -When indexing our object, the peer table (if present) will be consulted first, so we -don't need to implement our own __index metamethod to call the C++ functions. - -

    tolua.getpeer (object) (lua 5.1 only)

    - -Retrieves the peer table from the object (can be nil). - - - -

    -Embedded Lua code

    -tolua allows us to embed Lua code in the C/C++ generated code. To -do that, it compiles the specified Lua code and creates a C constant string, -storing the corresponding bytecodes, in the generated code.  When -the package is opened, such a string is executed. The format to embed Lua -code is: -

    $[ -

    embedded Lua code -
    ... -

    $] -

    As an example consider the following .pkg excerpt: -

    /* Bind a Point class */ -
    class Point -
    { -
     Point (int x, int y); -
     ~Point (); -
     void print (); -
     ... -
    } CPoint; -

    $[ -

    -- Create a Point constructor -
    function Point (self) -
     local cobj = CPoint:new(self.x or 0, self.y or 0) -
     tolua.takeownership(cobj) -
     return cobj -
    end -

    $] -

    Binding such a code would allow us to write the following Lua code: -

    p = Point{ x=2, y=3 } -
    p:print() -
    ... -
      - -

    Customizing tolua++

    -

    - -tolua++ calls empty functions at specific points of its execution. This functions -can be redefined on a separate lua file (and included using the -L command line option) -and be used to control the way tolua++ behaves. This is the list of functions -(taken from basic.lua on the tolua++ source): -

    - -

    -
    --- called right after processing the $[ichl]file directives,
    --- right before processing anything else
    --- takes the package object as the parameter
    -function preprocess_hook(p)
    -	-- p.code has all the input code from the pkg
    -end
    -
    -
    --- called for every $ifile directive
    --- takes a table with a string called 'code' inside, the filename, and any extra arguments
    --- passed to $ifile. no return value
    -function include_file_hook(t, filename, ...)
    -
    -end
    -
    --- called after processing anything that's not code (like '$renaming', comments, etc)
    --- and right before parsing the actual code.
    --- takes the Package object with all the code on the 'code' key. no return value
    -function preparse_hook(package)
    -
    -end
    -
    -
    --- called after writing all the output.
    --- takes the Package object
    -function post_output_hook(package)
    -
    -end
    -
    --- called at the beginning of the main parser function, with the code being parsed as a parameter
    --- it can return nil if nothing was foind, or the contents of 'code', modified by the function
    --- Usually a parser hook will search the beginning of the string for a token, and if it finds
    --- anything, return the string without that token (after doing whatever it has to do with the token).
    -function parser_hook(code)
    -
    -end
    -
    -
    --- called from classFunction:supcode, before the call to the function is output
    --- the classFunction object is passed.
    -function pre_call_hook(f)
    -
    -end
    -
    --- called from classFunction:supcode, after the call to the function is output
    --- the classFunction object is passed.
    -function post_call_hook(f)
    -
    -end
    -
    --- called before the register code is output
    -function pre_register_hook(package)
    -
    -end
    -
    --- called to output an error message
    -function output_error_hook(...)
    -	return string.format(...)
    -end
    -
    -
    -
    -

    - -

    Handling custom types

    - -Starting from version 1.0.93, it is possible to specify custom functions to handle certain types. There are 3 -types of functions: a 'push function', used to push the C value onto the Lua stack, a 'to function', -used to retrieve the value from the Lua stack, and return it as a C value, and an 'is function', used to -check if the value on the stack is valid (or convertible to a C value by the to function). These functions are modelled upon -tolua_pushusertype, tolua_tousertype and tolua_isusertype, declared in tolua++.h. -

    -A number of arrays found in basic.lua are used to specify these functions: -

    - -

    --- for specific types
    -_push_functions = {}
    -_is_functions = {}
    -_to_functions = {}
    -
    --- for base types
    -_base_push_functions = {}
    -_base_is_functions = {}
    -_base_to_functions = {}
    -
    - -Example (using the -L command line option): -

    - -

    -_is_functions['Vector3'] = 'custom_is_vector3' -- checks for a 3d vector
    -                                               -- (either userdata, or a table with 3 values)
    -_to_functions['Vector3'] = 'custom_to_vector3' -- convertes the eventual table to a Vector3
    -
    -_base_push_functions['Widget'] = 'custom_push_widget' -- pushes anything that inherits from Widget
    -
    - -The _base tables are used to lookup functions for types that are up in the inheritance chain. - -

    Access

    - -Starting from version 1.0.7, all objects have a an access flag, which determines the object's access -inside its container. Container objects also have a member called curr_member_access, which determines -the access of each child object at the moment of its addition to the container. If the access flag has -the value nil (default), false or 0, the object is public. Otherwise, the object -is not public, and tolua++ will not export any code for that object (and any objects it may contain). -

    - -Another 'interesting' function is extract_code, defined on basic.lua, which -extracs the code from files included with $cfile and $hfile (by looking for tolua_begin/end and tolua_export). -

    - -

    Compatibility with older versions.

    - -

    tolua++ <1.0.90

    -

    -Version 1.0.90 of tolua++ introduces 2 small API changes the might be incompatible -with older versions on some cases: -

    -TEMPLATE_BIND -

    -TEMPLATE_BIND is deprecated. Use TOLUA_TEMPLATE_BIND instead. Also, when -declaring a template, the TOLUA_TEMPLATE_BIND statement has to be the first thing -inside the class declaration, otherwise it will be ignored. This fixes a possible problem -with nested template declarations. -

    - -Retrieving Objects -

    - -When passing a full userdata to a function that accepts light userdata parameters (void*), -the tolua++ library function tolua_touserdata will detect the full userdata and dereference -the void** pointer if necesary. This is a change on the function's behaviour (which used to return the pointer as-is). This allows us to pass pointers to objects to a function that accepts -void* pointers. Note that this was a problem when switching from toLua version 4 to version 5 (and tolua++ versions < 1.0.90). - -

    toLua 4

    -

    - -Retrieving Objects -

    - -Users switching from tolua v4 should know that tolua++ stores the objects as -void** on Lua, so when retrieving an object from the luastate using lua_touserdata, -the pointer should be dereferenced. The library function tolua_tousertype -should work as expected. Example: -

    - -

    -lua_pushglobal(lua_state, "get_Object");
    -lua_call(lua_state, 0, 1);  // calling a function that returns an Object
    -
    -Object *new_object = (Object*)(*lua_touserdata(lua_state, -1));
    -or
    -Object *new_object = (Object*)tolua_tousertype(lua_state, -1, NULL);
    -
    - -C++ Strings -

    - -tolua++ binds the c++ type std::string as a basic type, passing it -to Lua as a regular string (using the method c_str()). This feature can be -turned off with the command line option -S. -

    - -Operators -

    - -The list of supported operators has changed, see Binding classes and methods -for more information. -

    - -

    toLua 5

    -

    - -Class destructors. -

    - -With every class constructor, tolua++ exports a 'local' constructor, to create an instance -of the class that is owned by the lua state. To implement this, tolua++ will also export -a function that will delete the class. There are 2 options to prevent this: -

    - -Using the -D command line option will turn this off completely. Destructor functions will -only be exported when a destructor for the class is explicitly declared, or when there is a function -or method that returns an object of the type by value (this is compatible with tolua's behaviour). -

    - -Using the TOLUA_PROTECTED_DESTRUCTOR directive inside the class declaration, to specify that the -class has a private or protected destructor. In this case, no destructor will be exported for that class. -

    - -operator[] index -

    - -Users switching from tolua v5 should know that tolua 5 substracts 1 -from the index on operator[] functions, for compatibility with lua's method for indexing arrays -(1 is the first element). This feature is turned off by default on tolua++ -(making it compatible with tolua 4). It can be turned back on with the -command line option -1 -

    - -C++ Strings -

    - -(see c++ strings on tolua 4 below) - - -

    -Changes since v. 3.0

    - -
      - -
    • -Support for binding arrays as variables and struct/class fields;
    • - -
    • -Support for embedding Lua code into the generated binding code;
    • - -
    • -New utility functions: cast and takeownership;
    • - -
    • -Option to create the corresponding header file of the binding code;
    • - -
    • -New "close" package function;
    • - -
    • -Fixed bug on cloning objects in C++;
    • - -
    • -Fixed bug on enum and struct parsing;
    • -
    -

    -Changes since v. 2.0

    -
      - -
    • -There is a new executable parser;
    • - -
    • -Support for multiple Lua states is provided;
    • - -
    • -Support for module definition is provided;
    • - -
    • -Global variables is now directly bound to Lua global variables;
    • - -
    • -Constness of user defined types is preserved in Lua;
    • - -
    • -Support for multiple returned values from C/C++ is provided (simulating -parameters passed by reference);
    • - -
    • -Constants, variables, and functions bound to Lua can have different names -from their C/C++ counterparts;
    • - -
    • -Object-oriented framework (and other utility functions) used in tolua -is -now exported for Lua programmers;
    • - -

      -Incompatibilities

      -Lua code based on tolua v2.* should run with no change on tolua -v3.0. -Although, it may be necessary to change the .pkg file in order to get the -same behavior. The following incompatibilities exist: -
        -
      • -Parameters defined as pointer to basic types are no longer converted to -arrays of dimension one; they are now considered parameters passed by reference.
      • - -
      • -Automatic initialization for C++ code must be explicitly requested when -using the new parser;
      • - -
      • -Global variables are no longer mapped to a table; the definition of a module -including the global variables may be used to simulate the old behavior;
      • - -
      • -The initialization function is no longer toLua_package_open but -tolua_package_open, without the capital letter (sorry!).
      • -
      -
    -

    -Changes since v. 1.*

    - -
      -
    • -The binding code should run much faster;
    • - -
    • -The cleaned header file extension should now be .pkg instead -of .L;
    • - -
    • -Type modifiers is now accepted (though the current version ignores -const's);
    • - -
    • -Returning object by value is accepted and memory allocation is controlled -by Lua garbage collection;
    • - -
    • -Overloaded functions/methods are accepted;
    • - -
    • -Parameters with default values are accepted;
    • - -
    • -Some overloaded operators are automatically bound.
    • -
    - -

    -Credits

    -Luiz Henrique de Figueiredo had the idea of creating a tool to automatically -bind C code to Lua. L.H.F. wrote the very first version of such a tool -(that bound C functions, variables, and constants) in awk. At that -time, Waldemar Celes (now the main author) was only responsible for the C code that supported the generated -binding code. -

    -While working at NGD Studios, Ariel Manzur made some changes to tolua4 for their -game engine. After the release of tolua5, having left NGD, enough changes were -made to tolua to justify a separate release (with Waldemar's blessing :-) -
      -

    -Availability

    -tolua++ is freely available by http. -The software provided hereunder is on an "as is" basis, and the author -has no obligation to provide maintenance, support, updates, enhancements, -or modifications. -

    -


    This document was created by Waldemar Celes -With modifications by Ariel Manzur/ -
    Last update: Sept 2003 - - diff --git a/src/third_party/toluapp/doc/toluapp.gif b/src/third_party/toluapp/doc/toluapp.gif deleted file mode 100644 index b9f6f346d..000000000 Binary files a/src/third_party/toluapp/doc/toluapp.gif and /dev/null differ diff --git a/src/third_party/toluapp/libtoluapp.def b/src/third_party/toluapp/libtoluapp.def deleted file mode 100644 index 25b1b17af..000000000 --- a/src/third_party/toluapp/libtoluapp.def +++ /dev/null @@ -1,65 +0,0 @@ -EXPORTS -class_gc_event -push_table_instance -tolua_array -tolua_beginmodule -tolua_cclass -tolua_classevents -tolua_constant -tolua_copy -tolua_default_collect -tolua_dobuffer -tolua_endmodule -tolua_error -tolua_fast_isa -tolua_function -tolua_getfieldboolean -tolua_isboolean -tolua_isbooleanarray -tolua_ismodulemetatable -tolua_isnoobj -tolua_isnumber -tolua_isnumberarray -tolua_isstring -tolua_isstringarray -tolua_istable -tolua_istablearray -tolua_isuserdata -tolua_isuserdataarray -tolua_isusertable -tolua_isusertype -tolua_isusertypearray -tolua_isvalue -tolua_isvaluearray -tolua_module -tolua_moduleevents -tolua_open -tolua_pushboolean -tolua_pushfieldboolean -tolua_pushfieldnumber -tolua_pushfieldstring -tolua_pushfielduserdata -tolua_pushfieldusertype -tolua_pushfieldusertype_and_takeownership -tolua_pushfieldvalue -tolua_pushnumber -tolua_pushstring -tolua_pushuserdata -tolua_pushusertype -tolua_pushusertype_and_takeownership -tolua_pushvalue -tolua_register_gc -tolua_toboolean -tolua_tofieldnumber -tolua_tofieldstring -tolua_tofielduserdata -tolua_tofieldusertype -tolua_tofieldvalue -tolua_tonumber -tolua_tostring -tolua_touserdata -tolua_tousertype -tolua_tovalue -tolua_typename -tolua_usertype -tolua_variable diff --git a/src/third_party/toluapp/src/bin/SCsub b/src/third_party/toluapp/src/bin/SCsub deleted file mode 100644 index 35ccd7a24..000000000 --- a/src/third_party/toluapp/src/bin/SCsub +++ /dev/null @@ -1,12 +0,0 @@ -Import('env') - -src = [ - env.Object('tolua.c'), - ] - - -toluabind = env.LuaBinding('toluabind.c', 'tolua_scons.pkg', 'tolua', bootstrap = True) - -env.bin_target = env.Program('#/bin/'+env['tolua_bin'], src + [toluabind], LIBS = ['$tolua_lib'] + env['LIBS']) - -env.bootstrap_target = env.Program('#/bin/'+env['TOLUAPP_BOOTSTRAP'], src + ['toluabind_default.c', env.lib_target_static], LIBS = env['LIBS']) diff --git a/src/third_party/toluapp/src/bin/lua/all.lua b/src/third_party/toluapp/src/bin/lua/all.lua deleted file mode 100644 index 83f8a3cb9..000000000 --- a/src/third_party/toluapp/src/bin/lua/all.lua +++ /dev/null @@ -1,30 +0,0 @@ -dofile(path.."compat-5.1.lua") -dofile(path.."compat.lua") -dofile(path.."basic.lua") -dofile(path.."feature.lua") -dofile(path.."verbatim.lua") -dofile(path.."code.lua") -dofile(path.."typedef.lua") -dofile(path.."container.lua") -dofile(path.."package.lua") -dofile(path.."module.lua") -dofile(path.."namespace.lua") -dofile(path.."define.lua") -dofile(path.."enumerate.lua") -dofile(path.."declaration.lua") -dofile(path.."variable.lua") -dofile(path.."array.lua") -dofile(path.."function.lua") -dofile(path.."operator.lua") -dofile(path.."template_class.lua") -dofile(path.."class.lua") -dofile(path.."clean.lua") ---dofile(path.."custom.lua") -dofile(path.."doit.lua") - -local err,msg = xpcall(doit, debug.traceback) -if not err then ---print("**** msg is "..tostring(msg)) - local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") - tolua_error(msg,label) -end diff --git a/src/third_party/toluapp/src/bin/lua/array.lua b/src/third_party/toluapp/src/bin/lua/array.lua deleted file mode 100644 index f35aa98ce..000000000 --- a/src/third_party/toluapp/src/bin/lua/array.lua +++ /dev/null @@ -1,233 +0,0 @@ --- tolua: array class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1999 --- $Id: array.lua,v 1.1 2000/11/06 22:03:57 celes Exp $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Array class --- Represents a extern array variable or a public member of a class. --- Stores all fields present in a declaration. -classArray = { -} -classArray.__index = classArray -setmetatable(classArray,classDeclaration) - --- Print method -function classArray:print (ident,close) - print(ident.."Array{") - print(ident.." mod = '"..self.mod.."',") - print(ident.." type = '"..self.type.."',") - print(ident.." ptr = '"..self.ptr.."',") - print(ident.." name = '"..self.name.."',") - print(ident.." def = '"..self.def.."',") - print(ident.." dim = '"..self.dim.."',") - print(ident.." ret = '"..self.ret.."',") - print(ident.."}"..close) -end - --- check if it is a variable -function classArray:isvariable () - return true -end - - --- get variable value -function classArray:getvalue (class,static) - if class and static then - return class..'::'..self.name..'[tolua_index]' - elseif class then - return 'self->'..self.name..'[tolua_index]' - else - return self.name..'[tolua_index]' - end -end - --- Write binding functions -function classArray:supcode () - local class = self:inclass() - - -- get function ------------------------------------------------ - if class then - output("/* get function:",self.name," of class ",class," */") - else - output("/* get function:",self.name," */") - end - self.cgetname = self:cfuncname("tolua_get") - output("#ifndef TOLUA_DISABLE_"..self.cgetname) - output("\nstatic int",self.cgetname,"(lua_State* tolua_S)") - output("{") - output(" int tolua_index;") - - -- declare self, if the case - local _,_,static = strfind(self.mod,'^%s*(static)') - if class and static==nil then - output(' ',self.parent.type,'*','self;') - output(' lua_pushstring(tolua_S,".self");') - output(' lua_rawget(tolua_S,1);') - output(' self = ') - output('(',self.parent.type,'*) ') - output('lua_touserdata(tolua_S,-1);') - elseif static then - _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') - end - - -- check index - output('#ifndef TOLUA_RELEASE\n') - output(' {') - output(' tolua_Error tolua_err;') - output(' if (!tolua_isnumber(tolua_S,2,0,&tolua_err))') - output(' tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);') - output(' }') - output('#endif\n') - if flags['1'] then -- for compatibility with tolua5 ? - output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') - else - output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);') - end - output('#ifndef TOLUA_RELEASE\n') - if self.dim and self.dim ~= '' then - output(' if (tolua_index<0 || tolua_index>='..self.dim..')') - else - output(' if (tolua_index<0)') - end - output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') - output('#endif\n') - - -- return value - local t,ct = isbasic(self.type) - local push_func = get_push_function(t) - if t then - output(' tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static)..');') - else - t = self.type - if self.ptr == '&' or self.ptr == '' then - output(' ',push_func,'(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') - else - output(' ',push_func,'(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') - end - end - output(' return 1;') - output('}') - output('#endif //#ifndef TOLUA_DISABLE\n') - output('\n') - - -- set function ------------------------------------------------ - if not strfind(self.type,'const') then - if class then - output("/* set function:",self.name," of class ",class," */") - else - output("/* set function:",self.name," */") - end - self.csetname = self:cfuncname("tolua_set") - output("#ifndef TOLUA_DISABLE_"..self.csetname) - output("\nstatic int",self.csetname,"(lua_State* tolua_S)") - output("{") - - -- declare index - output(' int tolua_index;') - - -- declare self, if the case - local _,_,static = strfind(self.mod,'^%s*(static)') - if class and static==nil then - output(' ',self.parent.type,'*','self;') - output(' lua_pushstring(tolua_S,".self");') - output(' lua_rawget(tolua_S,1);') - output(' self = ') - output('(',self.parent.type,'*) ') - output('lua_touserdata(tolua_S,-1);') - elseif static then - _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') - end - - -- check index - output('#ifndef TOLUA_RELEASE\n') - output(' {') - output(' tolua_Error tolua_err;') - output(' if (!tolua_isnumber(tolua_S,2,0,&tolua_err))') - output(' tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);') - output(' }') - output('#endif\n') - - if flags['1'] then -- for compatibility with tolua5 ? - output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') - else - output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0);') - end - - output('#ifndef TOLUA_RELEASE\n') - if self.dim and self.dim ~= '' then - output(' if (tolua_index<0 || tolua_index>='..self.dim..')') - else - output(' if (tolua_index<0)') - end - output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') - output('#endif\n') - - -- assign value - local ptr = '' - if self.ptr~='' then ptr = '*' end - output(' ') - if class and static then - output(class..'::'..self.name..'[tolua_index]') - elseif class then - output('self->'..self.name..'[tolua_index]') - else - output(self.name..'[tolua_index]') - end - local t = isbasic(self.type) - output(' = ') - if not t and ptr=='' then output('*') end - output('((',self.mod,self.type) - if not t then - output('*') - end - output(') ') - local def = 0 - if self.def ~= '' then def = self.def end - if t then - output('tolua_to'..t,'(tolua_S,3,',def,'));') - else - local to_func = get_to_function(self.type) - output(to_func,'(tolua_S,3,',def,'));') - end - output(' return 0;') - output('}') - output('#endif //#ifndef TOLUA_DISABLE\n') - output('\n') - end - -end - -function classArray:register (pre) - if not self:check_public_access() then - return - end - - pre = pre or '' - if self.csetname then - output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') - else - output(pre..'tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);') - end -end - --- Internal constructor -function _Array (t) - setmetatable(t,classArray) - append(t) - return t -end - --- Constructor --- Expects a string representing the variable declaration. -function Array (s) - return _Array (Declaration(s,'var')) -end - - diff --git a/src/third_party/toluapp/src/bin/lua/basic.lua b/src/third_party/toluapp/src/bin/lua/basic.lua deleted file mode 100644 index f651f1fe6..000000000 --- a/src/third_party/toluapp/src/bin/lua/basic.lua +++ /dev/null @@ -1,414 +0,0 @@ --- tolua: basic utility functions --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- Last update: Apr 2003 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Basic C types and their corresponding Lua types --- All occurrences of "char*" will be replaced by "_cstring", --- and all occurrences of "void*" will be replaced by "_userdata" -_basic = { - ['void'] = '', - ['char'] = 'number', - ['int'] = 'number', - ['short'] = 'number', - ['long'] = 'number', - ['unsigned'] = 'number', - ['float'] = 'number', - ['double'] = 'number', - ['_cstring'] = 'string', - ['_userdata'] = 'userdata', - ['char*'] = 'string', - ['void*'] = 'userdata', - ['bool'] = 'boolean', - ['lua_Object'] = 'value', - ['LUA_VALUE'] = 'value', -- for compatibility with tolua 4.0 - ['lua_State*'] = 'state', - ['_lstate'] = 'state', - ['lua_Function'] = 'value', -} - -_basic_ctype = { - number = "lua_Number", - string = "const char*", - userdata = "void*", - boolean = "bool", - value = "int", - state = "lua_State*", -} - --- functions the are used to do a 'raw push' of basic types -_basic_raw_push = {} - --- List of user defined types --- Each type corresponds to a variable name that stores its tag value. -_usertype = {} - --- List of types that have to be collected -_collect = {} - --- List of types -_global_types = {n=0} -_global_types_hash = {} - --- list of classes -_global_classes = {} - --- List of enum constants -_global_enums = {} - --- List of auto renaming -_renaming = {} -function appendrenaming (s) - local b,e,old,new = strfind(s,"%s*(.-)%s*@%s*(.-)%s*$") - if not b then - error("#Invalid renaming syntax; it should be of the form: pattern@pattern") - end - tinsert(_renaming,{old=old, new=new}) -end - -function applyrenaming (s) - for i=1,getn(_renaming) do - local m,n = gsub(s,_renaming[i].old,_renaming[i].new) - if n ~= 0 then - return m - end - end - return nil -end - --- Error handler -function tolua_error (s,f) -if _curr_code then - print("***curr code for error is "..tostring(_curr_code)) - print(debug.traceback()) -end - local out = _OUTPUT - _OUTPUT = _STDERR - if strsub(s,1,1) == '#' then - write("\n** tolua: "..strsub(s,2)..".\n\n") - if _curr_code then - local _,_,s = strfind(_curr_code,"^%s*(.-\n)") -- extract first line - if s==nil then s = _curr_code end - s = gsub(s,"_userdata","void*") -- return with 'void*' - s = gsub(s,"_cstring","char*") -- return with 'char*' - s = gsub(s,"_lstate","lua_State*") -- return with 'lua_State*' - write("Code being processed:\n"..s.."\n") - end - else - if not f then f = "(f is nil)" end - print("\n** tolua internal error: "..f..s..".\n\n") - return - end - _OUTPUT = out -end - -function warning (msg) - if flags.q then return end - local out = _OUTPUT - _OUTPUT = _STDERR - write("\n** tolua warning: "..msg..".\n\n") - _OUTPUT = out -end - --- register an user defined type: returns full type -function regtype (t) - --if isbasic(t) then - -- return t - --end - local ft = findtype(t) - - if not _usertype[ft] then - return appendusertype(t) - end - return ft -end - --- return type name: returns full type -function typevar(type) - if type == '' or type == 'void' then - return type - else - local ft = findtype(type) - if ft then - return ft - end - _usertype[type] = type - return type - end -end - --- check if basic type -function isbasic (type) - local t = gsub(type,'const ','') - local m,t = applytypedef('', t) - local b = _basic[t] - if b then - return b,_basic_ctype[b] - end - return nil -end - --- split string using a token -function split (s,t) - local l = {n=0} - local f = function (s) - l.n = l.n + 1 - l[l.n] = s - return "" - end - local p = "%s*(.-)%s*"..t.."%s*" - s = gsub(s,"^%s+","") - s = gsub(s,"%s+$","") - s = gsub(s,p,f) - l.n = l.n + 1 - l[l.n] = gsub(s,"(%s%s*)$","") - return l -end - --- splits a string using a pattern, considering the spacial cases of C code (templates, function parameters, etc) --- pattern can't contain the '^' (as used to identify the begining of the line) --- also strips whitespace -function split_c_tokens(s, pat) - - s = string.gsub(s, "^%s*", "") - s = string.gsub(s, "%s*$", "") - - local token_begin = 1 - local token_end = 1 - local ofs = 1 - local ret = {n=0} - - function add_token(ofs) - - local t = string.sub(s, token_begin, ofs) - t = string.gsub(t, "^%s*", "") - t = string.gsub(t, "%s*$", "") - ret.n = ret.n + 1 - ret[ret.n] = t - end - - while ofs <= string.len(s) do - - local sub = string.sub(s, ofs, -1) - local b,e = string.find(sub, "^"..pat) - if b then - add_token(ofs-1) - ofs = ofs+e - token_begin = ofs - else - local char = string.sub(s, ofs, ofs) - if char == "(" or char == "<" then - - local block - if char == "(" then block = "^%b()" end - if char == "<" then block = "^%b<>" end - - b,e = string.find(sub, block) - if not b then - -- unterminated block? - ofs = ofs+1 - else - ofs = ofs + e - end - - else - ofs = ofs+1 - end - end - - end - add_token(ofs) - --if ret.n == 0 then - - -- ret.n=1 - -- ret[1] = "" - --end - - return ret - -end - --- concatenate strings of a table -function concat (t,f,l,jstr) - jstr = jstr or " " - local s = '' - local i=f - while i<=l do - s = s..t[i] - i = i+1 - if i <= l then s = s..jstr end - end - return s -end - --- concatenate all parameters, following output rules -function concatparam (line, ...) - local i=1 - while i<=arg.n do - if _cont and not strfind(_cont,'[%(,"]') and - strfind(arg[i],"^[%a_~]") then - line = line .. ' ' - end - line = line .. arg[i] - if arg[i] ~= '' then - _cont = strsub(arg[i],-1,-1) - end - i = i+1 - end - if strfind(arg[arg.n],"[%/%)%;%{%}]$") then - _cont=nil line = line .. '\n' - end - return line -end - --- output line -function output (...) - local i=1 - while i<=arg.n do - if _cont and not strfind(_cont,'[%(,"]') and - strfind(arg[i],"^[%a_~]") then - write(' ') - end - write(arg[i]) - if arg[i] ~= '' then - _cont = strsub(arg[i],-1,-1) - end - i = i+1 - end - if strfind(arg[arg.n],"[%/%)%;%{%}]$") then - _cont=nil write('\n') - end -end - -function get_property_methods(ptype, name) - - if get_property_methods_hook and get_property_methods_hook(ptype,name) then - return get_property_methods_hook(ptype, name) - end - - if ptype == "default" then -- get_name, set_name - return "get_"..name, "set_"..name - end - - if ptype == "qt" then -- name, setName - return name, "set"..string.upper(string.sub(name, 1, 1))..string.sub(name, 2, -1) - end - - if ptype == "overload" then -- name, name - return name,name - end - - return nil -end - --------------- the hooks - --- called right after processing the $[ichl]file directives, --- right before processing anything else --- takes the package object as the parameter -function preprocess_hook(p) - -- p.code has all the input code from the pkg -end - - --- called for every $ifile directive --- takes a table with a string called 'code' inside, the filename, and any extra arguments --- passed to $ifile. no return value -function include_file_hook(t, filename, ...) - -end - --- called after processing anything that's not code (like '$renaming', comments, etc) --- and right before parsing the actual code. --- takes the Package object with all the code on the 'code' key. no return value -function preparse_hook(package) - -end - --- called before starting output -function pre_output_hook(package) - -end - --- called after writing all the output. --- takes the Package object -function post_output_hook(package) - -end - - --- called from 'get_property_methods' to get the methods to retrieve a property --- according to its type -function get_property_methods_hook(property_type, name) - -end - --- called from ClassContainer:doparse with the string being parsed --- return nil, or a substring -function parser_hook(s) - - return nil -end - --- called from classFunction:supcode, before the call to the function is output -function pre_call_hook(f) - -end - --- called from classFunction:supcode, after the call to the function is output -function post_call_hook(f) - -end - --- called before the register code is output -function pre_register_hook(package) - -end - --- called to output an error message -function output_error_hook(...) - return string.format(...) -end - --- custom pushers - -_push_functions = {} -_is_functions = {} -_to_functions = {} - -_base_push_functions = {} -_base_is_functions = {} -_base_to_functions = {} - -local function search_base(t, funcs) - - local class = _global_classes[t] - - while class do - if funcs[class.type] then - return funcs[class.type] - end - class = _global_classes[class.btype] - end - return nil -end - -function get_push_function(t) - return _push_functions[t] or search_base(t, _base_push_functions) or "tolua_pushusertype" -end - -function get_to_function(t) - return _to_functions[t] or search_base(t, _base_to_functions) or "tolua_tousertype" -end - -function get_is_function(t) - return _is_functions[t] or search_base(t, _base_is_functions) or "tolua_isusertype" -end diff --git a/src/third_party/toluapp/src/bin/lua/class.lua b/src/third_party/toluapp/src/bin/lua/class.lua deleted file mode 100644 index 592705282..000000000 --- a/src/third_party/toluapp/src/bin/lua/class.lua +++ /dev/null @@ -1,202 +0,0 @@ --- tolua: class class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Class class --- Represents a class definition. --- Stores the following fields: --- name = class name --- base = class base, if any (only single inheritance is supported) --- {i} = list of members -classClass = { - classtype = 'class', - name = '', - base = '', - type = '', - btype = '', - ctype = '', -} -classClass.__index = classClass -setmetatable(classClass,classContainer) - - --- register class -function classClass:register (pre) - - if not self:check_public_access() then - return - end - - pre = pre or '' - push(self) - if _collect[self.type] then - output(pre,'#ifdef __cplusplus\n') - output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",'.._collect[self.type]..');') - output(pre,'#else\n') - output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') - output(pre,'#endif\n') - else - output(pre..'tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') - end - if self.extra_bases then - for k,base in ipairs(self.extra_bases) do - -- not now - --output(pre..' tolua_addbase(tolua_S, "'..self.type..'", "'..base..'");') - end - end - output(pre..'tolua_beginmodule(tolua_S,"'..self.lname..'");') - local i=1 - while self[i] do - self[i]:register(pre..' ') - i = i+1 - end - output(pre..'tolua_endmodule(tolua_S);') - pop() -end - --- return collection requirement -function classClass:requirecollection (t) - if self.flags.protected_destructor or (not self:check_public_access()) then - return false - end - push(self) - local r = false - local i=1 - while self[i] do - r = self[i]:requirecollection(t) or r - i = i+1 - end - pop() - -- only class that exports destructor can be appropriately collected - -- classes that export constructors need to have a collector (overrided by -D flag on command line) - if self._delete or ((not flags['D']) and self._new) then - --t[self.type] = "tolua_collect_" .. gsub(self.type,"::","_") - t[self.type] = "tolua_collect_" .. clean_template(self.type) - r = true - end - return r -end - --- output tags -function classClass:decltype () - push(self) - self.type = regtype(self.original_name or self.name) - self.btype = typevar(self.base) - self.ctype = 'const '..self.type - if self.extra_bases then - for i=1,table.getn(self.extra_bases) do - self.extra_bases[i] = typevar(self.extra_bases[i]) - end - end - local i=1 - while self[i] do - self[i]:decltype() - i = i+1 - end - pop() -end - - --- Print method -function classClass:print (ident,close) - print(ident.."Class{") - print(ident.." name = '"..self.name.."',") - print(ident.." base = '"..self.base.."';") - print(ident.." lname = '"..self.lname.."',") - print(ident.." type = '"..self.type.."',") - print(ident.." btype = '"..self.btype.."',") - print(ident.." ctype = '"..self.ctype.."',") - local i=1 - while self[i] do - self[i]:print(ident.." ",",") - i = i+1 - end - print(ident.."}"..close) -end - -function classClass:set_protected_destructor(p) - self.flags.protected_destructor = self.flags.protected_destructor or p -end - --- Internal constructor -function _Class (t) - setmetatable(t,classClass) - t:buildnames() - append(t) - return t -end - --- Constructor --- Expects the name, the base (array) and the body of the class. -function Class (n,p,b) - - if table.getn(p) > 1 then - b = string.sub(b, 1, -2) - for i=2,table.getn(p),1 do - b = b.."\n tolua_inherits "..p[i].." __"..p[i].."__;\n" - end - b = b.."\n}" - end - - -- check for template - b = string.gsub(b, "^{%s*TEMPLATE_BIND", "{\nTOLUA_TEMPLATE_BIND") - local t,_,T,I = string.find(b, '^{%s*TOLUA_TEMPLATE_BIND%s*%(+%s*\"?([^\",]*)\"?%s*,%s*([^%)]*)%s*%)+') - if t then - - -- remove quotes - I = string.gsub(I, "\"", "") - T = string.gsub(T, "\"", "") - -- get type list - local types = split_c_tokens(I, ",") - -- remove TEMPLATE_BIND line - local bs = string.gsub(b, "^{%s*TOLUA_TEMPLATE_BIND[^\n]*\n", "{\n") - - local Tl = split(T, " ") - local tc = TemplateClass(n, p, bs, Tl) - - - tc:throw(types, true) - --for i=1,types.n do - -- tc:throw(split_c_tokens(types[i], " "), true) - --end - return - end - - local mbase - - if p then - mbase = table.remove(p, 1) - if not p[1] then p = nil end - end - - mbase = mbase and resolve_template_types(mbase) - - local c - local oname = string.gsub(n, "@.*$", "") - oname = getnamespace(classContainer.curr)..oname - - if _global_classes[oname] then - c = _global_classes[oname] - if mbase and ((not c.base) or c.base == "") then - c.base = mbase - end - else - c = _Class(_Container{name=n, base=mbase, extra_bases=p}) - - local ft = getnamespace(c.parent)..c.original_name - append_global_type(ft, c) - end - - push(c) - c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces - pop() -end - diff --git a/src/third_party/toluapp/src/bin/lua/clean.lua b/src/third_party/toluapp/src/bin/lua/clean.lua deleted file mode 100644 index fd5b7b635..000000000 --- a/src/third_party/toluapp/src/bin/lua/clean.lua +++ /dev/null @@ -1,79 +0,0 @@ --- mark up comments and strings -STR1 = "\001" -STR2 = "\002" -STR3 = "\003" -STR4 = "\004" -REM = "\005" -ANY = "([\001-\005])" -ESC1 = "\006" -ESC2 = "\007" - -MASK = { -- the substitution order is important - {ESC1, "\\'"}, - {ESC2, '\\"'}, - {STR1, "'"}, - {STR2, '"'}, - {STR3, "%[%["}, - {STR4, "%]%]"}, - {REM , "%-%-"}, -} - -function mask (s) - for i = 1,getn(MASK) do - s = gsub(s,MASK[i][2],MASK[i][1]) - end - return s -end - -function unmask (s) - for i = 1,getn(MASK) do - s = gsub(s,MASK[i][1],MASK[i][2]) - end - return s -end - -function clean (s) - -- check for compilation error - local code = "return function ()\n" .. s .. "\n end" - if not dostring(code) then - return nil - end - - if flags['C'] then - return s - end - - local S = "" -- saved string - - s = mask(s) - - -- remove blanks and comments - while 1 do - local b,e,d = strfind(s,ANY) - if b then - S = S..strsub(s,1,b-1) - s = strsub(s,b+1) - if d==STR1 or d==STR2 then - e = strfind(s,d) - S = S ..d..strsub(s,1,e) - s = strsub(s,e+1) - elseif d==STR3 then - e = strfind(s,STR4) - S = S..d..strsub(s,1,e) - s = strsub(s,e+1) - elseif d==REM then - s = gsub(s,"[^\n]*(\n?)","%1",1) - end - else - S = S..s - break - end - end - -- eliminate unecessary spaces - S = gsub(S,"[ \t]+"," ") - S = gsub(S,"[ \t]*\n[ \t]*","\n") - S = gsub(S,"\n+","\n") - S = unmask(S) - return S -end - diff --git a/src/third_party/toluapp/src/bin/lua/code.lua b/src/third_party/toluapp/src/bin/lua/code.lua deleted file mode 100644 index 5e19b6bbf..000000000 --- a/src/third_party/toluapp/src/bin/lua/code.lua +++ /dev/null @@ -1,105 +0,0 @@ --- tolua: code class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1999 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - --- global -code_n = 1 - --- Code class --- Represents Lua code to be compiled and included --- in the initialization function. --- The following fields are stored: --- text = text code -classCode = { - text = '', -} -classCode.__index = classCode -setmetatable(classCode,classFeature) - --- register code -function classCode:register (pre) - pre = pre or '' - -- clean Lua code - local s = clean(self.text) - if not s then - --print(self.text) - error("parser error in embedded code") - end - - -- get first line - local _, _, first_line=string.find(self.text, "^([^\n\r]*)") - if string.find(first_line, "^%s*%-%-") then - if string.find(first_line, "^%-%-##") then - first_line = string.gsub(first_line, "^%-%-##", "") - if flags['C'] then - s = string.gsub(s, "^%-%-##[^\n\r]*\n", "") - end - end - else - first_line = "" - end - - -- pad to 16 bytes - local npad = 16 - (#s % 16) - local spad = "" - for i=1,npad do - spad = spad .. "-" - end - s = s..spad - - -- convert to C - output('\n'..pre..'{ /* begin embedded lua code */\n') - output(pre..' int top = lua_gettop(tolua_S);') - output(pre..' static const unsigned char B[] = {\n ') - local t={n=0} - - local b = gsub(s,'(.)',function (c) - local e = '' - t.n=t.n+1 if t.n==15 then t.n=0 e='\n'..pre..' ' end - return format('%3u,%s',strbyte(c),e) - end - ) - output(b..strbyte(" ")) - output('\n'..pre..' };\n') - if first_line and first_line ~= "" then - output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: '..first_line..'");') - else - output(pre..' tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code '..code_n..'");') - end - output(pre..' lua_settop(tolua_S, top);') - output(pre..'} /* end of embedded lua code */\n\n') - code_n = code_n +1 -end - - --- Print method -function classCode:print (ident,close) - print(ident.."Code{") - print(ident.." text = [["..self.text.."]],") - print(ident.."}"..close) -end - - --- Internal constructor -function _Code (t) - setmetatable(t,classCode) - append(t) - return t -end - --- Constructor --- Expects a string representing the code text -function Code (l) - return _Code { - text = l - } -end - - diff --git a/src/third_party/toluapp/src/bin/lua/compat-5.1.lua b/src/third_party/toluapp/src/bin/lua/compat-5.1.lua deleted file mode 100644 index 7a2c60b69..000000000 --- a/src/third_party/toluapp/src/bin/lua/compat-5.1.lua +++ /dev/null @@ -1,57 +0,0 @@ -if string.find(_VERSION, "5%.0") then - return -end - --- "loadfile" -local function pp_dofile(path) - - local loaded = false - local getfile = function() - - if loaded then - return - else - local file,err = io.open(path) - if not file then - error("error loading file "..path..": "..err) - end - local ret = file:read("*a") - file:close() - - ret = string.gsub(ret, "%.%.%.%s*%)", "...) local arg = {n=select('#', ...), ...};") - - loaded = true - return ret - end - end - - local f = load(getfile, path) - if not f then - - error("error loading file "..path) - end - return f() -end - -old_dofile = dofile -dofile = pp_dofile - - --- string.gsub ---[[ -local ogsub = string.gsub -local function compgsub(a,b,c,d) - if type(c) == "function" then - local oc = c - c = function (...) return oc(...) or '' end - end - return ogsub(a,b,c,d) -end -string.repl = ogsub ---]] - ---string.gsub = compgsub - - - - diff --git a/src/third_party/toluapp/src/bin/lua/compat.lua b/src/third_party/toluapp/src/bin/lua/compat.lua deleted file mode 100644 index 45d6ae1ba..000000000 --- a/src/third_party/toluapp/src/bin/lua/compat.lua +++ /dev/null @@ -1,193 +0,0 @@ -------------------------------------------------------------------- --- Real globals --- _ALERT --- _ERRORMESSAGE --- _VERSION --- _G --- assert --- error --- metatable --- next --- print --- require --- tonumber --- tostring --- type --- unpack - -------------------------------------------------------------------- --- collectgarbage --- gcinfo - --- globals - --- call -> protect(f, err) --- loadfile --- loadstring - --- rawget --- rawset - --- getargs = Main.getargs ?? - -rawtype = type - -function do_ (f, err) - if not f then print(err); return end - local a,b = pcall(f) - if not a then print(b); return nil - else return b or true - end -end - -function dostring(s) return do_(loadstring(s)) end --- function dofile(s) return do_(loadfile(s)) end - -------------------------------------------------------------------- --- Table library -local tab = table -foreach = tab.foreach -foreachi = tab.foreachi -getn = tab.getn -tinsert = tab.insert -tremove = tab.remove -sort = tab.sort - -------------------------------------------------------------------- --- Debug library -local dbg = debug -getinfo = dbg.getinfo -getlocal = dbg.getlocal -setcallhook = function () error"`setcallhook' is deprecated" end -setlinehook = function () error"`setlinehook' is deprecated" end -setlocal = dbg.setlocal - -------------------------------------------------------------------- --- math library -local math = math -abs = math.abs -acos = function (x) return math.deg(math.acos(x)) end -asin = function (x) return math.deg(math.asin(x)) end -atan = function (x) return math.deg(math.atan(x)) end -atan2 = function (x,y) return math.deg(math.atan2(x,y)) end -ceil = math.ceil -cos = function (x) return math.cos(math.rad(x)) end -deg = math.deg -exp = math.exp -floor = math.floor -frexp = math.frexp -ldexp = math.ldexp -log = math.log -log10 = math.log10 -max = math.max -min = math.min -mod = math.mod -PI = math.pi ---??? pow = math.pow -rad = math.rad -random = math.random -randomseed = math.randomseed -sin = function (x) return math.sin(math.rad(x)) end -sqrt = math.sqrt -tan = function (x) return math.tan(math.rad(x)) end - -------------------------------------------------------------------- --- string library -local str = string -strbyte = str.byte -strchar = str.char -strfind = str.find -format = str.format -gsub = str.gsub -strlen = str.len -strlower = str.lower -strrep = str.rep -strsub = str.sub -strupper = str.upper - -------------------------------------------------------------------- --- os library -clock = os.clock -date = os.date -difftime = os.difftime -execute = os.execute --? -exit = os.exit -getenv = os.getenv -remove = os.remove -rename = os.rename -setlocale = os.setlocale -time = os.time -tmpname = os.tmpname - -------------------------------------------------------------------- --- compatibility only -getglobal = function (n) return _G[n] end -setglobal = function (n,v) _G[n] = v end - -------------------------------------------------------------------- - -local io, tab = io, table - --- IO library (files) -_STDIN = io.stdin -_STDERR = io.stderr -_STDOUT = io.stdout -_INPUT = io.stdin -_OUTPUT = io.stdout -seek = io.stdin.seek -- sick ;-) -tmpfile = io.tmpfile -closefile = io.close -openfile = io.open - -function flush (f) - if f then f:flush() - else _OUTPUT:flush() - end -end - -function readfrom (name) - if name == nil then - local f, err, cod = io.close(_INPUT) - _INPUT = io.stdin - return f, err, cod - else - local f, err, cod = io.open(name, "r") - _INPUT = f or _INPUT - return f, err, cod - end -end - -function writeto (name) - if name == nil then - local f, err, cod = io.close(_OUTPUT) - _OUTPUT = io.stdout - return f, err, cod - else - local f, err, cod = io.open(name, "w") - _OUTPUT = f or _OUTPUT - return f, err, cod - end -end - -function appendto (name) - local f, err, cod = io.open(name, "a") - _OUTPUT = f or _OUTPUT - return f, err, cod -end - -function read (...) - local f = _INPUT - if rawtype(arg[1]) == 'userdata' then - f = tab.remove(arg, 1) - end - return f:read(unpack(arg)) -end - -function write (...) - local f = _OUTPUT - if rawtype(arg[1]) == 'userdata' then - f = tab.remove(arg, 1) - end - return f:write(unpack(arg)) -end - diff --git a/src/third_party/toluapp/src/bin/lua/container.lua b/src/third_party/toluapp/src/bin/lua/container.lua deleted file mode 100644 index 2d11db7df..000000000 --- a/src/third_party/toluapp/src/bin/lua/container.lua +++ /dev/null @@ -1,786 +0,0 @@ --- tolua: container abstract class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - --- table to store namespaced typedefs/enums in global scope -global_typedefs = {} -global_enums = {} - --- Container class --- Represents a container of features to be bound --- to lua. -classContainer = -{ - curr = nil, -} -classContainer.__index = classContainer -setmetatable(classContainer,classFeature) - --- output tags -function classContainer:decltype () - push(self) - local i=1 - while self[i] do - self[i]:decltype() - i = i+1 - end - pop() -end - - --- write support code -function classContainer:supcode () - - if not self:check_public_access() then - return - end - - push(self) - local i=1 - while self[i] do - if self[i]:check_public_access() then - self[i]:supcode() - end - i = i+1 - end - pop() -end - -function classContainer:hasvar () - local i=1 - while self[i] do - if self[i]:isvariable() then - return 1 - end - i = i+1 - end - return 0 -end - --- Internal container constructor -function _Container (self) - setmetatable(self,classContainer) - self.n = 0 - self.typedefs = {tolua_n=0} - self.usertypes = {} - self.enums = {tolua_n=0} - self.lnames = {} - return self -end - --- push container -function push (t) - t.prox = classContainer.curr - classContainer.curr = t -end - --- pop container -function pop () ---print("name",classContainer.curr.name) ---foreach(classContainer.curr.usertypes,print) ---print("______________") - classContainer.curr = classContainer.curr.prox -end - --- get current namespace -function getcurrnamespace () - return getnamespace(classContainer.curr) -end - --- append to current container -function append (t) - return classContainer.curr:append(t) -end - --- append typedef to current container -function appendtypedef (t) - return classContainer.curr:appendtypedef(t) -end - --- append usertype to current container -function appendusertype (t) - return classContainer.curr:appendusertype(t) -end - --- append enum to current container -function appendenum (t) - return classContainer.curr:appendenum(t) -end - --- substitute typedef -function applytypedef (mod,type) - return classContainer.curr:applytypedef(mod,type) -end - --- check if is type -function findtype (type) - local t = classContainer.curr:findtype(type) - return t -end - --- check if is typedef -function istypedef (type) - return classContainer.curr:istypedef(type) -end - --- get fulltype (with namespace) -function fulltype (t) - local curr = classContainer.curr - while curr do - if curr then - if curr.typedefs and curr.typedefs[t] then - return curr.typedefs[t] - elseif curr.usertypes and curr.usertypes[t] then - return curr.usertypes[t] - end - end - curr = curr.prox - end - return t -end - --- checks if it requires collection -function classContainer:requirecollection (t) - push(self) - local i=1 - local r = false - while self[i] do - r = self[i]:requirecollection(t) or r - i = i+1 - end - pop() - return r -end - - --- get namesapce -function getnamespace (curr) - local namespace = '' - while curr do - if curr and - ( curr.classtype == 'class' or curr.classtype == 'namespace') - then - namespace = (curr.original_name or curr.name) .. '::' .. namespace - --namespace = curr.name .. '::' .. namespace - end - curr = curr.prox - end - return namespace -end - --- get namespace (only namespace) -function getonlynamespace () - local curr = classContainer.curr - local namespace = '' - while curr do - if curr.classtype == 'class' then - return namespace - elseif curr.classtype == 'namespace' then - namespace = curr.name .. '::' .. namespace - end - curr = curr.prox - end - return namespace -end - --- check if is enum -function isenum (type) - return classContainer.curr:isenum(type) -end - --- append feature to container -function classContainer:append (t) - self.n = self.n + 1 - self[self.n] = t - t.parent = self -end - --- append typedef -function classContainer:appendtypedef (t) - local namespace = getnamespace(classContainer.curr) - self.typedefs.tolua_n = self.typedefs.tolua_n + 1 - self.typedefs[self.typedefs.tolua_n] = t - self.typedefs[t.utype] = namespace .. t.utype - global_typedefs[namespace..t.utype] = t - t.ftype = findtype(t.type) or t.type - --print("appending typedef "..t.utype.." as "..namespace..t.utype.." with ftype "..t.ftype) - append_global_type(namespace..t.utype) - if t.ftype and isenum(t.ftype) then - - global_enums[namespace..t.utype] = true - end -end - --- append usertype: return full type -function classContainer:appendusertype (t) - local container - if t == (self.original_name or self.name) then - container = self.prox - else - container = self - end - local ft = getnamespace(container) .. t - container.usertypes[t] = ft - _usertype[ft] = ft - return ft -end - --- append enum -function classContainer:appendenum (t) - local namespace = getnamespace(classContainer.curr) - self.enums.tolua_n = self.enums.tolua_n + 1 - self.enums[self.enums.tolua_n] = t - global_enums[namespace..t.name] = t -end - --- determine lua function name overload -function classContainer:overload (lname) - if not self.lnames[lname] then - self.lnames[lname] = 0 - else - self.lnames[lname] = self.lnames[lname] + 1 - end - return format("%02d",self.lnames[lname]) -end - --- applies typedef: returns the 'the facto' modifier and type -function classContainer:applytypedef (mod,type) - if global_typedefs[type] then - --print("found typedef "..global_typedefs[type].type) - local mod1, type1 = global_typedefs[type].mod, global_typedefs[type].ftype - local mod2, type2 = applytypedef(mod.." "..mod1, type1) - --return mod2 .. ' ' .. mod1, type2 - return mod2, type2 - end - do return mod,type end -end - --- check if it is a typedef -function classContainer:istypedef (type) - local env = self - while env do - if env.typedefs then - local i=1 - while env.typedefs[i] do - if env.typedefs[i].utype == type then - return type - end - i = i+1 - end - end - env = env.parent - end - return nil -end - -function find_enum_var(var) - - if tonumber(var) then return var end - - local c = classContainer.curr - while c do - local ns = getnamespace(c) - for k,v in pairs(_global_enums) do - if match_type(var, v, ns) then - return v - end - end - if c.base and c.base ~= '' then - c = _global_classes[c:findtype(c.base)] - else - c = nil - end - end - - return var -end - --- check if is a registered type: return full type or nil -function classContainer:findtype (t) - - t = string.gsub(t, "=.*", "") - if _basic[t] then - return t - end - - local _,_,em = string.find(t, "([&%*])%s*$") - t = string.gsub(t, "%s*([&%*])%s*$", "") - p = self - while p and type(p)=='table' do - local st = getnamespace(p) - - for i=_global_types.n,1,-1 do -- in reverse order - - if match_type(t, _global_types[i], st) then - return _global_types[i]..(em or "") - end - end - if p.base and p.base ~= '' and p.base ~= t then - --print("type is "..t..", p is "..p.base.." self.type is "..self.type.." self.name is "..self.name) - p = _global_classes[p:findtype(p.base)] - else - p = nil - end - end - - return nil -end - -function append_global_type(t, class) - _global_types.n = _global_types.n +1 - _global_types[_global_types.n] = t - _global_types_hash[t] = 1 - if class then append_class_type(t, class) end -end - -function append_class_type(t,class) - if _global_classes[t] then - class.flags = _global_classes[t].flags - class.lnames = _global_classes[t].lnames - if _global_classes[t].base and (_global_classes[t].base ~= '') then - class.base = _global_classes[t].base or class.base - end - end - _global_classes[t] = class - class.flags = class.flags or {} -end - -function match_type(childtype, regtype, st) ---print("findtype "..childtype..", "..regtype..", "..st) - local b,e = string.find(regtype, childtype, -string.len(childtype), true) - if b then - - if e == string.len(regtype) and - (b == 1 or (string.sub(regtype, b-1, b-1) == ':' and - string.sub(regtype, 1, b-1) == string.sub(st, 1, b-1))) then - return true - end - end - - return false -end - -function findtype_on_childs(self, t) - - local tchild - if self.classtype == 'class' or self.classtype == 'namespace' then - for k,v in ipairs(self) do - if v.classtype == 'class' or v.classtype == 'namespace' then - if v.typedefs and v.typedefs[t] then - return v.typedefs[t] - elseif v.usertypes and v.usertypes[t] then - return v.usertypes[t] - end - tchild = findtype_on_childs(v, t) - if tchild then return tchild end - end - end - end - return nil - -end - -function classContainer:isenum (type) - if global_enums[type] then - return type - else - return false - end - - local basetype = gsub(type,"^.*::","") - local env = self - while env do - if env.enums then - local i=1 - while env.enums[i] do - if env.enums[i].name == basetype then - return true - end - i = i+1 - end - end - env = env.parent - end - return false -end - -methodisvirtual = false -- a global - --- parse chunk -function classContainer:doparse (s) ---print ("parse "..s) - - -- try the parser hook - do - local sub = parser_hook(s) - if sub then - return sub - end - end - - -- try the null statement - do - local b,e,code = string.find(s, "^%s*;") - if b then - return strsub(s,e+1) - end - end - - -- try empty verbatim line - do - local b,e,code = string.find(s, "^%s*$\n") - if b then - return strsub(s,e+1) - end - end - - -- try Lua code - do - local b,e,code = strfind(s,"^%s*(%b\1\2)") - if b then - Code(strsub(code,2,-2)) - return strsub(s,e+1) - end - end - - -- try C code - do - local b,e,code = strfind(s,"^%s*(%b\3\4)") - if b then - code = '{'..strsub(code,2,-2)..'\n}\n' - Verbatim(code,'r') -- verbatim code for 'r'egister fragment - return strsub(s,e+1) - end - end - - -- try C code for preamble section - do - local b,e,code = string.find(s, "^%s*(%b\5\6)") - if b then - code = string.sub(code, 2, -2).."\n" - Verbatim(code, '') - return string.sub(s, e+1) - end - end - - -- try default_property directive - do - local b,e,ptype = strfind(s, "^%s*TOLUA_PROPERTY_TYPE%s*%(+%s*([^%)%s]*)%s*%)+%s*;?") - if b then - if not ptype or ptype == "" then - ptype = "default" - end - self:set_property_type(ptype) - return strsub(s, e+1) - end - end - - -- try protected_destructor directive - do - local b,e = string.find(s, "^%s*TOLUA_PROTECTED_DESTRUCTOR%s*;?") - if b then - if self.set_protected_destructor then - self:set_protected_destructor(true) - end - return strsub(s, e+1) - end - end - - -- try 'extern' keyword - do - local b,e = string.find(s, "^%s*extern%s+") - if b then - -- do nothing - return strsub(s, e+1) - end - end - - -- try 'virtual' keyworkd - do - local b,e = string.find(s, "^%s*virtual%s+") - if b then - methodisvirtual = true - return strsub(s, e+1) - end - end - - -- try labels (public, private, etc) - do - local b,e = string.find(s, "^%s*%w*%s*:[^:]") - if b then - return strsub(s, e) -- preserve the [^:] - end - end - - -- try module - do - local b,e,name,body = strfind(s,"^%s*module%s%s*([_%w][_%w]*)%s*(%b{})%s*") - if b then - _curr_code = strsub(s,b,e) - Module(name,body) - return strsub(s,e+1) - end - end - - -- try namesapce - do - local b,e,name,body = strfind(s,"^%s*namespace%s%s*([_%w][_%w]*)%s*(%b{})%s*;?") - if b then - _curr_code = strsub(s,b,e) - Namespace(name,body) - return strsub(s,e+1) - end - end - - -- try define - do - local b,e,name = strfind(s,"^%s*#define%s%s*([^%s]*)[^\n]*\n%s*") - if b then - _curr_code = strsub(s,b,e) - Define(name) - return strsub(s,e+1) - end - end - - -- try enumerates - - do - local b,e,name,body,varname = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*([^%s;]*)%s*;?%s*") - if b then - --error("#Sorry, declaration of enums and variables on the same statement is not supported.\nDeclare your variable separately (example: '"..name.." "..varname..";')") - _curr_code = strsub(s,b,e) - Enumerate(name,body,varname) - return strsub(s,e+1) - end - end - --- do --- local b,e,name,body = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*;?%s*") --- if b then --- _curr_code = strsub(s,b,e) --- Enumerate(name,body) --- return strsub(s,e+1) --- end --- end - - do - local b,e,body,name = strfind(s,"^%s*typedef%s+enum[^{]*(%b{})%s*([%w_][^%s]*)%s*;%s*") - if b then - _curr_code = strsub(s,b,e) - Enumerate(name,body) - return strsub(s,e+1) - end - end - - -- try operator - do - local b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*;%s*") - if not b then - -- try inline - b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:<>,]-%s+operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)[%s\n]*%b{}%s*;?%s*") - end - if not b then - -- try cast operator - b,e,decl,kind,arg,const = strfind(s, "^%s*(operator)%s+([%w_:%d<>%*%&%s]+)%s*(%b())%s*(c?o?n?s?t?)"); - if b then - local _,ie = string.find(s, "^%s*%b{}", e+1) - if ie then - e = ie - end - end - end - if b then - _curr_code = strsub(s,b,e) - Operator(decl,kind,arg,const) - return strsub(s,e+1) - end - end - - -- try function - do - --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w])%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*") - local b,e,decl,arg,const,virt = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)%s*(=?%s*0?)%s*;%s*") - if not b then - -- try function with template - b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w]%b<>)%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*") - end - if not b then - -- try a single letter function name - b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?)%s*;%s*") - end - if not b then - -- try function pointer - b,e,decl,arg,const = strfind(s,"^%s*([^%(;\n]+%b())%s*(%b())%s*;%s*") - if b then - decl = string.gsub(decl, "%(%s*%*([^%)]*)%s*%)", " %1 ") - end - end - if b then - if virt and string.find(virt, "[=0]") then - if self.flags then - self.flags.pure_virtual = true - end - end - _curr_code = strsub(s,b,e) - Function(decl,arg,const) - return strsub(s,e+1) - end - end - - -- try inline function - do - local b,e,decl,arg,const = strfind(s,"^%s*([^%(\n]+)%s*(%b())%s*(c?o?n?s?t?)[^;{]*%b{}%s*;?%s*") - --local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:<>]*[_%w>])%s*(%b())%s*(c?o?n?s?t?)[^;]*%b{}%s*;?%s*") - if not b then - -- try a single letter function name - b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?).-%b{}%s*;?%s*") - end - if b then - _curr_code = strsub(s,b,e) - Function(decl,arg,const) - return strsub(s,e+1) - end - end - - -- try class - do - local b,e,name,base,body - base = '' body = '' - b,e,name = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*;") -- dummy class - local dummy = false - if not b then - b,e,name = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*;") -- dummy struct - if not b then - b,e,name,base,body = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*([^{]-)%s*(%b{})%s*") - if not b then - b,e,name,base,body = strfind(s,"^%s*struct%s+([_%w][_%w@]*)%s*([^{]-)%s*(%b{})%s*") - if not b then - b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*([^{]-)%s*(%b{})%s*") - if not b then - base = '' - b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;") - end - end - end - else dummy = 1 end - else dummy = 1 end - if b then - if base ~= '' then - base = string.gsub(base, "^%s*:%s*", "") - base = string.gsub(base, "%s*public%s*", "") - base = split(base, ",") - --local b,e - --b,e,base = strfind(base,".-([_%w][_%w<>,:]*)$") - else - base = {} - end - _curr_code = strsub(s,b,e) - Class(name,base,body) - if not dummy then - varb,vare,varname = string.find(s, "^%s*([_%w]+)%s*;", e+1) - if varb then - Variable(name.." "..varname) - e = vare - end - end - return strsub(s,e+1) - end - end - - -- try typedef - do - local b,e,types = strfind(s,"^%s*typedef%s%s*(.-)%s*;%s*") - if b then - _curr_code = strsub(s,b,e) - Typedef(types) - return strsub(s,e+1) - end - end - - -- try variable - do - local b,e,decl = strfind(s,"^%s*([_%w][_@%s%w%d%*&:<>,]*[_%w%d])%s*;%s*") - if b then - _curr_code = strsub(s,b,e) - - local list = split_c_tokens(decl, ",") - Variable(list[1]) - if list.n > 1 then - local _,_,type = strfind(list[1], "(.-)%s+([^%s]*)$"); - - local i =2; - while list[i] do - Variable(type.." "..list[i]) - i=i+1 - end - end - --Variable(decl) - return strsub(s,e+1) - end - end - - -- try string - do - local b,e,decl = strfind(s,"^%s*([_%w]?[_%s%w%d]-char%s+[_@%w%d]*%s*%[%s*%S+%s*%])%s*;%s*") - if b then - _curr_code = strsub(s,b,e) - Variable(decl) - return strsub(s,e+1) - end - end - - -- try array - do - local b,e,decl = strfind(s,"^%s*([_%w][][_@%s%w%d%*&:<>]*[]_%w%d])%s*;%s*") - if b then - _curr_code = strsub(s,b,e) - Array(decl) - return strsub(s,e+1) - end - end - - -- no matching - if gsub(s,"%s%s*","") ~= "" then - _curr_code = s - error("#parse error") - else - return "" - end - -end - -function classContainer:parse (s) - - --self.curr_member_access = nil - - while s ~= '' do - s = self:doparse(s) - methodisvirtual = false - end -end - - --- property types - -function get_property_type() - - return classContainer.curr:get_property_type() -end - -function classContainer:set_property_type(ptype) - ptype = string.gsub(ptype, "^%s*", "") - ptype = string.gsub(ptype, "%s*$", "") - - self.property_type = ptype -end - -function classContainer:get_property_type() - return self.property_type or (self.parent and self.parent:get_property_type()) or "default" -end diff --git a/src/third_party/toluapp/src/bin/lua/custom.lua b/src/third_party/toluapp/src/bin/lua/custom.lua deleted file mode 100644 index de5912fb3..000000000 --- a/src/third_party/toluapp/src/bin/lua/custom.lua +++ /dev/null @@ -1,45 +0,0 @@ - -function extract_code(fn,s) - local code = "" - if fn then - code = '\n$#include "'..fn..'"\n' - end - s= "\n" .. s .. "\n" -- add blank lines as sentinels - local _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n") - while e do - t = strlower(t) - if t == "bind_begin" then - _,e,c = strfind(s,"(.-)\n[^\n]*SCRIPT_BIND_END[^\n]*\n",e) - if not e then - tolua_error("Unbalanced 'SCRIPT_BIND_BEGIN' directive in header file") - end - end - if t == "bind_class" or t == "bind_block" then - local b - _,e,c,b = string.find(s, "([^{]-)(%b{})", e) - c = c..'{\n'..extract_code(nil, b)..'\n};\n' - end - code = code .. c .. "\n" - _,e,c,t = strfind(s, "\n([^\n]-)SCRIPT_([%w_]*)[^\n]*\n",e) - end - return code -end - -function preprocess_hook(p) -end - -function preparse_hook(p) -end - -function include_file_hook(p, filename) - do return end ---print("FILENAME is "..filename) - p.code = string.gsub(p.code, "\n%s*SigC::Signal", "\n\ttolua_readonly SigC::Signal") - p.code = string.gsub(p.code, "#ifdef __cplusplus\nextern \"C\" {\n#endif", "") - p.code = string.gsub(p.code, "#ifdef __cplusplus\n};?\n#endif", "") - p.code = string.gsub(p.code, "DECLSPEC", "") - p.code = string.gsub(p.code, "SDLCALL", "") - p.code = string.gsub(p.code, "DLLINTERFACE", "") - p.code = string.gsub(p.code, "#define[^\n]*_[hH]_?%s*\n", "\n") ---print("code is "..p.code) -end diff --git a/src/third_party/toluapp/src/bin/lua/declaration.lua b/src/third_party/toluapp/src/bin/lua/declaration.lua deleted file mode 100644 index 73bbe910e..000000000 --- a/src/third_party/toluapp/src/bin/lua/declaration.lua +++ /dev/null @@ -1,579 +0,0 @@ --- tolua: declaration class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Declaration class --- Represents variable, function, or argument declaration. --- Stores the following fields: --- mod = type modifiers --- type = type --- ptr = "*" or "&", if representing a pointer or a reference --- name = name --- dim = dimension, if a vector --- def = default value, if any (only for arguments) --- ret = "*" or "&", if value is to be returned (only for arguments) -classDeclaration = { - mod = '', - type = '', - ptr = '', - name = '', - dim = '', - ret = '', - def = '' -} -classDeclaration.__index = classDeclaration -setmetatable(classDeclaration,classFeature) - --- Create an unique variable name -function create_varname () - if not _varnumber then _varnumber = 0 end - _varnumber = _varnumber + 1 - return "tolua_var_".._varnumber -end - --- Check declaration name --- It also identifies default values -function classDeclaration:checkname () - - if strsub(self.name,1,1) == '[' and not findtype(self.type) then - self.name = self.type..self.name - local m = split(self.mod,'%s%s*') - self.type = m[m.n] - self.mod = concat(m,1,m.n-1) - end - - local t = split(self.name,'=') - if t.n==2 then - self.name = t[1] - self.def = find_enum_var(t[t.n]) - end - - local b,e,d = strfind(self.name,"%[(.-)%]") - if b then - self.name = strsub(self.name,1,b-1) - self.dim = find_enum_var(d) - end - - - if self.type ~= '' and self.type ~= 'void' and self.name == '' then - self.name = create_varname() - elseif self.kind=='var' then - if self.type=='' and self.name~='' then - self.type = self.type..self.name - self.name = create_varname() - elseif findtype(self.name) then - if self.type=='' then self.type = self.name - else self.type = self.type..' '..self.name end - self.name = create_varname() - end - end - - -- adjust type of string - if self.type == 'char' and self.dim ~= '' then - self.type = 'char*' - end - - if self.kind and self.kind == 'var' then - self.name = string.gsub(self.name, ":.*$", "") -- ??? - end -end - --- Check declaration type --- Substitutes typedef's. -function classDeclaration:checktype () - - -- check if there is a pointer to basic type - local basic = isbasic(self.type) - if self.kind == 'func' and basic=='number' and string.find(self.ptr, "%*") then - self.type = '_userdata' - self.ptr = "" - end - if basic and self.ptr~='' then - self.ret = self.ptr - self.ptr = nil - if isbasic(self.type) == 'number' then - self.return_userdata = true - end - end - - -- check if there is array to be returned - if self.dim~='' and self.ret~='' then - error('#invalid parameter: cannot return an array of values') - end - -- restore 'void*' and 'string*' - if self.type == '_userdata' then self.type = 'void*' - elseif self.type == '_cstring' then self.type = 'char*' - elseif self.type == '_lstate' then self.type = 'lua_State*' - end - - -- resolve types inside the templates - if self.type then - self.type = resolve_template_types(self.type) - end - --- --- -- if returning value, automatically set default value --- if self.ret ~= '' and self.def == '' then --- self.def = '0' --- end --- - -end - -function resolve_template_types(type) - - if isbasic(type) then - return type - end - local b,_,m = string.find(type, "(%b<>)") - if b then - - m = split_c_tokens(string.sub(m, 2, -2), ",") - for i=1, table.getn(m) do - m[i] = string.gsub(m[i],"%s*([%*&])", "%1") - if not isbasic(m[i]) then - if not isenum(m[i]) then _, m[i] = applytypedef("", m[i]) end - m[i] = findtype(m[i]) or m[i] - m[i] = resolve_template_types(m[i]) - end - end - - local b,i - type,b,i = break_template(type) ---print("concat is ",concat(m, 1, m.n)) - local template_part = "<"..concat(m, 1, m.n, ",")..">" - type = rebuild_template(type, b, template_part) - type = string.gsub(type, ">>", "> >") - end - return type -end - -function break_template(s) - local b,e,timpl = string.find(s, "(%b<>)") - if timpl then - s = string.gsub(s, "%b<>", "") - return s, b, timpl - else - return s, 0, nil - end -end - -function rebuild_template(s, b, timpl) - - if b == 0 then - return s - end - - return string.sub(s, 1, b-1)..timpl..string.sub(s, b, -1) -end - --- Print method -function classDeclaration:print (ident,close) - print(ident.."Declaration{") - print(ident.." mod = '"..self.mod.."',") - print(ident.." type = '"..self.type.."',") - print(ident.." ptr = '"..self.ptr.."',") - print(ident.." name = '"..self.name.."',") - print(ident.." dim = '"..self.dim.."',") - print(ident.." def = '"..self.def.."',") - print(ident.." ret = '"..self.ret.."',") - print(ident.."}"..close) -end - --- check if array of values are returned to Lua -function classDeclaration:requirecollection (t) - if self.mod ~= 'const' and - self.dim and self.dim ~= '' and - not isbasic(self.type) and - self.ptr == '' and self:check_public_access() then - local type = gsub(self.type,"%s*const%s+","") - t[type] = "tolua_collect_" .. clean_template(type) - return true - end - return false -end - --- declare tag -function classDeclaration:decltype () - - self.type = typevar(self.type) - if strfind(self.mod,'const') then - self.type = 'const '..self.type - self.mod = gsub(self.mod,'const%s*','') - end -end - - --- output type checking -function classDeclaration:outchecktype (narg) - local def - local t = isbasic(self.type) - if self.def~='' then - def = 1 - else - def = 0 - end - if self.dim ~= '' then - --if t=='string' then - -- return 'tolua_isstringarray(tolua_S,'..narg..','..def..',&tolua_err)' - --else - return '!tolua_istable(tolua_S,'..narg..',0,&tolua_err)' - --end - elseif t then - return '!tolua_is'..t..'(tolua_S,'..narg..','..def..',&tolua_err)' - else - local is_func = get_is_function(self.type) - if self.ptr == '&' or self.ptr == '' then - return '(tolua_isvaluenil(tolua_S,'..narg..',&tolua_err) || !'..is_func..'(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err))' - else - return '!'..is_func..'(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)' - end - end -end - -function classDeclaration:builddeclaration (narg, cplusplus) - local array = self.dim ~= '' and tonumber(self.dim)==nil - local line = "" - local ptr = '' - local mod - local type = self.type - local nctype = gsub(self.type,'const%s+','') - if self.dim ~= '' then - type = gsub(self.type,'const%s+','') -- eliminates const modifier for arrays - end - if self.ptr~='' and not isbasic(type) then ptr = '*' end - line = concatparam(line," ",self.mod,type,ptr) - if array then - line = concatparam(line,'*') - end - line = concatparam(line,self.name) - if self.dim ~= '' then - if tonumber(self.dim)~=nil then - line = concatparam(line,'[',self.dim,'];') - else - if cplusplus then - line = concatparam(line,' = Mtolua_new_dim(',type,ptr,', '..self.dim..');') - else - line = concatparam(line,' = (',type,ptr,'*)', - 'malloc((',self.dim,')*sizeof(',type,ptr,'));') - end - end - else - local t = isbasic(type) - line = concatparam(line,' = ') - if t == 'state' then - line = concatparam(line, 'tolua_S;') - else - --print("t is "..tostring(t)..", ptr is "..tostring(self.ptr)) - if t == 'number' and string.find(self.ptr, "%*") then - t = 'userdata' - end - if not t and ptr=='' then line = concatparam(line,'*') end - line = concatparam(line,'((',self.mod,type) - if not t then - line = concatparam(line,'*') - end - line = concatparam(line,') ') - if isenum(nctype) then - line = concatparam(line,'(int) ') - end - local def = 0 - if self.def ~= '' then - def = self.def - if (ptr == '' or self.ptr == '&') and not t then - def = "(void*)&(const "..type..")"..def - end - end - if t then - line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));') - else - local to_func = get_to_function(type) - line = concatparam(line,to_func..'(tolua_S,',narg,',',def,'));') - end - end - end - return line -end - --- Declare variable -function classDeclaration:declare (narg) - if self.dim ~= '' and tonumber(self.dim)==nil then - output('#ifdef __cplusplus\n') - output(self:builddeclaration(narg,true)) - output('#else\n') - output(self:builddeclaration(narg,false)) - output('#endif\n') - else - output(self:builddeclaration(narg,false)) - end -end - --- Get parameter value -function classDeclaration:getarray (narg) - if self.dim ~= '' then - local type = gsub(self.type,'const ','') - output(' {') - output('#ifndef TOLUA_RELEASE\n') - local def; if self.def~='' then def=1 else def=0 end - local t = isbasic(type) - if (t) then - output(' if (!tolua_is'..t..'array(tolua_S,',narg,',',self.dim,',',def,',&tolua_err))') - else - output(' if (!tolua_isusertypearray(tolua_S,',narg,',"',type,'",',self.dim,',',def,',&tolua_err))') - end - output(' goto tolua_lerror;') - output(' else\n') - output('#endif\n') - output(' {') - output(' int i;') - output(' for(i=0; i<'..self.dim..';i++)') - local t = isbasic(type) - local ptr = '' - if self.ptr~='' then ptr = '*' end - output(' ',self.name..'[i] = ') - if not t and ptr=='' then output('*') end - output('((',type) - if not t then - output('*') - end - output(') ') - local def = 0 - if self.def ~= '' then def = self.def end - if t then - output('tolua_tofield'..t..'(tolua_S,',narg,',i+1,',def,'));') - else - output('tolua_tofieldusertype(tolua_S,',narg,',i+1,',def,'));') - end - output(' }') - output(' }') - end -end - --- Get parameter value -function classDeclaration:setarray (narg) - if not strfind(self.type,'const%s+') and self.dim ~= '' then - local type = gsub(self.type,'const ','') - output(' {') - output(' int i;') - output(' for(i=0; i<'..self.dim..';i++)') - local t,ct = isbasic(type) - if t then - output(' tolua_pushfield'..t..'(tolua_S,',narg,',i+1,(',ct,')',self.name,'[i]);') - else - if self.ptr == '' then - output(' {') - output('#ifdef __cplusplus\n') - output(' void* tolua_obj = Mtolua_new((',type,')(',self.name,'[i]));') - output(' tolua_pushfieldusertype_and_takeownership(tolua_S,',narg,',i+1,tolua_obj,"',type,'");') - output('#else\n') - output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&',self.name,'[i],sizeof(',type,'));') - output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_obj,"',type,'");') - output('#endif\n') - output(' }') - else - output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,(void*)',self.name,'[i],"',type,'");') - end - end - output(' }') - end -end - --- Free dynamically allocated array -function classDeclaration:freearray () - if self.dim ~= '' and tonumber(self.dim)==nil then - output('#ifdef __cplusplus\n') - output(' Mtolua_delete_dim(',self.name,');') - output('#else\n') - output(' free(',self.name,');') - output('#endif\n') - end -end - --- Pass parameter -function classDeclaration:passpar () - if self.ptr=='&' and not isbasic(self.type) then - output('*'..self.name) - elseif self.ret=='*' then - output('&'..self.name) - else - output(self.name) - end -end - --- Return parameter value -function classDeclaration:retvalue () - if self.ret ~= '' then - local t,ct = isbasic(self.type) - if t and t~='' then - output(' tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');') - else - local push_func = get_push_function(self.type) - output(' ',push_func,'(tolua_S,(void*)'..self.name..',"',self.type,'");') - end - return 1 - end - return 0 -end - --- Internal constructor -function _Declaration (t) - - setmetatable(t,classDeclaration) - t:buildnames() - t:checkname() - t:checktype() - local ft = findtype(t.type) or t.type - if not isenum(ft) then - t.mod, t.type = applytypedef(t.mod, ft) - end - - if t.kind=="var" and (string.find(t.mod, "tolua_property%s") or string.find(t.mod, "tolua_property$")) then - t.mod = string.gsub(t.mod, "tolua_property", "tolua_property__"..get_property_type()) - end - - return t -end - --- Constructor --- Expects the string declaration. --- The kind of declaration can be "var" or "func". -function Declaration (s,kind,is_parameter) - - -- eliminate spaces if default value is provided - s = gsub(s,"%s*=%s*","=") - s = gsub(s, "%s*<", "<") - - local defb,tmpdef - defb,_,tmpdef = string.find(s, "(=.*)$") - if defb then - s = string.gsub(s, "=.*$", "") - else - tmpdef = '' - end - if kind == "var" then - -- check the form: void - if s == '' or s == 'void' then - return _Declaration{type = 'void', kind = kind, is_parameter = is_parameter} - end - end - - -- check the form: mod type*& name - local t = split_c_tokens(s,'%*%s*&') - if t.n == 2 then - if kind == 'func' then - error("#invalid function return type: "..s) - end - --local m = split(t[1],'%s%s*') - local m = split_c_tokens(t[1],'%s+') - return _Declaration{ - name = t[2]..tmpdef, - ptr = '*', - ret = '&', - --type = rebuild_template(m[m.n], tb, timpl), - type = m[m.n], - mod = concat(m,1,m.n-1), - is_parameter = is_parameter, - kind = kind - } - end - - -- check the form: mod type** name - t = split_c_tokens(s,'%*%s*%*') - if t.n == 2 then - if kind == 'func' then - error("#invalid function return type: "..s) - end - --local m = split(t[1],'%s%s*') - local m = split_c_tokens(t[1],'%s+') - return _Declaration{ - name = t[2]..tmpdef, - ptr = '*', - ret = '*', - --type = rebuild_template(m[m.n], tb, timpl), - type = m[m.n], - mod = concat(m,1,m.n-1), - is_parameter = is_parameter, - kind = kind - } - end - - -- check the form: mod type& name - t = split_c_tokens(s,'&') - if t.n == 2 then - --local m = split(t[1],'%s%s*') - local m = split_c_tokens(t[1],'%s+') - return _Declaration{ - name = t[2]..tmpdef, - ptr = '&', - --type = rebuild_template(m[m.n], tb, timpl), - type = m[m.n], - mod = concat(m,1,m.n-1), - is_parameter = is_parameter, - kind = kind - } - end - - -- check the form: mod type* name - local s1 = gsub(s,"(%b\[\])",function (n) return gsub(n,'%*','\1') end) - t = split_c_tokens(s1,'%*') - if t.n == 2 then - t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression - --local m = split(t[1],'%s%s*') - local m = split_c_tokens(t[1],'%s+') - return _Declaration{ - name = t[2]..tmpdef, - ptr = '*', - type = m[m.n], - --type = rebuild_template(m[m.n], tb, timpl), - mod = concat(m,1,m.n-1) , - is_parameter = is_parameter, - kind = kind - } - end - - if kind == 'var' then - -- check the form: mod type name - --t = split(s,'%s%s*') - t = split_c_tokens(s,'%s+') - local v - if findtype(t[t.n]) then v = create_varname() else v = t[t.n]; t.n = t.n-1 end - return _Declaration{ - name = v..tmpdef, - --type = rebuild_template(t[t.n], tb, timpl), - type = t[t.n], - mod = concat(t,1,t.n-1), - is_parameter = is_parameter, - kind = kind - } - - else -- kind == "func" - - -- check the form: mod type name - --t = split(s,'%s%s*') - t = split_c_tokens(s,'%s+') - local v = t[t.n] -- last word is the function name - local tp,md - if t.n>1 then - tp = t[t.n-1] - md = concat(t,1,t.n-2) - end - --if tp then tp = rebuild_template(tp, tb, timpl) end - return _Declaration{ - name = v, - type = tp, - mod = md, - is_parameter = is_parameter, - kind = kind - } - end - -end - diff --git a/src/third_party/toluapp/src/bin/lua/define.lua b/src/third_party/toluapp/src/bin/lua/define.lua deleted file mode 100644 index 96a28d878..000000000 --- a/src/third_party/toluapp/src/bin/lua/define.lua +++ /dev/null @@ -1,63 +0,0 @@ --- tolua: define class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: define.lua,v 1.2 1999/07/28 22:21:08 celes Exp $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Define class --- Represents a numeric const definition --- The following filds are stored: --- name = constant name -classDefine = { - name = '', -} -classDefine.__index = classDefine -setmetatable(classDefine,classFeature) - --- register define -function classDefine:register (pre) - if not self:check_public_access() then - return - end - - pre = pre or '' - output(pre..'tolua_constant(tolua_S,"'..self.lname..'",'..self.name..');') -end - --- Print method -function classDefine:print (ident,close) - print(ident.."Define{") - print(ident.." name = '"..self.name.."',") - print(ident.." lname = '"..self.lname.."',") - print(ident.."}"..close) -end - - --- Internal constructor -function _Define (t) - setmetatable(t,classDefine) - t:buildnames() - - if t.name == '' then - error("#invalid define") - end - - append(t) - return t -end - --- Constructor --- Expects a string representing the constant name -function Define (n) - return _Define{ - name = n - } -end - - diff --git a/src/third_party/toluapp/src/bin/lua/doit.lua b/src/third_party/toluapp/src/bin/lua/doit.lua deleted file mode 100644 index 4ddfc61fa..000000000 --- a/src/third_party/toluapp/src/bin/lua/doit.lua +++ /dev/null @@ -1,101 +0,0 @@ --- Generate binding code --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- Last update: Apr 2003 --- $Id: $ - - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - -function parse_extra() - - for k,v in ipairs(_extra_parameters or {}) do - - local b,e,name,value = string.find(v, "^([^=]*)=(.*)$") - if b then - _extra_parameters[name] = value - else - _extra_parameters[v] = true - end - end -end - -function doit () - -- define package name, if not provided - if not flags.n then - if flags.f then - flags.n = gsub(flags.f,"%..*$","") - _,_,flags.n = string.find(flags.n, "([^/\\]*)$") - else - error("#no package name nor input file provided") - end - end - - -- parse table with extra paramters - parse_extra() - - -- do this after setting the package name - if flags['L'] then - dofile(flags['L']) - end - - -- add cppstring - if not flags['S'] then - _basic['string'] = 'cppstring' - _basic['std::string'] = 'cppstring' - _basic_ctype.cppstring = 'const char*' - end - - -- proccess package - local p = Package(flags.n,flags.f) - - if flags.p then - return -- only parse - end - - if flags.o then - local st,msg = writeto(flags.o) - if not st then - error('#'..msg) - end - end - - p:decltype() - if flags.P then - p:print() - else - push(p) - pre_output_hook(p) - pop() - p:preamble() - p:supcode() - push(p) - pre_register_hook(p) - pop() - p:register() - push(p) - post_output_hook(p) - pop() - end - - if flags.o then - writeto() - end - - -- write header file - if not flags.P then - if flags.H then - local st,msg = writeto(flags.H) - if not st then - error('#'..msg) - end - p:header() - writeto() - end - end -end - diff --git a/src/third_party/toluapp/src/bin/lua/enumerate.lua b/src/third_party/toluapp/src/bin/lua/enumerate.lua deleted file mode 100644 index 99fe74629..000000000 --- a/src/third_party/toluapp/src/bin/lua/enumerate.lua +++ /dev/null @@ -1,106 +0,0 @@ --- tolua: enumerate class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: enumerate.lua,v 1.3 2000/01/24 20:41:15 celes Exp $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Enumerate class --- Represents enumeration --- The following fields are stored: --- {i} = list of constant names -classEnumerate = { -} -classEnumerate.__index = classEnumerate -setmetatable(classEnumerate,classFeature) - --- register enumeration -function classEnumerate:register (pre) - if not self:check_public_access() then - return - end - pre = pre or '' - local nspace = getnamespace(classContainer.curr) - local i=1 - while self[i] do - if self.lnames[i] and self.lnames[i] ~= "" then - - output(pre..'tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');') - end - i = i+1 - end -end - --- Print method -function classEnumerate:print (ident,close) - print(ident.."Enumerate{") - print(ident.." name = "..self.name) - local i=1 - while self[i] do - print(ident.." '"..self[i].."'("..self.lnames[i].."),") - i = i+1 - end - print(ident.."}"..close) -end - --- Internal constructor -function _Enumerate (t,varname) - setmetatable(t,classEnumerate) - append(t) - appendenum(t) - if varname and varname ~= "" then - if t.name ~= "" then - Variable(t.name.." "..varname) - else - local ns = getcurrnamespace() - warning("Variable "..ns..varname.." of type is declared as read-only") - Variable("tolua_readonly int "..varname) - end - end - local parent = classContainer.curr - if parent then - t.access = parent.curr_member_access - t.global_access = t:check_public_access() - end -return t -end - --- Constructor --- Expects a string representing the enumerate body -function Enumerate (n,b,varname) - b = string.gsub(b, ",[%s\n]*}", "\n}") -- eliminate last ',' - local t = split(strsub(b,2,-2),',') -- eliminate braces - local i = 1 - local e = {n=0} - while t[i] do - local tt = split(t[i],'=') -- discard initial value - e.n = e.n + 1 - e[e.n] = tt[1] - i = i+1 - end - -- set lua names - i = 1 - e.lnames = {} - local ns = getcurrnamespace() - while e[i] do - local t = split(e[i],'@') - e[i] = t[1] - if not t[2] then - t[2] = applyrenaming(t[1]) - end - e.lnames[i] = t[2] or t[1] - _global_enums[ ns..e[i] ] = (ns..e[i]) - i = i+1 - end - e.name = n - if n ~= "" then - Typedef("int "..n) - end - return _Enumerate(e, varname) -end - diff --git a/src/third_party/toluapp/src/bin/lua/feature.lua b/src/third_party/toluapp/src/bin/lua/feature.lua deleted file mode 100644 index 042b5d28e..000000000 --- a/src/third_party/toluapp/src/bin/lua/feature.lua +++ /dev/null @@ -1,139 +0,0 @@ --- tolua: abstract feature class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Feature class --- Represents the base class of all mapped feature. -classFeature = { -} -classFeature.__index = classFeature - --- write support code -function classFeature:supcode () -end - --- output tag -function classFeature:decltype () -end - --- register feature -function classFeature:register (pre) -end - --- translate verbatim -function classFeature:preamble () -end - --- check if it is a variable -function classFeature:isvariable () - return false -end - --- check if it requires collection -function classFeature:requirecollection (t) - return false -end - --- build names -function classFeature:buildnames () - if self.name and self.name~='' then - local n = split(self.name,'@') - self.name = n[1] - self.name = string.gsub(self.name, ":%d*$", "") - if not n[2] then - n[2] = applyrenaming(n[1]) - end - self.lname = n[2] or gsub(n[1],"%[.-%]","") - self.lname = string.gsub(self.lname, ":%d*$", "") - self.original_name = self.name - self.lname = clean_template(self.lname) - end - if not self.is_parameter then - self.name = getonlynamespace() .. self.name - end - - local parent = classContainer.curr - if parent then - self.access = parent.curr_member_access - self.global_access = self:check_public_access() - else - end -end - -function classFeature:check_public_access() - - if type(self.global_access) == "boolean" then - return self.global_access - end - - if self.access and self.access ~= 0 then - return false - end - - local parent = classContainer.curr - while parent do - if parent.access and parent.access ~= 0 then - return false - end - parent = parent.prox - end - return true -end - -function clean_template(t) - - return string.gsub(t, "[<>:, %*]", "_") -end - --- check if feature is inside a container definition --- it returns the container class name or nil. -function classFeature:incontainer (which) - if self.parent then - local parent = self.parent - while parent do - if parent.classtype == which then - return parent.name - end - parent = parent.parent - end - end - return nil -end - -function classFeature:inclass () - return self:incontainer('class') -end - -function classFeature:inmodule () - return self:incontainer('module') -end - -function classFeature:innamespace () - return self:incontainer('namespace') -end - --- return C binding function name based on name --- the client specifies a prefix -function classFeature:cfuncname (n) - - if self.parent then - n = self.parent:cfuncname(n) - end - - local fname = self.lname - if not fname or fname == '' then - fname = self.name - end - n = string.gsub(n..'_'.. (fname), "[<>:, \.%*&]", "_") - - return n -end - diff --git a/src/third_party/toluapp/src/bin/lua/function.lua b/src/third_party/toluapp/src/bin/lua/function.lua deleted file mode 100644 index 2358e9ff7..000000000 --- a/src/third_party/toluapp/src/bin/lua/function.lua +++ /dev/null @@ -1,577 +0,0 @@ --- tolua: function class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - - --- Function class --- Represents a function or a class method. --- The following fields are stored: --- mod = type modifiers --- type = type --- ptr = "*" or "&", if representing a pointer or a reference --- name = name --- lname = lua name --- args = list of argument declarations --- const = if it is a method receiving a const "this". -classFunction = { - mod = '', - type = '', - ptr = '', - name = '', - args = {n=0}, - const = '', -} -classFunction.__index = classFunction -setmetatable(classFunction,classFeature) - --- declare tags -function classFunction:decltype () - self.type = typevar(self.type) - if strfind(self.mod,'const') then - self.type = 'const '..self.type - self.mod = gsub(self.mod,'const','') - end - local i=1 - while self.args[i] do - self.args[i]:decltype() - i = i+1 - end -end - - --- Write binding function --- Outputs C/C++ binding function. -function classFunction:supcode (local_constructor) - - local overload = strsub(self.cname,-2,-1) - 1 -- indicate overloaded func - local nret = 0 -- number of returned values - local class = self:inclass() - local _,_,static = strfind(self.mod,'^%s*(static)') - if class then - - if self.name == 'new' and self.parent.flags.pure_virtual then - -- no constructor for classes with pure virtual methods - return - end - - if local_constructor then - output("/* method: new_local of class ",class," */") - else - output("/* method:",self.name," of class ",class," */") - end - else - output("/* function:",self.name," */") - end - - if local_constructor then - output("#ifndef TOLUA_DISABLE_"..self.cname.."_local") - output("\nstatic int",self.cname.."_local","(lua_State* tolua_S)") - else - output("#ifndef TOLUA_DISABLE_"..self.cname) - output("\nstatic int",self.cname,"(lua_State* tolua_S)") - end - output("{") - - -- check types - if overload < 0 then - output('#ifndef TOLUA_RELEASE\n') - end - output(' tolua_Error tolua_err;') - output(' if (\n') - -- check self - local narg - if class then narg=2 else narg=1 end - if class then - local func = get_is_function(self.parent.type) - local type = self.parent.type - if self.name=='new' or static~=nil then - func = 'tolua_isusertable' - type = self.parent.type - end - if self.const ~= '' then - type = "const "..type - end - output(' !'..func..'(tolua_S,1,"'..type..'",0,&tolua_err) ||\n') - end - -- check args - if self.args[1].type ~= 'void' then - local i=1 - while self.args[i] do - local btype = isbasic(self.args[i].type) - if btype ~= 'value' and btype ~= 'state' then - output(' '..self.args[i]:outchecktype(narg)..' ||\n') - end - if btype ~= 'state' then - narg = narg+1 - end - i = i+1 - end - end - -- check end of list - output(' !tolua_isnoobj(tolua_S,'..narg..',&tolua_err)\n )') - output(' goto tolua_lerror;') - - output(' else\n') - if overload < 0 then - output('#endif\n') - end - output(' {') - - -- declare self, if the case - local narg - if class then narg=2 else narg=1 end - if class and self.name~='new' and static==nil then - output(' ',self.const,self.parent.type,'*','self = ') - output('(',self.const,self.parent.type,'*) ') - local to_func = get_to_function(self.parent.type) - output(to_func,'(tolua_S,1,0);') - elseif static then - _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') - end - -- declare parameters - if self.args[1].type ~= 'void' then - local i=1 - while self.args[i] do - self.args[i]:declare(narg) - if isbasic(self.args[i].type) ~= "state" then - narg = narg+1 - end - i = i+1 - end - end - - -- check self - if class and self.name~='new' and static==nil then - output('#ifndef TOLUA_RELEASE\n') - output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in function \'%s\'", self.name)..'", NULL);'); - output('#endif\n') - end - - -- get array element values - if class then narg=2 else narg=1 end - if self.args[1].type ~= 'void' then - local i=1 - while self.args[i] do - self.args[i]:getarray(narg) - narg = narg+1 - i = i+1 - end - end - - pre_call_hook(self) - - local out = string.find(self.mod, "tolua_outside") - -- call function - if class and self.name=='delete' then - output(' Mtolua_delete(self);') - elseif class and self.name == 'operator&[]' then - if flags['1'] then -- for compatibility with tolua5 ? - output(' self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';') - else - output(' self->operator[](',self.args[1].name,') = ',self.args[2].name,';') - end - else - output(' {') - if self.type ~= '' and self.type ~= 'void' then - output(' ',self.mod,self.type,self.ptr,'tolua_ret = ') - output('(',self.mod,self.type,self.ptr,') ') - else - output(' ') - end - if class and self.name=='new' then - output('Mtolua_new((',self.type,')(') - elseif class and static then - if out then - output(self.name,'(') - else - output(class..'::'..self.name,'(') - end - elseif class then - if out then - output(self.name,'(') - else - if self.cast_operator then - --output('static_cast<',self.mod,self.type,self.ptr,' >(*self') - output('self->operator ',self.mod,self.type,'(') - else - output('self->'..self.name,'(') - end - end - else - output(self.name,'(') - end - - if out and not static then - output('self') - if self.args[1] and self.args[1].name ~= '' then - output(',') - end - end - -- write parameters - local i=1 - while self.args[i] do - self.args[i]:passpar() - i = i+1 - if self.args[i] then - output(',') - end - end - - if class and self.name == 'operator[]' and flags['1'] then - output('-1);') - else - if class and self.name=='new' then - output('));') -- close Mtolua_new( - else - output(');') - end - end - - -- return values - if self.type ~= '' and self.type ~= 'void' then - nret = nret + 1 - local t,ct = isbasic(self.type) - if t and self.name ~= "new" then - if self.cast_operator and _basic_raw_push[t] then - output(' ',_basic_raw_push[t],'(tolua_S,(',ct,')tolua_ret);') - else - output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') - end - else - t = self.type - new_t = string.gsub(t, "const%s+", "") - local owned = false - if string.find(self.mod, "tolua_owned") then - owned = true - end - local push_func = get_push_function(t) - if self.ptr == '' then - output(' {') - output('#ifdef __cplusplus\n') - output(' void* tolua_obj = Mtolua_new((',new_t,')(tolua_ret));') - output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') - output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') - output('#else\n') - output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') - output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') - output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') - output('#endif\n') - output(' }') - elseif self.ptr == '&' then - output(' ',push_func,'(tolua_S,(void*)&tolua_ret,"',t,'");') - else - output(' ',push_func,'(tolua_S,(void*)tolua_ret,"',t,'");') - if owned or local_constructor then - output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') - end - end - end - end - local i=1 - while self.args[i] do - nret = nret + self.args[i]:retvalue() - i = i+1 - end - output(' }') - - -- set array element values - if class then narg=2 else narg=1 end - if self.args[1].type ~= 'void' then - local i=1 - while self.args[i] do - self.args[i]:setarray(narg) - narg = narg+1 - i = i+1 - end - end - - -- free dynamically allocated array - if self.args[1].type ~= 'void' then - local i=1 - while self.args[i] do - self.args[i]:freearray() - i = i+1 - end - end - end - - post_call_hook(self) - - output(' }') - output(' return '..nret..';') - - -- call overloaded function or generate error - if overload < 0 then - - output('#ifndef TOLUA_RELEASE\n') - output('tolua_lerror:\n') - output(' tolua_error(tolua_S,"'..output_error_hook("#ferror in function \'%s\'.", self.lname)..'",&tolua_err);') - output(' return 0;') - output('#endif\n') - else - local _local = "" - if local_constructor then - _local = "_local" - end - output('tolua_lerror:\n') - output(' return '..strsub(self.cname,1,-3)..format("%02d",overload).._local..'(tolua_S);') - end - output('}') - output('#endif //#ifndef TOLUA_DISABLE\n') - output('\n') - - -- recursive call to write local constructor - if class and self.name=='new' and not local_constructor then - - self:supcode(1) - end - -end - - --- register function -function classFunction:register (pre) - - if not self:check_public_access() then - return - end - - if self.name == 'new' and self.parent.flags.pure_virtual then - -- no constructor for classes with pure virtual methods - return - end - - output(pre..'tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');') - if self.name == 'new' then - output(pre..'tolua_function(tolua_S,"new_local",'..self.cname..'_local);') - output(pre..'tolua_function(tolua_S,".call",'..self.cname..'_local);') - --output(' tolua_set_call_event(tolua_S,'..self.cname..'_local, "'..self.parent.type..'");') - end -end - --- Print method -function classFunction:print (ident,close) - print(ident.."Function{") - print(ident.." mod = '"..self.mod.."',") - print(ident.." type = '"..self.type.."',") - print(ident.." ptr = '"..self.ptr.."',") - print(ident.." name = '"..self.name.."',") - print(ident.." lname = '"..self.lname.."',") - print(ident.." const = '"..self.const.."',") - print(ident.." cname = '"..self.cname.."',") - print(ident.." lname = '"..self.lname.."',") - print(ident.." args = {") - local i=1 - while self.args[i] do - self.args[i]:print(ident.." ",",") - i = i+1 - end - print(ident.." }") - print(ident.."}"..close) -end - --- check if it returns an object by value -function classFunction:requirecollection (t) - local r = false - if self.type ~= '' and not isbasic(self.type) and self.ptr=='' then - local type = gsub(self.type,"%s*const%s+","") - t[type] = "tolua_collect_" .. clean_template(type) - r = true - end - local i=1 - while self.args[i] do - r = self.args[i]:requirecollection(t) or r - i = i+1 - end - return r -end - --- determine lua function name overload -function classFunction:overload () - return self.parent:overload(self.lname) -end - - -function param_object(par) -- returns true if the parameter has an object as its default value - - if not string.find(par, '=') then return false end -- it has no default value - - local _,_,def = string.find(par, "=(.*)$") - - if string.find(par, "|") then -- a list of flags - - return true - end - - if string.find(par, "%*") then -- it's a pointer with a default value - - if string.find(par, '=%s*new') or string.find(par, "%(") then -- it's a pointer with an instance as default parameter.. is that valid? - return true - end - return false -- default value is 'NULL' or something - end - - - if string.find(par, "[%(&]") then - return true - end -- default value is a constructor call (most likely for a const reference) - - --if string.find(par, "&") then - - -- if string.find(def, ":") or string.find(def, "^%s*new%s+") then - - -- -- it's a reference with default to something like Class::member, or 'new Class' - -- return true - -- end - --end - - return false -- ? -end - -function strip_last_arg(all_args, last_arg) -- strips the default value from the last argument - - local _,_,s_arg = string.find(last_arg, "^([^=]+)") - last_arg = string.gsub(last_arg, "([%%%(%)])", "%%%1"); - all_args = string.gsub(all_args, "%s*,%s*"..last_arg.."%s*%)%s*$", ")") - return all_args, s_arg -end - - - --- Internal constructor -function _Function (t) - setmetatable(t,classFunction) - - if t.const ~= 'const' and t.const ~= '' then - error("#invalid 'const' specification") - end - - append(t) - if t:inclass() then - --print ('t.name is '..t.name..', parent.name is '..t.parent.name) - if string.gsub(t.name, "%b<>", "") == string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then - t.name = 'new' - t.lname = 'new' - t.parent._new = true - t.type = t.parent.name - t.ptr = '*' - elseif string.gsub(t.name, "%b<>", "") == '~'..string.gsub(t.parent.original_name or t.parent.name, "%b<>", "") then - t.name = 'delete' - t.lname = 'delete' - t.parent._delete = true - end - end - t.cname = t:cfuncname("tolua")..t:overload(t) - return t -end - --- Constructor --- Expects three strings: one representing the function declaration, --- another representing the argument list, and the third representing --- the "const" or empty string. -function Function (d,a,c) - --local t = split(strsub(a,2,-2),',') -- eliminate braces - --local t = split_params(strsub(a,2,-2)) - - if not flags['W'] and string.find(a, "%.%.%.%s*%)") then - - warning("Functions with variable arguments (`...') are not supported. Ignoring "..d..a..c) - return nil - end - - - local i=1 - local l = {n=0} - - a = string.gsub(a, "%s*([%(%)])%s*", "%1") - local t,strip,last = strip_pars(strsub(a,2,-2)); - if strip then - --local ns = string.sub(strsub(a,1,-2), 1, -(string.len(last)+1)) - local ns = join(t, ",", 1, last-1) - - ns = "("..string.gsub(ns, "%s*,%s*$", "")..')' - --ns = strip_defaults(ns) - - local f = Function(d, ns, c) - for i=1,last do - t[i] = string.gsub(t[i], "=.*$", "") - end - end - - while t[i] do - l.n = l.n+1 - l[l.n] = Declaration(t[i],'var',true) - i = i+1 - end - local f = Declaration(d,'func') - f.args = l - f.const = c - return _Function(f) -end - -function join(t, sep, first, last) - - first = first or 1 - last = last or table.getn(t) - local lsep = "" - local ret = "" - local loop = false - for i = first,last do - - ret = ret..lsep..t[i] - lsep = sep - loop = true - end - if not loop then - return "" - end - - return ret -end - -function strip_pars(s) - - local t = split_c_tokens(s, ',') - local strip = false - local last - - for i=t.n,1,-1 do - - if not strip and param_object(t[i]) then - last = i - strip = true - end - --if strip then - -- t[i] = string.gsub(t[i], "=.*$", "") - --end - end - - return t,strip,last - -end - -function strip_defaults(s) - - s = string.gsub(s, "^%(", "") - s = string.gsub(s, "%)$", "") - - local t = split_c_tokens(s, ",") - local sep, ret = "","" - for i=1,t.n do - t[i] = string.gsub(t[i], "=.*$", "") - ret = ret..sep..t[i] - sep = "," - end - - return "("..ret..")" -end - - diff --git a/src/third_party/toluapp/src/bin/lua/module.lua b/src/third_party/toluapp/src/bin/lua/module.lua deleted file mode 100644 index 57dceb7d5..000000000 --- a/src/third_party/toluapp/src/bin/lua/module.lua +++ /dev/null @@ -1,68 +0,0 @@ --- tolua: module class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - - --- Module class --- Represents module. --- The following fields are stored: --- {i} = list of objects in the module. -classModule = { - classtype = 'module' -} -classModule.__index = classModule -setmetatable(classModule,classContainer) - --- register module -function classModule:register (pre) - pre = pre or '' - push(self) - output(pre..'tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');') - output(pre..'tolua_beginmodule(tolua_S,"'..self.name..'");') - local i=1 - while self[i] do - self[i]:register(pre..' ') - i = i+1 - end - output(pre..'tolua_endmodule(tolua_S);') - pop() -end - --- Print method -function classModule:print (ident,close) - print(ident.."Module{") - print(ident.." name = '"..self.name.."';") - local i=1 - while self[i] do - self[i]:print(ident.." ",",") - i = i+1 - end - print(ident.."}"..close) -end - --- Internal constructor -function _Module (t) - setmetatable(t,classModule) - append(t) - return t -end - --- Constructor --- Expects two string representing the module name and body. -function Module (n,b) - local t = _Module(_Container{name=n}) - push(t) - t:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces - pop() - return t -end - - diff --git a/src/third_party/toluapp/src/bin/lua/namespace.lua b/src/third_party/toluapp/src/bin/lua/namespace.lua deleted file mode 100644 index 6ca80e6e3..000000000 --- a/src/third_party/toluapp/src/bin/lua/namespace.lua +++ /dev/null @@ -1,52 +0,0 @@ --- tolua: namespace class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 2003 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Namespace class --- Represents a namesapce definition. --- Stores the following fields: --- name = class name --- {i} = list of members -classNamespace = { - classtype = 'namespace', - name = '', -} -classNamespace.__index = classNamespace -setmetatable(classNamespace,classModule) - --- Print method -function classNamespace:print (ident,close) - print(ident.."Namespace{") - print(ident.." name = '"..self.name.."',") - local i=1 - while self[i] do - self[i]:print(ident.." ",",") - i = i+1 - end - print(ident.."}"..close) -end - --- Internal constructor -function _Namespace (t) - setmetatable(t,classNamespace) - append(t) - return t -end - --- Constructor --- Expects the name and the body of the namespace. -function Namespace (n,b) - local c = _Namespace(_Container{name=n}) - push(c) - c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces - pop() -end - diff --git a/src/third_party/toluapp/src/bin/lua/operator.lua b/src/third_party/toluapp/src/bin/lua/operator.lua deleted file mode 100644 index 675027cd7..000000000 --- a/src/third_party/toluapp/src/bin/lua/operator.lua +++ /dev/null @@ -1,220 +0,0 @@ --- tolua: operator class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Operator class --- Represents an operator function or a class operator method. --- It stores the same fields as functions do plus: --- kind = set of character representing the operator (as it appers in C++ code) -classOperator = { - kind = '', -} -classOperator.__index = classOperator -setmetatable(classOperator,classFunction) - --- table to transform operator kind into the appropriate tag method name -_TM = {['+'] = 'add', - ['-'] = 'sub', - ['*'] = 'mul', - ['/'] = 'div', - ['<'] = 'lt', - ['<='] = 'le', - ['=='] = 'eq', - ['[]'] = 'geti', - ['&[]'] = 'seti', - --['->'] = 'flechita', - } - - --- Print method -function classOperator:print (ident,close) - print(ident.."Operator{") - print(ident.." kind = '"..self.kind.."',") - print(ident.." mod = '"..self.mod.."',") - print(ident.." type = '"..self.type.."',") - print(ident.." ptr = '"..self.ptr.."',") - print(ident.." name = '"..self.name.."',") - print(ident.." const = '"..self.const.."',") - print(ident.." cname = '"..self.cname.."',") - print(ident.." lname = '"..self.lname.."',") - print(ident.." args = {") - local i=1 - while self.args[i] do - self.args[i]:print(ident.." ",",") - i = i+1 - end - print(ident.." }") - print(ident.."}"..close) -end - -function classOperator:supcode_tmp() - - if not _TM[self.kind] then - return classFunction.supcode(self) - end - - -- no overload, no parameters, always inclass - output("/* method:",self.name," of class ",self:inclass()," */") - - output("#ifndef TOLUA_DISABLE_"..self.cname) - output("\nstatic int",self.cname,"(lua_State* tolua_S)") - - if overload < 0 then - output('#ifndef TOLUA_RELEASE\n') - end - output(' tolua_Error tolua_err;') - output(' if (\n') - -- check self - local is_func = get_is_function(self.parent.type) - output(' !'..is_func..'(tolua_S,1,"'..self.parent.type..'",0,&tolua_err) ||\n') - output(' !tolua_isnoobj(tolua_S,2,&tolua_err)\n )') - output(' goto tolua_lerror;') - - output(' else\n') - output('#endif\n') -- tolua_release - output(' {') - - -- declare self - output(' ',self.const,self.parent.type,'*','self = ') - output('(',self.const,self.parent.type,'*) ') - local to_func = get_to_func(self.parent.type) - output(to_func,'(tolua_S,1,0);') - - -- check self - output('#ifndef TOLUA_RELEASE\n') - output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in function \'%s\'", self.name)..'",NULL);'); - output('#endif\n') - - -- cast self - output(' ',self.mod,self.type,self.ptr,'tolua_ret = ') - output('(',self.mod,self.type,self.ptr,')(*self);') - - -- return value - local t,ct = isbasic(self.type) - if t then - output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') - else - t = self.type - local push_func = get_push_function(t) - new_t = string.gsub(t, "const%s+", "") - if self.ptr == '' then - output(' {') - output('#ifdef __cplusplus\n') - output(' void* tolua_obj = Mtolua_new((',new_t,')(tolua_ret));') - output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') - output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') - output('#else\n') - output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') - output(' ',push_func,'(tolua_S,tolua_obj,"',t,'");') - output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') - output('#endif\n') - output(' }') - elseif self.ptr == '&' then - output(' ',push_func,'(tolua_S,(void*)&tolua_ret,"',t,'");') - else - if local_constructor then - output(' ',push_func,'(tolua_S,(void *)tolua_ret,"',t,'");') - output(' tolua_register_gc(tolua_S,lua_gettop(tolua_S));') - else - output(' ',push_func,'(tolua_S,(void*)tolua_ret,"',t,'");') - end - end - end - - output(' }') - output(' return 1;') - - output('#ifndef TOLUA_RELEASE\n') - output('tolua_lerror:\n') - output(' tolua_error(tolua_S,"'..output_error_hook("#ferror in function \'%s\'.", self.lname)..'",&tolua_err);') - output(' return 0;') - output('#endif\n') - - - output('}') - output('#endif //#ifndef TOLUA_DISABLE\n') - output('\n') -end - --- Internal constructor -function _Operator (t) - setmetatable(t,classOperator) - - if t.const ~= 'const' and t.const ~= '' then - error("#invalid 'const' specification") - end - - append(t) - if not t:inclass() then - error("#operator can only be defined as class member") - end - - --t.name = t.name .. "_" .. (_TM[t.kind] or t.kind) - t.cname = t:cfuncname("tolua")..t:overload(t) - t.name = "operator" .. t.kind -- set appropriate calling name - return t -end - --- Constructor -function Operator (d,k,a,c) - - local op_k = string.gsub(k, "^%s*", "") - op_k = string.gsub(k, "%s*$", "") - --if string.find(k, "^[%w_:%d<>%*%&]+$") then - if d == "operator" and k ~= '' then - - d = k.." operator" - elseif not _TM[op_k] then - - if flags['W'] then - error("tolua: no support for operator" .. f.kind) - else - warning("No support for operator "..op_k..", ignoring") - return nil - end - end - - local ref = '' - local t = split_c_tokens(strsub(a,2,strlen(a)-1),',') -- eliminate braces - local i=1 - local l = {n=0} - while t[i] do - l.n = l.n+1 - l[l.n] = Declaration(t[i],'var') - i = i+1 - end - if k == '[]' then - local _ - _, _, ref = strfind(d,'(&)') - d = gsub(d,'&','') - elseif k=='&[]' then - l.n = l.n+1 - l[l.n] = Declaration(d,'var') - l[l.n].name = 'tolua_value' - end - local f = Declaration(d,'func') - if k == '[]' and (l[1]==nil or isbasic(l[1].type)~='number') then - error('operator[] can only be defined for numeric index.') - end - f.args = l - f.const = c - f.kind = op_k - f.lname = "."..(_TM[f.kind] or f.kind) - if not _TM[f.kind] then - f.cast_operator = true - end - if f.kind == '[]' and ref=='&' and f.const~='const' then - Operator(d,'&'..k,a,c) -- create correspoding set operator - end - return _Operator(f) -end - - diff --git a/src/third_party/toluapp/src/bin/lua/package.lua b/src/third_party/toluapp/src/bin/lua/package.lua deleted file mode 100644 index eec136904..000000000 --- a/src/third_party/toluapp/src/bin/lua/package.lua +++ /dev/null @@ -1,343 +0,0 @@ --- tolua: package class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - - --- Package class --- Represents the whole package being bound. --- The following fields are stored: --- {i} = list of objects in the package. -classPackage = { - classtype = 'package' -} -classPackage.__index = classPackage -setmetatable(classPackage,classContainer) - --- Print method -function classPackage:print () - print("Package: "..self.name) - local i=1 - while self[i] do - self[i]:print("","") - i = i+1 - end -end - -function classPackage:preprocess () - - -- avoid preprocessing embedded Lua code - local L = {} - self.code = gsub(self.code,"\n%s*%$%[","\1") -- deal with embedded lua code - self.code = gsub(self.code,"\n%s*%$%]","\2") - self.code = gsub(self.code,"(%b\1\2)", function (c) - tinsert(L,c) - return "\n#["..getn(L).."]#" - end) - -- avoid preprocessing embedded C code - local C = {} - self.code = gsub(self.code,"\n%s*%$%<","\3") -- deal with embedded C code - self.code = gsub(self.code,"\n%s*%$%>","\4") - self.code = gsub(self.code,"(%b\3\4)", function (c) - tinsert(C,c) - return "\n#<"..getn(C)..">#" - end) - -- avoid preprocessing embedded C code - self.code = gsub(self.code,"\n%s*%$%{","\5") -- deal with embedded C code - self.code = gsub(self.code,"\n%s*%$%}","\6") - self.code = gsub(self.code,"(%b\5\6)", function (c) - tinsert(C,c) - return "\n#<"..getn(C)..">#" - end) - - --self.code = gsub(self.code,"\n%s*#[^d][^\n]*\n", "\n\n") -- eliminate preprocessor directives that don't start with 'd' - self.code = gsub(self.code,"\n[ \t]*#[ \t]*[^d%<%[]", "\n//") -- eliminate preprocessor directives that don't start with 'd' - - -- avoid preprocessing verbatim lines - local V = {} - self.code = gsub(self.code,"\n(%s*%$[^%[%]][^\n]*)",function (v) - tinsert(V,v) - return "\n#"..getn(V).."#" - end) - - -- perform global substitution - - self.code = gsub(self.code,"(//[^\n]*)","") -- eliminate C++ comments - self.code = gsub(self.code,"/%*","\1") - self.code = gsub(self.code,"%*/","\2") - self.code = gsub(self.code,"%b\1\2","") - self.code = gsub(self.code,"\1","/%*") - self.code = gsub(self.code,"\2","%*/") - self.code = gsub(self.code,"%s*@%s*","@") -- eliminate spaces beside @ - self.code = gsub(self.code,"%s?inline(%s)","%1") -- eliminate 'inline' keyword - --self.code = gsub(self.code,"%s?extern(%s)","%1") -- eliminate 'extern' keyword - --self.code = gsub(self.code,"%s?virtual(%s)","%1") -- eliminate 'virtual' keyword - --self.code = gsub(self.code,"public:","") -- eliminate 'public:' keyword - self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*' - self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*' - self.code = gsub(self.code,"([^%w_])char%s*%*","%1_cstring ") -- substitute 'char*' - self.code = gsub(self.code,"([^%w_])lua_State%s*%*","%1_lstate ") -- substitute 'lua_State*' - - -- restore embedded Lua code - self.code = gsub(self.code,"%#%[(%d+)%]%#",function (n) - return L[tonumber(n)] - end) - -- restore embedded C code - self.code = gsub(self.code,"%#%<(%d+)%>%#",function (n) - return C[tonumber(n)] - end) - -- restore verbatim lines - self.code = gsub(self.code,"%#(%d+)%#",function (n) - return V[tonumber(n)] - end) - - self.code = string.gsub(self.code, "\n%s*%$([^\n]+)", function (l) - Verbatim(l.."\n") - return "\n" - end) -end - --- translate verbatim -function classPackage:preamble () - output('/*\n') - output('** Lua binding: '..self.name..'\n') - output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n') - output('*/\n\n') - - output('#ifndef __cplusplus\n') - output('#include "stdlib.h"\n') - output('#endif\n') - output('#include "string.h"\n\n') - output('#include "tolua++.h"\n\n') - - if not flags.h then - output('/* Exported function */') - output('TOLUA_API int tolua_'..self.name..'_open (lua_State* tolua_S);') - output('\n') - end - - local i=1 - while self[i] do - self[i]:preamble() - i = i+1 - end - - if self:requirecollection(_collect) then - output('\n') - output('/* function to release collected object via destructor */') - output('#ifdef __cplusplus\n') - for i,v in pairs(_collect) do - output('\nstatic int '..v..' (lua_State* tolua_S)') - output('{') - output(' '..i..'* self = ('..i..'*) tolua_tousertype(tolua_S,1,0);') - output(' Mtolua_delete(self);') - output(' return 0;') - output('}') - end - output('#endif\n\n') - end - - output('\n') - output('/* function to register type */') - output('static void tolua_reg_types (lua_State* tolua_S)') - output('{') - - if flags.t then - output("#ifndef Mtolua_typeid\n#define Mtolua_typeid(L,TI,T)\n#endif\n") - end - foreach(_usertype,function(n,v) - if (not _global_classes[v]) or _global_classes[v]:check_public_access() then - output(' tolua_usertype(tolua_S,"',v,'");') - if flags.t then - output(' Mtolua_typeid(tolua_S,typeid(',v,'), "',v,'");') - end - end - end) - output('}') - output('\n') -end - --- register package --- write package open function -function classPackage:register (pre) - pre = pre or '' - push(self) - output(pre.."/* Open function */") - output(pre.."TOLUA_API int tolua_"..self.name.."_open (lua_State* tolua_S)") - output(pre.."{") - output(pre.." tolua_open(tolua_S);") - output(pre.." tolua_reg_types(tolua_S);") - output(pre.." tolua_module(tolua_S,NULL,",self:hasvar(),");") - output(pre.." tolua_beginmodule(tolua_S,NULL);") - local i=1 - while self[i] do - self[i]:register(pre.." ") - i = i+1 - end - output(pre.." tolua_endmodule(tolua_S);") - output(pre.." return 1;") - output(pre.."}") - - output("\n\n") - output("#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501\n"); - output(pre.."TOLUA_API int luaopen_"..self.name.." (lua_State* tolua_S) {") - output(pre.." return tolua_"..self.name.."_open(tolua_S);") - output(pre.."};") - output("#endif\n\n") - - pop() -end - --- write header file -function classPackage:header () - output('/*\n') output('** Lua binding: '..self.name..'\n') - output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n') - output('*/\n\n') - - if not flags.h then - output('/* Exported function */') - output('TOLUA_API int tolua_'..self.name..'_open (lua_State* tolua_S);') - output('\n') - end -end - --- Internal constructor -function _Package (self) - setmetatable(self,classPackage) - return self -end - --- Parse C header file with tolua directives --- *** Thanks to Ariel Manzur for fixing bugs in nested directives *** -function extract_code(fn,s) - local code = '\n$#include "'..fn..'"\n' - s= "\n" .. s .. "\n" -- add blank lines as sentinels - local _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n") - while e do - t = strlower(t) - if t == "begin" then - _,e,c = strfind(s,"(.-)\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[Ee][Nn][Dd][^\n]*\n",e) - if not e then - tolua_error("Unbalanced 'tolua_begin' directive in header file") - end - end - code = code .. c .. "\n" - _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n",e) - end - return code -end - --- Constructor --- Expects the package name, the file extension, and the file text. -function Package (name,fn) - local ext = "pkg" - - -- open input file, if any - local st,msg - if fn then - st, msg = readfrom(flags.f) - if not st then - error('#'..msg) - end - local _; _, _, ext = strfind(fn,".*%.(.*)$") - end - local code - if ext == 'pkg' then - code = prep(st) - else - code = "\n" .. read('*a') - if ext == 'h' or ext == 'hpp' then - code = extract_code(fn,code) - end - end - - -- close file - if fn then - readfrom() - end - - -- deal with include directive - local nsubst - repeat - code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"([^\n]*)\n', - function (kind,fn,extra) - local _, _, ext = strfind(fn,".*%.(.*)$") - local fp,msg = openfile(fn,'r') - if not fp then - error('#'..msg..': '..fn) - end - if kind == 'p' then - local s = prep(fp) - closefile(fp) - return s - end - local s = read(fp,'*a') - closefile(fp) - if kind == 'c' or kind == 'h' then - return extract_code(fn,s) - elseif kind == 'l' then - return "\n$[--##"..fn.."\n" .. s .. "\n$]\n" - elseif kind == 'i' then - local t = {code=s} - extra = string.gsub(extra, "^%s*,%s*", "") - local pars = split_c_tokens(extra, ",") - include_file_hook(t, fn, unpack(pars)) - return "\n\n" .. t.code - else - error('#Invalid include directive (use $cfile, $pfile, $lfile or $ifile)') - end - end) - until nsubst==0 - - -- deal with renaming directive - repeat -- I don't know why this is necesary - code,nsubst = gsub(code,'\n%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end) - until nsubst == 0 - - local t = _Package(_Container{name=name, code=code}) - push(t) - preprocess_hook(t) - t:preprocess() - preparse_hook(t) - t:parse(t.code) - pop() - return t -end - - -setmetatable(_extra_parameters, { __index = _G }) - -function prep(file) - - local chunk = {'local __ret = {"\\n"}\n'} - for line in file:lines() do - if string.find(line, "^##") then - table.insert(chunk, string.sub(line, 3) .. "\n") - else - local last = 1 - for text, expr, index in string.gfind(line, "(.-)$(%b())()") do - last = index - if text ~= "" then - table.insert(chunk, string.format('table.insert(__ret, %q )', text)) - end - table.insert(chunk, string.format('table.insert(__ret, %s )', expr)) - end - table.insert(chunk, string.format('table.insert(__ret, %q)\n', - string.sub(line, last).."\n")) - end - end - table.insert(chunk, '\nreturn table.concat(__ret)\n') - local f,e = loadstring(table.concat(chunk)) - if e then - error("#"..e) - end - setfenv(f, _extra_parameters) - return f() -end diff --git a/src/third_party/toluapp/src/bin/lua/template_class.lua b/src/third_party/toluapp/src/bin/lua/template_class.lua deleted file mode 100644 index b1ed05abe..000000000 --- a/src/third_party/toluapp/src/bin/lua/template_class.lua +++ /dev/null @@ -1,82 +0,0 @@ - -_global_templates = {} - -classTemplateClass = { - - name = '', - body = '', - parents = {}, - args = {}, -- the template arguments -} - -classTemplateClass.__index = classTemplateClass - - -function classTemplateClass:throw(types, local_scope) - - --if table.getn(types) ~= table.getn(self.args) then - -- error("#invalid parameter count") - --end - - -- replace - for i =1 , types.n do - - local Il = split_c_tokens(types[i], " ") - if table.getn(Il) ~= table.getn(self.args) then - error("#invalid parameter count for "..types[i]) - end - local bI = self.body - local pI = {} - for j = 1,self.args.n do - --Tl[j] = findtype(Tl[j]) or Tl[j] - bI = string.gsub(bI, "([^_%w])"..self.args[j].."([^_%w])", "%1"..Il[j].."%2") - if self.parents then - for i=1,table.getn(self.parents) do - pI[i] = string.gsub(self.parents[i], "([^_%w]?)"..self.args[j].."([^_%w]?)", "%1"..Il[j].."%2") - end - end - end - --local append = "<"..string.gsub(types[i], "%s+", ",")..">" - local append = "<"..concat(Il, 1, table.getn(Il), ",")..">" - append = string.gsub(append, "%s*,%s*", ",") - append = string.gsub(append, ">>", "> >") - for i=1,table.getn(pI) do - --pI[i] = string.gsub(pI[i], ">>", "> >") - pI[i] = resolve_template_types(pI[i]) - end - bI = string.gsub(bI, ">>", "> >") - local n = self.name - if local_scope then - n = self.local_name - end - - Class(n..append, pI, bI) - end -end - - -function TemplateClass(name, parents, body, parameters) - - local o = { - - parents = parents, - body = body, - args = parameters, - } - - local oname = string.gsub(name, "@.*$", "") - oname = getnamespace(classContainer.curr)..oname - o.name = oname - - o.local_name = name - - setmetatable(o, classTemplateClass) - - if _global_templates[oname] then - warning("Duplicate declaration of template "..oname) - else - _global_templates[oname] = o - end - - return o -end diff --git a/src/third_party/toluapp/src/bin/lua/typedef.lua b/src/third_party/toluapp/src/bin/lua/typedef.lua deleted file mode 100644 index a78a84155..000000000 --- a/src/third_party/toluapp/src/bin/lua/typedef.lua +++ /dev/null @@ -1,71 +0,0 @@ --- tolua: typedef class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - - --- Typedef class --- Represents a type synonym. --- The 'de facto' type replaces the typedef before the --- remaining code is parsed. --- The following fields are stored: --- utype = typedef name --- type = 'the facto' type --- mod = modifiers to the 'de facto' type -classTypedef = { - utype = '', - mod = '', - type = '' -} -classTypedef.__index = classTypedef - --- Print method -function classTypedef:print (ident,close) - print(ident.."Typedef{") - print(ident.." utype = '"..self.utype.."',") - print(ident.." mod = '"..self.mod.."',") - print(ident.." type = '"..self.type.."',") - print(ident.."}"..close) -end - --- Return it's not a variable -function classTypedef:isvariable () - return false -end - --- Internal constructor -function _Typedef (t) - setmetatable(t,classTypedef) - t.type = resolve_template_types(t.type) - appendtypedef(t) - return t -end - --- Constructor --- Expects one string representing the type definition. -function Typedef (s) - if strfind(string.gsub(s, '%b<>', ''),'[%*&]') then - tolua_error("#invalid typedef: pointers (and references) are not supported") - end - local o = {mod = ''} - if string.find(s, "[<>]") then - _,_,o.type,o.utype = string.find(s, "^%s*([^<>]+%b<>[^%s]*)%s+(.-)$") - else - local t = split(gsub(s,"%s%s*"," ")," ") - o = { - utype = t[t.n], - type = t[t.n-1], - mod = concat(t,1,t.n-2), - } - end - return _Typedef(o) -end - - diff --git a/src/third_party/toluapp/src/bin/lua/variable.lua b/src/third_party/toluapp/src/bin/lua/variable.lua deleted file mode 100644 index fbc705dd8..000000000 --- a/src/third_party/toluapp/src/bin/lua/variable.lua +++ /dev/null @@ -1,300 +0,0 @@ --- tolua: variable class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Variable class --- Represents a extern variable or a public member of a class. --- Stores all fields present in a declaration. -classVariable = { - _get = {}, -- mapped get functions - _set = {}, -- mapped set functions -} -classVariable.__index = classVariable -setmetatable(classVariable,classDeclaration) - --- Print method -function classVariable:print (ident,close) - print(ident.."Variable{") - print(ident.." mod = '"..self.mod.."',") - print(ident.." type = '"..self.type.."',") - print(ident.." ptr = '"..self.ptr.."',") - print(ident.." name = '"..self.name.."',") - if self.dim then print(ident.." dim = '"..self.dim.."',") end - print(ident.." def = '"..self.def.."',") - print(ident.." ret = '"..self.ret.."',") - print(ident.."}"..close) -end - --- Generates C function name -function classVariable:cfuncname (prefix) - local parent = "" - local unsigned = "" - local ptr = "" - - local p = self:inmodule() or self:innamespace() or self:inclass() - - if p then - if self.parent.classtype == 'class' then - parent = "_" .. self.parent.type - else - parent = "_" .. p - end - end - - if strfind(self.mod,"(unsigned)") then - unsigned = "_unsigned" - end - - if self.ptr == "*" then ptr = "_ptr" - elseif self.ptr == "&" then ptr = "_ref" - end - - local name = prefix .. parent .. unsigned .. "_" .. gsub(self.lname or self.name,".*::","") .. ptr - - name = clean_template(name) - return name - -end - --- check if it is a variable -function classVariable:isvariable () - return true -end - --- get variable value -function classVariable:getvalue (class,static, prop_get) - - local name - if prop_get then - - name = prop_get.."()" - else - name = self.name - end - - if class and static then - return self.parent.type..'::'..name - elseif class then - return 'self->'..name - else - return name - end -end - --- get variable pointer value -function classVariable:getpointervalue (class,static) - if class and static then - return class..'::p' - elseif class then - return 'self->p' - else - return 'p' - end -end - --- Write binding functions -function classVariable:supcode () - - local class = self:inclass() - - local prop_get,prop_set - if string.find(self.mod, 'tolua_property') then - - local _,_,type = string.find(self.mod, "tolua_property__([^%s]*)") - type = type or "default" - prop_get,prop_set = get_property_methods(type, self.name) - self.mod = string.gsub(self.mod, "tolua_property[^%s]*", "") - end - - -- get function ------------------------------------------------ - if class then - output("/* get function:",self.name," of class ",class," */") - else - output("/* get function:",self.name," */") - end - self.cgetname = self:cfuncname("tolua_get") - output("#ifndef TOLUA_DISABLE_"..self.cgetname) - output("\nstatic int",self.cgetname,"(lua_State* tolua_S)") - output("{") - - -- declare self, if the case - local _,_,static = strfind(self.mod,'^%s*(static)') - if class and static==nil then - output(' ',self.parent.type,'*','self = ') - output('(',self.parent.type,'*) ') - local to_func = get_to_function(self.parent.type) - output(to_func,'(tolua_S,1,0);') - elseif static then - _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') - end - - - -- check self value - if class and static==nil then - output('#ifndef TOLUA_RELEASE\n') - output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in accessing variable \'%s\'", self.name)..'",NULL);'); - output('#endif\n') - end - - -- return value - if string.find(self.mod, 'tolua_inherits') then - local push_func = get_push_function(self.type) - output('#ifdef __cplusplus\n') - output(' ',push_func,'(tolua_S,(void*)static_cast<'..self.type..'*>(self), "',self.type,'");') - output('#else\n') - output(' ',push_func,'(tolua_S,(void*)(('..self.type..'*)self), "',self.type,'");') - output('#endif\n') - else - local t,ct = isbasic(self.type) - if t then - output(' tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static,prop_get)..');') - else - local push_func = get_push_function(self.type) - t = self.type - if self.ptr == '&' or self.ptr == '' then - output(' ',push_func,'(tolua_S,(void*)&'..self:getvalue(class,static,prop_get)..',"',t,'");') - else - output(' ',push_func,'(tolua_S,(void*)'..self:getvalue(class,static,prop_get)..',"',t,'");') - end - end - end - output(' return 1;') - output('}') - output('#endif //#ifndef TOLUA_DISABLE\n') - output('\n') - - -- set function ------------------------------------------------ - if not (strfind(self.type,'const%s+') or string.find(self.mod, 'tolua_readonly') or string.find(self.mod, 'tolua_inherits')) then - if class then - output("/* set function:",self.name," of class ",class," */") - else - output("/* set function:",self.name," */") - end - self.csetname = self:cfuncname("tolua_set") - output("#ifndef TOLUA_DISABLE_"..self.csetname) - output("\nstatic int",self.csetname,"(lua_State* tolua_S)") - output("{") - - -- declare self, if the case - if class and static==nil then - output(' ',self.parent.type,'*','self = ') - output('(',self.parent.type,'*) ') - local to_func = get_to_function(self.parent.type) - output(to_func,'(tolua_S,1,0);') - -- check self value - end - -- check types - output('#ifndef TOLUA_RELEASE\n') - output(' tolua_Error tolua_err;') - if class and static==nil then - output(' if (!self) tolua_error(tolua_S,"'..output_error_hook("invalid \'self\' in accessing variable \'%s\'", self.name)..'",NULL);'); - elseif static then - _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') - end - - -- check variable type - output(' if ('..self:outchecktype(2)..')') - output(' tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err);') - output('#endif\n') - - -- assign value - local def = 0 - if self.def ~= '' then def = self.def end - if self.type == 'char*' and self.dim ~= '' then -- is string - output(' strncpy((char*)') - if class and static then - output(self.parent.type..'::'..self.name) - elseif class then - output('self->'..self.name) - else - output(self.name) - end - output(',(const char*)tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);') - else - local ptr = '' - if self.ptr~='' then ptr = '*' end - output(' ') - local name = prop_set or self.name - if class and static then - output(self.parent.type..'::'..name) - elseif class then - output('self->'..name) - else - output(name) - end - local t = isbasic(self.type) - if prop_set then - output('(') - else - output(' = ') - end - if not t and ptr=='' then output('*') end - output('((',self.mod,self.type) - if not t then - output('*') - end - output(') ') - if t then - if isenum(self.type) then - output('(int) ') - end - output('tolua_to'..t,'(tolua_S,2,',def,'))') - else - local to_func = get_to_function(self.type) - output(to_func,'(tolua_S,2,',def,'))') - end - if prop_set then - output(")") - end - output(";") - end - output(' return 0;') - output('}') - output('#endif //#ifndef TOLUA_DISABLE\n') - output('\n') - end - -end - -function classVariable:register (pre) - - if not self:check_public_access() then - return - end - pre = pre or '' - local parent = self:inmodule() or self:innamespace() or self:inclass() - if not parent then - if classVariable._warning==nil then - warning("Mapping variable to global may degrade performance") - classVariable._warning = 1 - end - end - if self.csetname then - output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') - else - output(pre..'tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);') - end -end - --- Internal constructor -function _Variable (t) - setmetatable(t,classVariable) - append(t) - return t -end - --- Constructor --- Expects a string representing the variable declaration. -function Variable (s) - return _Variable (Declaration(s,'var')) -end - - diff --git a/src/third_party/toluapp/src/bin/lua/verbatim.lua b/src/third_party/toluapp/src/bin/lua/verbatim.lua deleted file mode 100644 index fd3b29b35..000000000 --- a/src/third_party/toluapp/src/bin/lua/verbatim.lua +++ /dev/null @@ -1,78 +0,0 @@ --- tolua: verbatim class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: verbatim.lua,v 1.3 2000/01/24 20:41:16 celes Exp $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - - --- Verbatim class --- Represents a line translated directed to the binding file. --- The following filds are stored: --- line = line text -classVerbatim = { - line = '', - cond = nil, -- condition: where to generate the code (s=suport, r=register) -} -classVerbatim.__index = classVerbatim -setmetatable(classVerbatim,classFeature) - --- preamble verbatim -function classVerbatim:preamble () - if self.cond == '' then - write(self.line) - end -end - --- support code -function classVerbatim:supcode () - if strfind(self.cond,'s') then - write(self.line) - write('\n') - end -end - --- register code -function classVerbatim:register (pre) - if strfind(self.cond,'r') then - write(self.line) - end -end - - --- Print method -function classVerbatim:print (ident,close) - print(ident.."Verbatim{") - print(ident.." line = '"..self.line.."',") - print(ident.."}"..close) -end - - --- Internal constructor -function _Verbatim (t) - setmetatable(t,classVerbatim) - append(t) - return t -end - --- Constructor --- Expects a string representing the text line -function Verbatim (l,cond) - if strsub(l,1,1) == "'" then - l = strsub(l,2) - elseif strsub(l,1,1) == '$' then - cond = 'sr' -- generates in both suport and register fragments - l = strsub(l,2) - end - return _Verbatim { - line = l, - cond = cond or '', - } -end - - diff --git a/src/third_party/toluapp/src/bin/tolua_scons.pkg b/src/third_party/toluapp/src/bin/tolua_scons.pkg deleted file mode 100644 index da458ea7c..000000000 --- a/src/third_party/toluapp/src/bin/tolua_scons.pkg +++ /dev/null @@ -1,31 +0,0 @@ -$lfile "src/bin/lua/compat-5.1.lua" -$lfile "src/bin/lua/compat.lua" -$lfile "src/bin/lua/basic.lua" -$lfile "src/bin/lua/feature.lua" -$lfile "src/bin/lua/verbatim.lua" -$lfile "src/bin/lua/code.lua" -$lfile "src/bin/lua/typedef.lua" -$lfile "src/bin/lua/container.lua" -$lfile "src/bin/lua/package.lua" -$lfile "src/bin/lua/module.lua" -$lfile "src/bin/lua/namespace.lua" -$lfile "src/bin/lua/define.lua" -$lfile "src/bin/lua/enumerate.lua" -$lfile "src/bin/lua/declaration.lua" -$lfile "src/bin/lua/variable.lua" -$lfile "src/bin/lua/array.lua" -$lfile "src/bin/lua/function.lua" -$lfile "src/bin/lua/operator.lua" -$lfile "src/bin/lua/template_class.lua" -$lfile "src/bin/lua/class.lua" -$lfile "src/bin/lua/clean.lua" -$lfile "src/bin/lua/doit.lua" - -$[ -local err,msg = pcall(doit) -if not err then - local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") - tolua_error(msg,label) - print(debug.traceback()) -end -$] diff --git a/src/third_party/toluapp/src/bin/toluabind_default.c b/src/third_party/toluapp/src/bin/toluabind_default.c deleted file mode 100644 index b5db813bf..000000000 --- a/src/third_party/toluapp/src/bin/toluabind_default.c +++ /dev/null @@ -1,8009 +0,0 @@ -/* -** Lua binding: tolua -** Generated automatically by tolua++-1.0.92 on Fri Dec 28 21:37:36 2007. -*/ - -#ifndef __cplusplus -#include "stdlib.h" -#endif -#include "string.h" - -#include "tolua++.h" - -/* Exported function */ -TOLUA_API int tolua_tolua_open (lua_State* tolua_S); - - -/* function to register type */ -static void tolua_reg_types (lua_State* tolua_S) -{ -} - -/* Open function */ -TOLUA_API int tolua_tolua_open (lua_State* tolua_S) -{ - tolua_open(tolua_S); - tolua_reg_types(tolua_S); - tolua_module(tolua_S,NULL,0); - tolua_beginmodule(tolua_S,NULL); - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, - 95, 86, 69, 82, 83, 73, 79, 78, 44, 32, 34, 53, 37, 46, 48, - 34, 41, 32,116,104,101,110, 13, 10, 9,114,101,116,117,114, - 110, 13, 10,101,110,100, 13, 10, 13, 10, 45, 45, 32, 34,108, - 111, 97,100,102,105,108,101, 34, 13, 10,108,111, 99, 97,108, - 32,102,117,110, 99,116,105,111,110, 32,112,112, 95,100,111, - 102,105,108,101, 40,112, 97,116,104, 41, 13, 10, 13, 10, 9, - 108,111, 99, 97,108, 32,108,111, 97,100,101,100, 32, 61, 32, - 102, 97,108,115,101, 13, 10, 9,108,111, 99, 97,108, 32,103, - 101,116,102,105,108,101, 32, 61, 32,102,117,110, 99,116,105, - 111,110, 40, 41, 13, 10, 13, 10, 9, 9,105,102, 32,108,111, - 97,100,101,100, 32,116,104,101,110, 13, 10, 9, 9, 9,114, - 101,116,117,114,110, 13, 10, 9, 9,101,108,115,101, 13, 10, - 9, 9, 9,108,111, 99, 97,108, 32,102,105,108,101, 44,101, - 114,114, 32, 61, 32,105,111, 46,111,112,101,110, 40,112, 97, - 116,104, 41, 13, 10, 9, 9, 9,105,102, 32,110,111,116, 32, - 102,105,108,101, 32,116,104,101,110, 13, 10, 9, 9, 9, 9, - 101,114,114,111,114, 40, 34,101,114,114,111,114, 32,108,111, - 97,100,105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, - 97,116,104, 46, 46, 34, 58, 32, 34, 46, 46,101,114,114, 41, - 13, 10, 9, 9, 9,101,110,100, 13, 10, 9, 9, 9,108,111, - 99, 97,108, 32,114,101,116, 32, 61, 32,102,105,108,101, 58, - 114,101, 97,100, 40, 34, 42, 97, 34, 41, 13, 10, 9, 9, 9, - 102,105,108,101, 58, 99,108,111,115,101, 40, 41, 13, 10, 13, - 10, 9, 9, 9,114,101,116, 32, 61, 32,115,116,114,105,110, - 103, 46,103,115,117, 98, 40,114,101,116, 44, 32, 34, 37, 46, - 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 44, 32, 34, 46, 46, - 46, 41, 32,108,111, 99, 97,108, 32, 97,114,103, 32, 61, 32, - 123,110, 61,115,101,108,101, 99,116, 40, 39, 35, 39, 44, 32, - 46, 46, 46, 41, 44, 32, 46, 46, 46,125, 59, 34, 41, 13, 10, - 13, 10, 9, 9, 9,108,111, 97,100,101,100, 32, 61, 32,116, - 114,117,101, 13, 10, 9, 9, 9,114,101,116,117,114,110, 32, - 114,101,116, 13, 10, 9, 9,101,110,100, 13, 10, 9,101,110, - 100, 13, 10, 13, 10, 9,108,111, 99, 97,108, 32,102, 32, 61, - 32,108,111, 97,100, 40,103,101,116,102,105,108,101, 44, 32, - 112, 97,116,104, 41, 13, 10, 9,105,102, 32,110,111,116, 32, - 102, 32,116,104,101,110, 13, 10, 9, 13, 10, 9, 9,101,114, - 114,111,114, 40, 34,101,114,114,111,114, 32,108,111, 97,100, - 105,110,103, 32,102,105,108,101, 32, 34, 46, 46,112, 97,116, - 104, 41, 13, 10, 9,101,110,100, 13, 10, 9,114,101,116,117, - 114,110, 32,102, 40, 41, 13, 10,101,110,100, 13, 10, 13, 10, - 111,108,100, 95,100,111,102,105,108,101, 32, 61, 32,100,111, - 102,105,108,101, 13, 10,100,111,102,105,108,101, 32, 61, 32, - 112,112, 95,100,111,102,105,108,101, 13, 10, 13, 10, 13, 10, - 45, 45, 32,115,116,114,105,110,103, 46,103,115,117, 98, 13, - 10, 45, 45, 91, 91, 13, 10,108,111, 99, 97,108, 32,111,103, - 115,117, 98, 32, 61, 32,115,116,114,105,110,103, 46,103,115, - 117, 98, 13, 10,108,111, 99, 97,108, 32,102,117,110, 99,116, - 105,111,110, 32, 99,111,109,112,103,115,117, 98, 40, 97, 44, - 98, 44, 99, 44,100, 41, 13, 10, 32, 32,105,102, 32,116,121, - 112,101, 40, 99, 41, 32, 61, 61, 32, 34,102,117,110, 99,116, - 105,111,110, 34, 32,116,104,101,110, 13, 10, 32, 32, 32, 32, - 108,111, 99, 97,108, 32,111, 99, 32, 61, 32, 99, 13, 10, 32, - 32, 32, 32, 99, 32, 61, 32,102,117,110, 99,116,105,111,110, - 32, 40, 46, 46, 46, 41, 32,114,101,116,117,114,110, 32,111, - 99, 40, 46, 46, 46, 41, 32,111,114, 32, 39, 39, 32,101,110, - 100, 13, 10, 32, 32,101,110,100, 13, 10, 32, 32,114,101,116, - 117,114,110, 32,111,103,115,117, 98, 40, 97, 44, 98, 44, 99, - 44,100, 41, 13, 10,101,110,100, 13, 10,115,116,114,105,110, - 103, 46,114,101,112,108, 32, 61, 32,111,103,115,117, 98, 13, - 10, 45, 45, 93, 93, 13, 10, 13, 10, 45, 45,115,116,114,105, - 110,103, 46,103,115,117, 98, 32, 61, 32, 99,111,109,112,103, - 115,117, 98, 13,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/compat-5.1.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 82,101, 97,108, - 32,103,108,111, 98, 97,108,115, 10, 45, 45, 32, 95, 65, 76, - 69, 82, 84, 10, 45, 45, 32, 95, 69, 82, 82, 79, 82, 77, 69, - 83, 83, 65, 71, 69, 10, 45, 45, 32, 95, 86, 69, 82, 83, 73, - 79, 78, 10, 45, 45, 32, 95, 71, 10, 45, 45, 32, 97,115,115, - 101,114,116, 10, 45, 45, 32,101,114,114,111,114, 10, 45, 45, - 32,109,101,116, 97,116, 97, 98,108,101, 10, 45, 45, 32,110, - 101,120,116, 10, 45, 45, 32,112,114,105,110,116, 10, 45, 45, - 32,114,101,113,117,105,114,101, 10, 45, 45, 32,116,111,110, - 117,109, 98,101,114, 10, 45, 45, 32,116,111,115,116,114,105, - 110,103, 10, 45, 45, 32,116,121,112,101, 10, 45, 45, 32,117, - 110,112, 97, 99,107, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, - 45, 45, 32, 99,111,108,108,101, 99,116,103, 97,114, 98, 97, - 103,101, 10, 45, 45, 32,103, 99,105,110,102,111, 10, 10, 45, - 45, 32,103,108,111, 98, 97,108,115, 10, 10, 45, 45, 32, 99, - 97,108,108, 32, 32, 32, 45, 62, 32,112,114,111,116,101, 99, - 116, 40,102, 44, 32,101,114,114, 41, 10, 45, 45, 32,108,111, - 97,100,102,105,108,101, 10, 45, 45, 32,108,111, 97,100,115, - 116,114,105,110,103, 10, 10, 45, 45, 32,114, 97,119,103,101, - 116, 10, 45, 45, 32,114, 97,119,115,101,116, 10, 10, 45, 45, - 32,103,101,116, 97,114,103,115, 32, 61, 32, 77, 97,105,110, - 46,103,101,116, 97,114,103,115, 32, 63, 63, 10, 10,114, 97, - 119,116,121,112,101, 32, 61, 32,116,121,112,101, 10, 10,102, - 117,110, 99,116,105,111,110, 32,100,111, 95, 32, 40,102, 44, - 32,101,114,114, 41, 10, 32, 32,105,102, 32,110,111,116, 32, - 102, 32,116,104,101,110, 32,112,114,105,110,116, 40,101,114, - 114, 41, 59, 32,114,101,116,117,114,110, 32,101,110,100, 10, - 32, 32,108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,112, - 99, 97,108,108, 40,102, 41, 10, 32, 32,105,102, 32,110,111, - 116, 32, 97, 32,116,104,101,110, 32,112,114,105,110,116, 40, - 98, 41, 59, 32,114,101,116,117,114,110, 32,110,105,108, 10, - 32, 32,101,108,115,101, 32,114,101,116,117,114,110, 32, 98, - 32,111,114, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, - 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,100, - 111,115,116,114,105,110,103, 40,115, 41, 32,114,101,116,117, - 114,110, 32,100,111, 95, 40,108,111, 97,100,115,116,114,105, - 110,103, 40,115, 41, 41, 32,101,110,100, 10, 45, 45, 32,102, - 117,110, 99,116,105,111,110, 32,100,111,102,105,108,101, 40, - 115, 41, 32,114,101,116,117,114,110, 32,100,111, 95, 40,108, - 111, 97,100,102,105,108,101, 40,115, 41, 41, 32,101,110,100, - 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 84, 97, - 98,108,101, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, - 97,108, 32,116, 97, 98, 32, 61, 32,116, 97, 98,108,101, 10, - 102,111,114,101, 97, 99,104, 32, 61, 32,116, 97, 98, 46,102, - 111,114,101, 97, 99,104, 10,102,111,114,101, 97, 99,104,105, - 32, 61, 32,116, 97, 98, 46,102,111,114,101, 97, 99,104,105, - 10,103,101,116,110, 32, 61, 32,116, 97, 98, 46,103,101,116, - 110, 10,116,105,110,115,101,114,116, 32, 61, 32,116, 97, 98, - 46,105,110,115,101,114,116, 10,116,114,101,109,111,118,101, - 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 10,115, - 111,114,116, 32, 61, 32,116, 97, 98, 46,115,111,114,116, 10, - 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, 32, 68,101, 98, - 117,103, 32,108,105, 98,114, 97,114,121, 10,108,111, 99, 97, - 108, 32,100, 98,103, 32, 61, 32,100,101, 98,117,103, 10,103, - 101,116,105,110,102,111, 32, 61, 32,100, 98,103, 46,103,101, - 116,105,110,102,111, 10,103,101,116,108,111, 99, 97,108, 32, - 61, 32,100, 98,103, 46,103,101,116,108,111, 99, 97,108, 10, - 115,101,116, 99, 97,108,108,104,111,111,107, 32, 61, 32,102, - 117,110, 99,116,105,111,110, 32, 40, 41, 32,101,114,114,111, - 114, 34, 96,115,101,116, 99, 97,108,108,104,111,111,107, 39, - 32,105,115, 32,100,101,112,114,101, 99, 97,116,101,100, 34, - 32,101,110,100, 10,115,101,116,108,105,110,101,104,111,111, - 107, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 41, - 32,101,114,114,111,114, 34, 96,115,101,116,108,105,110,101, - 104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99, - 97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,111, - 99, 97,108, 32, 61, 32,100, 98,103, 46,115,101,116,108,111, - 99, 97,108, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 45, 45, - 32,109, 97,116,104, 32,108,105, 98,114, 97,114,121, 10,108, - 111, 99, 97,108, 32,109, 97,116,104, 32, 61, 32,109, 97,116, - 104, 10, 97, 98,115, 32, 61, 32,109, 97,116,104, 46, 97, 98, - 115, 10, 97, 99,111,115, 32, 61, 32,102,117,110, 99,116,105, - 111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, - 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97, 99, - 111,115, 40,120, 41, 41, 32,101,110,100, 10, 97,115,105,110, - 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, - 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,100,101, - 103, 40,109, 97,116,104, 46, 97,115,105,110, 40,120, 41, 41, - 32,101,110,100, 10, 97,116, 97,110, 32, 61, 32,102,117,110, - 99,116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114, - 110, 32,109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, - 46, 97,116, 97,110, 40,120, 41, 41, 32,101,110,100, 10, 97, - 116, 97,110, 50, 32, 61, 32,102,117,110, 99,116,105,111,110, - 32, 40,120, 44,121, 41, 32,114,101,116,117,114,110, 32,109, - 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, - 97,110, 50, 40,120, 44,121, 41, 41, 32,101,110,100, 10, 99, - 101,105,108, 32, 61, 32,109, 97,116,104, 46, 99,101,105,108, - 10, 99,111,115, 32, 61, 32,102,117,110, 99,116,105,111,110, - 32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116, - 104, 46, 99,111,115, 40,109, 97,116,104, 46,114, 97,100, 40, - 120, 41, 41, 32,101,110,100, 10,100,101,103, 32, 61, 32,109, - 97,116,104, 46,100,101,103, 10,101,120,112, 32, 61, 32,109, - 97,116,104, 46,101,120,112, 10,102,108,111,111,114, 32, 61, - 32,109, 97,116,104, 46,102,108,111,111,114, 10,102,114,101, - 120,112, 32, 61, 32,109, 97,116,104, 46,102,114,101,120,112, - 10,108,100,101,120,112, 32, 61, 32,109, 97,116,104, 46,108, - 100,101,120,112, 10,108,111,103, 32, 61, 32,109, 97,116,104, - 46,108,111,103, 10,108,111,103, 49, 48, 32, 61, 32,109, 97, - 116,104, 46,108,111,103, 49, 48, 10,109, 97,120, 32, 61, 32, - 109, 97,116,104, 46,109, 97,120, 10,109,105,110, 32, 61, 32, - 109, 97,116,104, 46,109,105,110, 10,109,111,100, 32, 61, 32, - 109, 97,116,104, 46,109,111,100, 10, 80, 73, 32, 61, 32,109, - 97,116,104, 46,112,105, 10, 45, 45, 63, 63, 63, 32,112,111, - 119, 32, 61, 32,109, 97,116,104, 46,112,111,119, 32, 32, 10, - 114, 97,100, 32, 61, 32,109, 97,116,104, 46,114, 97,100, 10, - 114, 97,110,100,111,109, 32, 61, 32,109, 97,116,104, 46,114, - 97,110,100,111,109, 10,114, 97,110,100,111,109,115,101,101, - 100, 32, 61, 32,109, 97,116,104, 46,114, 97,110,100,111,109, - 115,101,101,100, 10,115,105,110, 32, 61, 32,102,117,110, 99, - 116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, - 32,109, 97,116,104, 46,115,105,110, 40,109, 97,116,104, 46, - 114, 97,100, 40,120, 41, 41, 32,101,110,100, 10,115,113,114, - 116, 32, 61, 32,109, 97,116,104, 46,115,113,114,116, 10,116, - 97,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, - 120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46, - 116, 97,110, 40,109, 97,116,104, 46,114, 97,100, 40,120, 41, - 41, 32,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, - 45, 45, 32,115,116,114,105,110,103, 32,108,105, 98,114, 97, - 114,121, 10,108,111, 99, 97,108, 32,115,116,114, 32, 61, 32, - 115,116,114,105,110,103, 10,115,116,114, 98,121,116,101, 32, - 61, 32,115,116,114, 46, 98,121,116,101, 10,115,116,114, 99, - 104, 97,114, 32, 61, 32,115,116,114, 46, 99,104, 97,114, 10, - 115,116,114,102,105,110,100, 32, 61, 32,115,116,114, 46,102, - 105,110,100, 10,102,111,114,109, 97,116, 32, 61, 32,115,116, - 114, 46,102,111,114,109, 97,116, 10,103,115,117, 98, 32, 61, - 32,115,116,114, 46,103,115,117, 98, 10,115,116,114,108,101, - 110, 32, 61, 32,115,116,114, 46,108,101,110, 10,115,116,114, - 108,111,119,101,114, 32, 61, 32,115,116,114, 46,108,111,119, - 101,114, 10,115,116,114,114,101,112, 32, 61, 32,115,116,114, - 46,114,101,112, 10,115,116,114,115,117, 98, 32, 61, 32,115, - 116,114, 46,115,117, 98, 10,115,116,114,117,112,112,101,114, - 32, 61, 32,115,116,114, 46,117,112,112,101,114, 10, 10, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 10, 45, 45, 32,111,115, 32,108,105, - 98,114, 97,114,121, 10, 99,108,111, 99,107, 32, 61, 32,111, - 115, 46, 99,108,111, 99,107, 10,100, 97,116,101, 32, 61, 32, - 111,115, 46,100, 97,116,101, 10,100,105,102,102,116,105,109, - 101, 32, 61, 32,111,115, 46,100,105,102,102,116,105,109,101, - 10,101,120,101, 99,117,116,101, 32, 61, 32,111,115, 46,101, - 120,101, 99,117,116,101, 32, 45, 45, 63, 10,101,120,105,116, - 32, 61, 32,111,115, 46,101,120,105,116, 10,103,101,116,101, - 110,118, 32, 61, 32,111,115, 46,103,101,116,101,110,118, 10, - 114,101,109,111,118,101, 32, 61, 32,111,115, 46,114,101,109, - 111,118,101, 10,114,101,110, 97,109,101, 32, 61, 32,111,115, - 46,114,101,110, 97,109,101, 10,115,101,116,108,111, 99, 97, - 108,101, 32, 61, 32,111,115, 46,115,101,116,108,111, 99, 97, - 108,101, 10,116,105,109,101, 32, 61, 32,111,115, 46,116,105, - 109,101, 10,116,109,112,110, 97,109,101, 32, 61, 32,111,115, - 46,116,109,112,110, 97,109,101, 10, 10, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 10, 45, 45, 32, 99,111,109,112, 97,116,105, 98,105, - 108,105,116,121, 32,111,110,108,121, 10,103,101,116,103,108, - 111, 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,110, - 32, 40,110, 41, 32,114,101,116,117,114,110, 32, 95, 71, 91, - 110, 93, 32,101,110,100, 10,115,101,116,103,108,111, 98, 97, - 108, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,110, - 44,118, 41, 32, 95, 71, 91,110, 93, 32, 61, 32,118, 32,101, - 110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 10,108,111, - 99, 97,108, 32,105,111, 44, 32,116, 97, 98, 32, 61, 32,105, - 111, 44, 32,116, 97, 98,108,101, 10, 10, 45, 45, 32, 73, 79, - 32,108,105, 98,114, 97,114,121, 32, 40,102,105,108,101,115, - 41, 10, 95, 83, 84, 68, 73, 78, 32, 61, 32,105,111, 46,115, - 116,100,105,110, 10, 95, 83, 84, 68, 69, 82, 82, 32, 61, 32, - 105,111, 46,115,116,100,101,114,114, 10, 95, 83, 84, 68, 79, - 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10, - 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100, - 105,110, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,111, - 46,115,116,100,111,117,116, 10,115,101,101,107, 32, 61, 32, - 105,111, 46,115,116,100,105,110, 46,115,101,101,107, 32, 32, - 32, 45, 45, 32,115,105, 99,107, 32, 59, 45, 41, 10,116,109, - 112,102,105,108,101, 32, 61, 32,105,111, 46,116,109,112,102, - 105,108,101, 10, 99,108,111,115,101,102,105,108,101, 32, 61, - 32,105,111, 46, 99,108,111,115,101, 10,111,112,101,110,102, - 105,108,101, 32, 61, 32,105,111, 46,111,112,101,110, 10, 10, - 102,117,110, 99,116,105,111,110, 32,102,108,117,115,104, 32, - 40,102, 41, 10, 32, 32,105,102, 32,102, 32,116,104,101,110, - 32,102, 58,102,108,117,115,104, 40, 41, 10, 32, 32,101,108, - 115,101, 32, 95, 79, 85, 84, 80, 85, 84, 58,102,108,117,115, - 104, 40, 41, 10, 32, 32,101,110,100, 10,101,110,100, 10, 10, - 102,117,110, 99,116,105,111,110, 32,114,101, 97,100,102,114, - 111,109, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, 32, - 110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101, - 110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, 32, - 101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99, - 108,111,115,101, 40, 95, 73, 78, 80, 85, 84, 41, 10, 32, 32, - 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115, - 116,100,105,110, 10, 32, 32, 32, 32,114,101,116,117,114,110, - 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32, - 101,108,115,101, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32, - 102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105, - 111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,114, - 34, 41, 10, 32, 32, 32, 32, 95, 73, 78, 80, 85, 84, 32, 61, - 32,102, 32,111,114, 32, 95, 73, 78, 80, 85, 84, 10, 32, 32, - 32, 32,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, - 44, 32, 99,111,100, 10, 32, 32,101,110,100, 10,101,110,100, - 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116, - 101,116,111, 32, 40,110, 97,109,101, 41, 10, 32, 32,105,102, - 32,110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104, - 101,110, 10, 32, 32, 32, 32,108,111, 99, 97,108, 32,102, 44, - 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46, - 99,108,111,115,101, 40, 95, 79, 85, 84, 80, 85, 84, 41, 10, - 32, 32, 32, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105, - 111, 46,115,116,100,111,117,116, 10, 32, 32, 32, 32,114,101, - 116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111, - 100, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, 32,108,111, - 99, 97,108, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, - 32, 61, 32,105,111, 46,111,112,101,110, 40,110, 97,109,101, - 44, 32, 34,119, 34, 41, 10, 32, 32, 32, 32, 95, 79, 85, 84, - 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, - 80, 85, 84, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32, - 102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, 32, 32,101, - 110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, - 110, 32, 97,112,112,101,110,100,116,111, 32, 40,110, 97,109, - 101, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, 32,101, - 114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112, - 101,110, 40,110, 97,109,101, 44, 32, 34, 97, 34, 41, 10, 32, - 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, - 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,114,101,116,117, - 114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 10, - 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114, - 101, 97,100, 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, - 97,108, 32,102, 32, 61, 32, 95, 73, 78, 80, 85, 84, 10, 32, - 32,105,102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, - 91, 49, 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97, - 116, 97, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, - 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114, - 103, 44, 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114, - 101,116,117,114,110, 32,102, 58,114,101, 97,100, 40,117,110, - 112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100, 10, - 10,102,117,110, 99,116,105,111,110, 32,119,114,105,116,101, - 32, 40, 46, 46, 46, 41, 10, 32, 32,108,111, 99, 97,108, 32, - 102, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10, 32, 32,105, - 102, 32,114, 97,119,116,121,112,101, 40, 97,114,103, 91, 49, - 93, 41, 32, 61, 61, 32, 39,117,115,101,114,100, 97,116, 97, - 39, 32,116,104,101,110, 10, 32, 32, 32, 32,102, 32, 61, 32, - 116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114,103, 44, - 32, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,114,101,116, - 117,114,110, 32,102, 58,119,114,105,116,101, 40,117,110,112, - 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/compat.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32, 98, 97,115,105, 99, - 32,117,116,105,108,105,116,121, 32,102,117,110, 99,116,105, - 111,110,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, - 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108, - 101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, - 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, - 57, 57, 56, 10, 45, 45, 32, 76, 97,115,116, 32,117,112,100, - 97,116,101, 58, 32, 65,112,114, 32, 50, 48, 48, 51, 10, 45, - 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104, - 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, - 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, - 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, - 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, - 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, - 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, - 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, - 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, - 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, - 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, - 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, - 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, - 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, - 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, - 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, - 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, - 10, 10, 45, 45, 32, 66, 97,115,105, 99, 32, 67, 32,116,121, - 112,101,115, 32, 97,110,100, 32,116,104,101,105,114, 32, 99, - 111,114,114,101,115,112,111,110,100,105,110,103, 32, 76,117, - 97, 32,116,121,112,101,115, 10, 45, 45, 32, 65,108,108, 32, - 111, 99, 99,117,114,114,101,110, 99,101,115, 32,111,102, 32, - 34, 99,104, 97,114, 42, 34, 32,119,105,108,108, 32, 98,101, - 32,114,101,112,108, 97, 99,101,100, 32, 98,121, 32, 34, 95, - 99,115,116,114,105,110,103, 34, 44, 10, 45, 45, 32, 97,110, - 100, 32, 97,108,108, 32,111, 99, 99,117,114,114,101,110, 99, - 101,115, 32,111,102, 32, 34,118,111,105,100, 42, 34, 32,119, - 105,108,108, 32, 98,101, 32,114,101,112,108, 97, 99,101,100, - 32, 98,121, 32, 34, 95,117,115,101,114,100, 97,116, 97, 34, - 10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 10, 32, 91, 39, - 118,111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 10, 32, 91, - 39, 99,104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98, - 101,114, 39, 44, 10, 32, 91, 39,105,110,116, 39, 93, 32, 61, - 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,115, - 104,111,114,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101, - 114, 39, 44, 10, 32, 91, 39,108,111,110,103, 39, 93, 32, 61, - 32, 39,110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39,117, - 110,115,105,103,110,101,100, 39, 93, 32, 61, 32, 39,110,117, - 109, 98,101,114, 39, 44, 10, 32, 91, 39,102,108,111, 97,116, - 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 10, - 32, 91, 39,100,111,117, 98,108,101, 39, 93, 32, 61, 32, 39, - 110,117,109, 98,101,114, 39, 44, 10, 32, 91, 39, 95, 99,115, - 116,114,105,110,103, 39, 93, 32, 61, 32, 39,115,116,114,105, - 110,103, 39, 44, 10, 32, 91, 39, 95,117,115,101,114,100, 97, - 116, 97, 39, 93, 32, 61, 32, 39,117,115,101,114,100, 97,116, - 97, 39, 44, 10, 32, 91, 39, 99,104, 97,114, 42, 39, 93, 32, - 61, 32, 39,115,116,114,105,110,103, 39, 44, 10, 32, 91, 39, - 118,111,105,100, 42, 39, 93, 32, 61, 32, 39,117,115,101,114, - 100, 97,116, 97, 39, 44, 10, 32, 91, 39, 98,111,111,108, 39, - 93, 32, 61, 32, 39, 98,111,111,108,101, 97,110, 39, 44, 10, - 32, 91, 39,108,117, 97, 95, 79, 98,106,101, 99,116, 39, 93, - 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10, 32, 91, 39, - 76, 85, 65, 95, 86, 65, 76, 85, 69, 39, 93, 32, 61, 32, 39, - 118, 97,108,117,101, 39, 44, 32, 32, 32, 32, 45, 45, 32,102, - 111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,116, - 121, 32,119,105,116,104, 32,116,111,108,117, 97, 32, 52, 46, - 48, 10, 32, 91, 39,108,117, 97, 95, 83,116, 97,116,101, 42, - 39, 93, 32, 61, 32, 39,115,116, 97,116,101, 39, 44, 10, 32, - 91, 39, 95,108,115,116, 97,116,101, 39, 93, 32, 61, 32, 39, - 115,116, 97,116,101, 39, 44, 10, 32, 91, 39,108,117, 97, 95, - 70,117,110, 99,116,105,111,110, 39, 93, 32, 61, 32, 39,118, - 97,108,117,101, 39, 44, 10,125, 10, 10, 95, 98, 97,115,105, - 99, 95, 99,116,121,112,101, 32, 61, 32,123, 10, 32,110,117, - 109, 98,101,114, 32, 61, 32, 34,108,117, 97, 95, 78,117,109, - 98,101,114, 34, 44, 10, 32,115,116,114,105,110,103, 32, 61, - 32, 34, 99,111,110,115,116, 32, 99,104, 97,114, 42, 34, 44, - 10, 32,117,115,101,114,100, 97,116, 97, 32, 61, 32, 34,118, - 111,105,100, 42, 34, 44, 10, 32, 98,111,111,108,101, 97,110, - 32, 61, 32, 34, 98,111,111,108, 34, 44, 10, 32,118, 97,108, - 117,101, 32, 61, 32, 34,105,110,116, 34, 44, 10, 32,115,116, - 97,116,101, 32, 61, 32, 34,108,117, 97, 95, 83,116, 97,116, - 101, 42, 34, 44, 10,125, 10, 10, 45, 45, 32,102,117,110, 99, - 116,105,111,110,115, 32,116,104,101, 32, 97,114,101, 32,117, - 115,101,100, 32,116,111, 32,100,111, 32, 97, 32, 39,114, 97, - 119, 32,112,117,115,104, 39, 32,111,102, 32, 98, 97,115,105, - 99, 32,116,121,112,101,115, 10, 95, 98, 97,115,105, 99, 95, - 114, 97,119, 95,112,117,115,104, 32, 61, 32,123,125, 10, 10, - 45, 45, 32, 76,105,115,116, 32,111,102, 32,117,115,101,114, - 32,100,101,102,105,110,101,100, 32,116,121,112,101,115, 10, - 45, 45, 32, 69, 97, 99,104, 32,116,121,112,101, 32, 99,111, - 114,114,101,115,112,111,110,100,115, 32,116,111, 32, 97, 32, - 118, 97,114,105, 97, 98,108,101, 32,110, 97,109,101, 32,116, - 104, 97,116, 32,115,116,111,114,101,115, 32,105,116,115, 32, - 116, 97,103, 32,118, 97,108,117,101, 46, 10, 95,117,115,101, - 114,116,121,112,101, 32, 61, 32,123,125, 10, 10, 45, 45, 32, - 76,105,115,116, 32,111,102, 32,116,121,112,101,115, 32,116, - 104, 97,116, 32,104, 97,118,101, 32,116,111, 32, 98,101, 32, - 99,111,108,108,101, 99,116,101,100, 10, 95, 99,111,108,108, - 101, 99,116, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, - 115,116, 32,111,102, 32,116,121,112,101,115, 10, 95,103,108, - 111, 98, 97,108, 95,116,121,112,101,115, 32, 61, 32,123,110, - 61, 48,125, 10, 95,103,108,111, 98, 97,108, 95,116,121,112, - 101,115, 95,104, 97,115,104, 32, 61, 32,123,125, 10, 10, 45, - 45, 32,108,105,115,116, 32,111,102, 32, 99,108, 97,115,115, - 101,115, 10, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, - 115,101,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76,105, - 115,116, 32,111,102, 32,101,110,117,109, 32, 99,111,110,115, - 116, 97,110,116,115, 10, 95,103,108,111, 98, 97,108, 95,101, - 110,117,109,115, 32, 61, 32,123,125, 10, 10, 45, 45, 32, 76, - 105,115,116, 32,111,102, 32, 97,117,116,111, 32,114,101,110, - 97,109,105,110,103, 10, 95,114,101,110, 97,109,105,110,103, - 32, 61, 32,123,125, 10,102,117,110, 99,116,105,111,110, 32, - 97,112,112,101,110,100,114,101,110, 97,109,105,110,103, 32, - 40,115, 41, 10, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, - 111,108,100, 44,110,101,119, 32, 61, 32,115,116,114,102,105, - 110,100, 40,115, 44, 34, 37,115, 42, 40, 46, 45, 41, 37,115, - 42, 64, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 36, 34, 41, - 10, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, - 10, 9, 32,101,114,114,111,114, 40, 34, 35, 73,110,118, 97, - 108,105,100, 32,114,101,110, 97,109,105,110,103, 32,115,121, - 110,116, 97,120, 59, 32,105,116, 32,115,104,111,117,108,100, - 32, 98,101, 32,111,102, 32,116,104,101, 32,102,111,114,109, - 58, 32,112, 97,116,116,101,114,110, 64,112, 97,116,116,101, - 114,110, 34, 41, 10, 9,101,110,100, 10, 9,116,105,110,115, - 101,114,116, 40, 95,114,101,110, 97,109,105,110,103, 44,123, - 111,108,100, 61,111,108,100, 44, 32,110,101,119, 61,110,101, - 119,125, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105, - 111,110, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, - 103, 32, 40,115, 41, 10, 9,102,111,114, 32,105, 61, 49, 44, - 103,101,116,110, 40, 95,114,101,110, 97,109,105,110,103, 41, - 32,100,111, 10, 9, 32,108,111, 99, 97,108, 32,109, 44,110, - 32, 61, 32,103,115,117, 98, 40,115, 44, 95,114,101,110, 97, - 109,105,110,103, 91,105, 93, 46,111,108,100, 44, 95,114,101, - 110, 97,109,105,110,103, 91,105, 93, 46,110,101,119, 41, 10, - 9, 9,105,102, 32,110, 32,126, 61, 32, 48, 32,116,104,101, - 110, 10, 9, 9, 32,114,101,116,117,114,110, 32,109, 10, 9, - 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101,116,117, - 114,110, 32,110,105,108, 10,101,110,100, 10, 10, 45, 45, 32, - 69,114,114,111,114, 32,104, 97,110,100,108,101,114, 10,102, - 117,110, 99,116,105,111,110, 32,116,111,108,117, 97, 95,101, - 114,114,111,114, 32, 40,115, 44,102, 41, 10,105,102, 32, 95, - 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, 10, - 9,112,114,105,110,116, 40, 34, 42, 42, 42, 99,117,114,114, - 32, 99,111,100,101, 32,102,111,114, 32,101,114,114,111,114, - 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, - 40, 95, 99,117,114,114, 95, 99,111,100,101, 41, 41, 10, 9, - 112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, - 99,101, 98, 97, 99,107, 40, 41, 41, 10,101,110,100, 10, 32, - 108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, - 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, - 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,105,102, 32,115,116, - 114,115,117, 98, 40,115, 44, 49, 44, 49, 41, 32, 61, 61, 32, - 39, 35, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116, - 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 58, 32, - 34, 46, 46,115,116,114,115,117, 98, 40,115, 44, 50, 41, 46, - 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 32,105,102, 32, - 95, 99,117,114,114, 95, 99,111,100,101, 32,116,104,101,110, - 10, 32, 32, 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,115, - 32, 61, 32,115,116,114,102,105,110,100, 40, 95, 99,117,114, - 114, 95, 99,111,100,101, 44, 34, 94, 37,115, 42, 40, 46, 45, - 92,110, 41, 34, 41, 32, 45, 45, 32,101,120,116,114, 97, 99, - 116, 32,102,105,114,115,116, 32,108,105,110,101, 10, 32, 32, - 32,105,102, 32,115, 61, 61,110,105,108, 32,116,104,101,110, - 32,115, 32, 61, 32, 95, 99,117,114,114, 95, 99,111,100,101, - 32,101,110,100, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, - 98, 40,115, 44, 34, 95,117,115,101,114,100, 97,116, 97, 34, - 44, 34,118,111,105,100, 42, 34, 41, 32, 45, 45, 32,114,101, - 116,117,114,110, 32,119,105,116,104, 32, 39,118,111,105,100, - 42, 39, 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40, - 115, 44, 34, 95, 99,115,116,114,105,110,103, 34, 44, 34, 99, - 104, 97,114, 42, 34, 41, 32, 32, 45, 45, 32,114,101,116,117, - 114,110, 32,119,105,116,104, 32, 39, 99,104, 97,114, 42, 39, - 10, 32, 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, - 34, 95,108,115,116, 97,116,101, 34, 44, 34,108,117, 97, 95, - 83,116, 97,116,101, 42, 34, 41, 32, 32, 45, 45, 32,114,101, - 116,117,114,110, 32,119,105,116,104, 32, 39,108,117, 97, 95, - 83,116, 97,116,101, 42, 39, 10, 32, 32, 32,119,114,105,116, - 101, 40, 34, 67,111,100,101, 32, 98,101,105,110,103, 32,112, - 114,111, 99,101,115,115,101,100, 58, 92,110, 34, 46, 46,115, - 46, 46, 34, 92,110, 34, 41, 10, 32, 32,101,110,100, 10, 32, - 101,108,115,101, 10, 32,105,102, 32,110,111,116, 32,102, 32, - 116,104,101,110, 32,102, 32, 61, 32, 34, 40,102, 32,105,115, - 32,110,105,108, 41, 34, 32,101,110,100, 10, 32, 32,112,114, - 105,110,116, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, - 32,105,110,116,101,114,110, 97,108, 32,101,114,114,111,114, - 58, 32, 34, 46, 46,102, 46, 46,115, 46, 46, 34, 46, 92,110, - 92,110, 34, 41, 10, 32, 32,114,101,116,117,114,110, 10, 32, - 101,110,100, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, - 111,117,116, 10,101,110,100, 10, 10,102,117,110, 99,116,105, - 111,110, 32,119, 97,114,110,105,110,103, 32, 40,109,115,103, - 41, 10, 32,105,102, 32,102,108, 97,103,115, 46,113, 32,116, - 104,101,110, 32,114,101,116,117,114,110, 32,101,110,100, 10, - 32,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, - 85, 84, 80, 85, 84, 10, 32, 95, 79, 85, 84, 80, 85, 84, 32, - 61, 32, 95, 83, 84, 68, 69, 82, 82, 10, 32,119,114,105,116, - 101, 40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,119, - 97,114,110,105,110,103, 58, 32, 34, 46, 46,109,115,103, 46, - 46, 34, 46, 92,110, 92,110, 34, 41, 10, 32, 95, 79, 85, 84, - 80, 85, 84, 32, 61, 32,111,117,116, 10,101,110,100, 10, 10, - 45, 45, 32,114,101,103,105,115,116,101,114, 32, 97,110, 32, - 117,115,101,114, 32,100,101,102,105,110,101,100, 32,116,121, - 112,101, 58, 32,114,101,116,117,114,110,115, 32,102,117,108, - 108, 32,116,121,112,101, 10,102,117,110, 99,116,105,111,110, - 32,114,101,103,116,121,112,101, 32, 40,116, 41, 10, 9, 45, - 45,105,102, 32,105,115, 98, 97,115,105, 99, 40,116, 41, 32, - 116,104,101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, - 32,116, 10, 9, 45, 45,101,110,100, 10, 9,108,111, 99, 97, - 108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, - 40,116, 41, 10, 10, 9,105,102, 32,110,111,116, 32, 95,117, - 115,101,114,116,121,112,101, 91,102,116, 93, 32,116,104,101, - 110, 10, 9, 9,114,101,116,117,114,110, 32, 97,112,112,101, - 110,100,117,115,101,114,116,121,112,101, 40,116, 41, 10, 9, - 101,110,100, 10, 9,114,101,116,117,114,110, 32,102,116, 10, - 101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, 32, - 116,121,112,101, 32,110, 97,109,101, 58, 32,114,101,116,117, - 114,110,115, 32,102,117,108,108, 32,116,121,112,101, 10,102, - 117,110, 99,116,105,111,110, 32,116,121,112,101,118, 97,114, - 40,116,121,112,101, 41, 10, 9,105,102, 32,116,121,112,101, - 32, 61, 61, 32, 39, 39, 32,111,114, 32,116,121,112,101, 32, - 61, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, - 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, - 101,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,102,116, - 32, 61, 32,102,105,110,100,116,121,112,101, 40,116,121,112, - 101, 41, 10, 9, 9,105,102, 32,102,116, 32,116,104,101,110, - 10, 9, 9, 9,114,101,116,117,114,110, 32,102,116, 10, 9, - 9,101,110,100, 10, 9, 9, 95,117,115,101,114,116,121,112, - 101, 91,116,121,112,101, 93, 32, 61, 32,116,121,112,101, 10, - 9, 9,114,101,116,117,114,110, 32,116,121,112,101, 10, 9, - 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, - 99,107, 32,105,102, 32, 98, 97,115,105, 99, 32,116,121,112, - 101, 10,102,117,110, 99,116,105,111,110, 32,105,115, 98, 97, - 115,105, 99, 32, 40,116,121,112,101, 41, 10, 32,108,111, 99, - 97,108, 32,116, 32, 61, 32,103,115,117, 98, 40,116,121,112, - 101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 10, - 32,108,111, 99, 97,108, 32,109, 44,116, 32, 61, 32, 97,112, - 112,108,121,116,121,112,101,100,101,102, 40, 39, 39, 44, 32, - 116, 41, 10, 32,108,111, 99, 97,108, 32, 98, 32, 61, 32, 95, - 98, 97,115,105, 99, 91,116, 93, 10, 32,105,102, 32, 98, 32, - 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 98, - 44, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 91, 98, - 93, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, - 110,105,108, 10,101,110,100, 10, 10, 45, 45, 32,115,112,108, - 105,116, 32,115,116,114,105,110,103, 32,117,115,105,110,103, - 32, 97, 32,116,111,107,101,110, 10,102,117,110, 99,116,105, - 111,110, 32,115,112,108,105,116, 32, 40,115, 44,116, 41, 10, - 32,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48, - 125, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32,102,117, - 110, 99,116,105,111,110, 32, 40,115, 41, 10, 32, 32,108, 46, - 110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10, 32, 32,108, - 91,108, 46,110, 93, 32, 61, 32,115, 10, 32, 32,114,101,116, - 117,114,110, 32, 34, 34, 10, 32,101,110,100, 10, 32,108,111, - 99, 97,108, 32,112, 32, 61, 32, 34, 37,115, 42, 40, 46, 45, - 41, 37,115, 42, 34, 46, 46,116, 46, 46, 34, 37,115, 42, 34, - 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 94, - 37,115, 43, 34, 44, 34, 34, 41, 10, 32,115, 32, 61, 32,103, - 115,117, 98, 40,115, 44, 34, 37,115, 43, 36, 34, 44, 34, 34, - 41, 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44,112, - 44,102, 41, 10, 32,108, 46,110, 32, 61, 32,108, 46,110, 32, - 43, 32, 49, 10, 32,108, 91,108, 46,110, 93, 32, 61, 32,103, - 115,117, 98, 40,115, 44, 34, 40, 37,115, 37,115, 42, 41, 36, - 34, 44, 34, 34, 41, 10, 32,114,101,116,117,114,110, 32,108, - 10,101,110,100, 10, 10, 45, 45, 32,115,112,108,105,116,115, - 32, 97, 32,115,116,114,105,110,103, 32,117,115,105,110,103, - 32, 97, 32,112, 97,116,116,101,114,110, 44, 32, 99,111,110, - 115,105,100,101,114,105,110,103, 32,116,104,101, 32,115,112, - 97, 99,105, 97,108, 32, 99, 97,115,101,115, 32,111,102, 32, - 67, 32, 99,111,100,101, 32, 40,116,101,109,112,108, 97,116, - 101,115, 44, 32,102,117,110, 99,116,105,111,110, 32,112, 97, - 114, 97,109,101,116,101,114,115, 44, 32,101,116, 99, 41, 10, - 45, 45, 32,112, 97,116,116,101,114,110, 32, 99, 97,110, 39, - 116, 32, 99,111,110,116, 97,105,110, 32,116,104,101, 32, 39, - 94, 39, 32, 40, 97,115, 32,117,115,101,100, 32,116,111, 32, - 105,100,101,110,116,105,102,121, 32,116,104,101, 32, 98,101, - 103,105,110,105,110,103, 32,111,102, 32,116,104,101, 32,108, - 105,110,101, 41, 10, 45, 45, 32, 97,108,115,111, 32,115,116, - 114,105,112,115, 32,119,104,105,116,101,115,112, 97, 99,101, - 10,102,117,110, 99,116,105,111,110, 32,115,112,108,105,116, - 95, 99, 95,116,111,107,101,110,115, 40,115, 44, 32,112, 97, - 116, 41, 10, 10, 9,115, 32, 61, 32,115,116,114,105,110,103, - 46,103,115,117, 98, 40,115, 44, 32, 34, 94, 37,115, 42, 34, - 44, 32, 34, 34, 41, 10, 9,115, 32, 61, 32,115,116,114,105, - 110,103, 46,103,115,117, 98, 40,115, 44, 32, 34, 37,115, 42, - 36, 34, 44, 32, 34, 34, 41, 10, 10, 9,108,111, 99, 97,108, - 32,116,111,107,101,110, 95, 98,101,103,105,110, 32, 61, 32, - 49, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 95, - 101,110,100, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, - 111,102,115, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32, - 114,101,116, 32, 61, 32,123,110, 61, 48,125, 10, 10, 9,102, - 117,110, 99,116,105,111,110, 32, 97,100,100, 95,116,111,107, - 101,110, 40,111,102,115, 41, 10, 10, 9, 9,108,111, 99, 97, - 108, 32,116, 32, 61, 32,115,116,114,105,110,103, 46,115,117, - 98, 40,115, 44, 32,116,111,107,101,110, 95, 98,101,103,105, - 110, 44, 32,111,102,115, 41, 10, 9, 9,116, 32, 61, 32,115, - 116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, - 94, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, 9,116, 32, - 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, - 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, - 9,114,101,116, 46,110, 32, 61, 32,114,101,116, 46,110, 32, - 43, 32, 49, 10, 9, 9,114,101,116, 91,114,101,116, 46,110, - 93, 32, 61, 32,116, 10, 9,101,110,100, 10, 10, 9,119,104, - 105,108,101, 32,111,102,115, 32, 60, 61, 32,115,116,114,105, - 110,103, 46,108,101,110, 40,115, 41, 32,100,111, 10, 10, 9, - 9,108,111, 99, 97,108, 32,115,117, 98, 32, 61, 32,115,116, - 114,105,110,103, 46,115,117, 98, 40,115, 44, 32,111,102,115, - 44, 32, 45, 49, 41, 10, 9, 9,108,111, 99, 97,108, 32, 98, - 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, - 100, 40,115,117, 98, 44, 32, 34, 94, 34, 46, 46,112, 97,116, - 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, - 9, 9, 97,100,100, 95,116,111,107,101,110, 40,111,102,115, - 45, 49, 41, 10, 9, 9, 9,111,102,115, 32, 61, 32,111,102, - 115, 43,101, 10, 9, 9, 9,116,111,107,101,110, 95, 98,101, - 103,105,110, 32, 61, 32,111,102,115, 10, 9, 9,101,108,115, - 101, 10, 9, 9, 9,108,111, 99, 97,108, 32, 99,104, 97,114, - 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115, - 44, 32,111,102,115, 44, 32,111,102,115, 41, 10, 9, 9, 9, - 105,102, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32, - 111,114, 32, 99,104, 97,114, 32, 61, 61, 32, 34, 60, 34, 32, - 116,104,101,110, 10, 10, 9, 9, 9, 9,108,111, 99, 97,108, - 32, 98,108,111, 99,107, 10, 9, 9, 9, 9,105,102, 32, 99, - 104, 97,114, 32, 61, 61, 32, 34, 40, 34, 32,116,104,101,110, - 32, 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 40, 41, - 34, 32,101,110,100, 10, 9, 9, 9, 9,105,102, 32, 99,104, - 97,114, 32, 61, 61, 32, 34, 60, 34, 32,116,104,101,110, 32, - 98,108,111, 99,107, 32, 61, 32, 34, 94, 37, 98, 60, 62, 34, - 32,101,110,100, 10, 10, 9, 9, 9, 9, 98, 44,101, 32, 61, - 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,117, - 98, 44, 32, 98,108,111, 99,107, 41, 10, 9, 9, 9, 9,105, - 102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, 9, - 9, 9, 9, 45, 45, 32,117,110,116,101,114,109,105,110, 97, - 116,101,100, 32, 98,108,111, 99,107, 63, 10, 9, 9, 9, 9, - 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, 9, - 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 9,111,102,115, - 32, 61, 32,111,102,115, 32, 43, 32,101, 10, 9, 9, 9, 9, - 101,110,100, 10, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, - 9, 9,111,102,115, 32, 61, 32,111,102,115, 43, 49, 10, 9, - 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 10, 9,101, - 110,100, 10, 9, 97,100,100, 95,116,111,107,101,110, 40,111, - 102,115, 41, 10, 9, 45, 45,105,102, 32,114,101,116, 46,110, - 32, 61, 61, 32, 48, 32,116,104,101,110, 10, 10, 9, 45, 45, - 9,114,101,116, 46,110, 61, 49, 10, 9, 45, 45, 9,114,101, - 116, 91, 49, 93, 32, 61, 32, 34, 34, 10, 9, 45, 45,101,110, - 100, 10, 10, 9,114,101,116,117,114,110, 32,114,101,116, 10, - 10,101,110,100, 10, 10, 45, 45, 32, 99,111,110, 99, 97,116, - 101,110, 97,116,101, 32,115,116,114,105,110,103,115, 32,111, - 102, 32, 97, 32,116, 97, 98,108,101, 10,102,117,110, 99,116, - 105,111,110, 32, 99,111,110, 99, 97,116, 32, 40,116, 44,102, - 44,108, 44,106,115,116,114, 41, 10, 9,106,115,116,114, 32, - 61, 32,106,115,116,114, 32,111,114, 32, 34, 32, 34, 10, 32, - 108,111, 99, 97,108, 32,115, 32, 61, 32, 39, 39, 10, 32,108, - 111, 99, 97,108, 32,105, 61,102, 10, 32,119,104,105,108,101, - 32,105, 60, 61,108, 32,100,111, 10, 32, 32,115, 32, 61, 32, - 115, 46, 46,116, 91,105, 93, 10, 32, 32,105, 32, 61, 32,105, - 43, 49, 10, 32, 32,105,102, 32,105, 32, 60, 61, 32,108, 32, - 116,104,101,110, 32,115, 32, 61, 32,115, 46, 46,106,115,116, - 114, 32,101,110,100, 10, 32,101,110,100, 10, 32,114,101,116, - 117,114,110, 32,115, 10,101,110,100, 10, 10, 45, 45, 32, 99, - 111,110, 99, 97,116,101,110, 97,116,101, 32, 97,108,108, 32, - 112, 97,114, 97,109,101,116,101,114,115, 44, 32,102,111,108, - 108,111,119,105,110,103, 32,111,117,116,112,117,116, 32,114, - 117,108,101,115, 10,102,117,110, 99,116,105,111,110, 32, 99, - 111,110, 99, 97,116,112, 97,114, 97,109, 32, 40,108,105,110, - 101, 44, 32, 46, 46, 46, 41, 10, 32,108,111, 99, 97,108, 32, - 105, 61, 49, 10, 32,119,104,105,108,101, 32,105, 60, 61, 97, - 114,103, 46,110, 32,100,111, 10, 32, 32,105,102, 32, 95, 99, - 111,110,116, 32, 97,110,100, 32,110,111,116, 32,115,116,114, - 102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37, 40, - 44, 34, 93, 39, 41, 32, 97,110,100, 10, 32, 32, 32, 32, 32, - 115,116,114,102,105,110,100, 40, 97,114,103, 91,105, 93, 44, - 34, 94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, - 10, 9, 32, 32, 32, 32,108,105,110,101, 32, 61, 32,108,105, - 110,101, 32, 46, 46, 32, 39, 32, 39, 10, 32, 32,101,110,100, - 10, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, - 46, 46, 32, 97,114,103, 91,105, 93, 10, 32, 32,105,102, 32, - 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104, - 101,110, 10, 32, 32, 32, 95, 99,111,110,116, 32, 61, 32,115, - 116,114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, - 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, 32, 32,105, 32, - 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,105,102, 32, - 115,116,114,102,105,110,100, 40, 97,114,103, 91, 97,114,103, - 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37, - 125, 93, 36, 34, 41, 32,116,104,101,110, 10, 32, 32, 95, 99, - 111,110,116, 61,110,105,108, 32,108,105,110,101, 32, 61, 32, - 108,105,110,101, 32, 46, 46, 32, 39, 92,110, 39, 10, 32,101, - 110,100, 10, 9,114,101,116,117,114,110, 32,108,105,110,101, - 10,101,110,100, 10, 10, 45, 45, 32,111,117,116,112,117,116, - 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, 32, - 111,117,116,112,117,116, 32, 40, 46, 46, 46, 41, 10, 32,108, - 111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, - 32,105, 60, 61, 97,114,103, 46,110, 32,100,111, 10, 32, 32, - 105,102, 32, 95, 99,111,110,116, 32, 97,110,100, 32,110,111, - 116, 32,115,116,114,102,105,110,100, 40, 95, 99,111,110,116, - 44, 39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10, - 32, 32, 32, 32, 32,115,116,114,102,105,110,100, 40, 97,114, - 103, 91,105, 93, 44, 34, 94, 91, 37, 97, 95,126, 93, 34, 41, - 32,116,104,101,110, 10, 9, 32, 32, 32, 32,119,114,105,116, - 101, 40, 39, 32, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32, - 119,114,105,116,101, 40, 97,114,103, 91,105, 93, 41, 10, 32, - 32,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, - 39, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,111,110,116, - 32, 61, 32,115,116,114,115,117, 98, 40, 97,114,103, 91,105, - 93, 44, 45, 49, 44, 45, 49, 41, 10, 32, 32,101,110,100, 10, - 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, - 32,105,102, 32,115,116,114,102,105,110,100, 40, 97,114,103, - 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37, 41, 37, - 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 10, - 32, 32, 95, 99,111,110,116, 61,110,105,108, 32,119,114,105, - 116,101, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, - 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101, - 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, - 111,100,115, 40,112,116,121,112,101, 44, 32,110, 97,109,101, - 41, 10, 10, 9,105,102, 32,103,101,116, 95,112,114,111,112, - 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, - 111,107, 32, 97,110,100, 32,103,101,116, 95,112,114,111,112, - 101,114,116,121, 95,109,101,116,104,111,100,115, 95,104,111, - 111,107, 40,112,116,121,112,101, 44,110, 97,109,101, 41, 32, - 116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,103, - 101,116, 95,112,114,111,112,101,114,116,121, 95,109,101,116, - 104,111,100,115, 95,104,111,111,107, 40,112,116,121,112,101, - 44, 32,110, 97,109,101, 41, 10, 9,101,110,100, 10, 10, 9, - 105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34,100,101, - 102, 97,117,108,116, 34, 32,116,104,101,110, 32, 45, 45, 32, - 103,101,116, 95,110, 97,109,101, 44, 32,115,101,116, 95,110, - 97,109,101, 10, 9, 9,114,101,116,117,114,110, 32, 34,103, - 101,116, 95, 34, 46, 46,110, 97,109,101, 44, 32, 34,115,101, - 116, 95, 34, 46, 46,110, 97,109,101, 10, 9,101,110,100, 10, - 10, 9,105,102, 32,112,116,121,112,101, 32, 61, 61, 32, 34, - 113,116, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97,109, - 101, 44, 32,115,101,116, 78, 97,109,101, 10, 9, 9,114,101, - 116,117,114,110, 32,110, 97,109,101, 44, 32, 34,115,101,116, - 34, 46, 46,115,116,114,105,110,103, 46,117,112,112,101,114, - 40,115,116,114,105,110,103, 46,115,117, 98, 40,110, 97,109, - 101, 44, 32, 49, 44, 32, 49, 41, 41, 46, 46,115,116,114,105, - 110,103, 46,115,117, 98, 40,110, 97,109,101, 44, 32, 50, 44, - 32, 45, 49, 41, 10, 9,101,110,100, 10, 10, 9,105,102, 32, - 112,116,121,112,101, 32, 61, 61, 32, 34,111,118,101,114,108, - 111, 97,100, 34, 32,116,104,101,110, 32, 45, 45, 32,110, 97, - 109,101, 44, 32,110, 97,109,101, 10, 9, 9,114,101,116,117, - 114,110, 32,110, 97,109,101, 44,110, 97,109,101, 10, 9,101, - 110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105,108, - 10,101,110,100, 10, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 32,116,104,101, 32,104,111,111,107,115, - 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32,114,105,103, - 104,116, 32, 97,102,116,101,114, 32,112,114,111, 99,101,115, - 115,105,110,103, 32,116,104,101, 32, 36, 91,105, 99,104,108, - 93,102,105,108,101, 32,100,105,114,101, 99,116,105,118,101, - 115, 44, 10, 45, 45, 32,114,105,103,104,116, 32, 98,101,102, - 111,114,101, 32,112,114,111, 99,101,115,115,105,110,103, 32, - 97,110,121,116,104,105,110,103, 32,101,108,115,101, 10, 45, - 45, 32,116, 97,107,101,115, 32,116,104,101, 32,112, 97, 99, - 107, 97,103,101, 32,111, 98,106,101, 99,116, 32, 97,115, 32, - 116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 10,102, - 117,110, 99,116,105,111,110, 32,112,114,101,112,114,111, 99, - 101,115,115, 95,104,111,111,107, 40,112, 41, 10, 9, 45, 45, - 32,112, 46, 99,111,100,101, 32,104, 97,115, 32, 97,108,108, - 32,116,104,101, 32,105,110,112,117,116, 32, 99,111,100,101, - 32,102,114,111,109, 32,116,104,101, 32,112,107,103, 10,101, - 110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101,100, 32, - 102,111,114, 32,101,118,101,114,121, 32, 36,105,102,105,108, - 101, 32,100,105,114,101, 99,116,105,118,101, 10, 45, 45, 32, - 116, 97,107,101,115, 32, 97, 32,116, 97, 98,108,101, 32,119, - 105,116,104, 32, 97, 32,115,116,114,105,110,103, 32, 99, 97, - 108,108,101,100, 32, 39, 99,111,100,101, 39, 32,105,110,115, - 105,100,101, 44, 32,116,104,101, 32,102,105,108,101,110, 97, - 109,101, 44, 32, 97,110,100, 32, 97,110,121, 32,101,120,116, - 114, 97, 32, 97,114,103,117,109,101,110,116,115, 10, 45, 45, - 32,112, 97,115,115,101,100, 32,116,111, 32, 36,105,102,105, - 108,101, 46, 32,110,111, 32,114,101,116,117,114,110, 32,118, - 97,108,117,101, 10,102,117,110, 99,116,105,111,110, 32,105, - 110, 99,108,117,100,101, 95,102,105,108,101, 95,104,111,111, - 107, 40,116, 44, 32,102,105,108,101,110, 97,109,101, 44, 32, - 46, 46, 46, 41, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, - 97,108,108,101,100, 32, 97,102,116,101,114, 32,112,114,111, - 99,101,115,115,105,110,103, 32, 97,110,121,116,104,105,110, - 103, 32,116,104, 97,116, 39,115, 32,110,111,116, 32, 99,111, - 100,101, 32, 40,108,105,107,101, 32, 39, 36,114,101,110, 97, - 109,105,110,103, 39, 44, 32, 99,111,109,109,101,110,116,115, - 44, 32,101,116, 99, 41, 10, 45, 45, 32, 97,110,100, 32,114, - 105,103,104,116, 32, 98,101,102,111,114,101, 32,112, 97,114, - 115,105,110,103, 32,116,104,101, 32, 97, 99,116,117, 97,108, - 32, 99,111,100,101, 46, 10, 45, 45, 32,116, 97,107,101,115, - 32,116,104,101, 32, 80, 97, 99,107, 97,103,101, 32,111, 98, - 106,101, 99,116, 32,119,105,116,104, 32, 97,108,108, 32,116, - 104,101, 32, 99,111,100,101, 32,111,110, 32,116,104,101, 32, - 39, 99,111,100,101, 39, 32,107,101,121, 46, 32,110,111, 32, - 114,101,116,117,114,110, 32,118, 97,108,117,101, 10,102,117, - 110, 99,116,105,111,110, 32,112,114,101,112, 97,114,115,101, - 95,104,111,111,107, 40,112, 97, 99,107, 97,103,101, 41, 10, - 10,101,110,100, 10, 10, 10, 45, 45, 32, 99, 97,108,108,101, - 100, 32, 97,102,116,101,114, 32,119,114,105,116,105,110,103, - 32, 97,108,108, 32,116,104,101, 32,111,117,116,112,117,116, - 46, 10, 45, 45, 32,116, 97,107,101,115, 32,116,104,101, 32, - 80, 97, 99,107, 97,103,101, 32,111, 98,106,101, 99,116, 10, - 102,117,110, 99,116,105,111,110, 32,112,111,115,116, 95,111, - 117,116,112,117,116, 95,104,111,111,107, 40,112, 97, 99,107, - 97,103,101, 41, 10, 10,101,110,100, 10, 10, 10, 45, 45, 32, - 99, 97,108,108,101,100, 32,102,114,111,109, 32, 39,103,101, - 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, - 111,100,115, 39, 32,116,111, 32,103,101,116, 32,116,104,101, - 32,109,101,116,104,111,100,115, 32,116,111, 32,114,101,116, - 114,105,101,118,101, 32, 97, 32,112,114,111,112,101,114,116, - 121, 10, 45, 45, 32, 97, 99, 99,111,114,100,105,110,103, 32, - 116,111, 32,105,116,115, 32,116,121,112,101, 10,102,117,110, - 99,116,105,111,110, 32,103,101,116, 95,112,114,111,112,101, - 114,116,121, 95,109,101,116,104,111,100,115, 95,104,111,111, - 107, 40,112,114,111,112,101,114,116,121, 95,116,121,112,101, - 44, 32,110, 97,109,101, 41, 10, 10,101,110,100, 10, 10, 45, - 45, 32, 99, 97,108,108,101,100, 32,102,114,111,109, 32, 67, - 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100, - 111,112, 97,114,115,101, 32,119,105,116,104, 32,116,104,101, - 32,115,116,114,105,110,103, 32, 98,101,105,110,103, 32,112, - 97,114,115,101,100, 10, 45, 45, 32,114,101,116,117,114,110, - 32,110,105,108, 44, 32,111,114, 32, 97, 32,115,117, 98,115, - 116,114,105,110,103, 10,102,117,110, 99,116,105,111,110, 32, - 112, 97,114,115,101,114, 95,104,111,111,107, 40,115, 41, 10, - 10, 9,114,101,116,117,114,110, 32,110,105,108, 10,101,110, - 100, 10, 10, 45, 45, 32, 99,117,115,116,111,109, 32,112,117, - 115,104,101,114,115, 10, 10, 95,112,117,115,104, 95,102,117, - 110, 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95,105, - 115, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32,123, - 125, 10, 95,116,111, 95,102,117,110, 99,116,105,111,110,115, - 32, 61, 32,123,125, 10, 10, 95, 98, 97,115,101, 95,112,117, - 115,104, 95,102,117,110, 99,116,105,111,110,115, 32, 61, 32, - 123,125, 10, 95, 98, 97,115,101, 95,105,115, 95,102,117,110, - 99,116,105,111,110,115, 32, 61, 32,123,125, 10, 95, 98, 97, - 115,101, 95,116,111, 95,102,117,110, 99,116,105,111,110,115, - 32, 61, 32,123,125, 10, 10,108,111, 99, 97,108, 32,102,117, - 110, 99,116,105,111,110, 32,115,101, 97,114, 99,104, 95, 98, - 97,115,101, 40,116, 44, 32,102,117,110, 99,115, 41, 10, 10, - 9,108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32, - 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, - 91,116, 93, 10, 10, 9,119,104,105,108,101, 32, 99,108, 97, - 115,115, 32,100,111, 10, 9, 9,105,102, 32,102,117,110, 99, - 115, 91, 99,108, 97,115,115, 46,116,121,112,101, 93, 32,116, - 104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102, - 117,110, 99,115, 91, 99,108, 97,115,115, 46,116,121,112,101, - 93, 10, 9, 9,101,110,100, 10, 9, 9, 99,108, 97,115,115, - 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, - 115,101,115, 91, 99,108, 97,115,115, 46, 98,116,121,112,101, - 93, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32, - 110,105,108, 10,101,110,100, 10, 10,102,117,110, 99,116,105, - 111,110, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, - 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116,117,114, - 110, 32, 95,112,117,115,104, 95,102,117,110, 99,116,105,111, - 110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, - 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95, - 112,117,115,104, 95,102,117,110, 99,116,105,111,110,115, 41, - 32,111,114, 32, 34,116,111,108,117, 97, 95,112,117,115,104, - 117,115,101,114,116,121,112,101, 34, 10,101,110,100, 10, 10, - 102,117,110, 99,116,105,111,110, 32,103,101,116, 95,116,111, - 95,102,117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114, - 101,116,117,114,110, 32, 95,116,111, 95,102,117,110, 99,116, - 105,111,110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, - 99,104, 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115, - 101, 95,116,111, 95,102,117,110, 99,116,105,111,110,115, 41, - 32,111,114, 32, 34,116,111,108,117, 97, 95,116,111,117,115, - 101,114,116,121,112,101, 34, 10,101,110,100, 10, 10,102,117, - 110, 99,116,105,111,110, 32,103,101,116, 95,105,115, 95,102, - 117,110, 99,116,105,111,110, 40,116, 41, 10, 9,114,101,116, - 117,114,110, 32, 95,105,115, 95,102,117,110, 99,116,105,111, - 110,115, 91,116, 93, 32,111,114, 32,115,101, 97,114, 99,104, - 95, 98, 97,115,101, 40,116, 44, 32, 95, 98, 97,115,101, 95, - 105,115, 95,102,117,110, 99,116,105,111,110,115, 41, 32,111, - 114, 32, 34,116,111,108,117, 97, 95,105,115,117,115,101,114, - 116,121,112,101, 34, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/basic.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32, 97, 98,115,116,114, - 97, 99,116, 32,102,101, 97,116,117,114,101, 32, 99,108, 97, - 115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, 32, 98, - 121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101,108,101, - 115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, 80, 85, - 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, 49, 57, - 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, 10, 45, - 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32, - 102,114,101,101, 32,115,111,102,116,119, 97,114,101, 59, 32, - 121,111,117, 32, 99, 97,110, 32,114,101,100,105,115,116,114, - 105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, - 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, - 84,104,101, 32,115,111,102,116,119, 97,114,101, 32,112,114, - 111,118,105,100,101,100, 32,104,101,114,101,117,110,100,101, - 114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32, - 105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, - 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, - 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116,105,111, - 110, 32,116,111, 32,112,114,111,118,105,100,101, 32,109, 97, - 105,110,116,101,110, 97,110, 99,101, 44, 32,115,117,112,112, - 111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, - 45, 32,101,110,104, 97,110, 99,101,109,101,110,116,115, 44, - 32,111,114, 32,109,111,100,105,102,105, 99, 97,116,105,111, - 110,115, 46, 10, 10, 10, 45, 45, 32, 70,101, 97,116,117,114, - 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, - 101,115,101,110,116,115, 32,116,104,101, 32, 98, 97,115,101, - 32, 99,108, 97,115,115, 32,111,102, 32, 97,108,108, 32,109, - 97,112,112,101,100, 32,102,101, 97,116,117,114,101, 46, 10, - 99,108, 97,115,115, 70,101, 97,116,117,114,101, 32, 61, 32, - 123, 10,125, 10, 99,108, 97,115,115, 70,101, 97,116,117,114, - 101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, - 115,115, 70,101, 97,116,117,114,101, 10, 10, 45, 45, 32,119, - 114,105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111, - 100,101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, - 115,115, 70,101, 97,116,117,114,101, 58,115,117,112, 99,111, - 100,101, 32, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,111, - 117,116,112,117,116, 32,116, 97,103, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114, - 101, 58,100,101, 99,108,116,121,112,101, 32, 40, 41, 10,101, - 110,100, 10, 10, 45, 45, 32,114,101,103,105,115,116,101,114, - 32,102,101, 97,116,117,114,101, 10,102,117,110, 99,116,105, - 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, - 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, - 10,101,110,100, 10, 10, 45, 45, 32,116,114, 97,110,115,108, - 97,116,101, 32,118,101,114, 98, 97,116,105,109, 10,102,117, - 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97, - 116,117,114,101, 58,112,114,101, 97,109, 98,108,101, 32, 40, - 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, - 32,105,102, 32,105,116, 32,105,115, 32, 97, 32,118, 97,114, - 105, 97, 98,108,101, 10,102,117,110, 99,116,105,111,110, 32, - 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,115, - 118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10, 32,114,101, - 116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, - 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,105,116, - 32,114,101,113,117,105,114,101,115, 32, 99,111,108,108,101, - 99,116,105,111,110, 10,102,117,110, 99,116,105,111,110, 32, - 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,114,101, - 113,117,105,114,101, 99,111,108,108,101, 99,116,105,111,110, - 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,102, 97, - 108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, 98,117,105, - 108,100, 32,110, 97,109,101,115, 10,102,117,110, 99,116,105, - 111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, - 58, 98,117,105,108,100,110, 97,109,101,115, 32, 40, 41, 10, - 32,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, 97, - 110,100, 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39, - 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, 32, - 110, 32, 61, 32,115,112,108,105,116, 40,115,101,108,102, 46, - 110, 97,109,101, 44, 39, 64, 39, 41, 10, 32, 32,115,101,108, - 102, 46,110, 97,109,101, 32, 61, 32,110, 91, 49, 93, 10, 32, - 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,115,116, - 114,105,110,103, 46,103,115,117, 98, 40,115,101,108,102, 46, - 110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, 34, 44, 32, - 34, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32,110, 91, - 50, 93, 32,116,104,101,110, 10, 32, 32, 32,110, 91, 50, 93, - 32, 61, 32, 97,112,112,108,121,114,101,110, 97,109,105,110, - 103, 40,110, 91, 49, 93, 41, 10, 32, 32,101,110,100, 10, 32, - 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32,110, - 91, 50, 93, 32,111,114, 32,103,115,117, 98, 40,110, 91, 49, - 93, 44, 34, 37, 91, 46, 45, 37, 93, 34, 44, 34, 34, 41, 10, - 32, 32,115,101,108,102, 46,108,110, 97,109,101, 32, 61, 32, - 115,116,114,105,110,103, 46,103,115,117, 98, 40,115,101,108, - 102, 46,108,110, 97,109,101, 44, 32, 34, 58, 37,100, 42, 36, - 34, 44, 32, 34, 34, 41, 10, 32, 32,115,101,108,102, 46,111, - 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, 61, 32, - 115,101,108,102, 46,110, 97,109,101, 10, 32, 32,115,101,108, - 102, 46,108,110, 97,109,101, 32, 61, 32, 99,108,101, 97,110, - 95,116,101,109,112,108, 97,116,101, 40,115,101,108,102, 46, - 108,110, 97,109,101, 41, 10, 32,101,110,100, 10, 32,105,102, - 32,110,111,116, 32,115,101,108,102, 46,105,115, 95,112, 97, - 114, 97,109,101,116,101,114, 32,116,104,101,110, 10, 9, 32, - 115,101,108,102, 46,110, 97,109,101, 32, 61, 32,103,101,116, - 111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 40, 41, - 32, 46, 46, 32,115,101,108,102, 46,110, 97,109,101, 10, 32, - 101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,112, 97,114, - 101,110,116, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, - 97,105,110,101,114, 46, 99,117,114,114, 10, 32,105,102, 32, - 112, 97,114,101,110,116, 32,116,104,101,110, 10, 32, 9,115, - 101,108,102, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, 97, - 114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98,101, - 114, 95, 97, 99, 99,101,115,115, 10, 9,115,101,108,102, 46, - 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, - 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, - 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 32,101, - 108,115,101, 10, 32,101,110,100, 10,101,110,100, 10, 10,102, - 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, - 97,116,117,114,101, 58, 99,104,101, 99,107, 95,112,117, 98, - 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 10, 10, 9, - 105,102, 32,116,121,112,101, 40,115,101,108,102, 46,103,108, - 111, 98, 97,108, 95, 97, 99, 99,101,115,115, 41, 32, 61, 61, - 32, 34, 98,111,111,108,101, 97,110, 34, 32,116,104,101,110, - 10, 9, 9,114,101,116,117,114,110, 32,115,101,108,102, 46, - 103,108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 10, 9, - 101,110,100, 10, 10, 9,105,102, 32,115,101,108,102, 46, 97, - 99, 99,101,115,115, 32, 97,110,100, 32,115,101,108,102, 46, - 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104,101, - 110, 10, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115, - 101, 10, 9,101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, - 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, - 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, - 119,104,105,108,101, 32,112, 97,114,101,110,116, 32,100,111, - 10, 9, 9,105,102, 32,112, 97,114,101,110,116, 46, 97, 99, - 99,101,115,115, 32, 97,110,100, 32,112, 97,114,101,110,116, - 46, 97, 99, 99,101,115,115, 32,126, 61, 32, 48, 32,116,104, - 101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,102, 97, - 108,115,101, 10, 9, 9,101,110,100, 10, 9, 9,112, 97,114, - 101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112,114, - 111,120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, - 32,116,114,117,101, 10,101,110,100, 10, 10,102,117,110, 99, - 116,105,111,110, 32, 99,108,101, 97,110, 95,116,101,109,112, - 108, 97,116,101, 40,116, 41, 10, 10, 9,114,101,116,117,114, - 110, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,116, - 44, 32, 34, 91, 60, 62, 58, 44, 32, 37, 42, 93, 34, 44, 32, - 34, 95, 34, 41, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, - 101, 99,107, 32,105,102, 32,102,101, 97,116,117,114,101, 32, - 105,115, 32,105,110,115,105,100,101, 32, 97, 32, 99,111,110, - 116, 97,105,110,101,114, 32,100,101,102,105,110,105,116,105, - 111,110, 10, 45, 45, 32,105,116, 32,114,101,116,117,114,110, - 115, 32,116,104,101, 32, 99,111,110,116, 97,105,110,101,114, - 32, 99,108, 97,115,115, 32,110, 97,109,101, 32,111,114, 32, - 110,105,108, 46, 10,102,117,110, 99,116,105,111,110, 32, 99, - 108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,110, 99, - 111,110,116, 97,105,110,101,114, 32, 40,119,104,105, 99,104, - 41, 10, 32,105,102, 32,115,101,108,102, 46,112, 97,114,101, - 110,116, 32,116,104,101,110, 10, 32, 32,108,111, 99, 97,108, - 32,112, 97,114,101,110,116, 32, 61, 32,115,101,108,102, 46, - 112, 97,114,101,110,116, 10, 32, 32,119,104,105,108,101, 32, - 112, 97,114,101,110,116, 32,100,111, 10, 32, 32, 32,105,102, - 32,112, 97,114,101,110,116, 46, 99,108, 97,115,115,116,121, - 112,101, 32, 61, 61, 32,119,104,105, 99,104, 32,116,104,101, - 110, 10, 32, 32, 32, 32,114,101,116,117,114,110, 32,112, 97, - 114,101,110,116, 46,110, 97,109,101, 10, 32, 32, 32,101,110, - 100, 10, 32, 32, 32,112, 97,114,101,110,116, 32, 61, 32,112, - 97,114,101,110,116, 46,112, 97,114,101,110,116, 10, 32, 32, - 101,110,100, 10, 32,101,110,100, 10, 32,114,101,116,117,114, - 110, 32,110,105,108, 10,101,110,100, 10, 10,102,117,110, 99, - 116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117, - 114,101, 58,105,110, 99,108, 97,115,115, 32, 40, 41, 10, 32, - 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, - 111,110,116, 97,105,110,101,114, 40, 39, 99,108, 97,115,115, - 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58, - 105,110,109,111,100,117,108,101, 32, 40, 41, 10, 32,114,101, - 116,117,114,110, 32,115,101,108,102, 58,105,110, 99,111,110, - 116, 97,105,110,101,114, 40, 39,109,111,100,117,108,101, 39, - 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, - 32, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105, - 110,110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10, 32, - 114,101,116,117,114,110, 32,115,101,108,102, 58,105,110, 99, - 111,110,116, 97,105,110,101,114, 40, 39,110, 97,109,101,115, - 112, 97, 99,101, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, - 114,101,116,117,114,110, 32, 67, 32, 98,105,110,100,105,110, - 103, 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, - 32, 98, 97,115,101,100, 32,111,110, 32,110, 97,109,101, 10, - 45, 45, 32,116,104,101, 32, 99,108,105,101,110,116, 32,115, - 112,101, 99,105,102,105,101,115, 32, 97, 32,112,114,101,102, - 105,120, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, - 115,115, 70,101, 97,116,117,114,101, 58, 99,102,117,110, 99, - 110, 97,109,101, 32, 40,110, 41, 10, 10, 32,105,102, 32,115, - 101,108,102, 46,112, 97,114,101,110,116, 32,116,104,101,110, - 10, 32, 32,110, 32, 61, 32,115,101,108,102, 46,112, 97,114, - 101,110,116, 58, 99,102,117,110, 99,110, 97,109,101, 40,110, - 41, 10, 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, - 102,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,108,110, - 97,109,101, 10, 32,105,102, 32,110,111,116, 32,102,110, 97, - 109,101, 32,111,114, 32,102,110, 97,109,101, 32, 61, 61, 32, - 39, 39, 32,116,104,101,110, 10, 32, 9,102,110, 97,109,101, - 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, 32,101, - 110,100, 10, 32, 32,110, 32, 61, 32,115,116,114,105,110,103, - 46,103,115,117, 98, 40,110, 46, 46, 39, 95, 39, 46, 46, 32, - 40,102,110, 97,109,101, 41, 44, 32, 34, 91, 60, 62, 58, 44, - 32, 92, 46, 37, 42, 38, 93, 34, 44, 32, 34, 95, 34, 41, 10, - 10, 32, 32,114,101,116,117,114,110, 32,110, 10,101,110,100, - 32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/feature.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,118,101,114, 98, 97, - 116,105,109, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, - 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, - 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, - 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, - 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, - 100, 58, 32,118,101,114, 98, 97,116,105,109, 46,108,117, 97, - 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, 49, 47, - 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 54, 32, 99,101,108, - 101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, 84,104, - 105,115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, - 32,115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, - 99, 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116, - 101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100, - 105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32, - 115,111,102,116,119, 97,114,101, 32,112,114,111,118,105,100, - 101,100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, - 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, - 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116, - 104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110, - 111, 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, - 32,112,114,111,118,105,100,101, 32,109, 97,105,110,116,101, - 110, 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, - 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110, - 104, 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32, - 109,111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, - 10, 10, 10, 45, 45, 32, 86,101,114, 98, 97,116,105,109, 32, - 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, - 101,110,116,115, 32, 97, 32,108,105,110,101, 32,116,114, 97, - 110,115,108, 97,116,101,100, 32,100,105,114,101, 99,116,101, - 100, 32,116,111, 32,116,104,101, 32, 98,105,110,100,105,110, - 103, 32,102,105,108,101, 46, 10, 45, 45, 32, 84,104,101, 32, - 102,111,108,108,111,119,105,110,103, 32,102,105,108,100,115, - 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, - 32, 32, 32,108,105,110,101, 32, 61, 32,108,105,110,101, 32, - 116,101,120,116, 10, 99,108, 97,115,115, 86,101,114, 98, 97, - 116,105,109, 32, 61, 32,123, 10, 32,108,105,110,101, 32, 61, - 32, 39, 39, 44, 10, 9, 99,111,110,100, 32, 61, 32,110,105, - 108, 44, 32, 32, 32, 32, 45, 45, 32, 99,111,110,100,105,116, - 105,111,110, 58, 32,119,104,101,114,101, 32,116,111, 32,103, - 101,110,101,114, 97,116,101, 32,116,104,101, 32, 99,111,100, - 101, 32, 40,115, 61,115,117,112,111,114,116, 44, 32,114, 61, - 114,101,103,105,115,116,101,114, 41, 10,125, 10, 99,108, 97, - 115,115, 86,101,114, 98, 97,116,105,109, 46, 95, 95,105,110, - 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86,101,114, 98, - 97,116,105,109, 10,115,101,116,109,101,116, 97,116, 97, 98, - 108,101, 40, 99,108, 97,115,115, 86,101,114, 98, 97,116,105, - 109, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, - 10, 10, 45, 45, 32,112,114,101, 97,109, 98,108,101, 32,118, - 101,114, 98, 97,116,105,109, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, - 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10, 32,105, - 102, 32,115,101,108,102, 46, 99,111,110,100, 32, 61, 61, 32, - 39, 39, 32,116,104,101,110, 10, 32, 32,119,114,105,116,101, - 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101,110, - 100, 10,101,110,100, 10, 10, 45, 45, 32,115,117,112,112,111, - 114,116, 32, 99,111,100,101, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, - 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,105,102, - 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, 99, - 111,110,100, 44, 39,115, 39, 41, 32,116,104,101,110, 10, 32, - 32,119,114,105,116,101, 40,115,101,108,102, 46,108,105,110, - 101, 41, 10, 32, 32,119,114,105,116,101, 40, 39, 92,110, 39, - 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, - 114,101,103,105,115,116,101,114, 32, 99,111,100,101, 10,102, - 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86,101, - 114, 98, 97,116,105,109, 58,114,101,103,105,115,116,101,114, - 32, 40,112,114,101, 41, 10, 32,105,102, 32,115,116,114,102, - 105,110,100, 40,115,101,108,102, 46, 99,111,110,100, 44, 39, - 114, 39, 41, 32,116,104,101,110, 10, 32, 32,119,114,105,116, - 101, 40,115,101,108,102, 46,108,105,110,101, 41, 10, 32,101, - 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80,114,105, - 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 86,101,114, 98, 97,116, - 105,109, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, - 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, - 105,100,101,110,116, 46, 46, 34, 86,101,114, 98, 97,116,105, - 109,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, - 110,116, 46, 46, 34, 32,108,105,110,101, 32, 61, 32, 39, 34, - 46, 46,115,101,108,102, 46,108,105,110,101, 46, 46, 34, 39, - 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, - 116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10, - 101,110,100, 10, 10, 10, 45, 45, 32, 73,110,116,101,114,110, - 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10, - 102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, 97, - 116,105,109, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, - 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86, - 101,114, 98, 97,116,105,109, 41, 10, 32, 97,112,112,101,110, - 100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32,116, 10, - 101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, - 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, - 32, 97, 32,115,116,114,105,110,103, 32,114,101,112,114,101, - 115,101,110,116,105,110,103, 32,116,104,101, 32,116,101,120, - 116, 32,108,105,110,101, 10,102,117,110, 99,116,105,111,110, - 32, 86,101,114, 98, 97,116,105,109, 32, 40,108, 44, 99,111, - 110,100, 41, 10, 32,105,102, 32,115,116,114,115,117, 98, 40, - 108, 44, 49, 44, 49, 41, 32, 61, 61, 32, 34, 39, 34, 32,116, - 104,101,110, 10, 32, 32,108, 32, 61, 32,115,116,114,115,117, - 98, 40,108, 44, 50, 41, 10, 32,101,108,115,101,105,102, 32, - 115,116,114,115,117, 98, 40,108, 44, 49, 44, 49, 41, 32, 61, - 61, 32, 39, 36, 39, 32,116,104,101,110, 10, 32, 32, 99,111, - 110,100, 32, 61, 32, 39,115,114, 39, 32, 32, 32, 32, 32, 32, - 32, 45, 45, 32,103,101,110,101,114, 97,116,101,115, 32,105, - 110, 32, 98,111,116,104, 32,115,117,112,111,114,116, 32, 97, - 110,100, 32,114,101,103,105,115,116,101,114, 32,102,114, 97, - 103,109,101,110,116,115, 10, 32, 32,108, 32, 61, 32,115,116, - 114,115,117, 98, 40,108, 44, 50, 41, 10, 32,101,110,100, 10, - 32,114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,116, - 105,109, 32,123, 10, 32, 32,108,105,110,101, 32, 61, 32,108, - 44, 10, 32, 32, 99,111,110,100, 32, 61, 32, 99,111,110,100, - 32,111,114, 32, 39, 39, 44, 10, 32,125, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/verbatim.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,100,101, 32, - 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101, - 110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67, - 101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, - 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, - 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, - 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, - 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, - 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, - 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, - 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, - 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, - 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, - 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, - 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, - 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, - 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, - 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, - 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, - 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, - 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, - 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, - 116,105,111,110,115, 46, 10, 10, 45, 45, 32,103,108,111, 98, - 97,108, 10, 99,111,100,101, 95,110, 32, 61, 32, 49, 10, 10, - 45, 45, 32, 67,111,100,101, 32, 99,108, 97,115,115, 10, 45, - 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 76,117, - 97, 32, 99,111,100,101, 32,116,111, 32, 98,101, 32, 99,111, - 109,112,105,108,101,100, 32, 97,110,100, 32,105,110, 99,108, - 117,100,101,100, 10, 45, 45, 32,105,110, 32,116,104,101, 32, - 105,110,105,116,105, 97,108,105,122, 97,116,105,111,110, 32, - 102,117,110, 99,116,105,111,110, 46, 10, 45, 45, 32, 84,104, - 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,101, - 108,100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, - 10, 45, 45, 32, 32, 32,116,101,120,116, 32, 61, 32,116,101, - 120,116, 32, 99,111,100,101, 10, 99,108, 97,115,115, 67,111, - 100,101, 32, 61, 32,123, 10, 32,116,101,120,116, 32, 61, 32, - 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 67,111,100,101, - 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, - 115, 67,111,100,101, 10,115,101,116,109,101,116, 97,116, 97, - 98,108,101, 40, 99,108, 97,115,115, 67,111,100,101, 44, 99, - 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, - 45, 32,114,101,103,105,115,116,101,114, 32, 99,111,100,101, - 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, - 67,111,100,101, 58,114,101,103,105,115,116,101,114, 32, 40, - 112,114,101, 41, 10, 32,112,114,101, 32, 61, 32,112,114,101, - 32,111,114, 32, 39, 39, 10, 32, 45, 45, 32, 99,108,101, 97, - 110, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, - 97,108, 32,115, 32, 61, 32, 99,108,101, 97,110, 40,115,101, - 108,102, 46,116,101,120,116, 41, 10, 32,105,102, 32,110,111, - 116, 32,115, 32,116,104,101,110, 10, 32, 32, 45, 45,112,114, - 105,110,116, 40,115,101,108,102, 46,116,101,120,116, 41, 10, - 32, 32,101,114,114,111,114, 40, 34,112, 97,114,115,101,114, - 32,101,114,114,111,114, 32,105,110, 32,101,109, 98,101,100, - 100,101,100, 32, 99,111,100,101, 34, 41, 10, 32,101,110,100, - 10, 10, 32, 45, 45, 32,103,101,116, 32,102,105,114,115,116, - 32,108,105,110,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, - 32, 95, 44, 32,102,105,114,115,116, 95,108,105,110,101, 61, - 115,116,114,105,110,103, 46,102,105,110,100, 40,115,101,108, - 102, 46,116,101,120,116, 44, 32, 34, 94, 40, 91, 94, 92,110, - 92,114, 93, 42, 41, 34, 41, 10, 32,105,102, 32,115,116,114, - 105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, 95, - 108,105,110,101, 44, 32, 34, 94, 37,115, 42, 37, 45, 37, 45, - 34, 41, 32,116,104,101,110, 10, 9, 32,105,102, 32,115,116, - 114,105,110,103, 46,102,105,110,100, 40,102,105,114,115,116, - 95,108,105,110,101, 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, - 34, 41, 32,116,104,101,110, 10, 9, 9,102,105,114,115,116, - 95,108,105,110,101, 32, 61, 32,115,116,114,105,110,103, 46, - 103,115,117, 98, 40,102,105,114,115,116, 95,108,105,110,101, - 44, 32, 34, 94, 37, 45, 37, 45, 35, 35, 34, 44, 32, 34, 34, - 41, 10, 9, 9,105,102, 32,102,108, 97,103,115, 91, 39, 67, - 39, 93, 32,116,104,101,110, 10, 9, 9, 9,115, 32, 61, 32, - 115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, 32, - 34, 94, 37, 45, 37, 45, 35, 35, 91, 94, 92,110, 92,114, 93, - 42, 92,110, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, - 10, 9, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 9, - 102,105,114,115,116, 95,108,105,110,101, 32, 61, 32, 34, 34, - 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,111,110,118, - 101,114,116, 32,116,111, 32, 67, 10, 32,111,117,116,112,117, - 116, 40, 39, 92,110, 39, 46, 46,112,114,101, 46, 46, 39,123, - 32, 47, 42, 32, 98,101,103,105,110, 32,101,109, 98,101,100, - 100,101,100, 32,108,117, 97, 32, 99,111,100,101, 32, 42, 47, - 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40,112,114, - 101, 46, 46, 39, 32,105,110,116, 32,116,111,112, 32, 61, 32, - 108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108,117, - 97, 95, 83, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116, - 40,112,114,101, 46, 46, 39, 32,115,116, 97,116,105, 99, 32, - 117,110,115,105,103,110,101,100, 32, 99,104, 97,114, 32, 66, - 91, 93, 32, 61, 32,123, 92,110, 32, 32, 32, 39, 41, 10, 32, - 108,111, 99, 97,108, 32,116, 61,123,110, 61, 48,125, 10, 32, - 108,111, 99, 97,108, 32, 98, 32, 61, 32,103,115,117, 98, 40, - 115, 44, 39, 40, 46, 41, 39, 44,102,117,110, 99,116,105,111, - 110, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32,108,111, 99, 97,108, 32,101, 32, 61, 32, 39, 39, 10, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32,116, 46,110, 61,116, 46, - 110, 43, 49, 32,105,102, 32,116, 46,110, 61, 61, 49, 53, 32, - 116,104,101,110, 32,116, 46,110, 61, 48, 32,101, 61, 39, 92, - 110, 39, 46, 46,112,114,101, 46, 46, 39, 32, 32, 39, 32,101, - 110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101, - 116,117,114,110, 32,102,111,114,109, 97,116, 40, 39, 37, 51, - 117, 44, 37,115, 39, 44,115,116,114, 98,121,116,101, 40, 99, - 41, 44,101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101, - 110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 41, 10, 32,111,117,116,112,117,116, 40, 98, 46, - 46,115,116,114, 98,121,116,101, 40, 34, 32, 34, 41, 41, 10, - 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 46, 46,112, - 114,101, 46, 46, 39, 32,125, 59, 92,110, 39, 41, 10, 32,105, - 102, 32,102,105,114,115,116, 95,108,105,110,101, 32, 97,110, - 100, 32,102,105,114,115,116, 95,108,105,110,101, 32,126, 61, - 32, 34, 34, 32,116,104,101,110, 10, 32, 9,111,117,116,112, - 117,116, 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, - 95,100,111, 98,117,102,102,101,114, 40,116,111,108,117, 97, - 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122, - 101,111,102, 40, 66, 41, 44, 34,116,111,108,117, 97, 32,101, - 109, 98,101,100,100,101,100, 58, 32, 39, 46, 46,102,105,114, - 115,116, 95,108,105,110,101, 46, 46, 39, 34, 41, 59, 39, 41, - 10, 32,101,108,115,101, 10, 32, 9,111,117,116,112,117,116, - 40,112,114,101, 46, 46, 39, 32,116,111,108,117, 97, 95,100, - 111, 98,117,102,102,101,114, 40,116,111,108,117, 97, 95, 83, - 44, 40, 99,104, 97,114, 42, 41, 66, 44,115,105,122,101,111, - 102, 40, 66, 41, 44, 34,116,111,108,117, 97, 58, 32,101,109, - 98,101,100,100,101,100, 32, 76,117, 97, 32, 99,111,100,101, - 32, 39, 46, 46, 99,111,100,101, 95,110, 46, 46, 39, 34, 41, - 59, 39, 41, 10, 32,101,110,100, 10, 32,111,117,116,112,117, - 116, 40,112,114,101, 46, 46, 39, 32,108,117, 97, 95,115,101, - 116,116,111,112, 40,116,111,108,117, 97, 95, 83, 44, 32,116, - 111,112, 41, 59, 39, 41, 10, 32,111,117,116,112,117,116, 40, - 112,114,101, 46, 46, 39,125, 32, 47, 42, 32,101,110,100, 32, - 111,102, 32,101,109, 98,101,100,100,101,100, 32,108,117, 97, - 32, 99,111,100,101, 32, 42, 47, 92,110, 92,110, 39, 41, 10, - 32, 99,111,100,101, 95,110, 32, 61, 32, 99,111,100,101, 95, - 110, 32, 43, 49, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80, - 114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, - 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,100,101, - 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99, - 108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100, - 101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 116,101,120,116, 32, 61, 32, 91, 91, 34, 46, 46,115,101,108, - 102, 46,116,101,120,116, 46, 46, 34, 93, 93, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, - 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, - 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, - 116,105,111,110, 32, 95, 67,111,100,101, 32, 40,116, 41, 10, - 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, - 44, 99,108, 97,115,115, 67,111,100,101, 41, 10, 32, 97,112, - 112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114,110, - 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115, - 116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, - 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114,101, - 112,114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, - 99,111,100,101, 32,116,101,120,116, 10,102,117,110, 99,116, - 105,111,110, 32, 67,111,100,101, 32, 40,108, 41, 10, 32,114, - 101,116,117,114,110, 32, 95, 67,111,100,101, 32,123, 10, 32, - 32,116,101,120,116, 32, 61, 32,108, 10, 32,125, 10,101,110, - 100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/code.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,116,121,112,101,100, - 101,102, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, - 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, - 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, - 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, - 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, - 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, - 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, - 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, - 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, - 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, - 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, - 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, - 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, - 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, - 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, - 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, - 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, - 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, - 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, - 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, - 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, - 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, - 32, 84,121,112,101,100,101,102, 32, 99,108, 97,115,115, 10, - 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, - 32,116,121,112,101, 32,115,121,110,111,110,121,109, 46, 10, - 45, 45, 32, 84,104,101, 32, 39,100,101, 32,102, 97, 99,116, - 111, 39, 32,116,121,112,101, 32,114,101,112,108, 97, 99,101, - 115, 32,116,104,101, 32,116,121,112,101,100,101,102, 32, 98, - 101,102,111,114,101, 32,116,104,101, 10, 45, 45, 32,114,101, - 109, 97,105,110,105,110,103, 32, 99,111,100,101, 32,105,115, - 32,112, 97,114,115,101,100, 46, 10, 45, 45, 32, 84,104,101, - 32,102,111,108,108,111,119,105,110,103, 32,102,105,101,108, - 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, - 45, 45, 32, 32, 32,117,116,121,112,101, 32, 61, 32,116,121, - 112,101,100,101,102, 32,110, 97,109,101, 10, 45, 45, 32, 32, - 32,116,121,112,101, 32, 61, 32, 39,116,104,101, 32,102, 97, - 99,116,111, 39, 32,116,121,112,101, 10, 45, 45, 32, 32, 32, - 109,111,100, 32, 61, 32,109,111,100,105,102,105,101,114,115, - 32,116,111, 32,116,104,101, 32, 39,100,101, 32,102, 97, 99, - 116,111, 39, 32,116,121,112,101, 10, 99,108, 97,115,115, 84, - 121,112,101,100,101,102, 32, 61, 32,123, 10, 32,117,116,121, - 112,101, 32, 61, 32, 39, 39, 44, 10, 32,109,111,100, 32, 61, - 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, 39, - 10,125, 10, 99,108, 97,115,115, 84,121,112,101,100,101,102, - 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, - 115, 84,121,112,101,100,101,102, 10, 10, 45, 45, 32, 80,114, - 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, - 116,105,111,110, 32, 99,108, 97,115,115, 84,121,112,101,100, - 101,102, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, - 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, - 105,100,101,110,116, 46, 46, 34, 84,121,112,101,100,101,102, - 123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, - 116, 46, 46, 34, 32,117,116,121,112,101, 32, 61, 32, 39, 34, - 46, 46,115,101,108,102, 46,117,116,121,112,101, 46, 46, 34, - 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, - 110,116, 46, 46, 34, 32,109,111,100, 32, 61, 32, 39, 34, 46, - 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, - 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115, - 101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, - 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, - 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, - 10, 10, 45, 45, 32, 82,101,116,117,114,110, 32,105,116, 39, - 115, 32,110,111,116, 32, 97, 32,118, 97,114,105, 97, 98,108, - 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, - 115, 84,121,112,101,100,101,102, 58,105,115,118, 97,114,105, - 97, 98,108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, - 32,102, 97,108,115,101, 10,101,110,100, 10, 10, 45, 45, 32, - 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, - 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, - 95, 84,121,112,101,100,101,102, 32, 40,116, 41, 10, 32,115, - 101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99, - 108, 97,115,115, 84,121,112,101,100,101,102, 41, 10, 32,116, - 46,116,121,112,101, 32, 61, 32,114,101,115,111,108,118,101, - 95,116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, - 40,116, 46,116,121,112,101, 41, 10, 32, 97,112,112,101,110, - 100,116,121,112,101,100,101,102, 40,116, 41, 10, 32,114,101, - 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, - 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, - 69,120,112,101, 99,116,115, 32,111,110,101, 32,115,116,114, - 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, - 103, 32,116,104,101, 32,116,121,112,101, 32,100,101,102,105, - 110,105,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, - 110, 32, 84,121,112,101,100,101,102, 32, 40,115, 41, 10, 32, - 105,102, 32,115,116,114,102,105,110,100, 40,115,116,114,105, - 110,103, 46,103,115,117, 98, 40,115, 44, 32, 39, 37, 98, 60, - 62, 39, 44, 32, 39, 39, 41, 44, 39, 91, 37, 42, 38, 93, 39, - 41, 32,116,104,101,110, 10, 32, 32,116,111,108,117, 97, 95, - 101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105,100, - 32,116,121,112,101,100,101,102, 58, 32,112,111,105,110,116, - 101,114,115, 32, 40, 97,110,100, 32,114,101,102,101,114,101, - 110, 99,101,115, 41, 32, 97,114,101, 32,110,111,116, 32,115, - 117,112,112,111,114,116,101,100, 34, 41, 10, 32,101,110,100, - 10, 32,108,111, 99, 97,108, 32,111, 32, 61, 32,123,109,111, - 100, 32, 61, 32, 39, 39,125, 10, 32,105,102, 32,115,116,114, - 105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 91, 60, - 62, 93, 34, 41, 32,116,104,101,110, 10, 32, 9, 95, 44, 95, - 44,111, 46,116,121,112,101, 44,111, 46,117,116,121,112,101, - 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, - 115, 44, 32, 34, 94, 37,115, 42, 40, 91, 94, 60, 62, 93, 43, - 37, 98, 60, 62, 91, 94, 37,115, 93, 42, 41, 37,115, 43, 40, - 46, 45, 41, 36, 34, 41, 10, 32,101,108,115,101, 10, 32, 9, - 108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, - 40,103,115,117, 98, 40,115, 44, 34, 37,115, 37,115, 42, 34, - 44, 34, 32, 34, 41, 44, 34, 32, 34, 41, 10, 32, 9,111, 32, - 61, 32,123, 10, 9, 32, 32,117,116,121,112,101, 32, 61, 32, - 116, 91,116, 46,110, 93, 44, 10, 9, 32, 32,116,121,112,101, - 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 44, 10, 9, 32, - 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, - 44, 49, 44,116, 46,110, 45, 50, 41, 44, 10, 9, 32,125, 10, - 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, 95, 84, - 121,112,101,100,101,102, 40,111, 41, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/typedef.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32, 99,111,110,116, 97, - 105,110,101,114, 32, 97, 98,115,116,114, 97, 99,116, 32, 99, - 108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116,101,110, - 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, 67,101, - 108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97,102, 47, - 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117,108, 32, - 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, - 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32,105, - 115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114,101, - 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105,115, - 116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, 47, - 111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, 45, - 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, 32, - 112,114,111,118,105,100,101,100, 32,104,101,114,101,117,110, - 100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, 97, - 115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97,110, - 100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111,114, - 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97,116, - 105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, 32, - 109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115,117, - 112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, 44, - 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110,116, - 115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97,116, - 105,111,110,115, 46, 10, 10, 45, 45, 32,116, 97, 98,108,101, - 32,116,111, 32,115,116,111,114,101, 32,110, 97,109,101,115, - 112, 97, 99,101,100, 32,116,121,112,101,100,101,102,115, 47, - 101,110,117,109,115, 32,105,110, 32,103,108,111, 98, 97,108, - 32,115, 99,111,112,101, 10,103,108,111, 98, 97,108, 95,116, - 121,112,101,100,101,102,115, 32, 61, 32,123,125, 10,103,108, - 111, 98, 97,108, 95,101,110,117,109,115, 32, 61, 32,123,125, - 10, 10, 45, 45, 32, 67,111,110,116, 97,105,110,101,114, 32, - 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101,115, - 101,110,116,115, 32, 97, 32, 99,111,110,116, 97,105,110,101, - 114, 32,111,102, 32,102,101, 97,116,117,114,101,115, 32,116, - 111, 32, 98,101, 32, 98,111,117,110,100, 10, 45, 45, 32,116, - 111, 32,108,117, 97, 46, 10, 99,108, 97,115,115, 67,111,110, - 116, 97,105,110,101,114, 32, 61, 10,123, 10, 32, 99,117,114, - 114, 32, 61, 32,110,105,108, 44, 10,125, 10, 99,108, 97,115, - 115, 67,111,110,116, 97,105,110,101,114, 46, 95, 95,105,110, - 100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, - 97,105,110,101,114, 10,115,101,116,109,101,116, 97,116, 97, - 98,108,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105, - 110,101,114, 44, 99,108, 97,115,115, 70,101, 97,116,117,114, - 101, 41, 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116, - 97,103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, - 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100,101, - 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117,115,104, - 40,115,101,108,102, 41, 10, 32,108,111, 99, 97,108, 32,105, - 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, - 105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, 93, - 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32,105, - 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,111, - 112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32,119,114, - 105,116,101, 32,115,117,112,112,111,114,116, 32, 99,111,100, - 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, - 115, 67,111,110,116, 97,105,110,101,114, 58,115,117,112, 99, - 111,100,101, 32, 40, 41, 10, 10, 9,105,102, 32,110,111,116, - 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, 98, - 108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104, - 101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101,110, - 100, 10, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, - 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105, - 108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, - 32,105,102, 32,115,101,108,102, 91,105, 93, 58, 99,104,101, - 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115, - 115, 40, 41, 32,116,104,101,110, 10, 32, 32, 9,115,101,108, - 102, 91,105, 93, 58,115,117,112, 99,111,100,101, 40, 41, 10, - 32, 32,101,110,100, 10, 32, 32,105, 32, 61, 32,105, 43, 49, - 10, 32,101,110,100, 10, 32,112,111,112, 40, 41, 10,101,110, - 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, - 115,115, 67,111,110,116, 97,105,110,101,114, 58,104, 97,115, - 118, 97,114, 32, 40, 41, 10, 32,108,111, 99, 97,108, 32,105, - 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91, - 105, 93, 32,100,111, 10, 32, 32,105,102, 32,115,101,108,102, - 91,105, 93, 58,105,115,118, 97,114,105, 97, 98,108,101, 40, - 41, 32,116,104,101,110, 10, 9, 9, 32,114,101,116,117,114, - 110, 32, 49, 10, 9, 9,101,110,100, 10, 32, 32,105, 32, 61, - 32,105, 43, 49, 10, 32,101,110,100, 10, 9,114,101,116,117, - 114,110, 32, 48, 10,101,110,100, 10, 10, 45, 45, 32, 73,110, - 116,101,114,110, 97,108, 32, 99,111,110,116, 97,105,110,101, - 114, 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102, - 117,110, 99,116,105,111,110, 32, 95, 67,111,110,116, 97,105, - 110,101,114, 32, 40,115,101,108,102, 41, 10, 32,115,101,116, - 109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44, - 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 41, - 10, 32,115,101,108,102, 46,110, 32, 61, 32, 48, 10, 32,115, - 101,108,102, 46,116,121,112,101,100,101,102,115, 32, 61, 32, - 123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32,115,101, - 108,102, 46,117,115,101,114,116,121,112,101,115, 32, 61, 32, - 123,125, 10, 32,115,101,108,102, 46,101,110,117,109,115, 32, - 61, 32,123,116,111,108,117, 97, 95,110, 61, 48,125, 10, 32, - 115,101,108,102, 46,108,110, 97,109,101,115, 32, 61, 32,123, - 125, 10, 32,114,101,116,117,114,110, 32,115,101,108,102, 10, - 101,110,100, 10, 10, 45, 45, 32,112,117,115,104, 32, 99,111, - 110,116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111, - 110, 32,112,117,115,104, 32, 40,116, 41, 10, 9,116, 46,112, - 114,111,120, 32, 61, 32, 99,108, 97,115,115, 67,111,110,116, - 97,105,110,101,114, 46, 99,117,114,114, 10, 32, 99,108, 97, - 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, - 114, 32, 61, 32,116, 10,101,110,100, 10, 10, 45, 45, 32,112, - 111,112, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, - 110, 99,116,105,111,110, 32,112,111,112, 32, 40, 41, 10, 45, - 45,112,114,105,110,116, 40, 34,110, 97,109,101, 34, 44, 99, - 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99, - 117,114,114, 46,110, 97,109,101, 41, 10, 45, 45,102,111,114, - 101, 97, 99,104, 40, 99,108, 97,115,115, 67,111,110,116, 97, - 105,110,101,114, 46, 99,117,114,114, 46,117,115,101,114,116, - 121,112,101,115, 44,112,114,105,110,116, 41, 10, 45, 45,112, - 114,105,110,116, 40, 34, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 34, 41, 10, 32, 99,108, 97,115,115, 67, - 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 32, 61, - 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, - 46, 99,117,114,114, 46,112,114,111,120, 10,101,110,100, 10, - 10, 45, 45, 32,103,101,116, 32, 99,117,114,114,101,110,116, - 32,110, 97,109,101,115,112, 97, 99,101, 10,102,117,110, 99, - 116,105,111,110, 32,103,101,116, 99,117,114,114,110, 97,109, - 101,115,112, 97, 99,101, 32, 40, 41, 10, 9,114,101,116,117, - 114,110, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, - 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, - 46, 99,117,114,114, 41, 10,101,110,100, 10, 10, 45, 45, 32, - 97,112,112,101,110,100, 32,116,111, 32, 99,117,114,114,101, - 110,116, 32, 99,111,110,116, 97,105,110,101,114, 10,102,117, - 110, 99,116,105,111,110, 32, 97,112,112,101,110,100, 32, 40, - 116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115, - 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, - 58, 97,112,112,101,110,100, 40,116, 41, 10,101,110,100, 10, - 10, 45, 45, 32, 97,112,112,101,110,100, 32,116,121,112,101, - 100,101,102, 32,116,111, 32, 99,117,114,114,101,110,116, 32, - 99,111,110,116, 97,105,110,101,114, 10,102,117,110, 99,116, - 105,111,110, 32, 97,112,112,101,110,100,116,121,112,101,100, - 101,102, 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, - 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, - 99,117,114,114, 58, 97,112,112,101,110,100,116,121,112,101, - 100,101,102, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, - 97,112,112,101,110,100, 32,117,115,101,114,116,121,112,101, - 32,116,111, 32, 99,117,114,114,101,110,116, 32, 99,111,110, - 116, 97,105,110,101,114, 10,102,117,110, 99,116,105,111,110, - 32, 97,112,112,101,110,100,117,115,101,114,116,121,112,101, - 32, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, 99,108, - 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117, - 114,114, 58, 97,112,112,101,110,100,117,115,101,114,116,121, - 112,101, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, 32, 97, - 112,112,101,110,100, 32,101,110,117,109, 32,116,111, 32, 99, - 117,114,114,101,110,116, 32, 99,111,110,116, 97,105,110,101, - 114, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,101, - 110,100,101,110,117,109, 32, 40,116, 41, 10, 32,114,101,116, - 117,114,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105, - 110,101,114, 46, 99,117,114,114, 58, 97,112,112,101,110,100, - 101,110,117,109, 40,116, 41, 10,101,110,100, 10, 10, 45, 45, - 32,115,117, 98,115,116,105,116,117,116,101, 32,116,121,112, - 101,100,101,102, 10,102,117,110, 99,116,105,111,110, 32, 97, - 112,112,108,121,116,121,112,101,100,101,102, 32, 40,109,111, - 100, 44,116,121,112,101, 41, 10, 32,114,101,116,117,114,110, - 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, - 46, 99,117,114,114, 58, 97,112,112,108,121,116,121,112,101, - 100,101,102, 40,109,111,100, 44,116,121,112,101, 41, 10,101, - 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, - 32,105,115, 32,116,121,112,101, 10,102,117,110, 99,116,105, - 111,110, 32,102,105,110,100,116,121,112,101, 32, 40,116,121, - 112,101, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, - 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46, - 99,117,114,114, 58,102,105,110,100,116,121,112,101, 40,116, - 121,112,101, 41, 10, 9,114,101,116,117,114,110, 32,116, 10, - 101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105, - 102, 32,105,115, 32,116,121,112,101,100,101,102, 10,102,117, - 110, 99,116,105,111,110, 32,105,115,116,121,112,101,100,101, - 102, 32, 40,116,121,112,101, 41, 10, 32,114,101,116,117,114, - 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, - 114, 46, 99,117,114,114, 58,105,115,116,121,112,101,100,101, - 102, 40,116,121,112,101, 41, 10,101,110,100, 10, 10, 45, 45, - 32,103,101,116, 32,102,117,108,108,116,121,112,101, 32, 40, - 119,105,116,104, 32,110, 97,109,101,115,112, 97, 99,101, 41, - 10,102,117,110, 99,116,105,111,110, 32,102,117,108,108,116, - 121,112,101, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, - 99,117,114,114, 32, 61, 32, 32, 99,108, 97,115,115, 67,111, - 110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9,119, - 104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32, - 105,102, 32, 99,117,114,114, 32,116,104,101,110, 10, 9, 9, - 32,105,102, 32, 99,117,114,114, 46,116,121,112,101,100,101, - 102,115, 32, 97,110,100, 32, 99,117,114,114, 46,116,121,112, - 101,100,101,102,115, 91,116, 93, 32,116,104,101,110, 10, 9, - 9, 32, 32,114,101,116,117,114,110, 32, 99,117,114,114, 46, - 116,121,112,101,100,101,102,115, 91,116, 93, 10, 9, 9, 32, - 101,108,115,101,105,102, 32, 99,117,114,114, 46,117,115,101, - 114,116,121,112,101,115, 32, 97,110,100, 32, 99,117,114,114, - 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, - 104,101,110, 10, 9, 9, 32, 32,114,101,116,117,114,110, 32, - 99,117,114,114, 46,117,115,101,114,116,121,112,101,115, 91, - 116, 93, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, - 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, - 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, - 114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 99,104, - 101, 99,107,115, 32,105,102, 32,105,116, 32,114,101,113,117, - 105,114,101,115, 32, 99,111,108,108,101, 99,116,105,111,110, - 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, - 67,111,110,116, 97,105,110,101,114, 58,114,101,113,117,105, - 114,101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, - 41, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, - 108,111, 99, 97,108, 32,105, 61, 49, 10, 9,108,111, 99, 97, - 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,119,104, - 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, - 32, 32,114, 32, 61, 32,115,101,108,102, 91,105, 93, 58,114, - 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, - 110, 40,116, 41, 32,111,114, 32,114, 10, 32, 32,105, 32, 61, - 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112,111,112, 40, - 41, 10, 9,114,101,116,117,114,110, 32,114, 10,101,110,100, - 10, 10, 10, 45, 45, 32,103,101,116, 32,110, 97,109,101,115, - 97,112, 99,101, 10,102,117,110, 99,116,105,111,110, 32,103, - 101,116,110, 97,109,101,115,112, 97, 99,101, 32, 40, 99,117, - 114,114, 41, 10, 9,108,111, 99, 97,108, 32,110, 97,109,101, - 115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9,119,104,105, - 108,101, 32, 99,117,114,114, 32,100,111, 10, 9, 32,105,102, - 32, 99,117,114,114, 32, 97,110,100, 10, 9, 9, 32, 32, 32, - 40, 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112, - 101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111,114, - 32, 99,117,114,114, 46, 99,108, 97,115,115,116,121,112,101, - 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39, - 41, 10, 9, 9,116,104,101,110, 10, 9, 9, 32,110, 97,109, - 101,115,112, 97, 99,101, 32, 61, 32, 40, 99,117,114,114, 46, - 111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111, - 114, 32, 99,117,114,114, 46,110, 97,109,101, 41, 32, 46, 46, - 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109,101,115,112, - 97, 99,101, 10, 9, 9, 32, 45, 45,110, 97,109,101,115,112, - 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, 97,109,101, - 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32,110, 97,109, - 101,115,112, 97, 99,101, 10, 9, 9,101,110,100, 10, 9, 32, - 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111, - 120, 10, 9,101,110,100, 10, 9,114,101,116,117,114,110, 32, - 110, 97,109,101,115,112, 97, 99,101, 10,101,110,100, 10, 10, - 45, 45, 32,103,101,116, 32,110, 97,109,101,115,112, 97, 99, - 101, 32, 40,111,110,108,121, 32,110, 97,109,101,115,112, 97, - 99,101, 41, 10,102,117,110, 99,116,105,111,110, 32,103,101, - 116,111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 32, - 40, 41, 10, 32,108,111, 99, 97,108, 32, 99,117,114,114, 32, - 61, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, - 114, 46, 99,117,114,114, 10, 9,108,111, 99, 97,108, 32,110, - 97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, 10, 9, - 119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 9, - 9,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, - 121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32, - 116,104,101,110, 10, 9, 9, 32,114,101,116,117,114,110, 32, - 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,108,115, - 101,105,102, 32, 99,117,114,114, 46, 99,108, 97,115,115,116, - 121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, - 99,101, 39, 32,116,104,101,110, 10, 9, 9, 32,110, 97,109, - 101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114, 46,110, - 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46, 46, 32, - 110, 97,109,101,115,112, 97, 99,101, 10, 9, 9,101,110,100, - 10, 9, 32, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, - 112,114,111,120, 10, 9,101,110,100, 10, 9,114,101,116,117, - 114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101,110, - 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, - 105,115, 32,101,110,117,109, 10,102,117,110, 99,116,105,111, - 110, 32,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, - 10, 32,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67, - 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,105, - 115,101,110,117,109, 40,116,121,112,101, 41, 10,101,110,100, - 10, 10, 45, 45, 32, 97,112,112,101,110,100, 32,102,101, 97, - 116,117,114,101, 32,116,111, 32, 99,111,110,116, 97,105,110, - 101,114, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, - 115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,112,112, - 101,110,100, 32, 40,116, 41, 10, 32,115,101,108,102, 46,110, - 32, 61, 32,115,101,108,102, 46,110, 32, 43, 32, 49, 10, 32, - 115,101,108,102, 91,115,101,108,102, 46,110, 93, 32, 61, 32, - 116, 10, 32,116, 46,112, 97,114,101,110,116, 32, 61, 32,115, - 101,108,102, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, - 101,110,100, 32,116,121,112,101,100,101,102, 10,102,117,110, - 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, - 97,105,110,101,114, 58, 97,112,112,101,110,100,116,121,112, - 101,100,101,102, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, - 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101, - 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, - 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, - 41, 10, 32,115,101,108,102, 46,116,121,112,101,100,101,102, - 115, 46,116,111,108,117, 97, 95,110, 32, 61, 32,115,101,108, - 102, 46,116,121,112,101,100,101,102,115, 46,116,111,108,117, - 97, 95,110, 32, 43, 32, 49, 10, 32,115,101,108,102, 46,116, - 121,112,101,100,101,102,115, 91,115,101,108,102, 46,116,121, - 112,101,100,101,102,115, 46,116,111,108,117, 97, 95,110, 93, - 32, 61, 32,116, 10, 9,115,101,108,102, 46,116,121,112,101, - 100,101,102,115, 91,116, 46,117,116,121,112,101, 93, 32, 61, - 32,110, 97,109,101,115,112, 97, 99,101, 32, 46, 46, 32,116, - 46,117,116,121,112,101, 10, 9,103,108,111, 98, 97,108, 95, - 116,121,112,101,100,101,102,115, 91,110, 97,109,101,115,112, - 97, 99,101, 46, 46,116, 46,117,116,121,112,101, 93, 32, 61, - 32,116, 10, 9,116, 46,102,116,121,112,101, 32, 61, 32,102, - 105,110,100,116,121,112,101, 40,116, 46,116,121,112,101, 41, - 32,111,114, 32,116, 46,116,121,112,101, 10, 9, 45, 45,112, - 114,105,110,116, 40, 34, 97,112,112,101,110,100,105,110,103, - 32,116,121,112,101,100,101,102, 32, 34, 46, 46,116, 46,117, - 116,121,112,101, 46, 46, 34, 32, 97,115, 32, 34, 46, 46,110, - 97,109,101,115,112, 97, 99,101, 46, 46,116, 46,117,116,121, - 112,101, 46, 46, 34, 32,119,105,116,104, 32,102,116,121,112, - 101, 32, 34, 46, 46,116, 46,102,116,121,112,101, 41, 10, 9, - 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95,116, - 121,112,101, 40,110, 97,109,101,115,112, 97, 99,101, 46, 46, - 116, 46,117,116,121,112,101, 41, 10, 9,105,102, 32,116, 46, - 102,116,121,112,101, 32, 97,110,100, 32,105,115,101,110,117, - 109, 40,116, 46,102,116,121,112,101, 41, 32,116,104,101,110, - 10, 10, 9, 9,103,108,111, 98, 97,108, 95,101,110,117,109, - 115, 91,110, 97,109,101,115,112, 97, 99,101, 46, 46,116, 46, - 117,116,121,112,101, 93, 32, 61, 32,116,114,117,101, 10, 9, - 101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112, - 101,110,100, 32,117,115,101,114,116,121,112,101, 58, 32,114, - 101,116,117,114,110, 32,102,117,108,108, 32,116,121,112,101, - 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, - 67,111,110,116, 97,105,110,101,114, 58, 97,112,112,101,110, - 100,117,115,101,114,116,121,112,101, 32, 40,116, 41, 10, 9, - 108,111, 99, 97,108, 32, 99,111,110,116, 97,105,110,101,114, - 10, 9,105,102, 32,116, 32, 61, 61, 32, 40,115,101,108,102, - 46,111,114,105,103,105,110, 97,108, 95,110, 97,109,101, 32, - 111,114, 32,115,101,108,102, 46,110, 97,109,101, 41, 32,116, - 104,101,110, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, - 32, 61, 32,115,101,108,102, 46,112,114,111,120, 10, 9,101, - 108,115,101, 10, 9, 9, 99,111,110,116, 97,105,110,101,114, - 32, 61, 32,115,101,108,102, 10, 9,101,110,100, 10, 9,108, - 111, 99, 97,108, 32,102,116, 32, 61, 32,103,101,116,110, 97, - 109,101,115,112, 97, 99,101, 40, 99,111,110,116, 97,105,110, - 101,114, 41, 32, 46, 46, 32,116, 10, 9, 99,111,110,116, 97, - 105,110,101,114, 46,117,115,101,114,116,121,112,101,115, 91, - 116, 93, 32, 61, 32,102,116, 10, 9, 95,117,115,101,114,116, - 121,112,101, 91,102,116, 93, 32, 61, 32,102,116, 10, 9,114, - 101,116,117,114,110, 32,102,116, 10,101,110,100, 10, 10, 45, - 45, 32, 97,112,112,101,110,100, 32,101,110,117,109, 10,102, - 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, - 110,116, 97,105,110,101,114, 58, 97,112,112,101,110,100,101, - 110,117,109, 32, 40,116, 41, 10, 32,108,111, 99, 97,108, 32, - 110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,103,101,116, - 110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115,115, - 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 41, - 10, 32,115,101,108,102, 46,101,110,117,109,115, 46,116,111, - 108,117, 97, 95,110, 32, 61, 32,115,101,108,102, 46,101,110, - 117,109,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, - 10, 32,115,101,108,102, 46,101,110,117,109,115, 91,115,101, - 108,102, 46,101,110,117,109,115, 46,116,111,108,117, 97, 95, - 110, 93, 32, 61, 32,116, 10, 9,103,108,111, 98, 97,108, 95, - 101,110,117,109,115, 91,110, 97,109,101,115,112, 97, 99,101, - 46, 46,116, 46,110, 97,109,101, 93, 32, 61, 32,116, 10,101, - 110,100, 10, 10, 45, 45, 32,100,101,116,101,114,109,105,110, - 101, 32,108,117, 97, 32,102,117,110, 99,116,105,111,110, 32, - 110, 97,109,101, 32,111,118,101,114,108,111, 97,100, 10,102, - 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111, - 110,116, 97,105,110,101,114, 58,111,118,101,114,108,111, 97, - 100, 32, 40,108,110, 97,109,101, 41, 10, 32,105,102, 32,110, - 111,116, 32,115,101,108,102, 46,108,110, 97,109,101,115, 91, - 108,110, 97,109,101, 93, 32,116,104,101,110, 10, 32, 32,115, - 101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109, - 101, 93, 32, 61, 32, 48, 10, 32,101,108,115,101, 10, 32, 32, - 115,101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97, - 109,101, 93, 32, 61, 32,115,101,108,102, 46,108,110, 97,109, - 101,115, 91,108,110, 97,109,101, 93, 32, 43, 32, 49, 10, 32, - 101,110,100, 10, 32,114,101,116,117,114,110, 32,102,111,114, - 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,115,101,108,102, - 46,108,110, 97,109,101,115, 91,108,110, 97,109,101, 93, 41, - 10,101,110,100, 10, 10, 45, 45, 32, 97,112,112,108,105,101, - 115, 32,116,121,112,101,100,101,102, 58, 32,114,101,116,117, - 114,110,115, 32,116,104,101, 32, 39,116,104,101, 32,102, 97, - 99,116,111, 39, 32,109,111,100,105,102,105,101,114, 32, 97, - 110,100, 32,116,121,112,101, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, - 114, 58, 97,112,112,108,121,116,121,112,101,100,101,102, 32, - 40,109,111,100, 44,116,121,112,101, 41, 10, 9,105,102, 32, - 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, - 91,116,121,112,101, 93, 32,116,104,101,110, 10, 9, 9, 45, - 45,112,114,105,110,116, 40, 34,102,111,117,110,100, 32,116, - 121,112,101,100,101,102, 32, 34, 46, 46,103,108,111, 98, 97, - 108, 95,116,121,112,101,100,101,102,115, 91,116,121,112,101, - 93, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, - 32,109,111,100, 49, 44, 32,116,121,112,101, 49, 32, 61, 32, - 103,108,111, 98, 97,108, 95,116,121,112,101,100,101,102,115, - 91,116,121,112,101, 93, 46,109,111,100, 44, 32,103,108,111, - 98, 97,108, 95,116,121,112,101,100,101,102,115, 91,116,121, - 112,101, 93, 46,102,116,121,112,101, 10, 9, 9,108,111, 99, - 97,108, 32,109,111,100, 50, 44, 32,116,121,112,101, 50, 32, - 61, 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, - 109,111,100, 46, 46, 34, 32, 34, 46, 46,109,111,100, 49, 44, - 32,116,121,112,101, 49, 41, 10, 9, 9, 45, 45,114,101,116, - 117,114,110, 32,109,111,100, 50, 32, 46, 46, 32, 39, 32, 39, - 32, 46, 46, 32,109,111,100, 49, 44, 32,116,121,112,101, 50, - 10, 9, 9,114,101,116,117,114,110, 32,109,111,100, 50, 44, - 32,116,121,112,101, 50, 10, 9,101,110,100, 10, 9,100,111, - 32,114,101,116,117,114,110, 32,109,111,100, 44,116,121,112, - 101, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 99, - 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, - 32,116,121,112,101,100,101,102, 10,102,117,110, 99,116,105, - 111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110, - 101,114, 58,105,115,116,121,112,101,100,101,102, 32, 40,116, - 121,112,101, 41, 10, 32,108,111, 99, 97,108, 32,101,110,118, - 32, 61, 32,115,101,108,102, 10, 32,119,104,105,108,101, 32, - 101,110,118, 32,100,111, 10, 32, 32,105,102, 32,101,110,118, - 46,116,121,112,101,100,101,102,115, 32,116,104,101,110, 10, - 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, - 32,119,104,105,108,101, 32,101,110,118, 46,116,121,112,101, - 100,101,102,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, - 105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,115, - 91,105, 93, 46,117,116,121,112,101, 32, 61, 61, 32,116,121, - 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, - 32, 32,114,101,116,117,114,110, 32,116,121,112,101, 10, 32, - 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, - 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, - 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, - 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, - 101,110,100, 10, 32,114,101,116,117,114,110, 32,110,105,108, - 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, - 102,105,110,100, 95,101,110,117,109, 95,118, 97,114, 40,118, - 97,114, 41, 10, 10, 9,105,102, 32,116,111,110,117,109, 98, - 101,114, 40,118, 97,114, 41, 32,116,104,101,110, 32,114,101, - 116,117,114,110, 32,118, 97,114, 32,101,110,100, 10, 10, 9, - 108,111, 99, 97,108, 32, 99, 32, 61, 32, 99,108, 97,115,115, - 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, - 9,119,104,105,108,101, 32, 99, 32,100,111, 10, 9, 9,108, - 111, 99, 97,108, 32,110,115, 32, 61, 32,103,101,116,110, 97, - 109,101,115,112, 97, 99,101, 40, 99, 41, 10, 9, 9,102,111, - 114, 32,107, 44,118, 32,105,110, 32,112, 97,105,114,115, 40, - 95,103,108,111, 98, 97,108, 95,101,110,117,109,115, 41, 32, - 100,111, 10, 9, 9, 9,105,102, 32,109, 97,116, 99,104, 95, - 116,121,112,101, 40,118, 97,114, 44, 32,118, 44, 32,110,115, - 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117, - 114,110, 32,118, 10, 9, 9, 9,101,110,100, 10, 9, 9,101, - 110,100, 10, 9, 9,105,102, 32, 99, 46, 98, 97,115,101, 32, - 97,110,100, 32, 99, 46, 98, 97,115,101, 32,126, 61, 32, 39, - 39, 32,116,104,101,110, 10, 9, 9, 9, 99, 32, 61, 32, 95, - 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, - 99, 58,102,105,110,100,116,121,112,101, 40, 99, 46, 98, 97, - 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, - 99, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, - 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,118, 97, - 114, 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, - 32,105,102, 32,105,115, 32, 97, 32,114,101,103,105,115,116, - 101,114,101,100, 32,116,121,112,101, 58, 32,114,101,116,117, - 114,110, 32,102,117,108,108, 32,116,121,112,101, 32,111,114, - 32,110,105,108, 10,102,117,110, 99,116,105,111,110, 32, 99, - 108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,102, - 105,110,100,116,121,112,101, 32, 40,116, 41, 10, 10, 9,116, - 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, - 116, 44, 32, 34, 61, 46, 42, 34, 44, 32, 34, 34, 41, 10, 9, - 105,102, 32, 95, 98, 97,115,105, 99, 91,116, 93, 32,116,104, - 101,110, 10, 9, 32,114,101,116,117,114,110, 32,116, 10, 9, - 101,110,100, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, 95, - 44,101,109, 32, 61, 32,115,116,114,105,110,103, 46,102,105, - 110,100, 40,116, 44, 32, 34, 40, 91, 38, 37, 42, 93, 41, 37, - 115, 42, 36, 34, 41, 10, 9,116, 32, 61, 32,115,116,114,105, - 110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 37,115, 42, - 40, 91, 38, 37, 42, 93, 41, 37,115, 42, 36, 34, 44, 32, 34, - 34, 41, 10, 9,112, 32, 61, 32,115,101,108,102, 10, 9,119, - 104,105,108,101, 32,112, 32, 97,110,100, 32,116,121,112,101, - 40,112, 41, 61, 61, 39,116, 97, 98,108,101, 39, 32,100,111, - 10, 9, 9,108,111, 99, 97,108, 32,115,116, 32, 61, 32,103, - 101,116,110, 97,109,101,115,112, 97, 99,101, 40,112, 41, 10, - 10, 9, 9,102,111,114, 32,105, 61, 95,103,108,111, 98, 97, - 108, 95,116,121,112,101,115, 46,110, 44, 49, 44, 45, 49, 32, - 100,111, 32, 45, 45, 32,105,110, 32,114,101,118,101,114,115, - 101, 32,111,114,100,101,114, 10, 10, 9, 9, 9,105,102, 32, - 109, 97,116, 99,104, 95,116,121,112,101, 40,116, 44, 32, 95, - 103,108,111, 98, 97,108, 95,116,121,112,101,115, 91,105, 93, - 44, 32,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, - 114,101,116,117,114,110, 32, 95,103,108,111, 98, 97,108, 95, - 116,121,112,101,115, 91,105, 93, 46, 46, 40,101,109, 32,111, - 114, 32, 34, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, - 101,110,100, 10, 9, 9,105,102, 32,112, 46, 98, 97,115,101, - 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, 61, 32, - 39, 39, 32, 97,110,100, 32,112, 46, 98, 97,115,101, 32,126, - 61, 32,116, 32,116,104,101,110, 10, 9, 9, 9, 45, 45,112, - 114,105,110,116, 40, 34,116,121,112,101, 32,105,115, 32, 34, - 46, 46,116, 46, 46, 34, 44, 32,112, 32,105,115, 32, 34, 46, - 46,112, 46, 98, 97,115,101, 46, 46, 34, 32,115,101,108,102, - 46,116,121,112,101, 32,105,115, 32, 34, 46, 46,115,101,108, - 102, 46,116,121,112,101, 46, 46, 34, 32,115,101,108,102, 46, - 110, 97,109,101, 32,105,115, 32, 34, 46, 46,115,101,108,102, - 46,110, 97,109,101, 41, 10, 9, 9, 9,112, 32, 61, 32, 95, - 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, - 112, 58,102,105,110,100,116,121,112,101, 40,112, 46, 98, 97, - 115,101, 41, 93, 10, 9, 9,101,108,115,101, 10, 9, 9, 9, - 112, 32, 61, 32,110,105,108, 10, 9, 9,101,110,100, 10, 9, - 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,110,105, - 108, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, - 32, 97,112,112,101,110,100, 95,103,108,111, 98, 97,108, 95, - 116,121,112,101, 40,116, 44, 32, 99,108, 97,115,115, 41, 10, - 9, 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 46, - 110, 32, 61, 32, 95,103,108,111, 98, 97,108, 95,116,121,112, - 101,115, 46,110, 32, 43, 49, 10, 9, 95,103,108,111, 98, 97, - 108, 95,116,121,112,101,115, 91, 95,103,108,111, 98, 97,108, - 95,116,121,112,101,115, 46,110, 93, 32, 61, 32,116, 10, 9, - 95,103,108,111, 98, 97,108, 95,116,121,112,101,115, 95,104, - 97,115,104, 91,116, 93, 32, 61, 32, 49, 10, 9,105,102, 32, - 99,108, 97,115,115, 32,116,104,101,110, 32, 97,112,112,101, - 110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40,116, - 44, 32, 99,108, 97,115,115, 41, 32,101,110,100, 10,101,110, - 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112, - 101,110,100, 95, 99,108, 97,115,115, 95,116,121,112,101, 40, - 116, 44, 99,108, 97,115,115, 41, 10, 9,105,102, 32, 95,103, - 108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, - 93, 32,116,104,101,110, 10, 9, 9, 99,108, 97,115,115, 46, - 102,108, 97,103,115, 32, 61, 32, 95,103,108,111, 98, 97,108, - 95, 99,108, 97,115,115,101,115, 91,116, 93, 46,102,108, 97, - 103,115, 10, 9, 9, 99,108, 97,115,115, 46,108,110, 97,109, - 101,115, 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, - 97,115,115,101,115, 91,116, 93, 46,108,110, 97,109,101,115, - 10, 9, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, 99, - 108, 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32, - 97,110,100, 32, 40, 95,103,108,111, 98, 97,108, 95, 99,108, - 97,115,115,101,115, 91,116, 93, 46, 98, 97,115,101, 32,126, - 61, 32, 39, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 99, - 108, 97,115,115, 46, 98, 97,115,101, 32, 61, 32, 95,103,108, - 111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91,116, 93, - 46, 98, 97,115,101, 32,111,114, 32, 99,108, 97,115,115, 46, - 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,110,100, - 10, 9, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, - 101,115, 91,116, 93, 32, 61, 32, 99,108, 97,115,115, 10, 9, - 99,108, 97,115,115, 46,102,108, 97,103,115, 32, 61, 32, 99, - 108, 97,115,115, 46,102,108, 97,103,115, 32,111,114, 32,123, - 125, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, - 32,109, 97,116, 99,104, 95,116,121,112,101, 40, 99,104,105, - 108,100,116,121,112,101, 44, 32,114,101,103,116,121,112,101, - 44, 32,115,116, 41, 10, 45, 45,112,114,105,110,116, 40, 34, - 102,105,110,100,116,121,112,101, 32, 34, 46, 46, 99,104,105, - 108,100,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,114, - 101,103,116,121,112,101, 46, 46, 34, 44, 32, 34, 46, 46,115, - 116, 41, 10, 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, - 32,115,116,114,105,110,103, 46,102,105,110,100, 40,114,101, - 103,116,121,112,101, 44, 32, 99,104,105,108,100,116,121,112, - 101, 44, 32, 45,115,116,114,105,110,103, 46,108,101,110, 40, - 99,104,105,108,100,116,121,112,101, 41, 44, 32,116,114,117, - 101, 41, 10, 9,105,102, 32, 98, 32,116,104,101,110, 10, 10, - 9, 9,105,102, 32,101, 32, 61, 61, 32,115,116,114,105,110, - 103, 46,108,101,110, 40,114,101,103,116,121,112,101, 41, 32, - 97,110,100, 10, 9, 9, 9, 9, 40, 98, 32, 61, 61, 32, 49, - 32,111,114, 32, 40,115,116,114,105,110,103, 46,115,117, 98, - 40,114,101,103,116,121,112,101, 44, 32, 98, 45, 49, 44, 32, - 98, 45, 49, 41, 32, 61, 61, 32, 39, 58, 39, 32, 97,110,100, - 10, 9, 9, 9, 9,115,116,114,105,110,103, 46,115,117, 98, - 40,114,101,103,116,121,112,101, 44, 32, 49, 44, 32, 98, 45, - 49, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46,115,117, - 98, 40,115,116, 44, 32, 49, 44, 32, 98, 45, 49, 41, 41, 41, - 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, - 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,101,110, - 100, 10, 10, 9,114,101,116,117,114,110, 32,102, 97,108,115, - 101, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, - 32,102,105,110,100,116,121,112,101, 95,111,110, 95, 99,104, - 105,108,100,115, 40,115,101,108,102, 44, 32,116, 41, 10, 10, - 9,108,111, 99, 97,108, 32,116, 99,104,105,108,100, 10, 9, - 105,102, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121, - 112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, 32,111, - 114, 32,115,101,108,102, 46, 99,108, 97,115,115,116,121,112, - 101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, - 39, 32,116,104,101,110, 10, 9, 9,102,111,114, 32,107, 44, - 118, 32,105,110, 32,105,112, 97,105,114,115, 40,115,101,108, - 102, 41, 32,100,111, 10, 9, 9, 9,105,102, 32,118, 46, 99, - 108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39, 99,108, - 97,115,115, 39, 32,111,114, 32,118, 46, 99,108, 97,115,115, - 116,121,112,101, 32, 61, 61, 32, 39,110, 97,109,101,115,112, - 97, 99,101, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,105, - 102, 32,118, 46,116,121,112,101,100,101,102,115, 32, 97,110, - 100, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, 93, - 32,116,104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117, - 114,110, 32,118, 46,116,121,112,101,100,101,102,115, 91,116, - 93, 10, 9, 9, 9, 9,101,108,115,101,105,102, 32,118, 46, - 117,115,101,114,116,121,112,101,115, 32, 97,110,100, 32,118, - 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,116, - 104,101,110, 10, 9, 9, 9, 9, 32,114,101,116,117,114,110, - 32,118, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, - 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,116, 99, - 104,105,108,100, 32, 61, 32,102,105,110,100,116,121,112,101, - 95,111,110, 95, 99,104,105,108,100,115, 40,118, 44, 32,116, - 41, 10, 9, 9, 9, 9,105,102, 32,116, 99,104,105,108,100, - 32,116,104,101,110, 32,114,101,116,117,114,110, 32,116, 99, - 104,105,108,100, 32,101,110,100, 10, 9, 9, 9,101,110,100, - 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,114,101, - 116,117,114,110, 32,110,105,108, 10, 10,101,110,100, 10, 10, - 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, - 111,110,116, 97,105,110,101,114, 58,105,115,101,110,117,109, - 32, 40,116,121,112,101, 41, 10, 32,105,102, 32,103,108,111, - 98, 97,108, 95,101,110,117,109,115, 91,116,121,112,101, 93, - 32,116,104,101,110, 10, 9,114,101,116,117,114,110, 32,116, - 121,112,101, 10, 32,101,108,115,101, 10, 32, 9,114,101,116, - 117,114,110, 32,102, 97,108,115,101, 10, 32,101,110,100, 10, - 10, 32,108,111, 99, 97,108, 32, 98, 97,115,101,116,121,112, - 101, 32, 61, 32,103,115,117, 98, 40,116,121,112,101, 44, 34, - 94, 46, 42, 58, 58, 34, 44, 34, 34, 41, 10, 32,108,111, 99, - 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10, 32, - 119,104,105,108,101, 32,101,110,118, 32,100,111, 10, 32, 32, - 105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104, - 101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, - 10, 32, 32, 32,119,104,105,108,101, 32,101,110,118, 46,101, - 110,117,109,115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32, - 105,102, 32,101,110,118, 46,101,110,117,109,115, 91,105, 93, - 46,110, 97,109,101, 32, 61, 61, 32, 98, 97,115,101,116,121, - 112,101, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, - 32, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, 32, - 32, 32, 32, 32, 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, - 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, 32, - 101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,101,110,118, - 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 32, - 101,110,100, 10, 32,114,101,116,117,114,110, 32,102, 97,108, - 115,101, 10,101,110,100, 10, 10,109,101,116,104,111,100,105, - 115,118,105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115, - 101, 32, 45, 45, 32, 97, 32,103,108,111, 98, 97,108, 10, 10, - 45, 45, 32,112, 97,114,115,101, 32, 99,104,117,110,107, 10, - 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, - 111,110,116, 97,105,110,101,114, 58,100,111,112, 97,114,115, - 101, 32, 40,115, 41, 10, 45, 45,112,114,105,110,116, 32, 40, - 34,112, 97,114,115,101, 32, 34, 46, 46,115, 41, 10, 10, 32, - 45, 45, 32,116,114,121, 32,116,104,101, 32,112, 97,114,115, - 101,114, 32,104,111,111,107, 10, 32,100,111, 10, 32, 9,108, - 111, 99, 97,108, 32,115,117, 98, 32, 61, 32,112, 97,114,115, - 101,114, 95,104,111,111,107, 40,115, 41, 10, 32, 9,105,102, - 32,115,117, 98, 32,116,104,101,110, 10, 32, 9, 9,114,101, - 116,117,114,110, 32,115,117, 98, 10, 32, 9,101,110,100, 10, - 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,116, - 104,101, 32,110,117,108,108, 32,115,116, 97,116,101,109,101, - 110,116, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, - 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, - 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, - 42, 59, 34, 41, 10, 32, 9,105,102, 32, 98, 32,116,104,101, - 110, 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114, - 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 9,101,110, - 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, - 32,101,109,112,116,121, 32,118,101,114, 98, 97,116,105,109, - 32,108,105,110,101, 10, 32,100,111, 10, 32, 9,108,111, 99, - 97,108, 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115, - 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, - 94, 37,115, 42, 36, 92,110, 34, 41, 10, 32, 9,105,102, 32, - 98, 32,116,104,101,110, 10, 32, 9, 9,114,101,116,117,114, - 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, - 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, - 45, 32,116,114,121, 32, 76,117, 97, 32, 99,111,100,101, 10, - 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, - 44, 99,111,100,101, 32, 61, 32,115,116,114,102,105,110,100, - 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 49, 92, 50, - 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, - 10, 32, 32, 32, 67,111,100,101, 40,115,116,114,115,117, 98, - 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 41, 10, 32, 32, - 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, - 115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101, - 110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 67, 32, 99, - 111,100,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, - 32, 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114, - 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, - 92, 51, 92, 52, 41, 34, 41, 10, 32, 32,105,102, 32, 98, 32, - 116,104,101,110, 10, 9, 99,111,100,101, 32, 61, 32, 39,123, - 39, 46, 46,115,116,114,115,117, 98, 40, 99,111,100,101, 44, - 50, 44, 45, 50, 41, 46, 46, 39, 92,110,125, 92,110, 39, 10, - 9, 86,101,114, 98, 97,116,105,109, 40, 99,111,100,101, 44, - 39,114, 39, 41, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32, - 118,101,114, 98, 97,116,105,109, 32, 99,111,100,101, 32,102, - 111,114, 32, 39,114, 39,101,103,105,115,116,101,114, 32,102, - 114, 97,103,109,101,110,116, 10, 9,114,101,116,117,114,110, - 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, - 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, - 32,116,114,121, 32, 67, 32, 99,111,100,101, 32,102,111,114, - 32,112,114,101, 97,109, 98,108,101, 32,115,101, 99,116,105, - 111,110, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, - 98, 44,101, 44, 99,111,100,101, 32, 61, 32,115,116,114,105, - 110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, - 42, 40, 37, 98, 92, 53, 92, 54, 41, 34, 41, 10, 32, 9,105, - 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9, 99,111,100, - 101, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, - 99,111,100,101, 44, 32, 50, 44, 32, 45, 50, 41, 46, 46, 34, - 92,110, 34, 10, 9, 9, 86,101,114, 98, 97,116,105,109, 40, - 99,111,100,101, 44, 32, 39, 39, 41, 10, 9, 9,114,101,116, - 117,114,110, 32,115,116,114,105,110,103, 46,115,117, 98, 40, - 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, - 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,100,101, - 102, 97,117,108,116, 95,112,114,111,112,101,114,116,121, 32, - 100,105,114,101, 99,116,105,118,101, 10, 32,100,111, 10, 32, - 9,108,111, 99, 97,108, 32, 98, 44,101, 44,112,116,121,112, - 101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, - 34, 94, 37,115, 42, 84, 79, 76, 85, 65, 95, 80, 82, 79, 80, - 69, 82, 84, 89, 95, 84, 89, 80, 69, 37,115, 42, 37, 40, 43, - 37,115, 42, 40, 91, 94, 37, 41, 37,115, 93, 42, 41, 37,115, - 42, 37, 41, 43, 37,115, 42, 59, 63, 34, 41, 10, 32, 9,105, - 102, 32, 98, 32,116,104,101,110, 10, 32, 9, 9,105,102, 32, - 110,111,116, 32,112,116,121,112,101, 32,111,114, 32,112,116, - 121,112,101, 32, 61, 61, 32, 34, 34, 32,116,104,101,110, 10, - 32, 9, 9, 9,112,116,121,112,101, 32, 61, 32, 34,100,101, - 102, 97,117,108,116, 34, 10, 32, 9, 9,101,110,100, 10, 32, - 9, 9,115,101,108,102, 58,115,101,116, 95,112,114,111,112, - 101,114,116,121, 95,116,121,112,101, 40,112,116,121,112,101, - 41, 10, 9, 32, 9,114,101,116,117,114,110, 32,115,116,114, - 115,117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101, - 110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114, - 121, 32,112,114,111,116,101, 99,116,101,100, 95,100,101,115, - 116,114,117, 99,116,111,114, 32,100,105,114,101, 99,116,105, - 118,101, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, - 98, 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105, - 110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 84, 79, 76, 85, - 65, 95, 80, 82, 79, 84, 69, 67, 84, 69, 68, 95, 68, 69, 83, - 84, 82, 85, 67, 84, 79, 82, 37,115, 42, 59, 63, 34, 41, 10, - 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9,105,102, - 32,115,101,108,102, 46,115,101,116, 95,112,114,111,116,101, - 99,116,101,100, 95,100,101,115,116,114,117, 99,116,111,114, - 32,116,104,101,110, 10, 9, 32, 9, 9,115,101,108,102, 58, - 115,101,116, 95,112,114,111,116,101, 99,116,101,100, 95,100, - 101,115,116,114,117, 99,116,111,114, 40,116,114,117,101, 41, - 10, 9, 32, 9,101,110,100, 10, 32, 9, 9,114,101,116,117, - 114,110, 32,115,116,114,115,117, 98, 40,115, 44, 32,101, 43, - 49, 41, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, 10, - 32, 45, 45, 32,116,114,121, 32, 39,101,120,116,101,114,110, - 39, 32,107,101,121,119,111,114,100, 10, 32,100,111, 10, 32, - 9,108,111, 99, 97,108, 32, 98, 44,101, 32, 61, 32,115,116, - 114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, 94, - 37,115, 42,101,120,116,101,114,110, 37,115, 43, 34, 41, 10, - 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 45, - 45, 32,100,111, 32,110,111,116,104,105,110,103, 10, 32, 9, - 9,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, - 115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110,100, 10, 32, - 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32, 39,118, - 105,114,116,117, 97,108, 39, 32,107,101,121,119,111,114,107, - 100, 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, - 44,101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110, - 100, 40,115, 44, 32, 34, 94, 37,115, 42,118,105,114,116,117, - 97,108, 37,115, 43, 34, 41, 10, 32, 9,105,102, 32, 98, 32, - 116,104,101,110, 10, 32, 9, 9,109,101,116,104,111,100,105, - 115,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, - 10, 32, 9, 9,114,101,116,117,114,110, 32,115,116,114,115, - 117, 98, 40,115, 44, 32,101, 43, 49, 41, 10, 32, 9,101,110, - 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, - 32,108, 97, 98,101,108,115, 32, 40,112,117, 98,108,105, 99, - 44, 32,112,114,105,118, 97,116,101, 44, 32,101,116, 99, 41, - 10, 32,100,111, 10, 32, 9,108,111, 99, 97,108, 32, 98, 44, - 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, - 40,115, 44, 32, 34, 94, 37,115, 42, 37,119, 42, 37,115, 42, - 58, 91, 94, 58, 93, 34, 41, 10, 32, 9,105,102, 32, 98, 32, - 116,104,101,110, 10, 32, 9, 9,114,101,116,117,114,110, 32, - 115,116,114,115,117, 98, 40,115, 44, 32,101, 41, 32, 45, 45, - 32,112,114,101,115,101,114,118,101, 32,116,104,101, 32, 91, - 94, 58, 93, 10, 32, 9,101,110,100, 10, 32,101,110,100, 10, - 10, 32, 45, 45, 32,116,114,121, 32,109,111,100,117,108,101, - 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44, - 101, 44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115, - 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,109, - 111,100,117,108,101, 37,115, 37,115, 42, 40, 91, 95, 37,119, - 93, 91, 95, 37,119, 93, 42, 41, 37,115, 42, 40, 37, 98,123, - 125, 41, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32, - 116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99, - 111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, - 98, 44,101, 41, 10, 32, 32, 32, 77,111,100,117,108,101, 40, - 110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114, - 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, - 101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, - 10, 10, 32, 45, 45, 32,116,114,121, 32,110, 97,109,101,115, - 97,112, 99,101, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, - 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, - 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, - 37,115, 42,110, 97,109,101,115,112, 97, 99,101, 37,115, 37, - 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42, 41, - 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 63, 34, - 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, - 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, - 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, - 32, 32, 78, 97,109,101,115,112, 97, 99,101, 40,110, 97,109, - 101, 44, 98,111,100,121, 41, 10, 32, 32, 32,114,101,116,117, - 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, - 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, - 45, 45, 32,116,114,121, 32,100,101,102,105,110,101, 10, 32, - 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, - 110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, 40, - 115, 44, 34, 94, 37,115, 42, 35,100,101,102,105,110,101, 37, - 115, 37,115, 42, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92, - 110, 93, 42, 92,110, 37,115, 42, 34, 41, 10, 32, 32,105,102, - 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114, - 114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, - 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 68,101,102,105, - 110,101, 40,110, 97,109,101, 41, 10, 32, 32, 32,114,101,116, - 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, - 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, - 32, 45, 45, 32,116,114,121, 32,101,110,117,109,101,114, 97, - 116,101,115, 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, - 108, 32, 98, 44,101, 44,110, 97,109,101, 44, 98,111,100,121, - 44,118, 97,114,110, 97,109,101, 32, 61, 32,115,116,114,102, - 105,110,100, 40,115, 44, 34, 94, 37,115, 42,101,110,117,109, - 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123, - 125, 41, 37,115, 42, 40, 91, 94, 37,115, 59, 93, 42, 41, 37, - 115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, - 98, 32,116,104,101,110, 10, 32, 32, 32, 45, 45,101,114,114, - 111,114, 40, 34, 35, 83,111,114,114,121, 44, 32,100,101, 99, - 108, 97,114, 97,116,105,111,110, 32,111,102, 32,101,110,117, - 109,115, 32, 97,110,100, 32,118, 97,114,105, 97, 98,108,101, - 115, 32,111,110, 32,116,104,101, 32,115, 97,109,101, 32,115, - 116, 97,116,101,109,101,110,116, 32,105,115, 32,110,111,116, - 32,115,117,112,112,111,114,116,101,100, 46, 92,110, 68,101, - 99,108, 97,114,101, 32,121,111,117,114, 32,118, 97,114,105, - 97, 98,108,101, 32,115,101,112, 97,114, 97,116,101,108,121, - 32, 40,101,120, 97,109,112,108,101, 58, 32, 39, 34, 46, 46, - 110, 97,109,101, 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, - 97,109,101, 46, 46, 34, 59, 39, 41, 34, 41, 10, 32, 32, 32, - 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116, - 114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, - 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, - 98,111,100,121, 44,118, 97,114,110, 97,109,101, 41, 10, 32, - 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, - 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, - 101,110,100, 10, 10, 45, 45, 32,100,111, 10, 45, 45, 32, 32, - 108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44, - 98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40, - 115, 44, 34, 94, 37,115, 42,101,110,117,109, 37,115, 43, 40, - 37, 83, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, - 42, 59, 63, 37,115, 42, 34, 41, 10, 45, 45, 32, 32,105,102, - 32, 98, 32,116,104,101,110, 10, 45, 45, 32, 32, 32, 95, 99, - 117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115, - 117, 98, 40,115, 44, 98, 44,101, 41, 10, 45, 45, 32, 32, 32, - 69,110,117,109,101,114, 97,116,101, 40,110, 97,109,101, 44, - 98,111,100,121, 41, 10, 45, 45, 32, 32,114,101,116,117,114, - 110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, - 10, 45, 45, 32, 32,101,110,100, 10, 45, 45, 32,101,110,100, - 10, 10, 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, - 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, 32, - 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, - 116,121,112,101,100,101,102, 37,115, 43,101,110,117,109, 91, - 94,123, 93, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, - 37,119, 95, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, 59, - 37,115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104, - 101,110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100, - 101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44, - 101, 41, 10, 32, 32, 32, 69,110,117,109,101,114, 97,116,101, - 40,110, 97,109,101, 44, 98,111,100,121, 41, 10, 32, 32, 32, - 114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, - 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110, - 100, 10, 10, 32, 45, 45, 32,116,114,121, 32,111,112,101,114, - 97,116,111,114, 10, 32,100,111, 10, 32, 32,108,111, 99, 97, - 108, 32, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, - 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, - 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, - 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42, 38, 58, 60, - 62, 44, 93, 45, 37,115, 43,111,112,101,114, 97,116,111,114, - 41, 37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, - 42, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, - 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, - 37,115, 42, 34, 41, 10, 32, 32,105,102, 32,110,111,116, 32, - 98, 32,116,104,101,110, 10, 9, 9, 32, 45, 45, 32,116,114, - 121, 32,105,110,108,105,110,101, 10, 32, 32, 32, 98, 44,101, - 44,100,101, 99,108, 44,107,105,110,100, 44, 97,114,103, 44, - 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, - 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, - 95, 37,119, 37,115, 37, 42, 38, 58, 60, 62, 44, 93, 45, 37, - 115, 43,111,112,101,114, 97,116,111,114, 41, 37,115, 42, 40, - 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,115, 42, - 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, - 63,115, 63,116, 63, 41, 91, 37,115, 92,110, 93, 42, 37, 98, - 123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, - 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, - 116,104,101,110, 10, 32, 32, 9, 45, 45, 32,116,114,121, 32, - 99, 97,115,116, 32,111,112,101,114, 97,116,111,114, 10, 32, - 32, 9, 98, 44,101, 44,100,101, 99,108, 44,107,105,110,100, - 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, - 114,102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, - 111,112,101,114, 97,116,111,114, 41, 37,115, 43, 40, 91, 37, - 119, 95, 58, 37,100, 60, 62, 37, 42, 37, 38, 37,115, 93, 43, - 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, - 63,111, 63,110, 63,115, 63,116, 63, 41, 34, 41, 59, 10, 32, - 32, 9,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, 9, - 9,108,111, 99, 97,108, 32, 95, 44,105,101, 32, 61, 32,115, - 116,114,105,110,103, 46,102,105,110,100, 40,115, 44, 32, 34, - 94, 37,115, 42, 37, 98,123,125, 34, 44, 32,101, 43, 49, 41, - 10, 32, 32, 9, 9,105,102, 32,105,101, 32,116,104,101,110, - 10, 32, 32, 9, 9, 9,101, 32, 61, 32,105,101, 10, 32, 32, - 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, 10, 32, 32, - 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, - 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, - 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, - 10, 32, 32, 32, 79,112,101,114, 97,116,111,114, 40,100,101, - 99,108, 44,107,105,110,100, 44, 97,114,103, 44, 99,111,110, - 115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115, - 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, - 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116, - 114,121, 32,102,117,110, 99,116,105,111,110, 10, 32,100,111, - 10, 32, 32, 45, 45,108,111, 99, 97,108, 32, 98, 44,101, 44, - 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, - 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, - 115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119, 37, - 115, 37, 42, 38, 58, 60, 62, 93, 42, 91, 95, 37,119, 93, 41, - 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63, - 111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37, - 115, 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, - 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, - 44, 97,114,103, 44, 99,111,110,115,116, 44,118,105,114,116, - 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, - 37,115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, - 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63, - 110, 63,115, 63,116, 63, 41, 37,115, 42, 40, 61, 63, 37,115, - 42, 48, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, - 32,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, - 32, 32, 9, 45, 45, 32,116,114,121, 32,102,117,110, 99,116, - 105,111,110, 32,119,105,116,104, 32,116,101,109,112,108, 97, - 116,101, 10, 32, 32, 9, 98, 44,101, 44,100,101, 99,108, 44, - 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116,114, - 102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91,126, - 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, 58, - 60, 62, 93, 42, 91, 95, 37,119, 93, 37, 98, 60, 62, 41, 37, - 115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, - 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37,115, - 42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32, - 101,110,100, 10, 32, 32,105,102, 32,110,111,116, 32, 98, 32, - 116,104,101,110, 10, 32, 32, 32, 45, 45, 32,116,114,121, 32, - 97, 32,115,105,110,103,108,101, 32,108,101,116,116,101,114, - 32,102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 10, - 32, 32, 32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, - 44, 99,111,110,115,116, 32, 61, 32,115,116,114,102,105,110, - 100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, - 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, - 63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37, - 115, 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, - 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, - 45, 45, 32,116,114,121, 32,102,117,110, 99,116,105,111,110, - 32,112,111,105,110,116,101,114, 10, 32, 32, 32, 98, 44,101, - 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, - 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, - 37,115, 42, 40, 91, 94, 37, 40, 59, 92,110, 93, 43, 37, 98, - 40, 41, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, - 59, 37,115, 42, 34, 41, 10, 32, 32, 32,105,102, 32, 98, 32, - 116,104,101,110, 10, 32, 32, 32, 32,100,101, 99,108, 32, 61, - 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,100,101, - 99,108, 44, 32, 34, 37, 40, 37,115, 42, 37, 42, 40, 91, 94, - 37, 41, 93, 42, 41, 37,115, 42, 37, 41, 34, 44, 32, 34, 32, - 37, 49, 32, 34, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32, - 101,110,100, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, - 10, 32, 32, 9,105,102, 32,118,105,114,116, 32, 97,110,100, - 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118,105, - 114,116, 44, 32, 34, 91, 61, 48, 93, 34, 41, 32,116,104,101, - 110, 10, 32, 32, 9, 9,105,102, 32,115,101,108,102, 46,102, - 108, 97,103,115, 32,116,104,101,110, 10, 32, 32, 9, 9, 9, - 115,101,108,102, 46,102,108, 97,103,115, 46,112,117,114,101, - 95,118,105,114,116,117, 97,108, 32, 61, 32,116,114,117,101, - 10, 32, 32, 9, 9,101,110,100, 10, 32, 32, 9,101,110,100, - 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, - 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, - 10, 32, 32, 32, 70,117,110, 99,116,105,111,110, 40,100,101, - 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 41, 10, 32, - 32, 32,114,101,116,117,114,110, 32,115,116,114,115,117, 98, - 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110,100, 10, 32, - 101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, 32,105,110, - 108,105,110,101, 32,102,117,110, 99,116,105,111,110, 10, 32, - 100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44, - 100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, - 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, - 115, 42, 40, 91, 94, 37, 40, 92,110, 93, 43, 41, 37,115, 42, - 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, - 63,115, 63,116, 63, 41, 91, 94, 59,123, 93, 42, 37, 98,123, - 125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32, 45, - 45,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, - 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,115,116, - 114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 40, 91, - 126, 95, 37,119, 93, 91, 95, 64, 37,119, 37,115, 37, 42, 38, - 58, 60, 62, 93, 42, 91, 95, 37,119, 62, 93, 41, 37,115, 42, - 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, - 63,115, 63,116, 63, 41, 91, 94, 59, 93, 42, 37, 98,123,125, - 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10, 32, 32,105,102, - 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, - 45, 45, 32,116,114,121, 32, 97, 32,115,105,110,103,108,101, - 32,108,101,116,116,101,114, 32,102,117,110, 99,116,105,111, - 110, 32,110, 97,109,101, 10, 32, 32, 32, 98, 44,101, 44,100, - 101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, - 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, - 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, - 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, - 63, 41, 46, 45, 37, 98,123,125, 37,115, 42, 59, 63, 37,115, - 42, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, - 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117,114,114, - 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40, - 115, 44, 98, 44,101, 41, 10, 32, 32, 32, 70,117,110, 99,116, - 105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111, - 110,115,116, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, - 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, - 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, - 116,114,121, 32, 99,108, 97,115,115, 10, 32,100,111, 10, 9, - 32,108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, - 44, 98, 97,115,101, 44, 98,111,100,121, 10, 9, 9, 98, 97, - 115,101, 32, 61, 32, 39, 39, 32, 98,111,100,121, 32, 61, 32, - 39, 39, 10, 9, 9, 98, 44,101, 44,110, 97,109,101, 32, 61, - 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, - 42, 99,108, 97,115,115, 37,115, 42, 40, 91, 95, 37,119, 93, - 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 32, - 32, 45, 45, 32,100,117,109,109,121, 32, 99,108, 97,115,115, - 10, 9, 9,108,111, 99, 97,108, 32,100,117,109,109,121, 32, - 61, 32,102, 97,108,115,101, 10, 9, 9,105,102, 32,110,111, - 116, 32, 98, 32,116,104,101,110, 10, 9, 9, 9, 98, 44,101, - 44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100, - 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99,116, 37, - 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, - 41, 37,115, 42, 59, 34, 41, 32, 32, 32, 32, 45, 45, 32,100, - 117,109,109,121, 32,115,116,114,117, 99,116, 10, 9, 9, 9, - 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, - 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97,115, - 101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105,110, - 100, 40,115, 44, 34, 94, 37,115, 42, 99,108, 97,115,115, 37, - 115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, - 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, 42, 40, - 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, 9, 9, - 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 9, - 9, 9, 9, 9, 98, 44,101, 44,110, 97,109,101, 44, 98, 97, - 115,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,105, - 110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117, 99, - 116, 37,115, 43, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 64, - 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, 41, 37,115, - 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, 10, 9, 9, - 9, 9, 9,105,102, 32,110,111,116, 32, 98, 32,116,104,101, - 110, 10, 9, 9, 9, 9, 9, 9, 98, 44,101, 44,110, 97,109, - 101, 44, 98, 97,115,101, 44, 98,111,100,121, 32, 61, 32,115, - 116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,117, - 110,105,111,110, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, - 37,119, 64, 93, 42, 41, 37,115, 42, 40, 91, 94,123, 93, 45, - 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41, - 10, 9, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32, 98, - 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9, 98, 97, - 115,101, 32, 61, 32, 39, 39, 10, 9, 9, 9, 9, 9, 9, 9, - 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101, 32, 61, - 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, - 42,116,121,112,101,100,101,102, 37,115, 37,115, 42,115,116, - 114,117, 99,116, 37,115, 37,115, 42, 91, 95, 37,119, 93, 42, - 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40, 91, 95, - 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59, - 34, 41, 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, - 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,110,100, 10, - 9, 9, 9,101,108,115,101, 32,100,117,109,109,121, 32, 61, - 32, 49, 32,101,110,100, 10, 9, 9,101,108,115,101, 32,100, - 117,109,109,121, 32, 61, 32, 49, 32,101,110,100, 10, 9, 9, - 105,102, 32, 98, 32,116,104,101,110, 10, 9, 9, 9,105,102, - 32, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101, - 110, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, - 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, - 32, 34, 94, 37,115, 42, 58, 37,115, 42, 34, 44, 32, 34, 34, - 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, 61, 32,115,116, - 114,105,110,103, 46,103,115,117, 98, 40, 98, 97,115,101, 44, - 32, 34, 37,115, 42,112,117, 98,108,105, 99, 37,115, 42, 34, - 44, 32, 34, 34, 41, 10, 9, 9, 9, 9, 98, 97,115,101, 32, - 61, 32,115,112,108,105,116, 40, 98, 97,115,101, 44, 32, 34, - 44, 34, 41, 10, 9, 9, 9, 9, 45, 45,108,111, 99, 97,108, - 32, 98, 44,101, 10, 9, 9, 9, 9, 45, 45, 98, 44,101, 44, - 98, 97,115,101, 32, 61, 32,115,116,114,102,105,110,100, 40, - 98, 97,115,101, 44, 34, 46, 45, 40, 91, 95, 37,119, 93, 91, - 95, 37,119, 60, 62, 44, 58, 93, 42, 41, 36, 34, 41, 10, 9, - 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 98, 97,115,101, - 32, 61, 32,123,125, 10, 9, 9, 9,101,110,100, 10, 9, 9, - 9, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115, - 116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 9, 9, - 9, 67,108, 97,115,115, 40,110, 97,109,101, 44, 98, 97,115, - 101, 44, 98,111,100,121, 41, 10, 9, 9, 9,105,102, 32,110, - 111,116, 32,100,117,109,109,121, 32,116,104,101,110, 10, 9, - 9, 9, 9,118, 97,114, 98, 44,118, 97,114,101, 44,118, 97, - 114,110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46, - 102,105,110,100, 40,115, 44, 32, 34, 94, 37,115, 42, 40, 91, - 95, 37,119, 93, 43, 41, 37,115, 42, 59, 34, 44, 32,101, 43, - 49, 41, 10, 9, 9, 9, 9,105,102, 32,118, 97,114, 98, 32, - 116,104,101,110, 10, 9, 9, 9, 9, 9, 86, 97,114,105, 97, - 98,108,101, 40,110, 97,109,101, 46, 46, 34, 32, 34, 46, 46, - 118, 97,114,110, 97,109,101, 41, 10, 9, 9, 9, 9, 9,101, - 32, 61, 32,118, 97,114,101, 10, 9, 9, 9, 9,101,110,100, - 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,114,101,116,117, - 114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, - 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 32, - 45, 45, 32,116,114,121, 32,116,121,112,101,100,101,102, 10, - 32,100,111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, - 44,116,121,112,101,115, 32, 61, 32,115,116,114,102,105,110, - 100, 40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101, - 102, 37,115, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 59, 37, - 115, 42, 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101, - 110, 10, 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, - 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, - 41, 10, 32, 32, 32, 84,121,112,101,100,101,102, 40,116,121, - 112,101,115, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32, - 115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, - 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, - 116,114,121, 32,118, 97,114,105, 97, 98,108,101, 10, 32,100, - 111, 10, 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, - 101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, - 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 64, - 37,115, 37,119, 37,100, 37, 42, 38, 58, 60, 62, 44, 93, 42, - 91, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, - 34, 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, - 32, 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, - 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, - 10, 9,108,111, 99, 97,108, 32,108,105,115,116, 32, 61, 32, - 115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, - 100,101, 99,108, 44, 32, 34, 44, 34, 41, 10, 9, 86, 97,114, - 105, 97, 98,108,101, 40,108,105,115,116, 91, 49, 93, 41, 10, - 9,105,102, 32,108,105,115,116, 46,110, 32, 62, 32, 49, 32, - 116,104,101,110, 10, 9, 9,108,111, 99, 97,108, 32, 95, 44, - 95, 44,116,121,112,101, 32, 61, 32,115,116,114,102,105,110, - 100, 40,108,105,115,116, 91, 49, 93, 44, 32, 34, 40, 46, 45, - 41, 37,115, 43, 40, 91, 94, 37,115, 93, 42, 41, 36, 34, 41, - 59, 10, 10, 9, 9,108,111, 99, 97,108, 32,105, 32, 61, 50, - 59, 10, 9, 9,119,104,105,108,101, 32,108,105,115,116, 91, - 105, 93, 32,100,111, 10, 9, 9, 9, 86, 97,114,105, 97, 98, - 108,101, 40,116,121,112,101, 46, 46, 34, 32, 34, 46, 46,108, - 105,115,116, 91,105, 93, 41, 10, 9, 9, 9,105, 61,105, 43, - 49, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 32, 32, - 32, 45, 45, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99, - 108, 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116, - 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101, - 110,100, 10, 32,101,110,100, 10, 10, 9, 45, 45, 32,116,114, - 121, 32,115,116,114,105,110,103, 10, 32,100,111, 10, 32, 32, - 108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, - 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37, - 115, 42, 40, 91, 95, 37,119, 93, 63, 91, 95, 37,115, 37,119, - 37,100, 93, 45, 99,104, 97,114, 37,115, 43, 91, 95, 64, 37, - 119, 37,100, 93, 42, 37,115, 42, 37, 91, 37,115, 42, 37, 83, - 43, 37,115, 42, 37, 93, 41, 37,115, 42, 59, 37,115, 42, 34, - 41, 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, - 32, 32, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32, - 115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 32, - 32, 32, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99,108, - 41, 10, 32, 32, 32,114,101,116,117,114,110, 32,115,116,114, - 115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32,101,110, - 100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32,116,114,121, - 32, 97,114,114, 97,121, 10, 32,100,111, 10, 32, 32,108,111, - 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32, - 115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, - 40, 91, 95, 37,119, 93, 91, 93, 91, 95, 64, 37,115, 37,119, - 37,100, 37, 42, 38, 58, 93, 42, 91, 93, 95, 37,119, 37,100, - 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10, 32, 32,105, - 102, 32, 98, 32,116,104,101,110, 10, 32, 32, 32, 95, 99,117, - 114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, - 98, 40,115, 44, 98, 44,101, 41, 10, 32, 32, 32, 65,114,114, - 97,121, 40,100,101, 99,108, 41, 10, 32, 32, 32,114,101,116, - 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, - 49, 41, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, - 32, 45, 45, 32,110,111, 32,109, 97,116, 99,104,105,110,103, - 10, 32,105,102, 32,103,115,117, 98, 40,115, 44, 34, 37,115, - 37,115, 42, 34, 44, 34, 34, 41, 32,126, 61, 32, 34, 34, 32, - 116,104,101,110, 10, 32, 32, 95, 99,117,114,114, 95, 99,111, - 100,101, 32, 61, 32,115, 10, 32, 32,101,114,114,111,114, 40, - 34, 35,112, 97,114,115,101, 32,101,114,114,111,114, 34, 41, - 10, 32,101,108,115,101, 10, 32, 32,114,101,116,117,114,110, - 32, 34, 34, 10, 32,101,110,100, 10, 10,101,110,100, 10, 10, - 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67, - 111,110,116, 97,105,110,101,114, 58,112, 97,114,115,101, 32, - 40,115, 41, 10, 10, 9, 45, 45,115,101,108,102, 46, 99,117, - 114,114, 95,109,101,109, 98,101,114, 95, 97, 99, 99,101,115, - 115, 32, 61, 32,110,105,108, 10, 10, 32,119,104,105,108,101, - 32,115, 32,126, 61, 32, 39, 39, 32,100,111, 10, 32, 32,115, - 32, 61, 32,115,101,108,102, 58,100,111,112, 97,114,115,101, - 40,115, 41, 10, 32, 32,109,101,116,104,111,100,105,115,118, - 105,114,116,117, 97,108, 32, 61, 32,102, 97,108,115,101, 10, - 32,101,110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32,112, - 114,111,112,101,114,116,121, 32,116,121,112,101,115, 10, 10, - 102,117,110, 99,116,105,111,110, 32,103,101,116, 95,112,114, - 111,112,101,114,116,121, 95,116,121,112,101, 40, 41, 10, 10, - 9,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111, - 110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,103,101, - 116, 95,112,114,111,112,101,114,116,121, 95,116,121,112,101, - 40, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, - 114, 58,115,101,116, 95,112,114,111,112,101,114,116,121, 95, - 116,121,112,101, 40,112,116,121,112,101, 41, 10, 9,112,116, - 121,112,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115, - 117, 98, 40,112,116,121,112,101, 44, 32, 34, 94, 37,115, 42, - 34, 44, 32, 34, 34, 41, 10, 9,112,116,121,112,101, 32, 61, - 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,112,116, - 121,112,101, 44, 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, - 41, 10, 10, 9,115,101,108,102, 46,112,114,111,112,101,114, - 116,121, 95,116,121,112,101, 32, 61, 32,112,116,121,112,101, - 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, - 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, - 103,101,116, 95,112,114,111,112,101,114,116,121, 95,116,121, - 112,101, 40, 41, 10, 9,114,101,116,117,114,110, 32,115,101, - 108,102, 46,112,114,111,112,101,114,116,121, 95,116,121,112, - 101, 32,111,114, 32, 40,115,101,108,102, 46,112, 97,114,101, - 110,116, 32, 97,110,100, 32,115,101,108,102, 46,112, 97,114, - 101,110,116, 58,103,101,116, 95,112,114,111,112,101,114,116, - 121, 95,116,121,112,101, 40, 41, 41, 32,111,114, 32, 34,100, - 101,102, 97,117,108,116, 34, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/container.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,112, 97, 99,107, 97, - 103,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105, - 116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97, - 114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71, - 114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, - 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, - 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111, - 100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116, - 119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114, - 101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, - 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105, - 116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, - 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104,101, - 114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97, - 110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, - 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117, - 116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108, - 105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118, - 105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, - 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97, - 116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101, - 109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102, - 105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, - 32, 80, 97, 99,107, 97,103,101, 32, 99,108, 97,115,115, 10, - 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32,116, - 104,101, 32,119,104,111,108,101, 32,112, 97, 99,107, 97,103, - 101, 32, 98,101,105,110,103, 32, 98,111,117,110,100, 46, 10, - 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105,110, - 103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115,116, - 111,114,101,100, 58, 10, 45, 45, 32, 32, 32, 32,123,105,125, - 32, 61, 32,108,105,115,116, 32,111,102, 32,111, 98,106,101, - 99,116,115, 32,105,110, 32,116,104,101, 32,112, 97, 99,107, - 97,103,101, 46, 10, 99,108, 97,115,115, 80, 97, 99,107, 97, - 103,101, 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121, - 112,101, 32, 61, 32, 39,112, 97, 99,107, 97,103,101, 39, 10, - 125, 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 46, - 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, - 80, 97, 99,107, 97,103,101, 10,115,101,116,109,101,116, 97, - 116, 97, 98,108,101, 40, 99,108, 97,115,115, 80, 97, 99,107, - 97,103,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105, - 110,101,114, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, - 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, - 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112, - 114,105,110,116, 32, 40, 41, 10, 32,112,114,105,110,116, 40, - 34, 80, 97, 99,107, 97,103,101, 58, 32, 34, 46, 46,115,101, - 108,102, 46,110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, - 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, - 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, - 105, 93, 58,112,114,105,110,116, 40, 34, 34, 44, 34, 34, 41, - 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, - 10,101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, - 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, - 101,112,114,111, 99,101,115,115, 32, 40, 41, 10, 10, 32, 45, - 45, 32, 97,118,111,105,100, 32,112,114,101,112,114,111, 99, - 101,115,115,105,110,103, 32,101,109, 98,101,100,100,101,100, - 32, 76,117, 97, 32, 99,111,100,101, 10, 32,108,111, 99, 97, - 108, 32, 76, 32, 61, 32,123,125, 10, 32,115,101,108,102, 46, - 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, - 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, - 37, 91, 34, 44, 34, 92, 49, 34, 41, 32, 45, 45, 32,100,101, - 97,108, 32,119,105,116,104, 32,101,109, 98,101,100,100,101, - 100, 32,108,117, 97, 32, 99,111,100,101, 10, 32,115,101,108, - 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, - 101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, - 37, 36, 37, 93, 34, 44, 34, 92, 50, 34, 41, 10, 32,115,101, - 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, - 115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, 92, - 49, 92, 50, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102,117, - 110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,105, - 110,115,101,114,116, 40, 76, 44, 99, 41, 10, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101, - 116,117,114,110, 32, 34, 92,110, 35, 91, 34, 46, 46,103,101, - 116,110, 40, 76, 41, 46, 46, 34, 93, 35, 34, 10, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101,110, - 100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114, - 101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, 98, - 101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,108, - 111, 99, 97,108, 32, 67, 32, 61, 32,123,125, 10, 32,115,101, - 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, - 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, - 42, 37, 36, 37, 60, 34, 44, 34, 92, 51, 34, 41, 32, 45, 45, - 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, 98,101, - 100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32,115,101, - 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, - 115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, - 42, 37, 36, 37, 62, 34, 44, 34, 92, 52, 34, 41, 10, 32,115, - 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, - 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37, 98, - 92, 51, 92, 52, 41, 34, 44, 32, 32, 32, 32, 32, 32, 32,102, - 117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,116, - 105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, - 101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103, - 101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,101, - 110,100, 41, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112, - 114,101,112,114,111, 99,101,115,115,105,110,103, 32,101,109, - 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, - 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, - 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, - 37,115, 42, 37, 36, 37,123, 34, 44, 34, 92, 53, 34, 41, 32, - 45, 45, 32,100,101, 97,108, 32,119,105,116,104, 32,101,109, - 98,101,100,100,101,100, 32, 67, 32, 99,111,100,101, 10, 32, - 115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, - 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110, - 37,115, 42, 37, 36, 37,125, 34, 44, 34, 92, 54, 34, 41, 10, - 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, - 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, - 37, 98, 92, 53, 92, 54, 41, 34, 44, 32, 32, 32, 32, 32, 32, - 32,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32,116,105,110,115,101,114,116, 40, 67, 44, 99, 41, 10, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, - 46,103,101,116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32,101,110,100, 41, 10, 10, 32, 45, 45,115,101,108,102, 46, - 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108, - 102, 46, 99,111,100,101, 44, 34, 92,110, 37,115, 42, 35, 91, - 94,100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34, - 92,110, 92,110, 34, 41, 32, 45, 45, 32,101,108,105,109,105, - 110, 97,116,101, 32,112,114,101,112,114,111, 99,101,115,115, - 111,114, 32,100,105,114,101, 99,116,105,118,101,115, 32,116, - 104, 97,116, 32,100,111,110, 39,116, 32,115,116, 97,114,116, - 32,119,105,116,104, 32, 39,100, 39, 10, 32,115,101,108,102, - 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, - 108,102, 46, 99,111,100,101, 44, 34, 92,110, 91, 32, 92,116, - 93, 42, 35, 91, 32, 92,116, 93, 42, 91, 94,100, 37, 60, 37, - 91, 93, 34, 44, 32, 34, 92,110, 47, 47, 34, 41, 32, 45, 45, - 32,101,108,105,109,105,110, 97,116,101, 32,112,114,101,112, - 114,111, 99,101,115,115,111,114, 32,100,105,114,101, 99,116, - 105,118,101,115, 32,116,104, 97,116, 32,100,111,110, 39,116, - 32,115,116, 97,114,116, 32,119,105,116,104, 32, 39,100, 39, - 10, 10, 32, 45, 45, 32, 97,118,111,105,100, 32,112,114,101, - 112,114,111, 99,101,115,115,105,110,103, 32,118,101,114, 98, - 97,116,105,109, 32,108,105,110,101,115, 10, 32,108,111, 99, - 97,108, 32, 86, 32, 61, 32,123,125, 10, 32,115,101,108,102, - 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, - 108,102, 46, 99,111,100,101, 44, 34, 92,110, 40, 37,115, 42, - 37, 36, 91, 94, 37, 91, 37, 93, 93, 91, 94, 92,110, 93, 42, - 41, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,118, 41, - 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32,116,105,110,115,101,114,116, 40, 86, 44,118, 41, - 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32,114,101,116,117,114,110, 32, 34, 92,110, 35, 34, - 46, 46,103,101,116,110, 40, 86, 41, 46, 46, 34, 35, 34, 10, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32,101,110,100, 41, 10, 10, 32, 45, 45, 32,112,101,114,102, - 111,114,109, 32,103,108,111, 98, 97,108, 32,115,117, 98,115, - 116,105,116,117,116,105,111,110, 10, 10, 32,115,101,108,102, - 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, - 108,102, 46, 99,111,100,101, 44, 34, 40, 47, 47, 91, 94, 92, - 110, 93, 42, 41, 34, 44, 34, 34, 41, 32, 32, 32, 32, 32, 45, - 45, 32,101,108,105,109,105,110, 97,116,101, 32, 67, 43, 43, - 32, 99,111,109,109,101,110,116,115, 10, 32,115,101,108,102, - 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, - 108,102, 46, 99,111,100,101, 44, 34, 47, 37, 42, 34, 44, 34, - 92, 49, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100,101, - 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, - 100,101, 44, 34, 37, 42, 47, 34, 44, 34, 92, 50, 34, 41, 10, - 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, - 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, - 98, 92, 49, 92, 50, 34, 44, 34, 34, 41, 10, 32,115,101,108, - 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, - 101,108,102, 46, 99,111,100,101, 44, 34, 92, 49, 34, 44, 34, - 47, 37, 42, 34, 41, 10, 32,115,101,108,102, 46, 99,111,100, - 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, - 111,100,101, 44, 34, 92, 50, 34, 44, 34, 37, 42, 47, 34, 41, - 10, 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103, - 115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, - 37,115, 42, 64, 37,115, 42, 34, 44, 34, 64, 34, 41, 32, 45, - 45, 32,101,108,105,109,105,110, 97,116,101, 32,115,112, 97, - 99,101,115, 32, 98,101,115,105,100,101, 32, 64, 10, 32,115, - 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, - 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63, - 105,110,108,105,110,101, 40, 37,115, 41, 34, 44, 34, 37, 49, - 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, - 32, 39,105,110,108,105,110,101, 39, 32,107,101,121,119,111, - 114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100,101, - 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, - 100,101, 44, 34, 37,115, 63,101,120,116,101,114,110, 40, 37, - 115, 41, 34, 44, 34, 37, 49, 34, 41, 32, 45, 45, 32,101,108, - 105,109,105,110, 97,116,101, 32, 39,101,120,116,101,114,110, - 39, 32,107,101,121,119,111,114,100, 10, 32, 45, 45,115,101, - 108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, - 115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63,118, - 105,114,116,117, 97,108, 40, 37,115, 41, 34, 44, 34, 37, 49, - 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, - 32, 39,118,105,114,116,117, 97,108, 39, 32,107,101,121,119, - 111,114,100, 10, 32, 45, 45,115,101,108,102, 46, 99,111,100, - 101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99, - 111,100,101, 44, 34,112,117, 98,108,105, 99, 58, 34, 44, 34, - 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, - 32, 39,112,117, 98,108,105, 99, 58, 39, 32,107,101,121,119, - 111,114,100, 10, 32,115,101,108,102, 46, 99,111,100,101, 32, - 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100, - 101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, - 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114, - 100, 97,116, 97, 32, 34, 41, 32, 45, 45, 32,115,117, 98,115, - 116,105,116,117,116,101, 32, 39,118,111,105,100, 42, 39, 10, - 32,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115, - 117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, - 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, - 42, 34, 44, 34, 37, 49, 95,117,115,101,114,100, 97,116, 97, - 32, 34, 41, 32, 45, 45, 32,115,117, 98,115,116,105,116,117, - 116,101, 32, 39,118,111,105,100, 42, 39, 10, 32,115,101,108, - 102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115, - 101,108,102, 46, 99,111,100,101, 44, 34, 40, 91, 94, 37,119, - 95, 93, 41, 99,104, 97,114, 37,115, 42, 37, 42, 34, 44, 34, - 37, 49, 95, 99,115,116,114,105,110,103, 32, 34, 41, 32, 32, - 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, - 99,104, 97,114, 42, 39, 10, 32,115,101,108,102, 46, 99,111, - 100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, - 99,111,100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41,108, - 117, 97, 95, 83,116, 97,116,101, 37,115, 42, 37, 42, 34, 44, - 34, 37, 49, 95,108,115,116, 97,116,101, 32, 34, 41, 32, 32, - 45, 45, 32,115,117, 98,115,116,105,116,117,116,101, 32, 39, - 108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, 10, 32, 45, - 45, 32,114,101,115,116,111,114,101, 32,101,109, 98,101,100, - 100,101,100, 32, 76,117, 97, 32, 99,111,100,101, 10, 32,115, - 101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, - 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 35, 37, - 91, 40, 37,100, 43, 41, 37, 93, 37, 35, 34, 44,102,117,110, - 99,116,105,111,110, 32, 40,110, 41, 10, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114,101,116,117, - 114,110, 32, 76, 91,116,111,110,117,109, 98,101,114, 40,110, - 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32,101,110,100, 41, 10, 32, 45, 45, 32,114,101,115,116, - 111,114,101, 32,101,109, 98,101,100,100,101,100, 32, 67, 32, - 99,111,100,101, 10, 32,115,101,108,102, 46, 99,111,100,101, - 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111, - 100,101, 44, 34, 37, 35, 37, 60, 40, 37,100, 43, 41, 37, 62, - 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, - 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32,114,101,116,117,114,110, 32, 67, 91,116,111,110,117, - 109, 98,101,114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32,101,110,100, 41, 10, 32, 45, - 45, 32,114,101,115,116,111,114,101, 32,118,101,114, 98, 97, - 116,105,109, 32,108,105,110,101,115, 10, 32,115,101,108,102, - 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101, - 108,102, 46, 99,111,100,101, 44, 34, 37, 35, 40, 37,100, 43, - 41, 37, 35, 34, 44,102,117,110, 99,116,105,111,110, 32, 40, - 110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,114, - 101,116,117,114,110, 32, 86, 91,116,111,110,117,109, 98,101, - 114, 40,110, 41, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32,101,110,100, 41, 10, 10, 32,115,101,108,102, 46, 99,111, - 100,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, - 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 32, 34, 92, - 110, 37,115, 42, 37, 36, 40, 91, 94, 92,110, 93, 43, 41, 34, - 44, 32,102,117,110, 99,116,105,111,110, 32, 40,108, 41, 10, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86,101,114, 98, - 97,116,105,109, 40,108, 46, 46, 34, 92,110, 34, 41, 10, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,114,101,116,117,114, - 110, 32, 34, 92,110, 34, 10, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 32, 32,101,110,100, 41, 10,101,110,100, 10, 10, 45, - 45, 32,116,114, 97,110,115,108, 97,116,101, 32,118,101,114, - 98, 97,116,105,109, 10,102,117,110, 99,116,105,111,110, 32, - 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114, - 101, 97,109, 98,108,101, 32, 40, 41, 10, 32,111,117,116,112, - 117,116, 40, 39, 47, 42, 92,110, 39, 41, 10, 32,111,117,116, - 112,117,116, 40, 39, 42, 42, 32, 76,117, 97, 32, 98,105,110, - 100,105,110,103, 58, 32, 39, 46, 46,115,101,108,102, 46,110, - 97,109,101, 46, 46, 39, 92,110, 39, 41, 10, 32,111,117,116, - 112,117,116, 40, 39, 42, 42, 32, 71,101,110,101,114, 97,116, - 101,100, 32, 97,117,116,111,109, 97,116,105, 99, 97,108,108, - 121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, - 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, - 46,100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, - 10, 32,111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92, - 110, 39, 41, 10, 10, 9,111,117,116,112,117,116, 40, 39, 35, - 105,102,110,100,101,102, 32, 95, 95, 99,112,108,117,115,112, - 108,117,115, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, - 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,115,116,100, - 108,105, 98, 46,104, 34, 92,110, 39, 41, 10, 9,111,117,116, - 112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, - 10, 9,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108, - 117,100,101, 32, 34,115,116,114,105,110,103, 46,104, 34, 92, - 110, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, - 35,105,110, 99,108,117,100,101, 32, 34,116,111,108,117, 97, - 43, 43, 46,104, 34, 92,110, 92,110, 39, 41, 10, 10, 32,105, - 102, 32,110,111,116, 32,102,108, 97,103,115, 46,104, 32,116, - 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, - 42, 32, 69,120,112,111,114,116,101,100, 32,102,117,110, 99, - 116,105,111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116, - 112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32, - 105,110,116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115, - 101,108,102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101, - 110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116, - 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117, - 116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, - 10, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119, - 104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, - 10, 32, 32,115,101,108,102, 91,105, 93, 58,112,114,101, 97, - 109, 98,108,101, 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, - 49, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101,108, - 102, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, - 116,105,111,110, 40, 95, 99,111,108,108,101, 99,116, 41, 32, - 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, - 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, - 47, 42, 32,102,117,110, 99,116,105,111,110, 32,116,111, 32, - 114,101,108,101, 97,115,101, 32, 99,111,108,108,101, 99,116, - 101,100, 32,111, 98,106,101, 99,116, 32,118,105, 97, 32,100, - 101,115,116,114,117, 99,116,111,114, 32, 42, 47, 39, 41, 10, - 9, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101, - 102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, - 39, 41, 10, 9, 9,102,111,114, 32,105, 44,118, 32,105,110, - 32,112, 97,105,114,115, 40, 95, 99,111,108,108,101, 99,116, - 41, 32,100,111, 10, 9, 9, 32,111,117,116,112,117,116, 40, - 39, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 32, 39, - 46, 46,118, 46, 46, 39, 32, 40,108,117, 97, 95, 83,116, 97, - 116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, - 9, 9, 9,111,117,116,112,117,116, 40, 39,123, 39, 41, 10, - 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 39, 46, 46, - 105, 46, 46, 39, 42, 32,115,101,108,102, 32, 61, 32, 40, 39, - 46, 46,105, 46, 46, 39, 42, 41, 32,116,111,108,117, 97, 95, - 116,111,117,115,101,114,116,121,112,101, 40,116,111,108,117, - 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 9, 9, 9, - 111,117,116,112,117,116, 40, 39, 9, 77,116,111,108,117, 97, - 95,100,101,108,101,116,101, 40,115,101,108,102, 41, 59, 39, - 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 9,114, - 101,116,117,114,110, 32, 48, 59, 39, 41, 10, 9, 9, 9,111, - 117,116,112,117,116, 40, 39,125, 39, 41, 10, 9, 9,101,110, - 100, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110, - 100,105,102, 92,110, 92,110, 39, 41, 10, 9,101,110,100, 10, - 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, - 32,111,117,116,112,117,116, 40, 39, 47, 42, 32,102,117,110, - 99,116,105,111,110, 32,116,111, 32,114,101,103,105,115,116, - 101,114, 32,116,121,112,101, 32, 42, 47, 39, 41, 10, 32,111, - 117,116,112,117,116, 40, 39,115,116, 97,116,105, 99, 32,118, - 111,105,100, 32,116,111,108,117, 97, 95,114,101,103, 95,116, - 121,112,101,115, 32, 40,108,117, 97, 95, 83,116, 97,116,101, - 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10, 32,111, - 117,116,112,117,116, 40, 39,123, 39, 41, 10, 10, 9,105,102, - 32,102,108, 97,103,115, 46,116, 32,116,104,101,110, 10, 9, - 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, - 102, 32, 77,116,111,108,117, 97, 95,116,121,112,101,105,100, - 92,110, 35,100,101,102,105,110,101, 32, 77,116,111,108,117, - 97, 95,116,121,112,101,105,100, 40, 76, 44, 84, 73, 44, 84, - 41, 92,110, 35,101,110,100,105,102, 92,110, 34, 41, 10, 9, - 101,110,100, 10, 9,102,111,114,101, 97, 99,104, 40, 95,117, - 115,101,114,116,121,112,101, 44,102,117,110, 99,116,105,111, - 110, 40,110, 44,118, 41, 10, 9, 9,105,102, 32, 40,110,111, - 116, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115,115, - 101,115, 91,118, 93, 41, 32,111,114, 32, 95,103,108,111, 98, - 97,108, 95, 99,108, 97,115,115,101,115, 91,118, 93, 58, 99, - 104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, 99, - 101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9, 9,111, - 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,117, - 115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, - 44, 34, 39, 44,118, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, - 9,105,102, 32,102,108, 97,103,115, 46,116, 32,116,104,101, - 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, - 77,116,111,108,117, 97, 95,116,121,112,101,105,100, 40,116, - 111,108,117, 97, 95, 83, 44,116,121,112,101,105,100, 40, 39, - 44,118, 44, 39, 41, 44, 32, 34, 39, 44,118, 44, 39, 34, 41, - 59, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110, - 100, 10, 9, 32,101,110,100, 41, 10, 32,111,117,116,112,117, - 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, - 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32,114, - 101,103,105,115,116,101,114, 32,112, 97, 99,107, 97,103,101, - 10, 45, 45, 32,119,114,105,116,101, 32,112, 97, 99,107, 97, - 103,101, 32,111,112,101,110, 32,102,117,110, 99,116,105,111, - 110, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, - 115, 80, 97, 99,107, 97,103,101, 58,114,101,103,105,115,116, - 101,114, 32, 40,112,114,101, 41, 10, 32,112,114,101, 32, 61, - 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,112,117,115, - 104, 40,115,101,108,102, 41, 10, 32,111,117,116,112,117,116, - 40,112,114,101, 46, 46, 34, 47, 42, 32, 79,112,101,110, 32, - 102,117,110, 99,116,105,111,110, 32, 42, 47, 34, 41, 10, 32, - 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, - 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 32,116,111,108, - 117, 97, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, - 46, 46, 34, 95,111,112,101,110, 32, 40,108,117, 97, 95, 83, - 116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, - 41, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, - 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40,112,114, - 101, 46, 46, 34, 32,116,111,108,117, 97, 95,111,112,101,110, - 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111, - 117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111, - 108,117, 97, 95,114,101,103, 95,116,121,112,101,115, 40,116, - 111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, 32,111,117,116, - 112,117,116, 40,112,114,101, 46, 46, 34, 32,116,111,108,117, - 97, 95,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, - 83, 44, 78, 85, 76, 76, 44, 34, 44,115,101,108,102, 58,104, - 97,115,118, 97,114, 40, 41, 44, 34, 41, 59, 34, 41, 10, 32, - 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,116, - 111,108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108, - 101, 40,116,111,108,117, 97, 95, 83, 44, 78, 85, 76, 76, 41, - 59, 34, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, - 32,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32, - 100,111, 10, 32, 32,115,101,108,102, 91,105, 93, 58,114,101, - 103,105,115,116,101,114, 40,112,114,101, 46, 46, 34, 32, 32, - 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, - 110,100, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, - 46, 34, 32,116,111,108,117, 97, 95,101,110,100,109,111,100, - 117,108,101, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, - 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, - 32,114,101,116,117,114,110, 32, 49, 59, 34, 41, 10, 32,111, - 117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, 34, 41, - 10, 10, 32,111,117,116,112,117,116, 40, 34, 92,110, 92,110, - 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, - 32,100,101,102,105,110,101,100, 40, 76, 85, 65, 95, 86, 69, - 82, 83, 73, 79, 78, 95, 78, 85, 77, 41, 32, 38, 38, 32, 76, - 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 95, 78, 85, 77, 32, - 62, 61, 32, 53, 48, 49, 92,110, 34, 41, 59, 10, 32,111,117, - 116,112,117,116, 40,112,114,101, 46, 46, 34, 84, 79, 76, 85, - 65, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111,112, - 101,110, 95, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, - 46, 46, 34, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, - 32,116,111,108,117, 97, 95, 83, 41, 32,123, 34, 41, 10, 32, - 111,117,116,112,117,116, 40,112,114,101, 46, 46, 34, 32,114, - 101,116,117,114,110, 32,116,111,108,117, 97, 95, 34, 46, 46, - 115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,112, - 101,110, 40,116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10, - 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 34,125, - 59, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,101, - 110,100,105,102, 92,110, 92,110, 34, 41, 10, 10, 9,112,111, - 112, 40, 41, 10,101,110,100, 10, 10, 45, 45, 32,119,114,105, - 116,101, 32,104,101, 97,100,101,114, 32,102,105,108,101, 10, - 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, - 97, 99,107, 97,103,101, 58,104,101, 97,100,101,114, 32, 40, - 41, 10, 32,111,117,116,112,117,116, 40, 39, 47, 42, 92,110, - 39, 41, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 76, - 117, 97, 32, 98,105,110,100,105,110,103, 58, 32, 39, 46, 46, - 115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, - 41, 10, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 71, - 101,110,101,114, 97,116,101,100, 32, 97,117,116,111,109, 97, - 116,105, 99, 97,108,108,121, 32, 98,121, 32, 39, 46, 46, 84, - 79, 76, 85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, - 32,111,110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, - 39, 46, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, - 39, 42, 47, 92,110, 92,110, 39, 41, 10, 10, 32,105,102, 32, - 110,111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101, - 110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 47, 42, 32, - 69,120,112,111,114,116,101,100, 32,102,117,110, 99,116,105, - 111,110, 32, 42, 47, 39, 41, 10, 32, 32,111,117,116,112,117, - 116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110, - 116, 32, 32,116,111,108,117, 97, 95, 39, 46, 46,115,101,108, - 102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101,110, 32, - 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, - 117, 97, 95, 83, 41, 59, 39, 41, 10, 32, 32,111,117,116,112, - 117,116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10,101, - 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, - 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, - 110, 99,116,105,111,110, 32, 95, 80, 97, 99,107, 97,103,101, - 32, 40,115,101,108,102, 41, 10, 32,115,101,116,109,101,116, - 97,116, 97, 98,108,101, 40,115,101,108,102, 44, 99,108, 97, - 115,115, 80, 97, 99,107, 97,103,101, 41, 10, 32,114,101,116, - 117,114,110, 32,115,101,108,102, 10,101,110,100, 10, 10, 45, - 45, 32, 80, 97,114,115,101, 32, 67, 32,104,101, 97,100,101, - 114, 32,102,105,108,101, 32,119,105,116,104, 32,116,111,108, - 117, 97, 32,100,105,114,101, 99,116,105,118,101,115, 10, 45, - 45, 32, 42, 42, 42, 32, 84,104, 97,110,107,115, 32,116,111, - 32, 65,114,105,101,108, 32, 77, 97,110,122,117,114, 32,102, - 111,114, 32,102,105,120,105,110,103, 32, 98,117,103,115, 32, - 105,110, 32,110,101,115,116,101,100, 32,100,105,114,101, 99, - 116,105,118,101,115, 32, 42, 42, 42, 10,102,117,110, 99,116, - 105,111,110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100, - 101, 40,102,110, 44,115, 41, 10, 9,108,111, 99, 97,108, 32, - 99,111,100,101, 32, 61, 32, 39, 92,110, 36, 35,105,110, 99, - 108,117,100,101, 32, 34, 39, 46, 46,102,110, 46, 46, 39, 34, - 92,110, 39, 10, 9,115, 61, 32, 34, 92,110, 34, 32, 46, 46, - 32,115, 32, 46, 46, 32, 34, 92,110, 34, 32, 45, 45, 32, 97, - 100,100, 32, 98,108, 97,110,107, 32,108,105,110,101,115, 32, - 97,115, 32,115,101,110,116,105,110,101,108,115, 10, 9,108, - 111, 99, 97,108, 32, 95, 44,101, 44, 99, 44,116, 32, 61, 32, - 115,116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, - 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, - 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, - 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, - 41, 10, 9,119,104,105,108,101, 32,101, 32,100,111, 10, 9, - 9,116, 32, 61, 32,115,116,114,108,111,119,101,114, 40,116, - 41, 10, 9, 9,105,102, 32,116, 32, 61, 61, 32, 34, 98,101, - 103,105,110, 34, 32,116,104,101,110, 10, 9, 9, 9, 95, 44, - 101, 44, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115, - 44, 34, 40, 46, 45, 41, 92,110, 91, 94, 92,110, 93, 42, 91, - 84,116, 93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, - 91, 65, 97, 93, 95, 91, 69,101, 93, 91, 78,110, 93, 91, 68, - 100, 93, 91, 94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10, - 9, 9, 9,105,102, 32,110,111,116, 32,101, 32,116,104,101, - 110, 10, 9, 9, 9, 32,116,111,108,117, 97, 95,101,114,114, - 111,114, 40, 34, 85,110, 98, 97,108, 97,110, 99,101,100, 32, - 39,116,111,108,117, 97, 95, 98,101,103,105,110, 39, 32,100, - 105,114,101, 99,116,105,118,101, 32,105,110, 32,104,101, 97, - 100,101,114, 32,102,105,108,101, 34, 41, 10, 9, 9, 9,101, - 110,100, 10, 9, 9,101,110,100, 10, 9, 9, 99,111,100,101, - 32, 61, 32, 99,111,100,101, 32, 46, 46, 32, 99, 32, 46, 46, - 32, 34, 92,110, 34, 10, 9, 32, 95, 44,101, 44, 99, 44,116, - 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 32, 34, - 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, - 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, - 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, - 92,110, 34, 44,101, 41, 10, 9,101,110,100, 10, 9,114,101, - 116,117,114,110, 32, 99,111,100,101, 10,101,110,100, 10, 10, - 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, - 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, 32, - 112, 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,116, - 104,101, 32,102,105,108,101, 32,101,120,116,101,110,115,105, - 111,110, 44, 32, 97,110,100, 32,116,104,101, 32,102,105,108, - 101, 32,116,101,120,116, 46, 10,102,117,110, 99,116,105,111, - 110, 32, 80, 97, 99,107, 97,103,101, 32, 40,110, 97,109,101, - 44,102,110, 41, 10, 32,108,111, 99, 97,108, 32,101,120,116, - 32, 61, 32, 34,112,107,103, 34, 10, 10, 32, 45, 45, 32,111, - 112,101,110, 32,105,110,112,117,116, 32,102,105,108,101, 44, - 32,105,102, 32, 97,110,121, 10, 32,108,111, 99, 97,108, 32, - 115,116, 44,109,115,103, 10, 32,105,102, 32,102,110, 32,116, - 104,101,110, 10, 32, 32,115,116, 44, 32,109,115,103, 32, 61, - 32,114,101, 97,100,102,114,111,109, 40,102,108, 97,103,115, - 46,102, 41, 10, 32, 32,105,102, 32,110,111,116, 32,115,116, - 32,116,104,101,110, 10, 32, 32, 32,101,114,114,111,114, 40, - 39, 35, 39, 46, 46,109,115,103, 41, 10, 32, 32,101,110,100, - 10, 32, 32,108,111, 99, 97,108, 32, 95, 59, 32, 95, 44, 32, - 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102,105,110, - 100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36, - 34, 41, 10, 32,101,110,100, 10, 32,108,111, 99, 97,108, 32, - 99,111,100,101, 10, 32,105,102, 32,101,120,116, 32, 61, 61, - 32, 39,112,107,103, 39, 32,116,104,101,110, 10, 32, 32, 99, - 111,100,101, 32, 61, 32,112,114,101,112, 40,115,116, 41, 10, - 32,101,108,115,101, 10, 32, 32, 99,111,100,101, 32, 61, 32, - 34, 92,110, 34, 32, 46, 46, 32,114,101, 97,100, 40, 39, 42, - 97, 39, 41, 10, 32, 32,105,102, 32,101,120,116, 32, 61, 61, - 32, 39,104, 39, 32,111,114, 32,101,120,116, 32, 61, 61, 32, - 39,104,112,112, 39, 32,116,104,101,110, 10, 32, 32, 32, 99, - 111,100,101, 32, 61, 32,101,120,116,114, 97, 99,116, 95, 99, - 111,100,101, 40,102,110, 44, 99,111,100,101, 41, 10, 32, 32, - 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, - 108,111,115,101, 32,102,105,108,101, 10, 32,105,102, 32,102, - 110, 32,116,104,101,110, 10, 32, 32,114,101, 97,100,102,114, - 111,109, 40, 41, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, - 100,101, 97,108, 32,119,105,116,104, 32,105,110, 99,108,117, - 100,101, 32,100,105,114,101, 99,116,105,118,101, 10, 32,108, - 111, 99, 97,108, 32,110,115,117, 98,115,116, 10, 32,114,101, - 112,101, 97,116, 10, 32, 32, 99,111,100,101, 44,110,115,117, - 98,115,116, 32, 61, 32,103,115,117, 98, 40, 99,111,100,101, - 44, 39, 92,110, 37,115, 42, 37, 36, 40, 46, 41,102,105,108, - 101, 37,115, 42, 34, 40, 46, 45, 41, 34, 40, 91, 94, 92,110, - 93, 42, 41, 92,110, 39, 44, 10, 9, 9,102,117,110, 99,116, - 105,111,110, 32, 40,107,105,110,100, 44,102,110, 44,101,120, - 116,114, 97, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32, 95, - 44, 32, 95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102, - 105,110,100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, - 41, 36, 34, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32,102, - 112, 44,109,115,103, 32, 61, 32,111,112,101,110,102,105,108, - 101, 40,102,110, 44, 39,114, 39, 41, 10, 9, 9, 9,105,102, - 32,110,111,116, 32,102,112, 32,116,104,101,110, 10, 9, 9, - 9, 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115, - 103, 46, 46, 39, 58, 32, 39, 46, 46,102,110, 41, 10, 9, 9, - 9,101,110,100, 10, 9, 9, 9,105,102, 32,107,105,110,100, - 32, 61, 61, 32, 39,112, 39, 32,116,104,101,110, 10, 9, 9, - 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,112,114,101, - 112, 40,102,112, 41, 10, 9, 9, 9, 9, 99,108,111,115,101, - 102,105,108,101, 40,102,112, 41, 10, 9, 9, 9, 9,114,101, - 116,117,114,110, 32,115, 10, 9, 9, 9,101,110,100, 10, 9, - 9, 9,108,111, 99, 97,108, 32,115, 32, 61, 32,114,101, 97, - 100, 40,102,112, 44, 39, 42, 97, 39, 41, 10, 9, 9, 9, 99, - 108,111,115,101,102,105,108,101, 40,102,112, 41, 10, 9, 9, - 9,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39, 99, 39, - 32,111,114, 32,107,105,110,100, 32, 61, 61, 32, 39,104, 39, - 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117,114, - 110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100,101, 40, - 102,110, 44,115, 41, 10, 9, 9, 9,101,108,115,101,105,102, - 32,107,105,110,100, 32, 61, 61, 32, 39,108, 39, 32,116,104, - 101,110, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 34, - 92,110, 36, 91, 45, 45, 35, 35, 34, 46, 46,102,110, 46, 46, - 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92, - 110, 36, 93, 92,110, 34, 10, 9, 9, 9,101,108,115,101,105, - 102, 32,107,105,110,100, 32, 61, 61, 32, 39,105, 39, 32,116, - 104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,116, - 32, 61, 32,123, 99,111,100,101, 61,115,125, 10, 9, 9, 9, - 9,101,120,116,114, 97, 32, 61, 32,115,116,114,105,110,103, - 46,103,115,117, 98, 40,101,120,116,114, 97, 44, 32, 34, 94, - 37,115, 42, 44, 37,115, 42, 34, 44, 32, 34, 34, 41, 10, 9, - 9, 9, 9,108,111, 99, 97,108, 32,112, 97,114,115, 32, 61, - 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110,115, - 40,101,120,116,114, 97, 44, 32, 34, 44, 34, 41, 10, 9, 9, - 9, 9,105,110, 99,108,117,100,101, 95,102,105,108,101, 95, - 104,111,111,107, 40,116, 44, 32,102,110, 44, 32,117,110,112, - 97, 99,107, 40,112, 97,114,115, 41, 41, 10, 9, 9, 9, 9, - 114,101,116,117,114,110, 32, 34, 92,110, 92,110, 34, 32, 46, - 46, 32,116, 46, 99,111,100,101, 10, 9, 9, 9,101,108,115, - 101, 10, 9, 9, 9, 9,101,114,114,111,114, 40, 39, 35, 73, - 110,118, 97,108,105,100, 32,105,110, 99,108,117,100,101, 32, - 100,105,114,101, 99,116,105,118,101, 32, 40,117,115,101, 32, - 36, 99,102,105,108,101, 44, 32, 36,112,102,105,108,101, 44, - 32, 36,108,102,105,108,101, 32,111,114, 32, 36,105,102,105, - 108,101, 41, 39, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, - 101,110,100, 41, 10, 32,117,110,116,105,108, 32,110,115,117, - 98,115,116, 61, 61, 48, 10, 10, 32, 45, 45, 32,100,101, 97, - 108, 32,119,105,116,104, 32,114,101,110, 97,109,105,110,103, - 32,100,105,114,101, 99,116,105,118,101, 10, 32,114,101,112, - 101, 97,116, 32, 45, 45, 32, 73, 32,100,111,110, 39,116, 32, - 107,110,111,119, 32,119,104,121, 32,116,104,105,115, 32,105, - 115, 32,110,101, 99,101,115, 97,114,121, 10, 9, 99,111,100, - 101, 44,110,115,117, 98,115,116, 32, 61, 32,103,115,117, 98, - 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36,114, - 101,110, 97,109,105,110,103, 37,115, 42, 40, 46, 45, 41, 37, - 115, 42, 92,110, 39, 44, 32,102,117,110, 99,116,105,111,110, - 32, 40,114, 41, 32, 97,112,112,101,110,100,114,101,110, 97, - 109,105,110,103, 40,114, 41, 32,114,101,116,117,114,110, 32, - 34, 92,110, 34, 32,101,110,100, 41, 10, 32,117,110,116,105, - 108, 32,110,115,117, 98,115,116, 32, 61, 61, 32, 48, 10, 10, - 32,108,111, 99, 97,108, 32,116, 32, 61, 32, 95, 80, 97, 99, - 107, 97,103,101, 40, 95, 67,111,110,116, 97,105,110,101,114, - 123,110, 97,109,101, 61,110, 97,109,101, 44, 32, 99,111,100, - 101, 61, 99,111,100,101,125, 41, 10, 32,112,117,115,104, 40, - 116, 41, 10, 32,112,114,101,112,114,111, 99,101,115,115, 95, - 104,111,111,107, 40,116, 41, 10, 32,116, 58,112,114,101,112, - 114,111, 99,101,115,115, 40, 41, 10, 32,112,114,101,112, 97, - 114,115,101, 95,104,111,111,107, 40,116, 41, 10, 32,116, 58, - 112, 97,114,115,101, 40,116, 46, 99,111,100,101, 41, 10, 32, - 112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, - 10,101,110,100, 10, 10, 10,115,101,116,109,101,116, 97,116, - 97, 98,108,101, 40, 95,101,120,116,114, 97, 95,112, 97,114, - 97,109,101,116,101,114,115, 44, 32,123, 32, 95, 95,105,110, - 100,101,120, 32, 61, 32, 95, 71, 32,125, 41, 10, 10,102,117, - 110, 99,116,105,111,110, 32,112,114,101,112, 40,102,105,108, - 101, 41, 10, 10, 32, 32,108,111, 99, 97,108, 32, 99,104,117, - 110,107, 32, 61, 32,123, 39,108,111, 99, 97,108, 32, 95, 95, - 114,101,116, 32, 61, 32,123, 34, 92, 92,110, 34,125, 92,110, - 39,125, 10, 32, 32,102,111,114, 32,108,105,110,101, 32,105, - 110, 32,102,105,108,101, 58,108,105,110,101,115, 40, 41, 32, - 100,111, 10, 32, 32, 32, 32, 32,105,102, 32,115,116,114,105, - 110,103, 46,102,105,110,100, 40,108,105,110,101, 44, 32, 34, - 94, 35, 35, 34, 41, 32,116,104,101,110, 10, 32, 32, 32, 32, - 32, 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, - 99,104,117,110,107, 44, 32,115,116,114,105,110,103, 46,115, - 117, 98, 40,108,105,110,101, 44, 32, 51, 41, 32, 46, 46, 32, - 34, 92,110, 34, 41, 10, 32, 32, 32, 32, 32,101,108,115,101, - 10, 32, 32, 32, 32, 32, 32,108,111, 99, 97,108, 32,108, 97, - 115,116, 32, 61, 32, 49, 10, 32, 32, 32, 32, 32, 32,102,111, - 114, 32,116,101,120,116, 44, 32,101,120,112,114, 44, 32,105, - 110,100,101,120, 32,105,110, 32,115,116,114,105,110,103, 46, - 103,102,105,110,100, 40,108,105,110,101, 44, 32, 34, 40, 46, - 45, 41, 36, 40, 37, 98, 40, 41, 41, 40, 41, 34, 41, 32,100, - 111, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32,108, 97,115,116, - 32, 61, 32,105,110,100,101,120, 10, 32, 32, 32, 32, 32, 32, - 32, 32,105,102, 32,116,101,120,116, 32,126, 61, 32, 34, 34, - 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99, - 104,117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111, - 114,109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115, - 101,114,116, 40, 95, 95,114,101,116, 44, 32, 37,113, 32, 41, - 39, 44, 32,116,101,120,116, 41, 41, 10, 32, 32, 32, 32, 32, - 32, 32, 32,101,110,100, 10, 32, 32, 32, 32, 32, 32, 32, 32, - 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 99,104, - 117,110,107, 44, 32,115,116,114,105,110,103, 46,102,111,114, - 109, 97,116, 40, 39,116, 97, 98,108,101, 46,105,110,115,101, - 114,116, 40, 95, 95,114,101,116, 44, 32, 37,115, 32, 41, 39, - 44, 32,101,120,112,114, 41, 41, 10, 32, 32, 32, 32, 32, 32, - 101,110,100, 10, 32, 32, 32, 32, 32, 32,116, 97, 98,108,101, - 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, 32, - 115,116,114,105,110,103, 46,102,111,114,109, 97,116, 40, 39, - 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40, 95, 95, - 114,101,116, 44, 32, 37,113, 41, 92,110, 39, 44, 10, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32,115,116,114,105,110,103, - 46,115,117, 98, 40,108,105,110,101, 44, 32,108, 97,115,116, - 41, 46, 46, 34, 92,110, 34, 41, 41, 10, 32, 32, 32, 32,101, - 110,100, 10, 32, 32,101,110,100, 10, 32, 32,116, 97, 98,108, - 101, 46,105,110,115,101,114,116, 40, 99,104,117,110,107, 44, - 32, 39, 92,110,114,101,116,117,114,110, 32,116, 97, 98,108, - 101, 46, 99,111,110, 99, 97,116, 40, 95, 95,114,101,116, 41, - 92,110, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,102, 44, - 101, 32, 61, 32,108,111, 97,100,115,116,114,105,110,103, 40, - 116, 97, 98,108,101, 46, 99,111,110, 99, 97,116, 40, 99,104, - 117,110,107, 41, 41, 10, 32, 32,105,102, 32,101, 32,116,104, - 101,110, 10, 32, 32, 9,101,114,114,111,114, 40, 34, 35, 34, - 46, 46,101, 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101, - 116,102,101,110,118, 40,102, 44, 32, 95,101,120,116,114, 97, - 95,112, 97,114, 97,109,101,116,101,114,115, 41, 10, 32, 32, - 114,101,116,117,114,110, 32,102, 40, 41, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/package.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,109,111,100,117,108, - 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, - 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, - 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, - 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, - 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, - 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, - 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, - 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, - 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, - 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, - 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, - 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, - 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, - 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, - 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, - 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, - 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, - 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, - 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, - 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, - 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, - 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, 45, 32, - 77,111,100,117,108,101, 32, 99,108, 97,115,115, 10, 45, 45, - 32, 82,101,112,114,101,115,101,110,116,115, 32,109,111,100, - 117,108,101, 46, 10, 45, 45, 32, 84,104,101, 32,102,111,108, - 108,111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97, - 114,101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, - 32, 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, - 32,111, 98,106,101, 99,116,115, 32,105,110, 32,116,104,101, - 32,109,111,100,117,108,101, 46, 10, 99,108, 97,115,115, 77, - 111,100,117,108,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, - 115,116,121,112,101, 32, 61, 32, 39,109,111,100,117,108,101, - 39, 10,125, 10, 99,108, 97,115,115, 77,111,100,117,108,101, - 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115, - 115, 77,111,100,117,108,101, 10,115,101,116,109,101,116, 97, - 116, 97, 98,108,101, 40, 99,108, 97,115,115, 77,111,100,117, - 108,101, 44, 99,108, 97,115,115, 67,111,110,116, 97,105,110, - 101,114, 41, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, - 114, 32,109,111,100,117,108,101, 10,102,117,110, 99,116,105, - 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, - 114,101,103,105,115,116,101,114, 32, 40,112,114,101, 41, 10, - 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, - 39, 10, 32,112,117,115,104, 40,115,101,108,102, 41, 10, 32, - 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, - 108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117, - 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,110, 97, - 109,101, 46, 46, 39, 34, 44, 39, 44,115,101,108,102, 58,104, - 97,115,118, 97,114, 40, 41, 44, 39, 41, 59, 39, 41, 10, 32, - 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, - 108,117, 97, 95, 98,101,103,105,110,109,111,100,117,108,101, - 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, - 108,102, 46,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, - 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, - 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, - 32, 32,115,101,108,102, 91,105, 93, 58,114,101,103,105,115, - 116,101,114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, - 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32, - 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, - 108,117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116, - 111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, - 40, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, - 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, - 111,110, 32, 99,108, 97,115,115, 77,111,100,117,108,101, 58, - 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, - 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, - 110,116, 46, 46, 34, 77,111,100,117,108,101,123, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46,110, 97,109,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, - 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, - 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, - 115,101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105, - 100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, - 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, - 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, - 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, - 105,111,110, 32, 95, 77,111,100,117,108,101, 32, 40,116, 41, - 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, - 116, 44, 99,108, 97,115,115, 77,111,100,117,108,101, 41, 10, - 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116, - 117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67, - 111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69, - 120,112,101, 99,116,115, 32,116,119,111, 32,115,116,114,105, - 110,103, 32,114,101,112,114,101,115,101,110,116,105,110,103, - 32,116,104,101, 32,109,111,100,117,108,101, 32,110, 97,109, - 101, 32, 97,110,100, 32, 98,111,100,121, 46, 10,102,117,110, - 99,116,105,111,110, 32, 77,111,100,117,108,101, 32, 40,110, - 44, 98, 41, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, - 95, 77,111,100,117,108,101, 40, 95, 67,111,110,116, 97,105, - 110,101,114,123,110, 97,109,101, 61,110,125, 41, 10, 32,112, - 117,115,104, 40,116, 41, 10, 32,116, 58,112, 97,114,115,101, - 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115,116,114, - 108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101, - 108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, - 10, 32,112,111,112, 40, 41, 10, 32,114,101,116,117,114,110, - 32,116, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/module.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,110, 97,109,101,115, - 112, 97, 99,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, - 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, - 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, - 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, - 45, 32, 74,117,108, 32, 50, 48, 48, 51, 10, 45, 45, 32, 36, - 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, - 99,111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111, - 102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, - 32,114,101,100,105,115,116,114,105, 98,117,116,101, 32,105, - 116, 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, - 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102, - 116,119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32, - 104,101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, - 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115, - 105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, - 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, - 98,108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114, - 111,118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, - 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112, - 100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, - 99,101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100, - 105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, - 45, 32, 78, 97,109,101,115,112, 97, 99,101, 32, 99,108, 97, - 115,115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116, - 115, 32, 97, 32,110, 97,109,101,115, 97,112, 99,101, 32,100, - 101,102,105,110,105,116,105,111,110, 46, 10, 45, 45, 32, 83, - 116,111,114,101,115, 32,116,104,101, 32,102,111,108,108,111, - 119,105,110,103, 32,102,105,101,108,100,115, 58, 10, 45, 45, - 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,108, 97,115, - 115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, 32,123,105, - 125, 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101, - 109, 98,101,114,115, 10, 99,108, 97,115,115, 78, 97,109,101, - 115,112, 97, 99,101, 32, 61, 32,123, 10, 32, 99,108, 97,115, - 115,116,121,112,101, 32, 61, 32, 39,110, 97,109,101,115,112, - 97, 99,101, 39, 44, 10, 32,110, 97,109,101, 32, 61, 32, 39, - 39, 44, 10,125, 10, 99,108, 97,115,115, 78, 97,109,101,115, - 112, 97, 99,101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, - 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 10, - 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, - 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 44, 99,108, - 97,115,115, 77,111,100,117,108,101, 41, 10, 10, 45, 45, 32, - 80,114,105,110,116, 32,109,101,116,104,111,100, 10,102,117, - 110, 99,116,105,111,110, 32, 99,108, 97,115,115, 78, 97,109, - 101,115,112, 97, 99,101, 58,112,114,105,110,116, 32, 40,105, - 100,101,110,116, 44, 99,108,111,115,101, 41, 10, 32,112,114, - 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 78, 97,109, - 101,115,112, 97, 99,101,123, 34, 41, 10, 32,112,114,105,110, - 116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, - 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109, - 101, 46, 46, 34, 39, 44, 34, 41, 10, 32,108,111, 99, 97,108, - 32,105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108, - 102, 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91, - 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, 61, - 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105,110, - 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, - 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 73, - 110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, - 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, - 78, 97,109,101,115,112, 97, 99,101, 32, 40,116, 41, 10, 32, - 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, - 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 41, - 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101, - 116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, - 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, - 69,120,112,101, 99,116,115, 32,116,104,101, 32,110, 97,109, - 101, 32, 97,110,100, 32,116,104,101, 32, 98,111,100,121, 32, - 111,102, 32,116,104,101, 32,110, 97,109,101,115,112, 97, 99, - 101, 46, 10,102,117,110, 99,116,105,111,110, 32, 78, 97,109, - 101,115,112, 97, 99,101, 32, 40,110, 44, 98, 41, 10, 32,108, - 111, 99, 97,108, 32, 99, 32, 61, 32, 95, 78, 97,109,101,115, - 112, 97, 99,101, 40, 95, 67,111,110,116, 97,105,110,101,114, - 123,110, 97,109,101, 61,110,125, 41, 10, 32,112,117,115,104, - 40, 99, 41, 10, 32, 99, 58,112, 97,114,115,101, 40,115,116, - 114,115,117, 98, 40, 98, 44, 50, 44,115,116,114,108,101,110, - 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, 32,101,108,105,109, - 105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32,112, - 111,112, 40, 41, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/namespace.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,100,101,102,105,110, - 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116, - 116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, - 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, - 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74, - 117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, - 32,100,101,102,105,110,101, 46,108,117, 97, 44,118, 32, 49, - 46, 50, 32, 49, 57, 57, 57, 47, 48, 55, 47, 50, 56, 32, 50, - 50, 58, 50, 49, 58, 48, 56, 32, 99,101,108,101,115, 32, 69, - 120,112, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, - 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, - 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, - 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, - 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, - 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, - 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, - 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, - 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, - 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, - 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, - 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, - 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, - 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, - 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, - 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, - 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, - 32, 68,101,102,105,110,101, 32, 99,108, 97,115,115, 10, 45, - 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, 97, 32, - 110,117,109,101,114,105, 99, 32, 99,111,110,115,116, 32,100, - 101,102,105,110,105,116,105,111,110, 10, 45, 45, 32, 84,104, - 101, 32,102,111,108,108,111,119,105,110,103, 32,102,105,108, - 100,115, 32, 97,114,101, 32,115,116,111,114,101,100, 58, 10, - 45, 45, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99,111,110, - 115,116, 97,110,116, 32,110, 97,109,101, 10, 99,108, 97,115, - 115, 68,101,102,105,110,101, 32, 61, 32,123, 10, 32,110, 97, - 109,101, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97,115, - 115, 68,101,102,105,110,101, 46, 95, 95,105,110,100,101,120, - 32, 61, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 10, - 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, - 97,115,115, 68,101,102,105,110,101, 44, 99,108, 97,115,115, - 70,101, 97,116,117,114,101, 41, 10, 10, 45, 45, 32,114,101, - 103,105,115,116,101,114, 32,100,101,102,105,110,101, 10,102, - 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, - 102,105,110,101, 58,114,101,103,105,115,116,101,114, 32, 40, - 112,114,101, 41, 10, 9,105,102, 32,110,111,116, 32,115,101, - 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, - 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, - 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, - 32,112,114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, - 39, 10, 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, - 39,116,111,108,117, 97, 95, 99,111,110,115,116, 97,110,116, - 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101, - 108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, - 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 41, 59, - 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, 80,114,105,110, - 116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116,105, - 111,110, 32, 99,108, 97,115,115, 68,101,102,105,110,101, 58, - 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, - 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, - 110,116, 46, 46, 34, 68,101,102,105,110,101,123, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, - 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99, - 111,110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99, - 116,105,111,110, 32, 95, 68,101,102,105,110,101, 32, 40,116, - 41, 10, 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, - 40,116, 44, 99,108, 97,115,115, 68,101,102,105,110,101, 41, - 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, - 41, 10, 10, 32,105,102, 32,116, 46,110, 97,109,101, 32, 61, - 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,101,114,114, - 111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,100,101, - 102,105,110,101, 34, 41, 10, 32,101,110,100, 10, 10, 32, 97, - 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, - 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, - 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, - 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, - 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, - 32, 99,111,110,115,116, 97,110,116, 32,110, 97,109,101, 10, - 102,117,110, 99,116,105,111,110, 32, 68,101,102,105,110,101, - 32, 40,110, 41, 10, 32,114,101,116,117,114,110, 32, 95, 68, - 101,102,105,110,101,123, 10, 32, 32,110, 97,109,101, 32, 61, - 32,110, 10, 32,125, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/define.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,101,110,117,109,101, - 114, 97,116,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87, - 114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101, - 109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, - 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, - 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, - 73,100, 58, 32,101,110,117,109,101,114, 97,116,101, 46,108, - 117, 97, 44,118, 32, 49, 46, 51, 32, 50, 48, 48, 48, 47, 48, - 49, 47, 50, 52, 32, 50, 48, 58, 52, 49, 58, 49, 53, 32, 99, - 101,108,101,115, 32, 69,120,112, 32, 36, 10, 10, 45, 45, 32, - 84,104,105,115, 32, 99,111,100,101, 32,105,115, 32,102,114, - 101,101, 32,115,111,102,116,119, 97,114,101, 59, 32,121,111, - 117, 32, 99, 97,110, 32,114,101,100,105,115,116,114,105, 98, - 117,116,101, 32,105,116, 32, 97,110,100, 47,111,114, 32,109, - 111,100,105,102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104, - 101, 32,115,111,102,116,119, 97,114,101, 32,112,114,111,118, - 105,100,101,100, 32,104,101,114,101,117,110,100,101,114, 32, - 105,115, 32,111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, - 34, 32, 98, 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, - 32,116,104,101, 32, 97,117,116,104,111,114, 32,104, 97,115, - 32,110,111, 32,111, 98,108,105,103, 97,116,105,111,110, 32, - 116,111, 32,112,114,111,118,105,100,101, 32,109, 97,105,110, - 116,101,110, 97,110, 99,101, 44, 32,115,117,112,112,111,114, - 116, 44, 32,117,112,100, 97,116,101,115, 44, 10, 45, 45, 32, - 101,110,104, 97,110, 99,101,109,101,110,116,115, 44, 32,111, - 114, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, - 46, 10, 10, 10, 45, 45, 32, 69,110,117,109,101,114, 97,116, - 101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114, - 101,115,101,110,116,115, 32,101,110,117,109,101,114, 97,116, - 105,111,110, 10, 45, 45, 32, 84,104,101, 32,102,111,108,108, - 111,119,105,110,103, 32,102,105,101,108,100,115, 32, 97,114, - 101, 32,115,116,111,114,101,100, 58, 10, 45, 45, 32, 32, 32, - 32,123,105,125, 32, 61, 32,108,105,115,116, 32,111,102, 32, - 99,111,110,115,116, 97,110,116, 32,110, 97,109,101,115, 10, - 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 32, - 61, 32,123, 10,125, 10, 99,108, 97,115,115, 69,110,117,109, - 101,114, 97,116,101, 46, 95, 95,105,110,100,101,120, 32, 61, - 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, - 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99, - 108, 97,115,115, 69,110,117,109,101,114, 97,116,101, 44, 99, - 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, - 45, 32,114,101,103,105,115,116,101,114, 32,101,110,117,109, - 101,114, 97,116,105,111,110, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116, - 101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114,101, - 41, 10, 9,105,102, 32,110,111,116, 32,115,101,108,102, 58, - 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, 97, 99, - 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, 9,114, - 101,116,117,114,110, 10, 9,101,110,100, 10, 32,112,114,101, - 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, 32,108, - 111, 99, 97,108, 32,110,115,112, 97, 99,101, 32, 61, 32,103, - 101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97, - 115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114, - 114, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, - 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, - 111, 10, 32, 9,105,102, 32,115,101,108,102, 46,108,110, 97, - 109,101,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, - 46,108,110, 97,109,101,115, 91,105, 93, 32,126, 61, 32, 34, - 34, 32,116,104,101,110, 10, 9, 10, 9, 9,111,117,116,112, - 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, - 99,111,110,115,116, 97,110,116, 40,116,111,108,117, 97, 95, - 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109, - 101,115, 91,105, 93, 46, 46, 39, 34, 44, 39, 46, 46,110,115, - 112, 97, 99,101, 46, 46,115,101,108,102, 91,105, 93, 46, 46, - 39, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32,105, 32, - 61, 32,105, 43, 49, 10, 32,101,110,100, 10,101,110,100, 10, - 10, 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111, - 100, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, - 115, 69,110,117,109,101,114, 97,116,101, 58,112,114,105,110, - 116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41, - 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, - 34, 69,110,117,109,101,114, 97,116,101,123, 34, 41, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 110, 97,109,101, 32, 61, 32, 34, 46, 46,115,101,108,102, 46, - 110, 97,109,101, 41, 10, 32,108,111, 99, 97,108, 32,105, 61, - 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, 91,105, - 93, 32,100,111, 10, 32, 32,112,114,105,110,116, 40,105,100, - 101,110,116, 46, 46, 34, 32, 39, 34, 46, 46,115,101,108,102, - 91,105, 93, 46, 46, 34, 39, 40, 34, 46, 46,115,101,108,102, - 46,108,110, 97,109,101,115, 91,105, 93, 46, 46, 34, 41, 44, - 34, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, - 110,100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, - 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, - 110,100, 10, 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, - 32, 99,111,110,115,116,114,117, 99,116,111,114, 10,102,117, - 110, 99,116,105,111,110, 32, 95, 69,110,117,109,101,114, 97, - 116,101, 32, 40,116, 44,118, 97,114,110, 97,109,101, 41, 10, - 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, - 44, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101, - 41, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, 97, - 112,112,101,110,100,101,110,117,109, 40,116, 41, 10, 9, 32, - 105,102, 32,118, 97,114,110, 97,109,101, 32, 97,110,100, 32, - 118, 97,114,110, 97,109,101, 32,126, 61, 32, 34, 34, 32,116, - 104,101,110, 10, 9, 9,105,102, 32,116, 46,110, 97,109,101, - 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 9, 9, - 86, 97,114,105, 97, 98,108,101, 40,116, 46,110, 97,109,101, - 46, 46, 34, 32, 34, 46, 46,118, 97,114,110, 97,109,101, 41, - 10, 9, 9,101,108,115,101, 10, 9, 9, 9,108,111, 99, 97, - 108, 32,110,115, 32, 61, 32,103,101,116, 99,117,114,114,110, - 97,109,101,115,112, 97, 99,101, 40, 41, 10, 9, 9, 9,119, - 97,114,110,105,110,103, 40, 34, 86, 97,114,105, 97, 98,108, - 101, 32, 34, 46, 46,110,115, 46, 46,118, 97,114,110, 97,109, - 101, 46, 46, 34, 32,111,102, 32,116,121,112,101, 32, 60, 97, - 110,111,110,121,109,111,117,115, 32,101,110,117,109, 62, 32, - 105,115, 32,100,101, 99,108, 97,114,101,100, 32, 97,115, 32, - 114,101, 97,100, 45,111,110,108,121, 34, 41, 10, 9, 9, 9, - 86, 97,114,105, 97, 98,108,101, 40, 34,116,111,108,117, 97, - 95,114,101, 97,100,111,110,108,121, 32,105,110,116, 32, 34, - 46, 46,118, 97,114,110, 97,109,101, 41, 10, 9, 9,101,110, - 100, 10, 9,101,110,100, 10, 9, 32,108,111, 99, 97,108, 32, - 112, 97,114,101,110,116, 32, 61, 32, 99,108, 97,115,115, 67, - 111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 10, 9, - 32,105,102, 32,112, 97,114,101,110,116, 32,116,104,101,110, - 10, 9, 9,116, 46, 97, 99, 99,101,115,115, 32, 61, 32,112, - 97,114,101,110,116, 46, 99,117,114,114, 95,109,101,109, 98, - 101,114, 95, 97, 99, 99,101,115,115, 10, 9, 9,116, 46,103, - 108,111, 98, 97,108, 95, 97, 99, 99,101,115,115, 32, 61, 32, - 116, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, - 97, 99, 99,101,115,115, 40, 41, 10, 9, 32,101,110,100, 10, - 114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, - 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, 10, 45, - 45, 32, 69,120,112,101, 99,116,115, 32, 97, 32,115,116,114, - 105,110,103, 32,114,101,112,114,101,115,101,110,116,105,110, - 103, 32,116,104,101, 32,101,110,117,109,101,114, 97,116,101, - 32, 98,111,100,121, 10,102,117,110, 99,116,105,111,110, 32, - 69,110,117,109,101,114, 97,116,101, 32, 40,110, 44, 98, 44, - 118, 97,114,110, 97,109,101, 41, 10, 9, 98, 32, 61, 32,115, - 116,114,105,110,103, 46,103,115,117, 98, 40, 98, 44, 32, 34, - 44, 91, 37,115, 92,110, 93, 42,125, 34, 44, 32, 34, 92,110, - 125, 34, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116, - 101, 32,108, 97,115,116, 32, 39, 44, 39, 10, 32,108,111, 99, - 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, - 114,115,117, 98, 40, 98, 44, 50, 44, 45, 50, 41, 44, 39, 44, - 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, - 32, 98,114, 97, 99,101,115, 10, 32,108,111, 99, 97,108, 32, - 105, 32, 61, 32, 49, 10, 32,108,111, 99, 97,108, 32,101, 32, - 61, 32,123,110, 61, 48,125, 10, 32,119,104,105,108,101, 32, - 116, 91,105, 93, 32,100,111, 10, 32, 32,108,111, 99, 97,108, - 32,116,116, 32, 61, 32,115,112,108,105,116, 40,116, 91,105, - 93, 44, 39, 61, 39, 41, 32, 32, 45, 45, 32,100,105,115, 99, - 97,114,100, 32,105,110,105,116,105, 97,108, 32,118, 97,108, - 117,101, 10, 32, 32,101, 46,110, 32, 61, 32,101, 46,110, 32, - 43, 32, 49, 10, 32, 32,101, 91,101, 46,110, 93, 32, 61, 32, - 116,116, 91, 49, 93, 10, 32, 32,105, 32, 61, 32,105, 43, 49, - 10, 32,101,110,100, 10, 32, 45, 45, 32,115,101,116, 32,108, - 117, 97, 32,110, 97,109,101,115, 10, 32,105, 32, 32, 61, 32, - 49, 10, 32,101, 46,108,110, 97,109,101,115, 32, 61, 32,123, - 125, 10, 32,108,111, 99, 97,108, 32,110,115, 32, 61, 32,103, - 101,116, 99,117,114,114,110, 97,109,101,115,112, 97, 99,101, - 40, 41, 10, 32,119,104,105,108,101, 32,101, 91,105, 93, 32, - 100,111, 10, 32, 32,108,111, 99, 97,108, 32,116, 32, 61, 32, - 115,112,108,105,116, 40,101, 91,105, 93, 44, 39, 64, 39, 41, - 10, 32, 32,101, 91,105, 93, 32, 61, 32,116, 91, 49, 93, 10, - 9, 9,105,102, 32,110,111,116, 32,116, 91, 50, 93, 32,116, - 104,101,110, 10, 9, 9, 32,116, 91, 50, 93, 32, 61, 32, 97, - 112,112,108,121,114,101,110, 97,109,105,110,103, 40,116, 91, - 49, 93, 41, 10, 9, 9,101,110,100, 10, 32, 32,101, 46,108, - 110, 97,109,101,115, 91,105, 93, 32, 61, 32,116, 91, 50, 93, - 32,111,114, 32,116, 91, 49, 93, 10, 32, 32, 95,103,108,111, - 98, 97,108, 95,101,110,117,109,115, 91, 32,110,115, 46, 46, - 101, 91,105, 93, 32, 93, 32, 61, 32, 40,110,115, 46, 46,101, - 91,105, 93, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, - 32,101,110,100, 10, 9,101, 46,110, 97,109,101, 32, 61, 32, - 110, 10, 9,105,102, 32,110, 32,126, 61, 32, 34, 34, 32,116, - 104,101,110, 10, 9, 9, 84,121,112,101,100,101,102, 40, 34, - 105,110,116, 32, 34, 46, 46,110, 41, 10, 9,101,110,100, 10, - 32,114,101,116,117,114,110, 32, 95, 69,110,117,109,101,114, - 97,116,101, 40,101, 44, 32,118, 97,114,110, 97,109,101, 41, - 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/enumerate.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,100,101, 99,108, 97, - 114, 97,116,105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, - 32, 87,114,105,116,116,101,110, 32, 98,121, 32, 87, 97,108, - 100,101,109, 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, - 84,101, 67, 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, - 10, 45, 45, 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, - 32, 36, 73,100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105, - 115, 32, 99,111,100,101, 32,105,115, 32,102,114,101,101, 32, - 115,111,102,116,119, 97,114,101, 59, 32,121,111,117, 32, 99, - 97,110, 32,114,101,100,105,115,116,114,105, 98,117,116,101, - 32,105,116, 32, 97,110,100, 47,111,114, 32,109,111,100,105, - 102,121, 32,105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115, - 111,102,116,119, 97,114,101, 32,112,114,111,118,105,100,101, - 100, 32,104,101,114,101,117,110,100,101,114, 32,105,115, 32, - 111,110, 32, 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, - 97,115,105,115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104, - 101, 32, 97,117,116,104,111,114, 32,104, 97,115, 32,110,111, - 32,111, 98,108,105,103, 97,116,105,111,110, 32,116,111, 32, - 112,114,111,118,105,100,101, 32,109, 97,105,110,116,101,110, - 97,110, 99,101, 44, 32,115,117,112,112,111,114,116, 44, 32, - 117,112,100, 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, - 97,110, 99,101,109,101,110,116,115, 44, 32,111,114, 32,109, - 111,100,105,102,105, 99, 97,116,105,111,110,115, 46, 10, 10, - 10, 45, 45, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, - 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101,112,114,101, - 115,101,110,116,115, 32,118, 97,114,105, 97, 98,108,101, 44, - 32,102,117,110, 99,116,105,111,110, 44, 32,111,114, 32, 97, - 114,103,117,109,101,110,116, 32,100,101, 99,108, 97,114, 97, - 116,105,111,110, 46, 10, 45, 45, 32, 83,116,111,114,101,115, - 32,116,104,101, 32,102,111,108,108,111,119,105,110,103, 32, - 102,105,101,108,100,115, 58, 10, 45, 45, 32, 32,109,111,100, - 32, 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105, - 101,114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32, - 116,121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, - 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, - 32,114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, - 32,112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114, - 101,102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97, - 109,101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,100, - 105,109, 32, 32, 61, 32,100,105,109,101,110,115,105,111,110, - 44, 32,105,102, 32, 97, 32,118,101, 99,116,111,114, 10, 45, - 45, 32, 32,100,101,102, 32, 32, 61, 32,100,101,102, 97,117, - 108,116, 32,118, 97,108,117,101, 44, 32,105,102, 32, 97,110, - 121, 32, 40,111,110,108,121, 32,102,111,114, 32, 97,114,103, - 117,109,101,110,116,115, 41, 10, 45, 45, 32, 32,114,101,116, - 32, 32, 61, 32, 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, - 32,105,102, 32,118, 97,108,117,101, 32,105,115, 32,116,111, - 32, 98,101, 32,114,101,116,117,114,110,101,100, 32, 40,111, - 110,108,121, 32,102,111,114, 32, 97,114,103,117,109,101,110, - 116,115, 41, 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, - 97,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, 32, - 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, - 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, 32, - 110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32,100,105,109, - 32, 61, 32, 39, 39, 44, 10, 32,114,101,116, 32, 61, 32, 39, - 39, 44, 10, 32,100,101,102, 32, 61, 32, 39, 39, 10,125, 10, - 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111, - 110, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, - 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 10,115, - 101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97, - 115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 44, 99, - 108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 45, - 45, 32, 67,114,101, 97,116,101, 32, 97,110, 32,117,110,105, - 113,117,101, 32,118, 97,114,105, 97, 98,108,101, 32,110, 97, - 109,101, 10,102,117,110, 99,116,105,111,110, 32, 99,114,101, - 97,116,101, 95,118, 97,114,110, 97,109,101, 32, 40, 41, 10, - 32,105,102, 32,110,111,116, 32, 95,118, 97,114,110,117,109, - 98,101,114, 32,116,104,101,110, 32, 95,118, 97,114,110,117, - 109, 98,101,114, 32, 61, 32, 48, 32,101,110,100, 10, 32, 95, - 118, 97,114,110,117,109, 98,101,114, 32, 61, 32, 95,118, 97, - 114,110,117,109, 98,101,114, 32, 43, 32, 49, 10, 32,114,101, - 116,117,114,110, 32, 34,116,111,108,117, 97, 95,118, 97,114, - 95, 34, 46, 46, 95,118, 97,114,110,117,109, 98,101,114, 10, - 101,110,100, 10, 10, 45, 45, 32, 67,104,101, 99,107, 32,100, - 101, 99,108, 97,114, 97,116,105,111,110, 32,110, 97,109,101, - 10, 45, 45, 32, 73,116, 32, 97,108,115,111, 32,105,100,101, - 110,116,105,102,105,101,115, 32,100,101,102, 97,117,108,116, - 32,118, 97,108,117,101,115, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, - 105,111,110, 58, 99,104,101, 99,107,110, 97,109,101, 32, 40, - 41, 10, 10, 32,105,102, 32,115,116,114,115,117, 98, 40,115, - 101,108,102, 46,110, 97,109,101, 44, 49, 44, 49, 41, 32, 61, - 61, 32, 39, 91, 39, 32, 97,110,100, 32,110,111,116, 32,102, - 105,110,100,116,121,112,101, 40,115,101,108,102, 46,116,121, - 112,101, 41, 32,116,104,101,110, 10, 32, 32,115,101,108,102, - 46,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,116,121, - 112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 32, - 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, - 116, 40,115,101,108,102, 46,109,111,100, 44, 39, 37,115, 37, - 115, 42, 39, 41, 10, 32, 32,115,101,108,102, 46,116,121,112, - 101, 32, 61, 32,109, 91,109, 46,110, 93, 10, 32, 32,115,101, - 108,102, 46,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, - 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 10, 32,101,110, - 100, 10, 10, 32,108,111, 99, 97,108, 32,116, 32, 61, 32,115, - 112,108,105,116, 40,115,101,108,102, 46,110, 97,109,101, 44, - 39, 61, 39, 41, 10, 32,105,102, 32,116, 46,110, 61, 61, 50, - 32,116,104,101,110, 10, 32, 32,115,101,108,102, 46,110, 97, - 109,101, 32, 61, 32,116, 91, 49, 93, 10, 32, 32,115,101,108, - 102, 46,100,101,102, 32, 61, 32,102,105,110,100, 95,101,110, - 117,109, 95,118, 97,114, 40,116, 91,116, 46,110, 93, 41, 10, - 32,101,110,100, 10, 10, 32,108,111, 99, 97,108, 32, 98, 44, - 101, 44,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115, - 101,108,102, 46,110, 97,109,101, 44, 34, 37, 91, 40, 46, 45, - 41, 37, 93, 34, 41, 10, 32,105,102, 32, 98, 32,116,104,101, - 110, 10, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, - 32,115,116,114,115,117, 98, 40,115,101,108,102, 46,110, 97, - 109,101, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32,115,101,108, - 102, 46,100,105,109, 32, 61, 32,102,105,110,100, 95,101,110, - 117,109, 95,118, 97,114, 40,100, 41, 10, 32,101,110,100, 10, - 10, 10, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, - 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, - 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, - 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 32, - 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,115,101, - 108,102, 46,110, 97,109,101, 32, 61, 32, 99,114,101, 97,116, - 101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, 32,101,108, - 115,101,105,102, 32,115,101,108,102, 46,107,105,110,100, 61, - 61, 39,118, 97,114, 39, 32,116,104,101,110, 10, 32, 32,105, - 102, 32,115,101,108,102, 46,116,121,112,101, 61, 61, 39, 39, - 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109,101,126, - 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,115,101,108, - 102, 46,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116, - 121,112,101, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, - 32, 32, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, - 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, - 41, 10, 32, 32,101,108,115,101,105,102, 32,102,105,110,100, - 116,121,112,101, 40,115,101,108,102, 46,110, 97,109,101, 41, - 32,116,104,101,110, 10, 32, 32, 32,105,102, 32,115,101,108, - 102, 46,116,121,112,101, 61, 61, 39, 39, 32,116,104,101,110, - 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, - 108,102, 46,110, 97,109,101, 10, 32, 32, 32,101,108,115,101, - 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32,115,101, - 108,102, 46,116,121,112,101, 46, 46, 39, 32, 39, 46, 46,115, - 101,108,102, 46,110, 97,109,101, 32,101,110,100, 10, 32, 32, - 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,114, - 101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41, 10, - 32, 32,101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, - 32, 97,100,106,117,115,116, 32,116,121,112,101, 32,111,102, - 32,115,116,114,105,110,103, 10, 32,105,102, 32,115,101,108, - 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114, - 39, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32, - 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,115,101, - 108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,104, 97,114, - 42, 39, 10, 32,101,110,100, 10, 10, 9,105,102, 32,115,101, - 108,102, 46,107,105,110,100, 32, 97,110,100, 32,115,101,108, - 102, 46,107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, - 32,116,104,101,110, 10, 9, 9,115,101,108,102, 46,110, 97, - 109,101, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, - 98, 40,115,101,108,102, 46,110, 97,109,101, 44, 32, 34, 58, - 46, 42, 36, 34, 44, 32, 34, 34, 41, 32, 45, 45, 32, 63, 63, - 63, 10, 9,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, - 67,104,101, 99,107, 32,100,101, 99,108, 97,114, 97,116,105, - 111,110, 32,116,121,112,101, 10, 45, 45, 32, 83,117, 98,115, - 116,105,116,117,116,101,115, 32,116,121,112,101,100,101,102, - 39,115, 46, 10,102,117,110, 99,116,105,111,110, 32, 99,108, - 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, - 99,104,101, 99,107,116,121,112,101, 32, 40, 41, 10, 10, 32, - 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32,116,104,101, - 114,101, 32,105,115, 32, 97, 32,112,111,105,110,116,101,114, - 32,116,111, 32, 98, 97,115,105, 99, 32,116,121,112,101, 10, - 32,108,111, 99, 97,108, 32, 98, 97,115,105, 99, 32, 61, 32, - 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, - 112,101, 41, 10, 32,105,102, 32,115,101,108,102, 46,107,105, - 110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32, 97,110, - 100, 32, 98, 97,115,105, 99, 61, 61, 39,110,117,109, 98,101, - 114, 39, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102, - 105,110,100, 40,115,101,108,102, 46,112,116,114, 44, 32, 34, - 37, 42, 34, 41, 32,116,104,101,110, 10, 32, 9,115,101,108, - 102, 46,116,121,112,101, 32, 61, 32, 39, 95,117,115,101,114, - 100, 97,116, 97, 39, 10, 32, 9,115,101,108,102, 46,112,116, - 114, 32, 61, 32, 34, 34, 10, 32,101,110,100, 10, 32,105,102, - 32, 98, 97,115,105, 99, 32, 97,110,100, 32,115,101,108,102, - 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 10, 32, - 32,115,101,108,102, 46,114,101,116, 32, 61, 32,115,101,108, - 102, 46,112,116,114, 10, 32, 32,115,101,108,102, 46,112,116, - 114, 32, 61, 32,110,105,108, 10, 32, 32,105,102, 32,105,115, - 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101, - 41, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32,116, - 104,101,110, 10, 32, 32, 9,115,101,108,102, 46,114,101,116, - 117,114,110, 95,117,115,101,114,100, 97,116, 97, 32, 61, 32, - 116,114,117,101, 10, 32, 32,101,110,100, 10, 32,101,110,100, - 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, - 116,104,101,114,101, 32,105,115, 32, 97,114,114, 97,121, 32, - 116,111, 32, 98,101, 32,114,101,116,117,114,110,101,100, 10, - 32,105,102, 32,115,101,108,102, 46,100,105,109,126, 61, 39, - 39, 32, 97,110,100, 32,115,101,108,102, 46,114,101,116,126, - 61, 39, 39, 32,116,104,101,110, 10, 32, 32, 32,101,114,114, - 111,114, 40, 39, 35,105,110,118, 97,108,105,100, 32,112, 97, - 114, 97,109,101,116,101,114, 58, 32, 99, 97,110,110,111,116, - 32,114,101,116,117,114,110, 32, 97,110, 32, 97,114,114, 97, - 121, 32,111,102, 32,118, 97,108,117,101,115, 39, 41, 10, 32, - 101,110,100, 10, 32, 45, 45, 32,114,101,115,116,111,114,101, - 32, 39,118,111,105,100, 42, 39, 32, 97,110,100, 32, 39,115, - 116,114,105,110,103, 42, 39, 10, 32,105,102, 32,115,101,108, - 102, 46,116,121,112,101, 32, 61, 61, 32, 39, 95,117,115,101, - 114,100, 97,116, 97, 39, 32,116,104,101,110, 32,115,101,108, - 102, 46,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 42, - 39, 10, 32,101,108,115,101,105,102, 32,115,101,108,102, 46, - 116,121,112,101, 32, 61, 61, 32, 39, 95, 99,115,116,114,105, - 110,103, 39, 32,116,104,101,110, 32,115,101,108,102, 46,116, - 121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10, 32, - 101,108,115,101,105,102, 32,115,101,108,102, 46,116,121,112, - 101, 32, 61, 61, 32, 39, 95,108,115,116, 97,116,101, 39, 32, - 116,104,101,110, 32,115,101,108,102, 46,116,121,112,101, 32, - 61, 32, 39,108,117, 97, 95, 83,116, 97,116,101, 42, 39, 10, - 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,115,111,108, - 118,101, 32,116,121,112,101,115, 32,105,110,115,105,100,101, - 32,116,104,101, 32,116,101,109,112,108, 97,116,101,115, 10, - 32,105,102, 32,115,101,108,102, 46,116,121,112,101, 32,116, - 104,101,110, 10, 9, 32,115,101,108,102, 46,116,121,112,101, - 32, 61, 32,114,101,115,111,108,118,101, 95,116,101,109,112, - 108, 97,116,101, 95,116,121,112,101,115, 40,115,101,108,102, - 46,116,121,112,101, 41, 10, 32,101,110,100, 10, 10, 45, 45, - 10, 45, 45, 32, 45, 45, 32,105,102, 32,114,101,116,117,114, - 110,105,110,103, 32,118, 97,108,117,101, 44, 32, 97,117,116, - 111,109, 97,116,105, 99, 97,108,108,121, 32,115,101,116, 32, - 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 10, 45, - 45, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, - 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,100, - 101,102, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 45, - 45, 32, 32,115,101,108,102, 46,100,101,102, 32, 61, 32, 39, - 48, 39, 10, 45, 45, 32,101,110,100, 10, 45, 45, 10, 10,101, - 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,114,101, - 115,111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95, - 116,121,112,101,115, 40,116,121,112,101, 41, 10, 10, 9,105, - 102, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, - 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32, - 116,121,112,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97, - 108, 32, 98, 44, 95, 44,109, 32, 61, 32,115,116,114,105,110, - 103, 46,102,105,110,100, 40,116,121,112,101, 44, 32, 34, 40, - 37, 98, 60, 62, 41, 34, 41, 10, 9,105,102, 32, 98, 32,116, - 104,101,110, 10, 10, 9, 9,109, 32, 61, 32,115,112,108,105, - 116, 95, 99, 95,116,111,107,101,110,115, 40,115,116,114,105, - 110,103, 46,115,117, 98, 40,109, 44, 32, 50, 44, 32, 45, 50, - 41, 44, 32, 34, 44, 34, 41, 10, 9, 9,102,111,114, 32,105, - 61, 49, 44, 32,116, 97, 98,108,101, 46,103,101,116,110, 40, - 109, 41, 32,100,111, 10, 9, 9, 9,109, 91,105, 93, 32, 61, - 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,109, 91, - 105, 93, 44, 34, 37,115, 42, 40, 91, 37, 42, 38, 93, 41, 34, - 44, 32, 34, 37, 49, 34, 41, 10, 9, 9, 9,105,102, 32,110, - 111,116, 32,105,115,101,110,117,109, 40,109, 91,105, 93, 41, - 32,116,104,101,110, 32, 95, 44, 32,109, 91,105, 93, 32, 61, - 32, 97,112,112,108,121,116,121,112,101,100,101,102, 40, 34, - 34, 44, 32,109, 91,105, 93, 41, 32,101,110,100, 10, 9, 9, - 9,109, 91,105, 93, 32, 61, 32,102,105,110,100,116,121,112, - 101, 40,109, 91,105, 93, 41, 32,111,114, 32,109, 91,105, 93, - 10, 9, 9, 9,109, 91,105, 93, 32, 61, 32,114,101,115,111, - 108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116,121, - 112,101,115, 40,109, 91,105, 93, 41, 10, 9, 9,101,110,100, - 10, 10, 9, 9,108,111, 99, 97,108, 32, 98, 44,105, 10, 9, - 9,116,121,112,101, 44, 98, 44,105, 32, 61, 32, 98,114,101, - 97,107, 95,116,101,109,112,108, 97,116,101, 40,116,121,112, - 101, 41, 10, 45, 45,112,114,105,110,116, 40, 34, 99,111,110, - 99, 97,116, 32,105,115, 32, 34, 44, 99,111,110, 99, 97,116, - 40,109, 44, 32, 49, 44, 32,109, 46,110, 41, 41, 10, 9, 9, - 108,111, 99, 97,108, 32,116,101,109,112,108, 97,116,101, 95, - 112, 97,114,116, 32, 61, 32, 34, 60, 34, 46, 46, 99,111,110, - 99, 97,116, 40,109, 44, 32, 49, 44, 32,109, 46,110, 44, 32, - 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,116,121,112, - 101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109, - 112,108, 97,116,101, 40,116,121,112,101, 44, 32, 98, 44, 32, - 116,101,109,112,108, 97,116,101, 95,112, 97,114,116, 41, 10, - 9, 9,116,121,112,101, 32, 61, 32,115,116,114,105,110,103, - 46,103,115,117, 98, 40,116,121,112,101, 44, 32, 34, 62, 62, - 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9,101,110,100, 10, - 9,114,101,116,117,114,110, 32,116,121,112,101, 10,101,110, - 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 98,114,101, - 97,107, 95,116,101,109,112,108, 97,116,101, 40,115, 41, 10, - 9,108,111, 99, 97,108, 32, 98, 44,101, 44,116,105,109,112, - 108, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, - 40,115, 44, 32, 34, 40, 37, 98, 60, 62, 41, 34, 41, 10, 9, - 105,102, 32,116,105,109,112,108, 32,116,104,101,110, 10, 9, - 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, - 98, 40,115, 44, 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, - 41, 10, 9, 9,114,101,116,117,114,110, 32,115, 44, 32, 98, - 44, 32,116,105,109,112,108, 10, 9,101,108,115,101, 10, 9, - 9,114,101,116,117,114,110, 32,115, 44, 32, 48, 44, 32,110, - 105,108, 10, 9,101,110,100, 10,101,110,100, 10, 10,102,117, - 110, 99,116,105,111,110, 32,114,101, 98,117,105,108,100, 95, - 116,101,109,112,108, 97,116,101, 40,115, 44, 32, 98, 44, 32, - 116,105,109,112,108, 41, 10, 10, 9,105,102, 32, 98, 32, 61, - 61, 32, 48, 32,116,104,101,110, 10, 9, 9,114,101,116,117, - 114,110, 32,115, 10, 9,101,110,100, 10, 10, 9,114,101,116, - 117,114,110, 32,115,116,114,105,110,103, 46,115,117, 98, 40, - 115, 44, 32, 49, 44, 32, 98, 45, 49, 41, 46, 46,116,105,109, - 112,108, 46, 46,115,116,114,105,110,103, 46,115,117, 98, 40, - 115, 44, 32, 98, 44, 32, 45, 49, 41, 10,101,110,100, 10, 10, - 45, 45, 32, 80,114,105,110,116, 32,109,101,116,104,111,100, - 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, - 68,101, 99,108, 97,114, 97,116,105,111,110, 58,112,114,105, - 110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, - 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 34, - 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115, - 101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, - 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, - 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97, - 109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, - 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105, - 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,105,109, - 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,105, - 109, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, - 40,105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, - 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, - 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105, - 100,101,110,116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, - 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46, 34, - 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, - 110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, - 10,101,110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32, - 105,102, 32, 97,114,114, 97,121, 32,111,102, 32,118, 97,108, - 117,101,115, 32, 97,114,101, 32,114,101,116,117,114,110,101, - 100, 32,116,111, 32, 76,117, 97, 10,102,117,110, 99,116,105, - 111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97, - 116,105,111,110, 58,114,101,113,117,105,114,101, 99,111,108, - 108,101, 99,116,105,111,110, 32, 40,116, 41, 10, 32,105,102, - 32,115,101,108,102, 46,109,111,100, 32,126, 61, 32, 39, 99, - 111,110,115,116, 39, 32, 97,110,100, 10, 9, 32, 32, 32, 32, - 115,101,108,102, 46,100,105,109, 32, 97,110,100, 32,115,101, - 108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110, - 100, 10, 9, 9, 9, 9, 32,110,111,116, 32,105,115, 98, 97, - 115,105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32, - 97,110,100, 10, 9, 9, 9, 9, 32,115,101,108,102, 46,112, - 116,114, 32, 61, 61, 32, 39, 39, 32, 97,110,100, 32,115,101, - 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, - 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, - 9, 9,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32, - 103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, - 34, 37,115, 42, 99,111,110,115,116, 37,115, 43, 34, 44, 34, - 34, 41, 10, 9, 9,116, 91,116,121,112,101, 93, 32, 61, 32, - 34,116,111,108,117, 97, 95, 99,111,108,108,101, 99,116, 95, - 34, 32, 46, 46, 32, 99,108,101, 97,110, 95,116,101,109,112, - 108, 97,116,101, 40,116,121,112,101, 41, 10, 9, 9,114,101, - 116,117,114,110, 32,116,114,117,101, 10, 9,101,110,100, 10, - 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 10,101, - 110,100, 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32, - 116, 97,103, 10,102,117,110, 99,116,105,111,110, 32, 99,108, - 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58, - 100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 10, 9,115, - 101,108,102, 46,116,121,112,101, 32, 61, 32,116,121,112,101, - 118, 97,114, 40,115,101,108,102, 46,116,121,112,101, 41, 10, - 9,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108, - 102, 46,109,111,100, 44, 39, 99,111,110,115,116, 39, 41, 32, - 116,104,101,110, 10, 9, 9,115,101,108,102, 46,116,121,112, - 101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46,115, - 101,108,102, 46,116,121,112,101, 10, 9, 9,115,101,108,102, - 46,109,111,100, 32, 61, 32,103,115,117, 98, 40,115,101,108, - 102, 46,109,111,100, 44, 39, 99,111,110,115,116, 37,115, 42, - 39, 44, 39, 39, 41, 10, 9,101,110,100, 10,101,110,100, 10, - 10, 10, 45, 45, 32,111,117,116,112,117,116, 32,116,121,112, - 101, 32, 99,104,101, 99,107,105,110,103, 10,102,117,110, 99, - 116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97, - 114, 97,116,105,111,110, 58,111,117,116, 99,104,101, 99,107, - 116,121,112,101, 32, 40,110, 97,114,103, 41, 10, 32,108,111, - 99, 97,108, 32,100,101,102, 10, 32,108,111, 99, 97,108, 32, - 116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108, - 102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115,101,108, - 102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,110, 10, - 32, 32,100,101,102, 32, 61, 32, 49, 10, 32,101,108,115,101, - 10, 32, 32,100,101,102, 32, 61, 32, 48, 10, 32,101,110,100, - 10, 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, - 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 45, 45,105,102, - 32,116, 61, 61, 39,115,116,114,105,110,103, 39, 32,116,104, - 101,110, 10, 9, 45, 45, 9,114,101,116,117,114,110, 32, 39, - 116,111,108,117, 97, 95,105,115,115,116,114,105,110,103, 97, - 114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, - 46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101,102, - 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, - 39, 10, 9, 45, 45,101,108,115,101, 10, 9,114,101,116,117, - 114,110, 32, 39, 33,116,111,108,117, 97, 95,105,115,116, 97, - 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46, - 110, 97,114,103, 46, 46, 39, 44, 48, 44, 38,116,111,108,117, - 97, 95,101,114,114, 41, 39, 10, 32, 9, 45, 45,101,110,100, - 10, 32,101,108,115,101,105,102, 32,116, 32,116,104,101,110, - 10, 9,114,101,116,117,114,110, 32, 39, 33,116,111,108,117, - 97, 95,105,115, 39, 46, 46,116, 46, 46, 39, 40,116,111,108, - 117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, - 44, 39, 46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108, - 117, 97, 95,101,114,114, 41, 39, 10, 32,101,108,115,101, 10, - 32, 32,108,111, 99, 97,108, 32,105,115, 95,102,117,110, 99, - 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99,116, - 105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, - 32, 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, - 61, 32, 39, 38, 39, 32,111,114, 32,115,101,108,102, 46,112, - 116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, 32, - 32, 9,114,101,116,117,114,110, 32, 39, 40,116,111,108,117, - 97, 95,105,115,118, 97,108,117,101,110,105,108, 40,116,111, - 108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, - 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124, - 124, 32, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, - 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97, - 114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108,102, 46, - 116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100,101,102, - 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, - 41, 39, 10, 32, 32,101,108,115,101, 10, 9,114,101,116,117, - 114,110, 32, 39, 33, 39, 46, 46,105,115, 95,102,117,110, 99, - 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46, - 110, 97,114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108, - 102, 46,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100, - 101,102, 46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114, - 114, 41, 39, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, - 101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99, - 108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, - 58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105, - 111,110, 32, 40,110, 97,114,103, 44, 32, 99,112,108,117,115, - 112,108,117,115, 41, 10, 32,108,111, 99, 97,108, 32, 97,114, - 114, 97,121, 32, 61, 32,115,101,108,102, 46,100,105,109, 32, - 126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110,117,109, - 98,101,114, 40,115,101,108,102, 46,100,105,109, 41, 61, 61, - 110,105,108, 10, 9,108,111, 99, 97,108, 32,108,105,110,101, - 32, 61, 32, 34, 34, 10, 32,108,111, 99, 97,108, 32,112,116, - 114, 32, 61, 32, 39, 39, 10, 32,108,111, 99, 97,108, 32,109, - 111,100, 10, 32,108,111, 99, 97,108, 32,116,121,112,101, 32, - 61, 32,115,101,108,102, 46,116,121,112,101, 10, 32,108,111, - 99, 97,108, 32,110, 99,116,121,112,101, 32, 61, 32,103,115, - 117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99, - 111,110,115,116, 37,115, 43, 39, 44, 39, 39, 41, 10, 32,105, - 102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, - 39, 32,116,104,101,110, 10, 9, 32,116,121,112,101, 32, 61, - 32,103,115,117, 98, 40,115,101,108,102, 46,116,121,112,101, - 44, 39, 99,111,110,115,116, 37,115, 43, 39, 44, 39, 39, 41, - 32, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101,115, - 32, 99,111,110,115,116, 32,109,111,100,105,102,105,101,114, - 32,102,111,114, 32, 97,114,114, 97,121,115, 10, 32,101,110, - 100, 10, 32,105,102, 32,115,101,108,102, 46,112,116,114,126, - 61, 39, 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, - 97,115,105, 99, 40,116,121,112,101, 41, 32,116,104,101,110, - 32,112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, - 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, - 97,114, 97,109, 40,108,105,110,101, 44, 34, 32, 34, 44,115, - 101,108,102, 46,109,111,100, 44,116,121,112,101, 44,112,116, - 114, 41, 10, 32,105,102, 32, 97,114,114, 97,121, 32,116,104, - 101,110, 10, 32, 32,108,105,110,101, 32, 61, 32, 99,111,110, - 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, - 42, 39, 41, 10, 32,101,110,100, 10, 32,108,105,110,101, 32, - 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, - 105,110,101, 44,115,101,108,102, 46,110, 97,109,101, 41, 10, - 32,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, - 32, 39, 39, 32,116,104,101,110, 10, 32, 32,105,102, 32,116, - 111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,105, - 109, 41,126, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, - 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, - 97,114, 97,109, 40,108,105,110,101, 44, 39, 91, 39, 44,115, - 101,108,102, 46,100,105,109, 44, 39, 93, 59, 39, 41, 10, 32, - 32,101,108,115,101, 10, 9,105,102, 32, 99,112,108,117,115, - 112,108,117,115, 32,116,104,101,110, 10, 9, 9,108,105,110, - 101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, - 40,108,105,110,101, 44, 39, 32, 61, 32, 77,116,111,108,117, - 97, 95,110,101,119, 40, 40, 39, 44,116,121,112,101, 44,112, - 116,114, 44, 39, 41, 91, 39, 46, 46,115,101,108,102, 46,100, - 105,109, 46, 46, 39, 93, 41, 59, 39, 41, 10, 9,101,108,115, - 101, 10, 9, 9,108,105,110,101, 32, 61, 32, 99,111,110, 99, - 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, - 61, 32, 40, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, - 42, 41, 39, 44, 10, 9, 9, 39,109, 97,108,108,111, 99, 40, - 40, 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 41, 42, - 115,105,122,101,111,102, 40, 39, 44,116,121,112,101, 44,112, - 116,114, 44, 39, 41, 41, 59, 39, 41, 10, 9,101,110,100, 10, - 32, 32,101,110,100, 10, 32,101,108,115,101, 10, 32, 32,108, - 111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, - 99, 40,116,121,112,101, 41, 10, 32, 32,108,105,110,101, 32, - 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108, - 105,110,101, 44, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, - 32,116, 32, 61, 61, 32, 39,115,116, 97,116,101, 39, 32,116, - 104,101,110, 10, 32, 32, 9,108,105,110,101, 32, 61, 32, 99, - 111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, - 44, 32, 39,116,111,108,117, 97, 95, 83, 59, 39, 41, 10, 32, - 32,101,108,115,101, 10, 32, 32, 9, 45, 45,112,114,105,110, - 116, 40, 34,116, 32,105,115, 32, 34, 46, 46,116,111,115,116, - 114,105,110,103, 40,116, 41, 46, 46, 34, 44, 32,112,116,114, - 32,105,115, 32, 34, 46, 46,116,111,115,116,114,105,110,103, - 40,115,101,108,102, 46,112,116,114, 41, 41, 10, 32, 32, 9, - 105,102, 32,116, 32, 61, 61, 32, 39,110,117,109, 98,101,114, - 39, 32, 97,110,100, 32,115,116,114,105,110,103, 46,102,105, - 110,100, 40,115,101,108,102, 46,112,116,114, 44, 32, 34, 37, - 42, 34, 41, 32,116,104,101,110, 10, 32, 32, 9, 9,116, 32, - 61, 32, 39,117,115,101,114,100, 97,116, 97, 39, 10, 32, 32, - 9,101,110,100, 10, 9,105,102, 32,110,111,116, 32,116, 32, - 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101, - 110, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,116, - 112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42, 39, 41, - 32,101,110,100, 10, 9,108,105,110,101, 32, 61, 32, 99,111, - 110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, - 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,116, - 121,112,101, 41, 10, 9,105,102, 32,110,111,116, 32,116, 32, - 116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, 99, - 111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, - 44, 39, 42, 39, 41, 10, 9,101,110,100, 10, 9,108,105,110, - 101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, - 40,108,105,110,101, 44, 39, 41, 32, 39, 41, 10, 9,105,102, - 32,105,115,101,110,117,109, 40,110, 99,116,121,112,101, 41, - 32,116,104,101,110, 10, 9, 9,108,105,110,101, 32, 61, 32, - 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110, - 101, 44, 39, 40,105,110,116, 41, 32, 39, 41, 10, 9,101,110, - 100, 10, 9,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, - 48, 10, 9,105,102, 32,115,101,108,102, 46,100,101,102, 32, - 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9,100,101, - 102, 32, 61, 32,115,101,108,102, 46,100,101,102, 10, 9, 9, - 105,102, 32, 40,112,116,114, 32, 61, 61, 32, 39, 39, 32,111, - 114, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, - 38, 39, 41, 32, 97,110,100, 32,110,111,116, 32,116, 32,116, - 104,101,110, 10, 9, 9, 9,100,101,102, 32, 61, 32, 34, 40, - 118,111,105,100, 42, 41, 38, 40, 99,111,110,115,116, 32, 34, - 46, 46,116,121,112,101, 46, 46, 34, 41, 34, 46, 46,100,101, - 102, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,105, - 102, 32,116, 32,116,104,101,110, 10, 9, 9,108,105,110,101, - 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40, - 108,105,110,101, 44, 39,116,111,108,117, 97, 95,116,111, 39, - 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, - 44,110, 97,114,103, 44, 39, 44, 39, 44,100,101,102, 44, 39, - 41, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,108, - 111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32, - 103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, - 40,116,121,112,101, 41, 10, 9, 9,108,105,110,101, 32, 61, - 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105, - 110,101, 44,116,111, 95,102,117,110, 99, 46, 46, 39, 40,116, - 111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, - 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 9, - 101,110,100, 10, 32, 32,101,110,100, 10, 32,101,110,100, 10, - 9,114,101,116,117,114,110, 32,108,105,110,101, 10,101,110, - 100, 10, 10, 45, 45, 32, 68,101, 99,108, 97,114,101, 32,118, - 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, - 105,111,110, 58,100,101, 99,108, 97,114,101, 32, 40,110, 97, - 114,103, 41, 10, 32,105,102, 32,115,101,108,102, 46,100,105, - 109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,116,111,110, - 117,109, 98,101,114, 40,115,101,108,102, 46,100,105,109, 41, - 61, 61,110,105,108, 32,116,104,101,110, 10, 9, 32,111,117, - 116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, - 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10, 9, - 9,111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117, - 105,108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40, - 110, 97,114,103, 44,116,114,117,101, 41, 41, 10, 9, 9,111, - 117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, - 41, 10, 9, 9,111,117,116,112,117,116, 40,115,101,108,102, - 58, 98,117,105,108,100,100,101, 99,108, 97,114, 97,116,105, - 111,110, 40,110, 97,114,103, 44,102, 97,108,115,101, 41, 41, - 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, - 105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, - 111,117,116,112,117,116, 40,115,101,108,102, 58, 98,117,105, - 108,100,100,101, 99,108, 97,114, 97,116,105,111,110, 40,110, - 97,114,103, 44,102, 97,108,115,101, 41, 41, 10, 9,101,110, - 100, 10,101,110,100, 10, 10, 45, 45, 32, 71,101,116, 32,112, - 97,114, 97,109,101,116,101,114, 32,118, 97,108,117,101, 10, - 102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68, - 101, 99,108, 97,114, 97,116,105,111,110, 58,103,101,116, 97, - 114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, - 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, - 32,116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32,116, - 121,112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, - 46,116,121,112,101, 44, 39, 99,111,110,115,116, 32, 39, 44, - 39, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, - 32,123, 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, - 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, - 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 32, 32,108,111, - 99, 97,108, 32,100,101,102, 59, 32,105,102, 32,115,101,108, - 102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,110, 32, - 100,101,102, 61, 49, 32,101,108,115,101, 32,100,101,102, 61, - 48, 32,101,110,100, 10, 9, 9,108,111, 99, 97,108, 32,116, - 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, - 41, 10, 9, 9,105,102, 32, 40,116, 41, 32,116,104,101,110, - 10, 9, 9, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, - 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115, - 39, 46, 46,116, 46, 46, 39, 97,114,114, 97,121, 40,116,111, - 108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, - 39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39, 44, - 100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,114, - 114, 41, 41, 39, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, - 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,105, - 102, 32, 40, 33,116,111,108,117, 97, 95,105,115,117,115,101, - 114,116,121,112,101, 97,114,114, 97,121, 40,116,111,108,117, - 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 34, 39, - 44,116,121,112,101, 44, 39, 34, 44, 39, 44,115,101,108,102, - 46,100,105,109, 44, 39, 44, 39, 44,100,101,102, 44, 39, 44, - 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, - 9, 9,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, - 39, 32, 32, 32, 32,103,111,116,111, 32,116,111,108,117, 97, - 95,108,101,114,114,111,114, 59, 39, 41, 10, 32, 32,111,117, - 116,112,117,116, 40, 39, 32, 32, 32,101,108,115,101, 92,110, - 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101, - 110,100,105,102, 92,110, 39, 41, 10, 32, 32,111,117,116,112, - 117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32,111,117, - 116,112,117,116, 40, 39, 32, 32, 32, 32,105,110,116, 32,105, - 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, - 32, 32, 32,102,111,114, 40,105, 61, 48, 59, 32,105, 60, 39, - 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 59,105, - 43, 43, 41, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, - 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, - 41, 10, 32, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, - 32, 39, 39, 10, 32, 32,105,102, 32,115,101,108,102, 46,112, - 116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116,114, - 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 32, 32,111,117, - 116,112,117,116, 40, 39, 32, 32, 32, 39, 44,115,101,108,102, - 46,110, 97,109,101, 46, 46, 39, 91,105, 93, 32, 61, 32, 39, - 41, 10, 32, 32,105,102, 32,110,111,116, 32,116, 32, 97,110, - 100, 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32, - 111,117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, - 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44, - 116,121,112,101, 41, 10, 32, 32,105,102, 32,110,111,116, 32, - 116, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117, - 116, 40, 39, 42, 39, 41, 10, 32, 32,101,110,100, 10, 32, 32, - 111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10, 32, 32, - 108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 32, - 32,105,102, 32,115,101,108,102, 46,100,101,102, 32,126, 61, - 32, 39, 39, 32,116,104,101,110, 32,100,101,102, 32, 61, 32, - 115,101,108,102, 46,100,101,102, 32,101,110,100, 10, 32, 32, - 105,102, 32,116, 32,116,104,101,110, 10, 32, 32, 32,111,117, - 116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111,102, - 105,101,108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108, - 117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, - 43, 49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, - 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112, - 117,116, 40, 39,116,111,108,117, 97, 95,116,111,102,105,101, - 108,100,117,115,101,114,116,121,112,101, 40,116,111,108,117, - 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, - 49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, - 32, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, - 39, 32, 32, 32,125, 39, 41, 10, 32, 32,111,117,116,112,117, - 116, 40, 39, 32, 32,125, 39, 41, 10, 32,101,110,100, 10,101, - 110,100, 10, 10, 45, 45, 32, 71,101,116, 32,112, 97,114, 97, - 109,101,116,101,114, 32,118, 97,108,117,101, 10,102,117,110, - 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, - 97,114, 97,116,105,111,110, 58,115,101,116, 97,114,114, 97, - 121, 32, 40,110, 97,114,103, 41, 10, 32,105,102, 32,110,111, - 116, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, - 116,121,112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, - 41, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32, - 126, 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 32,108,111, - 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, - 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,111,110, - 115,116, 32, 39, 44, 39, 39, 41, 10, 32, 32,111,117,116,112, - 117,116, 40, 39, 32, 32,123, 39, 41, 10, 32, 32,111,117,116, - 112,117,116, 40, 39, 32, 32, 32,105,110,116, 32,105, 59, 39, - 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, - 102,111,114, 40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115, - 101,108,102, 46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, - 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,116, 44, 99,116, - 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, - 41, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, 32, - 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116, - 111,108,117, 97, 95,112,117,115,104,102,105,101,108,100, 39, - 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, - 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 40, 39, - 44, 99,116, 44, 39, 41, 39, 44,115,101,108,102, 46,110, 97, - 109,101, 44, 39, 91,105, 93, 41, 59, 39, 41, 10, 32, 32,101, - 108,115,101, 10, 32, 32, 32,105,102, 32,115,101,108,102, 46, - 112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10, - 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, - 32,123, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117, - 116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108, - 117,115,112,108,117,115, 92,110, 39, 41, 10, 32, 32, 32, 32, - 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,118,111, - 105,100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, - 32, 77,116,111,108,117, 97, 95,110,101,119, 40, 40, 39, 44, - 116,121,112,101, 44, 39, 41, 40, 39, 44,115,101,108,102, 46, - 110, 97,109,101, 44, 39, 91,105, 93, 41, 41, 59, 39, 41, 10, - 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, - 32, 32,116,111,108,117, 97, 95,112,117,115,104,102,105,101, - 108,100,117,115,101,114,116,121,112,101, 95, 97,110,100, 95, - 116, 97,107,101,111,119,110,101,114,115,104,105,112, 40,116, - 111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, - 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, - 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, - 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101, - 108,115,101, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111,117, - 116,112,117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, - 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111, - 108,117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, - 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 44,115,101,108, - 102, 46,110, 97,109,101, 44, 39, 91,105, 93, 44,115,105,122, - 101,111,102, 40, 39, 44,116,121,112,101, 44, 39, 41, 41, 59, - 39, 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, - 39, 32, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, - 102,105,101,108,100,117,115,101,114,116,121,112,101, 40,116, - 111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, - 44,105, 43, 49, 44,116,111,108,117, 97, 95,111, 98,106, 44, - 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, - 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 35,101, - 110,100,105,102, 92,110, 39, 41, 10, 32, 32, 32, 32, 32,111, - 117,116,112,117,116, 40, 39, 32, 32, 32,125, 39, 41, 10, 32, - 32, 32,101,108,115,101, 10, 32, 32, 32, 32,111,117,116,112, - 117,116, 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117, - 115,104,102,105,101,108,100,117,115,101,114,116,121,112,101, - 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, - 44, 39, 44,105, 43, 49, 44, 40,118,111,105,100, 42, 41, 39, - 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, - 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, - 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 32, - 32,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, 41, 10, - 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 70,114, - 101,101, 32,100,121,110, 97,109,105, 99, 97,108,108,121, 32, - 97,108,108,111, 99, 97,116,101,100, 32, 97,114,114, 97,121, - 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, - 68,101, 99,108, 97,114, 97,116,105,111,110, 58,102,114,101, - 101, 97,114,114, 97,121, 32, 40, 41, 10, 32,105,102, 32,115, - 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97, - 110,100, 32,116,111,110,117,109, 98,101,114, 40,115,101,108, - 102, 46,100,105,109, 41, 61, 61,110,105,108, 32,116,104,101, - 110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102, - 100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, - 92,110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, - 32, 32, 77,116,111,108,117, 97, 95,100,101,108,101,116,101, - 95,100,105,109, 40, 39, 44,115,101,108,102, 46,110, 97,109, - 101, 44, 39, 41, 59, 39, 41, 10, 9, 32,111,117,116,112,117, - 116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 32, 32, - 111,117,116,112,117,116, 40, 39, 32, 32,102,114,101,101, 40, - 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 41, 59, - 39, 41, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101, - 110,100,105,102, 92,110, 39, 41, 10, 32,101,110,100, 10,101, - 110,100, 10, 10, 45, 45, 32, 80, 97,115,115, 32,112, 97,114, - 97,109,101,116,101,114, 10,102,117,110, 99,116,105,111,110, - 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105, - 111,110, 58,112, 97,115,115,112, 97,114, 32, 40, 41, 10, 32, - 105,102, 32,115,101,108,102, 46,112,116,114, 61, 61, 39, 38, - 39, 32, 97,110,100, 32,110,111,116, 32,105,115, 98, 97,115, - 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 32,116, - 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 42, - 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 32, - 101,108,115,101,105,102, 32,115,101,108,102, 46,114,101,116, - 61, 61, 39, 42, 39, 32,116,104,101,110, 10, 32, 32,111,117, - 116,112,117,116, 40, 39, 38, 39, 46, 46,115,101,108,102, 46, - 110, 97,109,101, 41, 10, 32,101,108,115,101, 10, 32, 32,111, - 117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, - 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, - 82,101,116,117,114,110, 32,112, 97,114, 97,109,101,116,101, - 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, - 105,111,110, 58,114,101,116,118, 97,108,117,101, 32, 40, 41, - 10, 32,105,102, 32,115,101,108,102, 46,114,101,116, 32,126, - 61, 32, 39, 39, 32,116,104,101,110, 10, 32, 32,108,111, 99, - 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, - 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, - 32,105,102, 32,116, 32, 97,110,100, 32,116,126, 61, 39, 39, - 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, - 40, 39, 32, 32, 32,116,111,108,117, 97, 95,112,117,115,104, - 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, - 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108, - 102, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, 32, - 32,101,108,115,101, 10, 32, 32, 32,108,111, 99, 97,108, 32, - 112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101,116, - 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, 40, - 115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,111, - 117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115, - 104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, - 83, 44, 40,118,111,105,100, 42, 41, 39, 46, 46,115,101,108, - 102, 46,110, 97,109,101, 46, 46, 39, 44, 34, 39, 44,115,101, - 108,102, 46,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10, - 32, 32,101,110,100, 10, 32, 32,114,101,116,117,114,110, 32, - 49, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, 32, - 48, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101,114, - 110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111,114, - 10,102,117,110, 99,116,105,111,110, 32, 95, 68,101, 99,108, - 97,114, 97,116,105,111,110, 32, 40,116, 41, 10, 10, 32,115, - 101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99, - 108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, - 41, 10, 32,116, 58, 98,117,105,108,100,110, 97,109,101,115, - 40, 41, 10, 32,116, 58, 99,104,101, 99,107,110, 97,109,101, - 40, 41, 10, 32,116, 58, 99,104,101, 99,107,116,121,112,101, - 40, 41, 10, 32,108,111, 99, 97,108, 32,102,116, 32, 61, 32, - 102,105,110,100,116,121,112,101, 40,116, 46,116,121,112,101, - 41, 32,111,114, 32,116, 46,116,121,112,101, 10, 32,105,102, - 32,110,111,116, 32,105,115,101,110,117,109, 40,102,116, 41, - 32,116,104,101,110, 10, 9,116, 46,109,111,100, 44, 32,116, - 46,116,121,112,101, 32, 61, 32, 97,112,112,108,121,116,121, - 112,101,100,101,102, 40,116, 46,109,111,100, 44, 32,102,116, - 41, 10, 32,101,110,100, 10, 10, 32,105,102, 32,116, 46,107, - 105,110,100, 61, 61, 34,118, 97,114, 34, 32, 97,110,100, 32, - 40,115,116,114,105,110,103, 46,102,105,110,100, 40,116, 46, - 109,111,100, 44, 32, 34,116,111,108,117, 97, 95,112,114,111, - 112,101,114,116,121, 37,115, 34, 41, 32,111,114, 32,115,116, - 114,105,110,103, 46,102,105,110,100, 40,116, 46,109,111,100, - 44, 32, 34,116,111,108,117, 97, 95,112,114,111,112,101,114, - 116,121, 36, 34, 41, 41, 32,116,104,101,110, 10, 32, 9,116, - 46,109,111,100, 32, 61, 32,115,116,114,105,110,103, 46,103, - 115,117, 98, 40,116, 46,109,111,100, 44, 32, 34,116,111,108, - 117, 97, 95,112,114,111,112,101,114,116,121, 34, 44, 32, 34, - 116,111,108,117, 97, 95,112,114,111,112,101,114,116,121, 95, - 95, 34, 46, 46,103,101,116, 95,112,114,111,112,101,114,116, - 121, 95,116,121,112,101, 40, 41, 41, 10, 32,101,110,100, 10, - 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, - 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111,114, - 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104,101, - 32,115,116,114,105,110,103, 32,100,101, 99,108, 97,114, 97, - 116,105,111,110, 46, 10, 45, 45, 32, 84,104,101, 32,107,105, - 110,100, 32,111,102, 32,100,101, 99,108, 97,114, 97,116,105, - 111,110, 32, 99, 97,110, 32, 98,101, 32, 34,118, 97,114, 34, - 32,111,114, 32, 34,102,117,110, 99, 34, 46, 10,102,117,110, - 99,116,105,111,110, 32, 68,101, 99,108, 97,114, 97,116,105, - 111,110, 32, 40,115, 44,107,105,110,100, 44,105,115, 95,112, - 97,114, 97,109,101,116,101,114, 41, 10, 10, 32, 45, 45, 32, - 101,108,105,109,105,110, 97,116,101, 32,115,112, 97, 99,101, - 115, 32,105,102, 32,100,101,102, 97,117,108,116, 32,118, 97, - 108,117,101, 32,105,115, 32,112,114,111,118,105,100,101,100, - 10, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 37, - 115, 42, 61, 37,115, 42, 34, 44, 34, 61, 34, 41, 10, 32,115, - 32, 61, 32,103,115,117, 98, 40,115, 44, 32, 34, 37,115, 42, - 60, 34, 44, 32, 34, 60, 34, 41, 10, 10, 32,108,111, 99, 97, - 108, 32,100,101,102, 98, 44,116,109,112,100,101,102, 10, 32, - 100,101,102, 98, 44, 95, 44,116,109,112,100,101,102, 32, 61, - 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115, 44, - 32, 34, 40, 61, 46, 42, 41, 36, 34, 41, 10, 32,105,102, 32, - 100,101,102, 98, 32,116,104,101,110, 10, 32, 9,115, 32, 61, - 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,115, 44, - 32, 34, 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 32,101, - 108,115,101, 10, 32, 9,116,109,112,100,101,102, 32, 61, 32, - 39, 39, 10, 32,101,110,100, 10, 32,105,102, 32,107,105,110, - 100, 32, 61, 61, 32, 34,118, 97,114, 34, 32,116,104,101,110, - 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, - 32,102,111,114,109, 58, 32,118,111,105,100, 10, 32, 32,105, - 102, 32,115, 32, 61, 61, 32, 39, 39, 32,111,114, 32,115, 32, - 61, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, - 32, 32, 32,114,101,116,117,114,110, 32, 95, 68,101, 99,108, - 97,114, 97,116,105,111,110,123,116,121,112,101, 32, 61, 32, - 39,118,111,105,100, 39, 44, 32,107,105,110,100, 32, 61, 32, - 107,105,110,100, 44, 32,105,115, 95,112, 97,114, 97,109,101, - 116,101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101, - 116,101,114,125, 10, 32, 32,101,110,100, 10, 32,101,110,100, - 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, - 32,102,111,114,109, 58, 32,109,111,100, 32,116,121,112,101, - 42, 38, 32,110, 97,109,101, 10, 32,108,111, 99, 97,108, 32, - 116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107, - 101,110,115, 40,115, 44, 39, 37, 42, 37,115, 42, 38, 39, 41, - 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, - 104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, - 61, 32, 39,102,117,110, 99, 39, 32,116,104,101,110, 10, 32, - 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, - 105,100, 32,102,117,110, 99,116,105,111,110, 32,114,101,116, - 117,114,110, 32,116,121,112,101, 58, 32, 34, 46, 46,115, 41, - 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,108,111, 99, 97, - 108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, - 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, - 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, - 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37, - 115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, - 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, - 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116, - 109,112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, - 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, - 39, 38, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, - 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, - 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, - 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112, - 101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, - 109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, - 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, - 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, - 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32, - 107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, - 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99, - 107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, - 32,116,121,112,101, 42, 42, 32,110, 97,109,101, 10, 32,116, - 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101, - 110,115, 40,115, 44, 39, 37, 42, 37,115, 42, 37, 42, 39, 41, - 10, 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, - 104,101,110, 10, 32, 32,105,102, 32,107,105,110,100, 32, 61, - 61, 32, 39,102,117,110, 99, 39, 32,116,104,101,110, 10, 32, - 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, - 105,100, 32,102,117,110, 99,116,105,111,110, 32,114,101,116, - 117,114,110, 32,116,121,112,101, 58, 32, 34, 46, 46,115, 41, - 10, 32, 32,101,110,100, 10, 32, 32, 45, 45,108,111, 99, 97, - 108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116, 91, 49, - 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, 32,108,111, - 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 95, 99, - 95,116,111,107,101,110,115, 40,116, 91, 49, 93, 44, 39, 37, - 115, 43, 39, 41, 10, 32, 32,114,101,116,117,114,110, 32, 95, - 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10, 32, 32, - 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 46, 46,116, - 109,112,100,101,102, 44, 10, 32, 32, 32,112,116,114, 32, 61, - 32, 39, 42, 39, 44, 10, 32, 32, 32,114,101,116, 32, 61, 32, - 39, 42, 39, 44, 10, 32, 32, 32, 45, 45,116,121,112,101, 32, - 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, - 97,116,101, 40,109, 91,109, 46,110, 93, 44, 32,116, 98, 44, - 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116,121,112, - 101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, - 109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, - 49, 44,109, 46,110, 45, 49, 41, 44, 10, 32, 32, 32,105,115, - 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105,115, - 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, 32, - 107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32,125, - 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99, - 107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111,100, - 32,116,121,112,101, 38, 32,110, 97,109,101, 10, 32,116, 32, - 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110, - 115, 40,115, 44, 39, 38, 39, 41, 10, 32,105,102, 32,116, 46, - 110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 32, 32, 45, - 45,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, - 116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, - 10, 32, 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112, - 108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, - 49, 93, 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116, - 117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111, - 110,123, 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, - 50, 93, 46, 46,116,109,112,100,101,102, 44, 10, 32, 32, 32, - 112,116,114, 32, 61, 32, 39, 38, 39, 44, 10, 32, 32, 32, 45, - 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108,100, - 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46,110, - 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, 10, - 32, 32, 32,116,121,112,101, 32, 61, 32,109, 91,109, 46,110, - 93, 44, 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, - 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 44, - 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116,101, - 114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116,101, - 114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107,105, - 110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, 45, - 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102,111,114, - 109, 58, 32,109,111,100, 32,116,121,112,101, 42, 32,110, 97, - 109,101, 10, 32,108,111, 99, 97,108, 32,115, 49, 32, 61, 32, - 103,115,117, 98, 40,115, 44, 34, 40, 37, 98, 92, 91, 92, 93, - 41, 34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, - 32,114,101,116,117,114,110, 32,103,115,117, 98, 40,110, 44, - 39, 37, 42, 39, 44, 39, 92, 49, 39, 41, 32,101,110,100, 41, - 10, 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116, - 111,107,101,110,115, 40,115, 49, 44, 39, 37, 42, 39, 41, 10, - 32,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104, - 101,110, 10, 32, 32,116, 91, 50, 93, 32, 61, 32,103,115,117, - 98, 40,116, 91, 50, 93, 44, 39, 92, 49, 39, 44, 39, 37, 42, - 39, 41, 32, 45, 45, 32,114,101,115,116,111,114,101, 32, 42, - 32,105,110, 32,100,105,109,101,110,115,105,111,110, 32,101, - 120,112,114,101,115,115,105,111,110, 10, 32, 32, 45, 45,108, - 111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40, - 116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, - 32,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105, - 116, 95, 99, 95,116,111,107,101,110,115, 40,116, 91, 49, 93, - 44, 39, 37,115, 43, 39, 41, 10, 32, 32,114,101,116,117,114, - 110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, - 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, - 46, 46,116,109,112,100,101,102, 44, 10, 32, 32, 32,112,116, - 114, 32, 61, 32, 39, 42, 39, 44, 10, 32, 32, 32,116,121,112, - 101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10, 32, 32, 32, - 45, 45,116,121,112,101, 32, 61, 32,114,101, 98,117,105,108, - 100, 95,116,101,109,112,108, 97,116,101, 40,109, 91,109, 46, - 110, 93, 44, 32,116, 98, 44, 32,116,105,109,112,108, 41, 44, - 10, 32, 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97, - 116, 40,109, 44, 49, 44,109, 46,110, 45, 49, 41, 32, 32, 32, - 44, 10, 32, 32, 32,105,115, 95,112, 97,114, 97,109,101,116, - 101,114, 32, 61, 32,105,115, 95,112, 97,114, 97,109,101,116, - 101,114, 44, 10, 32, 32, 32,107,105,110,100, 32, 61, 32,107, - 105,110,100, 10, 32, 32,125, 10, 32,101,110,100, 10, 10, 32, - 105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, - 39, 32,116,104,101,110, 10, 32, 32, 45, 45, 32, 99,104,101, - 99,107, 32,116,104,101, 32,102,111,114,109, 58, 32,109,111, - 100, 32,116,121,112,101, 32,110, 97,109,101, 10, 32, 32, 45, - 45,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39, 37, - 115, 37,115, 42, 39, 41, 10, 32, 32,116, 32, 61, 32,115,112, - 108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, 44, - 39, 37,115, 43, 39, 41, 10, 32, 32,108,111, 99, 97,108, 32, - 118, 10, 32, 32,105,102, 32,102,105,110,100,116,121,112,101, - 40,116, 91,116, 46,110, 93, 41, 32,116,104,101,110, 32,118, - 32, 61, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97, - 109,101, 40, 41, 32,101,108,115,101, 32,118, 32, 61, 32,116, - 91,116, 46,110, 93, 59, 32,116, 46,110, 32, 61, 32,116, 46, - 110, 45, 49, 32,101,110,100, 10, 32, 32,114,101,116,117,114, - 110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, - 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,118, 46, 46,116, - 109,112,100,101,102, 44, 10, 32, 32, 32, 45, 45,116,121,112, - 101, 32, 61, 32,114,101, 98,117,105,108,100, 95,116,101,109, - 112,108, 97,116,101, 40,116, 91,116, 46,110, 93, 44, 32,116, - 98, 44, 32,116,105,109,112,108, 41, 44, 10, 32, 32, 32,116, - 121,112,101, 32, 61, 32,116, 91,116, 46,110, 93, 44, 10, 32, - 32, 32,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40, - 116, 44, 49, 44,116, 46,110, 45, 49, 41, 44, 10, 32, 32, 32, - 105,115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32, - 105,115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, - 32, 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, - 32,125, 10, 10, 32,101,108,115,101, 32, 45, 45, 32,107,105, - 110,100, 32, 61, 61, 32, 34,102,117,110, 99, 34, 10, 10, 32, - 32, 45, 45, 32, 99,104,101, 99,107, 32,116,104,101, 32,102, - 111,114,109, 58, 32,109,111,100, 32,116,121,112,101, 32,110, - 97,109,101, 10, 32, 32, 45, 45,116, 32, 61, 32,115,112,108, - 105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10, 32, - 32,116, 32, 61, 32,115,112,108,105,116, 95, 99, 95,116,111, - 107,101,110,115, 40,115, 44, 39, 37,115, 43, 39, 41, 10, 32, - 32,108,111, 99, 97,108, 32,118, 32, 61, 32,116, 91,116, 46, - 110, 93, 32, 32, 45, 45, 32,108, 97,115,116, 32,119,111,114, - 100, 32,105,115, 32,116,104,101, 32,102,117,110, 99,116,105, - 111,110, 32,110, 97,109,101, 10, 32, 32,108,111, 99, 97,108, - 32,116,112, 44,109,100, 10, 32, 32,105,102, 32,116, 46,110, - 62, 49, 32,116,104,101,110, 10, 32, 32, 32,116,112, 32, 61, - 32,116, 91,116, 46,110, 45, 49, 93, 10, 32, 32, 32,109,100, - 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, - 46,110, 45, 50, 41, 10, 32, 32,101,110,100, 10, 32, 32, 45, - 45,105,102, 32,116,112, 32,116,104,101,110, 32,116,112, 32, - 61, 32,114,101, 98,117,105,108,100, 95,116,101,109,112,108, - 97,116,101, 40,116,112, 44, 32,116, 98, 44, 32,116,105,109, - 112,108, 41, 32,101,110,100, 10, 32, 32,114,101,116,117,114, - 110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, - 10, 32, 32, 32,110, 97,109,101, 32, 61, 32,118, 44, 10, 32, - 32, 32,116,121,112,101, 32, 61, 32,116,112, 44, 10, 32, 32, - 32,109,111,100, 32, 61, 32,109,100, 44, 10, 32, 32, 32,105, - 115, 95,112, 97,114, 97,109,101,116,101,114, 32, 61, 32,105, - 115, 95,112, 97,114, 97,109,101,116,101,114, 44, 10, 32, 32, - 32,107,105,110,100, 32, 61, 32,107,105,110,100, 10, 32, 32, - 125, 10, 32,101,110,100, 10, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/declaration.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,118, 97,114,105, 97, - 98,108,101, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, - 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, - 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, - 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, - 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, - 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, - 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, - 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, - 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, - 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, - 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, - 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, - 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, - 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, - 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, - 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, - 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, - 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, - 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, - 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, - 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, - 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, - 32, 86, 97,114,105, 97, 98,108,101, 32, 99,108, 97,115,115, - 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, - 97, 32,101,120,116,101,114,110, 32,118, 97,114,105, 97, 98, - 108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, 32, - 109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, 97, - 115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, 97, - 108,108, 32,102,105,101,108,100,115, 32,112,114,101,115,101, - 110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, 97, - 116,105,111,110, 46, 10, 99,108, 97,115,115, 86, 97,114,105, - 97, 98,108,101, 32, 61, 32,123, 10, 32, 95,103,101,116, 32, - 61, 32,123,125, 44, 32, 32, 32, 45, 45, 32,109, 97,112,112, - 101,100, 32,103,101,116, 32,102,117,110, 99,116,105,111,110, - 115, 10, 32, 95,115,101,116, 32, 61, 32,123,125, 44, 32, 32, - 32, 45, 45, 32,109, 97,112,112,101,100, 32,115,101,116, 32, - 102,117,110, 99,116,105,111,110,115, 10,125, 10, 99,108, 97, - 115,115, 86, 97,114,105, 97, 98,108,101, 46, 95, 95,105,110, - 100,101,120, 32, 61, 32, 99,108, 97,115,115, 86, 97,114,105, - 97, 98,108,101, 10,115,101,116,109,101,116, 97,116, 97, 98, - 108,101, 40, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, - 101, 44, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116, - 105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105,110,116, 32, - 109,101,116,104,111,100, 10,102,117,110, 99,116,105,111,110, - 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58, - 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, - 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, - 110,116, 46, 46, 34, 86, 97,114,105, 97, 98,108,101,123, 34, - 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115, - 101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, - 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, - 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97, - 109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, - 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,105,102, 32, - 115,101,108,102, 46,100,105,109, 32,116,104,101,110, 32,112, - 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100, - 105,109, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100, - 105,109, 46, 46, 34, 39, 44, 34, 41, 32,101,110,100, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 100,101,102, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, - 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, - 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101, - 116, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114, - 101,116, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110, - 116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99, - 108,111,115,101, 41, 10,101,110,100, 10, 10, 45, 45, 32, 71, - 101,110,101,114, 97,116,101,115, 32, 67, 32,102,117,110, 99, - 116,105,111,110, 32,110, 97,109,101, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, - 108,101, 58, 99,102,117,110, 99,110, 97,109,101, 32, 40,112, - 114,101,102,105,120, 41, 10, 32,108,111, 99, 97,108, 32,112, - 97,114,101,110,116, 32, 61, 32, 34, 34, 10, 32,108,111, 99, - 97,108, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, - 34, 10, 32,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, - 34, 34, 10, 10, 32,108,111, 99, 97,108, 32,112, 32, 61, 32, - 115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, 41, - 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109,101, - 115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108,102, - 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32,105,102, - 32,112, 32,116,104,101,110, 10, 32, 9,105,102, 32,115,101, - 108,102, 46,112, 97,114,101,110,116, 46, 99,108, 97,115,115, - 116,121,112,101, 32, 61, 61, 32, 39, 99,108, 97,115,115, 39, - 32,116,104,101,110, 10, 9, 9,112, 97,114,101,110,116, 32, - 61, 32, 34, 95, 34, 32, 46, 46, 32,115,101,108,102, 46,112, - 97,114,101,110,116, 46,116,121,112,101, 10, 9,101,108,115, - 101, 10, 9, 32, 32,112, 97,114,101,110,116, 32, 61, 32, 34, - 95, 34, 32, 46, 46, 32,112, 10, 9,101,110,100, 10, 32,101, - 110,100, 10, 10, 32,105,102, 32,115,116,114,102,105,110,100, - 40,115,101,108,102, 46,109,111,100, 44, 34, 40,117,110,115, - 105,103,110,101,100, 41, 34, 41, 32,116,104,101,110, 10, 32, - 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 95,117, - 110,115,105,103,110,101,100, 34, 10, 32,101,110,100, 10, 10, - 32,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, - 32, 34, 42, 34, 32,116,104,101,110, 32,112,116,114, 32, 61, - 32, 34, 95,112,116,114, 34, 10, 32,101,108,115,101,105,102, - 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 34, 38, - 34, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 34, 95, - 114,101,102, 34, 10, 32,101,110,100, 10, 10, 32,108,111, 99, - 97,108, 32,110, 97,109,101, 32, 61, 32, 32,112,114,101,102, - 105,120, 32, 46, 46, 32,112, 97,114,101,110,116, 32, 46, 46, - 32,117,110,115,105,103,110,101,100, 32, 46, 46, 32, 34, 95, - 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,108,102, 46, - 108,110, 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, - 97,109,101, 44, 34, 46, 42, 58, 58, 34, 44, 34, 34, 41, 32, - 46, 46, 32,112,116,114, 10, 10, 9,110, 97,109,101, 32, 61, - 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116,101, - 40,110, 97,109,101, 41, 10, 32,114,101,116,117,114,110, 32, - 110, 97,109,101, 10, 10,101,110,100, 10, 10, 45, 45, 32, 99, - 104,101, 99,107, 32,105,102, 32,105,116, 32,105,115, 32, 97, - 32,118, 97,114,105, 97, 98,108,101, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, - 108,101, 58,105,115,118, 97,114,105, 97, 98,108,101, 32, 40, - 41, 10, 32,114,101,116,117,114,110, 32,116,114,117,101, 10, - 101,110,100, 10, 10, 45, 45, 32,103,101,116, 32,118, 97,114, - 105, 97, 98,108,101, 32,118, 97,108,117,101, 10,102,117,110, - 99,116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, - 97, 98,108,101, 58,103,101,116,118, 97,108,117,101, 32, 40, - 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44, 32,112, - 114,111,112, 95,103,101,116, 41, 10, 10, 9,108,111, 99, 97, - 108, 32,110, 97,109,101, 10, 9,105,102, 32,112,114,111,112, - 95,103,101,116, 32,116,104,101,110, 10, 10, 9, 9,110, 97, - 109,101, 32, 61, 32,112,114,111,112, 95,103,101,116, 46, 46, - 34, 40, 41, 34, 10, 9,101,108,115,101, 10, 9, 9,110, 97, - 109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10, - 9,101,110,100, 10, 10, 9,105,102, 32, 99,108, 97,115,115, - 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101, - 110, 10, 9, 32,114,101,116,117,114,110, 32,115,101,108,102, - 46,112, 97,114,101,110,116, 46,116,121,112,101, 46, 46, 39, - 58, 58, 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, - 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 9, - 32,114,101,116,117,114,110, 32, 39,115,101,108,102, 45, 62, - 39, 46, 46,110, 97,109,101, 10, 9,101,108,115,101, 10, 9, - 32,114,101,116,117,114,110, 32,110, 97,109,101, 10, 9,101, - 110,100, 10,101,110,100, 10, 10, 45, 45, 32,103,101,116, 32, - 118, 97,114,105, 97, 98,108,101, 32,112,111,105,110,116,101, - 114, 32,118, 97,108,117,101, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, - 58,103,101,116,112,111,105,110,116,101,114,118, 97,108,117, - 101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, - 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, - 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, - 114,101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, - 58, 58,112, 39, 10, 32,101,108,115,101,105,102, 32, 99,108, - 97,115,115, 32,116,104,101,110, 10, 32, 32,114,101,116,117, - 114,110, 32, 39,115,101,108,102, 45, 62,112, 39, 10, 32,101, - 108,115,101, 10, 32, 32,114,101,116,117,114,110, 32, 39,112, - 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, - 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32,102, - 117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116,105, - 111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, - 101, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10, 10, 32, - 108,111, 99, 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115, - 101,108,102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, - 9,108,111, 99, 97,108, 32,112,114,111,112, 95,103,101,116, - 44,112,114,111,112, 95,115,101,116, 10, 9,105,102, 32,115, - 116,114,105,110,103, 46,102,105,110,100, 40,115,101,108,102, - 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95,112,114, - 111,112,101,114,116,121, 39, 41, 32,116,104,101,110, 10, 10, - 9, 9,108,111, 99, 97,108, 32, 95, 44, 95, 44,116,121,112, - 101, 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, - 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, - 117, 97, 95,112,114,111,112,101,114,116,121, 95, 95, 40, 91, - 94, 37,115, 93, 42, 41, 34, 41, 10, 9, 9,116,121,112,101, - 32, 61, 32,116,121,112,101, 32,111,114, 32, 34,100,101,102, - 97,117,108,116, 34, 10, 9, 9,112,114,111,112, 95,103,101, - 116, 44,112,114,111,112, 95,115,101,116, 32, 61, 32,103,101, - 116, 95,112,114,111,112,101,114,116,121, 95,109,101,116,104, - 111,100,115, 40,116,121,112,101, 44, 32,115,101,108,102, 46, - 110, 97,109,101, 41, 10, 9, 9,115,101,108,102, 46,109,111, - 100, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, - 40,115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108, - 117, 97, 95,112,114,111,112,101,114,116,121, 91, 94, 37,115, - 93, 42, 34, 44, 32, 34, 34, 41, 10, 9,101,110,100, 10, 10, - 32, 45, 45, 32,103,101,116, 32,102,117,110, 99,116,105,111, - 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, - 32,116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, - 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,111, - 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, - 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97, - 115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, - 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,103, - 101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115, - 101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, - 10, 32,101,110,100, 10, 32,115,101,108,102, 46, 99,103,101, - 116,110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102, - 117,110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95, - 103,101,116, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, - 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, - 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, - 99,103,101,116,110, 97,109,101, 41, 10, 32,111,117,116,112, - 117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32,105,110, - 116, 34, 44,115,101,108,102, 46, 99,103,101,116,110, 97,109, - 101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, - 116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116, - 112,117,116, 40, 34,123, 34, 41, 10, 10, 32, 45, 45, 32,100, - 101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105,102, - 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, 99, 97, - 108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32, - 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, - 100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, - 39, 41, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, - 100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116, - 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, - 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, - 121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, - 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, 40, - 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, - 121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, - 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32,103, - 101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, 40, - 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, - 101, 41, 10, 32, 32,111,117,116,112,117,116, 40,116,111, 95, - 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, - 49, 44, 48, 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, - 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, - 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32, - 115,116,114,102,105,110,100, 40,115,101,108,102, 46,109,111, - 100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, - 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, - 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108, - 102, 32,118, 97,108,117,101, 10, 32,105,102, 32, 99,108, 97, - 115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, - 110,105,108, 32,116,104,101,110, 10, 9, 32,111,117,116,112, - 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, - 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, - 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, - 40, 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101, - 114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,105, - 110,118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, - 32,105,110, 32, 97, 99, 99,101,115,115,105,110,103, 32,118, - 97,114,105, 97, 98,108,101, 32, 92, 39, 39, 46, 46,115,101, - 108,102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, - 85, 76, 76, 41, 59, 39, 41, 59, 10, 9, 9,111,117,116,112, - 117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, - 32,101,110,100, 10, 10, 32, 45, 45, 32,114,101,116,117,114, - 110, 32,118, 97,108,117,101, 10, 32,105,102, 32,115,116,114, - 105,110,103, 46,102,105,110,100, 40,115,101,108,102, 46,109, - 111,100, 44, 32, 39,116,111,108,117, 97, 95,105,110,104,101, - 114,105,116,115, 39, 41, 32,116,104,101,110, 10, 9,108,111, - 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, 61, - 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99,116, - 105,111,110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, - 32, 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101, - 102, 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, - 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 39, - 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111, - 108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41,115,116, - 97,116,105, 99, 95, 99, 97,115,116, 60, 39, 46, 46,115,101, - 108,102, 46,116,121,112,101, 46, 46, 39, 42, 62, 40,115,101, - 108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121, - 112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112, - 117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, 9, - 111,117,116,112,117,116, 40, 39, 32, 32, 39, 44,112,117,115, - 104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, - 83, 44, 40,118,111,105,100, 42, 41, 40, 40, 39, 46, 46,115, - 101,108,102, 46,116,121,112,101, 46, 46, 39, 42, 41,115,101, - 108,102, 41, 44, 32, 34, 39, 44,115,101,108,102, 46,116,121, - 112,101, 44, 39, 34, 41, 59, 39, 41, 10, 9,111,117,116,112, - 117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, - 32,101,108,115,101, 10, 9,108,111, 99, 97,108, 32,116, 44, - 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101, - 108,102, 46,116,121,112,101, 41, 10, 9,105,102, 32,116, 32, - 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 39, - 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46, - 116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, - 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103, - 101,116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115, - 116, 97,116,105, 99, 44,112,114,111,112, 95,103,101,116, 41, - 46, 46, 39, 41, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, - 9,108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, - 99, 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117, - 110, 99,116,105,111,110, 40,115,101,108,102, 46,116,121,112, - 101, 41, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46,116, - 121,112,101, 10, 9, 9,105,102, 32,115,101,108,102, 46,112, - 116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115,101, - 108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104, - 101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, - 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, - 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, - 38, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, - 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, - 44,112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 44, 34, - 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108, - 115,101, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, - 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, - 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, - 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108,117, - 101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 44, - 112,114,111,112, 95,103,101,116, 41, 46, 46, 39, 44, 34, 39, - 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,110,100, - 10, 9,101,110,100, 10, 32,101,110,100, 10, 32,111,117,116, - 112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, - 39, 41, 10, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, - 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105, - 102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, - 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, - 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, - 32, 45, 45, 32,115,101,116, 32,102,117,110, 99,116,105,111, - 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 10, 32,105,102, 32,110,111,116, 32, 40, - 115,116,114,102,105,110,100, 40,115,101,108,102, 46,116,121, - 112,101, 44, 39, 99,111,110,115,116, 37,115, 43, 39, 41, 32, - 111,114, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, - 115,101,108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, - 97, 95,114,101, 97,100,111,110,108,121, 39, 41, 32,111,114, - 32,115,116,114,105,110,103, 46,102,105,110,100, 40,115,101, - 108,102, 46,109,111,100, 44, 32, 39,116,111,108,117, 97, 95, - 105,110,104,101,114,105,116,115, 39, 41, 41, 32, 32,116,104, - 101,110, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,116, - 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, - 47, 42, 32,115,101,116, 32,102,117,110, 99,116,105,111,110, - 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32, - 111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115, - 115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32,101,108,115,101, - 10, 32, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32, - 115,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44, - 115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, - 41, 10, 32, 32,101,110,100, 10, 32, 32,115,101,108,102, 46, - 99,115,101,116,110, 97,109,101, 32, 61, 32,115,101,108,102, - 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116,111,108, - 117, 97, 95,115,101,116, 34, 41, 10, 32, 32,111,117,116,112, - 117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, 79, 76, - 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, 46,115, - 101,108,102, 46, 99,115,101,116,110, 97,109,101, 41, 10, 32, - 32,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116, - 105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,115, - 101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, - 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, - 10, 32, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, - 10, 32, 32, 45, 45, 32,100,101, 99,108, 97,114,101, 32,115, - 101,108,102, 44, 32,105,102, 32,116,104,101, 32, 99, 97,115, - 101, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110, - 100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116, - 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, - 32, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46, - 116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, - 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, - 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101,110,116, - 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, 32, 32, - 32,108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, - 61, 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105, - 111,110, 40,115,101,108,102, 46,112, 97,114,101,110,116, 46, - 116,121,112,101, 41, 10, 32, 32, 32,111,117,116,112,117,116, - 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, - 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 32, 32, 32, - 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 32,118, - 97,108,117,101, 10, 9, 9,101,110,100, 10, 32, 32, 45, 45, - 32, 99,104,101, 99,107, 32,116,121,112,101,115, 10, 9, 9, - 111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102, - 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92, - 110, 39, 41, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, - 32,116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111, - 108,117, 97, 95,101,114,114, 59, 39, 41, 10, 32, 32,105,102, - 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116, - 105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, 32, 32, - 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, - 33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114, - 114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,105,110, - 118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32, - 105,110, 32, 97, 99, 99,101,115,115,105,110,103, 32,118, 97, - 114,105, 97, 98,108,101, 32, 92, 39, 39, 46, 46,115,101,108, - 102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85, - 76, 76, 41, 59, 39, 41, 59, 10, 32, 32,101,108,115,101,105, - 102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, - 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32, - 61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, - 109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, - 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, 32, 32,101, - 110,100, 10, 10, 32, 32, 45, 45, 32, 99,104,101, 99,107, 32, - 118, 97,114,105, 97, 98,108,101, 32,116,121,112,101, 10, 32, - 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, 32, 40, - 39, 46, 46,115,101,108,102, 58,111,117,116, 99,104,101, 99, - 107,116,121,112,101, 40, 50, 41, 46, 46, 39, 41, 39, 41, 10, - 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111, - 108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, - 95, 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116, - 121,112,101, 32,105,110, 32,118, 97,114,105, 97, 98,108,101, - 32, 97,115,115,105,103,110,109,101,110,116, 46, 34, 44, 38, - 116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9, - 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, - 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115,115,105, - 103,110, 32,118, 97,108,117,101, 10, 9, 9,108,111, 99, 97, - 108, 32,100,101,102, 32, 61, 32, 48, 10, 9, 9,105,102, 32, - 115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32, - 116,104,101,110, 32,100,101,102, 32, 61, 32,115,101,108,102, - 46,100,101,102, 32,101,110,100, 10, 9, 9,105,102, 32,115, - 101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, - 97,114, 42, 39, 32, 97,110,100, 32,115,101,108,102, 46,100, - 105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32, 45, - 45, 32,105,115, 32,115,116,114,105,110,103, 10, 9, 9, 32, - 111,117,116,112,117,116, 40, 39, 32,115,116,114,110, 99,112, - 121, 40, 39, 41, 10, 9, 9, 9,105,102, 32, 99,108, 97,115, - 115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104, - 101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115, - 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, - 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97, - 109,101, 41, 10, 9, 9, 9,101,108,115,101,105,102, 32, 99, - 108, 97,115,115, 32,116,104,101,110, 10, 9, 9, 9, 9,111, - 117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, - 46,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9, - 101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, - 40,115,101,108,102, 46,110, 97,109,101, 41, 10, 9, 9, 9, - 101,110,100, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, - 44,116,111,108,117, 97, 95,116,111,115,116,114,105,110,103, - 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, 44,100,101, - 102, 44, 39, 41, 44, 39, 44,115,101,108,102, 46,100,105,109, - 44, 39, 45, 49, 41, 59, 39, 41, 10, 9, 9,101,108,115,101, - 10, 9, 9, 9,108,111, 99, 97,108, 32,112,116,114, 32, 61, - 32, 39, 39, 10, 9, 9, 9,105,102, 32,115,101,108,102, 46, - 112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,116, - 114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10, 9, 9, 9, - 111,117,116,112,117,116, 40, 39, 32, 39, 41, 10, 9, 9, 9, - 108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32,112,114, - 111,112, 95,115,101,116, 32,111,114, 32,115,101,108,102, 46, - 110, 97,109,101, 10, 9, 9, 9,105,102, 32, 99,108, 97,115, - 115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104, - 101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40,115, - 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, - 46, 46, 39, 58, 58, 39, 46, 46,110, 97,109,101, 41, 10, 9, - 9, 9,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, - 116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112,117,116, - 40, 39,115,101,108,102, 45, 62, 39, 46, 46,110, 97,109,101, - 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111, - 117,116,112,117,116, 40,110, 97,109,101, 41, 10, 9, 9, 9, - 101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,116, 32, - 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46, - 116,121,112,101, 41, 10, 9, 9, 9,105,102, 32,112,114,111, - 112, 95,115,101,116, 32,116,104,101,110, 10, 9, 9, 9, 9, - 111,117,116,112,117,116, 40, 39, 40, 39, 41, 10, 9, 9, 9, - 101,108,115,101, 10, 9, 9, 9, 9,111,117,116,112,117,116, - 40, 39, 32, 61, 32, 39, 41, 10, 9, 9, 9,101,110,100, 10, - 9, 9, 9,105,102, 32,110,111,116, 32,116, 32, 97,110,100, - 32,112,116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111, - 117,116,112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10, - 9, 9, 9,111,117,116,112,117,116, 40, 39, 40, 40, 39, 44, - 115,101,108,102, 46,109,111,100, 44,115,101,108,102, 46,116, - 121,112,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116, 32, - 116, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,112, - 117,116, 40, 39, 42, 39, 41, 10, 9, 9, 9,101,110,100, 10, - 9, 9, 9,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, - 10, 9, 9, 9,105,102, 32,116, 32,116,104,101,110, 10, 9, - 9, 9, 9,105,102, 32,105,115,101,110,117,109, 40,115,101, - 108,102, 46,116,121,112,101, 41, 32,116,104,101,110, 10, 9, - 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 40,105,110, - 116, 41, 32, 39, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, - 9, 9, 9,111,117,116,112,117,116, 40, 39,116,111,108,117, - 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, - 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, - 39, 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, - 108,111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, - 32,103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111, - 110, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 9, 9, - 9, 9,111,117,116,112,117,116, 40,116,111, 95,102,117,110, - 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 39, - 44,100,101,102, 44, 39, 41, 41, 39, 41, 10, 9, 9, 9,101, - 110,100, 10, 9, 9, 9,105,102, 32,112,114,111,112, 95,115, - 101,116, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116, - 112,117,116, 40, 34, 41, 34, 41, 10, 9, 9, 9,101,110,100, - 10, 9, 9, 9,111,117,116,112,117,116, 40, 34, 59, 34, 41, - 10, 9, 9,101,110,100, 10, 32, 32,111,117,116,112,117,116, - 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10, - 32, 32,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 32, - 32,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, - 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, - 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, 10, 32, - 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 32, - 101,110,100, 10, 10,101,110,100, 10, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98, - 108,101, 58,114,101,103,105,115,116,101,114, 32, 40,112,114, - 101, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101,108, - 102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, 95, - 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, 9, - 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 32,112, - 114,101, 32, 61, 32,112,114,101, 32,111,114, 32, 39, 39, 10, - 32,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, - 32,115,101,108,102, 58,105,110,109,111,100,117,108,101, 40, - 41, 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109, - 101,115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108, - 102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 32,105,102, - 32,110,111,116, 32,112, 97,114,101,110,116, 32,116,104,101, - 110, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 86, 97,114, - 105, 97, 98,108,101, 46, 95,119, 97,114,110,105,110,103, 61, - 61,110,105,108, 32,116,104,101,110, 10, 32, 32, 32,119, 97, - 114,110,105,110,103, 40, 34, 77, 97,112,112,105,110,103, 32, - 118, 97,114,105, 97, 98,108,101, 32,116,111, 32,103,108,111, - 98, 97,108, 32,109, 97,121, 32,100,101,103,114, 97,100,101, - 32,112,101,114,102,111,114,109, 97,110, 99,101, 34, 41, 10, - 32, 32, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108, - 101, 46, 95,119, 97,114,110,105,110,103, 32, 61, 32, 49, 10, - 32, 32,101,110,100, 10, 32,101,110,100, 10, 32,105,102, 32, - 115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32,116, - 104,101,110, 10, 32, 32,111,117,116,112,117,116, 40,112,114, - 101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114,105, 97, - 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, - 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, - 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110, 97, - 109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46, 99, - 115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10, - 32,101,108,115,101, 10, 32, 32,111,117,116,112,117,116, 40, - 112,114,101, 46, 46, 39,116,111,108,117, 97, 95,118, 97,114, - 105, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, - 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, - 39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116, - 110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, 76, 41, 59, 39, - 41, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, - 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, - 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, - 95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, 41, 10, 32, - 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, - 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 41, 10, - 32, 97,112,112,101,110,100, 40,116, 41, 10, 32,114,101,116, - 117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67, - 111,110,115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69, - 120,112,101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, - 32,114,101,112,114,101,115,101,110,116,105,110,103, 32,116, - 104,101, 32,118, 97,114,105, 97, 98,108,101, 32,100,101, 99, - 108, 97,114, 97,116,105,111,110, 46, 10,102,117,110, 99,116, - 105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,115, - 41, 10, 32,114,101,116,117,114,110, 32, 95, 86, 97,114,105, - 97, 98,108,101, 32, 40, 68,101, 99,108, 97,114, 97,116,105, - 111,110, 40,115, 44, 39,118, 97,114, 39, 41, 41, 10,101,110, - 100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/variable.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32, 97,114,114, 97,121, - 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, - 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, - 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, - 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, - 108, 32, 49, 57, 57, 57, 10, 45, 45, 32, 36, 73,100, 58, 32, - 97,114,114, 97,121, 46,108,117, 97, 44,118, 32, 49, 46, 49, - 32, 50, 48, 48, 48, 47, 49, 49, 47, 48, 54, 32, 50, 50, 58, - 48, 51, 58, 53, 55, 32, 99,101,108,101,115, 32, 69,120,112, - 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100, - 101, 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, - 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101, - 100,105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97, - 110,100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, - 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97, - 114,101, 32,112,114,111,118,105,100,101,100, 32,104,101,114, - 101,117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, - 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, - 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116, - 104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105, - 103, 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105, - 100,101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, - 32,115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116, - 101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109, - 101,110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, - 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 65, - 114,114, 97,121, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82, - 101,112,114,101,115,101,110,116,115, 32, 97, 32,101,120,116, - 101,114,110, 32, 97,114,114, 97,121, 32,118, 97,114,105, 97, - 98,108,101, 32,111,114, 32, 97, 32,112,117, 98,108,105, 99, - 32,109,101,109, 98,101,114, 32,111,102, 32, 97, 32, 99,108, - 97,115,115, 46, 10, 45, 45, 32, 83,116,111,114,101,115, 32, - 97,108,108, 32,102,105,101,108,100,115, 32,112,114,101,115, - 101,110,116, 32,105,110, 32, 97, 32,100,101, 99,108, 97,114, - 97,116,105,111,110, 46, 10, 99,108, 97,115,115, 65,114,114, - 97,121, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 65, - 114,114, 97,121, 46, 95, 95,105,110,100,101,120, 32, 61, 32, - 99,108, 97,115,115, 65,114,114, 97,121, 10,115,101,116,109, - 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 65, - 114,114, 97,121, 44, 99,108, 97,115,115, 68,101, 99,108, 97, - 114, 97,116,105,111,110, 41, 10, 10, 45, 45, 32, 80,114,105, - 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, - 112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108, - 111,115,101, 41, 10, 32,112,114,105,110,116, 40,105,100,101, - 110,116, 46, 46, 34, 65,114,114, 97,121,123, 34, 41, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 109,111,100, 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, - 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114, - 105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121, - 112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116, - 121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105, - 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, - 32, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116, - 114, 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, - 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, - 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,101, - 46, 46, 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40, - 105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 32, 61, - 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, - 34, 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, - 101,110,116, 46, 46, 34, 32,100,105,109, 32, 32, 61, 32, 39, - 34, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39, - 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, - 116, 46, 46, 34, 32,114,101,116, 32, 32, 61, 32, 39, 34, 46, - 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, - 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, - 100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, 32, - 105,116, 32,105,115, 32, 97, 32,118, 97,114,105, 97, 98,108, - 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, - 115, 65,114,114, 97,121, 58,105,115,118, 97,114,105, 97, 98, - 108,101, 32, 40, 41, 10, 32,114,101,116,117,114,110, 32,116, - 114,117,101, 10,101,110,100, 10, 10, 10, 45, 45, 32,103,101, - 116, 32,118, 97,114,105, 97, 98,108,101, 32,118, 97,108,117, - 101, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, - 115, 65,114,114, 97,121, 58,103,101,116,118, 97,108,117,101, - 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, 41, - 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32, - 115,116, 97,116,105, 99, 32,116,104,101,110, 10, 32, 32,114, - 101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, - 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, - 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, - 10, 32,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, - 116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, 39, - 115,101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, - 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, - 100,101,120, 93, 39, 10, 32,101,108,115,101, 10, 32, 32,114, - 101,116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101, - 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120, - 93, 39, 10, 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, - 32, 87,114,105,116,101, 32, 98,105,110,100,105,110,103, 32, - 102,117,110, 99,116,105,111,110,115, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58, - 115,117,112, 99,111,100,101, 32, 40, 41, 10, 32,108,111, 99, - 97,108, 32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, - 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10, 32, 45, 45, - 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 32, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104, - 101,110, 10, 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, - 32,103,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, - 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, - 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, - 34, 32, 42, 47, 34, 41, 10, 32,101,108,115,101, 10, 32, 32, - 111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116, 32, - 102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, - 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101, - 110,100, 10, 32,115,101,108,102, 46, 99,103,101,116,110, 97, - 109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99, - 110, 97,109,101, 40, 34,116,111,108,117, 97, 95,103,101,116, - 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, 35,105,102, - 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, - 66, 76, 69, 95, 34, 46, 46,115,101,108,102, 46, 99,103,101, - 116,110, 97,109,101, 41, 10, 32,111,117,116,112,117,116, 40, - 34, 92,110,115,116, 97,116,105, 99, 32,105,110,116, 34, 44, - 115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 44, 34, - 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108, - 117, 97, 95, 83, 41, 34, 41, 10, 32,111,117,116,112,117,116, - 40, 34,123, 34, 41, 10, 32,111,117,116,112,117,116, 40, 34, - 32,105,110,116, 32,116,111,108,117, 97, 95,105,110,100,101, - 120, 59, 34, 41, 10, 10, 32, 45, 45, 32,100,101, 99,108, 97, - 114,101, 32,115,101,108,102, 44, 32,105,102, 32,116,104,101, - 32, 99, 97,115,101, 10, 32,108,111, 99, 97,108, 32, 95, 44, - 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116,114,102, - 105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, 94, - 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, 10, 32, - 105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, - 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101,110, 10, - 32, 32,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101, - 108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 44, - 39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41, 10, 32, 32, - 111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117, - 115,104,115,116,114,105,110,103, 40,116,111,108,117, 97, 95, - 83, 44, 34, 46,115,101,108,102, 34, 41, 59, 39, 41, 10, 32, - 32,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,114, - 97,119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, - 41, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, - 32,115,101,108,102, 32, 61, 32, 39, 41, 10, 32, 32,111,117, - 116,112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, - 97,114,101,110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, - 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39,108,117, - 97, 95,116,111,117,115,101,114,100, 97,116, 97, 40,116,111, - 108,117, 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32,101, - 108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104, - 101,110, 10, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, - 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, - 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, - 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, - 32,101,110,100, 10, 10, 32, 45, 45, 32, 99,104,101, 99,107, - 32,105,110,100,101,120, 10, 9,111,117,116,112,117,116, 40, - 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, - 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,111,117, - 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 9,111,117,116, - 112,117,116, 40, 39, 32, 32,116,111,108,117, 97, 95, 69,114, - 114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39, - 41, 10, 32,111,117,116,112,117,116, 40, 39, 32, 32,105,102, - 32, 40, 33,116,111,108,117, 97, 95,105,115,110,117,109, 98, - 101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 44, - 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39, 41, 10, - 32,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111,108, - 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, - 83, 44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121, - 112,101, 32,105,110, 32, 97,114,114, 97,121, 32,105,110,100, - 101,120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95, - 101,114,114, 41, 59, 39, 41, 10, 9,111,117,116,112,117,116, - 40, 39, 32,125, 39, 41, 10, 9,111,117,116,112,117,116, 40, - 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,105,102, - 32,102,108, 97,103,115, 91, 39, 49, 39, 93, 32,116,104,101, - 110, 32, 45, 45, 32,102,111,114, 32, 99,111,109,112, 97,116, - 105, 98,105,108,105,116,121, 32,119,105,116,104, 32,116,111, - 108,117, 97, 53, 32, 63, 10, 9, 9,111,117,116,112,117,116, - 40, 39, 32,116,111,108,117, 97, 95,105,110,100,101,120, 32, - 61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111, - 110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, - 50, 44, 48, 41, 45, 49, 59, 39, 41, 10, 9,101,108,115,101, - 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111,108, - 117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, - 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, - 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, - 41, 10, 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, - 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, - 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, - 32,115,101,108,102, 46,100,105,109, 32, 97,110,100, 32,115, - 101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116, - 104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, - 32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101, - 120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110, - 100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105, - 109, 46, 46, 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, - 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, - 116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, - 41, 10, 9,101,110,100, 10, 32,111,117,116,112,117,116, 40, - 39, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40, - 116,111,108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32, - 105,110,100,101,120,105,110,103, 32,111,117,116, 32,111,102, - 32,114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, - 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110, - 100,105,102, 92,110, 39, 41, 10, 10, 32, 45, 45, 32,114,101, - 116,117,114,110, 32,118, 97,108,117,101, 10, 32,108,111, 99, - 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115, - 105, 99, 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, - 108,111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, - 32, 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, - 99,116,105,111,110, 40,116, 41, 10, 32,105,102, 32,116, 32, - 116,104,101,110, 10, 32, 32,111,117,116,112,117,116, 40, 39, - 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, - 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, - 99,116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103,101, - 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, - 97,116,105, 99, 41, 46, 46, 39, 41, 59, 39, 41, 10, 32,101, - 108,115,101, 10, 9, 9,116, 32, 61, 32,115,101,108,102, 46, - 116,121,112,101, 10, 32, 32,105,102, 32,115,101,108,102, 46, - 112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115, - 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116, - 104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, 40, 39, - 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, - 116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, 41, - 38, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108, - 117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99, - 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, - 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116, - 112,117,116, 40, 39, 32, 39, 44,112,117,115,104, 95,102,117, - 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118, - 111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 58,103,101, - 116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, - 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, - 34, 41, 59, 39, 41, 10, 32, 32,101,110,100, 10, 32,101,110, - 100, 10, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, - 117,114,110, 32, 49, 59, 39, 41, 10, 32,111,117,116,112,117, - 116, 40, 39,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, - 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102,110,100, - 101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, - 69, 92,110, 39, 41, 10, 32,111,117,116,112,117,116, 40, 39, - 92,110, 39, 41, 10, 10, 32, 45, 45, 32,115,101,116, 32,102, - 117,110, 99,116,105,111,110, 32, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 32,105,102, - 32,110,111,116, 32,115,116,114,102,105,110,100, 40,115,101, - 108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 39, - 41, 32,116,104,101,110, 10, 32, 32,105,102, 32, 99,108, 97, - 115,115, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112, - 117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110, 99, - 116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109, - 101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, - 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, 32, 32, - 101,108,115,101, 10, 32, 32, 32,111,117,116,112,117,116, 40, - 34, 47, 42, 32,115,101,116, 32,102,117,110, 99,116,105,111, - 110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, - 32, 42, 47, 34, 41, 10, 32, 32,101,110,100, 10, 32, 32,115, - 101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61, 32, - 115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101, 40, - 34,116,111,108,117, 97, 95,115,101,116, 34, 41, 10, 32, 32, - 111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101,102, - 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, - 34, 46, 46,115,101,108,102, 46, 99,115,101,116,110, 97,109, - 101, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, 92,110, - 115,116, 97,116,105, 99, 32,105,110,116, 34, 44,115,101,108, - 102, 46, 99,115,101,116,110, 97,109,101, 44, 34, 40,108,117, - 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, - 83, 41, 34, 41, 10, 32, 32,111,117,116,112,117,116, 40, 34, - 123, 34, 41, 10, 10, 32, 32, 45, 45, 32,100,101, 99,108, 97, - 114,101, 32,105,110,100,101,120, 10, 32, 32,111,117,116,112, - 117,116, 40, 39, 32,105,110,116, 32,116,111,108,117, 97, 95, - 105,110,100,101,120, 59, 39, 41, 10, 10, 32, 32, 45, 45, 32, - 100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32,105, - 102, 32,116,104,101, 32, 99, 97,115,101, 10, 32, 32,108,111, - 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32, - 61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46, - 109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105, - 99, 41, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, - 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105, - 108, 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117, - 116, 40, 39, 32, 39, 44,115,101,108,102, 46,112, 97,114,101, - 110,116, 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101, - 108,102, 59, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, - 40, 39, 32,108,117, 97, 95,112,117,115,104,115,116,114,105, - 110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101, - 108,102, 34, 41, 59, 39, 41, 10, 32, 32, 32,111,117,116,112, - 117,116, 40, 39, 32,108,117, 97, 95,114, 97,119,103,101,116, - 40,116,111,108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10, - 32, 32, 32,111,117,116,112,117,116, 40, 39, 32,115,101,108, - 102, 32, 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117, - 116, 40, 39, 40, 39, 44,115,101,108,102, 46,112, 97,114,101, - 110,116, 46,116,121,112,101, 44, 39, 42, 41, 32, 39, 41, 10, - 32, 32, 32,111,117,116,112,117,116, 40, 39,108,117, 97, 95, - 116,111,117,115,101,114,100, 97,116, 97, 40,116,111,108,117, - 97, 95, 83, 44, 45, 49, 41, 59, 39, 41, 10, 32, 32,101,108, - 115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101, - 110, 10, 32, 32, 32, 95, 44, 95, 44,115,101,108,102, 46,109, - 111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,115,101, - 108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,116, 97, - 116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10, - 32, 32,101,110,100, 10, 10, 32, 32, 45, 45, 32, 99,104,101, - 99,107, 32,105,110,100,101,120, 10, 9, 32,111,117,116,112, - 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, - 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, - 9, 32,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10, - 9, 32,111,117,116,112,117,116, 40, 39, 32, 32,116,111,108, - 117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95, - 101,114,114, 59, 39, 41, 10, 32, 32,111,117,116,112,117,116, - 40, 39, 32, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95, - 105,115,110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, - 83, 44, 50, 44, 48, 44, 38,116,111,108,117, 97, 95,101,114, - 114, 41, 41, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, - 39, 32, 32, 32,116,111,108,117, 97, 95,101,114,114,111,114, - 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118, - 97,108,105,100, 32,116,121,112,101, 32,105,110, 32, 97,114, - 114, 97,121, 32,105,110,100,101,120,105,110,103, 46, 34, 44, - 38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, - 9, 9,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, - 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100,105, - 102, 92,110, 39, 41, 10, 10, 9,105,102, 32,102,108, 97,103, - 115, 91, 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32, - 102,111,114, 32, 99,111,109,112, 97,116,105, 98,105,108,105, - 116,121, 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, - 63, 10, 9, 9,111,117,116,112,117,116, 40, 39, 32,116,111, - 108,117, 97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110, - 116, 41,116,111,108,117, 97, 95,116,111,110,117,109, 98,101, - 114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, - 49, 59, 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117, - 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,105,110, - 100,101,120, 32, 61, 32, 40,105,110,116, 41,116,111,108,117, - 97, 95,116,111,110,117,109, 98,101,114, 40,116,111,108,117, - 97, 95, 83, 44, 50, 44, 48, 41, 59, 39, 41, 10, 9,101,110, - 100, 10, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105, - 102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, - 69, 65, 83, 69, 92,110, 39, 41, 10, 9,105,102, 32,115,101, - 108,102, 46,100,105,109, 32, 97,110,100, 32,115,101,108,102, - 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, - 10, 9, 32, 32,111,117,116,112,117,116, 40, 39, 32,105,102, - 32, 40,116,111,108,117, 97, 95,105,110,100,101,120, 60, 48, - 32,124,124, 32,116,111,108,117, 97, 95,105,110,100,101,120, - 62, 61, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, - 39, 41, 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,111, - 117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108, - 117, 97, 95,105,110,100,101,120, 60, 48, 41, 39, 41, 10, 9, - 101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, - 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, - 108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32,105,110, - 100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,114, - 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, - 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, - 105,102, 92,110, 39, 41, 10, 10, 32, 32, 45, 45, 32, 97,115, - 115,105,103,110, 32,118, 97,108,117,101, 10, 32, 32,108,111, - 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10, 32, 32, - 105,102, 32,115,101,108,102, 46,112,116,114,126, 61, 39, 39, - 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39, 42, 39, - 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, - 32, 39, 41, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32, - 97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, - 10, 32, 32, 32,111,117,116,112,117,116, 40, 99,108, 97,115, - 115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, - 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110, - 100,101,120, 93, 39, 41, 10, 32, 32,101,108,115,101,105,102, - 32, 99,108, 97,115,115, 32,116,104,101,110, 10, 32, 32, 32, - 111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62, 39, - 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, - 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, - 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112,117, - 116, 40,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91, - 116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 41, 10, - 32, 32,101,110,100, 10, 32, 32,108,111, 99, 97,108, 32,116, - 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, - 46,116,121,112,101, 41, 10, 32, 32,111,117,116,112,117,116, - 40, 39, 32, 61, 32, 39, 41, 10, 32, 32,105,102, 32,110,111, - 116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, - 32,116,104,101,110, 32,111,117,116,112,117,116, 40, 39, 42, - 39, 41, 32,101,110,100, 10, 32, 32,111,117,116,112,117,116, - 40, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44, - 115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32,105,102, - 32,110,111,116, 32,116, 32,116,104,101,110, 10, 32, 32, 32, - 111,117,116,112,117,116, 40, 39, 42, 39, 41, 10, 32, 32,101, - 110,100, 10, 32, 32,111,117,116,112,117,116, 40, 39, 41, 32, - 39, 41, 10, 32, 32,108,111, 99, 97,108, 32,100,101,102, 32, - 61, 32, 48, 10, 32, 32,105,102, 32,115,101,108,102, 46,100, - 101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100, - 101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101, - 110,100, 10, 32, 32,105,102, 32,116, 32,116,104,101,110, 10, - 32, 32, 32,111,117,116,112,117,116, 40, 39,116,111,108,117, - 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, - 97, 95, 83, 44, 51, 44, 39, 44,100,101,102, 44, 39, 41, 41, - 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32,108, - 111, 99, 97,108, 32,116,111, 95,102,117,110, 99, 32, 61, 32, - 103,101,116, 95,116,111, 95,102,117,110, 99,116,105,111,110, - 40,115,101,108,102, 46,116,121,112,101, 41, 10, 32, 32, 32, - 111,117,116,112,117,116, 40,116,111, 95,102,117,110, 99, 44, - 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39, 44,100, - 101,102, 44, 39, 41, 41, 59, 39, 41, 10, 32, 32,101,110,100, - 10, 32, 32,111,117,116,112,117,116, 40, 39, 32,114,101,116, - 117,114,110, 32, 48, 59, 39, 41, 10, 32, 32,111,117,116,112, - 117,116, 40, 39,125, 39, 41, 10, 32, 32,111,117,116,112,117, - 116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102, - 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, - 66, 76, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117, - 116, 40, 39, 92,110, 39, 41, 10, 32,101,110,100, 10, 10,101, - 110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, - 97,115,115, 65,114,114, 97,121, 58,114,101,103,105,115,116, - 101,114, 32, 40,112,114,101, 41, 10, 9,105,102, 32,110,111, - 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, - 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, - 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, - 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, - 111,114, 32, 39, 39, 10, 32,105,102, 32,115,101,108,102, 46, - 99,115,101,116,110, 97,109,101, 32,116,104,101,110, 10, 32, - 32,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116, - 111,108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, - 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, - 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, - 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 39, 46, - 46,115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 46, - 46, 39, 41, 59, 39, 41, 10, 32,101,108,115,101, 10, 32, 32, - 111,117,116,112,117,116, 40,112,114,101, 46, 46, 39,116,111, - 108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,117, 97, - 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97, - 109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,102, 46, - 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 78, 85, 76, - 76, 41, 59, 39, 41, 10, 32,101,110,100, 10,101,110,100, 10, - 10, 45, 45, 32, 73,110,116,101,114,110, 97,108, 32, 99,111, - 110,115,116,114,117, 99,116,111,114, 10,102,117,110, 99,116, - 105,111,110, 32, 95, 65,114,114, 97,121, 32, 40,116, 41, 10, - 32,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, - 44, 99,108, 97,115,115, 65,114,114, 97,121, 41, 10, 32, 97, - 112,112,101,110,100, 40,116, 41, 10, 32,114,101,116,117,114, - 110, 32,116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110, - 115,116,114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112, - 101, 99,116,115, 32, 97, 32,115,116,114,105,110,103, 32,114, - 101,112,114,101,115,101,110,116,105,110,103, 32,116,104,101, - 32,118, 97,114,105, 97, 98,108,101, 32,100,101, 99,108, 97, - 114, 97,116,105,111,110, 46, 10,102,117,110, 99,116,105,111, - 110, 32, 65,114,114, 97,121, 32, 40,115, 41, 10, 32,114,101, - 116,117,114,110, 32, 95, 65,114,114, 97,121, 32, 40, 68,101, - 99,108, 97,114, 97,116,105,111,110, 40,115, 44, 39,118, 97, - 114, 39, 41, 41, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/array.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, - 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, - 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, - 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, - 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, - 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, - 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, - 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, - 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, - 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, - 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, - 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, - 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, - 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, - 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, - 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, - 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, - 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, - 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, - 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, - 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, - 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 10, 45, - 45, 32, 70,117,110, 99,116,105,111,110, 32, 99,108, 97,115, - 115, 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, - 32, 97, 32,102,117,110, 99,116,105,111,110, 32,111,114, 32, - 97, 32, 99,108, 97,115,115, 32,109,101,116,104,111,100, 46, - 10, 45, 45, 32, 84,104,101, 32,102,111,108,108,111,119,105, - 110,103, 32,102,105,101,108,100,115, 32, 97,114,101, 32,115, - 116,111,114,101,100, 58, 10, 45, 45, 32, 32,109,111,100, 32, - 32, 61, 32,116,121,112,101, 32,109,111,100,105,102,105,101, - 114,115, 10, 45, 45, 32, 32,116,121,112,101, 32, 61, 32,116, - 121,112,101, 10, 45, 45, 32, 32,112,116,114, 32, 32, 61, 32, - 34, 42, 34, 32,111,114, 32, 34, 38, 34, 44, 32,105,102, 32, - 114,101,112,114,101,115,101,110,116,105,110,103, 32, 97, 32, - 112,111,105,110,116,101,114, 32,111,114, 32, 97, 32,114,101, - 102,101,114,101,110, 99,101, 10, 45, 45, 32, 32,110, 97,109, - 101, 32, 61, 32,110, 97,109,101, 10, 45, 45, 32, 32,108,110, - 97,109,101, 32, 61, 32,108,117, 97, 32,110, 97,109,101, 10, - 45, 45, 32, 32, 97,114,103,115, 32, 32, 61, 32,108,105,115, - 116, 32,111,102, 32, 97,114,103,117,109,101,110,116, 32,100, - 101, 99,108, 97,114, 97,116,105,111,110,115, 10, 45, 45, 32, - 32, 99,111,110,115,116, 32, 61, 32,105,102, 32,105,116, 32, - 105,115, 32, 97, 32,109,101,116,104,111,100, 32,114,101, 99, - 101,105,118,105,110,103, 32, 97, 32, 99,111,110,115,116, 32, - 34,116,104,105,115, 34, 46, 10, 99,108, 97,115,115, 70,117, - 110, 99,116,105,111,110, 32, 61, 32,123, 10, 32,109,111,100, - 32, 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, - 39, 39, 44, 10, 32,112,116,114, 32, 61, 32, 39, 39, 44, 10, - 32,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 32, 97,114, - 103,115, 32, 61, 32,123,110, 61, 48,125, 44, 10, 32, 99,111, - 110,115,116, 32, 61, 32, 39, 39, 44, 10,125, 10, 99,108, 97, - 115,115, 70,117,110, 99,116,105,111,110, 46, 95, 95,105,110, - 100,101,120, 32, 61, 32, 99,108, 97,115,115, 70,117,110, 99, - 116,105,111,110, 10,115,101,116,109,101,116, 97,116, 97, 98, - 108,101, 40, 99,108, 97,115,115, 70,117,110, 99,116,105,111, - 110, 44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, - 10, 10, 45, 45, 32,100,101, 99,108, 97,114,101, 32,116, 97, - 103,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, - 115,115, 70,117,110, 99,116,105,111,110, 58,100,101, 99,108, - 116,121,112,101, 32, 40, 41, 10, 32,115,101,108,102, 46,116, - 121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,115, - 101,108,102, 46,116,121,112,101, 41, 10, 32,105,102, 32,115, - 116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, - 44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10, - 9, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39, - 99,111,110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116, - 121,112,101, 10, 9, 9,115,101,108,102, 46,109,111,100, 32, - 61, 32,103,115,117, 98, 40,115,101,108,102, 46,109,111,100, - 44, 39, 99,111,110,115,116, 39, 44, 39, 39, 41, 10, 9,101, - 110,100, 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, - 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, - 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97, - 114,103,115, 91,105, 93, 58,100,101, 99,108,116,121,112,101, - 40, 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101, - 110,100, 10,101,110,100, 10, 10, 10, 45, 45, 32, 87,114,105, - 116,101, 32, 98,105,110,100,105,110,103, 32,102,117,110, 99, - 116,105,111,110, 10, 45, 45, 32, 79,117,116,112,117,116,115, - 32, 67, 47, 67, 43, 43, 32, 98,105,110,100,105,110,103, 32, - 102,117,110, 99,116,105,111,110, 46, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105, - 111,110, 58,115,117,112, 99,111,100,101, 32, 40,108,111, 99, - 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 41, - 10, 10, 32,108,111, 99, 97,108, 32,111,118,101,114,108,111, - 97,100, 32, 61, 32,115,116,114,115,117, 98, 40,115,101,108, - 102, 46, 99,110, 97,109,101, 44, 45, 50, 44, 45, 49, 41, 32, - 45, 32, 49, 32, 32, 45, 45, 32,105,110,100,105, 99, 97,116, - 101, 32,111,118,101,114,108,111, 97,100,101,100, 32,102,117, - 110, 99, 10, 32,108,111, 99, 97,108, 32,110,114,101,116, 32, - 61, 32, 48, 32, 32, 32, 32, 32, 32, 45, 45, 32,110,117,109, - 98,101,114, 32,111,102, 32,114,101,116,117,114,110,101,100, - 32,118, 97,108,117,101,115, 10, 32,108,111, 99, 97,108, 32, - 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110, - 99,108, 97,115,115, 40, 41, 10, 32,108,111, 99, 97,108, 32, - 95, 44, 95, 44,115,116, 97,116,105, 99, 32, 61, 32,115,116, - 114,102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, - 39, 94, 37,115, 42, 40,115,116, 97,116,105, 99, 41, 39, 41, - 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, - 10, 10, 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109, - 101, 32, 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32, - 115,101,108,102, 46,112, 97,114,101,110,116, 46,102,108, 97, - 103,115, 46,112,117,114,101, 95,118,105,114,116,117, 97,108, - 32,116,104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, - 99,111,110,115,116,114,117, 99,116,111,114, 32,102,111,114, - 32, 99,108, 97,115,115,101,115, 32,119,105,116,104, 32,112, - 117,114,101, 32,118,105,114,116,117, 97,108, 32,109,101,116, - 104,111,100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, - 32, 9,101,110,100, 10, 10, 32, 9,105,102, 32,108,111, 99, - 97,108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32, - 116,104,101,110, 10, 9, 9,111,117,116,112,117,116, 40, 34, - 47, 42, 32,109,101,116,104,111,100, 58, 32,110,101,119, 95, - 108,111, 99, 97,108, 32,111,102, 32, 99,108, 97,115,115, 32, - 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10, - 9,101,108,115,101, 10, 9, 9,111,117,116,112,117,116, 40, - 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115,101, - 108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99,108, - 97,115,115, 32, 34, 44, 99,108, 97,115,115, 44, 34, 32, 42, - 47, 34, 41, 10, 9,101,110,100, 10, 32,101,108,115,101, 10, - 32, 32,111,117,116,112,117,116, 40, 34, 47, 42, 32,102,117, - 110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, - 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10, 32,101,110,100, - 10, 10, 32,105,102, 32,108,111, 99, 97,108, 95, 99,111,110, - 115,116,114,117, 99,116,111,114, 32,116,104,101,110, 10, 32, - 32,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, - 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, - 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, - 46, 34, 95,108,111, 99, 97,108, 34, 41, 10, 32, 32,111,117, - 116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, 99, 32, - 105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97,109,101, - 46, 46, 34, 95,108,111, 99, 97,108, 34, 44, 34, 40,108,117, - 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, - 83, 41, 34, 41, 10, 32,101,108,115,101, 10, 32, 32,111,117, - 116,112,117,116, 40, 34, 35,105,102,110,100,101,102, 32, 84, - 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 95, 34, 46, - 46,115,101,108,102, 46, 99,110, 97,109,101, 41, 10, 32, 32, - 111,117,116,112,117,116, 40, 34, 92,110,115,116, 97,116,105, - 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,110, 97, - 109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42, - 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 32,101,110, - 100, 10, 32,111,117,116,112,117,116, 40, 34,123, 34, 41, 10, - 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,116,121,112,101, - 115, 10, 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, - 60, 32, 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112, - 117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, - 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, - 9,101,110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32, - 116,111,108,117, 97, 95, 69,114,114,111,114, 32,116,111,108, - 117, 97, 95,101,114,114, 59, 39, 41, 10, 32,111,117,116,112, - 117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 32, - 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 32, - 108,111, 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, - 99,108, 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, - 61, 50, 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32, - 101,110,100, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116, - 104,101,110, 10, 9, 9,108,111, 99, 97,108, 32,102,117,110, - 99, 32, 61, 32,103,101,116, 95,105,115, 95,102,117,110, 99, - 116,105,111,110, 40,115,101,108,102, 46,112, 97,114,101,110, - 116, 46,116,121,112,101, 41, 10, 9, 9,108,111, 99, 97,108, - 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97, - 114,101,110,116, 46,116,121,112,101, 10, 9, 9,105,102, 32, - 115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101,119, - 39, 32,111,114, 32,115,116, 97,116,105, 99,126, 61,110,105, - 108, 32,116,104,101,110, 10, 9, 9, 9,102,117,110, 99, 32, - 61, 32, 39,116,111,108,117, 97, 95,105,115,117,115,101,114, - 116, 97, 98,108,101, 39, 10, 9, 9, 9,116,121,112,101, 32, - 61, 32,115,101,108,102, 46,112, 97,114,101,110,116, 46,116, - 121,112,101, 10, 9, 9,101,110,100, 10, 9, 9,105,102, 32, - 115,101,108,102, 46, 99,111,110,115,116, 32,126, 61, 32, 39, - 39, 32,116,104,101,110, 10, 9, 9, 9,116,121,112,101, 32, - 61, 32, 34, 99,111,110,115,116, 32, 34, 46, 46,116,121,112, - 101, 10, 9, 9,101,110,100, 10, 9, 9,111,117,116,112,117, - 116, 40, 39, 32, 32, 32, 32, 32, 33, 39, 46, 46,102,117,110, - 99, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, - 34, 39, 46, 46,116,121,112,101, 46, 46, 39, 34, 44, 48, 44, - 38,116,111,108,117, 97, 95,101,114,114, 41, 32,124,124, 92, - 110, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, 32, 99,104, - 101, 99,107, 32, 97,114,103,115, 10, 32,105,102, 32,115,101, - 108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, - 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, - 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, - 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, - 91,105, 93, 32,100,111, 10, 32, 32, 32,108,111, 99, 97,108, - 32, 98,116,121,112,101, 32, 61, 32,105,115, 98, 97,115,105, - 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, - 116,121,112,101, 41, 10, 32, 32, 32,105,102, 32, 98,116,121, - 112,101, 32,126, 61, 32, 39,118, 97,108,117,101, 39, 32, 97, - 110,100, 32, 98,116,121,112,101, 32,126, 61, 32, 39,115,116, - 97,116,101, 39, 32,116,104,101,110, 10, 32, 32, 32, 32,111, - 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 39, 46, 46, - 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,111,117, - 116, 99,104,101, 99,107,116,121,112,101, 40,110, 97,114,103, - 41, 46, 46, 39, 32,124,124, 92,110, 39, 41, 10, 32, 32, 32, - 101,110,100, 10, 32, 32, 32,105,102, 32, 98,116,121,112,101, - 32,126, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101, - 110, 10, 9, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97, - 114,103, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32, 32, - 105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, - 101,110,100, 10, 32, 45, 45, 32, 99,104,101, 99,107, 32,101, - 110,100, 32,111,102, 32,108,105,115,116, 10, 32,111,117,116, - 112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111,108,117, - 97, 95,105,115,110,111,111, 98,106, 40,116,111,108,117, 97, - 95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 38, - 116,111,108,117, 97, 95,101,114,114, 41, 92,110, 32, 41, 39, - 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,103,111, - 116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, - 59, 39, 41, 10, 10, 32,111,117,116,112,117,116, 40, 39, 32, - 101,108,115,101, 92,110, 39, 41, 10, 9,105,102, 32,111,118, - 101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, - 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, - 105,102, 92,110, 39, 41, 10, 9,101,110,100, 10, 9,111,117, - 116,112,117,116, 40, 39, 32,123, 39, 41, 10, 10, 32, 45, 45, - 32,100,101, 99,108, 97,114,101, 32,115,101,108,102, 44, 32, - 105,102, 32,116,104,101, 32, 99, 97,115,101, 10, 32,108,111, - 99, 97,108, 32,110, 97,114,103, 10, 32,105,102, 32, 99,108, - 97,115,115, 32,116,104,101,110, 32,110, 97,114,103, 61, 50, - 32,101,108,115,101, 32,110, 97,114,103, 61, 49, 32,101,110, - 100, 10, 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, - 32,115,101,108,102, 46,110, 97,109,101,126, 61, 39,110,101, - 119, 39, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61, - 110,105,108, 32,116,104,101,110, 10, 32, 32,111,117,116,112, - 117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111,110, - 115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, 46, - 116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, - 61, 32, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40, 39, - 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, - 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, - 44, 39, 42, 41, 32, 39, 41, 10, 32, 32,108,111, 99, 97,108, - 32,116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95, - 116,111, 95,102,117,110, 99,116,105,111,110, 40,115,101,108, - 102, 46,112, 97,114,101,110,116, 46,116,121,112,101, 41, 10, - 32, 32,111,117,116,112,117,116, 40,116,111, 95,102,117,110, - 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, - 41, 59, 39, 41, 10, 32,101,108,115,101,105,102, 32,115,116, - 97,116,105, 99, 32,116,104,101,110, 10, 32, 32, 95, 44, 95, - 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114, - 102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39, - 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42, - 40, 46, 42, 41, 39, 41, 10, 32,101,110,100, 10, 32, 45, 45, - 32,100,101, 99,108, 97,114,101, 32,112, 97,114, 97,109,101, - 116,101,114,115, 10, 32,105,102, 32,115,101,108,102, 46, 97, - 114,103,115, 91, 49, 93, 46,116,121,112,101, 32,126, 61, 32, - 39,118,111,105,100, 39, 32,116,104,101,110, 10, 32, 32,108, - 111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108, - 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, - 100,111, 10, 32, 32, 32,115,101,108,102, 46, 97,114,103,115, - 91,105, 93, 58,100,101, 99,108, 97,114,101, 40,110, 97,114, - 103, 41, 10, 32, 32, 32,105,102, 32,105,115, 98, 97,115,105, - 99, 40,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46, - 116,121,112,101, 41, 32,126, 61, 32, 34,115,116, 97,116,101, - 34, 32,116,104,101,110, 10, 9, 32, 32, 32,110, 97,114,103, - 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32,101,110, - 100, 10, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32, - 101,110,100, 10, 32,101,110,100, 10, 10, 32, 45, 45, 32, 99, - 104,101, 99,107, 32,115,101,108,102, 10, 32,105,102, 32, 99, - 108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, - 97,109,101,126, 61, 39,110,101,119, 39, 32, 97,110,100, 32, - 115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101, - 110, 10, 9, 32,111,117,116,112,117,116, 40, 39, 35,105,102, - 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, - 65, 83, 69, 92,110, 39, 41, 10, 32, 32,111,117,116,112,117, - 116, 40, 39, 32, 32,105,102, 32, 40, 33,115,101,108,102, 41, - 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,111, - 108,117, 97, 95, 83, 44, 34,105,110,118, 97,108,105,100, 32, - 92, 39,115,101,108,102, 92, 39, 32,105,110, 32,102,117,110, - 99,116,105,111,110, 32, 92, 39, 39, 46, 46,115,101,108,102, - 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, - 76, 41, 59, 39, 41, 59, 10, 9, 32,111,117,116,112,117,116, - 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 32,101, - 110,100, 10, 10, 32, 45, 45, 32,103,101,116, 32, 97,114,114, - 97,121, 32,101,108,101,109,101,110,116, 32,118, 97,108,117, - 101,115, 10, 32,105,102, 32, 99,108, 97,115,115, 32,116,104, - 101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, 32, - 110, 97,114,103, 61, 49, 32,101,110,100, 10, 32,105,102, 32, - 115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,116,121, - 112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32,116,104, - 101,110, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, - 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97,114, - 103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101,108, - 102, 46, 97,114,103,115, 91,105, 93, 58,103,101,116, 97,114, - 114, 97,121, 40,110, 97,114,103, 41, 10, 32, 32, 32,110, 97, - 114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 32, 32, 32, - 105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, 10, 32, - 101,110,100, 10, 10, 32,108,111, 99, 97,108, 32,111,117,116, - 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, - 115,101,108,102, 46,109,111,100, 44, 32, 34,116,111,108,117, - 97, 95,111,117,116,115,105,100,101, 34, 41, 10, 32, 45, 45, - 32, 99, 97,108,108, 32,102,117,110, 99,116,105,111,110, 10, - 32,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115, - 101,108,102, 46,110, 97,109,101, 61, 61, 39,100,101,108,101, - 116,101, 39, 32,116,104,101,110, 10, 32, 32,111,117,116,112, - 117,116, 40, 39, 32, 32, 77,116,111,108,117, 97, 95,100,101, - 108,101,116,101, 40,115,101,108,102, 41, 59, 39, 41, 10, 32, - 101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 97,110, - 100, 32,115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, - 39,111,112,101,114, 97,116,111,114, 38, 91, 93, 39, 32,116, - 104,101,110, 10, 32, 32,105,102, 32,102,108, 97,103,115, 91, - 39, 49, 39, 93, 32,116,104,101,110, 32, 45, 45, 32,102,111, - 114, 32, 99,111,109,112, 97,116,105, 98,105,108,105,116,121, - 32,119,105,116,104, 32,116,111,108,117, 97, 53, 32, 63, 10, - 9,111,117,116,112,117,116, 40, 39, 32, 32,115,101,108,102, - 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44, - 115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97, - 109,101, 44, 39, 45, 49, 41, 32, 61, 32, 39, 44,115,101,108, - 102, 46, 97,114,103,115, 91, 50, 93, 46,110, 97,109,101, 44, - 39, 59, 39, 41, 10, 32, 32,101,108,115,101, 10, 32, 32, 32, - 32,111,117,116,112,117,116, 40, 39, 32, 32,115,101,108,102, - 45, 62,111,112,101,114, 97,116,111,114, 91, 93, 40, 39, 44, - 115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46,110, 97, - 109,101, 44, 39, 41, 32, 61, 32, 39, 44,115,101,108,102, 46, - 97,114,103,115, 91, 50, 93, 46,110, 97,109,101, 44, 39, 59, - 39, 41, 10, 32, 32,101,110,100, 10, 32,101,108,115,101, 10, - 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,123, 39, 41, - 10, 32, 32,105,102, 32,115,101,108,102, 46,116,121,112,101, - 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, - 46,116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, - 32,116,104,101,110, 10, 32, 32, 32,111,117,116,112,117,116, - 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109,111,100, 44, - 115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46, - 112,116,114, 44, 39,116,111,108,117, 97, 95,114,101,116, 32, - 61, 32, 39, 41, 10, 32, 32, 32,111,117,116,112,117,116, 40, - 39, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,115,101, - 108,102, 46,116,121,112,101, 44,115,101,108,102, 46,112,116, - 114, 44, 39, 41, 32, 39, 41, 10, 32, 32,101,108,115,101, 10, - 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 39, 41, - 10, 32, 32,101,110,100, 10, 32, 32,105,102, 32, 99,108, 97, - 115,115, 32, 97,110,100, 32,115,101,108,102, 46,110, 97,109, - 101, 61, 61, 39,110,101,119, 39, 32,116,104,101,110, 10, 32, - 32, 32,111,117,116,112,117,116, 40, 39, 77,116,111,108,117, - 97, 95,110,101,119, 40, 40, 39, 44,115,101,108,102, 46,116, - 121,112,101, 44, 39, 41, 40, 39, 41, 10, 32, 32,101,108,115, - 101,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,115, - 116, 97,116,105, 99, 32,116,104,101,110, 10, 9,105,102, 32, - 111,117,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112, - 117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, - 39, 41, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112, - 117,116, 40, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, - 46,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, 39, 41, - 10, 9,101,110,100, 10, 32, 32,101,108,115,101,105,102, 32, - 99,108, 97,115,115, 32,116,104,101,110, 10, 9,105,102, 32, - 111,117,116, 32,116,104,101,110, 10, 9, 9,111,117,116,112, - 117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, - 39, 41, 10, 9,101,108,115,101, 10, 9, 32, 32,105,102, 32, - 115,101,108,102, 46, 99, 97,115,116, 95,111,112,101,114, 97, - 116,111,114, 32,116,104,101,110, 10, 9, 32, 32, 9, 45, 45, - 111,117,116,112,117,116, 40, 39,115,116, 97,116,105, 99, 95, - 99, 97,115,116, 60, 39, 44,115,101,108,102, 46,109,111,100, - 44,115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, - 46,112,116,114, 44, 39, 62, 40, 42,115,101,108,102, 39, 41, - 10, 9, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, - 45, 62,111,112,101,114, 97,116,111,114, 32, 39, 44,115,101, - 108,102, 46,109,111,100, 44,115,101,108,102, 46,116,121,112, - 101, 44, 39, 40, 39, 41, 10, 9, 32, 32,101,108,115,101, 10, - 9, 9,111,117,116,112,117,116, 40, 39,115,101,108,102, 45, - 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 44, 39, - 40, 39, 41, 10, 9, 32, 32,101,110,100, 10, 9,101,110,100, - 10, 32, 32,101,108,115,101, 10, 32, 32, 32,111,117,116,112, - 117,116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 40, - 39, 41, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, 32, - 111,117,116, 32, 97,110,100, 32,110,111,116, 32,115,116, 97, - 116,105, 99, 32,116,104,101,110, 10, 32, 32, 9,111,117,116, - 112,117,116, 40, 39,115,101,108,102, 39, 41, 10, 9,105,102, - 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 32, 97, - 110,100, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, - 46,110, 97,109,101, 32,126, 61, 32, 39, 39, 32,116,104,101, - 110, 10, 9, 9,111,117,116,112,117,116, 40, 39, 44, 39, 41, - 10, 9,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32, 45, - 45, 32,119,114,105,116,101, 32,112, 97,114, 97,109,101,116, - 101,114,115, 10, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, - 10, 32, 32,119,104,105,108,101, 32,115,101,108,102, 46, 97, - 114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, 32,115,101, - 108,102, 46, 97,114,103,115, 91,105, 93, 58,112, 97,115,115, - 112, 97,114, 40, 41, 10, 32, 32, 32,105, 32, 61, 32,105, 43, - 49, 10, 32, 32, 32,105,102, 32,115,101,108,102, 46, 97,114, - 103,115, 91,105, 93, 32,116,104,101,110, 10, 32, 32, 32, 32, - 111,117,116,112,117,116, 40, 39, 44, 39, 41, 10, 32, 32, 32, - 101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, 32,105,102, - 32, 99,108, 97,115,115, 32, 97,110,100, 32,115,101,108,102, - 46,110, 97,109,101, 32, 61, 61, 32, 39,111,112,101,114, 97, - 116,111,114, 91, 93, 39, 32, 97,110,100, 32,102,108, 97,103, - 115, 91, 39, 49, 39, 93, 32,116,104,101,110, 10, 9,111,117, - 116,112,117,116, 40, 39, 45, 49, 41, 59, 39, 41, 10, 32, 32, - 101,108,115,101, 10, 9,105,102, 32, 99,108, 97,115,115, 32, - 97,110,100, 32,115,101,108,102, 46,110, 97,109,101, 61, 61, - 39,110,101,119, 39, 32,116,104,101,110, 10, 9, 9,111,117, - 116,112,117,116, 40, 39, 41, 41, 59, 39, 41, 32, 45, 45, 32, - 99,108,111,115,101, 32, 77,116,111,108,117, 97, 95,110,101, - 119, 40, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,112, - 117,116, 40, 39, 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, - 32,101,110,100, 10, 10, 32, 32, 45, 45, 32,114,101,116,117, - 114,110, 32,118, 97,108,117,101,115, 10, 32, 32,105,102, 32, - 115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39, 39, - 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 32, - 126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, - 32, 32, 32,110,114,101,116, 32, 61, 32,110,114,101,116, 32, - 43, 32, 49, 10, 32, 32, 32,108,111, 99, 97,108, 32,116, 44, - 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101, - 108,102, 46,116,121,112,101, 41, 10, 32, 32, 32,105,102, 32, - 116, 32,116,104,101,110, 10, 32, 32, 32, 9,105,102, 32,115, - 101,108,102, 46, 99, 97,115,116, 95,111,112,101,114, 97,116, - 111,114, 32, 97,110,100, 32, 95, 98, 97,115,105, 99, 95,114, - 97,119, 95,112,117,115,104, 91,116, 93, 32,116,104,101,110, - 10, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 39, - 44, 95, 98, 97,115,105, 99, 95,114, 97,119, 95,112,117,115, - 104, 91,116, 93, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, - 40, 39, 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114, - 101,116, 41, 59, 39, 41, 10, 32, 32, 32, 9,101,108,115,101, - 10, 9, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, - 32, 32,116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46, - 116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, - 44, 99,116, 44, 39, 41,116,111,108,117, 97, 95,114,101,116, - 41, 59, 39, 41, 10, 9,101,110,100, 10, 32, 32, 32,101,108, - 115,101, 10, 9,116, 32, 61, 32,115,101,108,102, 46,116,121, - 112,101, 10, 9,110,101,119, 95,116, 32, 61, 32,115,116,114, - 105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, 99,111, - 110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, 9,108, - 111, 99, 97,108, 32,111,119,110,101,100, 32, 61, 32,102, 97, - 108,115,101, 10, 9,105,102, 32,115,116,114,105,110,103, 46, - 102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 32, - 34,116,111,108,117, 97, 95,111,119,110,101,100, 34, 41, 32, - 116,104,101,110, 10, 9, 9,111,119,110,101,100, 32, 61, 32, - 116,114,117,101, 10, 9,101,110,100, 10, 32, 32, 32, 32,108, - 111, 99, 97,108, 32,112,117,115,104, 95,102,117,110, 99, 32, - 61, 32,103,101,116, 95,112,117,115,104, 95,102,117,110, 99, - 116,105,111,110, 40,116, 41, 10, 32, 32, 32, 32,105,102, 32, - 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, - 116,104,101,110, 10, 32, 32, 32, 32, 32,111,117,116,112,117, - 116, 40, 39, 32, 32, 32,123, 39, 41, 10, 32, 32, 32, 32, 32, - 111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, - 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, 41, - 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, - 32, 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95, - 111, 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101, - 119, 40, 40, 39, 44,110,101,119, 95,116, 44, 39, 41, 40,116, - 111,108,117, 97, 95,114,101,116, 41, 41, 59, 39, 41, 10, 32, - 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, 32, - 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, 40, - 116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, - 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, - 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, - 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116,101, - 114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108,117, - 97, 95,103,101,116,116,111,112, 40,116,111,108,117, 97, 95, - 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117,116, - 112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10, - 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, - 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, - 98,106, 32, 61, 32,116,111,108,117, 97, 95, 99,111,112,121, - 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42, - 41, 38,116,111,108,117, 97, 95,114,101,116, 44,115,105,122, - 101,111,102, 40, 39, 44,116, 44, 39, 41, 41, 59, 39, 41, 10, - 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32, - 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, - 40,116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95, - 111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, - 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, 32, - 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105,115,116, - 101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, 44,108, - 117, 97, 95,103,101,116,116,111,112, 40,116,111,108,117, 97, - 95, 83, 41, 41, 59, 39, 41, 10, 32, 32, 32, 32, 32,111,117, - 116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, - 41, 10, 32, 32, 32, 32, 32,111,117,116,112,117,116, 40, 39, - 32, 32, 32,125, 39, 41, 10, 32, 32, 32, 32,101,108,115,101, - 105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, - 39, 38, 39, 32,116,104,101,110, 10, 32, 32, 32, 32, 32,111, - 117,116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115, - 104, 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, - 83, 44, 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, - 95,114,101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, - 41, 10, 32, 32, 32, 32,101,108,115,101, 10, 9, 32,111,117, - 116,112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, - 95,102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, - 44, 40,118,111,105,100, 42, 41,116,111,108,117, 97, 95,114, - 101,116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, - 9, 32,105,102, 32,111,119,110,101,100, 32,111,114, 32,108, - 111, 99, 97,108, 95, 99,111,110,115,116,114,117, 99,116,111, - 114, 32,116,104,101,110, 10, 32, 32, 32, 32, 32, 32,111,117, - 116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, - 95,114,101,103,105,115,116,101,114, 95,103, 99, 40,116,111, - 108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111, - 112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, - 9, 32,101,110,100, 10, 32, 32, 32, 32,101,110,100, 10, 32, - 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 32, 32,108, - 111, 99, 97,108, 32,105, 61, 49, 10, 32, 32,119,104,105,108, - 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, - 100,111, 10, 32, 32, 32,110,114,101,116, 32, 61, 32,110,114, - 101,116, 32, 43, 32,115,101,108,102, 46, 97,114,103,115, 91, - 105, 93, 58,114,101,116,118, 97,108,117,101, 40, 41, 10, 32, - 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32, 32,101,110,100, - 10, 32, 32,111,117,116,112,117,116, 40, 39, 32, 32,125, 39, - 41, 10, 10, 32, 32, 45, 45, 32,115,101,116, 32, 97,114,114, - 97,121, 32,101,108,101,109,101,110,116, 32,118, 97,108,117, - 101,115, 10, 32, 32,105,102, 32, 99,108, 97,115,115, 32,116, - 104,101,110, 32,110, 97,114,103, 61, 50, 32,101,108,115,101, - 32,110, 97,114,103, 61, 49, 32,101,110,100, 10, 32, 32,105, - 102, 32,115,101,108,102, 46, 97,114,103,115, 91, 49, 93, 46, - 116,121,112,101, 32,126, 61, 32, 39,118,111,105,100, 39, 32, - 116,104,101,110, 10, 32, 32, 32,108,111, 99, 97,108, 32,105, - 61, 49, 10, 32, 32, 32,119,104,105,108,101, 32,115,101,108, - 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 32, 32, - 32, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58, - 115,101,116, 97,114,114, 97,121, 40,110, 97,114,103, 41, 10, - 32, 32, 32, 32,110, 97,114,103, 32, 61, 32,110, 97,114,103, - 43, 49, 10, 32, 32, 32, 32,105, 32, 61, 32,105, 43, 49, 10, - 32, 32, 32,101,110,100, 10, 32, 32,101,110,100, 10, 10, 32, - 32, 45, 45, 32,102,114,101,101, 32,100,121,110, 97,109,105, - 99, 97,108,108,121, 32, 97,108,108,111, 99, 97,116,101,100, - 32, 97,114,114, 97,121, 10, 32, 32,105,102, 32,115,101,108, - 102, 46, 97,114,103,115, 91, 49, 93, 46,116,121,112,101, 32, - 126, 61, 32, 39,118,111,105,100, 39, 32,116,104,101,110, 10, - 32, 32, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32, 32, - 32,119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103, - 115, 91,105, 93, 32,100,111, 10, 32, 32, 32, 32,115,101,108, - 102, 46, 97,114,103,115, 91,105, 93, 58,102,114,101,101, 97, - 114,114, 97,121, 40, 41, 10, 32, 32, 32, 32,105, 32, 61, 32, - 105, 43, 49, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,110, - 100, 10, 32,101,110,100, 10, 10, 32,111,117,116,112,117,116, - 40, 39, 32,125, 39, 41, 10, 32,111,117,116,112,117,116, 40, - 39, 32,114,101,116,117,114,110, 32, 39, 46, 46,110,114,101, - 116, 46, 46, 39, 59, 39, 41, 10, 10, 32, 45, 45, 32, 99, 97, - 108,108, 32,111,118,101,114,108,111, 97,100,101,100, 32,102, - 117,110, 99,116,105,111,110, 32,111,114, 32,103,101,110,101, - 114, 97,116,101, 32,101,114,114,111,114, 10, 9,105,102, 32, - 111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104, - 101,110, 10, 10, 9, 9,111,117,116,112,117,116, 40, 39, 35, - 105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, - 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9, 9,111,117,116, - 112,117,116, 40, 39,116,111,108,117, 97, 95,108,101,114,114, - 111,114, 58, 92,110, 39, 41, 10, 9, 9,111,117,116,112,117, - 116, 40, 39, 32,116,111,108,117, 97, 95,101,114,114,111,114, - 40,116,111,108,117, 97, 95, 83, 44, 34, 35,102,101,114,114, - 111,114, 32,105,110, 32,102,117,110, 99,116,105,111,110, 32, - 92, 39, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, - 46, 46, 39, 92, 39, 46, 34, 44, 38,116,111,108,117, 97, 95, - 101,114,114, 41, 59, 39, 41, 10, 9, 9,111,117,116,112,117, - 116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, - 10, 9, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, - 105,102, 92,110, 39, 41, 10, 9,101,108,115,101, 10, 9, 9, - 108,111, 99, 97,108, 32, 95,108,111, 99, 97,108, 32, 61, 32, - 34, 34, 10, 9, 9,105,102, 32,108,111, 99, 97,108, 95, 99, - 111,110,115,116,114,117, 99,116,111,114, 32,116,104,101,110, - 10, 9, 9, 9, 95,108,111, 99, 97,108, 32, 61, 32, 34, 95, - 108,111, 99, 97,108, 34, 10, 9, 9,101,110,100, 10, 9, 9, - 111,117,116,112,117,116, 40, 39,116,111,108,117, 97, 95,108, - 101,114,114,111,114, 58, 92,110, 39, 41, 10, 9, 9,111,117, - 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 39, - 46, 46,115,116,114,115,117, 98, 40,115,101,108,102, 46, 99, - 110, 97,109,101, 44, 49, 44, 45, 51, 41, 46, 46,102,111,114, - 109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,111,118,101,114, - 108,111, 97,100, 41, 46, 46, 95,108,111, 99, 97,108, 46, 46, - 39, 40,116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10, 9, - 101,110,100, 10, 32,111,117,116,112,117,116, 40, 39,125, 39, - 41, 10, 32,111,117,116,112,117,116, 40, 39, 35,101,110,100, - 105,102, 32, 47, 47, 35,105,102,110,100,101,102, 32, 84, 79, - 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, 92,110, 39, 41, - 10, 32,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, - 10, 9, 45, 45, 32,114,101, 99,117,114,115,105,118,101, 32, - 99, 97,108,108, 32,116,111, 32,119,114,105,116,101, 32,108, - 111, 99, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, - 114, 10, 9,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, - 32,115,101,108,102, 46,110, 97,109,101, 61, 61, 39,110,101, - 119, 39, 32, 97,110,100, 32,110,111,116, 32,108,111, 99, 97, - 108, 95, 99,111,110,115,116,114,117, 99,116,111,114, 32,116, - 104,101,110, 10, 10, 9, 9,115,101,108,102, 58,115,117,112, - 99,111,100,101, 40, 49, 41, 10, 9,101,110,100, 10, 10,101, - 110,100, 10, 10, 10, 45, 45, 32,114,101,103,105,115,116,101, - 114, 32,102,117,110, 99,116,105,111,110, 10,102,117,110, 99, - 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, - 105,111,110, 58,114,101,103,105,115,116,101,114, 32, 40,112, - 114,101, 41, 10, 10, 9,105,102, 32,110,111,116, 32,115,101, - 108,102, 58, 99,104,101, 99,107, 95,112,117, 98,108,105, 99, - 95, 97, 99, 99,101,115,115, 40, 41, 32,116,104,101,110, 10, - 9, 9,114,101,116,117,114,110, 10, 9,101,110,100, 10, 10, - 32, 9,105,102, 32,115,101,108,102, 46,110, 97,109,101, 32, - 61, 61, 32, 39,110,101,119, 39, 32, 97,110,100, 32,115,101, - 108,102, 46,112, 97,114,101,110,116, 46,102,108, 97,103,115, - 46,112,117,114,101, 95,118,105,114,116,117, 97,108, 32,116, - 104,101,110, 10, 32, 9, 9, 45, 45, 32,110,111, 32, 99,111, - 110,115,116,114,117, 99,116,111,114, 32,102,111,114, 32, 99, - 108, 97,115,115,101,115, 32,119,105,116,104, 32,112,117,114, - 101, 32,118,105,114,116,117, 97,108, 32,109,101,116,104,111, - 100,115, 10, 32, 9, 9,114,101,116,117,114,110, 10, 32, 9, - 101,110,100, 10, 10, 32,111,117,116,112,117,116, 40,112,114, - 101, 46, 46, 39,116,111,108,117, 97, 95,102,117,110, 99,116, - 105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, - 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, - 44, 39, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 46, - 46, 39, 41, 59, 39, 41, 10, 32, 32,105,102, 32,115,101,108, - 102, 46,110, 97,109,101, 32, 61, 61, 32, 39,110,101,119, 39, - 32,116,104,101,110, 10, 9, 32, 32,111,117,116,112,117,116, - 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95,102,117, - 110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, - 34,110,101,119, 95,108,111, 99, 97,108, 34, 44, 39, 46, 46, - 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108, - 111, 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32,111,117,116, - 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, - 95,102,117,110, 99,116,105,111,110, 40,116,111,108,117, 97, - 95, 83, 44, 34, 46, 99, 97,108,108, 34, 44, 39, 46, 46,115, - 101,108,102, 46, 99,110, 97,109,101, 46, 46, 39, 95,108,111, - 99, 97,108, 41, 59, 39, 41, 10, 9, 32, 32, 45, 45,111,117, - 116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,115,101, - 116, 95, 99, 97,108,108, 95,101,118,101,110,116, 40,116,111, - 108,117, 97, 95, 83, 44, 39, 46, 46,115,101,108,102, 46, 99, - 110, 97,109,101, 46, 46, 39, 95,108,111, 99, 97,108, 44, 32, - 34, 39, 46, 46,115,101,108,102, 46,112, 97,114,101,110,116, - 46,116,121,112,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, - 32,101,110,100, 10,101,110,100, 10, 10, 45, 45, 32, 80,114, - 105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99, - 116,105,111,110, 32, 99,108, 97,115,115, 70,117,110, 99,116, - 105,111,110, 58,112,114,105,110,116, 32, 40,105,100,101,110, - 116, 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, - 40,105,100,101,110,116, 46, 46, 34, 70,117,110, 99,116,105, - 111,110,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100, - 101,110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, - 34, 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, - 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, - 116, 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, - 46,115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, - 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, - 46, 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46, - 115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, - 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, - 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, - 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, - 108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, - 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, - 34, 32, 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115, - 101,108,102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, - 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34, 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46, - 115,101,108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, - 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, - 46, 46, 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, - 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, - 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110, - 116, 46, 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, - 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, - 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, - 93, 32,100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103, - 115, 91,105, 93, 58,112,114,105,110,116, 40,105,100,101,110, - 116, 46, 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32, - 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112, - 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, - 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, - 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101, - 110,100, 10, 10, 45, 45, 32, 99,104,101, 99,107, 32,105,102, - 32,105,116, 32,114,101,116,117,114,110,115, 32, 97,110, 32, - 111, 98,106,101, 99,116, 32, 98,121, 32,118, 97,108,117,101, - 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, - 70,117,110, 99,116,105,111,110, 58,114,101,113,117,105,114, - 101, 99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, - 10, 9,108,111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108, - 115,101, 10, 9,105,102, 32,115,101,108,102, 46,116,121,112, - 101, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,110,111,116, - 32,105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116, - 121,112,101, 41, 32, 97,110,100, 32,115,101,108,102, 46,112, - 116,114, 61, 61, 39, 39, 32,116,104,101,110, 10, 9, 9,108, - 111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,103,115,117, - 98, 40,115,101,108,102, 46,116,121,112,101, 44, 34, 37,115, - 42, 99,111,110,115,116, 37,115, 43, 34, 44, 34, 34, 41, 10, - 9, 32,116, 91,116,121,112,101, 93, 32, 61, 32, 34,116,111, - 108,117, 97, 95, 99,111,108,108,101, 99,116, 95, 34, 32, 46, - 46, 32, 99,108,101, 97,110, 95,116,101,109,112,108, 97,116, - 101, 40,116,121,112,101, 41, 10, 9, 32,114, 32, 61, 32,116, - 114,117,101, 10, 9,101,110,100, 10, 9,108,111, 99, 97,108, - 32,105, 61, 49, 10, 9,119,104,105,108,101, 32,115,101,108, - 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10, 9, 9, - 114, 32, 61, 32,115,101,108,102, 46, 97,114,103,115, 91,105, - 93, 58,114,101,113,117,105,114,101, 99,111,108,108,101, 99, - 116,105,111,110, 40,116, 41, 32,111,114, 32,114, 10, 9, 9, - 105, 32, 61, 32,105, 43, 49, 10, 9,101,110,100, 10, 9,114, - 101,116,117,114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, - 32,100,101,116,101,114,109,105,110,101, 32,108,117, 97, 32, - 102,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32,111, - 118,101,114,108,111, 97,100, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, - 58,111,118,101,114,108,111, 97,100, 32, 40, 41, 10, 32,114, - 101,116,117,114,110, 32,115,101,108,102, 46,112, 97,114,101, - 110,116, 58,111,118,101,114,108,111, 97,100, 40,115,101,108, - 102, 46,108,110, 97,109,101, 41, 10,101,110,100, 10, 10, 10, - 102,117,110, 99,116,105,111,110, 32,112, 97,114, 97,109, 95, - 111, 98,106,101, 99,116, 40,112, 97,114, 41, 32, 45, 45, 32, - 114,101,116,117,114,110,115, 32,116,114,117,101, 32,105,102, - 32,116,104,101, 32,112, 97,114, 97,109,101,116,101,114, 32, - 104, 97,115, 32, 97,110, 32,111, 98,106,101, 99,116, 32, 97, - 115, 32,105,116,115, 32,100,101,102, 97,117,108,116, 32,118, - 97,108,117,101, 10, 10, 9,105,102, 32,110,111,116, 32,115, - 116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, - 32, 39, 61, 39, 41, 32,116,104,101,110, 32,114,101,116,117, - 114,110, 32,102, 97,108,115,101, 32,101,110,100, 32, 45, 45, - 32,105,116, 32,104, 97,115, 32,110,111, 32,100,101,102, 97, - 117,108,116, 32,118, 97,108,117,101, 10, 10, 9,108,111, 99, - 97,108, 32, 95, 44, 95, 44,100,101,102, 32, 61, 32,115,116, - 114,105,110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, - 34, 61, 40, 46, 42, 41, 36, 34, 41, 10, 10, 9,105,102, 32, - 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, - 44, 32, 34,124, 34, 41, 32,116,104,101,110, 32, 45, 45, 32, - 97, 32,108,105,115,116, 32,111,102, 32,102,108, 97,103,115, - 10, 10, 9, 9,114,101,116,117,114,110, 32,116,114,117,101, - 10, 9,101,110,100, 10, 10, 9,105,102, 32,115,116,114,105, - 110,103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, - 42, 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39, - 115, 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116, - 104, 32, 97, 32,100,101,102, 97,117,108,116, 32,118, 97,108, - 117,101, 10, 10, 9, 9,105,102, 32,115,116,114,105,110,103, - 46,102,105,110,100, 40,112, 97,114, 44, 32, 39, 61, 37,115, - 42,110,101,119, 39, 41, 32,111,114, 32,115,116,114,105,110, - 103, 46,102,105,110,100, 40,112, 97,114, 44, 32, 34, 37, 40, - 34, 41, 32,116,104,101,110, 32, 45, 45, 32,105,116, 39,115, - 32, 97, 32,112,111,105,110,116,101,114, 32,119,105,116,104, - 32, 97,110, 32,105,110,115,116, 97,110, 99,101, 32, 97,115, - 32,100,101,102, 97,117,108,116, 32,112, 97,114, 97,109,101, - 116,101,114, 46, 46, 32,105,115, 32,116,104, 97,116, 32,118, - 97,108,105,100, 63, 10, 9, 9, 9,114,101,116,117,114,110, - 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9,114, - 101,116,117,114,110, 32,102, 97,108,115,101, 32, 45, 45, 32, - 100,101,102, 97,117,108,116, 32,118, 97,108,117,101, 32,105, - 115, 32, 39, 78, 85, 76, 76, 39, 32,111,114, 32,115,111,109, - 101,116,104,105,110,103, 10, 9,101,110,100, 10, 10, 10, 9, - 105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, - 112, 97,114, 44, 32, 34, 91, 37, 40, 38, 93, 34, 41, 32,116, - 104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,116,114, - 117,101, 10, 9,101,110,100, 32, 45, 45, 32,100,101,102, 97, - 117,108,116, 32,118, 97,108,117,101, 32,105,115, 32, 97, 32, - 99,111,110,115,116,114,117, 99,116,111,114, 32, 99, 97,108, - 108, 32, 40,109,111,115,116, 32,108,105,107,101,108,121, 32, - 102,111,114, 32, 97, 32, 99,111,110,115,116, 32,114,101,102, - 101,114,101,110, 99,101, 41, 10, 10, 9, 45, 45,105,102, 32, - 115,116,114,105,110,103, 46,102,105,110,100, 40,112, 97,114, - 44, 32, 34, 38, 34, 41, 32,116,104,101,110, 10, 10, 9, 45, - 45, 9,105,102, 32,115,116,114,105,110,103, 46,102,105,110, - 100, 40,100,101,102, 44, 32, 34, 58, 34, 41, 32,111,114, 32, - 115,116,114,105,110,103, 46,102,105,110,100, 40,100,101,102, - 44, 32, 34, 94, 37,115, 42,110,101,119, 37,115, 43, 34, 41, - 32,116,104,101,110, 10, 10, 9, 45, 45, 9, 9, 45, 45, 32, - 105,116, 39,115, 32, 97, 32,114,101,102,101,114,101,110, 99, - 101, 32,119,105,116,104, 32,100,101,102, 97,117,108,116, 32, - 116,111, 32,115,111,109,101,116,104,105,110,103, 32,108,105, - 107,101, 32, 67,108, 97,115,115, 58, 58,109,101,109, 98,101, - 114, 44, 32,111,114, 32, 39,110,101,119, 32, 67,108, 97,115, - 115, 39, 10, 9, 45, 45, 9, 9,114,101,116,117,114,110, 32, - 116,114,117,101, 10, 9, 45, 45, 9,101,110,100, 10, 9, 45, - 45,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,102, - 97,108,115,101, 32, 45, 45, 32, 63, 10,101,110,100, 10, 10, - 102,117,110, 99,116,105,111,110, 32,115,116,114,105,112, 95, - 108, 97,115,116, 95, 97,114,103, 40, 97,108,108, 95, 97,114, - 103,115, 44, 32,108, 97,115,116, 95, 97,114,103, 41, 32, 45, - 45, 32,115,116,114,105,112,115, 32,116,104,101, 32,100,101, - 102, 97,117,108,116, 32,118, 97,108,117,101, 32,102,114,111, - 109, 32,116,104,101, 32,108, 97,115,116, 32, 97,114,103,117, - 109,101,110,116, 10, 10, 9,108,111, 99, 97,108, 32, 95, 44, - 95, 44,115, 95, 97,114,103, 32, 61, 32,115,116,114,105,110, - 103, 46,102,105,110,100, 40,108, 97,115,116, 95, 97,114,103, - 44, 32, 34, 94, 40, 91, 94, 61, 93, 43, 41, 34, 41, 10, 9, - 108, 97,115,116, 95, 97,114,103, 32, 61, 32,115,116,114,105, - 110,103, 46,103,115,117, 98, 40,108, 97,115,116, 95, 97,114, - 103, 44, 32, 34, 40, 91, 37, 37, 37, 40, 37, 41, 93, 41, 34, - 44, 32, 34, 37, 37, 37, 49, 34, 41, 59, 10, 9, 97,108,108, - 95, 97,114,103,115, 32, 61, 32,115,116,114,105,110,103, 46, - 103,115,117, 98, 40, 97,108,108, 95, 97,114,103,115, 44, 32, - 34, 37,115, 42, 44, 37,115, 42, 34, 46, 46,108, 97,115,116, - 95, 97,114,103, 46, 46, 34, 37,115, 42, 37, 41, 37,115, 42, - 36, 34, 44, 32, 34, 41, 34, 41, 10, 9,114,101,116,117,114, - 110, 32, 97,108,108, 95, 97,114,103,115, 44, 32,115, 95, 97, - 114,103, 10,101,110,100, 10, 10, 10, 10, 45, 45, 32, 73,110, - 116,101,114,110, 97,108, 32, 99,111,110,115,116,114,117, 99, - 116,111,114, 10,102,117,110, 99,116,105,111,110, 32, 95, 70, - 117,110, 99,116,105,111,110, 32, 40,116, 41, 10, 32,115,101, - 116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, - 97,115,115, 70,117,110, 99,116,105,111,110, 41, 10, 10, 32, - 105,102, 32,116, 46, 99,111,110,115,116, 32,126, 61, 32, 39, - 99,111,110,115,116, 39, 32, 97,110,100, 32,116, 46, 99,111, - 110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10, - 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108, - 105,100, 32, 39, 99,111,110,115,116, 39, 32,115,112,101, 99, - 105,102,105, 99, 97,116,105,111,110, 34, 41, 10, 32,101,110, - 100, 10, 10, 32, 97,112,112,101,110,100, 40,116, 41, 10, 32, - 105,102, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32, - 116,104,101,110, 10, 32, 45, 45,112,114,105,110,116, 32, 40, - 39,116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, - 46,110, 97,109,101, 46, 46, 39, 44, 32,112, 97,114,101,110, - 116, 46,110, 97,109,101, 32,105,115, 32, 39, 46, 46,116, 46, - 112, 97,114,101,110,116, 46,110, 97,109,101, 41, 10, 32, 32, - 105,102, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, - 116, 46,110, 97,109,101, 44, 32, 34, 37, 98, 60, 62, 34, 44, - 32, 34, 34, 41, 32, 61, 61, 32,115,116,114,105,110,103, 46, - 103,115,117, 98, 40,116, 46,112, 97,114,101,110,116, 46,111, - 114,105,103,105,110, 97,108, 95,110, 97,109,101, 32,111,114, - 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 44, - 32, 34, 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104, - 101,110, 10, 32, 32, 32,116, 46,110, 97,109,101, 32, 61, 32, - 39,110,101,119, 39, 10, 32, 32, 32,116, 46,108,110, 97,109, - 101, 32, 61, 32, 39,110,101,119, 39, 10, 32, 32, 32,116, 46, - 112, 97,114,101,110,116, 46, 95,110,101,119, 32, 61, 32,116, - 114,117,101, 10, 32, 32, 32,116, 46,116,121,112,101, 32, 61, - 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 10, - 32, 32, 32,116, 46,112,116,114, 32, 61, 32, 39, 42, 39, 10, - 32, 32,101,108,115,101,105,102, 32,115,116,114,105,110,103, - 46,103,115,117, 98, 40,116, 46,110, 97,109,101, 44, 32, 34, - 37, 98, 60, 62, 34, 44, 32, 34, 34, 41, 32, 61, 61, 32, 39, - 126, 39, 46, 46,115,116,114,105,110,103, 46,103,115,117, 98, - 40,116, 46,112, 97,114,101,110,116, 46,111,114,105,103,105, - 110, 97,108, 95,110, 97,109,101, 32,111,114, 32,116, 46,112, - 97,114,101,110,116, 46,110, 97,109,101, 44, 32, 34, 37, 98, - 60, 62, 34, 44, 32, 34, 34, 41, 32,116,104,101,110, 10, 32, - 32, 32,116, 46,110, 97,109,101, 32, 61, 32, 39,100,101,108, - 101,116,101, 39, 10, 32, 32, 32,116, 46,108,110, 97,109,101, - 32, 61, 32, 39,100,101,108,101,116,101, 39, 10, 32, 32, 32, - 116, 46,112, 97,114,101,110,116, 46, 95,100,101,108,101,116, - 101, 32, 61, 32,116,114,117,101, 10, 32, 32,101,110,100, 10, - 32,101,110,100, 10, 32,116, 46, 99,110, 97,109,101, 32, 61, - 32,116, 58, 99,102,117,110, 99,110, 97,109,101, 40, 34,116, - 111,108,117, 97, 34, 41, 46, 46,116, 58,111,118,101,114,108, - 111, 97,100, 40,116, 41, 10, 32,114,101,116,117,114,110, 32, - 116, 10,101,110,100, 10, 10, 45, 45, 32, 67,111,110,115,116, - 114,117, 99,116,111,114, 10, 45, 45, 32, 69,120,112,101, 99, - 116,115, 32,116,104,114,101,101, 32,115,116,114,105,110,103, - 115, 58, 32,111,110,101, 32,114,101,112,114,101,115,101,110, - 116,105,110,103, 32,116,104,101, 32,102,117,110, 99,116,105, - 111,110, 32,100,101, 99,108, 97,114, 97,116,105,111,110, 44, - 10, 45, 45, 32, 97,110,111,116,104,101,114, 32,114,101,112, - 114,101,115,101,110,116,105,110,103, 32,116,104,101, 32, 97, - 114,103,117,109,101,110,116, 32,108,105,115,116, 44, 32, 97, - 110,100, 32,116,104,101, 32,116,104,105,114,100, 32,114,101, - 112,114,101,115,101,110,116,105,110,103, 10, 45, 45, 32,116, - 104,101, 32, 34, 99,111,110,115,116, 34, 32,111,114, 32,101, - 109,112,116,121, 32,115,116,114,105,110,103, 46, 10,102,117, - 110, 99,116,105,111,110, 32, 70,117,110, 99,116,105,111,110, - 32, 40,100, 44, 97, 44, 99, 41, 10, 32, 45, 45,108,111, 99, - 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116, - 114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 44, 39, 44, - 39, 41, 32, 45, 45, 32,101,108,105,109,105,110, 97,116,101, - 32, 98,114, 97, 99,101,115, 10, 32, 45, 45,108,111, 99, 97, - 108, 32,116, 32, 61, 32,115,112,108,105,116, 95,112, 97,114, - 97,109,115, 40,115,116,114,115,117, 98, 40, 97, 44, 50, 44, - 45, 50, 41, 41, 10, 10, 9,105,102, 32,110,111,116, 32,102, - 108, 97,103,115, 91, 39, 87, 39, 93, 32, 97,110,100, 32,115, - 116,114,105,110,103, 46,102,105,110,100, 40, 97, 44, 32, 34, - 37, 46, 37, 46, 37, 46, 37,115, 42, 37, 41, 34, 41, 32,116, - 104,101,110, 10, 10, 9, 9,119, 97,114,110,105,110,103, 40, - 34, 70,117,110, 99,116,105,111,110,115, 32,119,105,116,104, - 32,118, 97,114,105, 97, 98,108,101, 32, 97,114,103,117,109, - 101,110,116,115, 32, 40, 96, 46, 46, 46, 39, 41, 32, 97,114, - 101, 32,110,111,116, 32,115,117,112,112,111,114,116,101,100, - 46, 32, 73,103,110,111,114,105,110,103, 32, 34, 46, 46,100, - 46, 46, 97, 46, 46, 99, 41, 10, 9, 9,114,101,116,117,114, - 110, 32,110,105,108, 10, 9,101,110,100, 10, 10, 10, 32,108, - 111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97,108, - 32,108, 32, 61, 32,123,110, 61, 48,125, 10, 10, 32, 9, 97, - 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, - 97, 44, 32, 34, 37,115, 42, 40, 91, 37, 40, 37, 41, 93, 41, - 37,115, 42, 34, 44, 32, 34, 37, 49, 34, 41, 10, 9,108,111, - 99, 97,108, 32,116, 44,115,116,114,105,112, 44,108, 97,115, - 116, 32, 61, 32,115,116,114,105,112, 95,112, 97,114,115, 40, - 115,116,114,115,117, 98, 40, 97, 44, 50, 44, 45, 50, 41, 41, - 59, 10, 9,105,102, 32,115,116,114,105,112, 32,116,104,101, - 110, 10, 9, 9, 45, 45,108,111, 99, 97,108, 32,110,115, 32, - 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40,115,116, - 114,115,117, 98, 40, 97, 44, 49, 44, 45, 50, 41, 44, 32, 49, - 44, 32, 45, 40,115,116,114,105,110,103, 46,108,101,110, 40, - 108, 97,115,116, 41, 43, 49, 41, 41, 10, 9, 9,108,111, 99, - 97,108, 32,110,115, 32, 61, 32,106,111,105,110, 40,116, 44, - 32, 34, 44, 34, 44, 32, 49, 44, 32,108, 97,115,116, 45, 49, - 41, 10, 10, 9, 9,110,115, 32, 61, 32, 34, 40, 34, 46, 46, - 115,116,114,105,110,103, 46,103,115,117, 98, 40,110,115, 44, - 32, 34, 37,115, 42, 44, 37,115, 42, 36, 34, 44, 32, 34, 34, - 41, 46, 46, 39, 41, 39, 10, 9, 9, 45, 45,110,115, 32, 61, - 32,115,116,114,105,112, 95,100,101,102, 97,117,108,116,115, - 40,110,115, 41, 10, 10, 9, 9, 70,117,110, 99,116,105,111, - 110, 40,100, 44, 32,110,115, 44, 32, 99, 41, 10, 9, 9,102, - 111,114, 32,105, 61, 49, 44,108, 97,115,116, 32,100,111, 10, - 9, 9, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105,110, - 103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, - 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,101,110,100, - 10, 9,101,110,100, 10, 10, 32,119,104,105,108,101, 32,116, - 91,105, 93, 32,100,111, 10, 32, 32,108, 46,110, 32, 61, 32, - 108, 46,110, 43, 49, 10, 32, 32,108, 91,108, 46,110, 93, 32, - 61, 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,116, - 91,105, 93, 44, 39,118, 97,114, 39, 44,116,114,117,101, 41, - 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, - 10, 32,108,111, 99, 97,108, 32,102, 32, 61, 32, 68,101, 99, - 108, 97,114, 97,116,105,111,110, 40,100, 44, 39,102,117,110, - 99, 39, 41, 10, 32,102, 46, 97,114,103,115, 32, 61, 32,108, - 10, 32,102, 46, 99,111,110,115,116, 32, 61, 32, 99, 10, 32, - 114,101,116,117,114,110, 32, 95, 70,117,110, 99,116,105,111, - 110, 40,102, 41, 10,101,110,100, 10, 10,102,117,110, 99,116, - 105,111,110, 32,106,111,105,110, 40,116, 44, 32,115,101,112, - 44, 32,102,105,114,115,116, 44, 32,108, 97,115,116, 41, 10, - 10, 9,102,105,114,115,116, 32, 61, 32,102,105,114,115,116, - 32,111,114, 32, 49, 10, 9,108, 97,115,116, 32, 61, 32,108, - 97,115,116, 32,111,114, 32,116, 97, 98,108,101, 46,103,101, - 116,110, 40,116, 41, 10, 9,108,111, 99, 97,108, 32,108,115, - 101,112, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, 32, - 114,101,116, 32, 61, 32, 34, 34, 10, 9,108,111, 99, 97,108, - 32,108,111,111,112, 32, 61, 32,102, 97,108,115,101, 10, 9, - 102,111,114, 32,105, 32, 61, 32,102,105,114,115,116, 44,108, - 97,115,116, 32,100,111, 10, 10, 9, 9,114,101,116, 32, 61, - 32,114,101,116, 46, 46,108,115,101,112, 46, 46,116, 91,105, - 93, 10, 9, 9,108,115,101,112, 32, 61, 32,115,101,112, 10, - 9, 9,108,111,111,112, 32, 61, 32,116,114,117,101, 10, 9, - 101,110,100, 10, 9,105,102, 32,110,111,116, 32,108,111,111, - 112, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, - 32, 34, 34, 10, 9,101,110,100, 10, 10, 9,114,101,116,117, - 114,110, 32,114,101,116, 10,101,110,100, 10, 10,102,117,110, - 99,116,105,111,110, 32,115,116,114,105,112, 95,112, 97,114, - 115, 40,115, 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 32, - 61, 32,115,112,108,105,116, 95, 99, 95,116,111,107,101,110, - 115, 40,115, 44, 32, 39, 44, 39, 41, 10, 9,108,111, 99, 97, - 108, 32,115,116,114,105,112, 32, 61, 32,102, 97,108,115,101, - 10, 9,108,111, 99, 97,108, 32,108, 97,115,116, 10, 10, 9, - 102,111,114, 32,105, 61,116, 46,110, 44, 49, 44, 45, 49, 32, - 100,111, 10, 10, 9, 9,105,102, 32,110,111,116, 32,115,116, - 114,105,112, 32, 97,110,100, 32,112, 97,114, 97,109, 95,111, - 98,106,101, 99,116, 40,116, 91,105, 93, 41, 32,116,104,101, - 110, 10, 9, 9, 9,108, 97,115,116, 32, 61, 32,105, 10, 9, - 9, 9,115,116,114,105,112, 32, 61, 32,116,114,117,101, 10, - 9, 9,101,110,100, 10, 9, 9, 45, 45,105,102, 32,115,116, - 114,105,112, 32,116,104,101,110, 10, 9, 9, 45, 45, 9,116, - 91,105, 93, 32, 61, 32,115,116,114,105,110,103, 46,103,115, - 117, 98, 40,116, 91,105, 93, 44, 32, 34, 61, 46, 42, 36, 34, - 44, 32, 34, 34, 41, 10, 9, 9, 45, 45,101,110,100, 10, 9, - 101,110,100, 10, 10, 9,114,101,116,117,114,110, 32,116, 44, - 115,116,114,105,112, 44,108, 97,115,116, 10, 10,101,110,100, - 10, 10,102,117,110, 99,116,105,111,110, 32,115,116,114,105, - 112, 95,100,101,102, 97,117,108,116,115, 40,115, 41, 10, 10, - 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, - 98, 40,115, 44, 32, 34, 94, 37, 40, 34, 44, 32, 34, 34, 41, - 10, 9,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115, - 117, 98, 40,115, 44, 32, 34, 37, 41, 36, 34, 44, 32, 34, 34, - 41, 10, 10, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,115, - 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40,115, - 44, 32, 34, 44, 34, 41, 10, 9,108,111, 99, 97,108, 32,115, - 101,112, 44, 32,114,101,116, 32, 61, 32, 34, 34, 44, 34, 34, - 10, 9,102,111,114, 32,105, 61, 49, 44,116, 46,110, 32,100, - 111, 10, 9, 9,116, 91,105, 93, 32, 61, 32,115,116,114,105, - 110,103, 46,103,115,117, 98, 40,116, 91,105, 93, 44, 32, 34, - 61, 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 9,114,101, - 116, 32, 61, 32,114,101,116, 46, 46,115,101,112, 46, 46,116, - 91,105, 93, 10, 9, 9,115,101,112, 32, 61, 32, 34, 44, 34, - 10, 9,101,110,100, 10, 10, 9,114,101,116,117,114,110, 32, - 34, 40, 34, 46, 46,114,101,116, 46, 46, 34, 41, 34, 10,101, - 110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/function.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32,111,112,101,114, 97, - 116,111,114, 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114, - 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, - 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, - 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, - 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73, - 100, 58, 32, 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99, - 111,100,101, 32,105,115, 32,102,114,101,101, 32,115,111,102, - 116,119, 97,114,101, 59, 32,121,111,117, 32, 99, 97,110, 32, - 114,101,100,105,115,116,114,105, 98,117,116,101, 32,105,116, - 32, 97,110,100, 47,111,114, 32,109,111,100,105,102,121, 32, - 105,116, 46, 10, 45, 45, 32, 84,104,101, 32,115,111,102,116, - 119, 97,114,101, 32,112,114,111,118,105,100,101,100, 32,104, - 101,114,101,117,110,100,101,114, 32,105,115, 32,111,110, 32, - 97,110, 32, 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105, - 115, 44, 32, 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97, - 117,116,104,111,114, 32,104, 97,115, 32,110,111, 32,111, 98, - 108,105,103, 97,116,105,111,110, 32,116,111, 32,112,114,111, - 118,105,100,101, 32,109, 97,105,110,116,101,110, 97,110, 99, - 101, 44, 32,115,117,112,112,111,114,116, 44, 32,117,112,100, - 97,116,101,115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99, - 101,109,101,110,116,115, 44, 32,111,114, 32,109,111,100,105, - 102,105, 99, 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, - 32, 79,112,101,114, 97,116,111,114, 32, 99,108, 97,115,115, - 10, 45, 45, 32, 82,101,112,114,101,115,101,110,116,115, 32, - 97,110, 32,111,112,101,114, 97,116,111,114, 32,102,117,110, - 99,116,105,111,110, 32,111,114, 32, 97, 32, 99,108, 97,115, - 115, 32,111,112,101,114, 97,116,111,114, 32,109,101,116,104, - 111,100, 46, 10, 45, 45, 32, 73,116, 32,115,116,111,114,101, - 115, 32,116,104,101, 32,115, 97,109,101, 32,102,105,101,108, - 100,115, 32, 97,115, 32,102,117,110, 99,116,105,111,110,115, - 32,100,111, 32,112,108,117,115, 58, 10, 45, 45, 32, 32,107, - 105,110,100, 32, 61, 32,115,101,116, 32,111,102, 32, 99,104, - 97,114, 97, 99,116,101,114, 32,114,101,112,114,101,115,101, - 110,116,105,110,103, 32,116,104,101, 32,111,112,101,114, 97, - 116,111,114, 32, 40, 97,115, 32,105,116, 32, 97,112,112,101, - 114,115, 32,105,110, 32, 67, 43, 43, 32, 99,111,100,101, 41, - 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 32, - 61, 32,123, 10, 32,107,105,110,100, 32, 61, 32, 39, 39, 44, - 10,125, 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111, - 114, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97, - 115,115, 79,112,101,114, 97,116,111,114, 10,115,101,116,109, - 101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 79, - 112,101,114, 97,116,111,114, 44, 99,108, 97,115,115, 70,117, - 110, 99,116,105,111,110, 41, 10, 10, 45, 45, 32,116, 97, 98, - 108,101, 32,116,111, 32,116,114, 97,110,115,102,111,114,109, - 32,111,112,101,114, 97,116,111,114, 32,107,105,110,100, 32, - 105,110,116,111, 32,116,104,101, 32, 97,112,112,114,111,112, - 114,105, 97,116,101, 32,116, 97,103, 32,109,101,116,104,111, - 100, 32,110, 97,109,101, 10, 95, 84, 77, 32, 61, 32,123, 91, - 39, 43, 39, 93, 32, 61, 32, 39, 97,100,100, 39, 44, 10, 32, - 32, 32, 32, 32, 32, 32, 91, 39, 45, 39, 93, 32, 61, 32, 39, - 115,117, 98, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, - 42, 39, 93, 32, 61, 32, 39,109,117,108, 39, 44, 10, 32, 32, - 32, 32, 32, 32, 32, 91, 39, 47, 39, 93, 32, 61, 32, 39,100, - 105,118, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 60, - 39, 93, 32, 61, 32, 39,108,116, 39, 44, 10, 32, 32, 32, 32, - 32, 32, 32, 91, 39, 60, 61, 39, 93, 32, 61, 32, 39,108,101, - 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 61, 61, 39, - 93, 32, 61, 32, 39,101,113, 39, 44, 10, 32, 32, 32, 32, 32, - 32, 32, 91, 39, 91, 93, 39, 93, 32, 61, 32, 39,103,101,116, - 105, 39, 44, 10, 32, 32, 32, 32, 32, 32, 32, 91, 39, 38, 91, - 93, 39, 93, 32, 61, 32, 39,115,101,116,105, 39, 44, 10, 32, - 32, 32, 32, 32, 32, 32, 45, 45, 91, 39, 45, 62, 39, 93, 32, - 61, 32, 39,102,108,101, 99,104,105,116, 97, 39, 44, 10, 32, - 32, 32, 32, 32, 32,125, 10, 10, 10, 45, 45, 32, 80,114,105, - 110,116, 32,109,101,116,104,111,100, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 79,112,101,114, 97,116, - 111,114, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, - 44, 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40, - 105,100,101,110,116, 46, 46, 34, 79,112,101,114, 97,116,111, - 114,123, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, - 110,116, 46, 46, 34, 32,107,105,110,100, 32, 32, 61, 32, 39, - 34, 46, 46,115,101,108,102, 46,107,105,110,100, 46, 46, 34, - 39, 44, 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101, - 110,116, 46, 46, 34, 32,109,111,100, 32, 32, 61, 32, 39, 34, - 46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44, - 34, 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, - 46, 46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46, - 115,101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, - 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34, 32,112,116,114, 32, 32, 61, 32, 39, 34, 46, 46,115, - 101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 99,111,110,115,116, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46, 99,111,110,115,116, 46, 46, 34, 39, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32, 99,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, - 108,102, 46, 99,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, - 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, - 34, 32,108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115, - 101,108,102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, - 41, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34, 32, 97,114,103,115, 32, 61, 32,123, 34, 41, 10, 32, - 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, - 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, - 100,111, 10, 32, 32,115,101,108,102, 46, 97,114,103,115, 91, - 105, 93, 58,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34, 32, 32, 34, 44, 34, 44, 34, 41, 10, 32, 32,105, 32, - 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,112,114,105, - 110,116, 40,105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, - 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, - 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110,100, - 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115, - 115, 79,112,101,114, 97,116,111,114, 58,115,117,112, 99,111, - 100,101, 95,116,109,112, 40, 41, 10, 10, 9,105,102, 32,110, - 111,116, 32, 95, 84, 77, 91,115,101,108,102, 46,107,105,110, - 100, 93, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, - 110, 32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, - 46,115,117,112, 99,111,100,101, 40,115,101,108,102, 41, 10, - 9,101,110,100, 10, 10, 9, 45, 45, 32,110,111, 32,111,118, - 101,114,108,111, 97,100, 44, 32,110,111, 32,112, 97,114, 97, - 109,101,116,101,114,115, 44, 32, 97,108,119, 97,121,115, 32, - 105,110, 99,108, 97,115,115, 10, 9,111,117,116,112,117,116, - 40, 34, 47, 42, 32,109,101,116,104,111,100, 58, 34, 44,115, - 101,108,102, 46,110, 97,109,101, 44, 34, 32,111,102, 32, 99, - 108, 97,115,115, 32, 34, 44,115,101,108,102, 58,105,110, 99, - 108, 97,115,115, 40, 41, 44, 34, 32, 42, 47, 34, 41, 10, 10, - 9,111,117,116,112,117,116, 40, 34, 35,105,102,110,100,101, - 102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, 66, 76, 69, - 95, 34, 46, 46,115,101,108,102, 46, 99,110, 97,109,101, 41, - 10, 9,111,117,116,112,117,116, 40, 34, 92,110,115,116, 97, - 116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99, - 110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116, - 101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10, 10, - 9,105,102, 32,111,118,101,114,108,111, 97,100, 32, 60, 32, - 48, 32,116,104,101,110, 10, 9, 32,111,117,116,112,117,116, - 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, - 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10, 9,101, - 110,100, 10, 9,111,117,116,112,117,116, 40, 39, 32,116,111, - 108,117, 97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, - 95,101,114,114, 59, 39, 41, 10, 9,111,117,116,112,117,116, - 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10, 9, 45, 45, - 32, 99,104,101, 99,107, 32,115,101,108,102, 10, 9,108,111, - 99, 97,108, 32,105,115, 95,102,117,110, 99, 32, 61, 32,103, - 101,116, 95,105,115, 95,102,117,110, 99,116,105,111,110, 40, - 115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112, - 101, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, - 32, 32, 33, 39, 46, 46,105,115, 95,102,117,110, 99, 46, 46, - 39, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 34, 39, 46, - 46,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121, - 112,101, 46, 46, 39, 34, 44, 48, 44, 38,116,111,108,117, 97, - 95,101,114,114, 41, 32,124,124, 92,110, 39, 41, 10, 9,111, - 117,116,112,117,116, 40, 39, 32, 32, 32, 32, 32, 33,116,111, - 108,117, 97, 95,105,115,110,111,111, 98,106, 40,116,111,108, - 117, 97, 95, 83, 44, 50, 44, 38,116,111,108,117, 97, 95,101, - 114,114, 41, 92,110, 32, 41, 39, 41, 10, 9,111,117,116,112, - 117,116, 40, 39, 32, 32,103,111,116,111, 32,116,111,108,117, - 97, 95,108,101,114,114,111,114, 59, 39, 41, 10, 10, 9,111, - 117,116,112,117,116, 40, 39, 32,101,108,115,101, 92,110, 39, - 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110,100, - 105,102, 92,110, 39, 41, 32, 45, 45, 32,116,111,108,117, 97, - 95,114,101,108,101, 97,115,101, 10, 9,111,117,116,112,117, - 116, 40, 39, 32,123, 39, 41, 10, 10, 9, 45, 45, 32,100,101, - 99,108, 97,114,101, 32,115,101,108,102, 10, 9,111,117,116, - 112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46, 99,111, - 110,115,116, 44,115,101,108,102, 46,112, 97,114,101,110,116, - 46,116,121,112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, - 32, 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, - 40, 39, 44,115,101,108,102, 46, 99,111,110,115,116, 44,115, - 101,108,102, 46,112, 97,114,101,110,116, 46,116,121,112,101, - 44, 39, 42, 41, 32, 39, 41, 10, 9,108,111, 99, 97,108, 32, - 116,111, 95,102,117,110, 99, 32, 61, 32,103,101,116, 95,116, - 111, 95,102,117,110, 99, 40,115,101,108,102, 46,112, 97,114, - 101,110,116, 46,116,121,112,101, 41, 10, 9,111,117,116,112, - 117,116, 40,116,111, 95,102,117,110, 99, 44, 39, 40,116,111, - 108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10, 10, - 9, 45, 45, 32, 99,104,101, 99,107, 32,115,101,108,102, 10, - 9,111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101, - 102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, - 92,110, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32, - 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,108, - 117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, - 83, 44, 34,105,110,118, 97,108,105,100, 32, 92, 39,115,101, - 108,102, 92, 39, 32,105,110, 32,102,117,110, 99,116,105,111, - 110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,110, 97,109, - 101, 46, 46, 39, 92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, - 41, 59, 10, 9,111,117,116,112,117,116, 40, 39, 35,101,110, - 100,105,102, 92,110, 39, 41, 10, 10, 9, 45, 45, 32, 99, 97, - 115,116, 32,115,101,108,102, 10, 9,111,117,116,112,117,116, - 40, 39, 32, 32, 39, 44,115,101,108,102, 46,109,111,100, 44, - 115,101,108,102, 46,116,121,112,101, 44,115,101,108,102, 46, - 112,116,114, 44, 39,116,111,108,117, 97, 95,114,101,116, 32, - 61, 32, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 40, - 39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102, - 46,116,121,112,101, 44,115,101,108,102, 46,112,116,114, 44, - 39, 41, 40, 42,115,101,108,102, 41, 59, 39, 41, 10, 10, 9, - 45, 45, 32,114,101,116,117,114,110, 32,118, 97,108,117,101, - 10, 9,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32, - 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, - 112,101, 41, 10, 9,105,102, 32,116, 32,116,104,101,110, 10, - 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, 32,116,111, - 108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46, 46, 39, - 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,116, 44, - 39, 41,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, - 10, 9,101,108,115,101, 10, 9, 9,116, 32, 61, 32,115,101, - 108,102, 46,116,121,112,101, 10, 9, 9,108,111, 99, 97,108, - 32,112,117,115,104, 95,102,117,110, 99, 32, 61, 32,103,101, - 116, 95,112,117,115,104, 95,102,117,110, 99,116,105,111,110, - 40,116, 41, 10, 9, 9,110,101,119, 95,116, 32, 61, 32,115, - 116,114,105,110,103, 46,103,115,117, 98, 40,116, 44, 32, 34, - 99,111,110,115,116, 37,115, 43, 34, 44, 32, 34, 34, 41, 10, - 9, 9,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, - 61, 32, 39, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117, - 116,112,117,116, 40, 39, 32, 32, 32,123, 39, 41, 10, 9, 9, - 9,111,117,116,112,117,116, 40, 39, 35,105,102,100,101,102, - 32, 95, 95, 99,112,108,117,115,112,108,117,115, 92,110, 39, - 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, - 32, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95,111, - 98,106, 32, 61, 32, 77,116,111,108,117, 97, 95,110,101,119, - 40, 40, 39, 44,110,101,119, 95,116, 44, 39, 41, 40,116,111, - 108,117, 97, 95,114,101,116, 41, 41, 59, 39, 41, 10, 9, 9, - 9,111,117,116,112,117,116, 40, 39, 32, 32, 32, 32, 39, 44, - 112,117,115,104, 95,102,117,110, 99, 44, 39, 40,116,111,108, - 117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, - 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9, - 111,117,116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108, - 117, 97, 95,114,101,103,105,115,116,101,114, 95,103, 99, 40, - 116,111,108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116, - 116,111,112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, - 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 35,101, - 108,115,101, 92,110, 39, 41, 10, 9, 9, 9,111,117,116,112, - 117,116, 40, 39, 32, 32, 32, 32,118,111,105,100, 42, 32,116, - 111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,117, - 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83, 44, - 40,118,111,105,100, 42, 41, 38,116,111,108,117, 97, 95,114, - 101,116, 44,115,105,122,101,111,102, 40, 39, 44,116, 44, 39, - 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, - 40, 39, 32, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117, - 110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44,116,111, - 108,117, 97, 95,111, 98,106, 44, 34, 39, 44,116, 44, 39, 34, - 41, 59, 39, 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, - 39, 32, 32, 32, 32,116,111,108,117, 97, 95,114,101,103,105, - 115,116,101,114, 95,103, 99, 40,116,111,108,117, 97, 95, 83, - 44,108,117, 97, 95,103,101,116,116,111,112, 40,116,111,108, - 117, 97, 95, 83, 41, 41, 59, 39, 41, 10, 9, 9, 9,111,117, - 116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, - 41, 10, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, 32, - 32,125, 39, 41, 10, 9, 9,101,108,115,101,105,102, 32,115, - 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 38, 39, 32, - 116,104,101,110, 10, 9, 9, 9,111,117,116,112,117,116, 40, - 39, 32, 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, - 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105, - 100, 42, 41, 38,116,111,108,117, 97, 95,114,101,116, 44, 34, - 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9,101,108, - 115,101, 10, 9, 9, 9,105,102, 32,108,111, 99, 97,108, 95, - 99,111,110,115,116,114,117, 99,116,111,114, 32,116,104,101, - 110, 10, 9, 9, 9, 9,111,117,116,112,117,116, 40, 39, 32, - 32, 32, 39, 44,112,117,115,104, 95,102,117,110, 99, 44, 39, - 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 32, - 42, 41,116,111,108,117, 97, 95,114,101,116, 44, 34, 39, 44, - 116, 44, 39, 34, 41, 59, 39, 41, 10, 9, 9, 9, 9,111,117, - 116,112,117,116, 40, 39, 32, 32, 32, 32,116,111,108,117, 97, - 95,114,101,103,105,115,116,101,114, 95,103, 99, 40,116,111, - 108,117, 97, 95, 83, 44,108,117, 97, 95,103,101,116,116,111, - 112, 40,116,111,108,117, 97, 95, 83, 41, 41, 59, 39, 41, 10, - 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,117,116, - 112,117,116, 40, 39, 32, 32, 32, 39, 44,112,117,115,104, 95, - 102,117,110, 99, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, - 40,118,111,105,100, 42, 41,116,111,108,117, 97, 95,114,101, - 116, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10, 9, - 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110, - 100, 10, 10, 9,111,117,116,112,117,116, 40, 39, 32, 32,125, - 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 32,114,101, - 116,117,114,110, 32, 49, 59, 39, 41, 10, 10, 9,111,117,116, - 112,117,116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, - 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, - 10, 9,111,117,116,112,117,116, 40, 39,116,111,108,117, 97, - 95,108,101,114,114,111,114, 58, 92,110, 39, 41, 10, 9,111, - 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,101, - 114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35, - 102,101,114,114,111,114, 32,105,110, 32,102,117,110, 99,116, - 105,111,110, 32, 92, 39, 39, 46, 46,115,101,108,102, 46,108, - 110, 97,109,101, 46, 46, 39, 92, 39, 46, 34, 44, 38,116,111, - 108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10, 9,111,117, - 116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 48, - 59, 39, 41, 10, 9,111,117,116,112,117,116, 40, 39, 35,101, - 110,100,105,102, 92,110, 39, 41, 10, 10, 10, 9,111,117,116, - 112,117,116, 40, 39,125, 39, 41, 10, 9,111,117,116,112,117, - 116, 40, 39, 35,101,110,100,105,102, 32, 47, 47, 35,105,102, - 110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 68, 73, 83, 65, - 66, 76, 69, 92,110, 39, 41, 10, 9,111,117,116,112,117,116, - 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10, 45, 45, 32, - 73,110,116,101,114,110, 97,108, 32, 99,111,110,115,116,114, - 117, 99,116,111,114, 10,102,117,110, 99,116,105,111,110, 32, - 95, 79,112,101,114, 97,116,111,114, 32, 40,116, 41, 10, 32, - 115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44, - 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 41, 10, - 10, 32,105,102, 32,116, 46, 99,111,110,115,116, 32,126, 61, - 32, 39, 99,111,110,115,116, 39, 32, 97,110,100, 32,116, 46, - 99,111,110,115,116, 32,126, 61, 32, 39, 39, 32,116,104,101, - 110, 10, 32, 32,101,114,114,111,114, 40, 34, 35,105,110,118, - 97,108,105,100, 32, 39, 99,111,110,115,116, 39, 32,115,112, - 101, 99,105,102,105, 99, 97,116,105,111,110, 34, 41, 10, 32, - 101,110,100, 10, 10, 32, 97,112,112,101,110,100, 40,116, 41, - 10, 32,105,102, 32,110,111,116, 32,116, 58,105,110, 99,108, - 97,115,115, 40, 41, 32,116,104,101,110, 10, 32, 32,101,114, - 114,111,114, 40, 34, 35,111,112,101,114, 97,116,111,114, 32, - 99, 97,110, 32,111,110,108,121, 32, 98,101, 32,100,101,102, - 105,110,101,100, 32, 97,115, 32, 99,108, 97,115,115, 32,109, - 101,109, 98,101,114, 34, 41, 10, 32,101,110,100, 10, 10, 32, - 45, 45,116, 46,110, 97,109,101, 32, 61, 32,116, 46,110, 97, - 109,101, 32, 46, 46, 32, 34, 95, 34, 32, 46, 46, 32, 40, 95, - 84, 77, 91,116, 46,107,105,110,100, 93, 32,111,114, 32,116, - 46,107,105,110,100, 41, 10, 32,116, 46, 99,110, 97,109,101, - 32, 61, 32,116, 58, 99,102,117,110, 99,110, 97,109,101, 40, - 34,116,111,108,117, 97, 34, 41, 46, 46,116, 58,111,118,101, - 114,108,111, 97,100, 40,116, 41, 10, 32,116, 46,110, 97,109, - 101, 32, 61, 32, 34,111,112,101,114, 97,116,111,114, 34, 32, - 46, 46, 32,116, 46,107,105,110,100, 32, 32, 45, 45, 32,115, - 101,116, 32, 97,112,112,114,111,112,114,105, 97,116,101, 32, - 99, 97,108,108,105,110,103, 32,110, 97,109,101, 10, 32,114, - 101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 45, 45, - 32, 67,111,110,115,116,114,117, 99,116,111,114, 10,102,117, - 110, 99,116,105,111,110, 32, 79,112,101,114, 97,116,111,114, - 32, 40,100, 44,107, 44, 97, 44, 99, 41, 10, 10, 9,108,111, - 99, 97,108, 32,111,112, 95,107, 32, 61, 32,115,116,114,105, - 110,103, 46,103,115,117, 98, 40,107, 44, 32, 34, 94, 37,115, - 42, 34, 44, 32, 34, 34, 41, 10, 9,111,112, 95,107, 32, 61, - 32,115,116,114,105,110,103, 46,103,115,117, 98, 40,107, 44, - 32, 34, 37,115, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9, 45, - 45,105,102, 32,115,116,114,105,110,103, 46,102,105,110,100, - 40,107, 44, 32, 34, 94, 91, 37,119, 95, 58, 37,100, 60, 62, - 37, 42, 37, 38, 93, 43, 36, 34, 41, 32,116,104,101,110, 10, - 9,105,102, 32,100, 32, 61, 61, 32, 34,111,112,101,114, 97, - 116,111,114, 34, 32, 97,110,100, 32,107, 32,126, 61, 32, 39, - 39, 32,116,104,101,110, 10, 10, 9, 9,100, 32, 61, 32,107, - 46, 46, 34, 32,111,112,101,114, 97,116,111,114, 34, 10, 9, - 101,108,115,101,105,102, 32,110,111,116, 32, 95, 84, 77, 91, - 111,112, 95,107, 93, 32,116,104,101,110, 10, 10, 9, 9,105, - 102, 32,102,108, 97,103,115, 91, 39, 87, 39, 93, 32,116,104, - 101,110, 10, 9, 9, 9,101,114,114,111,114, 40, 34,116,111, - 108,117, 97, 58, 32,110,111, 32,115,117,112,112,111,114,116, - 32,102,111,114, 32,111,112,101,114, 97,116,111,114, 34, 32, - 46, 46, 32,102, 46,107,105,110,100, 41, 10, 9, 9,101,108, - 115,101, 10, 9, 9, 9,119, 97,114,110,105,110,103, 40, 34, - 78,111, 32,115,117,112,112,111,114,116, 32,102,111,114, 32, - 111,112,101,114, 97,116,111,114, 32, 34, 46, 46,111,112, 95, - 107, 46, 46, 34, 44, 32,105,103,110,111,114,105,110,103, 34, - 41, 10, 9, 9, 9,114,101,116,117,114,110, 32,110,105,108, - 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 9,108, - 111, 99, 97,108, 32,114,101,102, 32, 61, 32, 39, 39, 10, 32, - 108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, - 95, 99, 95,116,111,107,101,110,115, 40,115,116,114,115,117, - 98, 40, 97, 44, 50, 44,115,116,114,108,101,110, 40, 97, 41, - 45, 49, 41, 44, 39, 44, 39, 41, 32, 45, 45, 32,101,108,105, - 109,105,110, 97,116,101, 32, 98,114, 97, 99,101,115, 10, 32, - 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,108,111, 99, 97, - 108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10, 32,119,104, - 105,108,101, 32,116, 91,105, 93, 32,100,111, 10, 32, 32,108, - 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32,108, 91, - 108, 46,110, 93, 32, 61, 32, 68,101, 99,108, 97,114, 97,116, - 105,111,110, 40,116, 91,105, 93, 44, 39,118, 97,114, 39, 41, - 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, - 10, 32,105,102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32, - 116,104,101,110, 10, 9, 32,108,111, 99, 97,108, 32, 95, 10, - 9, 32, 95, 44, 32, 95, 44, 32,114,101,102, 32, 61, 32,115, - 116,114,102,105,110,100, 40,100, 44, 39, 40, 38, 41, 39, 41, - 10, 32, 32,100, 32, 61, 32,103,115,117, 98, 40,100, 44, 39, - 38, 39, 44, 39, 39, 41, 10, 32,101,108,115,101,105,102, 32, - 107, 61, 61, 39, 38, 91, 93, 39, 32,116,104,101,110, 10, 32, - 32,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10, 32, 32, - 108, 91,108, 46,110, 93, 32, 61, 32, 68,101, 99,108, 97,114, - 97,116,105,111,110, 40,100, 44, 39,118, 97,114, 39, 41, 10, - 32, 32,108, 91,108, 46,110, 93, 46,110, 97,109,101, 32, 61, - 32, 39,116,111,108,117, 97, 95,118, 97,108,117,101, 39, 10, - 32,101,110,100, 10, 32,108,111, 99, 97,108, 32,102, 32, 61, - 32, 68,101, 99,108, 97,114, 97,116,105,111,110, 40,100, 44, - 39,102,117,110, 99, 39, 41, 10, 32,105,102, 32,107, 32, 61, - 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32, 40,108, 91, 49, - 93, 61, 61,110,105,108, 32,111,114, 32,105,115, 98, 97,115, - 105, 99, 40,108, 91, 49, 93, 46,116,121,112,101, 41,126, 61, - 39,110,117,109, 98,101,114, 39, 41, 32,116,104,101,110, 10, - 32, 32,101,114,114,111,114, 40, 39,111,112,101,114, 97,116, - 111,114, 91, 93, 32, 99, 97,110, 32,111,110,108,121, 32, 98, - 101, 32,100,101,102,105,110,101,100, 32,102,111,114, 32,110, - 117,109,101,114,105, 99, 32,105,110,100,101,120, 46, 39, 41, - 10, 32,101,110,100, 10, 32,102, 46, 97,114,103,115, 32, 61, - 32,108, 10, 32,102, 46, 99,111,110,115,116, 32, 61, 32, 99, - 10, 32,102, 46,107,105,110,100, 32, 61, 32,111,112, 95,107, - 10, 32,102, 46,108,110, 97,109,101, 32, 61, 32, 34, 46, 34, - 46, 46, 40, 95, 84, 77, 91,102, 46,107,105,110,100, 93, 32, - 111,114, 32,102, 46,107,105,110,100, 41, 10, 32,105,102, 32, - 110,111,116, 32, 95, 84, 77, 91,102, 46,107,105,110,100, 93, - 32,116,104,101,110, 10, 32, 9,102, 46, 99, 97,115,116, 95, - 111,112,101,114, 97,116,111,114, 32, 61, 32,116,114,117,101, - 10, 32,101,110,100, 10, 32,105,102, 32,102, 46,107,105,110, - 100, 32, 61, 61, 32, 39, 91, 93, 39, 32, 97,110,100, 32,114, - 101,102, 61, 61, 39, 38, 39, 32, 97,110,100, 32,102, 46, 99, - 111,110,115,116,126, 61, 39, 99,111,110,115,116, 39, 32,116, - 104,101,110, 10, 32, 32, 79,112,101,114, 97,116,111,114, 40, - 100, 44, 39, 38, 39, 46, 46,107, 44, 97, 44, 99, 41, 32, 9, - 45, 45, 32, 99,114,101, 97,116,101, 32, 99,111,114,114,101, - 115,112,111,100,105,110,103, 32,115,101,116, 32,111,112,101, - 114, 97,116,111,114, 10, 32,101,110,100, 10, 32,114,101,116, - 117,114,110, 32, 95, 79,112,101,114, 97,116,111,114, 40,102, - 41, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/operator.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 10, 95,103,108,111, 98, 97,108, 95,116,101,109,112,108, 97, - 116,101,115, 32, 61, 32,123,125, 10, 10, 99,108, 97,115,115, - 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, 32, 61, - 32,123, 10, 10, 9,110, 97,109,101, 32, 61, 32, 39, 39, 44, - 10, 9, 98,111,100,121, 32, 61, 32, 39, 39, 44, 10, 9,112, - 97,114,101,110,116,115, 32, 61, 32,123,125, 44, 10, 9, 97, - 114,103,115, 32, 61, 32,123,125, 44, 32, 45, 45, 32,116,104, - 101, 32,116,101,109,112,108, 97,116,101, 32, 97,114,103,117, - 109,101,110,116,115, 10,125, 10, 10, 99,108, 97,115,115, 84, - 101,109,112,108, 97,116,101, 67,108, 97,115,115, 46, 95, 95, - 105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 84,101, - 109,112,108, 97,116,101, 67,108, 97,115,115, 10, 10, 10,102, - 117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 84,101, - 109,112,108, 97,116,101, 67,108, 97,115,115, 58,116,104,114, - 111,119, 40,116,121,112,101,115, 44, 32,108,111, 99, 97,108, - 95,115, 99,111,112,101, 41, 10, 10, 9, 45, 45,105,102, 32, - 116, 97, 98,108,101, 46,103,101,116,110, 40,116,121,112,101, - 115, 41, 32,126, 61, 32,116, 97, 98,108,101, 46,103,101,116, - 110, 40,115,101,108,102, 46, 97,114,103,115, 41, 32,116,104, - 101,110, 10, 9, 45, 45, 9,101,114,114,111,114, 40, 34, 35, - 105,110,118, 97,108,105,100, 32,112, 97,114, 97,109,101,116, - 101,114, 32, 99,111,117,110,116, 34, 41, 10, 9, 45, 45,101, - 110,100, 10, 10, 9, 45, 45, 32,114,101,112,108, 97, 99,101, - 10, 9,102,111,114, 32,105, 32, 61, 49, 32, 44, 32,116,121, - 112,101,115, 46,110, 32,100,111, 10, 10, 9, 9,108,111, 99, - 97,108, 32, 73,108, 32, 61, 32,115,112,108,105,116, 95, 99, - 95,116,111,107,101,110,115, 40,116,121,112,101,115, 91,105, - 93, 44, 32, 34, 32, 34, 41, 10, 9, 9,105,102, 32,116, 97, - 98,108,101, 46,103,101,116,110, 40, 73,108, 41, 32,126, 61, - 32,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, - 102, 46, 97,114,103,115, 41, 32,116,104,101,110, 10, 9, 9, - 9,101,114,114,111,114, 40, 34, 35,105,110,118, 97,108,105, - 100, 32,112, 97,114, 97,109,101,116,101,114, 32, 99,111,117, - 110,116, 32,102,111,114, 32, 34, 46, 46,116,121,112,101,115, - 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9,108,111, - 99, 97,108, 32, 98, 73, 32, 61, 32,115,101,108,102, 46, 98, - 111,100,121, 10, 9, 9,108,111, 99, 97,108, 32,112, 73, 32, - 61, 32,123,125, 10, 9, 9,102,111,114, 32,106, 32, 61, 32, - 49, 44,115,101,108,102, 46, 97,114,103,115, 46,110, 32,100, - 111, 10, 9, 9, 9, 45, 45, 84,108, 91,106, 93, 32, 61, 32, - 102,105,110,100,116,121,112,101, 40, 84,108, 91,106, 93, 41, - 32,111,114, 32, 84,108, 91,106, 93, 10, 9, 9, 9, 98, 73, - 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, - 98, 73, 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 46, - 46,115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, - 34, 40, 91, 94, 95, 37,119, 93, 41, 34, 44, 32, 34, 37, 49, - 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, - 10, 9, 9, 9,105,102, 32,115,101,108,102, 46,112, 97,114, - 101,110,116,115, 32,116,104,101,110, 10, 9, 9, 9, 9,102, - 111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103,101, - 116,110, 40,115,101,108,102, 46,112, 97,114,101,110,116,115, - 41, 32,100,111, 10, 9, 9, 9, 9, 9,112, 73, 91,105, 93, - 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, - 115,101,108,102, 46,112, 97,114,101,110,116,115, 91,105, 93, - 44, 32, 34, 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 46, 46, - 115,101,108,102, 46, 97,114,103,115, 91,106, 93, 46, 46, 34, - 40, 91, 94, 95, 37,119, 93, 63, 41, 34, 44, 32, 34, 37, 49, - 34, 46, 46, 73,108, 91,106, 93, 46, 46, 34, 37, 50, 34, 41, - 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, - 10, 9, 9,101,110,100, 10, 9, 9, 45, 45,108,111, 99, 97, - 108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, 46, - 46,115,116,114,105,110,103, 46,103,115,117, 98, 40,116,121, - 112,101,115, 91,105, 93, 44, 32, 34, 37,115, 43, 34, 44, 32, - 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9,108,111, 99, - 97,108, 32, 97,112,112,101,110,100, 32, 61, 32, 34, 60, 34, - 46, 46, 99,111,110, 99, 97,116, 40, 73,108, 44, 32, 49, 44, - 32,116, 97, 98,108,101, 46,103,101,116,110, 40, 73,108, 41, - 44, 32, 34, 44, 34, 41, 46, 46, 34, 62, 34, 10, 9, 9, 97, - 112,112,101,110,100, 32, 61, 32,115,116,114,105,110,103, 46, - 103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, 34, 37, - 115, 42, 44, 37,115, 42, 34, 44, 32, 34, 44, 34, 41, 10, 9, - 9, 97,112,112,101,110,100, 32, 61, 32,115,116,114,105,110, - 103, 46,103,115,117, 98, 40, 97,112,112,101,110,100, 44, 32, - 34, 62, 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, - 102,111,114, 32,105, 61, 49, 44,116, 97, 98,108,101, 46,103, - 101,116,110, 40,112, 73, 41, 32,100,111, 10, 9, 9, 9, 45, - 45,112, 73, 91,105, 93, 32, 61, 32,115,116,114,105,110,103, - 46,103,115,117, 98, 40,112, 73, 91,105, 93, 44, 32, 34, 62, - 62, 34, 44, 32, 34, 62, 32, 62, 34, 41, 10, 9, 9, 9,112, - 73, 91,105, 93, 32, 61, 32,114,101,115,111,108,118,101, 95, - 116,101,109,112,108, 97,116,101, 95,116,121,112,101,115, 40, - 112, 73, 91,105, 93, 41, 10, 9, 9,101,110,100, 10, 9, 9, - 98, 73, 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, - 98, 40, 98, 73, 44, 32, 34, 62, 62, 34, 44, 32, 34, 62, 32, - 62, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,110, 32, 61, - 32,115,101,108,102, 46,110, 97,109,101, 10, 9, 9,105,102, - 32,108,111, 99, 97,108, 95,115, 99,111,112,101, 32,116,104, - 101,110, 10, 9, 9, 9,110, 32, 61, 32,115,101,108,102, 46, - 108,111, 99, 97,108, 95,110, 97,109,101, 10, 9, 9,101,110, - 100, 10, 10, 9, 9, 67,108, 97,115,115, 40,110, 46, 46, 97, - 112,112,101,110,100, 44, 32,112, 73, 44, 32, 98, 73, 41, 10, - 9,101,110,100, 10,101,110,100, 10, 10, 10,102,117,110, 99, - 116,105,111,110, 32, 84,101,109,112,108, 97,116,101, 67,108, - 97,115,115, 40,110, 97,109,101, 44, 32,112, 97,114,101,110, - 116,115, 44, 32, 98,111,100,121, 44, 32,112, 97,114, 97,109, - 101,116,101,114,115, 41, 10, 10, 9,108,111, 99, 97,108, 32, - 111, 32, 61, 32,123, 10, 9, 10, 9, 9,112, 97,114,101,110, - 116,115, 32, 61, 32,112, 97,114,101,110,116,115, 44, 10, 9, - 9, 98,111,100,121, 32, 61, 32, 98,111,100,121, 44, 10, 9, - 9, 97,114,103,115, 32, 61, 32,112, 97,114, 97,109,101,116, - 101,114,115, 44, 10, 9,125, 10, 9, 10, 9,108,111, 99, 97, - 108, 32,111,110, 97,109,101, 32, 61, 32,115,116,114,105,110, - 103, 46,103,115,117, 98, 40,110, 97,109,101, 44, 32, 34, 64, - 46, 42, 36, 34, 44, 32, 34, 34, 41, 10, 9,111,110, 97,109, - 101, 32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99, - 101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101, - 114, 46, 99,117,114,114, 41, 46, 46,111,110, 97,109,101, 10, - 9,111, 46,110, 97,109,101, 32, 61, 32,111,110, 97,109,101, - 10, 10, 9,111, 46,108,111, 99, 97,108, 95,110, 97,109,101, - 32, 61, 32,110, 97,109,101, 10, 9, 10, 9,115,101,116,109, - 101,116, 97,116, 97, 98,108,101, 40,111, 44, 32, 99,108, 97, - 115,115, 84,101,109,112,108, 97,116,101, 67,108, 97,115,115, - 41, 10, 10, 9,105,102, 32, 95,103,108,111, 98, 97,108, 95, - 116,101,109,112,108, 97,116,101,115, 91,111,110, 97,109,101, - 93, 32,116,104,101,110, 10, 9, 9,119, 97,114,110,105,110, - 103, 40, 34, 68,117,112,108,105, 99, 97,116,101, 32,100,101, - 99,108, 97,114, 97,116,105,111,110, 32,111,102, 32,116,101, - 109,112,108, 97,116,101, 32, 34, 46, 46,111,110, 97,109,101, - 41, 10, 9,101,108,115,101, 10, 9, 9, 95,103,108,111, 98, - 97,108, 95,116,101,109,112,108, 97,116,101,115, 91,111,110, - 97,109,101, 93, 32, 61, 32,111, 10, 9,101,110,100, 10, 10, - 9,114,101,116,117,114,110, 32,111, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/template_class.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,116,111,108,117, 97, 58, 32, 99,108, 97,115,115, - 32, 99,108, 97,115,115, 10, 45, 45, 32, 87,114,105,116,116, - 101,110, 32, 98,121, 32, 87, 97,108,100,101,109, 97,114, 32, - 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, 71,114, 97, - 102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, 32, 74,117, - 108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 36, 73,100, 58, 32, - 36, 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, - 32,105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97, - 114,101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100, - 105,115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110, - 100, 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, - 10, 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114, - 101, 32,112,114,111,118,105,100,101,100, 32,104,101,114,101, - 117,110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, - 34, 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, - 97,110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104, - 111,114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, - 97,116,105,111,110, 32,116,111, 32,112,114,111,118,105,100, - 101, 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32, - 115,117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101, - 115, 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101, - 110,116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, - 97,116,105,111,110,115, 46, 10, 10, 10, 45, 45, 32, 67,108, - 97,115,115, 32, 99,108, 97,115,115, 10, 45, 45, 32, 82,101, - 112,114,101,115,101,110,116,115, 32, 97, 32, 99,108, 97,115, - 115, 32,100,101,102,105,110,105,116,105,111,110, 46, 10, 45, - 45, 32, 83,116,111,114,101,115, 32,116,104,101, 32,102,111, - 108,108,111,119,105,110,103, 32,102,105,101,108,100,115, 58, - 10, 45, 45, 32, 32, 32, 32,110, 97,109,101, 32, 61, 32, 99, - 108, 97,115,115, 32,110, 97,109,101, 10, 45, 45, 32, 32, 32, - 32, 98, 97,115,101, 32, 61, 32, 99,108, 97,115,115, 32, 98, - 97,115,101, 44, 32,105,102, 32, 97,110,121, 32, 40,111,110, - 108,121, 32,115,105,110,103,108,101, 32,105,110,104,101,114, - 105,116, 97,110, 99,101, 32,105,115, 32,115,117,112,112,111, - 114,116,101,100, 41, 10, 45, 45, 32, 32, 32, 32,123,105,125, - 32, 32, 61, 32,108,105,115,116, 32,111,102, 32,109,101,109, - 98,101,114,115, 10, 99,108, 97,115,115, 67,108, 97,115,115, - 32, 61, 32,123, 10, 32, 99,108, 97,115,115,116,121,112,101, - 32, 61, 32, 39, 99,108, 97,115,115, 39, 44, 10, 32,110, 97, - 109,101, 32, 61, 32, 39, 39, 44, 10, 32, 98, 97,115,101, 32, - 61, 32, 39, 39, 44, 10, 32,116,121,112,101, 32, 61, 32, 39, - 39, 44, 10, 32, 98,116,121,112,101, 32, 61, 32, 39, 39, 44, - 10, 32, 99,116,121,112,101, 32, 61, 32, 39, 39, 44, 10,125, - 10, 99,108, 97,115,115, 67,108, 97,115,115, 46, 95, 95,105, - 110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 67,108, 97, - 115,115, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, - 40, 99,108, 97,115,115, 67,108, 97,115,115, 44, 99,108, 97, - 115,115, 67,111,110,116, 97,105,110,101,114, 41, 10, 10, 10, - 45, 45, 32,114,101,103,105,115,116,101,114, 32, 99,108, 97, - 115,115, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, - 115,115, 67,108, 97,115,115, 58,114,101,103,105,115,116,101, - 114, 32, 40,112,114,101, 41, 10, 10, 9,105,102, 32,110,111, - 116, 32,115,101,108,102, 58, 99,104,101, 99,107, 95,112,117, - 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, 41, 32,116, - 104,101,110, 10, 9, 9,114,101,116,117,114,110, 10, 9,101, - 110,100, 10, 10, 32,112,114,101, 32, 61, 32,112,114,101, 32, - 111,114, 32, 39, 39, 10, 32,112,117,115,104, 40,115,101,108, - 102, 41, 10, 9,105,102, 32, 95, 99,111,108,108,101, 99,116, - 91,115,101,108,102, 46,116,121,112,101, 93, 32,116,104,101, - 110, 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, - 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115, - 112,108,117,115, 92,110, 39, 41, 10, 32, 32,111,117,116,112, - 117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, 95, - 99, 99,108, 97,115,115, 40,116,111,108,117, 97, 95, 83, 44, - 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, - 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46,116,121, - 112,101, 46, 46, 39, 34, 44, 34, 39, 46, 46,115,101,108,102, - 46, 98,116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46, 95, - 99,111,108,108,101, 99,116, 91,115,101,108,102, 46,116,121, - 112,101, 93, 46, 46, 39, 41, 59, 39, 41, 10, 9, 9,111,117, - 116,112,117,116, 40,112,114,101, 44, 39, 35,101,108,115,101, - 92,110, 39, 41, 10, 32, 32,111,117,116,112,117,116, 40,112, - 114,101, 46, 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97, - 115,115, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46, - 115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, - 34, 39, 46, 46,115,101,108,102, 46,116,121,112,101, 46, 46, - 39, 34, 44, 34, 39, 46, 46,115,101,108,102, 46, 98,116,121, - 112,101, 46, 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, - 10, 9, 9,111,117,116,112,117,116, 40,112,114,101, 44, 39, - 35,101,110,100,105,102, 92,110, 39, 41, 10, 9,101,108,115, - 101, 10, 32, 32,111,117,116,112,117,116, 40,112,114,101, 46, - 46, 39,116,111,108,117, 97, 95, 99, 99,108, 97,115,115, 40, - 116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108, - 102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 34, 39, 46, - 46,115,101,108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, - 34, 39, 46, 46,115,101,108,102, 46, 98,116,121,112,101, 46, - 46, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10, 9,101, - 110,100, 10, 9,105,102, 32,115,101,108,102, 46,101,120,116, - 114, 97, 95, 98, 97,115,101,115, 32,116,104,101,110, 10, 9, - 9,102,111,114, 32,107, 44, 98, 97,115,101, 32,105,110, 32, - 105,112, 97,105,114,115, 40,115,101,108,102, 46,101,120,116, - 114, 97, 95, 98, 97,115,101,115, 41, 32,100,111, 10, 9, 9, - 9, 45, 45, 32,110,111,116, 32,110,111,119, 10, 32, 32, 32, - 45, 45,111,117,116,112,117,116, 40,112,114,101, 46, 46, 39, - 32,116,111,108,117, 97, 95, 97,100,100, 98, 97,115,101, 40, - 116,111,108,117, 97, 95, 83, 44, 32, 34, 39, 46, 46,115,101, - 108,102, 46,116,121,112,101, 46, 46, 39, 34, 44, 32, 34, 39, - 46, 46, 98, 97,115,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, - 9, 9,101,110,100, 10, 9,101,110,100, 10, 32,111,117,116, - 112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, 97, - 95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111, - 108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46, - 108,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10, 32, - 108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108, - 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32, - 115,101,108,102, 91,105, 93, 58,114,101,103,105,115,116,101, - 114, 40,112,114,101, 46, 46, 39, 32, 39, 41, 10, 32, 32,105, - 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 32,111,117, - 116,112,117,116, 40,112,114,101, 46, 46, 39,116,111,108,117, - 97, 95,101,110,100,109,111,100,117,108,101, 40,116,111,108, - 117, 97, 95, 83, 41, 59, 39, 41, 10, 9,112,111,112, 40, 41, - 10,101,110,100, 10, 10, 45, 45, 32,114,101,116,117,114,110, - 32, 99,111,108,108,101, 99,116,105,111,110, 32,114,101,113, - 117,105,114,101,109,101,110,116, 10,102,117,110, 99,116,105, - 111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58,114, - 101,113,117,105,114,101, 99,111,108,108,101, 99,116,105,111, - 110, 32, 40,116, 41, 10, 9,105,102, 32,115,101,108,102, 46, - 102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101,100, - 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, 32, - 40,110,111,116, 32,115,101,108,102, 58, 99,104,101, 99,107, - 95,112,117, 98,108,105, 99, 95, 97, 99, 99,101,115,115, 40, - 41, 41, 32,116,104,101,110, 10, 9, 9,114,101,116,117,114, - 110, 32,102, 97,108,115,101, 10, 9,101,110,100, 10, 32,112, - 117,115,104, 40,115,101,108,102, 41, 10, 9,108,111, 99, 97, - 108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 32,108,111, - 99, 97,108, 32,105, 61, 49, 10, 32,119,104,105,108,101, 32, - 115,101,108,102, 91,105, 93, 32,100,111, 10, 32, 32,114, 32, - 61, 32,115,101,108,102, 91,105, 93, 58,114,101,113,117,105, - 114,101, 99,111,108,108,101, 99,116,105,111,110, 40,116, 41, - 32,111,114, 32,114, 10, 32, 32,105, 32, 61, 32,105, 43, 49, - 10, 32,101,110,100, 10, 9,112,111,112, 40, 41, 10, 9, 45, - 45, 32,111,110,108,121, 32, 99,108, 97,115,115, 32,116,104, - 97,116, 32,101,120,112,111,114,116,115, 32,100,101,115,116, - 114,117, 99,116,111,114, 32, 99, 97,110, 32, 98,101, 32, 97, - 112,112,114,111,112,114,105, 97,116,101,108,121, 32, 99,111, - 108,108,101, 99,116,101,100, 10, 9, 45, 45, 32, 99,108, 97, - 115,115,101,115, 32,116,104, 97,116, 32,101,120,112,111,114, - 116, 32, 99,111,110,115,116,114,117, 99,116,111,114,115, 32, - 110,101,101,100, 32,116,111, 32,104, 97,118,101, 32, 97, 32, - 99,111,108,108,101, 99,116,111,114, 32, 40,111,118,101,114, - 114,105,100,101,100, 32, 98,121, 32, 45, 68, 32,102,108, 97, - 103, 32,111,110, 32, 99,111,109,109, 97,110,100, 32,108,105, - 110,101, 41, 10, 9,105,102, 32,115,101,108,102, 46, 95,100, - 101,108,101,116,101, 32,111,114, 32, 40, 40,110,111,116, 32, - 102,108, 97,103,115, 91, 39, 68, 39, 93, 41, 32, 97,110,100, - 32,115,101,108,102, 46, 95,110,101,119, 41, 32,116,104,101, - 110, 10, 9, 9, 45, 45,116, 91,115,101,108,102, 46,116,121, - 112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, 99,111, - 108,108,101, 99,116, 95, 34, 32, 46, 46, 32,103,115,117, 98, - 40,115,101,108,102, 46,116,121,112,101, 44, 34, 58, 58, 34, - 44, 34, 95, 34, 41, 10, 9, 9,116, 91,115,101,108,102, 46, - 116,121,112,101, 93, 32, 61, 32, 34,116,111,108,117, 97, 95, - 99,111,108,108,101, 99,116, 95, 34, 32, 46, 46, 32, 99,108, - 101, 97,110, 95,116,101,109,112,108, 97,116,101, 40,115,101, - 108,102, 46,116,121,112,101, 41, 10, 9, 9,114, 32, 61, 32, - 116,114,117,101, 10, 9,101,110,100, 10, 32,114,101,116,117, - 114,110, 32,114, 10,101,110,100, 10, 10, 45, 45, 32,111,117, - 116,112,117,116, 32,116, 97,103,115, 10,102,117,110, 99,116, - 105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115,115, 58, - 100,101, 99,108,116,121,112,101, 32, 40, 41, 10, 32,112,117, - 115,104, 40,115,101,108,102, 41, 10, 9,115,101,108,102, 46, - 116,121,112,101, 32, 61, 32,114,101,103,116,121,112,101, 40, - 115,101,108,102, 46,111,114,105,103,105,110, 97,108, 95,110, - 97,109,101, 32,111,114, 32,115,101,108,102, 46,110, 97,109, - 101, 41, 10, 9,115,101,108,102, 46, 98,116,121,112,101, 32, - 61, 32,116,121,112,101,118, 97,114, 40,115,101,108,102, 46, - 98, 97,115,101, 41, 10, 9,115,101,108,102, 46, 99,116,121, - 112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46, - 115,101,108,102, 46,116,121,112,101, 10, 9,105,102, 32,115, - 101,108,102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, - 32,116,104,101,110, 10, 9, 9,102,111,114, 32,105, 61, 49, - 44,116, 97, 98,108,101, 46,103,101,116,110, 40,115,101,108, - 102, 46,101,120,116,114, 97, 95, 98, 97,115,101,115, 41, 32, - 100,111, 10, 9, 9, 9,115,101,108,102, 46,101,120,116,114, - 97, 95, 98, 97,115,101,115, 91,105, 93, 32, 61, 32,116,121, - 112,101,118, 97,114, 40,115,101,108,102, 46,101,120,116,114, - 97, 95, 98, 97,115,101,115, 91,105, 93, 41, 10, 9, 9,101, - 110,100, 10, 9,101,110,100, 10, 32,108,111, 99, 97,108, 32, - 105, 61, 49, 10, 32,119,104,105,108,101, 32,115,101,108,102, - 91,105, 93, 32,100,111, 10, 32, 32,115,101,108,102, 91,105, - 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10, 32, 32, - 105, 32, 61, 32,105, 43, 49, 10, 32,101,110,100, 10, 9,112, - 111,112, 40, 41, 10,101,110,100, 10, 10, 10, 45, 45, 32, 80, - 114,105,110,116, 32,109,101,116,104,111,100, 10,102,117,110, - 99,116,105,111,110, 32, 99,108, 97,115,115, 67,108, 97,115, - 115, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, - 99,108,111,115,101, 41, 10, 32,112,114,105,110,116, 40,105, - 100,101,110,116, 46, 46, 34, 67,108, 97,115,115,123, 34, 41, - 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, - 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101, - 108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32, 98, 97,115,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46, 98, 97,115,101, 46, 46, 34, 39, 59, 34, 41, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 108,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46,108,110, 97,109,101, 46, 46, 34, 39, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, 32, - 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, - 98,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108, - 102, 46, 98,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10, - 32,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, - 32, 99,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101, - 108,102, 46, 99,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, - 10, 32,108,111, 99, 97,108, 32,105, 61, 49, 10, 32,119,104, - 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, - 32, 32,115,101,108,102, 91,105, 93, 58,112,114,105,110,116, - 40,105,100,101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, - 41, 10, 32, 32,105, 32, 61, 32,105, 43, 49, 10, 32,101,110, - 100, 10, 32,112,114,105,110,116, 40,105,100,101,110,116, 46, - 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,110, - 100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97, - 115,115, 67,108, 97,115,115, 58,115,101,116, 95,112,114,111, - 116,101, 99,116,101,100, 95,100,101,115,116,114,117, 99,116, - 111,114, 40,112, 41, 10, 9,115,101,108,102, 46,102,108, 97, - 103,115, 46,112,114,111,116,101, 99,116,101,100, 95,100,101, - 115,116,114,117, 99,116,111,114, 32, 61, 32,115,101,108,102, - 46,102,108, 97,103,115, 46,112,114,111,116,101, 99,116,101, - 100, 95,100,101,115,116,114,117, 99,116,111,114, 32,111,114, - 32,112, 10,101,110,100, 10, 10, 45, 45, 32, 73,110,116,101, - 114,110, 97,108, 32, 99,111,110,115,116,114,117, 99,116,111, - 114, 10,102,117,110, 99,116,105,111,110, 32, 95, 67,108, 97, - 115,115, 32, 40,116, 41, 10, 32,115,101,116,109,101,116, 97, - 116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 67,108, - 97,115,115, 41, 10, 32,116, 58, 98,117,105,108,100,110, 97, - 109,101,115, 40, 41, 10, 32, 97,112,112,101,110,100, 40,116, - 41, 10, 32,114,101,116,117,114,110, 32,116, 10,101,110,100, - 10, 10, 45, 45, 32, 67,111,110,115,116,114,117, 99,116,111, - 114, 10, 45, 45, 32, 69,120,112,101, 99,116,115, 32,116,104, - 101, 32,110, 97,109,101, 44, 32,116,104,101, 32, 98, 97,115, - 101, 32, 40, 97,114,114, 97,121, 41, 32, 97,110,100, 32,116, - 104,101, 32, 98,111,100,121, 32,111,102, 32,116,104,101, 32, - 99,108, 97,115,115, 46, 10,102,117,110, 99,116,105,111,110, - 32, 67,108, 97,115,115, 32, 40,110, 44,112, 44, 98, 41, 10, - 10, 9,105,102, 32,116, 97, 98,108,101, 46,103,101,116,110, - 40,112, 41, 32, 62, 32, 49, 32,116,104,101,110, 10, 9, 9, - 98, 32, 61, 32,115,116,114,105,110,103, 46,115,117, 98, 40, - 98, 44, 32, 49, 44, 32, 45, 50, 41, 10, 9, 9,102,111,114, - 32,105, 61, 50, 44,116, 97, 98,108,101, 46,103,101,116,110, - 40,112, 41, 44, 49, 32,100,111, 10, 9, 9, 9, 98, 32, 61, - 32, 98, 46, 46, 34, 92,110, 32,116,111,108,117, 97, 95,105, - 110,104,101,114,105,116,115, 32, 34, 46, 46,112, 91,105, 93, - 46, 46, 34, 32, 95, 95, 34, 46, 46,112, 91,105, 93, 46, 46, - 34, 95, 95, 59, 92,110, 34, 10, 9, 9,101,110,100, 10, 9, - 9, 98, 32, 61, 32, 98, 46, 46, 34, 92,110,125, 34, 10, 9, - 101,110,100, 10, 10, 9, 45, 45, 32, 99,104,101, 99,107, 32, - 102,111,114, 32,116,101,109,112,108, 97,116,101, 10, 9, 98, - 32, 61, 32,115,116,114,105,110,103, 46,103,115,117, 98, 40, - 98, 44, 32, 34, 94,123, 37,115, 42, 84, 69, 77, 80, 76, 65, - 84, 69, 95, 66, 73, 78, 68, 34, 44, 32, 34,123, 92,110, 84, - 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, - 73, 78, 68, 34, 41, 10, 9,108,111, 99, 97,108, 32,116, 44, - 95, 44, 84, 44, 73, 32, 61, 32,115,116,114,105,110,103, 46, - 102,105,110,100, 40, 98, 44, 32, 39, 94,123, 37,115, 42, 84, - 79, 76, 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, - 73, 78, 68, 37,115, 42, 37, 40, 43, 37,115, 42, 92, 34, 63, - 40, 91, 94, 92, 34, 44, 93, 42, 41, 92, 34, 63, 37,115, 42, - 44, 37,115, 42, 40, 91, 94, 37, 41, 93, 42, 41, 37,115, 42, - 37, 41, 43, 39, 41, 10, 9,105,102, 32,116, 32,116,104,101, - 110, 10, 10, 9, 9, 45, 45, 32,114,101,109,111,118,101, 32, - 113,117,111,116,101,115, 10, 9, 9, 73, 32, 61, 32,115,116, - 114,105,110,103, 46,103,115,117, 98, 40, 73, 44, 32, 34, 92, - 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 84, 32, 61, 32,115, - 116,114,105,110,103, 46,103,115,117, 98, 40, 84, 44, 32, 34, - 92, 34, 34, 44, 32, 34, 34, 41, 10, 9, 9, 45, 45, 32,103, - 101,116, 32,116,121,112,101, 32,108,105,115,116, 10, 9, 9, - 108,111, 99, 97,108, 32,116,121,112,101,115, 32, 61, 32,115, - 112,108,105,116, 95, 99, 95,116,111,107,101,110,115, 40, 73, - 44, 32, 34, 44, 34, 41, 10, 9, 9, 45, 45, 32,114,101,109, - 111,118,101, 32, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, - 78, 68, 32,108,105,110,101, 10, 9, 9,108,111, 99, 97,108, - 32, 98,115, 32, 61, 32,115,116,114,105,110,103, 46,103,115, - 117, 98, 40, 98, 44, 32, 34, 94,123, 37,115, 42, 84, 79, 76, - 85, 65, 95, 84, 69, 77, 80, 76, 65, 84, 69, 95, 66, 73, 78, - 68, 91, 94, 92,110, 93, 42, 92,110, 34, 44, 32, 34,123, 92, - 110, 34, 41, 10, 9, 9, 9, 10, 9, 9,108,111, 99, 97,108, - 32, 84,108, 32, 61, 32,115,112,108,105,116, 40, 84, 44, 32, - 34, 32, 34, 41, 10, 9, 9,108,111, 99, 97,108, 32,116, 99, - 32, 61, 32, 84,101,109,112,108, 97,116,101, 67,108, 97,115, - 115, 40,110, 44, 32,112, 44, 32, 98,115, 44, 32, 84,108, 41, - 10, 10, 9, 9, 10, 9, 9,116, 99, 58,116,104,114,111,119, - 40,116,121,112,101,115, 44, 32,116,114,117,101, 41, 10, 9, - 9, 45, 45,102,111,114, 32,105, 61, 49, 44,116,121,112,101, - 115, 46,110, 32,100,111, 10, 9, 9, 45, 45, 9,116, 99, 58, - 116,104,114,111,119, 40,115,112,108,105,116, 95, 99, 95,116, - 111,107,101,110,115, 40,116,121,112,101,115, 91,105, 93, 44, - 32, 34, 32, 34, 41, 44, 32,116,114,117,101, 41, 10, 9, 9, - 45, 45,101,110,100, 10, 9, 9,114,101,116,117,114,110, 10, - 9,101,110,100, 10, 9, 10, 9,108,111, 99, 97,108, 32,109, - 98, 97,115,101, 10, 10, 9,105,102, 32,112, 32,116,104,101, - 110, 10, 9, 9,109, 98, 97,115,101, 32, 61, 32,116, 97, 98, - 108,101, 46,114,101,109,111,118,101, 40,112, 44, 32, 49, 41, - 10, 9, 9,105,102, 32,110,111,116, 32,112, 91, 49, 93, 32, - 116,104,101,110, 32,112, 32, 61, 32,110,105,108, 32,101,110, - 100, 10, 9,101,110,100, 10, 10, 9,109, 98, 97,115,101, 32, - 61, 32,109, 98, 97,115,101, 32, 97,110,100, 32,114,101,115, - 111,108,118,101, 95,116,101,109,112,108, 97,116,101, 95,116, - 121,112,101,115, 40,109, 98, 97,115,101, 41, 10, 10, 9,108, - 111, 99, 97,108, 32, 99, 10, 9,108,111, 99, 97,108, 32,111, - 110, 97,109,101, 32, 61, 32,115,116,114,105,110,103, 46,103, - 115,117, 98, 40,110, 44, 32, 34, 64, 46, 42, 36, 34, 44, 32, - 34, 34, 41, 10, 9,111,110, 97,109,101, 32, 61, 32,103,101, - 116,110, 97,109,101,115,112, 97, 99,101, 40, 99,108, 97,115, - 115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, - 41, 46, 46,111,110, 97,109,101, 10, 10, 9,105,102, 32, 95, - 103,108,111, 98, 97,108, 95, 99,108, 97,115,115,101,115, 91, - 111,110, 97,109,101, 93, 32,116,104,101,110, 10, 9, 9, 99, - 32, 61, 32, 95,103,108,111, 98, 97,108, 95, 99,108, 97,115, - 115,101,115, 91,111,110, 97,109,101, 93, 10, 9, 9,105,102, - 32,109, 98, 97,115,101, 32, 97,110,100, 32, 40, 40,110,111, - 116, 32, 99, 46, 98, 97,115,101, 41, 32,111,114, 32, 99, 46, - 98, 97,115,101, 32, 61, 61, 32, 34, 34, 41, 32,116,104,101, - 110, 10, 9, 9, 9, 99, 46, 98, 97,115,101, 32, 61, 32,109, - 98, 97,115,101, 10, 9, 9,101,110,100, 10, 9,101,108,115, - 101, 10, 9, 9, 99, 32, 61, 32, 95, 67,108, 97,115,115, 40, - 95, 67,111,110,116, 97,105,110,101,114,123,110, 97,109,101, - 61,110, 44, 32, 98, 97,115,101, 61,109, 98, 97,115,101, 44, - 32,101,120,116,114, 97, 95, 98, 97,115,101,115, 61,112,125, - 41, 10, 10, 9, 9,108,111, 99, 97,108, 32,102,116, 32, 61, - 32,103,101,116,110, 97,109,101,115,112, 97, 99,101, 40, 99, - 46,112, 97,114,101,110,116, 41, 46, 46, 99, 46,111,114,105, - 103,105,110, 97,108, 95,110, 97,109,101, 10, 9, 9, 97,112, - 112,101,110,100, 95,103,108,111, 98, 97,108, 95,116,121,112, - 101, 40,102,116, 44, 32, 99, 41, 10, 9,101,110,100, 10, 10, - 9,112,117,115,104, 40, 99, 41, 10, 9, 99, 58,112, 97,114, - 115,101, 40,115,116,114,115,117, 98, 40, 98, 44, 50, 44,115, - 116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41, 32, 45, 45, - 32,101,108,105,109,105,110, 97,116,101, 32, 98,114, 97, 99, - 101,115, 10, 9,112,111,112, 40, 41, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/class.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32,109, 97,114,107, 32,117,112, 32, 99,111,109,109, - 101,110,116,115, 32, 97,110,100, 32,115,116,114,105,110,103, - 115, 10, 83, 84, 82, 49, 32, 61, 32, 34, 92, 48, 48, 49, 34, - 10, 83, 84, 82, 50, 32, 61, 32, 34, 92, 48, 48, 50, 34, 10, - 83, 84, 82, 51, 32, 61, 32, 34, 92, 48, 48, 51, 34, 10, 83, - 84, 82, 52, 32, 61, 32, 34, 92, 48, 48, 52, 34, 10, 82, 69, - 77, 32, 32, 61, 32, 34, 92, 48, 48, 53, 34, 10, 65, 78, 89, - 32, 32, 61, 32, 34, 40, 91, 92, 48, 48, 49, 45, 92, 48, 48, - 53, 93, 41, 34, 10, 69, 83, 67, 49, 32, 61, 32, 34, 92, 48, - 48, 54, 34, 10, 69, 83, 67, 50, 32, 61, 32, 34, 92, 48, 48, - 55, 34, 10, 10, 77, 65, 83, 75, 32, 61, 32,123, 32, 45, 45, - 32,116,104,101, 32,115,117, 98,115,116,105,116,117,116,105, - 111,110, 32,111,114,100,101,114, 32,105,115, 32,105,109,112, - 111,114,116, 97,110,116, 10, 32,123, 69, 83, 67, 49, 44, 32, - 34, 92, 92, 39, 34,125, 44, 10, 32,123, 69, 83, 67, 50, 44, - 32, 39, 92, 92, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 49, - 44, 32, 34, 39, 34,125, 44, 10, 32,123, 83, 84, 82, 50, 44, - 32, 39, 34, 39,125, 44, 10, 32,123, 83, 84, 82, 51, 44, 32, - 34, 37, 91, 37, 91, 34,125, 44, 10, 32,123, 83, 84, 82, 52, - 44, 32, 34, 37, 93, 37, 93, 34,125, 44, 10, 32,123, 82, 69, - 77, 32, 44, 32, 34, 37, 45, 37, 45, 34,125, 44, 10,125, 10, - 10,102,117,110, 99,116,105,111,110, 32,109, 97,115,107, 32, - 40,115, 41, 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44, - 103,101,116,110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, - 32, 32,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, - 83, 75, 91,105, 93, 91, 50, 93, 44, 77, 65, 83, 75, 91,105, - 93, 91, 49, 93, 41, 10, 32,101,110,100, 10, 32,114,101,116, - 117,114,110, 32,115, 10,101,110,100, 10, 10,102,117,110, 99, - 116,105,111,110, 32,117,110,109, 97,115,107, 32, 40,115, 41, - 10, 32,102,111,114, 32,105, 32, 61, 32, 49, 44,103,101,116, - 110, 40, 77, 65, 83, 75, 41, 32, 32,100,111, 10, 32, 32,115, - 32, 61, 32,103,115,117, 98, 40,115, 44, 77, 65, 83, 75, 91, - 105, 93, 91, 49, 93, 44, 77, 65, 83, 75, 91,105, 93, 91, 50, - 93, 41, 10, 32,101,110,100, 10, 32,114,101,116,117,114,110, - 32,115, 10,101,110,100, 10, 10,102,117,110, 99,116,105,111, - 110, 32, 99,108,101, 97,110, 32, 40,115, 41, 10, 32, 45, 45, - 32, 99,104,101, 99,107, 32,102,111,114, 32, 99,111,109,112, - 105,108, 97,116,105,111,110, 32,101,114,114,111,114, 10, 32, - 108,111, 99, 97,108, 32, 99,111,100,101, 32, 61, 32, 34,114, - 101,116,117,114,110, 32,102,117,110, 99,116,105,111,110, 32, - 40, 41, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, - 92,110, 32,101,110,100, 34, 10, 32,105,102, 32,110,111,116, - 32,100,111,115,116,114,105,110,103, 40, 99,111,100,101, 41, - 32,116,104,101,110, 10, 32, 32,114,101,116,117,114,110, 32, - 110,105,108, 10, 32,101,110,100, 10, 10, 32,105,102, 32,102, - 108, 97,103,115, 91, 39, 67, 39, 93, 32,116,104,101,110, 10, - 32, 9,114,101,116,117,114,110, 32,115, 10, 32,101,110,100, - 10, 10, 32,108,111, 99, 97,108, 32, 83, 32, 61, 32, 34, 34, - 32, 45, 45, 32,115, 97,118,101,100, 32,115,116,114,105,110, - 103, 10, 10, 32,115, 32, 61, 32,109, 97,115,107, 40,115, 41, - 10, 10, 32, 45, 45, 32,114,101,109,111,118,101, 32, 98,108, - 97,110,107,115, 32, 97,110,100, 32, 99,111,109,109,101,110, - 116,115, 10, 32,119,104,105,108,101, 32, 49, 32,100,111, 10, - 32, 32,108,111, 99, 97,108, 32, 98, 44,101, 44,100, 32, 61, - 32,115,116,114,102,105,110,100, 40,115, 44, 65, 78, 89, 41, - 10, 32, 32,105,102, 32, 98, 32,116,104,101,110, 10, 32, 32, - 32, 83, 32, 61, 32, 83, 46, 46,115,116,114,115,117, 98, 40, - 115, 44, 49, 44, 98, 45, 49, 41, 10, 32, 32, 32,115, 32, 61, - 32,115,116,114,115,117, 98, 40,115, 44, 98, 43, 49, 41, 10, - 32, 32, 32,105,102, 32,100, 61, 61, 83, 84, 82, 49, 32,111, - 114, 32,100, 61, 61, 83, 84, 82, 50, 32,116,104,101,110, 10, - 32, 32, 32, 32,101, 32, 61, 32,115,116,114,102,105,110,100, - 40,115, 44,100, 41, 10, 32, 32, 32, 32, 83, 32, 61, 32, 83, - 32, 46, 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44, - 49, 44,101, 41, 10, 32, 32, 32, 32,115, 32, 61, 32,115,116, - 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 32, 32, 32, - 101,108,115,101,105,102, 32,100, 61, 61, 83, 84, 82, 51, 32, - 116,104,101,110, 10, 32, 32, 32, 32,101, 32, 61, 32,115,116, - 114,102,105,110,100, 40,115, 44, 83, 84, 82, 52, 41, 10, 32, - 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,100, 46, 46,115,116, - 114,115,117, 98, 40,115, 44, 49, 44,101, 41, 10, 32, 32, 32, - 32,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44,101, - 43, 49, 41, 10, 32, 32, 32,101,108,115,101,105,102, 32,100, - 61, 61, 82, 69, 77, 32,116,104,101,110, 10, 32, 32, 32, 32, - 115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 91, 94, 92, - 110, 93, 42, 40, 92,110, 63, 41, 34, 44, 34, 37, 49, 34, 44, - 49, 41, 10, 32, 32, 32,101,110,100, 10, 32, 32,101,108,115, - 101, 10, 32, 32, 32, 83, 32, 61, 32, 83, 46, 46,115, 10, 32, - 32, 32, 98,114,101, 97,107, 10, 32, 32,101,110,100, 10, 32, - 101,110,100, 10, 32, 45, 45, 32,101,108,105,109,105,110, 97, - 116,101, 32,117,110,101, 99,101,115,115, 97,114,121, 32,115, - 112, 97, 99,101,115, 10, 32, 83, 32, 61, 32,103,115,117, 98, - 40, 83, 44, 34, 91, 32, 92,116, 93, 43, 34, 44, 34, 32, 34, - 41, 10, 32, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, - 91, 32, 92,116, 93, 42, 92,110, 91, 32, 92,116, 93, 42, 34, - 44, 34, 92,110, 34, 41, 10, 9, 83, 32, 61, 32,103,115,117, - 98, 40, 83, 44, 34, 92,110, 43, 34, 44, 34, 92,110, 34, 41, - 10, 32, 83, 32, 61, 32,117,110,109, 97,115,107, 40, 83, 41, - 10, 32,114,101,116,117,114,110, 32, 83, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/clean.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 45, 45, 32, 71,101,110,101,114, 97,116,101, 32, 98,105,110, - 100,105,110,103, 32, 99,111,100,101, 10, 45, 45, 32, 87,114, - 105,116,116,101,110, 32, 98,121, 32, 87, 97,108,100,101,109, - 97,114, 32, 67,101,108,101,115, 10, 45, 45, 32, 84,101, 67, - 71,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 10, 45, 45, - 32, 74,117,108, 32, 49, 57, 57, 56, 10, 45, 45, 32, 76, 97, - 115,116, 32,117,112,100, 97,116,101, 58, 32, 65,112,114, 32, - 50, 48, 48, 51, 10, 45, 45, 32, 36, 73,100, 58, 32, 36, 10, - 10, 10, 45, 45, 32, 84,104,105,115, 32, 99,111,100,101, 32, - 105,115, 32,102,114,101,101, 32,115,111,102,116,119, 97,114, - 101, 59, 32,121,111,117, 32, 99, 97,110, 32,114,101,100,105, - 115,116,114,105, 98,117,116,101, 32,105,116, 32, 97,110,100, - 47,111,114, 32,109,111,100,105,102,121, 32,105,116, 46, 10, - 45, 45, 32, 84,104,101, 32,115,111,102,116,119, 97,114,101, - 32,112,114,111,118,105,100,101,100, 32,104,101,114,101,117, - 110,100,101,114, 32,105,115, 32,111,110, 32, 97,110, 32, 34, - 97,115, 32,105,115, 34, 32, 98, 97,115,105,115, 44, 32, 97, - 110,100, 10, 45, 45, 32,116,104,101, 32, 97,117,116,104,111, - 114, 32,104, 97,115, 32,110,111, 32,111, 98,108,105,103, 97, - 116,105,111,110, 32,116,111, 32,112,114,111,118,105,100,101, - 32,109, 97,105,110,116,101,110, 97,110, 99,101, 44, 32,115, - 117,112,112,111,114,116, 44, 32,117,112,100, 97,116,101,115, - 44, 10, 45, 45, 32,101,110,104, 97,110, 99,101,109,101,110, - 116,115, 44, 32,111,114, 32,109,111,100,105,102,105, 99, 97, - 116,105,111,110,115, 46, 10, 10,102,117,110, 99,116,105,111, - 110, 32,112, 97,114,115,101, 95,101,120,116,114, 97, 40, 41, - 10, 10, 9,102,111,114, 32,107, 44,118, 32,105,110, 32,105, - 112, 97,105,114,115, 40, 95,101,120,116,114, 97, 95,112, 97, - 114, 97,109,101,116,101,114,115, 32,111,114, 32,123,125, 41, - 32,100,111, 10, 9, 9, 10, 9, 9,108,111, 99, 97,108, 32, - 98, 44,101, 44,110, 97,109,101, 44,118, 97,108,117,101, 32, - 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40,118, - 44, 32, 34, 94, 40, 91, 94, 61, 93, 42, 41, 61, 40, 46, 42, - 41, 36, 34, 41, 10, 9, 9,105,102, 32, 98, 32,116,104,101, - 110, 10, 9, 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, - 97,109,101,116,101,114,115, 91,110, 97,109,101, 93, 32, 61, - 32,118, 97,108,117,101, 10, 9, 9,101,108,115,101, 10, 9, - 9, 9, 95,101,120,116,114, 97, 95,112, 97,114, 97,109,101, - 116,101,114,115, 91,118, 93, 32, 61, 32,116,114,117,101, 10, - 9, 9,101,110,100, 10, 9,101,110,100, 10,101,110,100, 10, - 10,102,117,110, 99,116,105,111,110, 32,100,111,105,116, 32, - 40, 41, 10, 9, 45, 45, 32,100,101,102,105,110,101, 32,112, - 97, 99,107, 97,103,101, 32,110, 97,109,101, 44, 32,105,102, - 32,110,111,116, 32,112,114,111,118,105,100,101,100, 10, 9, - 105,102, 32,110,111,116, 32,102,108, 97,103,115, 46,110, 32, - 116,104,101,110, 10, 9, 9,105,102, 32,102,108, 97,103,115, - 46,102, 32,116,104,101,110, 10, 9, 9, 9,102,108, 97,103, - 115, 46,110, 32, 61, 32,103,115,117, 98, 40,102,108, 97,103, - 115, 46,102, 44, 34, 37, 46, 46, 42, 36, 34, 44, 34, 34, 41, - 10, 9, 9, 9, 95, 44, 95, 44,102,108, 97,103,115, 46,110, - 32, 61, 32,115,116,114,105,110,103, 46,102,105,110,100, 40, - 102,108, 97,103,115, 46,110, 44, 32, 34, 40, 91, 94, 47, 92, - 92, 93, 42, 41, 36, 34, 41, 10, 9, 9,101,108,115,101, 10, - 9, 9, 9,101,114,114,111,114, 40, 34, 35,110,111, 32,112, - 97, 99,107, 97,103,101, 32,110, 97,109,101, 32,110,111,114, - 32,105,110,112,117,116, 32,102,105,108,101, 32,112,114,111, - 118,105,100,101,100, 34, 41, 10, 9, 9,101,110,100, 10, 9, - 101,110,100, 10, 10, 9, 45, 45, 32,112, 97,114,115,101, 32, - 116, 97, 98,108,101, 32,119,105,116,104, 32,101,120,116,114, - 97, 32,112, 97,114, 97,109,116,101,114,115, 10, 9,112, 97, - 114,115,101, 95,101,120,116,114, 97, 40, 41, 10, 10, 9, 45, - 45, 32,100,111, 32,116,104,105,115, 32, 97,102,116,101,114, - 32,115,101,116,116,105,110,103, 32,116,104,101, 32,112, 97, - 99,107, 97,103,101, 32,110, 97,109,101, 10, 9,105,102, 32, - 102,108, 97,103,115, 91, 39, 76, 39, 93, 32,116,104,101,110, - 10, 9, 9,100,111,102,105,108,101, 40,102,108, 97,103,115, - 91, 39, 76, 39, 93, 41, 10, 9,101,110,100, 10, 10, 9, 45, - 45, 32, 97,100,100, 32, 99,112,112,115,116,114,105,110,103, - 10, 9,105,102, 32,110,111,116, 32,102,108, 97,103,115, 91, - 39, 83, 39, 93, 32,116,104,101,110, 10, 9, 9, 95, 98, 97, - 115,105, 99, 91, 39,115,116,114,105,110,103, 39, 93, 32, 61, - 32, 39, 99,112,112,115,116,114,105,110,103, 39, 10, 9, 9, - 95, 98, 97,115,105, 99, 91, 39,115,116,100, 58, 58,115,116, - 114,105,110,103, 39, 93, 32, 61, 32, 39, 99,112,112,115,116, - 114,105,110,103, 39, 10, 9, 9, 95, 98, 97,115,105, 99, 95, - 99,116,121,112,101, 46, 99,112,112,115,116,114,105,110,103, - 32, 61, 32, 39, 99,111,110,115,116, 32, 99,104, 97,114, 42, - 39, 10, 9,101,110,100, 10, 10, 9, 45, 45, 32,112,114,111, - 99, 99,101,115,115, 32,112, 97, 99,107, 97,103,101, 10, 9, - 108,111, 99, 97,108, 32,112, 32, 32, 61, 32, 80, 97, 99,107, - 97,103,101, 40,102,108, 97,103,115, 46,110, 44,102,108, 97, - 103,115, 46,102, 41, 10, 10, 9,105,102, 32,102,108, 97,103, - 115, 46,112, 32,116,104,101,110, 10, 9, 9,114,101,116,117, - 114,110, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 32,111,110, - 108,121, 32,112, 97,114,115,101, 10, 9,101,110,100, 10, 10, - 9,105,102, 32,102,108, 97,103,115, 46,111, 32,116,104,101, - 110, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 44,109,115, - 103, 32, 61, 32,119,114,105,116,101,116,111, 40,102,108, 97, - 103,115, 46,111, 41, 10, 9, 9,105,102, 32,110,111,116, 32, - 115,116, 32,116,104,101,110, 10, 9, 9, 9,101,114,114,111, - 114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10, 9, 9,101, - 110,100, 10, 9,101,110,100, 10, 10, 9,112, 58,100,101, 99, - 108,116,121,112,101, 40, 41, 10, 9,105,102, 32,102,108, 97, - 103,115, 46, 80, 32,116,104,101,110, 10, 9, 9,112, 58,112, - 114,105,110,116, 40, 41, 10, 9,101,108,115,101, 10, 9, 9, - 112, 58,112,114,101, 97,109, 98,108,101, 40, 41, 10, 9, 9, - 112, 58,115,117,112, 99,111,100,101, 40, 41, 10, 9, 9,112, - 58,114,101,103,105,115,116,101,114, 40, 41, 10, 9, 9,112, - 117,115,104, 40,112, 41, 10, 9, 9,112,111,115,116, 95,111, - 117,116,112,117,116, 95,104,111,111,107, 40,112, 41, 10, 9, - 9,112,111,112, 40, 41, 10, 9,101,110,100, 10, 10, 9,105, - 102, 32,102,108, 97,103,115, 46,111, 32,116,104,101,110, 10, - 9, 9,119,114,105,116,101,116,111, 40, 41, 10, 9,101,110, - 100, 10, 10, 9, 45, 45, 32,119,114,105,116,101, 32,104,101, - 97,100,101,114, 32,102,105,108,101, 10, 9,105,102, 32,110, - 111,116, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, - 10, 9, 9,105,102, 32,102,108, 97,103,115, 46, 72, 32,116, - 104,101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,115,116, - 44,109,115,103, 32, 61, 32,119,114,105,116,101,116,111, 40, - 102,108, 97,103,115, 46, 72, 41, 10, 9, 9, 9,105,102, 32, - 110,111,116, 32,115,116, 32,116,104,101,110, 10, 9, 9, 9, - 9,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, - 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,112, 58,104, - 101, 97,100,101,114, 40, 41, 10, 9, 9, 9,119,114,105,116, - 101,116,111, 40, 41, 10, 9, 9,101,110,100, 10, 9,101,110, - 100, 10,101,110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua embedded: lua/tolua++/src/bin/lua/doit.lua"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - int top = lua_gettop(tolua_S); - static unsigned char B[] = { - 10,108,111, 99, 97,108, 32,101,114,114, 44,109,115,103, 32, - 61, 32,112, 99, 97,108,108, 40,100,111,105,116, 41, 10,105, - 102, 32,110,111,116, 32,101,114,114, 32,116,104,101,110, 10, - 32,108,111, 99, 97,108, 32, 95, 44, 95, 44,108, 97, 98,101, - 108, 44,109,115,103, 32, 61, 32,115,116,114,102,105,110,100, - 40,109,115,103, 44, 34, 40, 46, 45, 58, 46, 45, 58, 37,115, - 42, 41, 40, 46, 42, 41, 34, 41, 10, 32,116,111,108,117, 97, - 95,101,114,114,111,114, 40,109,115,103, 44,108, 97, 98,101, - 108, 41, 10, 32,112,114,105,110,116, 40,100,101, 98,117,103, - 46,116,114, 97, 99,101, 98, 97, 99,107, 40, 41, 41, 10,101, - 110,100,32 - }; - tolua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code 23"); - lua_settop(tolua_S, top); - } /* end of embedded lua code */ - - tolua_endmodule(tolua_S); - return 1; -} - - -#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501 - TOLUA_API int luaopen_tolua (lua_State* tolua_S) { - return tolua_tolua_open(tolua_S); -}; -#endif - diff --git a/src/third_party/toluapp/src/lib/SCsub b/src/third_party/toluapp/src/lib/SCsub deleted file mode 100644 index 2f9a24691..000000000 --- a/src/third_party/toluapp/src/lib/SCsub +++ /dev/null @@ -1,18 +0,0 @@ -Import('env') - - -sources = [ - 'tolua_event.c', - 'tolua_is.c', - 'tolua_map.c', - 'tolua_push.c', - 'tolua_to.c', - ] - -env.lib_target_static = env.Library('#/lib/'+env['tolua_lib']+'_static', sources) - -if env['shared']: - env.lib_target = env.SharedLibrary('#lib/'+env['tolua_lib'], sources) -else: - env.lib_target = env.Library('#/lib/'+env['tolua_lib'], sources) - diff --git a/src/third_party/toluapp/src/tests/SCsub b/src/third_party/toluapp/src/tests/SCsub deleted file mode 100644 index 2a2fb2653..000000000 --- a/src/third_party/toluapp/src/tests/SCsub +++ /dev/null @@ -1,18 +0,0 @@ -Import('env') -env_tests = env.Copy() - -env_tests.LuaBinding('tclassbind.cpp', 'tclass.pkg', 'tclass', use_own=1, use_typeid=1) - -env_tests.Append(CXXFLAGS='-DTOLUA_API="extern \\\"C\\\""') - -test_class_so = env_tests.SharedLibrary('tclass', ['tclassbind.cpp'], - LIBS=['$tolua_lib']+env['LIBS'], ) - -env_tests.Append(LIBPATH=".") - -test_class = env_tests.Program('tclass', ['tclass.cpp'], - LIBS=env['LIBS']+['tclass']+['$tolua_lib'], ) - - - -env.test_targets = [test_class] diff --git a/src/third_party/toluapp/src/tests/tarray.c b/src/third_party/toluapp/src/tests/tarray.c deleted file mode 100644 index e69bcf4ca..000000000 --- a/src/third_party/toluapp/src/tests/tarray.c +++ /dev/null @@ -1,45 +0,0 @@ -#include "lualib.h" -#include "lauxlib.h" - -#include "tarray.h" - - -int a[10] = {1,2,3,4,5,6,7,8,9,10}; -Point p[10] = {{0,1},{1,2},{2,3},{3,4},{4,5},{5,6},{6,7},{7,8},{8,9},{9,10}}; -Point* pp[10]; - -int ma[10]; -Point mp[10]; -Point* mpp[10]; - -Array array; -Array* parray = &array; - -int main (void) -{ - int tolua_tarray_open (lua_State*); - lua_State* L = lua_open(); - int i; - - for (i=0; i<10; ++i) - { - pp[i] = &p[i]; - - ma[i] = a[i]; - mp[i] = p[i]; - mpp[i] = pp[i]; - - array.a[i] = a[i]; - array.p[i] = p[i]; - array.pp[i] = pp[i]; - } - - luaopen_base(L); - tolua_tarray_open(L); - - lua_dofile(L,"tarray.lua"); - - lua_close(L); - return 0; -} - diff --git a/src/third_party/toluapp/src/tests/tarray.h b/src/third_party/toluapp/src/tests/tarray.h deleted file mode 100644 index 6964ef7f2..000000000 --- a/src/third_party/toluapp/src/tests/tarray.h +++ /dev/null @@ -1,28 +0,0 @@ - -typedef struct Point Point; -struct Point -{ - float x; - float y; -}; - - -extern int a[10]; -extern Point p[10]; -extern Point* pp[10]; - - -extern int ma[10]; -extern Point mp[10]; -extern Point* mpp[10]; - -typedef struct Array Array; -struct Array -{ - int a[10]; - Point p[10]; - Point* pp[10]; -}; - -extern Array array; -extern Array* parray; diff --git a/src/third_party/toluapp/src/tests/tarray.lua b/src/third_party/toluapp/src/tests/tarray.lua deleted file mode 100644 index 2a8a4ce44..000000000 --- a/src/third_party/toluapp/src/tests/tarray.lua +++ /dev/null @@ -1,37 +0,0 @@ -for i=1,10 do - assert(a[i]==i) -end - -for i=2,10 do - assert(p[i-1].y==p[i].x) -end - -for i=1,10 do - assert(M.a[i]==i) -end - -for i=2,10 do - assert(M.p[i-1].y==M.p[i].x) -end - -for i=1,10 do - assert(pp[i].x==M.p[i].x and p[i].y == M.pp[i].y) -end - -for i=1,10 do - assert(array.a[i] == parray.a[i]) - assert(array.p[i].x == parray.pp[i].x and array.p[i].y == parray.pp[i].y) -end - -for i=1,10 do - array.a[i] = a[10-i+1] - M.a[i] = 10-i+1 - assert(array.a[i]==M.a[i]) -end - -for i=2,10 do - array.p[i] = array.pp[1] - assert(array.p[i].x==0 and array.p[i].y==1) -end - -print("Array test OK") diff --git a/src/third_party/toluapp/src/tests/tarray.pkg b/src/third_party/toluapp/src/tests/tarray.pkg deleted file mode 100644 index 32859c94f..000000000 --- a/src/third_party/toluapp/src/tests/tarray.pkg +++ /dev/null @@ -1,29 +0,0 @@ -$#include "tarray.h" - -struct Point -{ - float x; - float y; -}; - - -extern int a[10]; -extern const Point p[10]; -extern Point* pp[10]; - - -module M { -extern int ma[10]@a; -extern const Point mp[10]@p; -extern Point* mpp[10]@pp; -} - -struct Array -{ - int a[10]; - Point p[10]; - Point* pp[10]; -}; - -extern Array array; -extern Array* parray; diff --git a/src/third_party/toluapp/src/tests/tarraybind.c b/src/third_party/toluapp/src/tests/tarraybind.c deleted file mode 100644 index 4a9e0eda7..000000000 --- a/src/third_party/toluapp/src/tests/tarraybind.c +++ /dev/null @@ -1,504 +0,0 @@ -/* -** Lua binding: tarray -** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:22. -*/ - -#ifndef __cplusplus -#include "stdlib.h" -#endif -#include "string.h" - -#include "tolua.h" - -/* Exported function */ -TOLUA_API int tolua_tarray_open (lua_State* tolua_S); - -#include "tarray.h" - -/* function to release collected object via destructor */ -#ifdef __cplusplus - -static int tolua_collect_Point (lua_State* tolua_S) -{ - Point* self = (Point*) tolua_tousertype(tolua_S,1,0); - delete self; - return 0; -} -#endif - - -/* function to register type */ -static void tolua_reg_types (lua_State* tolua_S) -{ - tolua_usertype(tolua_S,"Array"); - tolua_usertype(tolua_S,"Point"); -} - -/* get function: x of class Point */ -static int tolua_get_Point_x(lua_State* tolua_S) -{ - Point* self = (Point*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'x'",NULL); -#endif - tolua_pushnumber(tolua_S,(double)self->x); - return 1; -} - -/* set function: x of class Point */ -static int tolua_set_Point_x(lua_State* tolua_S) -{ - Point* self = (Point*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'x'",NULL); - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->x = ((float) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: y of class Point */ -static int tolua_get_Point_y(lua_State* tolua_S) -{ - Point* self = (Point*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'y'",NULL); -#endif - tolua_pushnumber(tolua_S,(double)self->y); - return 1; -} - -/* set function: y of class Point */ -static int tolua_set_Point_y(lua_State* tolua_S) -{ - Point* self = (Point*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'y'",NULL); - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->y = ((float) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: a */ -static int tolua_get_tarray_a(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - tolua_pushnumber(tolua_S,(double)a[tolua_index]); - return 1; -} - -/* set function: a */ -static int tolua_set_tarray_a(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - a[tolua_index] = ((int) tolua_tonumber(tolua_S,3,0)); - return 0; -} - -/* get function: p */ -static int tolua_get_tarray_p(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - tolua_pushusertype(tolua_S,(void*)&p[tolua_index],"const Point"); - return 1; -} - -/* get function: pp */ -static int tolua_get_tarray_pp(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - tolua_pushusertype(tolua_S,(void*)pp[tolua_index],"Point"); - return 1; -} - -/* set function: pp */ -static int tolua_set_tarray_pp(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - pp[tolua_index] = ((Point*) tolua_tousertype(tolua_S,3,0)); - return 0; -} - -/* get function: ma */ -static int tolua_get_tarray_M_ma(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - tolua_pushnumber(tolua_S,(double)ma[tolua_index]); - return 1; -} - -/* set function: ma */ -static int tolua_set_tarray_M_ma(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - ma[tolua_index] = ((int) tolua_tonumber(tolua_S,3,0)); - return 0; -} - -/* get function: mp */ -static int tolua_get_tarray_M_mp(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - tolua_pushusertype(tolua_S,(void*)&mp[tolua_index],"const Point"); - return 1; -} - -/* get function: mpp */ -static int tolua_get_tarray_M_mpp(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - tolua_pushusertype(tolua_S,(void*)mpp[tolua_index],"Point"); - return 1; -} - -/* set function: mpp */ -static int tolua_set_tarray_M_mpp(lua_State* tolua_S) -{ - int tolua_index; -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - mpp[tolua_index] = ((Point*) tolua_tousertype(tolua_S,3,0)); - return 0; -} - -/* get function: a of class Array */ -static int tolua_get_tarray_Array_a(lua_State* tolua_S) -{ - int tolua_index; - Array* self; - lua_pushstring(tolua_S,".self"); - lua_rawget(tolua_S,1); - self = (Array*) lua_touserdata(tolua_S,-1); -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - tolua_pushnumber(tolua_S,(double)self->a[tolua_index]); - return 1; -} - -/* set function: a of class Array */ -static int tolua_set_tarray_Array_a(lua_State* tolua_S) -{ - int tolua_index; - Array* self; - lua_pushstring(tolua_S,".self"); - lua_rawget(tolua_S,1); - self = (Array*) lua_touserdata(tolua_S,-1); -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - self->a[tolua_index] = ((int) tolua_tonumber(tolua_S,3,0)); - return 0; -} - -/* get function: p of class Array */ -static int tolua_get_tarray_Array_p(lua_State* tolua_S) -{ - int tolua_index; - Array* self; - lua_pushstring(tolua_S,".self"); - lua_rawget(tolua_S,1); - self = (Array*) lua_touserdata(tolua_S,-1); -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - tolua_pushusertype(tolua_S,(void*)&self->p[tolua_index],"Point"); - return 1; -} - -/* set function: p of class Array */ -static int tolua_set_tarray_Array_p(lua_State* tolua_S) -{ - int tolua_index; - Array* self; - lua_pushstring(tolua_S,".self"); - lua_rawget(tolua_S,1); - self = (Array*) lua_touserdata(tolua_S,-1); -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - self->p[tolua_index] = *((Point*) tolua_tousertype(tolua_S,3,0)); - return 0; -} - -/* get function: pp of class Array */ -static int tolua_get_tarray_Array_pp(lua_State* tolua_S) -{ - int tolua_index; - Array* self; - lua_pushstring(tolua_S,".self"); - lua_rawget(tolua_S,1); - self = (Array*) lua_touserdata(tolua_S,-1); -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - tolua_pushusertype(tolua_S,(void*)self->pp[tolua_index],"Point"); - return 1; -} - -/* set function: pp of class Array */ -static int tolua_set_tarray_Array_pp(lua_State* tolua_S) -{ - int tolua_index; - Array* self; - lua_pushstring(tolua_S,".self"); - lua_rawget(tolua_S,1); - self = (Array*) lua_touserdata(tolua_S,-1); -#ifndef TOLUA_RELEASE - { - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err); - } -#endif - tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1; -#ifndef TOLUA_RELEASE - if (tolua_index<0 || tolua_index>=10) - tolua_error(tolua_S,"array indexing out of range.",NULL); -#endif - self->pp[tolua_index] = ((Point*) tolua_tousertype(tolua_S,3,0)); - return 0; -} - -/* get function: array */ -static int tolua_get_array(lua_State* tolua_S) -{ - tolua_pushusertype(tolua_S,(void*)&array,"Array"); - return 1; -} - -/* set function: array */ -static int tolua_set_array(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,2,"Array",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - array = *((Array*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* get function: parray */ -static int tolua_get_parray_ptr(lua_State* tolua_S) -{ - tolua_pushusertype(tolua_S,(void*)parray,"Array"); - return 1; -} - -/* set function: parray */ -static int tolua_set_parray_ptr(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,2,"Array",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - parray = ((Array*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* Open function */ -TOLUA_API int tolua_tarray_open (lua_State* tolua_S) -{ - tolua_open(tolua_S); - tolua_reg_types(tolua_S); - tolua_module(tolua_S,NULL,1); - tolua_beginmodule(tolua_S,NULL); -#ifdef __cplusplus - tolua_cclass(tolua_S,"Point","Point","",tolua_collect_Point); -#else - tolua_cclass(tolua_S,"Point","Point","",NULL); -#endif - tolua_beginmodule(tolua_S,"Point"); - tolua_variable(tolua_S,"x",tolua_get_Point_x,tolua_set_Point_x); - tolua_variable(tolua_S,"y",tolua_get_Point_y,tolua_set_Point_y); - tolua_endmodule(tolua_S); - tolua_array(tolua_S,"a",tolua_get_tarray_a,tolua_set_tarray_a); - tolua_array(tolua_S,"p",tolua_get_tarray_p,NULL); - tolua_array(tolua_S,"pp",tolua_get_tarray_pp,tolua_set_tarray_pp); - tolua_module(tolua_S,"M",1); - tolua_beginmodule(tolua_S,"M"); - tolua_array(tolua_S,"a",tolua_get_tarray_M_ma,tolua_set_tarray_M_ma); - tolua_array(tolua_S,"p",tolua_get_tarray_M_mp,NULL); - tolua_array(tolua_S,"pp",tolua_get_tarray_M_mpp,tolua_set_tarray_M_mpp); - tolua_endmodule(tolua_S); - tolua_cclass(tolua_S,"Array","Array","",NULL); - tolua_beginmodule(tolua_S,"Array"); - tolua_array(tolua_S,"a",tolua_get_tarray_Array_a,tolua_set_tarray_Array_a); - tolua_array(tolua_S,"p",tolua_get_tarray_Array_p,tolua_set_tarray_Array_p); - tolua_array(tolua_S,"pp",tolua_get_tarray_Array_pp,tolua_set_tarray_Array_pp); - tolua_endmodule(tolua_S); - tolua_variable(tolua_S,"array",tolua_get_array,tolua_set_array); - tolua_variable(tolua_S,"parray",tolua_get_parray_ptr,tolua_set_parray_ptr); - tolua_endmodule(tolua_S); - return 1; -} diff --git a/src/third_party/toluapp/src/tests/tclass.cpp b/src/third_party/toluapp/src/tests/tclass.cpp deleted file mode 100644 index 02ca7709d..000000000 --- a/src/third_party/toluapp/src/tests/tclass.cpp +++ /dev/null @@ -1,32 +0,0 @@ -extern "C" { -#include "lua.h" -#include "lualib.h" -#include "lauxlib.h" -} - -#include "tclass.h" - -//Test::Tst_A* Test::Tst_A::last; -//Test::Tst_B* Test::Tst_B::last; -//Test::Tst_C* Test::Tst_C::last; - -extern "C" { - int tolua_tclass_open (lua_State*); -} - -int main () -{ - Test::Tst_B* b = new Test::Tst_B; // instance used in Lua code - - lua_State* L = lua_open(); - luaL_openlibs(L); - tolua_tclass_open(L); - - luaL_dofile(L,"tclass.lua"); - - lua_close(L); - - delete b; - return 0; -} - diff --git a/src/third_party/toluapp/src/tests/tclass.h b/src/third_party/toluapp/src/tests/tclass.h deleted file mode 100644 index de64ae6b4..000000000 --- a/src/third_party/toluapp/src/tests/tclass.h +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef TCLASS_H -#define TCLASS_H - -#include - -namespace Test { - -class Tst_Dummy -{ -}; - -class Tst_A -{ - - int number; -public: - static Tst_A* last; - Tst_A () {last = this;} - virtual char* a () { return "A"; } - class Tst_AA - { - public: - Tst_AA () {} - ~Tst_AA () { } - char* aa () { return "AA"; } - }; - class Tst_BB : public Tst_AA - { - public: - Tst_BB () {} - ~Tst_BB () {} - Tst_AA* Base () { return this; } - }; - - void set_number(int p_number) { number = p_number;}; - int get_number() {return number*2;}; - - virtual ~Tst_A() {}; -}; - -class Tst_B : public Tst_A -{ -public: - static Tst_B* last; - Tst_B () {last = this;} - virtual char* b () { return "B"; } - - static Tst_A* create() {return new Tst_B;}; - static void* create_void() {return new Tst_B;}; - - virtual ~Tst_B() {}; -}; - -class Tst_C : public Tst_B -{ - int i; -public: - static Tst_C* last; - Tst_C (int n) : i(n) {last = this;} - virtual ~Tst_C () { printf("deleting C: %d\n",i); } - virtual char* c () { return "C"; } -}; - -inline Tst_A::Tst_AA* Tst_create_aa () -{ - return new Tst_A::Tst_AA(); -} - -inline bool Tst_is_aa (Tst_A::Tst_AA* obj) -{ - return true; -} - -class Tst_E { - void* ptr; - -public: - enum Pete { - ONE, - TWO, - } pete; - - void get_pete(Pete p) {}; - - template - T get_t() {T a=0; return a;}; - - Tst_E& operator+(const Tst_E& rvalue) {return *this;}; - - void pars(int a=0, int b=0) {}; - void get_pointer(void* a) {}; - - Tst_A a; - - void set_ptr(void* p_ptr) { - printf("this is %p, ptr is %p\n", this, p_ptr); - ptr = p_ptr; - }; - void* get_ptr() {return ptr;}; - - Tst_E(int) {}; -}; - -class Tst_Outside { - -public: - - Tst_Outside() {}; -}; - -}; // end of namespace - - -static void outside_func(Test::Tst_Outside* p_out, lua_State* ls) { - - if (p_out) printf("method!\n"); - else printf("static!\n"); - //printf("luastate: %i\n", ls); -}; - -#endif diff --git a/src/third_party/toluapp/src/tests/tclass.lua b/src/third_party/toluapp/src/tests/tclass.lua deleted file mode 100644 index 6dea5e98a..000000000 --- a/src/third_party/toluapp/src/tests/tclass.lua +++ /dev/null @@ -1,131 +0,0 @@ -if not Test then - local loadlib - if not package then - loadlib = _G['loadlib'] - else - loadlib = package.loadlib - end - f, e, eo = loadlib("./libtclass.so", "luaopen_tclass") - if f then - f() - else - print(eo, e) - os.exit() - end -end - -a = {} -rawset(a, ".c_instance", "something") - -function hello() - - print("hello world") -end - -rawset(Test.B, "hello", hello) - --- type convertion tests ---print(Test.A) ---print(tolua.type(Test.A.last)) ---assert(tolua.type(Test.A.last) == 'Test::Tst_A') -- first time the object is mapped ---assert(tolua.type(Test.B.last) == 'Test::Tst_B') -- type convertion to specialized type ---assert(tolua.type(Test.A.last) == 'Test::Tst_B') -- no convertion: obj already mapped as B - - -local a = Test.A:new() -assert(tolua.type(Test.A.last) == 'Test::Tst_A') -- no type convertion: same type -local b = Test.B:new() -assert(tolua.type(Test.A.last) == 'Test::Tst_B') -- no convertion: obj already mapped as B -local c = Test.luaC:new(0) -assert(tolua.type(Test.A.last) == 'Test::Tst_C') -- no convertion: obj already mapped as C -assert(tolua.type(Test.luaC.last) == 'Test::Tst_C') - -local aa = Test.A.AA:new() -local bb = Test.A.BB:new() -local xx = Test.create_aa() - --- method calling tests -assert(a:a() == 'A') -assert(b:a() == 'A') -assert(b:b() == 'B') -assert(c:a() == 'A') -assert(c:b() == 'B') -assert(c:c() == 'C') -assert(aa:aa() == 'AA') -assert(bb:aa() == bb:Base():aa()) -assert(xx:aa() == 'AA') -assert(Test.is_aa(bb) == true) - --- test ownershipping handling --- should delete objects: 6 7 8 9 10 (it may vary!) -local set = {} -for i=1,10 do - local c = Test.luaC:new(i) - if i>5 then - tolua.takeownership(c) - end - --set[i] = c -end - - - -e = Test.B:new_local() - -print("e is type "..tolua.type(e)) -print("ae is type "..tolua.type(ae)) - ---e:delete() - -b:hello() - ----------- -local out = Test.Outside:new_local() -out:outside() -Test.Outside:outside_static(nil) - - -print "***** cast" -local acast = Test.B:create_void() -print("type is "..tolua.type(acast)) -local bcast = tolua.cast(acast, "Test::Tst_B") -print("bcast is "..tostring(bcast)) -print("type is "..tolua.type(bcast)) -print(bcast:b()) - --- test properies -local n = 7 -a.number = n -assert(a.number == n*2) - --- constructors -print(getmetatable(Test.A)) -print(getmetatable(Test.B)) -print(getmetatable(Test.E)) - -local a = Test.A() -local b = Test.B() -local e = Test.E(5) ---print(e+5) -print(tostring(getmetatable(Test.B).__call)) -print(tostring(Test.B.__call)) -print(tostring(Test.B.__call(Test.B))) -print(tolua.type(b)) - -e:set_ptr(e) -local ve = tolua.cast(e:get_ptr(), "Test::Tst_E") -ve:set_ptr(ve) - -print"1" -Test.A.pete = {} -print"2" -table.insert(Test.A.pete, a) -print"3" - - -for i=1,100000 do - la = {} - tolua.inherit(la, a) -end - -print("Class test OK") - diff --git a/src/third_party/toluapp/src/tests/tclass.pkg b/src/third_party/toluapp/src/tests/tclass.pkg deleted file mode 100644 index 614245c55..000000000 --- a/src/third_party/toluapp/src/tests/tclass.pkg +++ /dev/null @@ -1,97 +0,0 @@ -$#include "tclass.h" - -$Test::Tst_A* Test::Tst_A::last; -$Test::Tst_B* Test::Tst_B::last; -$Test::Tst_C* Test::Tst_C::last; - - -$renaming ^Tst_ @ - -namespace Test { - -class Tst_Dummy; - -class Tst_A -{ - static Tst_A* last; - Tst_A (); - virtual char* a (); - class Tst_AA - { - Tst_AA () {} - ~Tst_AA () {} - char* aa () { return "AA"; } - }; - class Tst_BB : public Tst_AA - { - Tst_BB () {} - ~Tst_BB () {} - Tst_AA* Base () { return this; } - }; - - tolua_property int number; -}; - -class Tst_E { -public: - typedef enum{ - ONE, - TWO, - } Pete; - Pete pete; - - float get_t(); - - void get_pete(Pete p); - - Tst_E& operator+(const Tst_E& rvalue); - - void pars(int a=0xa, int b=GetNumber(GetNumber(1,2))); - void get_pointer(void* a=NULL); - - void set_ptr(void* p_ptr) { - printf("this is %p, ptr is %p\n", this, p_ptr); - ptr = p_ptr; - }; - void* get_ptr() {return ptr;}; - - Tst_A a; - Tst_E(int); - //~Tst_E(); -}; - - -class Tst_B : public Tst_A -{ - static Tst_B* last; - Tst_B (); - virtual char* b (); - static Tst_A* create(); - static void* create_void() {return new Tst_B;}; -}; - -class Tst_C@luaC : public Tst_B -{ - static Tst_C* last; - Tst_C (int n); - ~Tst_C (); - virtual char* c (); -}; - -Tst_A::Tst_AA* Tst_create_aa (); -bool Tst_is_aa (Tst_A::Tst_AA* obj); - -class Tst_Outside { - - - tolua_outside void outside_func@outside(lua_State* ls); - - static tolua_outside void outside_func@outside_static(Tst_Outside* instance, lua_State* ls); - - Tst_Outside() {}; -}; - - -}; // end of namespace - - diff --git a/src/third_party/toluapp/src/tests/tconstant.h b/src/third_party/toluapp/src/tests/tconstant.h deleted file mode 100644 index 917ad0a68..000000000 --- a/src/third_party/toluapp/src/tests/tconstant.h +++ /dev/null @@ -1,29 +0,0 @@ -#define FIRST 1 -#define SECOND 2 - -enum { - ONE = 1, - TWO = 2 -}; - -#define M_FIRST 1 -#define M_SECOND 2 - -enum { - M_ONE = 1, - M_TWO = 2 -}; - -class A { -public: - - #define FIRST 1 - #define SECOND 2 - - enum { - ONE = 1, - TWO = 2 - }; -}; - - diff --git a/src/third_party/toluapp/src/tests/tconstant.lua b/src/third_party/toluapp/src/tests/tconstant.lua deleted file mode 100644 index f7753fecb..000000000 --- a/src/third_party/toluapp/src/tests/tconstant.lua +++ /dev/null @@ -1,11 +0,0 @@ -assert(FIRST==M.FIRST) -assert(FIRST==A.FIRST) -assert(SECOND==M.SECOND) -assert(SECOND==A.SECOND) - -assert(ONE==M.ONE) -assert(ONE==A.ONE) -assert(TWO==M.TWO) -assert(TWO==A.TWO) - -print("Constant test OK") diff --git a/src/third_party/toluapp/src/tests/tconstant.pkg b/src/third_party/toluapp/src/tests/tconstant.pkg deleted file mode 100644 index ada33909b..000000000 --- a/src/third_party/toluapp/src/tests/tconstant.pkg +++ /dev/null @@ -1,34 +0,0 @@ -$#include "tconstant.h" - -#define FIRST 1 -#define SECOND 2 - -enum { - ONE = 1, - TWO = 2 -}; - -module M { - -#define M_FIRST@FIRST 1 -#define M_SECOND@SECOND 2 - -enum { - M_ONE@ONE = 1, - M_TWO@TWO = 2 -}; -} - -class A { -public: - - #define FIRST 1 - #define SECOND 2 - - enum { - ONE = 1, - TWO = 2 - }; -}; - - diff --git a/src/third_party/toluapp/src/tests/tdirective.lua b/src/third_party/toluapp/src/tests/tdirective.lua deleted file mode 100644 index 547b1507c..000000000 --- a/src/third_party/toluapp/src/tests/tdirective.lua +++ /dev/null @@ -1,6 +0,0 @@ -assert(a==3) -assert(A==4) -assert(func()==5) - -print("Directive test OK") - diff --git a/src/third_party/toluapp/src/tests/tdirective.pkg b/src/third_party/toluapp/src/tests/tdirective.pkg deleted file mode 100644 index cc1f84e9c..000000000 --- a/src/third_party/toluapp/src/tests/tdirective.pkg +++ /dev/null @@ -1,28 +0,0 @@ -$#include "lualib.h" -$#include "lauxlib.h" - -$int a; -$extern int a; - -$int main (void) -${ -$ lua_State* L = lua_open(); -$ luaopen_base(L); -$ tolua_tdirective_open(L); -$ lua_dofile(L,"tdirective.lua"); -$ lua_close(L); -$ return 0; -$} - -$pfile "tdirectivepkg.pkg" - -$< - a = 3; -$> - -$[ -A = 4 -$] - -$lfile "tdirectivelua.lua" - diff --git a/src/third_party/toluapp/src/tests/tdirectivebind.c b/src/third_party/toluapp/src/tests/tdirectivebind.c deleted file mode 100644 index 28c123411..000000000 --- a/src/third_party/toluapp/src/tests/tdirectivebind.c +++ /dev/null @@ -1,85 +0,0 @@ -/* -** Lua binding: tdirective -** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:24. -*/ - -#ifndef __cplusplus -#include "stdlib.h" -#endif -#include "string.h" - -#include "tolua.h" - -/* Exported function */ -TOLUA_API int tolua_tdirective_open (lua_State* tolua_S); - -#include "lualib.h" -#include "lauxlib.h" -int a; -extern int a; -int main (void) -{ - lua_State* L = lua_open(); - luaopen_base(L); - tolua_tdirective_open(L); - lua_dofile(L,"tdirective.lua"); - lua_close(L); - return 0; -} - -/* function to register type */ -static void tolua_reg_types (lua_State* tolua_S) -{ -} - -/* get function: a */ -static int tolua_get_a(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)a); - return 1; -} - -/* set function: a */ -static int tolua_set_a(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - a = ((int) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* Open function */ -TOLUA_API int tolua_tdirective_open (lua_State* tolua_S) -{ - tolua_open(tolua_S); - tolua_reg_types(tolua_S); - tolua_module(tolua_S,NULL,1); - tolua_beginmodule(tolua_S,NULL); - tolua_variable(tolua_S,"a",tolua_get_a,tolua_set_a); -{ - a = 3; -} - - { /* begin embedded lua code */ - static unsigned char B[] = { - 10, 65, 32, 61, 32, 52,32 - }; - lua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code"); - } /* end of embedded lua code */ - - - { /* begin embedded lua code */ - static unsigned char B[] = { - 10,102,117,110, 99,116,105,111,110, 32,102,117,110, 99, 32, - 40, 41, 10,114,101,116,117,114,110, 32, 53, 10,101,110,100, - 32 - }; - lua_dobuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code"); - } /* end of embedded lua code */ - - tolua_endmodule(tolua_S); - return 1; -} diff --git a/src/third_party/toluapp/src/tests/tdirectivelua.lua b/src/third_party/toluapp/src/tests/tdirectivelua.lua deleted file mode 100644 index f7c7c15f2..000000000 --- a/src/third_party/toluapp/src/tests/tdirectivelua.lua +++ /dev/null @@ -1,3 +0,0 @@ -function func () - return 5 -end diff --git a/src/third_party/toluapp/src/tests/tdirectivepkg.pkg b/src/third_party/toluapp/src/tests/tdirectivepkg.pkg deleted file mode 100644 index b15a66e7f..000000000 --- a/src/third_party/toluapp/src/tests/tdirectivepkg.pkg +++ /dev/null @@ -1,2 +0,0 @@ -extern int a; - diff --git a/src/third_party/toluapp/src/tests/tfunction.h b/src/third_party/toluapp/src/tests/tfunction.h deleted file mode 100644 index 9c69f0696..000000000 --- a/src/third_party/toluapp/src/tests/tfunction.h +++ /dev/null @@ -1,220 +0,0 @@ -#ifndef tfunction_h -#define tfunction_h - -#include -#include - -typedef enum { - FIRST = 1, - SECOND = 2 -} Order; - -class Point -{ - char m_s[64]; - float m_x; - float m_y; - -public: - - enum Error { - SUCCESS = 0, - ERROR = 1 - }; - - Point (float x=0, float y=0) - : m_x(x), m_y(y) - { - } - virtual ~Point () - { - } - - void set (float x, float y) - { - m_x = x, m_y = y; - } - void set (float v[2]=0) - { - m_x = v[0], m_y=v[1]; - } - void setpointer (Point* p) - { - *this = *p; - } - void setref (Point& p) - { - *this = p; - } - void setvalue (Point p) - { - *this = p; - } - void setconst (const Point* p) - { - *this = *p; - } - void setname (const char* s) - { - strncpy(m_s,s,63); - } - - void get (float* x, float* y) const - { - *x = m_x, *y = m_y; - } - void get (float v[2]) const - { - v[0] = m_x, v[1] = m_y; - } - Point* getpointer () - { - return this; - } - Point& getref () - { - return *this; - } - Point getvalue () - { - return *this; - } - const Point* getconst () const - { - return this; - } - const char* getname () const - { - return m_s; - } - - Point operator+ (const Point& p) const - { - return Point(m_x+p.m_x,m_y+p.m_y); - } - Point operator- (const Point& p) const - { - return Point(m_x-p.m_x,m_y-p.m_y); - } - Point operator* (const Point& p) const - { - return Point(m_x*p.m_x,m_y*p.m_y); - } - Point operator/ (float n) const - { - return Point(m_x/n,m_y/n); - } - bool operator< (const Point& p) const - { - if (m_x < p.m_x) return true; - else if (m_x > p.m_x) return false; - else return m_y < p.m_y; - } - bool operator<= (const Point& p) const - { - return operator<(p) || operator==(p); - } - bool operator== (const Point& p) const - { - return m_x==p.m_x && m_y==p.m_y; - } - - float operator[] (int i) const - { - return (i==0) ? m_x : m_y; - } - float& operator[] (int i) - { - return (i==0) ? m_x : m_y; - } - - static Error echo (Error e) - { - return e; - } - -}; - - -inline Point add (const Point& p1, const Point& p2) -{ - return p1+p2; -} -inline Point sub (const Point& p1, const Point& p2) -{ - return p1-p2; -} -inline Point mult (const Point& p1, const Point& p2) -{ - return p1*p2; -} -inline Point div (const Point& p1, float n) -{ - return p1/n; -} - -inline void getpoint (const Point* p, float* x, float* y) -{ - p->get(x,y); -} -inline void setpoint (Point* p, float x=0, float y=0) -{ - p->set(x,y); -} - -inline Point average (int n, Point v[]) -{ - Point p(0,0); - for (int i=0; iq) -assert(t>=q) - -local p = Point:new(1,2) -assert(p[1]==1 and p[2]==2) -p[1]=3; p[2] = p[2]+2 -local x, y = p:get() -assert(x==3 and y==4) - - -local n = 3 -local v = {Point:new(0,1), Point:new(2,3), Point:new(4,5)} - -local m = average(n,v) -local c = averagepointer(n,v) -local t = {} -copyvector(n,v,t) - -local l = Point:new() -for i=1,n do - assert(v[i]==t[i]) - l[1] = l[1] + v[i][1] - l[2] = l[2] + v[i][2] -end -l = l/n -assert(m==l) -assert(c==l) - -assert(Point.SUCCESS==Point:echo(Point.SUCCESS)) -assert(Point.ERROR==Point:echo(Point.ERROR)) -assert(FIRST==invert(SECOND)) -assert(SECOND==invert(FIRST)) - -print("Function test OK") diff --git a/src/third_party/toluapp/src/tests/tfunction.pkg b/src/third_party/toluapp/src/tests/tfunction.pkg deleted file mode 100644 index bae3f432a..000000000 --- a/src/third_party/toluapp/src/tests/tfunction.pkg +++ /dev/null @@ -1,74 +0,0 @@ -$#include "tfunction.h" - -typedef enum { - FIRST = 1, - SECOND = 2 -} Order; - -class Point -{ - enum Error { - SUCCESS = 0, - ERROR = 1 - }; - - Point (float x=0, float y=0); - virtual ~Point (); - - void set (float x, float y); - void set (float v[2]=0); - void setpointer (Point* p); - void setref (Point& p); - void setvalue (Point p); - void setconst (const Point* p); - void setname (const char* s); - - void get (float* x=0, float* y=0) const; - void get (float v[2]=0) const; - Point* getpointer (); - Point& getref (); - Point getvalue (); - const Point* getconst () const; - const char* getname () const; - - Point operator+ (const Point& p) const; - Point operator- (const Point& p) const; - Point operator* (const Point& p) const; - Point operator/ (float n) const; - bool operator< (const Point& p) const; - bool operator<= (const Point& p) const; - bool operator== (const Point& p) const; - - float operator[] (int i) const; - float& operator[] (int i); - - static Error echo (Error e); -}; - -module alg -{ - Point add (const Point& p1, const Point& p2); - Point sub (const Point& p1, const Point& p2); - Point mult (const Point& p1, const Point& p2); - Point div (const Point& p1, float n); -} - -void getpoint (const Point* p, float* x=0, float* y=0); -void setpoint (Point* p, float x=0, float y=0); -inline Point average (int n, Point v[n]); -inline Point averagepointer (int n, Point* v[n]); -inline void copyvector (int n, const Point v[n], Point u[n]=(u+i)); - -inline Order invert (Order o); - -$cfile "tfunction.h" - -/* -class ColorPoint : public Point -{ - ColorPoint (float px, float py, float cr=0.0f, float cg=0.0f, float cb=0.0f); - virtual ~ColorPoint (); - virtual void getcolor (float* red, float *green, float *blue) const; - static const Point* MakeRed (float x, float y); -}; -*/ diff --git a/src/third_party/toluapp/src/tests/tmodule.c b/src/third_party/toluapp/src/tests/tmodule.c deleted file mode 100644 index 1cbfa2964..000000000 --- a/src/third_party/toluapp/src/tests/tmodule.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "lualib.h" -#include "lauxlib.h" - -#include "tmodule.h" - -int a = 1; -int b = 2; -int c = 3; -int d = 4; - -int main () -{ - int tolua_tmodule_open (lua_State*); - - lua_State* L = lua_open(); - luaopen_base(L); - tolua_tmodule_open(L); - - lua_dofile(L,"tmodule.lua"); - - lua_close(L); - return 0; -} - diff --git a/src/third_party/toluapp/src/tests/tmodule.h b/src/third_party/toluapp/src/tests/tmodule.h deleted file mode 100644 index 3766bc4e9..000000000 --- a/src/third_party/toluapp/src/tests/tmodule.h +++ /dev/null @@ -1,7 +0,0 @@ -#include - -extern int a; -extern int b; -extern int c; -extern int d; - diff --git a/src/third_party/toluapp/src/tests/tmodule.lua b/src/third_party/toluapp/src/tests/tmodule.lua deleted file mode 100644 index 96ddf4399..000000000 --- a/src/third_party/toluapp/src/tests/tmodule.lua +++ /dev/null @@ -1,17 +0,0 @@ --- test valid access -assert(A.a==1) -assert(A.B.b==2) -assert(A.B.C.c==3) - --- test invalid access -assert(A.B.a==nil) -- no inheritance -assert(A.B.C.a==nil) - -assert(A.b==nil) -- no access the inner module -assert(A.c==nil) -assert(A.B.c==nil) - --- test variables appended to existing modules -assert(A.d==4) - -print("Module test OK") diff --git a/src/third_party/toluapp/src/tests/tmodule.pkg b/src/third_party/toluapp/src/tests/tmodule.pkg deleted file mode 100644 index 43d430639..000000000 --- a/src/third_party/toluapp/src/tests/tmodule.pkg +++ /dev/null @@ -1,16 +0,0 @@ - -$#include "tmodule.h" - -module A { - extern int a; - module B { - extern int b; - module C { - extern int c; - } - } -} - -module A { - extern int d; -} diff --git a/src/third_party/toluapp/src/tests/tmodulebind.c b/src/third_party/toluapp/src/tests/tmodulebind.c deleted file mode 100644 index 0175a4643..000000000 --- a/src/third_party/toluapp/src/tests/tmodulebind.c +++ /dev/null @@ -1,124 +0,0 @@ -/* -** Lua binding: tmodule -** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:13. -*/ - -#ifndef __cplusplus -#include "stdlib.h" -#endif -#include "string.h" - -#include "tolua.h" - -/* Exported function */ -TOLUA_API int tolua_tmodule_open (lua_State* tolua_S); - -#include "tmodule.h" - -/* function to register type */ -static void tolua_reg_types (lua_State* tolua_S) -{ -} - -/* get function: a */ -static int tolua_get_A_a(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)a); - return 1; -} - -/* set function: a */ -static int tolua_set_A_a(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - a = ((int) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: b */ -static int tolua_get_B_b(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)b); - return 1; -} - -/* set function: b */ -static int tolua_set_B_b(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - b = ((int) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: c */ -static int tolua_get_C_c(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)c); - return 1; -} - -/* set function: c */ -static int tolua_set_C_c(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - c = ((int) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: d */ -static int tolua_get_A_d(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)d); - return 1; -} - -/* set function: d */ -static int tolua_set_A_d(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - d = ((int) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* Open function */ -TOLUA_API int tolua_tmodule_open (lua_State* tolua_S) -{ - tolua_open(tolua_S); - tolua_reg_types(tolua_S); - tolua_module(tolua_S,NULL,0); - tolua_beginmodule(tolua_S,NULL); - tolua_module(tolua_S,"A",1); - tolua_beginmodule(tolua_S,"A"); - tolua_variable(tolua_S,"a",tolua_get_A_a,tolua_set_A_a); - tolua_module(tolua_S,"B",1); - tolua_beginmodule(tolua_S,"B"); - tolua_variable(tolua_S,"b",tolua_get_B_b,tolua_set_B_b); - tolua_module(tolua_S,"C",1); - tolua_beginmodule(tolua_S,"C"); - tolua_variable(tolua_S,"c",tolua_get_C_c,tolua_set_C_c); - tolua_endmodule(tolua_S); - tolua_endmodule(tolua_S); - tolua_endmodule(tolua_S); - tolua_module(tolua_S,"A",1); - tolua_beginmodule(tolua_S,"A"); - tolua_variable(tolua_S,"d",tolua_get_A_d,tolua_set_A_d); - tolua_endmodule(tolua_S); - tolua_endmodule(tolua_S); - return 1; -} diff --git a/src/third_party/toluapp/src/tests/tnamespace.h b/src/third_party/toluapp/src/tests/tnamespace.h deleted file mode 100644 index 8c15e414f..000000000 --- a/src/third_party/toluapp/src/tests/tnamespace.h +++ /dev/null @@ -1,11 +0,0 @@ -namespace A { - enum {FIRST=1}; - extern int a; - namespace B { - extern int b; - namespace C { - extern int c; - } - } -} - diff --git a/src/third_party/toluapp/src/tests/tnamespace.lua b/src/third_party/toluapp/src/tests/tnamespace.lua deleted file mode 100644 index 3a51dfb6d..000000000 --- a/src/third_party/toluapp/src/tests/tnamespace.lua +++ /dev/null @@ -1,14 +0,0 @@ --- test valid access -assert(A.a==1) -assert(A.B.b==2) -assert(A.B.C.c==3) - --- test invalid access -assert(A.B.a==nil) -- no inheritance -assert(A.B.C.a==nil) - -assert(A.b==nil) -- no access the inner module -assert(A.c==nil) -assert(A.B.c==nil) - -print("Namespace test OK") diff --git a/src/third_party/toluapp/src/tests/tnamespace.pkg b/src/third_party/toluapp/src/tests/tnamespace.pkg deleted file mode 100644 index 0b583663a..000000000 --- a/src/third_party/toluapp/src/tests/tnamespace.pkg +++ /dev/null @@ -1,13 +0,0 @@ - -$#include "tnamespace.h" - -namespace A { - int a; - namespace B { - int b; - namespace C { - int c; - } - } -} - diff --git a/src/third_party/toluapp/src/tests/tvariable.c b/src/third_party/toluapp/src/tests/tvariable.c deleted file mode 100644 index 25e788eeb..000000000 --- a/src/third_party/toluapp/src/tests/tvariable.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "lualib.h" -#include "lauxlib.h" - -#include "tvariable.h" - -int i = 1; -float f = 2.0f;; -double d = 3.0; -char* s = "Hello world"; -void* v = (void*)1; -char n[64] = "Hi there"; - -A a = {11,12.0f,13.0,"Hello world from class",(void*)1,"Hi there from class"}; -B* b; -U u; - -int mi = 21; -float mf = 22.0f; -double md = 23.0; -char* ms = "Hello world in module"; -void* mv = NULL; -char mn[64] = "Hi there in module"; -A ma = {31,32.0f,33.0,"Hello world from class in module", - NULL,"Hi there from class in module"}; -B* mb; - -int main (void) -{ - int tolua_tvariable_open (lua_State*); - lua_State* L = lua_open(); - - B bb = {a,NULL}; - B bbb = {ma,&bb}; - b = &bb; - mb = &bbb; - - - luaopen_base(L); - tolua_tvariable_open(L); - - lua_dofile(L,"tvariable.lua"); - - lua_close(L); - return 0; -} - diff --git a/src/third_party/toluapp/src/tests/tvariable.h b/src/third_party/toluapp/src/tests/tvariable.h deleted file mode 100644 index 6363c484b..000000000 --- a/src/third_party/toluapp/src/tests/tvariable.h +++ /dev/null @@ -1,44 +0,0 @@ -typedef struct A A; -typedef struct B B; -typedef union U U; - -struct A -{ - int i; - float f; - double d; - char* s; - void* v; - char n[64]; -}; - -union U -{ - int i; - float f; -}; - -struct B -{ - A a; - B* b; -}; - -extern int i; -extern float f; -extern double d; -extern char* s; -extern void* v; -extern char n[64]; -extern A a; -extern B* b; -extern U u; - -extern int mi; -extern float mf; -extern double md; -extern char* ms; -extern void* mv; -extern char mn[64]; -extern A ma; -extern B* mb; diff --git a/src/third_party/toluapp/src/tests/tvariable.lua b/src/third_party/toluapp/src/tests/tvariable.lua deleted file mode 100644 index 3db902901..000000000 --- a/src/third_party/toluapp/src/tests/tvariable.lua +++ /dev/null @@ -1,73 +0,0 @@ -assert(i==1) -assert(f==2) -assert(d==3) -assert(s=="Hello world") -assert(n=="Hi there") -n = "Hello" -assert(n=="Hello") - -assert(a.i==11) -assert(a.f==12) -assert(a.d==13) -assert(a.s=="Hello world from class") -assert(a.n=="Hi there from class") -a.n = "Hello from class" -assert(a.n=="Hello from class") - -assert(v==a.v) - -u.i = 2 -assert(u.i==2) -u.f = 2 -assert(u.f==2) -assert(u.i~=2) - -assert(M.mi==21) -assert(M.mf==22) -assert(M.md==23) -assert(M.ms=="Hello world in module") -assert(M.mn=="Hi there in module") -M.mn = "Hello in module" -assert(M.mn=="Hello in module") -assert(M.mv==nil) - -assert(M.ma.i==31) -assert(M.ma.f==32) -assert(M.ma.d==33) -assert(M.ma.s=="Hello world from class in module") -assert(M.ma.n=="Hi there from class in module") -M.ma.n = "Hello from class in module" -assert(M.ma.n=="Hello from class in module") -assert(M.ma.v==nil) - -assert(a.i==b.a.i) -assert(a.f==b.a.f) -assert(a.d==b.a.d) -assert(a.s==b.a.s) -assert(a.v==b.a.v) -assert(b.b==nil) - -assert(M.ma.i==M.mb.a.i) -assert(M.ma.f==M.mb.a.f) -assert(M.ma.d==M.mb.a.d) -assert(M.ma.s==M.mb.a.s) -assert(M.ma.v==M.mb.a.v) - -assert(a.i==M.mb.b.a.i) -assert(a.f==M.mb.b.a.f) -assert(a.d==M.mb.b.a.d) -assert(a.s==M.mb.b.a.s) -assert(a.v==M.mb.b.a.v) -assert(M.mb.b.b==nil) - -assert(s~=rawget(_G,"s")) -- because s represents a C variable -s = "Hello" -assert(s==rawget(_G,"s")) -- because s is mapped as const - -f = 25.0 -assert(f~=rawget(_G,"f")) -- because f represents a C variable - -b.a.i = 5 -assert(b.a.i==M.mb.b.a.i) - -print("Variable test OK") diff --git a/src/third_party/toluapp/src/tests/tvariable.pkg b/src/third_party/toluapp/src/tests/tvariable.pkg deleted file mode 100644 index a8a1539a0..000000000 --- a/src/third_party/toluapp/src/tests/tvariable.pkg +++ /dev/null @@ -1,45 +0,0 @@ -$#include "tvariable.h" - -struct A -{ - int i; - float f; - double d; - char* s; - void* v; - char n[64]; -}; - -struct B -{ - A a; - B* b; -}; - -union U -{ - int i; - float f; -}; - -extern int i; -extern float f; -extern double d; -extern const char* s; -extern void* v; -extern char n[64]; -extern A a; -extern B* b; -extern U u; - -module M { -extern int mi; -extern float mf; -extern double md; -extern const char* ms; -extern void* mv; -extern const char mn[64]; -extern A a; -extern A ma; -extern B* mb; -} diff --git a/src/third_party/toluapp/src/tests/tvariablebind.c b/src/third_party/toluapp/src/tests/tvariablebind.c deleted file mode 100644 index 9a50e36eb..000000000 --- a/src/third_party/toluapp/src/tests/tvariablebind.c +++ /dev/null @@ -1,631 +0,0 @@ -/* -** Lua binding: tvariable -** Generated automatically by tolua 5.0a-CDLVS2 on 08/08/03 17:06:18. -*/ - -#ifndef __cplusplus -#include "stdlib.h" -#endif -#include "string.h" - -#include "tolua.h" - -/* Exported function */ -TOLUA_API int tolua_tvariable_open (lua_State* tolua_S); - -#include "tvariable.h" - -/* function to register type */ -static void tolua_reg_types (lua_State* tolua_S) -{ - tolua_usertype(tolua_S,"A"); - tolua_usertype(tolua_S,"U"); - tolua_usertype(tolua_S,"B"); -} - -/* get function: i of class A */ -static int tolua_get_A_i(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); -#endif - tolua_pushnumber(tolua_S,(double)self->i); - return 1; -} - -/* set function: i of class A */ -static int tolua_set_A_i(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->i = ((int) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: f of class A */ -static int tolua_get_A_f(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); -#endif - tolua_pushnumber(tolua_S,(double)self->f); - return 1; -} - -/* set function: f of class A */ -static int tolua_set_A_f(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->f = ((float) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: d of class A */ -static int tolua_get_A_d(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'd'",NULL); -#endif - tolua_pushnumber(tolua_S,(double)self->d); - return 1; -} - -/* set function: d of class A */ -static int tolua_set_A_d(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'd'",NULL); - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->d = ((double) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: s of class A */ -static int tolua_get_A_s(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 's'",NULL); -#endif - tolua_pushstring(tolua_S,(const char*)self->s); - return 1; -} - -/* set function: s of class A */ -static int tolua_set_A_s(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 's'",NULL); - if (!tolua_isstring(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->s = ((char*) tolua_tostring(tolua_S,2,0)); - return 0; -} - -/* get function: v of class A */ -static int tolua_get_A_v(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'v'",NULL); -#endif - tolua_pushuserdata(tolua_S,(void*)self->v); - return 1; -} - -/* set function: v of class A */ -static int tolua_set_A_v(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'v'",NULL); - if (!tolua_isuserdata(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->v = ((void*) tolua_touserdata(tolua_S,2,0)); - return 0; -} - -/* get function: n of class A */ -static int tolua_get_A_n(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'n'",NULL); -#endif - tolua_pushstring(tolua_S,(const char*)self->n); - return 1; -} - -/* set function: n of class A */ -static int tolua_set_A_n(lua_State* tolua_S) -{ - A* self = (A*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'n'",NULL); - if (!tolua_isstring(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - strncpy(self->n,tolua_tostring(tolua_S,2,0),64-1); - return 0; -} - -/* get function: a of class B */ -static int tolua_get_B_a(lua_State* tolua_S) -{ - B* self = (B*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'a'",NULL); -#endif - tolua_pushusertype(tolua_S,(void*)&self->a,"A"); - return 1; -} - -/* set function: a of class B */ -static int tolua_set_B_a(lua_State* tolua_S) -{ - B* self = (B*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'a'",NULL); - if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->a = *((A*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* get function: b of class B */ -static int tolua_get_B_b_ptr(lua_State* tolua_S) -{ - B* self = (B*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'b'",NULL); -#endif - tolua_pushusertype(tolua_S,(void*)self->b,"B"); - return 1; -} - -/* set function: b of class B */ -static int tolua_set_B_b_ptr(lua_State* tolua_S) -{ - B* self = (B*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'b'",NULL); - if (!tolua_isusertype(tolua_S,2,"B",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->b = ((B*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* get function: i of class U */ -static int tolua_get_U_i(lua_State* tolua_S) -{ - U* self = (U*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); -#endif - tolua_pushnumber(tolua_S,(double)self->i); - return 1; -} - -/* set function: i of class U */ -static int tolua_set_U_i(lua_State* tolua_S) -{ - U* self = (U*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'i'",NULL); - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->i = ((int) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: f of class U */ -static int tolua_get_U_f(lua_State* tolua_S) -{ - U* self = (U*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); -#endif - tolua_pushnumber(tolua_S,(double)self->f); - return 1; -} - -/* set function: f of class U */ -static int tolua_set_U_f(lua_State* tolua_S) -{ - U* self = (U*) tolua_tousertype(tolua_S,1,0); -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'f'",NULL); - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - self->f = ((float) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: i */ -static int tolua_get_i(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)i); - return 1; -} - -/* set function: i */ -static int tolua_set_i(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - i = ((int) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: f */ -static int tolua_get_f(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)f); - return 1; -} - -/* set function: f */ -static int tolua_set_f(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - f = ((float) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: d */ -static int tolua_get_d(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)d); - return 1; -} - -/* set function: d */ -static int tolua_set_d(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - d = ((double) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: s */ -static int tolua_get_s(lua_State* tolua_S) -{ - tolua_pushstring(tolua_S,(const char*)s); - return 1; -} - -/* get function: v */ -static int tolua_get_v(lua_State* tolua_S) -{ - tolua_pushuserdata(tolua_S,(void*)v); - return 1; -} - -/* set function: v */ -static int tolua_set_v(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isuserdata(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - v = ((void*) tolua_touserdata(tolua_S,2,0)); - return 0; -} - -/* get function: n */ -static int tolua_get_n(lua_State* tolua_S) -{ - tolua_pushstring(tolua_S,(const char*)n); - return 1; -} - -/* set function: n */ -static int tolua_set_n(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isstring(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - strncpy(n,tolua_tostring(tolua_S,2,0),64-1); - return 0; -} - -/* get function: a */ -static int tolua_get_a(lua_State* tolua_S) -{ - tolua_pushusertype(tolua_S,(void*)&a,"A"); - return 1; -} - -/* set function: a */ -static int tolua_set_a(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - a = *((A*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* get function: b */ -static int tolua_get_b_ptr(lua_State* tolua_S) -{ - tolua_pushusertype(tolua_S,(void*)b,"B"); - return 1; -} - -/* set function: b */ -static int tolua_set_b_ptr(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,2,"B",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - b = ((B*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* get function: u */ -static int tolua_get_u(lua_State* tolua_S) -{ - tolua_pushusertype(tolua_S,(void*)&u,"U"); - return 1; -} - -/* set function: u */ -static int tolua_set_u(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,2,"U",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - u = *((U*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* get function: mi */ -static int tolua_get_M_mi(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)mi); - return 1; -} - -/* set function: mi */ -static int tolua_set_M_mi(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - mi = ((int) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: mf */ -static int tolua_get_M_mf(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)mf); - return 1; -} - -/* set function: mf */ -static int tolua_set_M_mf(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - mf = ((float) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: md */ -static int tolua_get_M_md(lua_State* tolua_S) -{ - tolua_pushnumber(tolua_S,(double)md); - return 1; -} - -/* set function: md */ -static int tolua_set_M_md(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isnumber(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - md = ((double) tolua_tonumber(tolua_S,2,0)); - return 0; -} - -/* get function: ms */ -static int tolua_get_M_ms(lua_State* tolua_S) -{ - tolua_pushstring(tolua_S,(const char*)ms); - return 1; -} - -/* get function: mv */ -static int tolua_get_M_mv(lua_State* tolua_S) -{ - tolua_pushuserdata(tolua_S,(void*)mv); - return 1; -} - -/* set function: mv */ -static int tolua_set_M_mv(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isuserdata(tolua_S,2,0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - mv = ((void*) tolua_touserdata(tolua_S,2,0)); - return 0; -} - -/* get function: mn */ -static int tolua_get_M_mn(lua_State* tolua_S) -{ - tolua_pushstring(tolua_S,(const char*)mn); - return 1; -} - -/* get function: a */ -static int tolua_get_M_a(lua_State* tolua_S) -{ - tolua_pushusertype(tolua_S,(void*)&a,"A"); - return 1; -} - -/* set function: a */ -static int tolua_set_M_a(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - a = *((A*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* get function: ma */ -static int tolua_get_M_ma(lua_State* tolua_S) -{ - tolua_pushusertype(tolua_S,(void*)&ma,"A"); - return 1; -} - -/* set function: ma */ -static int tolua_set_M_ma(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,2,"A",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - ma = *((A*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* get function: mb */ -static int tolua_get_M_mb_ptr(lua_State* tolua_S) -{ - tolua_pushusertype(tolua_S,(void*)mb,"B"); - return 1; -} - -/* set function: mb */ -static int tolua_set_M_mb_ptr(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,2,"B",0,&tolua_err)) - tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err); -#endif - mb = ((B*) tolua_tousertype(tolua_S,2,0)); - return 0; -} - -/* Open function */ -TOLUA_API int tolua_tvariable_open (lua_State* tolua_S) -{ - tolua_open(tolua_S); - tolua_reg_types(tolua_S); - tolua_module(tolua_S,NULL,1); - tolua_beginmodule(tolua_S,NULL); - tolua_cclass(tolua_S,"A","A","",NULL); - tolua_beginmodule(tolua_S,"A"); - tolua_variable(tolua_S,"i",tolua_get_A_i,tolua_set_A_i); - tolua_variable(tolua_S,"f",tolua_get_A_f,tolua_set_A_f); - tolua_variable(tolua_S,"d",tolua_get_A_d,tolua_set_A_d); - tolua_variable(tolua_S,"s",tolua_get_A_s,tolua_set_A_s); - tolua_variable(tolua_S,"v",tolua_get_A_v,tolua_set_A_v); - tolua_variable(tolua_S,"n",tolua_get_A_n,tolua_set_A_n); - tolua_endmodule(tolua_S); - tolua_cclass(tolua_S,"B","B","",NULL); - tolua_beginmodule(tolua_S,"B"); - tolua_variable(tolua_S,"a",tolua_get_B_a,tolua_set_B_a); - tolua_variable(tolua_S,"b",tolua_get_B_b_ptr,tolua_set_B_b_ptr); - tolua_endmodule(tolua_S); - tolua_cclass(tolua_S,"U","U","",NULL); - tolua_beginmodule(tolua_S,"U"); - tolua_variable(tolua_S,"i",tolua_get_U_i,tolua_set_U_i); - tolua_variable(tolua_S,"f",tolua_get_U_f,tolua_set_U_f); - tolua_endmodule(tolua_S); - tolua_variable(tolua_S,"i",tolua_get_i,tolua_set_i); - tolua_variable(tolua_S,"f",tolua_get_f,tolua_set_f); - tolua_variable(tolua_S,"d",tolua_get_d,tolua_set_d); - tolua_variable(tolua_S,"s",tolua_get_s,NULL); - tolua_variable(tolua_S,"v",tolua_get_v,tolua_set_v); - tolua_variable(tolua_S,"n",tolua_get_n,tolua_set_n); - tolua_variable(tolua_S,"a",tolua_get_a,tolua_set_a); - tolua_variable(tolua_S,"b",tolua_get_b_ptr,tolua_set_b_ptr); - tolua_variable(tolua_S,"u",tolua_get_u,tolua_set_u); - tolua_module(tolua_S,"M",1); - tolua_beginmodule(tolua_S,"M"); - tolua_variable(tolua_S,"mi",tolua_get_M_mi,tolua_set_M_mi); - tolua_variable(tolua_S,"mf",tolua_get_M_mf,tolua_set_M_mf); - tolua_variable(tolua_S,"md",tolua_get_M_md,tolua_set_M_md); - tolua_variable(tolua_S,"ms",tolua_get_M_ms,NULL); - tolua_variable(tolua_S,"mv",tolua_get_M_mv,tolua_set_M_mv); - tolua_variable(tolua_S,"mn",tolua_get_M_mn,NULL); - tolua_variable(tolua_S,"a",tolua_get_M_a,tolua_set_M_a); - tolua_variable(tolua_S,"ma",tolua_get_M_ma,tolua_set_M_ma); - tolua_variable(tolua_S,"mb",tolua_get_M_mb_ptr,tolua_set_M_mb_ptr); - tolua_endmodule(tolua_S); - tolua_endmodule(tolua_S); - return 1; -} diff --git a/src/third_party/toluapp/win32/vc7/toluapp.sln b/src/third_party/toluapp/win32/vc7/toluapp.sln deleted file mode 100644 index 667389607..000000000 --- a/src/third_party/toluapp/win32/vc7/toluapp.sln +++ /dev/null @@ -1,27 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toluapp", "toluapp.vcproj", "{71891C1A-E328-4258-AC3F-6F9698C6D8B4}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - withLua50_Debug = withLua50_Debug - withLua50_Release = withLua50_Release - withLua51_Debug = withLua51_Debug - withLua51_Release = withLua51_Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug.ActiveCfg = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug.Build.0 = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release.ActiveCfg = withLua50_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release.Build.0 = withLua50_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug.ActiveCfg = withLua51_Debug|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug.Build.0 = withLua51_Debug|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release.ActiveCfg = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release.Build.0 = withLua51_Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/src/third_party/toluapp/win32/vc7/toluapp.vcproj b/src/third_party/toluapp/win32/vc7/toluapp.vcproj deleted file mode 100644 index 900a73db2..000000000 --- a/src/third_party/toluapp/win32/vc7/toluapp.vcproj +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -