From 998fb17fdc150bc9c6b3d8da0dd37dfd1ae7b39a Mon Sep 17 00:00:00 2001 From: Alexander Harkness Date: Sun, 24 Nov 2013 14:29:35 +0000 Subject: Moved tolua++ --- lib/tolua++/COPYRIGHT | 33 + lib/tolua++/INSTALL | 42 + lib/tolua++/Makefile | 5 + lib/tolua++/README | 30 + lib/tolua++/README-5.1 | 50 + lib/tolua++/SConstruct | 180 + lib/tolua++/include/tolua++.h | 186 + lib/tolua++/src/bin/SCsub | 12 + lib/tolua++/src/bin/lua/all.lua | 30 + lib/tolua++/src/bin/lua/array.lua | 233 + lib/tolua++/src/bin/lua/basic.lua | 414 + lib/tolua++/src/bin/lua/class.lua | 202 + lib/tolua++/src/bin/lua/clean.lua | 79 + lib/tolua++/src/bin/lua/code.lua | 105 + lib/tolua++/src/bin/lua/compat-5.1.lua | 57 + lib/tolua++/src/bin/lua/compat.lua | 193 + lib/tolua++/src/bin/lua/container.lua | 786 ++ lib/tolua++/src/bin/lua/custom.lua | 45 + lib/tolua++/src/bin/lua/declaration.lua | 579 ++ lib/tolua++/src/bin/lua/define.lua | 63 + lib/tolua++/src/bin/lua/doit.lua | 102 + lib/tolua++/src/bin/lua/enumerate.lua | 106 + lib/tolua++/src/bin/lua/feature.lua | 139 + lib/tolua++/src/bin/lua/function.lua | 577 ++ lib/tolua++/src/bin/lua/module.lua | 68 + lib/tolua++/src/bin/lua/namespace.lua | 52 + lib/tolua++/src/bin/lua/operator.lua | 220 + lib/tolua++/src/bin/lua/package.lua | 343 + lib/tolua++/src/bin/lua/template_class.lua | 82 + lib/tolua++/src/bin/lua/typedef.lua | 71 + lib/tolua++/src/bin/lua/variable.lua | 300 + lib/tolua++/src/bin/lua/verbatim.lua | 78 + lib/tolua++/src/bin/tolua.c | 169 + lib/tolua++/src/bin/tolua_scons.pkg | 31 + lib/tolua++/src/bin/toluabind.c | 8107 ++++++++++++++++++++ lib/tolua++/src/bin/toluabind.h | 8 + lib/tolua++/src/bin/toluabind_default.c | 8009 +++++++++++++++++++ lib/tolua++/src/bin/toluabind_default.h | 8 + lib/tolua++/src/lib/SCsub | 18 + lib/tolua++/src/lib/tolua_event.c | 536 ++ lib/tolua++/src/lib/tolua_event.h | 24 + lib/tolua++/src/lib/tolua_is.c | 621 ++ lib/tolua++/src/lib/tolua_map.c | 704 ++ lib/tolua++/src/lib/tolua_push.c | 171 + lib/tolua++/src/lib/tolua_to.c | 133 + lib/tolua++/win32/tolualib/tolualib.vcproj | 197 + .../tolualib/tolualib.vcproj.LAPTOPF.Kevin.user | 65 + lib/tolua++/win32/tolualib/tolualib.vcxproj | 80 + .../win32/tolualib/tolualib.vcxproj.filters | 39 + lib/tolua++/win32/tolualib/tolualib.vcxproj.user | 3 + lib/tolua++/win32/vc7/clean.bat | 15 + lib/tolua++/win32/vc7/toluapp.sln | 48 + lib/tolua++/win32/vc7/toluapp.vcproj | 439 ++ .../win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user | 121 + lib/tolua++/win32/vc7/toluapp.vcxproj | 176 + lib/tolua++/win32/vc7/toluapp.vcxproj.filters | 45 + lib/tolua++/win32/vc7/toluapp.vcxproj.user | 3 + tolua++-1.0.93/COPYRIGHT | 33 - tolua++-1.0.93/INSTALL | 42 - tolua++-1.0.93/Makefile | 5 - tolua++-1.0.93/README | 30 - tolua++-1.0.93/README-5.1 | 50 - tolua++-1.0.93/SConstruct | 180 - tolua++-1.0.93/include/tolua++.h | 186 - tolua++-1.0.93/src/bin/SCsub | 12 - tolua++-1.0.93/src/bin/lua/all.lua | 30 - tolua++-1.0.93/src/bin/lua/array.lua | 233 - tolua++-1.0.93/src/bin/lua/basic.lua | 414 - tolua++-1.0.93/src/bin/lua/class.lua | 202 - tolua++-1.0.93/src/bin/lua/clean.lua | 79 - tolua++-1.0.93/src/bin/lua/code.lua | 105 - tolua++-1.0.93/src/bin/lua/compat-5.1.lua | 57 - tolua++-1.0.93/src/bin/lua/compat.lua | 193 - tolua++-1.0.93/src/bin/lua/container.lua | 786 -- tolua++-1.0.93/src/bin/lua/custom.lua | 45 - tolua++-1.0.93/src/bin/lua/declaration.lua | 579 -- tolua++-1.0.93/src/bin/lua/define.lua | 63 - tolua++-1.0.93/src/bin/lua/doit.lua | 102 - tolua++-1.0.93/src/bin/lua/enumerate.lua | 106 - tolua++-1.0.93/src/bin/lua/feature.lua | 139 - tolua++-1.0.93/src/bin/lua/function.lua | 577 -- tolua++-1.0.93/src/bin/lua/module.lua | 68 - tolua++-1.0.93/src/bin/lua/namespace.lua | 52 - tolua++-1.0.93/src/bin/lua/operator.lua | 220 - tolua++-1.0.93/src/bin/lua/package.lua | 343 - tolua++-1.0.93/src/bin/lua/template_class.lua | 82 - tolua++-1.0.93/src/bin/lua/typedef.lua | 71 - tolua++-1.0.93/src/bin/lua/variable.lua | 300 - tolua++-1.0.93/src/bin/lua/verbatim.lua | 78 - tolua++-1.0.93/src/bin/tolua.c | 169 - tolua++-1.0.93/src/bin/tolua_scons.pkg | 31 - tolua++-1.0.93/src/bin/toluabind.c | 8107 -------------------- tolua++-1.0.93/src/bin/toluabind.h | 8 - tolua++-1.0.93/src/bin/toluabind_default.c | 8009 ------------------- tolua++-1.0.93/src/bin/toluabind_default.h | 8 - tolua++-1.0.93/src/lib/SCsub | 18 - tolua++-1.0.93/src/lib/tolua_event.c | 536 -- tolua++-1.0.93/src/lib/tolua_event.h | 24 - tolua++-1.0.93/src/lib/tolua_is.c | 621 -- tolua++-1.0.93/src/lib/tolua_map.c | 704 -- tolua++-1.0.93/src/lib/tolua_push.c | 171 - tolua++-1.0.93/src/lib/tolua_to.c | 133 - tolua++-1.0.93/win32/tolualib/tolualib.vcproj | 197 - .../tolualib/tolualib.vcproj.LAPTOPF.Kevin.user | 65 - tolua++-1.0.93/win32/tolualib/tolualib.vcxproj | 80 - .../win32/tolualib/tolualib.vcxproj.filters | 39 - .../win32/tolualib/tolualib.vcxproj.user | 3 - tolua++-1.0.93/win32/vc7/clean.bat | 15 - tolua++-1.0.93/win32/vc7/toluapp.sln | 48 - tolua++-1.0.93/win32/vc7/toluapp.vcproj | 439 -- .../win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user | 121 - tolua++-1.0.93/win32/vc7/toluapp.vcxproj | 176 - tolua++-1.0.93/win32/vc7/toluapp.vcxproj.filters | 45 - tolua++-1.0.93/win32/vc7/toluapp.vcxproj.user | 3 - 114 files changed, 25232 insertions(+), 25232 deletions(-) create mode 100644 lib/tolua++/COPYRIGHT create mode 100644 lib/tolua++/INSTALL create mode 100644 lib/tolua++/Makefile create mode 100644 lib/tolua++/README create mode 100644 lib/tolua++/README-5.1 create mode 100644 lib/tolua++/SConstruct create mode 100644 lib/tolua++/include/tolua++.h create mode 100644 lib/tolua++/src/bin/SCsub create mode 100644 lib/tolua++/src/bin/lua/all.lua create mode 100644 lib/tolua++/src/bin/lua/array.lua create mode 100644 lib/tolua++/src/bin/lua/basic.lua create mode 100644 lib/tolua++/src/bin/lua/class.lua create mode 100644 lib/tolua++/src/bin/lua/clean.lua create mode 100644 lib/tolua++/src/bin/lua/code.lua create mode 100644 lib/tolua++/src/bin/lua/compat-5.1.lua create mode 100644 lib/tolua++/src/bin/lua/compat.lua create mode 100644 lib/tolua++/src/bin/lua/container.lua create mode 100644 lib/tolua++/src/bin/lua/custom.lua create mode 100644 lib/tolua++/src/bin/lua/declaration.lua create mode 100644 lib/tolua++/src/bin/lua/define.lua create mode 100644 lib/tolua++/src/bin/lua/doit.lua create mode 100644 lib/tolua++/src/bin/lua/enumerate.lua create mode 100644 lib/tolua++/src/bin/lua/feature.lua create mode 100644 lib/tolua++/src/bin/lua/function.lua create mode 100644 lib/tolua++/src/bin/lua/module.lua create mode 100644 lib/tolua++/src/bin/lua/namespace.lua create mode 100644 lib/tolua++/src/bin/lua/operator.lua create mode 100644 lib/tolua++/src/bin/lua/package.lua create mode 100644 lib/tolua++/src/bin/lua/template_class.lua create mode 100644 lib/tolua++/src/bin/lua/typedef.lua create mode 100644 lib/tolua++/src/bin/lua/variable.lua create mode 100644 lib/tolua++/src/bin/lua/verbatim.lua create mode 100644 lib/tolua++/src/bin/tolua.c create mode 100644 lib/tolua++/src/bin/tolua_scons.pkg create mode 100644 lib/tolua++/src/bin/toluabind.c create mode 100644 lib/tolua++/src/bin/toluabind.h create mode 100644 lib/tolua++/src/bin/toluabind_default.c create mode 100644 lib/tolua++/src/bin/toluabind_default.h create mode 100644 lib/tolua++/src/lib/SCsub create mode 100644 lib/tolua++/src/lib/tolua_event.c create mode 100644 lib/tolua++/src/lib/tolua_event.h create mode 100644 lib/tolua++/src/lib/tolua_is.c create mode 100644 lib/tolua++/src/lib/tolua_map.c create mode 100644 lib/tolua++/src/lib/tolua_push.c create mode 100644 lib/tolua++/src/lib/tolua_to.c create mode 100644 lib/tolua++/win32/tolualib/tolualib.vcproj create mode 100644 lib/tolua++/win32/tolualib/tolualib.vcproj.LAPTOPF.Kevin.user create mode 100644 lib/tolua++/win32/tolualib/tolualib.vcxproj create mode 100644 lib/tolua++/win32/tolualib/tolualib.vcxproj.filters create mode 100644 lib/tolua++/win32/tolualib/tolualib.vcxproj.user create mode 100644 lib/tolua++/win32/vc7/clean.bat create mode 100644 lib/tolua++/win32/vc7/toluapp.sln create mode 100644 lib/tolua++/win32/vc7/toluapp.vcproj create mode 100644 lib/tolua++/win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user create mode 100644 lib/tolua++/win32/vc7/toluapp.vcxproj create mode 100644 lib/tolua++/win32/vc7/toluapp.vcxproj.filters create mode 100644 lib/tolua++/win32/vc7/toluapp.vcxproj.user delete mode 100644 tolua++-1.0.93/COPYRIGHT delete mode 100644 tolua++-1.0.93/INSTALL delete mode 100644 tolua++-1.0.93/Makefile delete mode 100644 tolua++-1.0.93/README delete mode 100644 tolua++-1.0.93/README-5.1 delete mode 100644 tolua++-1.0.93/SConstruct delete mode 100644 tolua++-1.0.93/include/tolua++.h delete mode 100644 tolua++-1.0.93/src/bin/SCsub delete mode 100644 tolua++-1.0.93/src/bin/lua/all.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/array.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/basic.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/class.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/clean.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/code.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/compat-5.1.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/compat.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/container.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/custom.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/declaration.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/define.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/doit.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/enumerate.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/feature.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/function.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/module.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/namespace.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/operator.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/package.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/template_class.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/typedef.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/variable.lua delete mode 100644 tolua++-1.0.93/src/bin/lua/verbatim.lua delete mode 100644 tolua++-1.0.93/src/bin/tolua.c delete mode 100644 tolua++-1.0.93/src/bin/tolua_scons.pkg delete mode 100644 tolua++-1.0.93/src/bin/toluabind.c delete mode 100644 tolua++-1.0.93/src/bin/toluabind.h delete mode 100644 tolua++-1.0.93/src/bin/toluabind_default.c delete mode 100644 tolua++-1.0.93/src/bin/toluabind_default.h delete mode 100644 tolua++-1.0.93/src/lib/SCsub delete mode 100644 tolua++-1.0.93/src/lib/tolua_event.c delete mode 100644 tolua++-1.0.93/src/lib/tolua_event.h delete mode 100644 tolua++-1.0.93/src/lib/tolua_is.c delete mode 100644 tolua++-1.0.93/src/lib/tolua_map.c delete mode 100644 tolua++-1.0.93/src/lib/tolua_push.c delete mode 100644 tolua++-1.0.93/src/lib/tolua_to.c delete mode 100644 tolua++-1.0.93/win32/tolualib/tolualib.vcproj delete mode 100644 tolua++-1.0.93/win32/tolualib/tolualib.vcproj.LAPTOPF.Kevin.user delete mode 100644 tolua++-1.0.93/win32/tolualib/tolualib.vcxproj delete mode 100644 tolua++-1.0.93/win32/tolualib/tolualib.vcxproj.filters delete mode 100644 tolua++-1.0.93/win32/tolualib/tolualib.vcxproj.user delete mode 100644 tolua++-1.0.93/win32/vc7/clean.bat delete mode 100644 tolua++-1.0.93/win32/vc7/toluapp.sln delete mode 100644 tolua++-1.0.93/win32/vc7/toluapp.vcproj delete mode 100644 tolua++-1.0.93/win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user delete mode 100644 tolua++-1.0.93/win32/vc7/toluapp.vcxproj delete mode 100644 tolua++-1.0.93/win32/vc7/toluapp.vcxproj.filters delete mode 100644 tolua++-1.0.93/win32/vc7/toluapp.vcxproj.user diff --git a/lib/tolua++/COPYRIGHT b/lib/tolua++/COPYRIGHT new file mode 100644 index 000000000..9e99e0080 --- /dev/null +++ b/lib/tolua++/COPYRIGHT @@ -0,0 +1,33 @@ +tolua++ License +--------------- + +tolua++ is based on toLua (www.tecgraf.puc-rio.br/~celes/tolua), and +it's licensed under the terms of the MIT license reproduced below. +This means that Lua is free software and can be used for both academic +and commercial purposes at absolutely no cost. + +=============================================================================== + +Copyright (C) 2009 Ariel Manzur. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +=============================================================================== + +(end of COPYRIGHT) diff --git a/lib/tolua++/INSTALL b/lib/tolua++/INSTALL new file mode 100644 index 000000000..5ee408f9e --- /dev/null +++ b/lib/tolua++/INSTALL @@ -0,0 +1,42 @@ +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/lib/tolua++/Makefile b/lib/tolua++/Makefile new file mode 100644 index 000000000..92ded6c4e --- /dev/null +++ b/lib/tolua++/Makefile @@ -0,0 +1,5 @@ +# makefile for tolua hierarchy + +all: + @echo "Makefile is deprecated ;)" + @echo "see INSTALL for details on how to build tolua++" diff --git a/lib/tolua++/README b/lib/tolua++/README new file mode 100644 index 000000000..cee381fb3 --- /dev/null +++ b/lib/tolua++/README @@ -0,0 +1,30 @@ +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/lib/tolua++/README-5.1 b/lib/tolua++/README-5.1 new file mode 100644 index 000000000..f06f785e3 --- /dev/null +++ b/lib/tolua++/README-5.1 @@ -0,0 +1,50 @@ +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/lib/tolua++/SConstruct b/lib/tolua++/SConstruct new file mode 100644 index 000000000..5c1e7746e --- /dev/null +++ b/lib/tolua++/SConstruct @@ -0,0 +1,180 @@ +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/lib/tolua++/include/tolua++.h b/lib/tolua++/include/tolua++.h new file mode 100644 index 000000000..ed5344926 --- /dev/null +++ b/lib/tolua++/include/tolua++.h @@ -0,0 +1,186 @@ +/* tolua +** Support code for Lua bindings. +** Written by Waldemar Celes +** TeCGraf/PUC-Rio +** 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. +*/ + + +#ifndef TOLUA_H +#define TOLUA_H + +#ifndef TOLUA_API +#define TOLUA_API extern +#endif + +#define TOLUA_VERSION "tolua++-1.0.92" + +#ifdef __cplusplus +extern "C" { +#endif + +#define tolua_pushcppstring(x,y) tolua_pushstring(x,y.c_str()) +#define tolua_iscppstring tolua_isstring + +#define tolua_iscppstringarray tolua_isstringarray +#define tolua_pushfieldcppstring(L,lo,idx,s) tolua_pushfieldstring(L, lo, idx, s.c_str()) + +#ifndef TEMPLATE_BIND + #define TEMPLATE_BIND(p) +#endif + +#define TOLUA_TEMPLATE_BIND(p) + +#define TOLUA_PROTECTED_DESTRUCTOR +#define TOLUA_PROPERTY_TYPE(p) + +typedef int lua_Object; + +#include "lua.h" +#include "lauxlib.h" + +struct tolua_Error +{ + int index; + int array; + const char* type; +}; +typedef struct tolua_Error tolua_Error; + +#define TOLUA_NOPEER LUA_REGISTRYINDEX /* for lua 5.1 */ + +TOLUA_API const char* tolua_typename (lua_State* L, int lo); +TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err); +TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err); +TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err); +TOLUA_API int tolua_isvaluenil (lua_State* L, int lo, tolua_Error* err); +TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err); +TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err); +TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err); +TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err); +TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err); +TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err); +TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err); +TOLUA_API int tolua_isvaluearray + (lua_State* L, int lo, int dim, int def, tolua_Error* err); +TOLUA_API int tolua_isbooleanarray + (lua_State* L, int lo, int dim, int def, tolua_Error* err); +TOLUA_API int tolua_isnumberarray + (lua_State* L, int lo, int dim, int def, tolua_Error* err); +TOLUA_API int tolua_isstringarray + (lua_State* L, int lo, int dim, int def, tolua_Error* err); +TOLUA_API int tolua_istablearray + (lua_State* L, int lo, int dim, int def, tolua_Error* err); +TOLUA_API int tolua_isuserdataarray + (lua_State* L, int lo, int dim, int def, tolua_Error* err); +TOLUA_API int tolua_isusertypearray + (lua_State* L, int lo, const char* type, int dim, int def, tolua_Error* err); + +TOLUA_API void tolua_open (lua_State* L); + +TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size); +TOLUA_API int tolua_register_gc (lua_State* L, int lo); +TOLUA_API int tolua_default_collect (lua_State* tolua_S); + +TOLUA_API void tolua_usertype (lua_State* L, const char* type); +TOLUA_API void tolua_beginmodule (lua_State* L, const char* name); +TOLUA_API void tolua_endmodule (lua_State* L); +TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar); +TOLUA_API void tolua_class (lua_State* L, const char* name, const char* base); +TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col); +TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func); +TOLUA_API void tolua_constant (lua_State* L, const char* name, lua_Number value); +TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set); +TOLUA_API void tolua_array (lua_State* L,const char* name, lua_CFunction get, lua_CFunction set); + +/* TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type); */ +/* TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base); */ + +TOLUA_API void tolua_pushvalue (lua_State* L, int lo); +TOLUA_API void tolua_pushboolean (lua_State* L, int value); +TOLUA_API void tolua_pushnumber (lua_State* L, lua_Number value); +TOLUA_API void tolua_pushstring (lua_State* L, const char* value); +TOLUA_API void tolua_pushuserdata (lua_State* L, void* value); +TOLUA_API void tolua_pushusertype (lua_State* L, void* value, const char* type); +TOLUA_API void tolua_pushusertype_and_takeownership(lua_State* L, void* value, const char* type); +TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v); +TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v); +TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, lua_Number v); +TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, const char* v); +TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v); +TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, const char* type); +TOLUA_API void tolua_pushfieldusertype_and_takeownership (lua_State* L, int lo, int index, void* v, const char* type); + +TOLUA_API lua_Number tolua_tonumber (lua_State* L, int narg, lua_Number def); +TOLUA_API const char* tolua_tostring (lua_State* L, int narg, const char* def); +TOLUA_API void* tolua_touserdata (lua_State* L, int narg, void* def); +TOLUA_API void* tolua_tousertype (lua_State* L, int narg, void* def); +TOLUA_API int tolua_tovalue (lua_State* L, int narg, int def); +TOLUA_API int tolua_toboolean (lua_State* L, int narg, int def); +TOLUA_API lua_Number tolua_tofieldnumber (lua_State* L, int lo, int index, lua_Number def); +TOLUA_API const char* tolua_tofieldstring (lua_State* L, int lo, int index, const char* def); +TOLUA_API void* tolua_tofielduserdata (lua_State* L, int lo, int index, void* def); +TOLUA_API void* tolua_tofieldusertype (lua_State* L, int lo, int index, void* def); +TOLUA_API int tolua_tofieldvalue (lua_State* L, int lo, int index, int def); +TOLUA_API int tolua_getfieldboolean (lua_State* L, int lo, int index, int def); + +TOLUA_API void tolua_dobuffer(lua_State* L, char* B, unsigned int size, const char* name); + +TOLUA_API int class_gc_event (lua_State* L); + +#ifdef __cplusplus +static inline const char* tolua_tocppstring (lua_State* L, int narg, const char* def) { + + const char* s = tolua_tostring(L, narg, def); + return s?s:""; +}; + +static inline const char* tolua_tofieldcppstring (lua_State* L, int lo, int index, const char* def) { + + const char* s = tolua_tofieldstring(L, lo, index, def); + return s?s:""; +}; + +#else +#define tolua_tocppstring tolua_tostring +#define tolua_tofieldcppstring tolua_tofieldstring +#endif + +TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index); + +#ifndef Mtolua_new +#define Mtolua_new(EXP) new EXP +#endif + +#ifndef Mtolua_delete +#define Mtolua_delete(EXP) delete EXP +#endif + +#ifndef Mtolua_new_dim +#define Mtolua_new_dim(EXP, len) new EXP[len] +#endif + +#ifndef Mtolua_delete_dim +#define Mtolua_delete_dim(EXP) delete [] EXP +#endif + +#ifndef tolua_outside +#define tolua_outside +#endif + +#ifndef tolua_owned +#define tolua_owned +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/tolua++/src/bin/SCsub b/lib/tolua++/src/bin/SCsub new file mode 100644 index 000000000..35ccd7a24 --- /dev/null +++ b/lib/tolua++/src/bin/SCsub @@ -0,0 +1,12 @@ +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/lib/tolua++/src/bin/lua/all.lua b/lib/tolua++/src/bin/lua/all.lua new file mode 100644 index 000000000..83f8a3cb9 --- /dev/null +++ b/lib/tolua++/src/bin/lua/all.lua @@ -0,0 +1,30 @@ +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/lib/tolua++/src/bin/lua/array.lua b/lib/tolua++/src/bin/lua/array.lua new file mode 100644 index 000000000..f35aa98ce --- /dev/null +++ b/lib/tolua++/src/bin/lua/array.lua @@ -0,0 +1,233 @@ +-- 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/lib/tolua++/src/bin/lua/basic.lua b/lib/tolua++/src/bin/lua/basic.lua new file mode 100644 index 000000000..f651f1fe6 --- /dev/null +++ b/lib/tolua++/src/bin/lua/basic.lua @@ -0,0 +1,414 @@ +-- 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/lib/tolua++/src/bin/lua/class.lua b/lib/tolua++/src/bin/lua/class.lua new file mode 100644 index 000000000..592705282 --- /dev/null +++ b/lib/tolua++/src/bin/lua/class.lua @@ -0,0 +1,202 @@ +-- 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/lib/tolua++/src/bin/lua/clean.lua b/lib/tolua++/src/bin/lua/clean.lua new file mode 100644 index 000000000..fd5b7b635 --- /dev/null +++ b/lib/tolua++/src/bin/lua/clean.lua @@ -0,0 +1,79 @@ +-- 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/lib/tolua++/src/bin/lua/code.lua b/lib/tolua++/src/bin/lua/code.lua new file mode 100644 index 000000000..5e19b6bbf --- /dev/null +++ b/lib/tolua++/src/bin/lua/code.lua @@ -0,0 +1,105 @@ +-- 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/lib/tolua++/src/bin/lua/compat-5.1.lua b/lib/tolua++/src/bin/lua/compat-5.1.lua new file mode 100644 index 000000000..7a2c60b69 --- /dev/null +++ b/lib/tolua++/src/bin/lua/compat-5.1.lua @@ -0,0 +1,57 @@ +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/lib/tolua++/src/bin/lua/compat.lua b/lib/tolua++/src/bin/lua/compat.lua new file mode 100644 index 000000000..45d6ae1ba --- /dev/null +++ b/lib/tolua++/src/bin/lua/compat.lua @@ -0,0 +1,193 @@ +------------------------------------------------------------------- +-- 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/lib/tolua++/src/bin/lua/container.lua b/lib/tolua++/src/bin/lua/container.lua new file mode 100644 index 000000000..2d11db7df --- /dev/null +++ b/lib/tolua++/src/bin/lua/container.lua @@ -0,0 +1,786 @@ +-- 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/lib/tolua++/src/bin/lua/custom.lua b/lib/tolua++/src/bin/lua/custom.lua new file mode 100644 index 000000000..de5912fb3 --- /dev/null +++ b/lib/tolua++/src/bin/lua/custom.lua @@ -0,0 +1,45 @@ + +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/lib/tolua++/src/bin/lua/declaration.lua b/lib/tolua++/src/bin/lua/declaration.lua new file mode 100644 index 000000000..73bbe910e --- /dev/null +++ b/lib/tolua++/src/bin/lua/declaration.lua @@ -0,0 +1,579 @@ +-- 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/lib/tolua++/src/bin/lua/define.lua b/lib/tolua++/src/bin/lua/define.lua new file mode 100644 index 000000000..96a28d878 --- /dev/null +++ b/lib/tolua++/src/bin/lua/define.lua @@ -0,0 +1,63 @@ +-- 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/lib/tolua++/src/bin/lua/doit.lua b/lib/tolua++/src/bin/lua/doit.lua new file mode 100644 index 000000000..51dd0cf3c --- /dev/null +++ b/lib/tolua++/src/bin/lua/doit.lua @@ -0,0 +1,102 @@ +-- 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['AString'] = '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/lib/tolua++/src/bin/lua/enumerate.lua b/lib/tolua++/src/bin/lua/enumerate.lua new file mode 100644 index 000000000..99fe74629 --- /dev/null +++ b/lib/tolua++/src/bin/lua/enumerate.lua @@ -0,0 +1,106 @@ +-- 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/lib/tolua++/src/bin/lua/feature.lua b/lib/tolua++/src/bin/lua/feature.lua new file mode 100644 index 000000000..042b5d28e --- /dev/null +++ b/lib/tolua++/src/bin/lua/feature.lua @@ -0,0 +1,139 @@ +-- 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/lib/tolua++/src/bin/lua/function.lua b/lib/tolua++/src/bin/lua/function.lua new file mode 100644 index 000000000..2358e9ff7 --- /dev/null +++ b/lib/tolua++/src/bin/lua/function.lua @@ -0,0 +1,577 @@ +-- 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/lib/tolua++/src/bin/lua/module.lua b/lib/tolua++/src/bin/lua/module.lua new file mode 100644 index 000000000..57dceb7d5 --- /dev/null +++ b/lib/tolua++/src/bin/lua/module.lua @@ -0,0 +1,68 @@ +-- 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/lib/tolua++/src/bin/lua/namespace.lua b/lib/tolua++/src/bin/lua/namespace.lua new file mode 100644 index 000000000..6ca80e6e3 --- /dev/null +++ b/lib/tolua++/src/bin/lua/namespace.lua @@ -0,0 +1,52 @@ +-- 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/lib/tolua++/src/bin/lua/operator.lua b/lib/tolua++/src/bin/lua/operator.lua new file mode 100644 index 000000000..675027cd7 --- /dev/null +++ b/lib/tolua++/src/bin/lua/operator.lua @@ -0,0 +1,220 @@ +-- 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/lib/tolua++/src/bin/lua/package.lua b/lib/tolua++/src/bin/lua/package.lua new file mode 100644 index 000000000..eec136904 --- /dev/null +++ b/lib/tolua++/src/bin/lua/package.lua @@ -0,0 +1,343 @@ +-- 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/lib/tolua++/src/bin/lua/template_class.lua b/lib/tolua++/src/bin/lua/template_class.lua new file mode 100644 index 000000000..b1ed05abe --- /dev/null +++ b/lib/tolua++/src/bin/lua/template_class.lua @@ -0,0 +1,82 @@ + +_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/lib/tolua++/src/bin/lua/typedef.lua b/lib/tolua++/src/bin/lua/typedef.lua new file mode 100644 index 000000000..a78a84155 --- /dev/null +++ b/lib/tolua++/src/bin/lua/typedef.lua @@ -0,0 +1,71 @@ +-- 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/lib/tolua++/src/bin/lua/variable.lua b/lib/tolua++/src/bin/lua/variable.lua new file mode 100644 index 000000000..fbc705dd8 --- /dev/null +++ b/lib/tolua++/src/bin/lua/variable.lua @@ -0,0 +1,300 @@ +-- 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/lib/tolua++/src/bin/lua/verbatim.lua b/lib/tolua++/src/bin/lua/verbatim.lua new file mode 100644 index 000000000..fd3b29b35 --- /dev/null +++ b/lib/tolua++/src/bin/lua/verbatim.lua @@ -0,0 +1,78 @@ +-- 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/lib/tolua++/src/bin/tolua.c b/lib/tolua++/src/bin/tolua.c new file mode 100644 index 000000000..cc9f9adcd --- /dev/null +++ b/lib/tolua++/src/bin/tolua.c @@ -0,0 +1,169 @@ +/* tolua +** Support code for Lua bindings. +** Written by Waldemar Celes +** TeCGraf/PUC-Rio +** Aug 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. +*/ + +#include "tolua++.h" + +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" + +#include +#include +#include + + +static void help (void) +{ + fprintf(stderr,"\n" + "usage: tolua++ [options] input_file\n" + "\n" + "Command line options are:\n" + " -v : print version information.\n" + " -o file : set output file; default is stdout.\n" + " -H file : create include file.\n" + " -n name : set package name; default is input file root name.\n" + " -p : parse only.\n" + " -P : parse and print structure information (for debug).\n" + " -S : disable support for c++ strings.\n" + " -1 : substract 1 to operator[] index (for compatibility with tolua5).\n" + " -L file : run lua file (with dofile()) before doing anything.\n" + " -D : disable automatic exporting of destructors for classes that have\n" + " constructors (for compatibility with tolua5)\n" + " -W : disable warnings for unsupported features (for compatibility\n" + " with tolua5)\n" + " -C : disable cleanup of included lua code (for easier debugging)\n" + " -E value[=value] : add extra values to the luastate\n" + " -t : export a list of types asociates with the C++ typeid name\n" + " -q : don't print warnings to the console\n" + " -h : print this message.\n" + "Should the input file be omitted, stdin is assumed;\n" + "in that case, the package name must be explicitly set.\n\n" + ); +} + +static void version (void) +{ + fprintf(stderr, "%s (written by W. Celes, A. Manzur)\n",TOLUA_VERSION); +} + +static void setfield (lua_State* L, int table, char* f, char* v) +{ + lua_pushstring(L,f); + lua_pushstring(L,v); + lua_settable(L,table); +} + +static void add_extra (lua_State* L, char* value) { + int len; + lua_getglobal(L, "_extra_parameters"); + len = luaL_getn(L, -1); + lua_pushstring(L, value); + lua_rawseti(L, -2, len+1); + lua_pop(L, 1); +}; + +static void error (char* o) +{ + fprintf(stderr,"tolua: unknown option '%s'\n",o); + help(); + exit(1); +} + +int main (int argc, char* argv[]) +{ + #ifdef LUA_VERSION_NUM /* lua 5.1 */ + lua_State* L = luaL_newstate(); + luaL_openlibs(L); + #else + lua_State* L = lua_open(); + luaopen_base(L); + luaopen_io(L); + luaopen_string(L); + luaopen_table(L); + luaopen_math(L); + luaopen_debug(L); + #endif + + lua_pushstring(L,TOLUA_VERSION); lua_setglobal(L,"TOLUA_VERSION"); + lua_pushstring(L,LUA_VERSION); lua_setglobal(L,"TOLUA_LUA_VERSION"); + + if (argc==1) + { + help(); + return 0; + } + else + { + int i, t; + lua_newtable(L); + lua_setglobal(L, "_extra_parameters"); + lua_newtable(L); + lua_pushvalue(L,-1); + lua_setglobal(L,"flags"); + t = lua_gettop(L); + for (i=1; i= 501 +TOLUA_API int luaopen_tolua (lua_State* tolua_S) { + return tolua_tolua_open(tolua_S); +}; +#endif + diff --git a/lib/tolua++/src/bin/toluabind.h b/lib/tolua++/src/bin/toluabind.h new file mode 100644 index 000000000..7f1f018c9 --- /dev/null +++ b/lib/tolua++/src/bin/toluabind.h @@ -0,0 +1,8 @@ +/* +** Lua binding: tolua +** Generated automatically by tolua++-1.0.92 on Sun Feb 15 22:29:48 2009. +*/ + +/* Exported function */ +TOLUA_API int tolua_tolua_open (lua_State* tolua_S); + diff --git a/lib/tolua++/src/bin/toluabind_default.c b/lib/tolua++/src/bin/toluabind_default.c new file mode 100644 index 000000000..b5db813bf --- /dev/null +++ b/lib/tolua++/src/bin/toluabind_default.c @@ -0,0 +1,8009 @@ +/* +** 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/lib/tolua++/src/bin/toluabind_default.h b/lib/tolua++/src/bin/toluabind_default.h new file mode 100644 index 000000000..c31a14875 --- /dev/null +++ b/lib/tolua++/src/bin/toluabind_default.h @@ -0,0 +1,8 @@ +/* +** Lua binding: tolua +** Generated automatically by tolua++-1.0.8pre2 on Tue Dec 13 01:43:55 2005. +*/ + +/* Exported function */ +TOLUA_API int tolua_tolua_open (lua_State* tolua_S); + diff --git a/lib/tolua++/src/lib/SCsub b/lib/tolua++/src/lib/SCsub new file mode 100644 index 000000000..2f9a24691 --- /dev/null +++ b/lib/tolua++/src/lib/SCsub @@ -0,0 +1,18 @@ +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/lib/tolua++/src/lib/tolua_event.c b/lib/tolua++/src/lib/tolua_event.c new file mode 100644 index 000000000..8258867b4 --- /dev/null +++ b/lib/tolua++/src/lib/tolua_event.c @@ -0,0 +1,536 @@ +/* tolua: event functions +** Support code for Lua bindings. +** Written by Waldemar Celes +** TeCGraf/PUC-Rio +** 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. +*/ + +#include + +#include "tolua++.h" + +/* Store at ubox + * It stores, creating the corresponding table if needed, + * the pair key/value in the corresponding ubox table +*/ +static void storeatubox (lua_State* L, int lo) +{ + #ifdef LUA_VERSION_NUM + lua_getfenv(L, lo); + if (lua_rawequal(L, -1, TOLUA_NOPEER)) { + lua_pop(L, 1); + lua_newtable(L); + lua_pushvalue(L, -1); + lua_setfenv(L, lo); /* stack: k,v,table */ + }; + lua_insert(L, -3); + lua_settable(L, -3); /* on lua 5.1, we trade the "tolua_peers" lookup for a settable call */ + lua_pop(L, 1); + #else + /* stack: key value (to be stored) */ + lua_pushstring(L,"tolua_peers"); + lua_rawget(L,LUA_REGISTRYINDEX); /* stack: k v ubox */ + lua_pushvalue(L,lo); + lua_rawget(L,-2); /* stack: k v ubox ubox[u] */ + if (!lua_istable(L,-1)) + { + lua_pop(L,1); /* stack: k v ubox */ + lua_newtable(L); /* stack: k v ubox table */ + lua_pushvalue(L,1); + lua_pushvalue(L,-2); /* stack: k v ubox table u table */ + lua_rawset(L,-4); /* stack: k v ubox ubox[u]=table */ + } + lua_insert(L,-4); /* put table before k */ + lua_pop(L,1); /* pop ubox */ + lua_rawset(L,-3); /* store at table */ + lua_pop(L,1); /* pop ubox[u] */ + #endif +} + +/* Module index function +*/ +static int module_index_event (lua_State* L) +{ + lua_pushstring(L,".get"); + lua_rawget(L,-3); + if (lua_istable(L,-1)) + { + lua_pushvalue(L,2); /* key */ + lua_rawget(L,-2); + if (lua_iscfunction(L,-1)) + { + lua_call(L,0,1); + return 1; + } + else if (lua_istable(L,-1)) + return 1; + } + /* call old index meta event */ + if (lua_getmetatable(L,1)) + { + lua_pushstring(L,"__index"); + lua_rawget(L,-2); + lua_pushvalue(L,1); + lua_pushvalue(L,2); + if (lua_isfunction(L,-1)) + { + lua_call(L,2,1); + return 1; + } + else if (lua_istable(L,-1)) + { + lua_gettable(L,-3); + return 1; + } + } + lua_pushnil(L); + return 1; +} + +/* Module newindex function +*/ +static int module_newindex_event (lua_State* L) +{ + lua_pushstring(L,".set"); + lua_rawget(L,-4); + if (lua_istable(L,-1)) + { + lua_pushvalue(L,2); /* key */ + lua_rawget(L,-2); + if (lua_iscfunction(L,-1)) + { + lua_pushvalue(L,1); /* only to be compatible with non-static vars */ + lua_pushvalue(L,3); /* value */ + lua_call(L,2,0); + return 0; + } + } + /* call old newindex meta event */ + if (lua_getmetatable(L,1) && lua_getmetatable(L,-1)) + { + lua_pushstring(L,"__newindex"); + lua_rawget(L,-2); + if (lua_isfunction(L,-1)) + { + lua_pushvalue(L,1); + lua_pushvalue(L,2); + lua_pushvalue(L,3); + lua_call(L,3,0); + } + } + lua_settop(L,3); + lua_rawset(L,-3); + return 0; +} + +/* Class index function + * If the object is a userdata (ie, an object), it searches the field in + * the alternative table stored in the corresponding "ubox" table. +*/ +static int class_index_event (lua_State* L) +{ + int t = lua_type(L,1); + if (t == LUA_TUSERDATA) + { + /* Access alternative table */ + #ifdef LUA_VERSION_NUM /* new macro on version 5.1 */ + lua_getfenv(L,1); + if (!lua_rawequal(L, -1, TOLUA_NOPEER)) { + lua_pushvalue(L, 2); /* key */ + lua_gettable(L, -2); /* on lua 5.1, we trade the "tolua_peers" lookup for a gettable call */ + if (!lua_isnil(L, -1)) + return 1; + }; + #else + lua_pushstring(L,"tolua_peers"); + lua_rawget(L,LUA_REGISTRYINDEX); /* stack: obj key ubox */ + lua_pushvalue(L,1); + lua_rawget(L,-2); /* stack: obj key ubox ubox[u] */ + if (lua_istable(L,-1)) + { + lua_pushvalue(L,2); /* key */ + lua_rawget(L,-2); /* stack: obj key ubox ubox[u] value */ + if (!lua_isnil(L,-1)) + return 1; + } + #endif + lua_settop(L,2); /* stack: obj key */ + /* Try metatables */ + lua_pushvalue(L,1); /* stack: obj key obj */ + while (lua_getmetatable(L,-1)) + { /* stack: obj key obj mt */ + lua_remove(L,-2); /* stack: obj key mt */ + if (lua_isnumber(L,2)) /* check if key is a numeric value */ + { + /* try operator[] */ + lua_pushstring(L,".geti"); + lua_rawget(L,-2); /* stack: obj key mt func */ + if (lua_isfunction(L,-1)) + { + lua_pushvalue(L,1); + lua_pushvalue(L,2); + lua_call(L,2,1); + return 1; + } + } + else + { + lua_pushvalue(L,2); /* stack: obj key mt key */ + lua_rawget(L,-2); /* stack: obj key mt value */ + if (!lua_isnil(L,-1)) + return 1; + else + lua_pop(L,1); + /* try C/C++ variable */ + lua_pushstring(L,".get"); + lua_rawget(L,-2); /* stack: obj key mt tget */ + if (lua_istable(L,-1)) + { + lua_pushvalue(L,2); + lua_rawget(L,-2); /* stack: obj key mt value */ + if (lua_iscfunction(L,-1)) + { + lua_pushvalue(L,1); + lua_pushvalue(L,2); + lua_call(L,2,1); + return 1; + } + else if (lua_istable(L,-1)) + { + /* deal with array: create table to be returned and cache it in ubox */ + void* u = *((void**)lua_touserdata(L,1)); + lua_newtable(L); /* stack: obj key mt value table */ + lua_pushstring(L,".self"); + lua_pushlightuserdata(L,u); + lua_rawset(L,-3); /* store usertype in ".self" */ + lua_insert(L,-2); /* stack: obj key mt table value */ + lua_setmetatable(L,-2); /* set stored value as metatable */ + lua_pushvalue(L,-1); /* stack: obj key met table table */ + lua_pushvalue(L,2); /* stack: obj key mt table table key */ + lua_insert(L,-2); /* stack: obj key mt table key table */ + storeatubox(L,1); /* stack: obj key mt table */ + return 1; + } + } + } + lua_settop(L,3); + } + lua_pushnil(L); + return 1; + } + else if (t== LUA_TTABLE) + { + module_index_event(L); + return 1; + } + lua_pushnil(L); + return 1; +} + +/* Newindex function + * It first searches for a C/C++ varaible to be set. + * Then, it either stores it in the alternative ubox table (in the case it is + * an object) or in the own table (that represents the class or module). +*/ +static int class_newindex_event (lua_State* L) +{ + int t = lua_type(L,1); + if (t == LUA_TUSERDATA) + { + /* Try accessing a C/C++ variable to be set */ + lua_getmetatable(L,1); + while (lua_istable(L,-1)) /* stack: t k v mt */ + { + if (lua_isnumber(L,2)) /* check if key is a numeric value */ + { + /* try operator[] */ + lua_pushstring(L,".seti"); + lua_rawget(L,-2); /* stack: obj key mt func */ + if (lua_isfunction(L,-1)) + { + lua_pushvalue(L,1); + lua_pushvalue(L,2); + lua_pushvalue(L,3); + lua_call(L,3,0); + return 0; + } + } + else + { + lua_pushstring(L,".set"); + lua_rawget(L,-2); /* stack: t k v mt tset */ + if (lua_istable(L,-1)) + { + lua_pushvalue(L,2); + lua_rawget(L,-2); /* stack: t k v mt tset func */ + if (lua_iscfunction(L,-1)) + { + lua_pushvalue(L,1); + lua_pushvalue(L,3); + lua_call(L,2,0); + return 0; + } + lua_pop(L,1); /* stack: t k v mt tset */ + } + lua_pop(L,1); /* stack: t k v mt */ + if (!lua_getmetatable(L,-1)) /* stack: t k v mt mt */ + lua_pushnil(L); + lua_remove(L,-2); /* stack: t k v mt */ + } + } + lua_settop(L,3); /* stack: t k v */ + + /* then, store as a new field */ + storeatubox(L,1); + } + else if (t== LUA_TTABLE) + { + module_newindex_event(L); + } + return 0; +} + +static int class_call_event(lua_State* L) { + + if (lua_istable(L, 1)) { + lua_pushstring(L, ".call"); + lua_rawget(L, 1); + if (lua_isfunction(L, -1)) { + + lua_insert(L, 1); + lua_call(L, lua_gettop(L)-1, 1); + + return 1; + }; + }; + tolua_error(L,"Attempt to call a non-callable object.",NULL); + return 0; +}; + +static int do_operator (lua_State* L, const char* op) +{ + if (lua_isuserdata(L,1)) + { + /* Try metatables */ + lua_pushvalue(L,1); /* stack: op1 op2 */ + while (lua_getmetatable(L,-1)) + { /* stack: op1 op2 op1 mt */ + lua_remove(L,-2); /* stack: op1 op2 mt */ + lua_pushstring(L,op); /* stack: op1 op2 mt key */ + lua_rawget(L,-2); /* stack: obj key mt func */ + if (lua_isfunction(L,-1)) + { + lua_pushvalue(L,1); + lua_pushvalue(L,2); + lua_call(L,2,1); + return 1; + } + lua_settop(L,3); + } + } + tolua_error(L,"Attempt to perform operation on an invalid operand",NULL); + return 0; +} + +static int class_add_event (lua_State* L) +{ + return do_operator(L,".add"); +} + +static int class_sub_event (lua_State* L) +{ + return do_operator(L,".sub"); +} + +static int class_mul_event (lua_State* L) +{ + return do_operator(L,".mul"); +} + +static int class_div_event (lua_State* L) +{ + return do_operator(L,".div"); +} + +static int class_lt_event (lua_State* L) +{ + return do_operator(L,".lt"); +} + +static int class_le_event (lua_State* L) +{ + return do_operator(L,".le"); +} + +static int class_eq_event (lua_State* L) +{ + /* copying code from do_operator here to return false when no operator is found */ + if (lua_isuserdata(L,1)) + { + /* Try metatables */ + lua_pushvalue(L,1); /* stack: op1 op2 */ + while (lua_getmetatable(L,-1)) + { /* stack: op1 op2 op1 mt */ + lua_remove(L,-2); /* stack: op1 op2 mt */ + lua_pushstring(L,".eq"); /* stack: op1 op2 mt key */ + lua_rawget(L,-2); /* stack: obj key mt func */ + if (lua_isfunction(L,-1)) + { + lua_pushvalue(L,1); + lua_pushvalue(L,2); + lua_call(L,2,1); + return 1; + } + lua_settop(L,3); + } + } + + lua_settop(L, 3); + lua_pushboolean(L, 0); + return 1; +} + +/* +static int class_gc_event (lua_State* L) +{ + void* u = *((void**)lua_touserdata(L,1)); + fprintf(stderr, "collecting: looking at %p\n", u); + lua_pushstring(L,"tolua_gc"); + lua_rawget(L,LUA_REGISTRYINDEX); + lua_pushlightuserdata(L,u); + lua_rawget(L,-2); + if (lua_isfunction(L,-1)) + { + lua_pushvalue(L,1); + lua_call(L,1,0); + lua_pushlightuserdata(L,u); + lua_pushnil(L); + lua_rawset(L,-3); + } + lua_pop(L,2); + return 0; +} +*/ +TOLUA_API int class_gc_event (lua_State* L) +{ + void* u = *((void**)lua_touserdata(L,1)); + int top; + /*fprintf(stderr, "collecting: looking at %p\n", u);*/ + /* + lua_pushstring(L,"tolua_gc"); + lua_rawget(L,LUA_REGISTRYINDEX); + */ + lua_pushvalue(L, lua_upvalueindex(1)); + lua_pushlightuserdata(L,u); + lua_rawget(L,-2); /* stack: gc umt */ + lua_getmetatable(L,1); /* stack: gc umt mt */ + /*fprintf(stderr, "checking type\n");*/ + top = lua_gettop(L); + if (tolua_fast_isa(L,top,top-1, lua_upvalueindex(2))) /* make sure we collect correct type */ + { + /*fprintf(stderr, "Found type!\n");*/ + /* get gc function */ + lua_pushliteral(L,".collector"); + lua_rawget(L,-2); /* stack: gc umt mt collector */ + if (lua_isfunction(L,-1)) { + /*fprintf(stderr, "Found .collector!\n");*/ + } + else { + lua_pop(L,1); + /*fprintf(stderr, "Using default cleanup\n");*/ + lua_pushcfunction(L,tolua_default_collect); + } + + lua_pushvalue(L,1); /* stack: gc umt mt collector u */ + lua_call(L,1,0); + + lua_pushlightuserdata(L,u); /* stack: gc umt mt u */ + lua_pushnil(L); /* stack: gc umt mt u nil */ + lua_rawset(L,-5); /* stack: gc umt mt */ + } + lua_pop(L,3); + return 0; +} + + +/* Register module events + * It expects the metatable on the top of the stack +*/ +TOLUA_API void tolua_moduleevents (lua_State* L) +{ + lua_pushstring(L,"__index"); + lua_pushcfunction(L,module_index_event); + lua_rawset(L,-3); + lua_pushstring(L,"__newindex"); + lua_pushcfunction(L,module_newindex_event); + lua_rawset(L,-3); +} + +/* Check if the object on the top has a module metatable +*/ +TOLUA_API int tolua_ismodulemetatable (lua_State* L) +{ + int r = 0; + if (lua_getmetatable(L,-1)) + { + lua_pushstring(L,"__index"); + lua_rawget(L,-2); + r = (lua_tocfunction(L,-1) == module_index_event); + lua_pop(L,2); + } + return r; +} + +/* Register class events + * It expects the metatable on the top of the stack +*/ +TOLUA_API void tolua_classevents (lua_State* L) +{ + lua_pushstring(L,"__index"); + lua_pushcfunction(L,class_index_event); + lua_rawset(L,-3); + lua_pushstring(L,"__newindex"); + lua_pushcfunction(L,class_newindex_event); + lua_rawset(L,-3); + + lua_pushstring(L,"__add"); + lua_pushcfunction(L,class_add_event); + lua_rawset(L,-3); + lua_pushstring(L,"__sub"); + lua_pushcfunction(L,class_sub_event); + lua_rawset(L,-3); + lua_pushstring(L,"__mul"); + lua_pushcfunction(L,class_mul_event); + lua_rawset(L,-3); + lua_pushstring(L,"__div"); + lua_pushcfunction(L,class_div_event); + lua_rawset(L,-3); + + lua_pushstring(L,"__lt"); + lua_pushcfunction(L,class_lt_event); + lua_rawset(L,-3); + lua_pushstring(L,"__le"); + lua_pushcfunction(L,class_le_event); + lua_rawset(L,-3); + lua_pushstring(L,"__eq"); + lua_pushcfunction(L,class_eq_event); + lua_rawset(L,-3); + + lua_pushstring(L,"__call"); + lua_pushcfunction(L,class_call_event); + lua_rawset(L,-3); + + lua_pushstring(L,"__gc"); + lua_pushstring(L, "tolua_gc_event"); + lua_rawget(L, LUA_REGISTRYINDEX); + /*lua_pushcfunction(L,class_gc_event);*/ + lua_rawset(L,-3); +} + diff --git a/lib/tolua++/src/lib/tolua_event.h b/lib/tolua++/src/lib/tolua_event.h new file mode 100644 index 000000000..898f33dfc --- /dev/null +++ b/lib/tolua++/src/lib/tolua_event.h @@ -0,0 +1,24 @@ +/* tolua: event functions +** Support code for Lua bindings. +** Written by Waldemar Celes +** TeCGraf/PUC-Rio +** 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. +*/ + +#ifndef TOLUA_EVENT_H +#define TOLUA_EVENT_H + +#include "tolua++.h" + +TOLUA_API void tolua_moduleevents (lua_State* L); +TOLUA_API int tolua_ismodulemetatable (lua_State* L); +TOLUA_API void tolua_classevents (lua_State* L); + +#endif diff --git a/lib/tolua++/src/lib/tolua_is.c b/lib/tolua++/src/lib/tolua_is.c new file mode 100644 index 000000000..c486b271e --- /dev/null +++ b/lib/tolua++/src/lib/tolua_is.c @@ -0,0 +1,621 @@ +/* tolua: functions to check types. +** Support code for Lua bindings. +** Written by Waldemar Celes +** TeCGraf/PUC-Rio +** 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. +*/ + +#include "tolua++.h" +#include "lauxlib.h" + +#include +#include + +/* a fast check if a is b, without parameter validation + i.e. if b is equal to a or a superclass of a. */ +TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index) +{ + int result; + if (lua_rawequal(L,mt_indexa,mt_indexb)) + result = 1; + else + { + if (super_index) { + lua_pushvalue(L, super_index); + } else { + lua_pushliteral(L,"tolua_super"); + lua_rawget(L,LUA_REGISTRYINDEX); /* stack: super */ + }; + lua_pushvalue(L,mt_indexa); /* stack: super mta */ + lua_rawget(L,-2); /* stack: super super[mta] */ + lua_pushvalue(L,mt_indexb); /* stack: super super[mta] mtb */ + lua_rawget(L,LUA_REGISTRYINDEX); /* stack: super super[mta] typenameB */ + lua_rawget(L,-2); /* stack: super super[mta] bool */ + result = lua_toboolean(L,-1); + lua_pop(L,3); + } + return result; +} + +/* Push and returns the corresponding object typename */ +TOLUA_API const char* tolua_typename (lua_State* L, int lo) +{ + int tag = lua_type(L,lo); + if (tag == LUA_TNONE) + lua_pushstring(L,"[no object]"); + else if (tag != LUA_TUSERDATA && tag != LUA_TTABLE) + lua_pushstring(L,lua_typename(L,tag)); + else if (tag == LUA_TUSERDATA) + { + if (!lua_getmetatable(L,lo)) + lua_pushstring(L,lua_typename(L,tag)); + else + { + lua_rawget(L,LUA_REGISTRYINDEX); + if (!lua_isstring(L,-1)) + { + lua_pop(L,1); + lua_pushstring(L,"[undefined]"); + } + } + } + else /* is table */ + { + lua_pushvalue(L,lo); + lua_rawget(L,LUA_REGISTRYINDEX); + if (!lua_isstring(L,-1)) + { + lua_pop(L,1); + lua_pushstring(L,"table"); + } + else + { + lua_pushstring(L,"class "); + lua_insert(L,-2); + lua_concat(L,2); + } + } + return lua_tostring(L,-1); +} + +TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err) +{ + if (msg[0] == '#') + { + const char* expected = err->type; + const char* provided = tolua_typename(L,err->index); + if (msg[1]=='f') + { + int narg = err->index; + if (err->array) + luaL_error(L,"%s\n argument #%d is array of '%s'; array of '%s' expected.\n", + msg+2,narg,provided,expected); + else + luaL_error(L,"%s\n argument #%d is '%s'; '%s' expected.\n", + msg+2,narg,provided,expected); + } + else if (msg[1]=='v') + { + if (err->array) + luaL_error(L,"%s\n value is array of '%s'; array of '%s' expected.\n", + msg+2,provided,expected); + else + luaL_error(L,"%s\n value is '%s'; '%s' expected.\n", + msg+2,provided,expected); + } + } + else + luaL_error(L,msg); +} + +/* the equivalent of lua_is* for usertable */ +static int lua_isusertable (lua_State* L, int lo, const char* type) +{ + int r = 0; + if (lo < 0) lo = lua_gettop(L)+lo+1; + lua_pushvalue(L,lo); + lua_rawget(L,LUA_REGISTRYINDEX); /* get registry[t] */ + if (lua_isstring(L,-1)) + { + r = strcmp(lua_tostring(L,-1),type)==0; + if (!r) + { + /* try const */ + lua_pushstring(L,"const "); + lua_insert(L,-2); + lua_concat(L,2); + r = lua_isstring(L,-1) && strcmp(lua_tostring(L,-1),type)==0; + } + } + lua_pop(L, 1); + return r; +} + +int push_table_instance(lua_State* L, int lo) { + + if (lua_istable(L, lo)) { + + lua_pushstring(L, ".c_instance"); + lua_gettable(L, lo); + if (lua_isuserdata(L, -1)) { + + lua_replace(L, lo); + return 1; + } else { + + lua_pop(L, 1); + return 0; + }; + } else { + return 0; + }; + + return 0; +}; + +/* the equivalent of lua_is* for usertype */ +static int lua_isusertype (lua_State* L, int lo, const char* type) +{ + if (!lua_isuserdata(L,lo)) { + if (!push_table_instance(L, lo)) { + return 0; + }; + }; + { + /* check if it is of the same type */ + int r; + const char *tn; + if (lua_getmetatable(L,lo)) /* if metatable? */ + { + lua_rawget(L,LUA_REGISTRYINDEX); /* get registry[mt] */ + tn = lua_tostring(L,-1); + r = tn && (strcmp(tn,type) == 0); + lua_pop(L, 1); + if (r) + return 1; + else + { + /* check if it is a specialized class */ + lua_pushstring(L,"tolua_super"); + lua_rawget(L,LUA_REGISTRYINDEX); /* get super */ + lua_getmetatable(L,lo); + lua_rawget(L,-2); /* get super[mt] */ + if (lua_istable(L,-1)) + { + int b; + lua_pushstring(L,type); + lua_rawget(L,-2); /* get super[mt][type] */ + b = lua_toboolean(L,-1); + lua_pop(L,3); + if (b) + return 1; + } + } + } + } + return 0; +} + +TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err) +{ + if (lua_gettop(L)index = lo; + err->array = 0; + err->type = "[no object]"; + return 0; +} + +TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err) +{ + if (def && lua_gettop(L)index = lo; + err->array = 0; + err->type = "boolean"; + return 0; +} + +TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err) +{ + if (def && lua_gettop(L)index = lo; + err->array = 0; + err->type = "number"; + return 0; +} + +TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err) +{ + if (def && lua_gettop(L)index = lo; + err->array = 0; + err->type = "string"; + return 0; +} + +TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err) +{ + if (def && lua_gettop(L)index = lo; + err->array = 0; + err->type = "table"; + return 0; +} + +TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err) +{ + if (def && lua_gettop(L)index = lo; + err->array = 0; + err->type = type; + return 0; +} + + +TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err) +{ + if (def && lua_gettop(L)index = lo; + err->array = 0; + err->type = "userdata"; + return 0; +} + +TOLUA_API int tolua_isvaluenil (lua_State* L, int lo, tolua_Error* err) { + + if (lua_gettop(L)index = lo; + err->array = 0; + err->type = "value"; + return 1; +}; + +TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err) +{ + if (def || abs(lo)<=lua_gettop(L)) /* any valid index */ + return 1; + err->index = lo; + err->array = 0; + err->type = "value"; + return 0; +} + +TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err) +{ + if (def && lua_gettop(L)index = lo; + err->array = 0; + err->type = type; + return 0; +} + +TOLUA_API int tolua_isvaluearray + (lua_State* L, int lo, int dim, int def, tolua_Error* err) +{ + if (!tolua_istable(L,lo,def,err)) + return 0; + else + return 1; +} + +TOLUA_API int tolua_isbooleanarray + (lua_State* L, int lo, int dim, int def, tolua_Error* err) +{ + if (!tolua_istable(L,lo,def,err)) + return 0; + else + { + int i; + for (i=1; i<=dim; ++i) + { + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!(lua_isnil(L,-1) || lua_isboolean(L,-1)) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "boolean"; + return 0; + } + lua_pop(L,1); + } + } + return 1; +} + +TOLUA_API int tolua_isnumberarray + (lua_State* L, int lo, int dim, int def, tolua_Error* err) +{ + if (!tolua_istable(L,lo,def,err)) + return 0; + else + { + int i; + for (i=1; i<=dim; ++i) + { + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!lua_isnumber(L,-1) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "number"; + return 0; + } + lua_pop(L,1); + } + } + return 1; +} + +TOLUA_API int tolua_isstringarray + (lua_State* L, int lo, int dim, int def, tolua_Error* err) +{ + if (!tolua_istable(L,lo,def,err)) + return 0; + else + { + int i; + for (i=1; i<=dim; ++i) + { + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!(lua_isnil(L,-1) || lua_isstring(L,-1)) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "string"; + return 0; + } + lua_pop(L,1); + } + } + return 1; +} + +TOLUA_API int tolua_istablearray + (lua_State* L, int lo, int dim, int def, tolua_Error* err) +{ + if (!tolua_istable(L,lo,def,err)) + return 0; + else + { + int i; + for (i=1; i<=dim; ++i) + { + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (! lua_istable(L,-1) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "table"; + return 0; + } + lua_pop(L,1); + } + } + return 1; +} + +TOLUA_API int tolua_isuserdataarray + (lua_State* L, int lo, int dim, int def, tolua_Error* err) +{ + if (!tolua_istable(L,lo,def,err)) + return 0; + else + { + int i; + for (i=1; i<=dim; ++i) + { + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "userdata"; + return 0; + } + lua_pop(L,1); + } + } + return 1; +} + +TOLUA_API int tolua_isusertypearray + (lua_State* L, int lo, const char* type, int dim, int def, tolua_Error* err) +{ + if (!tolua_istable(L,lo,def,err)) + return 0; + else + { + int i; + for (i=1; i<=dim; ++i) + { + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->type = type; + err->array = 1; + return 0; + } + lua_pop(L,1); + } + } + return 1; +} + +#if 0 +int tolua_isbooleanfield + (lua_State* L, int lo, int i, int def, tolua_Error* err) +{ + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!(lua_isnil(L,-1) || lua_isboolean(L,-1)) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "boolean"; + return 0; + } + lua_pop(L,1); + return 1; +} + +int tolua_isnumberfield + (lua_State* L, int lo, int i, int def, tolua_Error* err) +{ + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!lua_isnumber(L,-1) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "number"; + return 0; + } + lua_pop(L,1); + return 1; +} + +int tolua_isstringfield + (lua_State* L, int lo, int i, int def, tolua_Error* err) +{ + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!(lua_isnil(L,-1) || lua_isstring(L,-1)) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "string"; + return 0; + } + lua_pop(L,1); + return 1; +} + +int tolua_istablefield + (lua_State* L, int lo, int i, int def, tolua_Error* err) +{ + lua_pushnumber(L,i+1); + lua_gettable(L,lo); + if (! lua_istable(L,-1) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "table"; + return 0; + } + lua_pop(L,1); +} + +int tolua_isusertablefield + (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err) +{ + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (! lua_isusertable(L,-1,type) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = type; + return 0; + } + lua_pop(L,1); + return 1; +} + +int tolua_isuserdatafield + (lua_State* L, int lo, int i, int def, tolua_Error* err) +{ + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->array = 1; + err->type = "userdata"; + return 0; + } + lua_pop(L,1); + return 1; +} + +int tolua_isusertypefield + (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err) +{ + lua_pushnumber(L,i); + lua_gettable(L,lo); + if (!(lua_isnil(L,-1) || lua_isusertype(L,-1,type)) && + !(def && lua_isnil(L,-1)) + ) + { + err->index = lo; + err->type = type; + err->array = 1; + return 0; + } + lua_pop(L,1); + return 1; +} + +#endif diff --git a/lib/tolua++/src/lib/tolua_map.c b/lib/tolua++/src/lib/tolua_map.c new file mode 100644 index 000000000..d00e7069b --- /dev/null +++ b/lib/tolua++/src/lib/tolua_map.c @@ -0,0 +1,704 @@ +/* tolua: functions to map features +** Support code for Lua bindings. +** Written by Waldemar Celes +** TeCGraf/PUC-Rio +** 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. +*/ + +#include "tolua++.h" +#include "tolua_event.h" +#include "lauxlib.h" + +#include +#include +#include +#include + + +/* Create metatable + * Create and register new metatable +*/ +static int tolua_newmetatable (lua_State* L, char* name) +{ + int r = luaL_newmetatable(L,name); + + #ifdef LUA_VERSION_NUM /* only lua 5.1 */ + if (r) { + lua_pushvalue(L, -1); + lua_pushstring(L, name); + lua_settable(L, LUA_REGISTRYINDEX); /* reg[mt] = type_name */ + }; + #endif + + if (r) + tolua_classevents(L); /* set meta events */ + lua_pop(L,1); + return r; +} + +/* Map super classes + * It sets 'name' as being also a 'base', mapping all super classes of 'base' in 'name' +*/ +static void mapsuper (lua_State* L, const char* name, const char* base) +{ + /* push registry.super */ + lua_pushstring(L,"tolua_super"); + lua_rawget(L,LUA_REGISTRYINDEX); /* stack: super */ + luaL_getmetatable(L,name); /* stack: super mt */ + lua_rawget(L,-2); /* stack: super table */ + if (lua_isnil(L,-1)) + { + /* create table */ + lua_pop(L,1); + lua_newtable(L); /* stack: super table */ + luaL_getmetatable(L,name); /* stack: super table mt */ + lua_pushvalue(L,-2); /* stack: super table mt table */ + lua_rawset(L,-4); /* stack: super table */ + } + + /* set base as super class */ + lua_pushstring(L,base); + lua_pushboolean(L,1); + lua_rawset(L,-3); /* stack: super table */ + + /* set all super class of base as super class of name */ + luaL_getmetatable(L,base); /* stack: super table base_mt */ + lua_rawget(L,-3); /* stack: super table base_table */ + if (lua_istable(L,-1)) + { + /* traverse base table */ + lua_pushnil(L); /* first key */ + while (lua_next(L,-2) != 0) + { + /* stack: ... base_table key value */ + lua_pushvalue(L,-2); /* stack: ... base_table key value key */ + lua_insert(L,-2); /* stack: ... base_table key key value */ + lua_rawset(L,-5); /* stack: ... base_table key */ + } + } + lua_pop(L,3); /* stack: */ +} + +/* creates a 'tolua_ubox' table for base clases, and +// expects the metatable and base metatable on the stack */ +static void set_ubox(lua_State* L) { + + /* mt basemt */ + if (!lua_isnil(L, -1)) { + lua_pushstring(L, "tolua_ubox"); + lua_rawget(L,-2); + } else { + lua_pushnil(L); + }; + /* mt basemt base_ubox */ + if (!lua_isnil(L,-1)) { + lua_pushstring(L, "tolua_ubox"); + lua_insert(L, -2); + /* mt basemt key ubox */ + lua_rawset(L,-4); + /* (mt with ubox) basemt */ + } else { + /* mt basemt nil */ + lua_pop(L, 1); + lua_pushstring(L,"tolua_ubox"); lua_newtable(L); + /* make weak value metatable for ubox table to allow userdata to be + garbage-collected */ + lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3); /* stack: string ubox mt */ + lua_setmetatable(L, -2); /* stack:mt basemt string ubox */ + lua_rawset(L,-4); + }; + +}; + +/* Map inheritance + * It sets 'name' as derived from 'base' by setting 'base' as metatable of 'name' +*/ +static void mapinheritance (lua_State* L, const char* name, const char* base) +{ + /* set metatable inheritance */ + luaL_getmetatable(L,name); + + if (base && *base) + luaL_getmetatable(L,base); + else { + + if (lua_getmetatable(L, -1)) { /* already has a mt, we don't overwrite it */ + lua_pop(L, 2); + return; + }; + luaL_getmetatable(L,"tolua_commonclass"); + }; + + set_ubox(L); + + lua_setmetatable(L,-2); + lua_pop(L,1); +} + +/* Object type +*/ +static int tolua_bnd_type (lua_State* L) +{ + tolua_typename(L,lua_gettop(L)); + return 1; +} + +/* Take ownership +*/ +static int tolua_bnd_takeownership (lua_State* L) +{ + int success = 0; + if (lua_isuserdata(L,1)) + { + if (lua_getmetatable(L,1)) /* if metatable? */ + { + lua_pop(L,1); /* clear metatable off stack */ + /* force garbage collection to avoid C to reuse a to-be-collected address */ + #ifdef LUA_VERSION_NUM + lua_gc(L, LUA_GCCOLLECT, 0); + #else + lua_setgcthreshold(L,0); + #endif + + success = tolua_register_gc(L,1); + } + } + lua_pushboolean(L,success!=0); + return 1; +} + +/* Release ownership +*/ +static int tolua_bnd_releaseownership (lua_State* L) +{ + int done = 0; + if (lua_isuserdata(L,1)) + { + void* u = *((void**)lua_touserdata(L,1)); + /* force garbage collection to avoid releasing a to-be-collected address */ + #ifdef LUA_VERSION_NUM + lua_gc(L, LUA_GCCOLLECT, 0); + #else + lua_setgcthreshold(L,0); + #endif + lua_pushstring(L,"tolua_gc"); + lua_rawget(L,LUA_REGISTRYINDEX); + lua_pushlightuserdata(L,u); + lua_rawget(L,-2); + lua_getmetatable(L,1); + if (lua_rawequal(L,-1,-2)) /* check that we are releasing the correct type */ + { + lua_pushlightuserdata(L,u); + lua_pushnil(L); + lua_rawset(L,-5); + done = 1; + } + } + lua_pushboolean(L,done!=0); + return 1; +} + +/* Type casting +*/ +static int tolua_bnd_cast (lua_State* L) +{ + +/* // old code + void* v = tolua_tousertype(L,1,NULL); + const char* s = tolua_tostring(L,2,NULL); + if (v && s) + tolua_pushusertype(L,v,s); + else + lua_pushnil(L); + return 1; +*/ + + void* v; + const char* s; + if (lua_islightuserdata(L, 1)) { + v = tolua_touserdata(L, 1, NULL); + } else { + v = tolua_tousertype(L, 1, 0); + }; + + s = tolua_tostring(L,2,NULL); + if (v && s) + tolua_pushusertype(L,v,s); + else + lua_pushnil(L); + return 1; +} + +/* Inheritance +*/ +static int tolua_bnd_inherit (lua_State* L) { + + /* stack: lua object, c object */ + lua_pushstring(L, ".c_instance"); + lua_pushvalue(L, -2); + lua_rawset(L, -4); + /* l_obj[".c_instance"] = c_obj */ + + return 0; +}; + +#ifdef LUA_VERSION_NUM /* lua 5.1 */ +static int tolua_bnd_setpeer(lua_State* L) { + + /* stack: userdata, table */ + if (!lua_isuserdata(L, -2)) { + lua_pushstring(L, "Invalid argument #1 to setpeer: userdata expected."); + lua_error(L); + }; + + if (lua_isnil(L, -1)) { + + lua_pop(L, 1); + lua_pushvalue(L, TOLUA_NOPEER); + }; + lua_setfenv(L, -2); + + return 0; +}; + +static int tolua_bnd_getpeer(lua_State* L) { + + /* stack: userdata */ + lua_getfenv(L, -1); + if (lua_rawequal(L, -1, TOLUA_NOPEER)) { + lua_pop(L, 1); + lua_pushnil(L); + }; + return 1; +}; +#endif + +/* static int class_gc_event (lua_State* L); */ + +TOLUA_API void tolua_open (lua_State* L) +{ + int top = lua_gettop(L); + lua_pushstring(L,"tolua_opened"); + lua_rawget(L,LUA_REGISTRYINDEX); + if (!lua_isboolean(L,-1)) + { + lua_pushstring(L,"tolua_opened"); lua_pushboolean(L,1); lua_rawset(L,LUA_REGISTRYINDEX); + + #ifndef LUA_VERSION_NUM /* only prior to lua 5.1 */ + /* create peer object table */ + lua_pushstring(L, "tolua_peers"); lua_newtable(L); + /* make weak key metatable for peers indexed by userdata object */ + lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "k"); lua_rawset(L, -3); /* stack: string peers mt */ + lua_setmetatable(L, -2); /* stack: string peers */ + lua_rawset(L,LUA_REGISTRYINDEX); + #endif + + /* create object ptr -> udata mapping table */ + lua_pushstring(L,"tolua_ubox"); lua_newtable(L); + /* make weak value metatable for ubox table to allow userdata to be + garbage-collected */ + lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3); /* stack: string ubox mt */ + lua_setmetatable(L, -2); /* stack: string ubox */ + lua_rawset(L,LUA_REGISTRYINDEX); + + lua_pushstring(L,"tolua_super"); lua_newtable(L); lua_rawset(L,LUA_REGISTRYINDEX); + lua_pushstring(L,"tolua_gc"); lua_newtable(L);lua_rawset(L,LUA_REGISTRYINDEX); + + /* create gc_event closure */ + lua_pushstring(L, "tolua_gc_event"); + lua_pushstring(L, "tolua_gc"); + lua_rawget(L, LUA_REGISTRYINDEX); + lua_pushstring(L, "tolua_super"); + lua_rawget(L, LUA_REGISTRYINDEX); + lua_pushcclosure(L, class_gc_event, 2); + lua_rawset(L, LUA_REGISTRYINDEX); + + tolua_newmetatable(L,"tolua_commonclass"); + + tolua_module(L,NULL,0); + tolua_beginmodule(L,NULL); + tolua_module(L,"tolua",0); + tolua_beginmodule(L,"tolua"); + tolua_function(L,"type",tolua_bnd_type); + tolua_function(L,"takeownership",tolua_bnd_takeownership); + tolua_function(L,"releaseownership",tolua_bnd_releaseownership); + tolua_function(L,"cast",tolua_bnd_cast); + tolua_function(L,"inherit", tolua_bnd_inherit); + #ifdef LUA_VERSION_NUM /* lua 5.1 */ + tolua_function(L, "setpeer", tolua_bnd_setpeer); + tolua_function(L, "getpeer", tolua_bnd_getpeer); + #endif + + tolua_endmodule(L); + tolua_endmodule(L); + } + lua_settop(L,top); +} + +/* Copy a C object +*/ +TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size) +{ + void* clone = (void*)malloc(size); + if (clone) + memcpy(clone,value,size); + else + tolua_error(L,"insuficient memory",NULL); + return clone; +} + +/* Default collect function +*/ +TOLUA_API int tolua_default_collect (lua_State* tolua_S) +{ + void* self = tolua_tousertype(tolua_S,1,0); + free(self); + return 0; +} + +/* Do clone +*/ +TOLUA_API int tolua_register_gc (lua_State* L, int lo) +{ + int success = 1; + void *value = *(void **)lua_touserdata(L,lo); + lua_pushstring(L,"tolua_gc"); + lua_rawget(L,LUA_REGISTRYINDEX); + lua_pushlightuserdata(L,value); + lua_rawget(L,-2); + if (!lua_isnil(L,-1)) /* make sure that object is not already owned */ + success = 0; + else + { + lua_pushlightuserdata(L,value); + lua_getmetatable(L,lo); + lua_rawset(L,-4); + } + lua_pop(L,2); + return success; +} + +/* Register a usertype + * It creates the correspoding metatable in the registry, for both 'type' and 'const type'. + * It maps 'const type' as being also a 'type' +*/ +TOLUA_API void tolua_usertype (lua_State* L, const char* type) +{ + char ctype[128] = "const "; + strncat(ctype,type,120); + + /* create both metatables */ + if (tolua_newmetatable(L,ctype) && tolua_newmetatable(L,type)) + mapsuper(L,type,ctype); /* 'type' is also a 'const type' */ +} + + +/* Begin module + * It pushes the module (or class) table on the stack +*/ +TOLUA_API void tolua_beginmodule (lua_State* L, const char* name) +{ + if (name) + { + lua_pushstring(L,name); + lua_rawget(L,-2); + } + else + lua_pushvalue(L,LUA_GLOBALSINDEX); +} + +/* End module + * It pops the module (or class) from the stack +*/ +TOLUA_API void tolua_endmodule (lua_State* L) +{ + lua_pop(L,1); +} + +/* Map module + * It creates a new module +*/ +#if 1 +TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar) +{ + if (name) + { + /* tolua module */ + lua_pushstring(L,name); + lua_rawget(L,-2); + if (!lua_istable(L,-1)) /* check if module already exists */ + { + lua_pop(L,1); + lua_newtable(L); + lua_pushstring(L,name); + lua_pushvalue(L,-2); + lua_rawset(L,-4); /* assing module into module */ + } + } + else + { + /* global table */ + lua_pushvalue(L,LUA_GLOBALSINDEX); + } + if (hasvar) + { + if (!tolua_ismodulemetatable(L)) /* check if it already has a module metatable */ + { + /* create metatable to get/set C/C++ variable */ + lua_newtable(L); + tolua_moduleevents(L); + if (lua_getmetatable(L,-2)) + lua_setmetatable(L,-2); /* set old metatable as metatable of metatable */ + lua_setmetatable(L,-2); + } + } + lua_pop(L,1); /* pop module */ +} +#else +TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar) +{ + if (name) + { + /* tolua module */ + lua_pushstring(L,name); + lua_newtable(L); + } + else + { + /* global table */ + lua_pushvalue(L,LUA_GLOBALSINDEX); + } + if (hasvar) + { + /* create metatable to get/set C/C++ variable */ + lua_newtable(L); + tolua_moduleevents(L); + if (lua_getmetatable(L,-2)) + lua_setmetatable(L,-2); /* set old metatable as metatable of metatable */ + lua_setmetatable(L,-2); + } + if (name) + lua_rawset(L,-3); /* assing module into module */ + else + lua_pop(L,1); /* pop global table */ +} +#endif + +static void push_collector(lua_State* L, const char* type, lua_CFunction col) { + + /* push collector function, but only if it's not NULL, or if there's no + collector already */ + if (!col) return; + luaL_getmetatable(L,type); + lua_pushstring(L,".collector"); + /* + if (!col) { + lua_pushvalue(L, -1); + lua_rawget(L, -3); + if (!lua_isnil(L, -1)) { + lua_pop(L, 3); + return; + }; + lua_pop(L, 1); + }; + // */ + lua_pushcfunction(L,col); + + lua_rawset(L,-3); + lua_pop(L, 1); +}; + +/* Map C class + * It maps a C class, setting the appropriate inheritance and super classes. +*/ +TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col) +{ + char cname[128] = "const "; + char cbase[128] = "const "; + strncat(cname,name,120); + strncat(cbase,base,120); + + mapinheritance(L,name,base); + mapinheritance(L,cname,name); + + mapsuper(L,cname,cbase); + mapsuper(L,name,base); + + lua_pushstring(L,lname); + + push_collector(L, name, col); + /* + luaL_getmetatable(L,name); + lua_pushstring(L,".collector"); + lua_pushcfunction(L,col); + + lua_rawset(L,-3); + */ + + luaL_getmetatable(L,name); + lua_rawset(L,-3); /* assign class metatable to module */ + + /* now we also need to store the collector table for the const + instances of the class */ + push_collector(L, cname, col); + /* + luaL_getmetatable(L,cname); + lua_pushstring(L,".collector"); + lua_pushcfunction(L,col); + lua_rawset(L,-3); + lua_pop(L,1); + */ + + +} + +/* Add base + * It adds additional base classes to a class (for multiple inheritance) + * (not for now) +TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base) { + + char cname[128] = "const "; + char cbase[128] = "const "; + strncat(cname,name,120); + strncat(cbase,base,120); + + mapsuper(L,cname,cbase); + mapsuper(L,name,base); +}; +*/ + +/* Map function + * It assigns a function into the current module (or class) +*/ +TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func) +{ + lua_pushstring(L,name); + lua_pushcfunction(L,func); + lua_rawset(L,-3); +} + +/* sets the __call event for the class (expects the class' main table on top) */ +/* never really worked :( +TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type) { + + lua_getmetatable(L, -1); + //luaL_getmetatable(L, type); + lua_pushstring(L,"__call"); + lua_pushcfunction(L,func); + lua_rawset(L,-3); + lua_pop(L, 1); +}; +*/ + +/* Map constant number + * It assigns a constant number into the current module (or class) +*/ +TOLUA_API void tolua_constant (lua_State* L, const char* name, lua_Number value) +{ + lua_pushstring(L,name); + tolua_pushnumber(L,value); + lua_rawset(L,-3); +} + + +/* Map variable + * It assigns a variable into the current module (or class) +*/ +TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set) +{ + /* get func */ + lua_pushstring(L,".get"); + lua_rawget(L,-2); + if (!lua_istable(L,-1)) + { + /* create .get table, leaving it at the top */ + lua_pop(L,1); + lua_newtable(L); + lua_pushstring(L,".get"); + lua_pushvalue(L,-2); + lua_rawset(L,-4); + } + lua_pushstring(L,name); + lua_pushcfunction(L,get); + lua_rawset(L,-3); /* store variable */ + lua_pop(L,1); /* pop .get table */ + + /* set func */ + if (set) + { + lua_pushstring(L,".set"); + lua_rawget(L,-2); + if (!lua_istable(L,-1)) + { + /* create .set table, leaving it at the top */ + lua_pop(L,1); + lua_newtable(L); + lua_pushstring(L,".set"); + lua_pushvalue(L,-2); + lua_rawset(L,-4); + } + lua_pushstring(L,name); + lua_pushcfunction(L,set); + lua_rawset(L,-3); /* store variable */ + lua_pop(L,1); /* pop .set table */ + } +} + +/* Access const array + * It reports an error when trying to write into a const array +*/ +static int const_array (lua_State* L) +{ + luaL_error(L,"value of const array cannot be changed"); + return 0; +} + +/* Map an array + * It assigns an array into the current module (or class) +*/ +TOLUA_API void tolua_array (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set) +{ + lua_pushstring(L,".get"); + lua_rawget(L,-2); + if (!lua_istable(L,-1)) + { + /* create .get table, leaving it at the top */ + lua_pop(L,1); + lua_newtable(L); + lua_pushstring(L,".get"); + lua_pushvalue(L,-2); + lua_rawset(L,-4); + } + lua_pushstring(L,name); + + lua_newtable(L); /* create array metatable */ + lua_pushvalue(L,-1); + lua_setmetatable(L,-2); /* set the own table as metatable (for modules) */ + lua_pushstring(L,"__index"); + lua_pushcfunction(L,get); + lua_rawset(L,-3); + lua_pushstring(L,"__newindex"); + lua_pushcfunction(L,set?set:const_array); + lua_rawset(L,-3); + + lua_rawset(L,-3); /* store variable */ + lua_pop(L,1); /* pop .get table */ +} + + +TOLUA_API void tolua_dobuffer(lua_State* L, char* B, unsigned int size, const char* name) { + + #ifdef LUA_VERSION_NUM /* lua 5.1 */ + luaL_loadbuffer(L, B, size, name) || lua_pcall(L, 0, 0, 0); + #else + lua_dobuffer(L, B, size, name); + #endif +}; + diff --git a/lib/tolua++/src/lib/tolua_push.c b/lib/tolua++/src/lib/tolua_push.c new file mode 100644 index 000000000..639414755 --- /dev/null +++ b/lib/tolua++/src/lib/tolua_push.c @@ -0,0 +1,171 @@ +/* tolua: functions to push C values. +** Support code for Lua bindings. +** Written by Waldemar Celes +** TeCGraf/PUC-Rio +** 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. +*/ + +#include "tolua++.h" +#include "lauxlib.h" + +#include + +TOLUA_API void tolua_pushvalue (lua_State* L, int lo) +{ + lua_pushvalue(L,lo); +} + +TOLUA_API void tolua_pushboolean (lua_State* L, int value) +{ + lua_pushboolean(L,value); +} + +TOLUA_API void tolua_pushnumber (lua_State* L, lua_Number value) +{ + lua_pushnumber(L,value); +} + +TOLUA_API void tolua_pushstring (lua_State* L, const char* value) +{ + if (value == NULL) + lua_pushnil(L); + else + lua_pushstring(L,value); +} + +TOLUA_API void tolua_pushuserdata (lua_State* L, void* value) +{ + if (value == NULL) + lua_pushnil(L); + else + lua_pushlightuserdata(L,value); +} + +TOLUA_API void tolua_pushusertype (lua_State* L, void* value, const char* type) +{ + if (value == NULL) + lua_pushnil(L); + else + { + luaL_getmetatable(L, type); + lua_pushstring(L,"tolua_ubox"); + lua_rawget(L,-2); /* stack: mt ubox */ + if (lua_isnil(L, -1)) { + lua_pop(L, 1); + lua_pushstring(L, "tolua_ubox"); + lua_rawget(L, LUA_REGISTRYINDEX); + }; + lua_pushlightuserdata(L,value); + lua_rawget(L,-2); /* stack: mt ubox ubox[u] */ + if (lua_isnil(L,-1)) + { + lua_pop(L,1); /* stack: mt ubox */ + lua_pushlightuserdata(L,value); + *(void**)lua_newuserdata(L,sizeof(void *)) = value; /* stack: mt ubox u newud */ + lua_pushvalue(L,-1); /* stack: mt ubox u newud newud */ + lua_insert(L,-4); /* stack: mt newud ubox u newud */ + lua_rawset(L,-3); /* stack: mt newud ubox */ + lua_pop(L,1); /* stack: mt newud */ + /*luaL_getmetatable(L,type);*/ + lua_pushvalue(L, -2); /* stack: mt newud mt */ + lua_setmetatable(L,-2); /* stack: mt newud */ + + #ifdef LUA_VERSION_NUM + lua_pushvalue(L, TOLUA_NOPEER); + lua_setfenv(L, -2); + #endif + } + else + { + /* check the need of updating the metatable to a more specialized class */ + lua_insert(L,-2); /* stack: mt ubox[u] ubox */ + lua_pop(L,1); /* stack: mt ubox[u] */ + lua_pushstring(L,"tolua_super"); + lua_rawget(L,LUA_REGISTRYINDEX); /* stack: mt ubox[u] super */ + lua_getmetatable(L,-2); /* stack: mt ubox[u] super mt */ + lua_rawget(L,-2); /* stack: mt ubox[u] super super[mt] */ + if (lua_istable(L,-1)) + { + lua_pushstring(L,type); /* stack: mt ubox[u] super super[mt] type */ + lua_rawget(L,-2); /* stack: mt ubox[u] super super[mt] flag */ + if (lua_toboolean(L,-1) == 1) /* if true */ + { + lua_pop(L,3); /* mt ubox[u]*/ + lua_remove(L, -2); + return; + } + } + /* type represents a more specilized type */ + /*luaL_getmetatable(L,type); // stack: mt ubox[u] super super[mt] flag mt */ + lua_pushvalue(L, -5); /* stack: mt ubox[u] super super[mt] flag mt */ + lua_setmetatable(L,-5); /* stack: mt ubox[u] super super[mt] flag */ + lua_pop(L,3); /* stack: mt ubox[u] */ + } + lua_remove(L, -2); /* stack: ubox[u]*/ + } +} + +TOLUA_API void tolua_pushusertype_and_takeownership (lua_State* L, void* value, const char* type) +{ + tolua_pushusertype(L,value,type); + tolua_register_gc(L,lua_gettop(L)); +} + +TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v) +{ + lua_pushnumber(L,index); + lua_pushvalue(L,v); + lua_settable(L,lo); +} + +TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v) +{ + lua_pushnumber(L,index); + lua_pushboolean(L,v); + lua_settable(L,lo); +} + + +TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, lua_Number v) +{ + lua_pushnumber(L,index); + tolua_pushnumber(L,v); + lua_settable(L,lo); +} + +TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, const char* v) +{ + lua_pushnumber(L,index); + tolua_pushstring(L,v); + lua_settable(L,lo); +} + +TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v) +{ + lua_pushnumber(L,index); + tolua_pushuserdata(L,v); + lua_settable(L,lo); +} + +TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, const char* type) +{ + lua_pushnumber(L,index); + tolua_pushusertype(L,v,type); + lua_settable(L,lo); +} + +TOLUA_API void tolua_pushfieldusertype_and_takeownership (lua_State* L, int lo, int index, void* v, const char* type) +{ + lua_pushnumber(L,index); + tolua_pushusertype(L,v,type); + tolua_register_gc(L,lua_gettop(L)); + lua_settable(L,lo); +} + diff --git a/lib/tolua++/src/lib/tolua_to.c b/lib/tolua++/src/lib/tolua_to.c new file mode 100644 index 000000000..542ca67d1 --- /dev/null +++ b/lib/tolua++/src/lib/tolua_to.c @@ -0,0 +1,133 @@ +/* tolua: funcitons to convert to C types +** Support code for Lua bindings. +** Written by Waldemar Celes +** TeCGraf/PUC-Rio +** 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. +*/ + +#include "tolua++.h" + +#include +#include + +TOLUA_API lua_Number tolua_tonumber (lua_State* L, int narg, lua_Number def) +{ + return lua_gettop(L) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/tolua++/win32/tolualib/tolualib.vcproj.LAPTOPF.Kevin.user b/lib/tolua++/win32/tolualib/tolualib.vcproj.LAPTOPF.Kevin.user new file mode 100644 index 000000000..eaf548aa5 --- /dev/null +++ b/lib/tolua++/win32/tolualib/tolualib.vcproj.LAPTOPF.Kevin.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/lib/tolua++/win32/tolualib/tolualib.vcxproj b/lib/tolua++/win32/tolualib/tolualib.vcxproj new file mode 100644 index 000000000..f12bfda86 --- /dev/null +++ b/lib/tolua++/win32/tolualib/tolualib.vcxproj @@ -0,0 +1,80 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {AB745E71-04B2-454F-A806-A0D553DAE08C} + tolualib + + + + Application + true + MultiByte + + + StaticLibrary + false + true + MultiByte + + + + + + + + + + + + + tolua++ + + + + Level3 + Disabled + + + true + + + + + Level3 + MaxSpeed + true + true + ../../include;C:\Program Files (x86)\Lua\5.1\include;%(AdditionalIncludeDirectories) + + + true + true + true + C:\Program Files (x86)\Lua\5.1\lib + lua51.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/tolua++/win32/tolualib/tolualib.vcxproj.filters b/lib/tolua++/win32/tolualib/tolualib.vcxproj.filters new file mode 100644 index 000000000..99f8ce3b6 --- /dev/null +++ b/lib/tolua++/win32/tolualib/tolualib.vcxproj.filters @@ -0,0 +1,39 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/lib/tolua++/win32/tolualib/tolualib.vcxproj.user b/lib/tolua++/win32/tolualib/tolualib.vcxproj.user new file mode 100644 index 000000000..4c1e1937c --- /dev/null +++ b/lib/tolua++/win32/tolualib/tolualib.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/lib/tolua++/win32/vc7/clean.bat b/lib/tolua++/win32/vc7/clean.bat new file mode 100644 index 000000000..b8f4f2b2f --- /dev/null +++ b/lib/tolua++/win32/vc7/clean.bat @@ -0,0 +1,15 @@ +del *.ncb +del *.ilk +del *.lib +del *.exp +del *.map +del *.pdb +del *.bsc +del applog.txt +del tmpl83.00c.vcproj.LAPTOPF.Kevin.user +del *.suo /AH +del debug\*.* /Q +del release\*.* /Q +rd release /Q +rd debug /Q + diff --git a/lib/tolua++/win32/vc7/toluapp.sln b/lib/tolua++/win32/vc7/toluapp.sln new file mode 100644 index 000000000..1ab8be380 --- /dev/null +++ b/lib/tolua++/win32/vc7/toluapp.sln @@ -0,0 +1,48 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toluapp", "toluapp.vcproj", "{71891C1A-E328-4258-AC3F-6F9698C6D8B4}" + ProjectSection(ProjectDependencies) = postProject + {9DDCB327-0D20-460F-A7F8-DE038163CD63} = {9DDCB327-0D20-460F-A7F8-DE038163CD63} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tolualib", "..\tolualib\tolualib.vcproj", "{9DDCB327-0D20-460F-A7F8-DE038163CD63}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + withLua50_Debug|Win32 = withLua50_Debug|Win32 + withLua50_Release|Win32 = withLua50_Release|Win32 + withLua51_Debug|Win32 = withLua51_Debug|Win32 + withLua51_Release|Win32 = withLua51_Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.Debug|Win32.ActiveCfg = withLua51_Debug|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.Debug|Win32.Build.0 = withLua51_Debug|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.Release|Win32.ActiveCfg = withLua51_Release|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.Release|Win32.Build.0 = withLua51_Release|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug|Win32.ActiveCfg = withLua51_Release|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug|Win32.Build.0 = withLua51_Release|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release|Win32.ActiveCfg = withLua51_Release|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release|Win32.Build.0 = withLua51_Release|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug|Win32.ActiveCfg = withLua51_Debug|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug|Win32.Build.0 = withLua51_Debug|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release|Win32.ActiveCfg = withLua51_Release|Win32 + {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release|Win32.Build.0 = withLua51_Release|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.Debug|Win32.Build.0 = Debug|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.Release|Win32.ActiveCfg = Release|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.Release|Win32.Build.0 = Release|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua50_Debug|Win32.ActiveCfg = Debug|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua50_Debug|Win32.Build.0 = Debug|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua50_Release|Win32.ActiveCfg = Release|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua50_Release|Win32.Build.0 = Release|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua51_Debug|Win32.ActiveCfg = Debug|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua51_Debug|Win32.Build.0 = Debug|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua51_Release|Win32.ActiveCfg = Release|Win32 + {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua51_Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/lib/tolua++/win32/vc7/toluapp.vcproj b/lib/tolua++/win32/vc7/toluapp.vcproj new file mode 100644 index 000000000..285bd2d42 --- /dev/null +++ b/lib/tolua++/win32/vc7/toluapp.vcproj @@ -0,0 +1,439 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/tolua++/win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user b/lib/tolua++/win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user new file mode 100644 index 000000000..a2de0fbb2 --- /dev/null +++ b/lib/tolua++/win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + diff --git a/lib/tolua++/win32/vc7/toluapp.vcxproj b/lib/tolua++/win32/vc7/toluapp.vcxproj new file mode 100644 index 000000000..45601b36f --- /dev/null +++ b/lib/tolua++/win32/vc7/toluapp.vcxproj @@ -0,0 +1,176 @@ + + + + + withLua50_Debug + Win32 + + + withLua50_Release + Win32 + + + withLua51_Debug + Win32 + + + withLua51_Release + Win32 + + + + {71891C1A-E328-4258-AC3F-6F9698C6D8B4} + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + Debug\ + Debug\ + true + Release\ + Release\ + false + $(Configuration)\ + $(Configuration)\ + true + $(Configuration)\ + $(Configuration)\ + false + + + + Disabled + ..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + + + Level3 + EditAndContinue + + + lua50.lib;%(AdditionalDependencies) + ..\..\bin\tolua++_d.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + $(OutDir)tolua++.pdb + Console + MachineX86 + + + + + ..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreaded + + + Level3 + ProgramDatabase + + + lua50.lib;%(AdditionalDependencies) + ..\..\bin\tolua++.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + Console + true + true + MachineX86 + + + + + Disabled + ..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + + + Level3 + EditAndContinue + + + Lua5.1.lib;%(AdditionalDependencies) + ..\..\bin\tolua++_d.exe + ..\..\lib;%(AdditionalLibraryDirectories) + true + $(OutDir)tolua++.pdb + Console + MachineX86 + + + + + ..\..\include;C:\Program Files (x86)\Lua\5.1\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreaded + + + Level3 + ProgramDatabase + + + lua5.1.lib;%(AdditionalDependencies) + ..\..\bin\tolua++.exe + ..\..\lib;C:\Program Files (x86)\Lua\5.1\lib;%(AdditionalLibraryDirectories) + true + Console + true + true + MachineX86 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/tolua++/win32/vc7/toluapp.vcxproj.filters b/lib/tolua++/win32/vc7/toluapp.vcxproj.filters new file mode 100644 index 000000000..c23b20870 --- /dev/null +++ b/lib/tolua++/win32/vc7/toluapp.vcxproj.filters @@ -0,0 +1,45 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx + + + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + ソース ファイル + + + + + ソース ファイル + + + \ No newline at end of file diff --git a/lib/tolua++/win32/vc7/toluapp.vcxproj.user b/lib/tolua++/win32/vc7/toluapp.vcxproj.user new file mode 100644 index 000000000..4c1e1937c --- /dev/null +++ b/lib/tolua++/win32/vc7/toluapp.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/tolua++-1.0.93/COPYRIGHT b/tolua++-1.0.93/COPYRIGHT deleted file mode 100644 index 9e99e0080..000000000 --- a/tolua++-1.0.93/COPYRIGHT +++ /dev/null @@ -1,33 +0,0 @@ -tolua++ License ---------------- - -tolua++ is based on toLua (www.tecgraf.puc-rio.br/~celes/tolua), and -it's licensed under the terms of the MIT license reproduced below. -This means that Lua is free software and can be used for both academic -and commercial purposes at absolutely no cost. - -=============================================================================== - -Copyright (C) 2009 Ariel Manzur. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -=============================================================================== - -(end of COPYRIGHT) diff --git a/tolua++-1.0.93/INSTALL b/tolua++-1.0.93/INSTALL deleted file mode 100644 index 5ee408f9e..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/Makefile b/tolua++-1.0.93/Makefile deleted file mode 100644 index 92ded6c4e..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/README b/tolua++-1.0.93/README deleted file mode 100644 index cee381fb3..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/README-5.1 b/tolua++-1.0.93/README-5.1 deleted file mode 100644 index f06f785e3..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/SConstruct b/tolua++-1.0.93/SConstruct deleted file mode 100644 index 5c1e7746e..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/include/tolua++.h b/tolua++-1.0.93/include/tolua++.h deleted file mode 100644 index ed5344926..000000000 --- a/tolua++-1.0.93/include/tolua++.h +++ /dev/null @@ -1,186 +0,0 @@ -/* tolua -** Support code for Lua bindings. -** Written by Waldemar Celes -** TeCGraf/PUC-Rio -** 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. -*/ - - -#ifndef TOLUA_H -#define TOLUA_H - -#ifndef TOLUA_API -#define TOLUA_API extern -#endif - -#define TOLUA_VERSION "tolua++-1.0.92" - -#ifdef __cplusplus -extern "C" { -#endif - -#define tolua_pushcppstring(x,y) tolua_pushstring(x,y.c_str()) -#define tolua_iscppstring tolua_isstring - -#define tolua_iscppstringarray tolua_isstringarray -#define tolua_pushfieldcppstring(L,lo,idx,s) tolua_pushfieldstring(L, lo, idx, s.c_str()) - -#ifndef TEMPLATE_BIND - #define TEMPLATE_BIND(p) -#endif - -#define TOLUA_TEMPLATE_BIND(p) - -#define TOLUA_PROTECTED_DESTRUCTOR -#define TOLUA_PROPERTY_TYPE(p) - -typedef int lua_Object; - -#include "lua.h" -#include "lauxlib.h" - -struct tolua_Error -{ - int index; - int array; - const char* type; -}; -typedef struct tolua_Error tolua_Error; - -#define TOLUA_NOPEER LUA_REGISTRYINDEX /* for lua 5.1 */ - -TOLUA_API const char* tolua_typename (lua_State* L, int lo); -TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err); -TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err); -TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err); -TOLUA_API int tolua_isvaluenil (lua_State* L, int lo, tolua_Error* err); -TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err); -TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err); -TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err); -TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err); -TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err); -TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err); -TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err); -TOLUA_API int tolua_isvaluearray - (lua_State* L, int lo, int dim, int def, tolua_Error* err); -TOLUA_API int tolua_isbooleanarray - (lua_State* L, int lo, int dim, int def, tolua_Error* err); -TOLUA_API int tolua_isnumberarray - (lua_State* L, int lo, int dim, int def, tolua_Error* err); -TOLUA_API int tolua_isstringarray - (lua_State* L, int lo, int dim, int def, tolua_Error* err); -TOLUA_API int tolua_istablearray - (lua_State* L, int lo, int dim, int def, tolua_Error* err); -TOLUA_API int tolua_isuserdataarray - (lua_State* L, int lo, int dim, int def, tolua_Error* err); -TOLUA_API int tolua_isusertypearray - (lua_State* L, int lo, const char* type, int dim, int def, tolua_Error* err); - -TOLUA_API void tolua_open (lua_State* L); - -TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size); -TOLUA_API int tolua_register_gc (lua_State* L, int lo); -TOLUA_API int tolua_default_collect (lua_State* tolua_S); - -TOLUA_API void tolua_usertype (lua_State* L, const char* type); -TOLUA_API void tolua_beginmodule (lua_State* L, const char* name); -TOLUA_API void tolua_endmodule (lua_State* L); -TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar); -TOLUA_API void tolua_class (lua_State* L, const char* name, const char* base); -TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col); -TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func); -TOLUA_API void tolua_constant (lua_State* L, const char* name, lua_Number value); -TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set); -TOLUA_API void tolua_array (lua_State* L,const char* name, lua_CFunction get, lua_CFunction set); - -/* TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type); */ -/* TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base); */ - -TOLUA_API void tolua_pushvalue (lua_State* L, int lo); -TOLUA_API void tolua_pushboolean (lua_State* L, int value); -TOLUA_API void tolua_pushnumber (lua_State* L, lua_Number value); -TOLUA_API void tolua_pushstring (lua_State* L, const char* value); -TOLUA_API void tolua_pushuserdata (lua_State* L, void* value); -TOLUA_API void tolua_pushusertype (lua_State* L, void* value, const char* type); -TOLUA_API void tolua_pushusertype_and_takeownership(lua_State* L, void* value, const char* type); -TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v); -TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v); -TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, lua_Number v); -TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, const char* v); -TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v); -TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, const char* type); -TOLUA_API void tolua_pushfieldusertype_and_takeownership (lua_State* L, int lo, int index, void* v, const char* type); - -TOLUA_API lua_Number tolua_tonumber (lua_State* L, int narg, lua_Number def); -TOLUA_API const char* tolua_tostring (lua_State* L, int narg, const char* def); -TOLUA_API void* tolua_touserdata (lua_State* L, int narg, void* def); -TOLUA_API void* tolua_tousertype (lua_State* L, int narg, void* def); -TOLUA_API int tolua_tovalue (lua_State* L, int narg, int def); -TOLUA_API int tolua_toboolean (lua_State* L, int narg, int def); -TOLUA_API lua_Number tolua_tofieldnumber (lua_State* L, int lo, int index, lua_Number def); -TOLUA_API const char* tolua_tofieldstring (lua_State* L, int lo, int index, const char* def); -TOLUA_API void* tolua_tofielduserdata (lua_State* L, int lo, int index, void* def); -TOLUA_API void* tolua_tofieldusertype (lua_State* L, int lo, int index, void* def); -TOLUA_API int tolua_tofieldvalue (lua_State* L, int lo, int index, int def); -TOLUA_API int tolua_getfieldboolean (lua_State* L, int lo, int index, int def); - -TOLUA_API void tolua_dobuffer(lua_State* L, char* B, unsigned int size, const char* name); - -TOLUA_API int class_gc_event (lua_State* L); - -#ifdef __cplusplus -static inline const char* tolua_tocppstring (lua_State* L, int narg, const char* def) { - - const char* s = tolua_tostring(L, narg, def); - return s?s:""; -}; - -static inline const char* tolua_tofieldcppstring (lua_State* L, int lo, int index, const char* def) { - - const char* s = tolua_tofieldstring(L, lo, index, def); - return s?s:""; -}; - -#else -#define tolua_tocppstring tolua_tostring -#define tolua_tofieldcppstring tolua_tofieldstring -#endif - -TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index); - -#ifndef Mtolua_new -#define Mtolua_new(EXP) new EXP -#endif - -#ifndef Mtolua_delete -#define Mtolua_delete(EXP) delete EXP -#endif - -#ifndef Mtolua_new_dim -#define Mtolua_new_dim(EXP, len) new EXP[len] -#endif - -#ifndef Mtolua_delete_dim -#define Mtolua_delete_dim(EXP) delete [] EXP -#endif - -#ifndef tolua_outside -#define tolua_outside -#endif - -#ifndef tolua_owned -#define tolua_owned -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/tolua++-1.0.93/src/bin/SCsub b/tolua++-1.0.93/src/bin/SCsub deleted file mode 100644 index 35ccd7a24..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/all.lua b/tolua++-1.0.93/src/bin/lua/all.lua deleted file mode 100644 index 83f8a3cb9..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/array.lua b/tolua++-1.0.93/src/bin/lua/array.lua deleted file mode 100644 index f35aa98ce..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/basic.lua b/tolua++-1.0.93/src/bin/lua/basic.lua deleted file mode 100644 index f651f1fe6..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/class.lua b/tolua++-1.0.93/src/bin/lua/class.lua deleted file mode 100644 index 592705282..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/clean.lua b/tolua++-1.0.93/src/bin/lua/clean.lua deleted file mode 100644 index fd5b7b635..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/code.lua b/tolua++-1.0.93/src/bin/lua/code.lua deleted file mode 100644 index 5e19b6bbf..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/compat-5.1.lua b/tolua++-1.0.93/src/bin/lua/compat-5.1.lua deleted file mode 100644 index 7a2c60b69..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/compat.lua b/tolua++-1.0.93/src/bin/lua/compat.lua deleted file mode 100644 index 45d6ae1ba..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/container.lua b/tolua++-1.0.93/src/bin/lua/container.lua deleted file mode 100644 index 2d11db7df..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/custom.lua b/tolua++-1.0.93/src/bin/lua/custom.lua deleted file mode 100644 index de5912fb3..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/declaration.lua b/tolua++-1.0.93/src/bin/lua/declaration.lua deleted file mode 100644 index 73bbe910e..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/define.lua b/tolua++-1.0.93/src/bin/lua/define.lua deleted file mode 100644 index 96a28d878..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/doit.lua b/tolua++-1.0.93/src/bin/lua/doit.lua deleted file mode 100644 index 51dd0cf3c..000000000 --- a/tolua++-1.0.93/src/bin/lua/doit.lua +++ /dev/null @@ -1,102 +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['AString'] = '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/tolua++-1.0.93/src/bin/lua/enumerate.lua b/tolua++-1.0.93/src/bin/lua/enumerate.lua deleted file mode 100644 index 99fe74629..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/feature.lua b/tolua++-1.0.93/src/bin/lua/feature.lua deleted file mode 100644 index 042b5d28e..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/function.lua b/tolua++-1.0.93/src/bin/lua/function.lua deleted file mode 100644 index 2358e9ff7..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/module.lua b/tolua++-1.0.93/src/bin/lua/module.lua deleted file mode 100644 index 57dceb7d5..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/namespace.lua b/tolua++-1.0.93/src/bin/lua/namespace.lua deleted file mode 100644 index 6ca80e6e3..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/operator.lua b/tolua++-1.0.93/src/bin/lua/operator.lua deleted file mode 100644 index 675027cd7..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/package.lua b/tolua++-1.0.93/src/bin/lua/package.lua deleted file mode 100644 index eec136904..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/template_class.lua b/tolua++-1.0.93/src/bin/lua/template_class.lua deleted file mode 100644 index b1ed05abe..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/typedef.lua b/tolua++-1.0.93/src/bin/lua/typedef.lua deleted file mode 100644 index a78a84155..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/variable.lua b/tolua++-1.0.93/src/bin/lua/variable.lua deleted file mode 100644 index fbc705dd8..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/lua/verbatim.lua b/tolua++-1.0.93/src/bin/lua/verbatim.lua deleted file mode 100644 index fd3b29b35..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/tolua.c b/tolua++-1.0.93/src/bin/tolua.c deleted file mode 100644 index cc9f9adcd..000000000 --- a/tolua++-1.0.93/src/bin/tolua.c +++ /dev/null @@ -1,169 +0,0 @@ -/* tolua -** Support code for Lua bindings. -** Written by Waldemar Celes -** TeCGraf/PUC-Rio -** Aug 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. -*/ - -#include "tolua++.h" - -#include "lua.h" -#include "lualib.h" -#include "lauxlib.h" - -#include -#include -#include - - -static void help (void) -{ - fprintf(stderr,"\n" - "usage: tolua++ [options] input_file\n" - "\n" - "Command line options are:\n" - " -v : print version information.\n" - " -o file : set output file; default is stdout.\n" - " -H file : create include file.\n" - " -n name : set package name; default is input file root name.\n" - " -p : parse only.\n" - " -P : parse and print structure information (for debug).\n" - " -S : disable support for c++ strings.\n" - " -1 : substract 1 to operator[] index (for compatibility with tolua5).\n" - " -L file : run lua file (with dofile()) before doing anything.\n" - " -D : disable automatic exporting of destructors for classes that have\n" - " constructors (for compatibility with tolua5)\n" - " -W : disable warnings for unsupported features (for compatibility\n" - " with tolua5)\n" - " -C : disable cleanup of included lua code (for easier debugging)\n" - " -E value[=value] : add extra values to the luastate\n" - " -t : export a list of types asociates with the C++ typeid name\n" - " -q : don't print warnings to the console\n" - " -h : print this message.\n" - "Should the input file be omitted, stdin is assumed;\n" - "in that case, the package name must be explicitly set.\n\n" - ); -} - -static void version (void) -{ - fprintf(stderr, "%s (written by W. Celes, A. Manzur)\n",TOLUA_VERSION); -} - -static void setfield (lua_State* L, int table, char* f, char* v) -{ - lua_pushstring(L,f); - lua_pushstring(L,v); - lua_settable(L,table); -} - -static void add_extra (lua_State* L, char* value) { - int len; - lua_getglobal(L, "_extra_parameters"); - len = luaL_getn(L, -1); - lua_pushstring(L, value); - lua_rawseti(L, -2, len+1); - lua_pop(L, 1); -}; - -static void error (char* o) -{ - fprintf(stderr,"tolua: unknown option '%s'\n",o); - help(); - exit(1); -} - -int main (int argc, char* argv[]) -{ - #ifdef LUA_VERSION_NUM /* lua 5.1 */ - lua_State* L = luaL_newstate(); - luaL_openlibs(L); - #else - lua_State* L = lua_open(); - luaopen_base(L); - luaopen_io(L); - luaopen_string(L); - luaopen_table(L); - luaopen_math(L); - luaopen_debug(L); - #endif - - lua_pushstring(L,TOLUA_VERSION); lua_setglobal(L,"TOLUA_VERSION"); - lua_pushstring(L,LUA_VERSION); lua_setglobal(L,"TOLUA_LUA_VERSION"); - - if (argc==1) - { - help(); - return 0; - } - else - { - int i, t; - lua_newtable(L); - lua_setglobal(L, "_extra_parameters"); - lua_newtable(L); - lua_pushvalue(L,-1); - lua_setglobal(L,"flags"); - t = lua_gettop(L); - for (i=1; i= 501 -TOLUA_API int luaopen_tolua (lua_State* tolua_S) { - return tolua_tolua_open(tolua_S); -}; -#endif - diff --git a/tolua++-1.0.93/src/bin/toluabind.h b/tolua++-1.0.93/src/bin/toluabind.h deleted file mode 100644 index 7f1f018c9..000000000 --- a/tolua++-1.0.93/src/bin/toluabind.h +++ /dev/null @@ -1,8 +0,0 @@ -/* -** Lua binding: tolua -** Generated automatically by tolua++-1.0.92 on Sun Feb 15 22:29:48 2009. -*/ - -/* Exported function */ -TOLUA_API int tolua_tolua_open (lua_State* tolua_S); - diff --git a/tolua++-1.0.93/src/bin/toluabind_default.c b/tolua++-1.0.93/src/bin/toluabind_default.c deleted file mode 100644 index b5db813bf..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/bin/toluabind_default.h b/tolua++-1.0.93/src/bin/toluabind_default.h deleted file mode 100644 index c31a14875..000000000 --- a/tolua++-1.0.93/src/bin/toluabind_default.h +++ /dev/null @@ -1,8 +0,0 @@ -/* -** Lua binding: tolua -** Generated automatically by tolua++-1.0.8pre2 on Tue Dec 13 01:43:55 2005. -*/ - -/* Exported function */ -TOLUA_API int tolua_tolua_open (lua_State* tolua_S); - diff --git a/tolua++-1.0.93/src/lib/SCsub b/tolua++-1.0.93/src/lib/SCsub deleted file mode 100644 index 2f9a24691..000000000 --- a/tolua++-1.0.93/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/tolua++-1.0.93/src/lib/tolua_event.c b/tolua++-1.0.93/src/lib/tolua_event.c deleted file mode 100644 index 8258867b4..000000000 --- a/tolua++-1.0.93/src/lib/tolua_event.c +++ /dev/null @@ -1,536 +0,0 @@ -/* tolua: event functions -** Support code for Lua bindings. -** Written by Waldemar Celes -** TeCGraf/PUC-Rio -** 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. -*/ - -#include - -#include "tolua++.h" - -/* Store at ubox - * It stores, creating the corresponding table if needed, - * the pair key/value in the corresponding ubox table -*/ -static void storeatubox (lua_State* L, int lo) -{ - #ifdef LUA_VERSION_NUM - lua_getfenv(L, lo); - if (lua_rawequal(L, -1, TOLUA_NOPEER)) { - lua_pop(L, 1); - lua_newtable(L); - lua_pushvalue(L, -1); - lua_setfenv(L, lo); /* stack: k,v,table */ - }; - lua_insert(L, -3); - lua_settable(L, -3); /* on lua 5.1, we trade the "tolua_peers" lookup for a settable call */ - lua_pop(L, 1); - #else - /* stack: key value (to be stored) */ - lua_pushstring(L,"tolua_peers"); - lua_rawget(L,LUA_REGISTRYINDEX); /* stack: k v ubox */ - lua_pushvalue(L,lo); - lua_rawget(L,-2); /* stack: k v ubox ubox[u] */ - if (!lua_istable(L,-1)) - { - lua_pop(L,1); /* stack: k v ubox */ - lua_newtable(L); /* stack: k v ubox table */ - lua_pushvalue(L,1); - lua_pushvalue(L,-2); /* stack: k v ubox table u table */ - lua_rawset(L,-4); /* stack: k v ubox ubox[u]=table */ - } - lua_insert(L,-4); /* put table before k */ - lua_pop(L,1); /* pop ubox */ - lua_rawset(L,-3); /* store at table */ - lua_pop(L,1); /* pop ubox[u] */ - #endif -} - -/* Module index function -*/ -static int module_index_event (lua_State* L) -{ - lua_pushstring(L,".get"); - lua_rawget(L,-3); - if (lua_istable(L,-1)) - { - lua_pushvalue(L,2); /* key */ - lua_rawget(L,-2); - if (lua_iscfunction(L,-1)) - { - lua_call(L,0,1); - return 1; - } - else if (lua_istable(L,-1)) - return 1; - } - /* call old index meta event */ - if (lua_getmetatable(L,1)) - { - lua_pushstring(L,"__index"); - lua_rawget(L,-2); - lua_pushvalue(L,1); - lua_pushvalue(L,2); - if (lua_isfunction(L,-1)) - { - lua_call(L,2,1); - return 1; - } - else if (lua_istable(L,-1)) - { - lua_gettable(L,-3); - return 1; - } - } - lua_pushnil(L); - return 1; -} - -/* Module newindex function -*/ -static int module_newindex_event (lua_State* L) -{ - lua_pushstring(L,".set"); - lua_rawget(L,-4); - if (lua_istable(L,-1)) - { - lua_pushvalue(L,2); /* key */ - lua_rawget(L,-2); - if (lua_iscfunction(L,-1)) - { - lua_pushvalue(L,1); /* only to be compatible with non-static vars */ - lua_pushvalue(L,3); /* value */ - lua_call(L,2,0); - return 0; - } - } - /* call old newindex meta event */ - if (lua_getmetatable(L,1) && lua_getmetatable(L,-1)) - { - lua_pushstring(L,"__newindex"); - lua_rawget(L,-2); - if (lua_isfunction(L,-1)) - { - lua_pushvalue(L,1); - lua_pushvalue(L,2); - lua_pushvalue(L,3); - lua_call(L,3,0); - } - } - lua_settop(L,3); - lua_rawset(L,-3); - return 0; -} - -/* Class index function - * If the object is a userdata (ie, an object), it searches the field in - * the alternative table stored in the corresponding "ubox" table. -*/ -static int class_index_event (lua_State* L) -{ - int t = lua_type(L,1); - if (t == LUA_TUSERDATA) - { - /* Access alternative table */ - #ifdef LUA_VERSION_NUM /* new macro on version 5.1 */ - lua_getfenv(L,1); - if (!lua_rawequal(L, -1, TOLUA_NOPEER)) { - lua_pushvalue(L, 2); /* key */ - lua_gettable(L, -2); /* on lua 5.1, we trade the "tolua_peers" lookup for a gettable call */ - if (!lua_isnil(L, -1)) - return 1; - }; - #else - lua_pushstring(L,"tolua_peers"); - lua_rawget(L,LUA_REGISTRYINDEX); /* stack: obj key ubox */ - lua_pushvalue(L,1); - lua_rawget(L,-2); /* stack: obj key ubox ubox[u] */ - if (lua_istable(L,-1)) - { - lua_pushvalue(L,2); /* key */ - lua_rawget(L,-2); /* stack: obj key ubox ubox[u] value */ - if (!lua_isnil(L,-1)) - return 1; - } - #endif - lua_settop(L,2); /* stack: obj key */ - /* Try metatables */ - lua_pushvalue(L,1); /* stack: obj key obj */ - while (lua_getmetatable(L,-1)) - { /* stack: obj key obj mt */ - lua_remove(L,-2); /* stack: obj key mt */ - if (lua_isnumber(L,2)) /* check if key is a numeric value */ - { - /* try operator[] */ - lua_pushstring(L,".geti"); - lua_rawget(L,-2); /* stack: obj key mt func */ - if (lua_isfunction(L,-1)) - { - lua_pushvalue(L,1); - lua_pushvalue(L,2); - lua_call(L,2,1); - return 1; - } - } - else - { - lua_pushvalue(L,2); /* stack: obj key mt key */ - lua_rawget(L,-2); /* stack: obj key mt value */ - if (!lua_isnil(L,-1)) - return 1; - else - lua_pop(L,1); - /* try C/C++ variable */ - lua_pushstring(L,".get"); - lua_rawget(L,-2); /* stack: obj key mt tget */ - if (lua_istable(L,-1)) - { - lua_pushvalue(L,2); - lua_rawget(L,-2); /* stack: obj key mt value */ - if (lua_iscfunction(L,-1)) - { - lua_pushvalue(L,1); - lua_pushvalue(L,2); - lua_call(L,2,1); - return 1; - } - else if (lua_istable(L,-1)) - { - /* deal with array: create table to be returned and cache it in ubox */ - void* u = *((void**)lua_touserdata(L,1)); - lua_newtable(L); /* stack: obj key mt value table */ - lua_pushstring(L,".self"); - lua_pushlightuserdata(L,u); - lua_rawset(L,-3); /* store usertype in ".self" */ - lua_insert(L,-2); /* stack: obj key mt table value */ - lua_setmetatable(L,-2); /* set stored value as metatable */ - lua_pushvalue(L,-1); /* stack: obj key met table table */ - lua_pushvalue(L,2); /* stack: obj key mt table table key */ - lua_insert(L,-2); /* stack: obj key mt table key table */ - storeatubox(L,1); /* stack: obj key mt table */ - return 1; - } - } - } - lua_settop(L,3); - } - lua_pushnil(L); - return 1; - } - else if (t== LUA_TTABLE) - { - module_index_event(L); - return 1; - } - lua_pushnil(L); - return 1; -} - -/* Newindex function - * It first searches for a C/C++ varaible to be set. - * Then, it either stores it in the alternative ubox table (in the case it is - * an object) or in the own table (that represents the class or module). -*/ -static int class_newindex_event (lua_State* L) -{ - int t = lua_type(L,1); - if (t == LUA_TUSERDATA) - { - /* Try accessing a C/C++ variable to be set */ - lua_getmetatable(L,1); - while (lua_istable(L,-1)) /* stack: t k v mt */ - { - if (lua_isnumber(L,2)) /* check if key is a numeric value */ - { - /* try operator[] */ - lua_pushstring(L,".seti"); - lua_rawget(L,-2); /* stack: obj key mt func */ - if (lua_isfunction(L,-1)) - { - lua_pushvalue(L,1); - lua_pushvalue(L,2); - lua_pushvalue(L,3); - lua_call(L,3,0); - return 0; - } - } - else - { - lua_pushstring(L,".set"); - lua_rawget(L,-2); /* stack: t k v mt tset */ - if (lua_istable(L,-1)) - { - lua_pushvalue(L,2); - lua_rawget(L,-2); /* stack: t k v mt tset func */ - if (lua_iscfunction(L,-1)) - { - lua_pushvalue(L,1); - lua_pushvalue(L,3); - lua_call(L,2,0); - return 0; - } - lua_pop(L,1); /* stack: t k v mt tset */ - } - lua_pop(L,1); /* stack: t k v mt */ - if (!lua_getmetatable(L,-1)) /* stack: t k v mt mt */ - lua_pushnil(L); - lua_remove(L,-2); /* stack: t k v mt */ - } - } - lua_settop(L,3); /* stack: t k v */ - - /* then, store as a new field */ - storeatubox(L,1); - } - else if (t== LUA_TTABLE) - { - module_newindex_event(L); - } - return 0; -} - -static int class_call_event(lua_State* L) { - - if (lua_istable(L, 1)) { - lua_pushstring(L, ".call"); - lua_rawget(L, 1); - if (lua_isfunction(L, -1)) { - - lua_insert(L, 1); - lua_call(L, lua_gettop(L)-1, 1); - - return 1; - }; - }; - tolua_error(L,"Attempt to call a non-callable object.",NULL); - return 0; -}; - -static int do_operator (lua_State* L, const char* op) -{ - if (lua_isuserdata(L,1)) - { - /* Try metatables */ - lua_pushvalue(L,1); /* stack: op1 op2 */ - while (lua_getmetatable(L,-1)) - { /* stack: op1 op2 op1 mt */ - lua_remove(L,-2); /* stack: op1 op2 mt */ - lua_pushstring(L,op); /* stack: op1 op2 mt key */ - lua_rawget(L,-2); /* stack: obj key mt func */ - if (lua_isfunction(L,-1)) - { - lua_pushvalue(L,1); - lua_pushvalue(L,2); - lua_call(L,2,1); - return 1; - } - lua_settop(L,3); - } - } - tolua_error(L,"Attempt to perform operation on an invalid operand",NULL); - return 0; -} - -static int class_add_event (lua_State* L) -{ - return do_operator(L,".add"); -} - -static int class_sub_event (lua_State* L) -{ - return do_operator(L,".sub"); -} - -static int class_mul_event (lua_State* L) -{ - return do_operator(L,".mul"); -} - -static int class_div_event (lua_State* L) -{ - return do_operator(L,".div"); -} - -static int class_lt_event (lua_State* L) -{ - return do_operator(L,".lt"); -} - -static int class_le_event (lua_State* L) -{ - return do_operator(L,".le"); -} - -static int class_eq_event (lua_State* L) -{ - /* copying code from do_operator here to return false when no operator is found */ - if (lua_isuserdata(L,1)) - { - /* Try metatables */ - lua_pushvalue(L,1); /* stack: op1 op2 */ - while (lua_getmetatable(L,-1)) - { /* stack: op1 op2 op1 mt */ - lua_remove(L,-2); /* stack: op1 op2 mt */ - lua_pushstring(L,".eq"); /* stack: op1 op2 mt key */ - lua_rawget(L,-2); /* stack: obj key mt func */ - if (lua_isfunction(L,-1)) - { - lua_pushvalue(L,1); - lua_pushvalue(L,2); - lua_call(L,2,1); - return 1; - } - lua_settop(L,3); - } - } - - lua_settop(L, 3); - lua_pushboolean(L, 0); - return 1; -} - -/* -static int class_gc_event (lua_State* L) -{ - void* u = *((void**)lua_touserdata(L,1)); - fprintf(stderr, "collecting: looking at %p\n", u); - lua_pushstring(L,"tolua_gc"); - lua_rawget(L,LUA_REGISTRYINDEX); - lua_pushlightuserdata(L,u); - lua_rawget(L,-2); - if (lua_isfunction(L,-1)) - { - lua_pushvalue(L,1); - lua_call(L,1,0); - lua_pushlightuserdata(L,u); - lua_pushnil(L); - lua_rawset(L,-3); - } - lua_pop(L,2); - return 0; -} -*/ -TOLUA_API int class_gc_event (lua_State* L) -{ - void* u = *((void**)lua_touserdata(L,1)); - int top; - /*fprintf(stderr, "collecting: looking at %p\n", u);*/ - /* - lua_pushstring(L,"tolua_gc"); - lua_rawget(L,LUA_REGISTRYINDEX); - */ - lua_pushvalue(L, lua_upvalueindex(1)); - lua_pushlightuserdata(L,u); - lua_rawget(L,-2); /* stack: gc umt */ - lua_getmetatable(L,1); /* stack: gc umt mt */ - /*fprintf(stderr, "checking type\n");*/ - top = lua_gettop(L); - if (tolua_fast_isa(L,top,top-1, lua_upvalueindex(2))) /* make sure we collect correct type */ - { - /*fprintf(stderr, "Found type!\n");*/ - /* get gc function */ - lua_pushliteral(L,".collector"); - lua_rawget(L,-2); /* stack: gc umt mt collector */ - if (lua_isfunction(L,-1)) { - /*fprintf(stderr, "Found .collector!\n");*/ - } - else { - lua_pop(L,1); - /*fprintf(stderr, "Using default cleanup\n");*/ - lua_pushcfunction(L,tolua_default_collect); - } - - lua_pushvalue(L,1); /* stack: gc umt mt collector u */ - lua_call(L,1,0); - - lua_pushlightuserdata(L,u); /* stack: gc umt mt u */ - lua_pushnil(L); /* stack: gc umt mt u nil */ - lua_rawset(L,-5); /* stack: gc umt mt */ - } - lua_pop(L,3); - return 0; -} - - -/* Register module events - * It expects the metatable on the top of the stack -*/ -TOLUA_API void tolua_moduleevents (lua_State* L) -{ - lua_pushstring(L,"__index"); - lua_pushcfunction(L,module_index_event); - lua_rawset(L,-3); - lua_pushstring(L,"__newindex"); - lua_pushcfunction(L,module_newindex_event); - lua_rawset(L,-3); -} - -/* Check if the object on the top has a module metatable -*/ -TOLUA_API int tolua_ismodulemetatable (lua_State* L) -{ - int r = 0; - if (lua_getmetatable(L,-1)) - { - lua_pushstring(L,"__index"); - lua_rawget(L,-2); - r = (lua_tocfunction(L,-1) == module_index_event); - lua_pop(L,2); - } - return r; -} - -/* Register class events - * It expects the metatable on the top of the stack -*/ -TOLUA_API void tolua_classevents (lua_State* L) -{ - lua_pushstring(L,"__index"); - lua_pushcfunction(L,class_index_event); - lua_rawset(L,-3); - lua_pushstring(L,"__newindex"); - lua_pushcfunction(L,class_newindex_event); - lua_rawset(L,-3); - - lua_pushstring(L,"__add"); - lua_pushcfunction(L,class_add_event); - lua_rawset(L,-3); - lua_pushstring(L,"__sub"); - lua_pushcfunction(L,class_sub_event); - lua_rawset(L,-3); - lua_pushstring(L,"__mul"); - lua_pushcfunction(L,class_mul_event); - lua_rawset(L,-3); - lua_pushstring(L,"__div"); - lua_pushcfunction(L,class_div_event); - lua_rawset(L,-3); - - lua_pushstring(L,"__lt"); - lua_pushcfunction(L,class_lt_event); - lua_rawset(L,-3); - lua_pushstring(L,"__le"); - lua_pushcfunction(L,class_le_event); - lua_rawset(L,-3); - lua_pushstring(L,"__eq"); - lua_pushcfunction(L,class_eq_event); - lua_rawset(L,-3); - - lua_pushstring(L,"__call"); - lua_pushcfunction(L,class_call_event); - lua_rawset(L,-3); - - lua_pushstring(L,"__gc"); - lua_pushstring(L, "tolua_gc_event"); - lua_rawget(L, LUA_REGISTRYINDEX); - /*lua_pushcfunction(L,class_gc_event);*/ - lua_rawset(L,-3); -} - diff --git a/tolua++-1.0.93/src/lib/tolua_event.h b/tolua++-1.0.93/src/lib/tolua_event.h deleted file mode 100644 index 898f33dfc..000000000 --- a/tolua++-1.0.93/src/lib/tolua_event.h +++ /dev/null @@ -1,24 +0,0 @@ -/* tolua: event functions -** Support code for Lua bindings. -** Written by Waldemar Celes -** TeCGraf/PUC-Rio -** 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. -*/ - -#ifndef TOLUA_EVENT_H -#define TOLUA_EVENT_H - -#include "tolua++.h" - -TOLUA_API void tolua_moduleevents (lua_State* L); -TOLUA_API int tolua_ismodulemetatable (lua_State* L); -TOLUA_API void tolua_classevents (lua_State* L); - -#endif diff --git a/tolua++-1.0.93/src/lib/tolua_is.c b/tolua++-1.0.93/src/lib/tolua_is.c deleted file mode 100644 index c486b271e..000000000 --- a/tolua++-1.0.93/src/lib/tolua_is.c +++ /dev/null @@ -1,621 +0,0 @@ -/* tolua: functions to check types. -** Support code for Lua bindings. -** Written by Waldemar Celes -** TeCGraf/PUC-Rio -** 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. -*/ - -#include "tolua++.h" -#include "lauxlib.h" - -#include -#include - -/* a fast check if a is b, without parameter validation - i.e. if b is equal to a or a superclass of a. */ -TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index) -{ - int result; - if (lua_rawequal(L,mt_indexa,mt_indexb)) - result = 1; - else - { - if (super_index) { - lua_pushvalue(L, super_index); - } else { - lua_pushliteral(L,"tolua_super"); - lua_rawget(L,LUA_REGISTRYINDEX); /* stack: super */ - }; - lua_pushvalue(L,mt_indexa); /* stack: super mta */ - lua_rawget(L,-2); /* stack: super super[mta] */ - lua_pushvalue(L,mt_indexb); /* stack: super super[mta] mtb */ - lua_rawget(L,LUA_REGISTRYINDEX); /* stack: super super[mta] typenameB */ - lua_rawget(L,-2); /* stack: super super[mta] bool */ - result = lua_toboolean(L,-1); - lua_pop(L,3); - } - return result; -} - -/* Push and returns the corresponding object typename */ -TOLUA_API const char* tolua_typename (lua_State* L, int lo) -{ - int tag = lua_type(L,lo); - if (tag == LUA_TNONE) - lua_pushstring(L,"[no object]"); - else if (tag != LUA_TUSERDATA && tag != LUA_TTABLE) - lua_pushstring(L,lua_typename(L,tag)); - else if (tag == LUA_TUSERDATA) - { - if (!lua_getmetatable(L,lo)) - lua_pushstring(L,lua_typename(L,tag)); - else - { - lua_rawget(L,LUA_REGISTRYINDEX); - if (!lua_isstring(L,-1)) - { - lua_pop(L,1); - lua_pushstring(L,"[undefined]"); - } - } - } - else /* is table */ - { - lua_pushvalue(L,lo); - lua_rawget(L,LUA_REGISTRYINDEX); - if (!lua_isstring(L,-1)) - { - lua_pop(L,1); - lua_pushstring(L,"table"); - } - else - { - lua_pushstring(L,"class "); - lua_insert(L,-2); - lua_concat(L,2); - } - } - return lua_tostring(L,-1); -} - -TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err) -{ - if (msg[0] == '#') - { - const char* expected = err->type; - const char* provided = tolua_typename(L,err->index); - if (msg[1]=='f') - { - int narg = err->index; - if (err->array) - luaL_error(L,"%s\n argument #%d is array of '%s'; array of '%s' expected.\n", - msg+2,narg,provided,expected); - else - luaL_error(L,"%s\n argument #%d is '%s'; '%s' expected.\n", - msg+2,narg,provided,expected); - } - else if (msg[1]=='v') - { - if (err->array) - luaL_error(L,"%s\n value is array of '%s'; array of '%s' expected.\n", - msg+2,provided,expected); - else - luaL_error(L,"%s\n value is '%s'; '%s' expected.\n", - msg+2,provided,expected); - } - } - else - luaL_error(L,msg); -} - -/* the equivalent of lua_is* for usertable */ -static int lua_isusertable (lua_State* L, int lo, const char* type) -{ - int r = 0; - if (lo < 0) lo = lua_gettop(L)+lo+1; - lua_pushvalue(L,lo); - lua_rawget(L,LUA_REGISTRYINDEX); /* get registry[t] */ - if (lua_isstring(L,-1)) - { - r = strcmp(lua_tostring(L,-1),type)==0; - if (!r) - { - /* try const */ - lua_pushstring(L,"const "); - lua_insert(L,-2); - lua_concat(L,2); - r = lua_isstring(L,-1) && strcmp(lua_tostring(L,-1),type)==0; - } - } - lua_pop(L, 1); - return r; -} - -int push_table_instance(lua_State* L, int lo) { - - if (lua_istable(L, lo)) { - - lua_pushstring(L, ".c_instance"); - lua_gettable(L, lo); - if (lua_isuserdata(L, -1)) { - - lua_replace(L, lo); - return 1; - } else { - - lua_pop(L, 1); - return 0; - }; - } else { - return 0; - }; - - return 0; -}; - -/* the equivalent of lua_is* for usertype */ -static int lua_isusertype (lua_State* L, int lo, const char* type) -{ - if (!lua_isuserdata(L,lo)) { - if (!push_table_instance(L, lo)) { - return 0; - }; - }; - { - /* check if it is of the same type */ - int r; - const char *tn; - if (lua_getmetatable(L,lo)) /* if metatable? */ - { - lua_rawget(L,LUA_REGISTRYINDEX); /* get registry[mt] */ - tn = lua_tostring(L,-1); - r = tn && (strcmp(tn,type) == 0); - lua_pop(L, 1); - if (r) - return 1; - else - { - /* check if it is a specialized class */ - lua_pushstring(L,"tolua_super"); - lua_rawget(L,LUA_REGISTRYINDEX); /* get super */ - lua_getmetatable(L,lo); - lua_rawget(L,-2); /* get super[mt] */ - if (lua_istable(L,-1)) - { - int b; - lua_pushstring(L,type); - lua_rawget(L,-2); /* get super[mt][type] */ - b = lua_toboolean(L,-1); - lua_pop(L,3); - if (b) - return 1; - } - } - } - } - return 0; -} - -TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err) -{ - if (lua_gettop(L)index = lo; - err->array = 0; - err->type = "[no object]"; - return 0; -} - -TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err) -{ - if (def && lua_gettop(L)index = lo; - err->array = 0; - err->type = "boolean"; - return 0; -} - -TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err) -{ - if (def && lua_gettop(L)index = lo; - err->array = 0; - err->type = "number"; - return 0; -} - -TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err) -{ - if (def && lua_gettop(L)index = lo; - err->array = 0; - err->type = "string"; - return 0; -} - -TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err) -{ - if (def && lua_gettop(L)index = lo; - err->array = 0; - err->type = "table"; - return 0; -} - -TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err) -{ - if (def && lua_gettop(L)index = lo; - err->array = 0; - err->type = type; - return 0; -} - - -TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err) -{ - if (def && lua_gettop(L)index = lo; - err->array = 0; - err->type = "userdata"; - return 0; -} - -TOLUA_API int tolua_isvaluenil (lua_State* L, int lo, tolua_Error* err) { - - if (lua_gettop(L)index = lo; - err->array = 0; - err->type = "value"; - return 1; -}; - -TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err) -{ - if (def || abs(lo)<=lua_gettop(L)) /* any valid index */ - return 1; - err->index = lo; - err->array = 0; - err->type = "value"; - return 0; -} - -TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err) -{ - if (def && lua_gettop(L)index = lo; - err->array = 0; - err->type = type; - return 0; -} - -TOLUA_API int tolua_isvaluearray - (lua_State* L, int lo, int dim, int def, tolua_Error* err) -{ - if (!tolua_istable(L,lo,def,err)) - return 0; - else - return 1; -} - -TOLUA_API int tolua_isbooleanarray - (lua_State* L, int lo, int dim, int def, tolua_Error* err) -{ - if (!tolua_istable(L,lo,def,err)) - return 0; - else - { - int i; - for (i=1; i<=dim; ++i) - { - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!(lua_isnil(L,-1) || lua_isboolean(L,-1)) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "boolean"; - return 0; - } - lua_pop(L,1); - } - } - return 1; -} - -TOLUA_API int tolua_isnumberarray - (lua_State* L, int lo, int dim, int def, tolua_Error* err) -{ - if (!tolua_istable(L,lo,def,err)) - return 0; - else - { - int i; - for (i=1; i<=dim; ++i) - { - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!lua_isnumber(L,-1) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "number"; - return 0; - } - lua_pop(L,1); - } - } - return 1; -} - -TOLUA_API int tolua_isstringarray - (lua_State* L, int lo, int dim, int def, tolua_Error* err) -{ - if (!tolua_istable(L,lo,def,err)) - return 0; - else - { - int i; - for (i=1; i<=dim; ++i) - { - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!(lua_isnil(L,-1) || lua_isstring(L,-1)) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "string"; - return 0; - } - lua_pop(L,1); - } - } - return 1; -} - -TOLUA_API int tolua_istablearray - (lua_State* L, int lo, int dim, int def, tolua_Error* err) -{ - if (!tolua_istable(L,lo,def,err)) - return 0; - else - { - int i; - for (i=1; i<=dim; ++i) - { - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (! lua_istable(L,-1) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "table"; - return 0; - } - lua_pop(L,1); - } - } - return 1; -} - -TOLUA_API int tolua_isuserdataarray - (lua_State* L, int lo, int dim, int def, tolua_Error* err) -{ - if (!tolua_istable(L,lo,def,err)) - return 0; - else - { - int i; - for (i=1; i<=dim; ++i) - { - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "userdata"; - return 0; - } - lua_pop(L,1); - } - } - return 1; -} - -TOLUA_API int tolua_isusertypearray - (lua_State* L, int lo, const char* type, int dim, int def, tolua_Error* err) -{ - if (!tolua_istable(L,lo,def,err)) - return 0; - else - { - int i; - for (i=1; i<=dim; ++i) - { - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->type = type; - err->array = 1; - return 0; - } - lua_pop(L,1); - } - } - return 1; -} - -#if 0 -int tolua_isbooleanfield - (lua_State* L, int lo, int i, int def, tolua_Error* err) -{ - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!(lua_isnil(L,-1) || lua_isboolean(L,-1)) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "boolean"; - return 0; - } - lua_pop(L,1); - return 1; -} - -int tolua_isnumberfield - (lua_State* L, int lo, int i, int def, tolua_Error* err) -{ - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!lua_isnumber(L,-1) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "number"; - return 0; - } - lua_pop(L,1); - return 1; -} - -int tolua_isstringfield - (lua_State* L, int lo, int i, int def, tolua_Error* err) -{ - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!(lua_isnil(L,-1) || lua_isstring(L,-1)) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "string"; - return 0; - } - lua_pop(L,1); - return 1; -} - -int tolua_istablefield - (lua_State* L, int lo, int i, int def, tolua_Error* err) -{ - lua_pushnumber(L,i+1); - lua_gettable(L,lo); - if (! lua_istable(L,-1) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "table"; - return 0; - } - lua_pop(L,1); -} - -int tolua_isusertablefield - (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err) -{ - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (! lua_isusertable(L,-1,type) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = type; - return 0; - } - lua_pop(L,1); - return 1; -} - -int tolua_isuserdatafield - (lua_State* L, int lo, int i, int def, tolua_Error* err) -{ - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->array = 1; - err->type = "userdata"; - return 0; - } - lua_pop(L,1); - return 1; -} - -int tolua_isusertypefield - (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err) -{ - lua_pushnumber(L,i); - lua_gettable(L,lo); - if (!(lua_isnil(L,-1) || lua_isusertype(L,-1,type)) && - !(def && lua_isnil(L,-1)) - ) - { - err->index = lo; - err->type = type; - err->array = 1; - return 0; - } - lua_pop(L,1); - return 1; -} - -#endif diff --git a/tolua++-1.0.93/src/lib/tolua_map.c b/tolua++-1.0.93/src/lib/tolua_map.c deleted file mode 100644 index d00e7069b..000000000 --- a/tolua++-1.0.93/src/lib/tolua_map.c +++ /dev/null @@ -1,704 +0,0 @@ -/* tolua: functions to map features -** Support code for Lua bindings. -** Written by Waldemar Celes -** TeCGraf/PUC-Rio -** 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. -*/ - -#include "tolua++.h" -#include "tolua_event.h" -#include "lauxlib.h" - -#include -#include -#include -#include - - -/* Create metatable - * Create and register new metatable -*/ -static int tolua_newmetatable (lua_State* L, char* name) -{ - int r = luaL_newmetatable(L,name); - - #ifdef LUA_VERSION_NUM /* only lua 5.1 */ - if (r) { - lua_pushvalue(L, -1); - lua_pushstring(L, name); - lua_settable(L, LUA_REGISTRYINDEX); /* reg[mt] = type_name */ - }; - #endif - - if (r) - tolua_classevents(L); /* set meta events */ - lua_pop(L,1); - return r; -} - -/* Map super classes - * It sets 'name' as being also a 'base', mapping all super classes of 'base' in 'name' -*/ -static void mapsuper (lua_State* L, const char* name, const char* base) -{ - /* push registry.super */ - lua_pushstring(L,"tolua_super"); - lua_rawget(L,LUA_REGISTRYINDEX); /* stack: super */ - luaL_getmetatable(L,name); /* stack: super mt */ - lua_rawget(L,-2); /* stack: super table */ - if (lua_isnil(L,-1)) - { - /* create table */ - lua_pop(L,1); - lua_newtable(L); /* stack: super table */ - luaL_getmetatable(L,name); /* stack: super table mt */ - lua_pushvalue(L,-2); /* stack: super table mt table */ - lua_rawset(L,-4); /* stack: super table */ - } - - /* set base as super class */ - lua_pushstring(L,base); - lua_pushboolean(L,1); - lua_rawset(L,-3); /* stack: super table */ - - /* set all super class of base as super class of name */ - luaL_getmetatable(L,base); /* stack: super table base_mt */ - lua_rawget(L,-3); /* stack: super table base_table */ - if (lua_istable(L,-1)) - { - /* traverse base table */ - lua_pushnil(L); /* first key */ - while (lua_next(L,-2) != 0) - { - /* stack: ... base_table key value */ - lua_pushvalue(L,-2); /* stack: ... base_table key value key */ - lua_insert(L,-2); /* stack: ... base_table key key value */ - lua_rawset(L,-5); /* stack: ... base_table key */ - } - } - lua_pop(L,3); /* stack: */ -} - -/* creates a 'tolua_ubox' table for base clases, and -// expects the metatable and base metatable on the stack */ -static void set_ubox(lua_State* L) { - - /* mt basemt */ - if (!lua_isnil(L, -1)) { - lua_pushstring(L, "tolua_ubox"); - lua_rawget(L,-2); - } else { - lua_pushnil(L); - }; - /* mt basemt base_ubox */ - if (!lua_isnil(L,-1)) { - lua_pushstring(L, "tolua_ubox"); - lua_insert(L, -2); - /* mt basemt key ubox */ - lua_rawset(L,-4); - /* (mt with ubox) basemt */ - } else { - /* mt basemt nil */ - lua_pop(L, 1); - lua_pushstring(L,"tolua_ubox"); lua_newtable(L); - /* make weak value metatable for ubox table to allow userdata to be - garbage-collected */ - lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3); /* stack: string ubox mt */ - lua_setmetatable(L, -2); /* stack:mt basemt string ubox */ - lua_rawset(L,-4); - }; - -}; - -/* Map inheritance - * It sets 'name' as derived from 'base' by setting 'base' as metatable of 'name' -*/ -static void mapinheritance (lua_State* L, const char* name, const char* base) -{ - /* set metatable inheritance */ - luaL_getmetatable(L,name); - - if (base && *base) - luaL_getmetatable(L,base); - else { - - if (lua_getmetatable(L, -1)) { /* already has a mt, we don't overwrite it */ - lua_pop(L, 2); - return; - }; - luaL_getmetatable(L,"tolua_commonclass"); - }; - - set_ubox(L); - - lua_setmetatable(L,-2); - lua_pop(L,1); -} - -/* Object type -*/ -static int tolua_bnd_type (lua_State* L) -{ - tolua_typename(L,lua_gettop(L)); - return 1; -} - -/* Take ownership -*/ -static int tolua_bnd_takeownership (lua_State* L) -{ - int success = 0; - if (lua_isuserdata(L,1)) - { - if (lua_getmetatable(L,1)) /* if metatable? */ - { - lua_pop(L,1); /* clear metatable off stack */ - /* force garbage collection to avoid C to reuse a to-be-collected address */ - #ifdef LUA_VERSION_NUM - lua_gc(L, LUA_GCCOLLECT, 0); - #else - lua_setgcthreshold(L,0); - #endif - - success = tolua_register_gc(L,1); - } - } - lua_pushboolean(L,success!=0); - return 1; -} - -/* Release ownership -*/ -static int tolua_bnd_releaseownership (lua_State* L) -{ - int done = 0; - if (lua_isuserdata(L,1)) - { - void* u = *((void**)lua_touserdata(L,1)); - /* force garbage collection to avoid releasing a to-be-collected address */ - #ifdef LUA_VERSION_NUM - lua_gc(L, LUA_GCCOLLECT, 0); - #else - lua_setgcthreshold(L,0); - #endif - lua_pushstring(L,"tolua_gc"); - lua_rawget(L,LUA_REGISTRYINDEX); - lua_pushlightuserdata(L,u); - lua_rawget(L,-2); - lua_getmetatable(L,1); - if (lua_rawequal(L,-1,-2)) /* check that we are releasing the correct type */ - { - lua_pushlightuserdata(L,u); - lua_pushnil(L); - lua_rawset(L,-5); - done = 1; - } - } - lua_pushboolean(L,done!=0); - return 1; -} - -/* Type casting -*/ -static int tolua_bnd_cast (lua_State* L) -{ - -/* // old code - void* v = tolua_tousertype(L,1,NULL); - const char* s = tolua_tostring(L,2,NULL); - if (v && s) - tolua_pushusertype(L,v,s); - else - lua_pushnil(L); - return 1; -*/ - - void* v; - const char* s; - if (lua_islightuserdata(L, 1)) { - v = tolua_touserdata(L, 1, NULL); - } else { - v = tolua_tousertype(L, 1, 0); - }; - - s = tolua_tostring(L,2,NULL); - if (v && s) - tolua_pushusertype(L,v,s); - else - lua_pushnil(L); - return 1; -} - -/* Inheritance -*/ -static int tolua_bnd_inherit (lua_State* L) { - - /* stack: lua object, c object */ - lua_pushstring(L, ".c_instance"); - lua_pushvalue(L, -2); - lua_rawset(L, -4); - /* l_obj[".c_instance"] = c_obj */ - - return 0; -}; - -#ifdef LUA_VERSION_NUM /* lua 5.1 */ -static int tolua_bnd_setpeer(lua_State* L) { - - /* stack: userdata, table */ - if (!lua_isuserdata(L, -2)) { - lua_pushstring(L, "Invalid argument #1 to setpeer: userdata expected."); - lua_error(L); - }; - - if (lua_isnil(L, -1)) { - - lua_pop(L, 1); - lua_pushvalue(L, TOLUA_NOPEER); - }; - lua_setfenv(L, -2); - - return 0; -}; - -static int tolua_bnd_getpeer(lua_State* L) { - - /* stack: userdata */ - lua_getfenv(L, -1); - if (lua_rawequal(L, -1, TOLUA_NOPEER)) { - lua_pop(L, 1); - lua_pushnil(L); - }; - return 1; -}; -#endif - -/* static int class_gc_event (lua_State* L); */ - -TOLUA_API void tolua_open (lua_State* L) -{ - int top = lua_gettop(L); - lua_pushstring(L,"tolua_opened"); - lua_rawget(L,LUA_REGISTRYINDEX); - if (!lua_isboolean(L,-1)) - { - lua_pushstring(L,"tolua_opened"); lua_pushboolean(L,1); lua_rawset(L,LUA_REGISTRYINDEX); - - #ifndef LUA_VERSION_NUM /* only prior to lua 5.1 */ - /* create peer object table */ - lua_pushstring(L, "tolua_peers"); lua_newtable(L); - /* make weak key metatable for peers indexed by userdata object */ - lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "k"); lua_rawset(L, -3); /* stack: string peers mt */ - lua_setmetatable(L, -2); /* stack: string peers */ - lua_rawset(L,LUA_REGISTRYINDEX); - #endif - - /* create object ptr -> udata mapping table */ - lua_pushstring(L,"tolua_ubox"); lua_newtable(L); - /* make weak value metatable for ubox table to allow userdata to be - garbage-collected */ - lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3); /* stack: string ubox mt */ - lua_setmetatable(L, -2); /* stack: string ubox */ - lua_rawset(L,LUA_REGISTRYINDEX); - - lua_pushstring(L,"tolua_super"); lua_newtable(L); lua_rawset(L,LUA_REGISTRYINDEX); - lua_pushstring(L,"tolua_gc"); lua_newtable(L);lua_rawset(L,LUA_REGISTRYINDEX); - - /* create gc_event closure */ - lua_pushstring(L, "tolua_gc_event"); - lua_pushstring(L, "tolua_gc"); - lua_rawget(L, LUA_REGISTRYINDEX); - lua_pushstring(L, "tolua_super"); - lua_rawget(L, LUA_REGISTRYINDEX); - lua_pushcclosure(L, class_gc_event, 2); - lua_rawset(L, LUA_REGISTRYINDEX); - - tolua_newmetatable(L,"tolua_commonclass"); - - tolua_module(L,NULL,0); - tolua_beginmodule(L,NULL); - tolua_module(L,"tolua",0); - tolua_beginmodule(L,"tolua"); - tolua_function(L,"type",tolua_bnd_type); - tolua_function(L,"takeownership",tolua_bnd_takeownership); - tolua_function(L,"releaseownership",tolua_bnd_releaseownership); - tolua_function(L,"cast",tolua_bnd_cast); - tolua_function(L,"inherit", tolua_bnd_inherit); - #ifdef LUA_VERSION_NUM /* lua 5.1 */ - tolua_function(L, "setpeer", tolua_bnd_setpeer); - tolua_function(L, "getpeer", tolua_bnd_getpeer); - #endif - - tolua_endmodule(L); - tolua_endmodule(L); - } - lua_settop(L,top); -} - -/* Copy a C object -*/ -TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size) -{ - void* clone = (void*)malloc(size); - if (clone) - memcpy(clone,value,size); - else - tolua_error(L,"insuficient memory",NULL); - return clone; -} - -/* Default collect function -*/ -TOLUA_API int tolua_default_collect (lua_State* tolua_S) -{ - void* self = tolua_tousertype(tolua_S,1,0); - free(self); - return 0; -} - -/* Do clone -*/ -TOLUA_API int tolua_register_gc (lua_State* L, int lo) -{ - int success = 1; - void *value = *(void **)lua_touserdata(L,lo); - lua_pushstring(L,"tolua_gc"); - lua_rawget(L,LUA_REGISTRYINDEX); - lua_pushlightuserdata(L,value); - lua_rawget(L,-2); - if (!lua_isnil(L,-1)) /* make sure that object is not already owned */ - success = 0; - else - { - lua_pushlightuserdata(L,value); - lua_getmetatable(L,lo); - lua_rawset(L,-4); - } - lua_pop(L,2); - return success; -} - -/* Register a usertype - * It creates the correspoding metatable in the registry, for both 'type' and 'const type'. - * It maps 'const type' as being also a 'type' -*/ -TOLUA_API void tolua_usertype (lua_State* L, const char* type) -{ - char ctype[128] = "const "; - strncat(ctype,type,120); - - /* create both metatables */ - if (tolua_newmetatable(L,ctype) && tolua_newmetatable(L,type)) - mapsuper(L,type,ctype); /* 'type' is also a 'const type' */ -} - - -/* Begin module - * It pushes the module (or class) table on the stack -*/ -TOLUA_API void tolua_beginmodule (lua_State* L, const char* name) -{ - if (name) - { - lua_pushstring(L,name); - lua_rawget(L,-2); - } - else - lua_pushvalue(L,LUA_GLOBALSINDEX); -} - -/* End module - * It pops the module (or class) from the stack -*/ -TOLUA_API void tolua_endmodule (lua_State* L) -{ - lua_pop(L,1); -} - -/* Map module - * It creates a new module -*/ -#if 1 -TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar) -{ - if (name) - { - /* tolua module */ - lua_pushstring(L,name); - lua_rawget(L,-2); - if (!lua_istable(L,-1)) /* check if module already exists */ - { - lua_pop(L,1); - lua_newtable(L); - lua_pushstring(L,name); - lua_pushvalue(L,-2); - lua_rawset(L,-4); /* assing module into module */ - } - } - else - { - /* global table */ - lua_pushvalue(L,LUA_GLOBALSINDEX); - } - if (hasvar) - { - if (!tolua_ismodulemetatable(L)) /* check if it already has a module metatable */ - { - /* create metatable to get/set C/C++ variable */ - lua_newtable(L); - tolua_moduleevents(L); - if (lua_getmetatable(L,-2)) - lua_setmetatable(L,-2); /* set old metatable as metatable of metatable */ - lua_setmetatable(L,-2); - } - } - lua_pop(L,1); /* pop module */ -} -#else -TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar) -{ - if (name) - { - /* tolua module */ - lua_pushstring(L,name); - lua_newtable(L); - } - else - { - /* global table */ - lua_pushvalue(L,LUA_GLOBALSINDEX); - } - if (hasvar) - { - /* create metatable to get/set C/C++ variable */ - lua_newtable(L); - tolua_moduleevents(L); - if (lua_getmetatable(L,-2)) - lua_setmetatable(L,-2); /* set old metatable as metatable of metatable */ - lua_setmetatable(L,-2); - } - if (name) - lua_rawset(L,-3); /* assing module into module */ - else - lua_pop(L,1); /* pop global table */ -} -#endif - -static void push_collector(lua_State* L, const char* type, lua_CFunction col) { - - /* push collector function, but only if it's not NULL, or if there's no - collector already */ - if (!col) return; - luaL_getmetatable(L,type); - lua_pushstring(L,".collector"); - /* - if (!col) { - lua_pushvalue(L, -1); - lua_rawget(L, -3); - if (!lua_isnil(L, -1)) { - lua_pop(L, 3); - return; - }; - lua_pop(L, 1); - }; - // */ - lua_pushcfunction(L,col); - - lua_rawset(L,-3); - lua_pop(L, 1); -}; - -/* Map C class - * It maps a C class, setting the appropriate inheritance and super classes. -*/ -TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col) -{ - char cname[128] = "const "; - char cbase[128] = "const "; - strncat(cname,name,120); - strncat(cbase,base,120); - - mapinheritance(L,name,base); - mapinheritance(L,cname,name); - - mapsuper(L,cname,cbase); - mapsuper(L,name,base); - - lua_pushstring(L,lname); - - push_collector(L, name, col); - /* - luaL_getmetatable(L,name); - lua_pushstring(L,".collector"); - lua_pushcfunction(L,col); - - lua_rawset(L,-3); - */ - - luaL_getmetatable(L,name); - lua_rawset(L,-3); /* assign class metatable to module */ - - /* now we also need to store the collector table for the const - instances of the class */ - push_collector(L, cname, col); - /* - luaL_getmetatable(L,cname); - lua_pushstring(L,".collector"); - lua_pushcfunction(L,col); - lua_rawset(L,-3); - lua_pop(L,1); - */ - - -} - -/* Add base - * It adds additional base classes to a class (for multiple inheritance) - * (not for now) -TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base) { - - char cname[128] = "const "; - char cbase[128] = "const "; - strncat(cname,name,120); - strncat(cbase,base,120); - - mapsuper(L,cname,cbase); - mapsuper(L,name,base); -}; -*/ - -/* Map function - * It assigns a function into the current module (or class) -*/ -TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func) -{ - lua_pushstring(L,name); - lua_pushcfunction(L,func); - lua_rawset(L,-3); -} - -/* sets the __call event for the class (expects the class' main table on top) */ -/* never really worked :( -TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type) { - - lua_getmetatable(L, -1); - //luaL_getmetatable(L, type); - lua_pushstring(L,"__call"); - lua_pushcfunction(L,func); - lua_rawset(L,-3); - lua_pop(L, 1); -}; -*/ - -/* Map constant number - * It assigns a constant number into the current module (or class) -*/ -TOLUA_API void tolua_constant (lua_State* L, const char* name, lua_Number value) -{ - lua_pushstring(L,name); - tolua_pushnumber(L,value); - lua_rawset(L,-3); -} - - -/* Map variable - * It assigns a variable into the current module (or class) -*/ -TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set) -{ - /* get func */ - lua_pushstring(L,".get"); - lua_rawget(L,-2); - if (!lua_istable(L,-1)) - { - /* create .get table, leaving it at the top */ - lua_pop(L,1); - lua_newtable(L); - lua_pushstring(L,".get"); - lua_pushvalue(L,-2); - lua_rawset(L,-4); - } - lua_pushstring(L,name); - lua_pushcfunction(L,get); - lua_rawset(L,-3); /* store variable */ - lua_pop(L,1); /* pop .get table */ - - /* set func */ - if (set) - { - lua_pushstring(L,".set"); - lua_rawget(L,-2); - if (!lua_istable(L,-1)) - { - /* create .set table, leaving it at the top */ - lua_pop(L,1); - lua_newtable(L); - lua_pushstring(L,".set"); - lua_pushvalue(L,-2); - lua_rawset(L,-4); - } - lua_pushstring(L,name); - lua_pushcfunction(L,set); - lua_rawset(L,-3); /* store variable */ - lua_pop(L,1); /* pop .set table */ - } -} - -/* Access const array - * It reports an error when trying to write into a const array -*/ -static int const_array (lua_State* L) -{ - luaL_error(L,"value of const array cannot be changed"); - return 0; -} - -/* Map an array - * It assigns an array into the current module (or class) -*/ -TOLUA_API void tolua_array (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set) -{ - lua_pushstring(L,".get"); - lua_rawget(L,-2); - if (!lua_istable(L,-1)) - { - /* create .get table, leaving it at the top */ - lua_pop(L,1); - lua_newtable(L); - lua_pushstring(L,".get"); - lua_pushvalue(L,-2); - lua_rawset(L,-4); - } - lua_pushstring(L,name); - - lua_newtable(L); /* create array metatable */ - lua_pushvalue(L,-1); - lua_setmetatable(L,-2); /* set the own table as metatable (for modules) */ - lua_pushstring(L,"__index"); - lua_pushcfunction(L,get); - lua_rawset(L,-3); - lua_pushstring(L,"__newindex"); - lua_pushcfunction(L,set?set:const_array); - lua_rawset(L,-3); - - lua_rawset(L,-3); /* store variable */ - lua_pop(L,1); /* pop .get table */ -} - - -TOLUA_API void tolua_dobuffer(lua_State* L, char* B, unsigned int size, const char* name) { - - #ifdef LUA_VERSION_NUM /* lua 5.1 */ - luaL_loadbuffer(L, B, size, name) || lua_pcall(L, 0, 0, 0); - #else - lua_dobuffer(L, B, size, name); - #endif -}; - diff --git a/tolua++-1.0.93/src/lib/tolua_push.c b/tolua++-1.0.93/src/lib/tolua_push.c deleted file mode 100644 index 639414755..000000000 --- a/tolua++-1.0.93/src/lib/tolua_push.c +++ /dev/null @@ -1,171 +0,0 @@ -/* tolua: functions to push C values. -** Support code for Lua bindings. -** Written by Waldemar Celes -** TeCGraf/PUC-Rio -** 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. -*/ - -#include "tolua++.h" -#include "lauxlib.h" - -#include - -TOLUA_API void tolua_pushvalue (lua_State* L, int lo) -{ - lua_pushvalue(L,lo); -} - -TOLUA_API void tolua_pushboolean (lua_State* L, int value) -{ - lua_pushboolean(L,value); -} - -TOLUA_API void tolua_pushnumber (lua_State* L, lua_Number value) -{ - lua_pushnumber(L,value); -} - -TOLUA_API void tolua_pushstring (lua_State* L, const char* value) -{ - if (value == NULL) - lua_pushnil(L); - else - lua_pushstring(L,value); -} - -TOLUA_API void tolua_pushuserdata (lua_State* L, void* value) -{ - if (value == NULL) - lua_pushnil(L); - else - lua_pushlightuserdata(L,value); -} - -TOLUA_API void tolua_pushusertype (lua_State* L, void* value, const char* type) -{ - if (value == NULL) - lua_pushnil(L); - else - { - luaL_getmetatable(L, type); - lua_pushstring(L,"tolua_ubox"); - lua_rawget(L,-2); /* stack: mt ubox */ - if (lua_isnil(L, -1)) { - lua_pop(L, 1); - lua_pushstring(L, "tolua_ubox"); - lua_rawget(L, LUA_REGISTRYINDEX); - }; - lua_pushlightuserdata(L,value); - lua_rawget(L,-2); /* stack: mt ubox ubox[u] */ - if (lua_isnil(L,-1)) - { - lua_pop(L,1); /* stack: mt ubox */ - lua_pushlightuserdata(L,value); - *(void**)lua_newuserdata(L,sizeof(void *)) = value; /* stack: mt ubox u newud */ - lua_pushvalue(L,-1); /* stack: mt ubox u newud newud */ - lua_insert(L,-4); /* stack: mt newud ubox u newud */ - lua_rawset(L,-3); /* stack: mt newud ubox */ - lua_pop(L,1); /* stack: mt newud */ - /*luaL_getmetatable(L,type);*/ - lua_pushvalue(L, -2); /* stack: mt newud mt */ - lua_setmetatable(L,-2); /* stack: mt newud */ - - #ifdef LUA_VERSION_NUM - lua_pushvalue(L, TOLUA_NOPEER); - lua_setfenv(L, -2); - #endif - } - else - { - /* check the need of updating the metatable to a more specialized class */ - lua_insert(L,-2); /* stack: mt ubox[u] ubox */ - lua_pop(L,1); /* stack: mt ubox[u] */ - lua_pushstring(L,"tolua_super"); - lua_rawget(L,LUA_REGISTRYINDEX); /* stack: mt ubox[u] super */ - lua_getmetatable(L,-2); /* stack: mt ubox[u] super mt */ - lua_rawget(L,-2); /* stack: mt ubox[u] super super[mt] */ - if (lua_istable(L,-1)) - { - lua_pushstring(L,type); /* stack: mt ubox[u] super super[mt] type */ - lua_rawget(L,-2); /* stack: mt ubox[u] super super[mt] flag */ - if (lua_toboolean(L,-1) == 1) /* if true */ - { - lua_pop(L,3); /* mt ubox[u]*/ - lua_remove(L, -2); - return; - } - } - /* type represents a more specilized type */ - /*luaL_getmetatable(L,type); // stack: mt ubox[u] super super[mt] flag mt */ - lua_pushvalue(L, -5); /* stack: mt ubox[u] super super[mt] flag mt */ - lua_setmetatable(L,-5); /* stack: mt ubox[u] super super[mt] flag */ - lua_pop(L,3); /* stack: mt ubox[u] */ - } - lua_remove(L, -2); /* stack: ubox[u]*/ - } -} - -TOLUA_API void tolua_pushusertype_and_takeownership (lua_State* L, void* value, const char* type) -{ - tolua_pushusertype(L,value,type); - tolua_register_gc(L,lua_gettop(L)); -} - -TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v) -{ - lua_pushnumber(L,index); - lua_pushvalue(L,v); - lua_settable(L,lo); -} - -TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v) -{ - lua_pushnumber(L,index); - lua_pushboolean(L,v); - lua_settable(L,lo); -} - - -TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, lua_Number v) -{ - lua_pushnumber(L,index); - tolua_pushnumber(L,v); - lua_settable(L,lo); -} - -TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, const char* v) -{ - lua_pushnumber(L,index); - tolua_pushstring(L,v); - lua_settable(L,lo); -} - -TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v) -{ - lua_pushnumber(L,index); - tolua_pushuserdata(L,v); - lua_settable(L,lo); -} - -TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, const char* type) -{ - lua_pushnumber(L,index); - tolua_pushusertype(L,v,type); - lua_settable(L,lo); -} - -TOLUA_API void tolua_pushfieldusertype_and_takeownership (lua_State* L, int lo, int index, void* v, const char* type) -{ - lua_pushnumber(L,index); - tolua_pushusertype(L,v,type); - tolua_register_gc(L,lua_gettop(L)); - lua_settable(L,lo); -} - diff --git a/tolua++-1.0.93/src/lib/tolua_to.c b/tolua++-1.0.93/src/lib/tolua_to.c deleted file mode 100644 index 542ca67d1..000000000 --- a/tolua++-1.0.93/src/lib/tolua_to.c +++ /dev/null @@ -1,133 +0,0 @@ -/* tolua: funcitons to convert to C types -** Support code for Lua bindings. -** Written by Waldemar Celes -** TeCGraf/PUC-Rio -** 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. -*/ - -#include "tolua++.h" - -#include -#include - -TOLUA_API lua_Number tolua_tonumber (lua_State* L, int narg, lua_Number def) -{ - return lua_gettop(L) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tolua++-1.0.93/win32/tolualib/tolualib.vcproj.LAPTOPF.Kevin.user b/tolua++-1.0.93/win32/tolualib/tolualib.vcproj.LAPTOPF.Kevin.user deleted file mode 100644 index eaf548aa5..000000000 --- a/tolua++-1.0.93/win32/tolualib/tolualib.vcproj.LAPTOPF.Kevin.user +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/tolua++-1.0.93/win32/tolualib/tolualib.vcxproj b/tolua++-1.0.93/win32/tolualib/tolualib.vcxproj deleted file mode 100644 index f12bfda86..000000000 --- a/tolua++-1.0.93/win32/tolualib/tolualib.vcxproj +++ /dev/null @@ -1,80 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {AB745E71-04B2-454F-A806-A0D553DAE08C} - tolualib - - - - Application - true - MultiByte - - - StaticLibrary - false - true - MultiByte - - - - - - - - - - - - - tolua++ - - - - Level3 - Disabled - - - true - - - - - Level3 - MaxSpeed - true - true - ../../include;C:\Program Files (x86)\Lua\5.1\include;%(AdditionalIncludeDirectories) - - - true - true - true - C:\Program Files (x86)\Lua\5.1\lib - lua51.lib;%(AdditionalDependencies) - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tolua++-1.0.93/win32/tolualib/tolualib.vcxproj.filters b/tolua++-1.0.93/win32/tolualib/tolualib.vcxproj.filters deleted file mode 100644 index 99f8ce3b6..000000000 --- a/tolua++-1.0.93/win32/tolualib/tolualib.vcxproj.filters +++ /dev/null @@ -1,39 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - \ No newline at end of file diff --git a/tolua++-1.0.93/win32/tolualib/tolualib.vcxproj.user b/tolua++-1.0.93/win32/tolualib/tolualib.vcxproj.user deleted file mode 100644 index 4c1e1937c..000000000 --- a/tolua++-1.0.93/win32/tolualib/tolualib.vcxproj.user +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/tolua++-1.0.93/win32/vc7/clean.bat b/tolua++-1.0.93/win32/vc7/clean.bat deleted file mode 100644 index b8f4f2b2f..000000000 --- a/tolua++-1.0.93/win32/vc7/clean.bat +++ /dev/null @@ -1,15 +0,0 @@ -del *.ncb -del *.ilk -del *.lib -del *.exp -del *.map -del *.pdb -del *.bsc -del applog.txt -del tmpl83.00c.vcproj.LAPTOPF.Kevin.user -del *.suo /AH -del debug\*.* /Q -del release\*.* /Q -rd release /Q -rd debug /Q - diff --git a/tolua++-1.0.93/win32/vc7/toluapp.sln b/tolua++-1.0.93/win32/vc7/toluapp.sln deleted file mode 100644 index 1ab8be380..000000000 --- a/tolua++-1.0.93/win32/vc7/toluapp.sln +++ /dev/null @@ -1,48 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toluapp", "toluapp.vcproj", "{71891C1A-E328-4258-AC3F-6F9698C6D8B4}" - ProjectSection(ProjectDependencies) = postProject - {9DDCB327-0D20-460F-A7F8-DE038163CD63} = {9DDCB327-0D20-460F-A7F8-DE038163CD63} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tolualib", "..\tolualib\tolualib.vcproj", "{9DDCB327-0D20-460F-A7F8-DE038163CD63}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - withLua50_Debug|Win32 = withLua50_Debug|Win32 - withLua50_Release|Win32 = withLua50_Release|Win32 - withLua51_Debug|Win32 = withLua51_Debug|Win32 - withLua51_Release|Win32 = withLua51_Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.Debug|Win32.ActiveCfg = withLua51_Debug|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.Debug|Win32.Build.0 = withLua51_Debug|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.Release|Win32.ActiveCfg = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.Release|Win32.Build.0 = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug|Win32.ActiveCfg = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Debug|Win32.Build.0 = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release|Win32.ActiveCfg = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua50_Release|Win32.Build.0 = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug|Win32.ActiveCfg = withLua51_Debug|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Debug|Win32.Build.0 = withLua51_Debug|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release|Win32.ActiveCfg = withLua51_Release|Win32 - {71891C1A-E328-4258-AC3F-6F9698C6D8B4}.withLua51_Release|Win32.Build.0 = withLua51_Release|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.Debug|Win32.ActiveCfg = Debug|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.Debug|Win32.Build.0 = Debug|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.Release|Win32.ActiveCfg = Release|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.Release|Win32.Build.0 = Release|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua50_Debug|Win32.ActiveCfg = Debug|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua50_Debug|Win32.Build.0 = Debug|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua50_Release|Win32.ActiveCfg = Release|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua50_Release|Win32.Build.0 = Release|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua51_Debug|Win32.ActiveCfg = Debug|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua51_Debug|Win32.Build.0 = Debug|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua51_Release|Win32.ActiveCfg = Release|Win32 - {9DDCB327-0D20-460F-A7F8-DE038163CD63}.withLua51_Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/tolua++-1.0.93/win32/vc7/toluapp.vcproj b/tolua++-1.0.93/win32/vc7/toluapp.vcproj deleted file mode 100644 index 285bd2d42..000000000 --- a/tolua++-1.0.93/win32/vc7/toluapp.vcproj +++ /dev/null @@ -1,439 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tolua++-1.0.93/win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user b/tolua++-1.0.93/win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user deleted file mode 100644 index a2de0fbb2..000000000 --- a/tolua++-1.0.93/win32/vc7/toluapp.vcproj.LAPTOPF.Kevin.user +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/tolua++-1.0.93/win32/vc7/toluapp.vcxproj b/tolua++-1.0.93/win32/vc7/toluapp.vcxproj deleted file mode 100644 index 45601b36f..000000000 --- a/tolua++-1.0.93/win32/vc7/toluapp.vcxproj +++ /dev/null @@ -1,176 +0,0 @@ - - - - - withLua50_Debug - Win32 - - - withLua50_Release - Win32 - - - withLua51_Debug - Win32 - - - withLua51_Release - Win32 - - - - {71891C1A-E328-4258-AC3F-6F9698C6D8B4} - Win32Proj - - - - Application - MultiByte - - - Application - MultiByte - - - Application - MultiByte - - - Application - MultiByte - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - Debug\ - Debug\ - true - Release\ - Release\ - false - $(Configuration)\ - $(Configuration)\ - true - $(Configuration)\ - $(Configuration)\ - false - - - - Disabled - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - lua50.lib;%(AdditionalDependencies) - ..\..\bin\tolua++_d.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - $(OutDir)tolua++.pdb - Console - MachineX86 - - - - - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - lua50.lib;%(AdditionalDependencies) - ..\..\bin\tolua++.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - Console - true - true - MachineX86 - - - - - Disabled - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - Lua5.1.lib;%(AdditionalDependencies) - ..\..\bin\tolua++_d.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - $(OutDir)tolua++.pdb - Console - MachineX86 - - - - - ..\..\include;C:\Program Files (x86)\Lua\5.1\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - lua5.1.lib;%(AdditionalDependencies) - ..\..\bin\tolua++.exe - ..\..\lib;C:\Program Files (x86)\Lua\5.1\lib;%(AdditionalLibraryDirectories) - true - Console - true - true - MachineX86 - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tolua++-1.0.93/win32/vc7/toluapp.vcxproj.filters b/tolua++-1.0.93/win32/vc7/toluapp.vcxproj.filters deleted file mode 100644 index c23b20870..000000000 --- a/tolua++-1.0.93/win32/vc7/toluapp.vcxproj.filters +++ /dev/null @@ -1,45 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx - - - - - ソース ファイル - - - ソース ファイル - - - ソース ファイル - - - ソース ファイル - - - ソース ファイル - - - ソース ファイル - - - ソース ファイル - - - - - ソース ファイル - - - \ No newline at end of file diff --git a/tolua++-1.0.93/win32/vc7/toluapp.vcxproj.user b/tolua++-1.0.93/win32/vc7/toluapp.vcxproj.user deleted file mode 100644 index 4c1e1937c..000000000 --- a/tolua++-1.0.93/win32/vc7/toluapp.vcxproj.user +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file -- cgit v1.2.3