tolua-5.2.0/000755 000765 000767 00000000000 11717267062 012103 5ustar00celes000000 000000 tolua-5.2.0/bin/000755 000765 000767 00000000000 11717267062 012653 5ustar00celes000000 000000 tolua-5.2.0/config000644 000765 000767 00000001452 11717267062 013275 0ustar00celes000000 000000 # configuration file for making tolua # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ====================== # you need an ANSI C compiler. gcc is a popular one. CC= gcc CCPP = g++ WARN= -ansi -Wall -g # on SGI's, cc is ANSI. #CC= cc #WARN= -ansi -fullwarn # if your system doesn't have (or need) ranlib, change "ranlib" to "true". # on some systems, "ar s" does it. RANLIB= ranlib #RANLIB= ar s #RANLIB= true # this should work in all unix systems. AR= ar rcu # set lua path LUA=/usr/local LUAINC=$(LUA)/include LUALIB=$(LUA)/lib # == END OF USER SETTINGS. DO NOT CHANGE ANYTHING BELOW THIS LINE ============ INC= -I$(TOLUA)/include -I$(LUAINC) LIB= -L$(TOLUA)/lib -L$(LUALIB) #CFLAGS= -O2 $(WARN) $(INC) #CPPFLAGS= -O2 $(WARN) $(INC) CFLAGS= -g $(WARN) $(INC) CPPFLAGS= -g $(WARN) $(INC) tolua-5.2.0/include/000755 000765 000767 00000000000 11717267062 013526 5ustar00celes000000 000000 tolua-5.2.0/INSTALL000644 000765 000767 00000002122 11717267062 013131 0ustar00celes000000 000000 * Installation Building tolua on a Unix system should be very easy: 1. Edit "config" to suit your platform, if at all necessary. 2. Then, type "make". See below for instructions for Windows and Macintosh. * What you get If "make" 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. There is testing codes in src/tests and, if you are lucky, there is a manual page in html in ./doc. You don't need these directories for development. * Installation on Windows The instructions for building tolua on a Mac or Windows machine depend on the particular compiler you are using. The simplest way is to create a folder with all .c and .h files, and then create a project for the executable and the library, as follows: tolua.exe: all *.c *.h in src/bin. tolua.lib: all *.c *.h in src/lib. Under directory ./win32, there is a project sample for Visual C++ 6. tolua-5.2.0/._lib000755 000765 000765 00000000351 11717267062 014025 0ustar00celesceles000000 000000 Mac OS X  2ATTRQQcom.apple.quarantineq/0001;479e2d4a;Safari.app;BF668FF1-1293-46DF-A534-A3A7EEA701EC|com.apple.Safaritolua-5.2.0/lib/000755 000765 000767 00000000000 11717267062 012651 5ustar00celes000000 000000 tolua-5.2.0/._Makefile000644 000765 000765 00000000351 11717267062 014771 0ustar00celesceles000000 000000 Mac OS X  2ATTRQQcom.apple.quarantineq/0001;479e2d4a;Safari.app;BF668FF1-1293-46DF-A534-A3A7EEA701EC|com.apple.Safaritolua-5.2.0/Makefile000644 000765 000767 00000000347 11717267062 013547 0ustar00celes000000 000000 # makefile for tolua hierarchy tolua: cd src/lib; make all cd src/bin; make all tests: cd src/tests; make all all clean klean: cd src/lib; make $@ cd src/bin; make $@ cd src/tests; make $@ debug: cd src/bin; make debug tolua-5.2.0/MANIFEST000644 000765 000767 00000006566 11717267062 013251 0ustar00celes000000 000000 MANIFEST contents of tolua-5.2.0 distribution on Thu Feb 16 18:59:30 BRST 2012 tolua-5.2.0 tolua-5.2.0/INSTALL tolua-5.2.0/MANIFEST tolua-5.2.0/Makefile tolua-5.2.0/README tolua-5.2.0/bin tolua-5.2.0/bin/.DS_Store tolua-5.2.0/config tolua-5.2.0/include tolua-5.2.0/include/.DS_Store tolua-5.2.0/include/tolua.h tolua-5.2.0/lib tolua-5.2.0/src tolua-5.2.0/src/.DS_Store tolua-5.2.0/src/bin tolua-5.2.0/src/bin/.DS_Store tolua-5.2.0/src/bin/Makefile tolua-5.2.0/src/bin/lua tolua-5.2.0/src/bin/lua/CVS tolua-5.2.0/src/bin/lua/CVS/Entries tolua-5.2.0/src/bin/lua/CVS/Repository tolua-5.2.0/src/bin/lua/CVS/Root tolua-5.2.0/src/bin/lua/all.lua tolua-5.2.0/src/bin/lua/array.lua tolua-5.2.0/src/bin/lua/basic.lua tolua-5.2.0/src/bin/lua/class.lua tolua-5.2.0/src/bin/lua/clean.lua tolua-5.2.0/src/bin/lua/code.lua tolua-5.2.0/src/bin/lua/compat.lua tolua-5.2.0/src/bin/lua/container.lua tolua-5.2.0/src/bin/lua/declaration.lua tolua-5.2.0/src/bin/lua/define.lua tolua-5.2.0/src/bin/lua/doit.lua tolua-5.2.0/src/bin/lua/enumerate.lua tolua-5.2.0/src/bin/lua/feature.lua tolua-5.2.0/src/bin/lua/function.lua tolua-5.2.0/src/bin/lua/module.lua tolua-5.2.0/src/bin/lua/namespace.lua tolua-5.2.0/src/bin/lua/operator.lua tolua-5.2.0/src/bin/lua/package.lua tolua-5.2.0/src/bin/lua/typedef.lua tolua-5.2.0/src/bin/lua/variable.lua tolua-5.2.0/src/bin/lua/verbatim.lua tolua-5.2.0/src/bin/tolua.c tolua-5.2.0/src/bin/tolua.pkg tolua-5.2.0/src/bin/toluabind.c tolua-5.2.0/src/lib tolua-5.2.0/src/lib/.DS_Store tolua-5.2.0/src/lib/Makefile tolua-5.2.0/src/lib/tolua_event.c tolua-5.2.0/src/lib/tolua_event.h tolua-5.2.0/src/lib/tolua_is.c tolua-5.2.0/src/lib/tolua_map.c tolua-5.2.0/src/lib/tolua_push.c tolua-5.2.0/src/lib/tolua_to.c tolua-5.2.0/src/tests tolua-5.2.0/src/tests/.DS_Store tolua-5.2.0/src/tests/.tenum.c.swp tolua-5.2.0/src/tests/Makefile tolua-5.2.0/src/tests/myassert.lua tolua-5.2.0/src/tests/t.pkg tolua-5.2.0/src/tests/tarray.c tolua-5.2.0/src/tests/tarray.h tolua-5.2.0/src/tests/tarray.lua tolua-5.2.0/src/tests/tarray.pkg tolua-5.2.0/src/tests/tclass.cpp tolua-5.2.0/src/tests/tclass.h tolua-5.2.0/src/tests/tclass.lua tolua-5.2.0/src/tests/tclass.pkg tolua-5.2.0/src/tests/tconstant.cpp tolua-5.2.0/src/tests/tconstant.h tolua-5.2.0/src/tests/tconstant.lua tolua-5.2.0/src/tests/tconstant.pkg tolua-5.2.0/src/tests/tdirective.lua tolua-5.2.0/src/tests/tdirective.pkg tolua-5.2.0/src/tests/tdirectivelua.lua tolua-5.2.0/src/tests/tdirectivepkg.pkg tolua-5.2.0/src/tests/tenum.c tolua-5.2.0/src/tests/tenum.h tolua-5.2.0/src/tests/tenum.lua tolua-5.2.0/src/tests/tenum.pkg tolua-5.2.0/src/tests/tfunction.cpp tolua-5.2.0/src/tests/tfunction.h tolua-5.2.0/src/tests/tfunction.lua tolua-5.2.0/src/tests/tfunction.pkg tolua-5.2.0/src/tests/tinheritance.cpp tolua-5.2.0/src/tests/tinheritance.h tolua-5.2.0/src/tests/tinheritance.lua tolua-5.2.0/src/tests/tinheritance.pkg tolua-5.2.0/src/tests/tmodule.c tolua-5.2.0/src/tests/tmodule.h tolua-5.2.0/src/tests/tmodule.lua tolua-5.2.0/src/tests/tmodule.pkg tolua-5.2.0/src/tests/tnamespace.cpp tolua-5.2.0/src/tests/tnamespace.h tolua-5.2.0/src/tests/tnamespace.lua tolua-5.2.0/src/tests/tnamespace.pkg tolua-5.2.0/src/tests/tvararg.cpp tolua-5.2.0/src/tests/tvararg.h tolua-5.2.0/src/tests/tvararg.lua tolua-5.2.0/src/tests/tvararg.pkg tolua-5.2.0/src/tests/tvariable.c tolua-5.2.0/src/tests/tvariable.h tolua-5.2.0/src/tests/tvariable.lua tolua-5.2.0/src/tests/tvariable.pkg END OF MANIFEST tolua-5.2.0/README000644 000765 000767 00000002150 11717267062 012761 0ustar00celes000000 000000 This is tolua-5.2.0 This is tolua-5.1 * What is tolua? 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 API and tag method 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; 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. tolua can be downloaded from the sites below: http://www.tecgraf.puc-rio.br/~celes/tolua/ ftp://ftp.tecgraf.puc-rio.br/pub/users/celes/tolua/tolua.tar.gz * Installation See INSTALL. * Contacting the author tolua has been designed and implemented by Waldemar Celes. Send your comments, bug reports and anything else to celes@tecgraf.puc-rio.br. tolua-5.2.0/src/000755 000765 000767 00000000000 11717267062 012672 5ustar00celes000000 000000 tolua-5.2.0/src/._.DS_Store000644 000765 000765 00000000122 11717267062 015577 0ustar00celesceles000000 000000 Mac OS X  2 R tolua-5.2.0/src/.DS_Store000644 000765 000767 00000030004 11717267062 014352 0ustar00celes000000 000000 Bud1 clbool  @ @ @ @bindsclboollibbwspblobbplist00 \WindowBounds[ShowSidebar]ShowStatusBar[ShowPathbar[ShowToolbar\SidebarWidth_{{-7, 529}, {770, 454}} ".?@ UwidthYascendingYdateAdded#@(\dateModified#@0 .@T\epy  %*,-.7=?@AJRTUV_hijsGliblsvpblobkbplist00 EFG _viewOptionsVersion_showIconPreview_calculateAllSizesWcolumnsXtextSizeZsortColumnXiconSize_useRelativeDates  $).38=AXcomments^dateLastOpened[dateCreatedTsizeUlabelTkindWversionTname\dateModified  WvisibleUwidthYascendingUindex,  ! # & ( + - a 0 2d  5 7 s  : <K >  Wvisible  & D #@(\dateModified#@0 .@T\epy()+,.78:;=FGIJLUVXY[deghjstvwyIlibvSrnlongtestsdsclbool E DSDB ` @ @ @ 7 s  : <K >  Wvisible  & D #@(\dateModified#@0 .@T\epy()+,.78:;=FGIJLUVXY[deghjstvwyIlibvSrnlongtestsdsclbooltolua-5.2.0/src/bin/000755 000765 000767 00000000000 11717267062 013442 5ustar00celes000000 000000 tolua-5.2.0/src/lib/000755 000765 000767 00000000000 11717267062 013440 5ustar00celes000000 000000 tolua-5.2.0/src/tests/000755 000765 000767 00000000000 11717267062 014034 5ustar00celes000000 000000 tolua-5.2.0/src/tests/._.DS_Store000644 000765 000765 00000000122 11717267062 016741 0ustar00celesceles000000 000000 Mac OS X  2 R tolua-5.2.0/src/tests/.DS_Store000644 000765 000767 00000014004 11717267062 015516 0ustar00celes000000 000000 Bud1%  @ @ @ @ E%DSDB` @ @ @tolua-5.2.0/src/tests/.tenum.c.swp000644 000765 000767 00000030000 11717267062 016207 0ustar00celes000000 000000 b0VIM 7.3o9O+9pceleslmacairb.local~celes/Work/tolua/tolua-5.2/src/tests/tenum.c 3210#"! Utpad+oml\Z5} return 0; lua_close(L); luaL_dofile(L,"tenum.lua"); tolua_tenum_open(L); luaL_openlibs(L); lua_State* L = luaL_newstate(); int tolua_tenum_open (lua_State*);{int main (void)} return FALSE; else return TRUE; if (o == FIRST){Status checkenum (Order o)#include "tenum.h"#include "lauxlib.h"#include "lualib.h"tolua-5.2.0/src/tests/._Makefile000644 000765 000765 00000000351 11717267062 016722 0ustar00celesceles000000 000000 Mac OS X  2ATTRQQcom.apple.quarantineq/0001;479e2d4a;Safari.app;BF668FF1-1293-46DF-A534-A3A7EEA701EC|com.apple.Safaritolua-5.2.0/src/tests/Makefile000644 000765 000767 00000004632 11717267062 015501 0ustar00celes000000 000000 # makefile for tolua executable TOLUA=../.. TOLUAEXE = tolua include $(TOLUA)/config LIBS = -ltolua -llua EXE = tmodule tnamespace tclass tinheritance tconstant tvariable tfunction tarray tdirective tenum tvararg all: $(EXE) ./tmodule; ./tnamespace; ./tclass; ./tinheritance; ./tconstant; ./tvariable; ./tfunction; ./tarray; ./tdirective; ./tfunction; ./tenum; ./tvararg tarray: tarray.o tarraybind.o $(CC) $(CFLAGS) -o $@ tarray.o tarraybind.o $(TLIB) $(LIB) $(LIBS) tarraybind.c: tarray.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tvariable: tvariable.o tvariablebind.o $(CC) $(CFLAGS) -o $@ tvariable.o tvariablebind.o $(TLIB) $(LIB) $(LIBS) tvariablebind.c: tvariable.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tmodule: tmodule.o tmodulebind.o $(CC) $(CFLAGS) -o $@ tmodule.o tmodulebind.o $(TLIB) $(LIB) $(LIBS) tmodulebind.c: tmodule.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tnamespace: tnamespace.o tnamespacebind.o $(CCPP) $(CFLAGS) -o $@ tnamespace.o tnamespacebind.o $(TLIB) $(LIB) $(LIBS) tnamespacebind.cpp: tnamespace.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tdirective: tdirectivebind.o $(CC) $(CFLAGS) -o $@ tdirectivebind.o $(TLIB) $(LIB) $(LIBS) tdirectivebind.c: tdirective.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tfunction: tfunction.o tfunctionbind.o $(CCPP) $(CPPFLAGS) -o $@ tfunction.o tfunctionbind.o $(TLIB) $(LIB) $(LIBS) tfunctionbind.cpp: tfunction.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tconstant: tconstant.o tconstantbind.o $(CCPP) $(CPPFLAGS) -o $@ tconstant.o tconstantbind.o $(TLIB) $(LIB) $(LIBS) tconstantbind.cpp: tconstant.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tclass: tclass.o tclassbind.o $(CCPP) $(CPPFLAGS) -o $@ tclass.o tclassbind.o $(TLIB) $(LIB) $(LIBS) tclassbind.cpp: tclass.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tinheritance: tinheritance.o tinheritancebind.o $(CCPP) $(CPPFLAGS) -o $@ tinheritance.o tinheritancebind.o $(TLIB) $(LIB) $(LIBS) tinheritancebind.cpp: tinheritance.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tenum: tenum.o tenumbind.o $(CC) $(CPPFLAGS) -o $@ tenum.o tenumbind.o $(TLIB) $(LIB) $(LIBS) tenumbind.c: tenum.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< tvararg: tvararg.o tvarargbind.o $(CCPP) $(CPPFLAGS) -o $@ tvararg.o tvarargbind.o $(TLIB) $(LIB) $(LIBS) tvarargbind.cpp: tvararg.pkg $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< .cpp.o: $(CCPP) -c $(CPPFLAGS) -o $@ $< .pkg.cpp: $(TOLUA)/bin/$(TOLUAEXE) -o $@ $< clean: rm -f t*bind.* rm -f *.o klean: rm -f $(EXE) tolua-5.2.0/src/tests/myassert.lua000644 000765 000767 00000000201 11717267062 016377 0ustar00celes000000 000000 function assert (status,msg) if not status then print("ERROR: " .. (msg or "assertion failed")) error() end end tolua-5.2.0/src/tests/t.pkg000644 000765 000767 00000000031 11717267062 014774 0ustar00celes000000 000000 $typedef T* M; M* f (); tolua-5.2.0/src/tests/tarray.c000644 000765 000767 00000001177 11717267062 015510 0ustar00celes000000 000000 #include "lualib.h" #include "lauxlib.h" #include "tarray.h" int a[10] = {1,2,3,4,5,6,7,8,9,10}; Point p[10] = {{0,1},{1,2},{2,3},{3,4},{4,5},{5,6},{6,7},{7,8},{8,9},{9,10}}; Point* pp[10]; int ma[10]; Point mp[10]; Point* mpp[10]; Array array; Array* parray = &array; int main (void) { int tolua_tarray_open (lua_State*); lua_State* L = luaL_newstate(); int i; for (i=0; i<10; ++i) { pp[i] = &p[i]; ma[i] = a[i]; mp[i] = p[i]; mpp[i] = pp[i]; array.a[i] = a[i]; array.p[i] = p[i]; array.pp[i] = pp[i]; } luaL_openlibs(L); tolua_tarray_open(L); luaL_dofile(L,"tarray.lua"); lua_close(L); return 0; } tolua-5.2.0/src/tests/tarray.h000644 000765 000767 00000000511 11717267062 015504 0ustar00celes000000 000000 typedef struct Point Point; struct Point { float x; float y; }; extern int a[10]; extern Point p[10]; extern Point* pp[10]; extern int ma[10]; extern Point mp[10]; extern Point* mpp[10]; typedef struct Array Array; struct Array { int a[10]; Point p[10]; Point* pp[10]; }; extern Array array; extern Array* parray; tolua-5.2.0/src/tests/tarray.lua000644 000765 000767 00000001121 11717267062 016034 0ustar00celes000000 000000 dofile("myassert.lua") for i=1,10 do assert(a[i]==i) end for i=2,10 do assert(p[i-1].y==p[i].x) end for i=1,10 do assert(M.a[i]==i) end for i=2,10 do assert(M.p[i-1].y==M.p[i].x) end for i=1,10 do assert(pp[i].x==M.p[i].x and p[i].y == M.pp[i].y) end for i=1,10 do assert(array.a[i] == parray.a[i]) assert(array.p[i].x == parray.pp[i].x and array.p[i].y == parray.pp[i].y) end for i=1,10 do array.a[i] = a[10-i+1] M.a[i] = 10-i+1 assert(array.a[i]==M.a[i]) end for i=2,10 do array.p[i] = array.pp[1] assert(array.p[i].x==0 and array.p[i].y==1) end print("Array test OK") tolua-5.2.0/src/tests/tarray.pkg000644 000765 000767 00000000506 11717267062 016042 0ustar00celes000000 000000 $#include "tarray.h" struct Point { float x; float y; }; extern int a[10]; extern const Point p[10]; extern Point* pp[10]; module M { extern int ma[10]@a; extern const Point mp[10]@p; extern Point* mpp[10]@pp; } struct Array { int a[10]; Point p[10]; Point* pp[10]; }; extern Array array; extern Array* parray; tolua-5.2.0/src/tests/tclass.cpp000755 000765 000767 00000000767 11717267062 016046 0ustar00celes000000 000000 extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } #include "tclass.h" #include Tst_A* Tst_A::last; Tst_B* Tst_B::last; Tst_C* Tst_C::last; int main () { Tst_B* b = new Tst_B; // instance used in Lua code int tolua_tclass_open (lua_State*); lua_State* L = luaL_newstate(); luaL_openlibs(L); tolua_tclass_open(L); if (luaL_dofile(L,"tclass.lua")) { printf("Error: %s\n",lua_tostring(L,-1)); } lua_close(L); delete b; return 0; } tolua-5.2.0/src/tests/tclass.h000644 000765 000767 00000002037 11717267062 015500 0ustar00celes000000 000000 #include class Tst_Dummy { }; class Tst_A { public: static Tst_A* last; Tst_A () {last = this;} virtual ~Tst_A() {} virtual const char* a () { return "A"; } class Tst_AA { public: Tst_AA () {} virtual ~Tst_AA () { } const char* aa () { return "AA"; } }; class Tst_BB : public Tst_AA { public: Tst_BB () {} virtual ~Tst_BB () {} Tst_AA* Base () { return this; } const char* classname () const { return "Tst_BB"; } }; }; class Tst_B : public Tst_A { public: static Tst_B* last; Tst_B () {last = this;} virtual ~Tst_B () { } virtual const char* b () { return "B"; } }; class Tst_C : public Tst_B { int i; public: static Tst_C* last; Tst_C (int n) : i(n) {last = this;} virtual ~Tst_C () { printf("deleting C: %d\n",i); } virtual const char* c () { return "C"; } }; inline Tst_A::Tst_AA* Tst_create_aa () { return new Tst_A::Tst_AA(); } inline bool Tst_is_aa (Tst_A::Tst_AA* obj) { return true; } class D // private destructor { ~D () {} public: D () {} }; tolua-5.2.0/src/tests/tclass.lua000644 000765 000767 00000002467 11717267062 016041 0ustar00celes000000 000000 dofile("myassert.lua") -- type convertion tests assert(tolua.type(A.last) == 'Tst_A') -- first time the object is mapped assert(tolua.type(B.last) == 'Tst_B') -- type convertion to specialized type assert(tolua.type(A.last) == 'Tst_B') -- no convertion: obj already mapped as B local a = A:new() assert(tolua.type(A.last) == 'Tst_A') -- no type convertion: same type local b = B:new() assert(tolua.type(A.last) == 'Tst_B') -- no convertion: obj already mapped as B local c = luaC:new(0) assert(tolua.type(A.last) == 'Tst_C') -- no convertion: obj already mapped as C assert(tolua.type(luaC.last) == 'Tst_C') local aa = A.AA:new() local bb = A.BB:new() local xx = create_aa() -- casting test local base = bb:Base(); local derived = tolua.cast(base,"Tst_A::Tst_BB"); assert(derived:classname()=="Tst_BB") -- method calling tests assert(a:a() == 'A') assert(b:a() == 'A') assert(b:b() == 'B') assert(c:a() == 'A') assert(c:b() == 'B') assert(c:c() == 'C') assert(aa:aa() == 'AA') assert(bb:aa() == bb:Base():aa()) assert(xx:aa() == 'AA') assert(is_aa(bb) == true) -- test ownershipping handling -- should delete objects: 6 7 8 9 10 (it may vary!) remark = [[ local set = {} for i=1,10 do local c = luaC:new(i) tolua.takeownership(c) set[i] = c end for i=1,5 do tolua.releaseownership(set[i]) end --]] print("Class test OK") tolua-5.2.0/src/tests/tclass.pkg000644 000765 000767 00000001350 11717267062 016027 0ustar00celes000000 000000 $#include "tclass.h" $renaming ^Tst_ @ class Tst_Dummy; class Tst_A { static Tst_A* last; Tst_A (); virtual const char* a (); class Tst_AA { Tst_AA () {} ~Tst_AA () {} const char* aa () { return "AA"; } }; class Tst_BB : public Tst_AA { Tst_BB () {} ~Tst_BB () {} Tst_AA* Base () { return this; } const char* classname () const { return "Tst_BB"; } }; }; class Tst_B : public Tst_A { static Tst_B* last; Tst_B (); virtual const char* b (); }; class Tst_C@luaC : public Tst_B { static Tst_C* last; Tst_C (int n); ~Tst_C (); virtual const char* c (); }; class D // private destructor { D () {} }; Tst_A::Tst_AA* Tst_create_aa (); bool Tst_is_aa (Tst_A::Tst_AA* obj); tolua-5.2.0/src/tests/tconstant.cpp000644 000765 000767 00000000433 11717267062 016555 0ustar00celes000000 000000 extern "C" { #include "lualib.h" #include "lauxlib.h" } #include "tconstant.h" int main (void) { int tolua_tconstant_open (lua_State*); lua_State* L = luaL_newstate(); luaL_openlibs(L); tolua_tconstant_open(L); luaL_dofile(L,"tconstant.lua"); lua_close(L); return 0; } tolua-5.2.0/src/tests/tconstant.h000644 000765 000767 00000000345 11717267062 016224 0ustar00celes000000 000000 #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; #define M_FIRST 1 #define M_SECOND 2 enum { M_ONE = 1, M_TWO = 2 }; class A { public: #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; }; tolua-5.2.0/src/tests/tconstant.lua000644 000765 000767 00000000340 11717267062 016551 0ustar00celes000000 000000 dofile("myassert.lua") assert(FIRST==M.FIRST) assert(FIRST==A.FIRST) assert(SECOND==M.SECOND) assert(SECOND==A.SECOND) assert(ONE==M.ONE) assert(ONE==A.ONE) assert(TWO==M.TWO) assert(TWO==A.TWO) print("Constant test OK") tolua-5.2.0/src/tests/tconstant.pkg000644 000765 000767 00000000441 11717267062 016553 0ustar00celes000000 000000 $#include "tconstant.h" #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; module M { #define M_FIRST@FIRST 1 #define M_SECOND@SECOND 2 enum { M_ONE@ONE = 1, M_TWO@TWO = 2 }; } class A { public: #define FIRST 1 #define SECOND 2 enum { ONE = 1, TWO = 2 }; }; tolua-5.2.0/src/tests/tdirective.lua000644 000765 000767 00000000141 11717267062 016675 0ustar00celes000000 000000 dofile("myassert.lua") assert(a==3) assert(A==4) assert(func()==5) print("Directive test OK") tolua-5.2.0/src/tests/tdirective.pkg000644 000765 000767 00000000501 11717267062 016675 0ustar00celes000000 000000 $#include "lualib.h" $#include "lauxlib.h" $int a; $extern int a; $int main (void) ${ $ lua_State* L = luaL_newstate(); $ luaopen_base(L); $ tolua_tdirective_open(L); $ luaL_dofile(L,"tdirective.lua"); $ lua_close(L); $ return 0; $} $pfile "tdirectivepkg.pkg" $< a = 3; $> $[ A = 4 $] $lfile "tdirectivelua.lua" tolua-5.2.0/src/tests/tdirectivelua.lua000644 000765 000767 00000000067 11717267062 017406 0ustar00celes000000 000000 dofile("myassert.lua") function func () return 5 end tolua-5.2.0/src/tests/tdirectivepkg.pkg000644 000765 000767 00000000017 11717267062 017401 0ustar00celes000000 000000 extern int a; tolua-5.2.0/src/tests/tenum.c000644 000765 000767 00000000521 11717267062 015326 0ustar00celes000000 000000 #include "lualib.h" #include "lauxlib.h" #include "tenum.h" Status checkenum (Order o) { if (o == FIRST) return TRUE; else return FALSE; } int main (void) { int tolua_tenum_open (lua_State*); lua_State* L = luaL_newstate(); luaL_openlibs(L); tolua_tenum_open(L); luaL_dofile(L,"tenum.lua"); lua_close(L); return 0; } tolua-5.2.0/src/tests/tenum.h000644 000765 000767 00000000226 11717267062 015335 0ustar00celes000000 000000 #ifndef tenum_h #define tenum_h typedef enum { FIRST, SECOND } Order; typedef enum { FALSE, TRUE } Status; Status checkenum (Order o); #endiftolua-5.2.0/src/tests/tenum.lua000644 000765 000767 00000000207 11717267062 015666 0ustar00celes000000 000000 dofile("myassert.lua") local a = FIRST local b = SECOND assert(checkenum(a)==TRUE) assert(checkenum(b)==FALSE) print("Enum test OK")tolua-5.2.0/src/tests/tenum.pkg000644 000765 000767 00000000176 11717267062 015673 0ustar00celes000000 000000 $#include "tenum.h" enum Order { FIRST, SECOND }; typedef enum { FALSE, TRUE } Status; Status checkenum (Order o); tolua-5.2.0/src/tests/tfunction.cpp000644 000765 000767 00000000433 11717267062 016551 0ustar00celes000000 000000 extern "C" { #include "lualib.h" #include "lauxlib.h" } #include "tfunction.h" int main (void) { int tolua_tfunction_open (lua_State*); lua_State* L = luaL_newstate(); luaL_openlibs(L); tolua_tfunction_open(L); luaL_dofile(L,"tfunction.lua"); lua_close(L); return 0; } tolua-5.2.0/src/tests/tfunction.h000644 000765 000767 00000006001 11717267062 016213 0ustar00celes000000 000000 #ifndef tfunction_h #define tfunction_h #include typedef enum { FIRST = 1, SECOND = 2 } Order; class Point { float m_x; float m_y; public: enum Error { SUCCESS = 0, ERROR = 1 }; Point (float x=0, float y=0) : m_x(x), m_y(y) { } virtual ~Point () { } void set (float x, float y) { m_x = x, m_y = y; } void set (float v[2]=0) { m_x = v[0], m_y=v[1]; } void setpointer (Point* p) { *this = *p; } void setref (Point& p) { *this = p; } void setvalue (Point p) { *this = p; } void setconst (const Point* p) { *this = *p; } void get (float* x, float* y) const { *x = m_x, *y = m_y; } void get (float v[2]) const { v[0] = m_x, v[1] = m_y; } Point* getpointer () { return this; } Point& getref () { return *this; } Point getvalue () { return *this; } const Point* getconst () const { return this; } Point operator+ (const Point& p) const { return Point(m_x+p.m_x,m_y+p.m_y); } Point operator- (const Point& p) const { return Point(m_x-p.m_x,m_y-p.m_y); } Point operator* (const Point& p) const { return Point(m_x*p.m_x,m_y*p.m_y); } Point operator/ (float n) const { return Point(m_x/n,m_y/n); } bool operator< (const Point& p) const { if (m_x < p.m_x) return true; else if (m_x > p.m_x) return false; else return m_y < p.m_y; } bool operator<= (const Point& p) const { return operator<(p) || operator==(p); } bool operator== (const Point& p) const { return m_x==p.m_x && m_y==p.m_y; } float operator[] (int i) const { return (i==0) ? m_x : m_y; } float& operator[] (int i) { return (i==0) ? m_x : m_y; } static Error echo (Error e) { return e; } }; inline Point add (const Point& p1, const Point& p2) { return p1+p2; } inline Point sub (const Point& p1, const Point& p2) { return p1-p2; } inline Point mult (const Point& p1, const Point& p2) { return p1*p2; } inline Point div (const Point& p1, float n) { return p1/n; } inline void getpoint (const Point* p, float* x, float* y) { p->get(x,y); } inline void setpoint (Point* p, float x=0, float y=0) { p->set(x,y); } inline Point average (int n, Point v[]) { Point p(0,0); for (int i=0; iq) assert(t>=q) local p = Point:new(1,2) assert(p[1]==1 and p[2]==2) p[1]=3; p[2] = p[2]+2 local x, y = p:get() assert(x==3 and y==4) local n = 3 local v = {Point:new(0,1), Point:new(2,3), Point:new(4,5)} local m = average(n,v) local c = averagepointer(n,v) local t = {} copyvector(n,v,t) local l = Point:new() for i=1,n do assert(v[i]==t[i]) l[1] = l[1] + v[i][1] l[2] = l[2] + v[i][2] end l = l/n assert(m==l) assert(c==l) assert(Point.SUCCESS==Point:echo(Point.SUCCESS)) assert(Point.ERROR==Point:echo(Point.ERROR)) assert(FIRST==invert(SECOND)) assert(SECOND==invert(FIRST)) print("Function test OK") tolua-5.2.0/src/tests/tfunction.pkg000644 000765 000767 00000003224 11717267062 016551 0ustar00celes000000 000000 $#include "tfunction.h" typedef enum { FIRST = 1, SECOND = 2 } Order; class Point { enum Error { SUCCESS = 0, ERROR = 1 }; Point (float x=0, float y=0); virtual ~Point (); void set (float x, float y); void set (float v[2]=0); void setpointer (Point* p); void setref (Point& p); void setvalue (Point p); void setconst (const Point* p); void get (float* x=0, float* y=0) const; void get (float v[2]=0) const; Point* getpointer (); Point& getref (); Point getvalue (); const Point* getconst () const; Point operator+ (const Point& p) const; Point operator- (const Point& p) const; Point operator* (const Point& p) const; Point operator/ (float n) const; bool operator< (const Point& p) const; bool operator<= (const Point& p) const; bool operator== (const Point& p) const; float operator[] (int i) const; float& operator[] (int i); static Error echo (Error e); }; module alg { Point add (const Point& p1, const Point& p2); Point sub (const Point& p1, const Point& p2); Point mult (const Point& p1, const Point& p2); Point div (const Point& p1, float n); } void getpoint (const Point* p, float* x=0, float* y=0); void setpoint (Point* p, float x=0, float y=0); inline Point average (int n, Point v[n]); inline Point averagepointer (int n, Point* v[n]); inline void copyvector (int n, const Point v[n], Point u[n]=(u+i)); inline Order invert (Order o); $cfile "tfunction.h" /* class ColorPoint : public Point { ColorPoint (float px, float py, float cr=0.0f, float cg=0.0f, float cb=0.0f); virtual ~ColorPoint (); virtual void getcolor (float* red, float *green, float *blue) const; static const Point* MakeRed (float x, float y); }; */ tolua-5.2.0/src/tests/tinheritance.cpp000755 000765 000767 00000000432 11717267062 017217 0ustar00celes000000 000000 extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } int main () { int tolua_tinheritance_open (lua_State*); lua_State* L = luaL_newstate(); luaL_openlibs(L); tolua_tinheritance_open(L); luaL_dofile(L,"tinheritance.lua"); lua_close(L); return 0; } tolua-5.2.0/src/tests/tinheritance.h000644 000765 000767 00000000740 11717267062 016663 0ustar00celes000000 000000 #include class A { public: A () {} virtual ~A() {} virtual const char* aname () { return "A"; } virtual const char* name () { return "A"; } }; class B : public A { public: B () {} virtual ~B() {} virtual const char* name () { return "B"; } }; class C : public B { public: C () {} virtual ~C() {} virtual const char* name () { return "C"; } }; class D : public C { public: D () {} virtual ~D() {} virtual const char* name () { return "D"; } }; tolua-5.2.0/src/tests/tinheritance.lua000644 000765 000767 00000000437 11717267062 017220 0ustar00celes000000 000000 dofile("myassert.lua") -- type convertion tests local a = A:new() local b = B:new() local c = C:new() local d = D:new() assert(b:name()=="B") assert(b:aname()=="A") assert(c:name()=="C") assert(c:aname()=="A") assert(d:name()=="D") assert(d:aname()=="A") print("Inheritance test OK") tolua-5.2.0/src/tests/tinheritance.pkg000644 000765 000767 00000000750 11717267062 017216 0ustar00celes000000 000000 $#include "tinheritance.h" class A { public: A () {} virtual ~A() {} virtual const char* aname () { return "A"; } virtual const char* name () { return "A"; } }; class B : public A { public: B () {} virtual ~B() {} virtual const char* name () { return "B"; } }; class C : public B { public: C () {} virtual ~C() {} virtual const char* name () { return "C"; } }; class D : public C { public: D () {} virtual ~D() {} virtual const char* name () { return "D"; } }; tolua-5.2.0/src/tests/tmodule.c000644 000765 000767 00000000455 11717267062 015655 0ustar00celes000000 000000 #include "lualib.h" #include "lauxlib.h" #include "tmodule.h" int a = 1; int b = 2; int c = 3; int d = 4; int main () { int tolua_tmodule_open (lua_State*); lua_State* L = luaL_newstate(); luaL_openlibs(L); tolua_tmodule_open(L); luaL_dofile(L,"tmodule.lua"); lua_close(L); return 0; } tolua-5.2.0/src/tests/tmodule.h000644 000765 000767 00000000115 11717267062 015653 0ustar00celes000000 000000 #include extern int a; extern int b; extern int c; extern int d; tolua-5.2.0/src/tests/tmodule.lua000644 000765 000767 00000000552 11717267062 016212 0ustar00celes000000 000000 dofile("myassert.lua") -- test valid access assert(A.a==1) assert(A.B.b==2) assert(A.B.C.c==3) -- test invalid access assert(A.B.a==nil) -- no inheritance assert(A.B.C.a==nil) assert(A.b==nil) -- no access the inner module assert(A.c==nil) assert(A.B.c==nil) -- test variables appended to existing modules assert(A.d==4) print("Module test OK") tolua-5.2.0/src/tests/tmodule.pkg000644 000765 000767 00000000222 11717267062 016204 0ustar00celes000000 000000 $#include "tmodule.h" module A { extern int a; module B { extern int b; module C { extern int c; } } } module A { extern int d; } tolua-5.2.0/src/tests/tnamespace.cpp000644 000765 000767 00000000517 11717267062 016663 0ustar00celes000000 000000 extern "C" { #include "lualib.h" #include "lauxlib.h" } #include "tnamespace.h" int A::a = 1; int A::B::b = 2; int A::B::C::c = 3; int main () { int tolua_tnamespace_open (lua_State*); lua_State* L = luaL_newstate(); luaL_openlibs(L); tolua_tnamespace_open(L); luaL_dofile(L,"tnamespace.lua"); lua_close(L); return 0; } tolua-5.2.0/src/tests/tnamespace.h000644 000765 000767 00000000170 11717267062 016323 0ustar00celes000000 000000 namespace A { enum {FIRST=1}; extern int a; namespace B { extern int b; namespace C { extern int c; } } } tolua-5.2.0/src/tests/tnamespace.lua000644 000765 000767 00000000456 11717267062 016664 0ustar00celes000000 000000 dofile("myassert.lua") -- test valid access assert(A.a==1) assert(A.B.b==2) assert(A.B.C.c==3) -- test invalid access assert(A.B.a==nil) -- no inheritance assert(A.B.C.a==nil) assert(A.b==nil) -- no access the inner module assert(A.c==nil) assert(A.B.c==nil) print("Namespace test OK") tolua-5.2.0/src/tests/tnamespace.pkg000644 000765 000767 00000000155 11717267062 016660 0ustar00celes000000 000000 $#include "tnamespace.h" namespace A { int a; namespace B { int b; namespace C { int c; } } } tolua-5.2.0/src/tests/tvararg.cpp000644 000765 000767 00000001102 11717267062 016200 0ustar00celes000000 000000 extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } #include "tvararg.h" #include #include int B::n = 0; static void check (void) { assert(B::n == 0); } int main () { int tolua_tvararg_open (lua_State*); atexit(check); lua_State* L = luaL_newstate(); luaL_openlibs(L); tolua_tvararg_open(L); lua_pushstring(L, "tolua_ubox"); lua_rawget(L, LUA_REGISTRYINDEX); lua_setglobal(L, "ubox"); if (luaL_dofile(L,"tvararg.lua")) { printf("Error: %s\n",lua_tostring(L,-1)); } lua_close(L); return 0; } tolua-5.2.0/src/tests/tvararg.h000644 000765 000767 00000000736 11717267062 015661 0ustar00celes000000 000000 #include struct B { static int n; B() {++n; } ~B() {--n; } }; class A { double v[3]; public: A() { v[0]=1.0; v[1]=2.0; v[2]=3.0;} double get (int i) { return v[i]; } int bounce (int i, int* j, int* k) { *k = i; return i; } double add (lua_State* L) { double a = 0.0; int n=2; while (lua_isnumber(L, n)) { a += lua_tonumber(L, n); ++n; } return a; } B* GetB () { return new B(); } }; tolua-5.2.0/src/tests/tvararg.lua000644 000765 000767 00000000352 11717267062 016205 0ustar00celes000000 000000 local a = A:new() local b = a:GetB() local t = {} for i = 1, 100 do t[i] = a:GetB() local a, b, c = a:bounce(i,i) assert(a==i and b==i and c==i) end t = nil b = nil collectgarbage("collect") assert(B.n == 0) print("VarArg OK") tolua-5.2.0/src/tests/tvararg.pkg000644 000765 000767 00000000355 11717267062 016210 0ustar00celes000000 000000 $#include "tvararg.h" struct B { static int n; B(); ~B(); }; class A { A(); double get (int i) ; tolua_index bounce (tolua_index i, tolua_index *j, tolua_index* k=0); double add (lua_State* L); tolua_own B* GetB (); }; tolua-5.2.0/src/tests/tvariable.c000644 000765 000767 00000001422 11717267062 016150 0ustar00celes000000 000000 #include "lualib.h" #include "lauxlib.h" #include "tvariable.h" int i = 1; float f = 2.0f;; double d = 3.0; char* s = "Hello world"; void* v = (void*)1; char n[64] = "Hi there"; A a = {11,12.0f,13.0,"Hello world from class",(void*)1,"Hi there from class"}; B* b; U u; int mi = 21; float mf = 22.0f; double md = 23.0; char* ms = "Hello world in module"; void* mv = NULL; char mn[64] = "Hi there in module"; A ma = {31,32.0f,33.0,"Hello world from class in module", NULL,"Hi there from class in module"}; B* mb; int main (void) { int tolua_tvariable_open (lua_State*); lua_State* L = luaL_newstate(); B bb = {a,NULL}; B bbb = {ma,&bb}; b = &bb; mb = &bbb; luaL_openlibs(L); tolua_tvariable_open(L); luaL_dofile(L,"tvariable.lua"); lua_close(L); return 0; } tolua-5.2.0/src/tests/tvariable.h000644 000765 000767 00000000720 11717267062 016155 0ustar00celes000000 000000 typedef struct A A; typedef struct B B; typedef union U U; struct A { int i; float f; double d; char* s; void* v; char n[64]; }; union U { int i; float f; }; struct B { A a; B* b; }; extern int i; extern float f; extern double d; extern char* s; extern void* v; extern char n[64]; extern A a; extern B* b; extern U u; extern int mi; extern float mf; extern double md; extern char* ms; extern void* mv; extern char mn[64]; extern A ma; extern B* mb; tolua-5.2.0/src/tests/tvariable.lua000644 000765 000767 00000002752 11717267062 016516 0ustar00celes000000 000000 dofile("myassert.lua") assert(i==1) assert(f==2) assert(d==3) assert(s=="Hello world") assert(n=="Hi there") n = "Hello" assert(n=="Hello") assert(a.i==11) assert(a.f==12) assert(a.d==13) assert(a.s=="Hello world from class") assert(a.n=="Hi there from class") a.n = "Hello from class" assert(a.n=="Hello from class") assert(v==a.v) u.i = 2 assert(u.i==2) u.f = 2 assert(u.f==2) assert(u.i~=2) assert(M.mi==21) assert(M.mf==22) assert(M.md==23) assert(M.ms=="Hello world in module") assert(M.mn=="Hi there in module") M.mn = "Hello in module" assert(M.mn=="Hello in module") assert(M.mv==nil) assert(M.ma.i==31) assert(M.ma.f==32) assert(M.ma.d==33) assert(M.ma.s=="Hello world from class in module") assert(M.ma.n=="Hi there from class in module") M.ma.n = "Hello from class in module" assert(M.ma.n=="Hello from class in module") assert(M.ma.v==nil) assert(a.i==b.a.i) assert(a.f==b.a.f) assert(a.d==b.a.d) assert(a.s==b.a.s) assert(a.v==b.a.v) assert(b.b==nil) assert(M.ma.i==M.mb.a.i) assert(M.ma.f==M.mb.a.f) assert(M.ma.d==M.mb.a.d) assert(M.ma.s==M.mb.a.s) assert(M.ma.v==M.mb.a.v) assert(a.i==M.mb.b.a.i) assert(a.f==M.mb.b.a.f) assert(a.d==M.mb.b.a.d) assert(a.s==M.mb.b.a.s) assert(a.v==M.mb.b.a.v) assert(M.mb.b.b==nil) assert(s~=rawget(_G,"s")) -- because s represents a C variable s = "Hello" assert(s==rawget(_G,"s")) -- because s is mapped as const f = 25.0 assert(f~=rawget(_G,"f")) -- because f represents a C variable b.a.i = 5 assert(b.a.i==M.mb.b.a.i) print("Variable test OK") tolua-5.2.0/src/tests/tvariable.pkg000644 000765 000767 00000000730 11717267062 016510 0ustar00celes000000 000000 $#include "tvariable.h" struct A { int i; float f; double d; char* s; void* v; char n[64]; }; struct B { A a; B* b; }; union U { int i; float f; }; extern int i; extern float f; extern double d; extern const char* s; extern void* v; extern char n[64]; extern A a; extern B* b; extern U u; module M { extern int mi; extern float mf; extern double md; extern const char* ms; extern void* mv; extern const char mn[64]; extern A a; extern A ma; extern B* mb; } tolua-5.2.0/src/lib/._.DS_Store000644 000765 000765 00000000122 11717267062 016345 0ustar00celesceles000000 000000 Mac OS X  2 R tolua-5.2.0/src/lib/.DS_Store000644 000765 000767 00000014004 11717267062 015122 0ustar00celes000000 000000 Bud1%  @ @ @ @ E%DSDB` @ @ @tolua-5.2.0/src/lib/Makefile000644 000765 000767 00000000424 11717267062 015100 0ustar00celes000000 000000 # makefile for tolua library TOLUA=../.. include $(TOLUA)/config OBJS= \ tolua_event.o \ tolua_is.o \ tolua_map.o \ tolua_push.o \ tolua_to.o T= $(TOLUA)/lib/libtolua.a all: $T $T: $(OBJS) $(AR) $@ $(OBJS) $(RANLIB) $@ clean: rm -f $(OBJS) klean: rm -f $T tolua-5.2.0/src/lib/._tolua_event.c000644 000765 000765 00000000341 11717267062 017356 0ustar00celesceles000000 000000 Mac OS X  2ATTRIIcom.apple.quarantineq/0001;4f3c168e;Mail;B0B98B99-1A0B-48E4-B489-A891C5693194|com.apple.mailtolua-5.2.0/src/lib/tolua_event.c000644 000765 000767 00000027403 11717267062 016137 0ustar00celes000000 000000 /* tolua: event functions ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: tolua_event.c,v 1.7 2011/01/13 13:43:46 fabraham 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. */ #include #include #include #include "tolua.h" /* Store at peer * It stores, creating the corresponding table if needed, * the pair key/value in the corresponding peer table */ static void storeatpeer (lua_State* L, int index) { /* stack: key value (to be stored) */ lua_pushstring(L,"tolua_peer"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: k v peer */ lua_pushvalue(L, index); lua_rawget(L,-2); /* stack: k v peer peer[u] */ if (!lua_istable(L,-1)) { lua_pop(L,1); /* stack: k v peer */ lua_newtable(L); /* stack: k v peer table */ lua_pushvalue(L,index); lua_pushvalue(L,-2); /* stack: k v peer table u table */ lua_rawset(L,-4); /* stack: k v peer peer[u]=table */ } lua_insert(L,-4); /* put table before k */ lua_pop(L,1); /* pop peer */ lua_rawset(L,-3); /* store at table */ lua_pop(L,1); /* pop peer[u] */ } /* 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 "peer" table. */ static int class_index_event (lua_State* L) { int t = lua_type(L,1); if (t == LUA_TUSERDATA) { /* Access alternative table */ lua_pushstring(L,"tolua_peer"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: obj key peer */ lua_pushvalue(L,1); lua_rawget(L,-2); /* stack: obj key peer peer[u] */ if (lua_istable(L,-1)) { lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); /* stack: obj key peer peer[u] value */ if (!lua_isnil(L,-1)) return 1; } 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 peer */ 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 */ storeatpeer(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 peer 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 */ storeatpeer(L,1); } else if (t== LUA_TTABLE) { module_newindex_event(L); } 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); } } if (strcmp(op,".eq")==0) { lua_pushboolean(L,lua_rawequal(L,1,2)); return 1; } else { 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) { return do_operator(L,".eq"); } static int class_gc_event (lua_State* L) { if (lua_type(L,1) == LUA_TUSERDATA) { int top = lua_gettop(L); void* u = *((void**)lua_touserdata(L,1)); lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); /* gc */ lua_pushlightuserdata(L,u); /* gc u */ lua_rawget(L,-2); /* gc func */ if (!lua_isnil(L, -1)) { /* remove entry from table */ lua_pushlightuserdata(L,u); lua_pushnil(L); lua_rawset(L,-4); if (lua_isfunction(L,-1)) { /* call collect function */ lua_pushvalue(L,1); /* tolua_gc tolua_gc.u(func) u */ lua_call(L,1,0); /* tolua_gc */ } else if (lua_isuserdata(L,-1) && *((void**)lua_touserdata(L,-1))==NULL) { /* free object */ free(u); tolua_release(L,u); /* unmap from tolua tables */ } } lua_settop(L,top); } 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,"__gc"); lua_pushcfunction(L,class_gc_event); lua_rawset(L,-3); } tolua-5.2.0/src/lib/tolua_event.h000644 000765 000767 00000001231 11717267062 016133 0ustar00celes000000 000000 /* tolua: event functions ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: tolua_event.h,v 1.3 2009/11/24 16:45:15 fabraham 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. */ #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 tolua-5.2.0/src/lib/tolua_is.c000755 000765 000767 00000027316 11717267062 015437 0ustar00celes000000 000000 /* tolua: functions to check types. ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: tolua_is.c,v 1.5 2009/11/24 16:45:15 fabraham 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. */ #include "tolua.h" #include "lauxlib.h" #include #include /* 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; } /* the equivalent of lua_is* for usertype */ static int lua_isusertype (lua_State* L, int lo, const char* type) { if (lua_isuserdata(L,lo)) { /* 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 = NULL; return 0; } 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_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_isfunction (lua_State* L, int lo, int def, tolua_Error* err) { if (def && lua_gettop(L)index = lo; err->array = 0; err->type = "function"; 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_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 tolua-5.2.0/src/lib/._tolua_map.c000644 000765 000765 00000000341 11717267062 017012 0ustar00celesceles000000 000000 Mac OS X  2ATTRIIcom.apple.quarantineq/0001;4f3c168e;Mail;B0B98B99-1A0B-48E4-B489-A891C5693194|com.apple.mailtolua-5.2.0/src/lib/tolua_map.c000644 000765 000767 00000034323 11717267062 015572 0ustar00celes000000 000000 /* tolua: functions to map features ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: tolua_map.c,v 1.10 2011/01/13 13:43:46 fabraham 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. */ #include "tolua.h" #include "tolua_event.h" #include "lauxlib.h" #include #include #include #include static char toluaname[128] = "tolua."; static const char* TOLUANAME (const char* n) { sprintf(&toluaname[6],"%.120s",n); return toluaname; } /* Create metatable * Create and register new metatable */ void tolua_newmetatable (lua_State* L, const char* name) { if (luaL_newmetatable(L,TOLUANAME(name))) { lua_pushvalue(L,-1); lua_pushstring(L,name); lua_rawset(L,LUA_REGISTRYINDEX); } /* set meta events */ tolua_classevents(L); lua_pop(L,1); } /* Get metatable * Access already created metatable */ void tolua_getmetatable (lua_State* L, const char* name) { luaL_getmetatable(L,TOLUANAME(name)); } /* 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 */ tolua_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 */ tolua_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 */ tolua_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: */ } /* 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 */ tolua_getmetatable(L,name); if (base && *base) tolua_getmetatable(L,base); else tolua_getmetatable(L,"tolua_commonclass"); 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 */ int tolua_bnd_takeownership (lua_State* L) { lua_CFunction func = 0; if (lua_isuserdata(L,1)) { if (lua_getmetatable(L,1)) /* if metatable? */ { void* u; lua_pushstring(L,".collector"); lua_rawget(L,-2); func = lua_iscfunction(L,-1) ? lua_tocfunction(L,-1) : NULL; lua_pop(L,2); u = *((void**)lua_touserdata(L,1)); tolua_clone(L,u,func); } } lua_pushboolean(L,func!=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)); lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); lua_pushlightuserdata(L,u); lua_rawget(L,-2); lua_pushlightuserdata(L,u); lua_pushnil(L); lua_rawset(L,-4); done = 1; } lua_pushboolean(L,done!=0); return 1; } /* Type casting */ static int tolua_bnd_cast (lua_State* L) { void* v = tolua_tousertype(L,1,NULL); const char* s = tolua_tostring(L,2,NULL); if (!v) lua_pushnil(L); else if (v && s) { tolua_getmetatable(L,s); /* stack: ubox[u] super super[mt] flag mt */ if (lua_isnil(L,-1)) { tolua_error(L,"Unknown 'type' for 'tolua.cast' function",NULL); } tolua_pushusertype(L,v,s); } else { tolua_error(L,"Invalid arguments for 'tolua.cast' function",NULL); } return 1; } /* Release ** Function to be called by a Lua code that uses a function to explicitly ** release a mapped object. This function is automatically called by all ** destructors bound by tolua and by all collected objects. */ static int tolua_bnd_release (lua_State* L) { void* value = tolua_tousertype(L,1,NULL); if (value) tolua_release(L,value); return 1; } static void tolua_push_globals_table (lua_State* L) { lua_pushvalue(L,LUA_REGISTRYINDEX); /* registry */ lua_pushnumber(L,LUA_RIDX_GLOBALS); /* registry globalsindex */ lua_rawget(L, -2); /* registry registry[globalsindex] */ lua_remove(L, -2); /* registry[globalsindex] */ } 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); lua_pushstring(L,"tolua_ubox"); lua_newtable(L); lua_pushvalue(L, -1); /* metatable: for weak table */ lua_pushstring(L, "__mode"); lua_pushstring(L, "v"); lua_rawset(L, -3); lua_setmetatable(L, -2); lua_rawset(L,LUA_REGISTRYINDEX); lua_pushstring(L,"tolua_peer"); lua_newtable(L); lua_pushvalue(L, -1); /* metatable: for weak table */ lua_pushstring(L, "__mode"); lua_pushstring(L, "k"); lua_rawset(L, -3); lua_setmetatable(L, -2); 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); 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,"release",tolua_bnd_release); 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; } /* Release userdata from tolua */ TOLUA_API void tolua_release (lua_State* L, void* value) { void** p; lua_pushstring(L,"tolua_ubox"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: ubox */ lua_pushlightuserdata(L,value); /* stack: ubox u */ /* set userdata pointer to NULL: this pointer might be reused by C/C++ */ lua_rawget(L,-2); /* stack: ubox ud */ p = (void**)lua_touserdata(L,-1); if (p) *p = NULL; /* fixed bug: thanks to Ulrik Sverdrup -- it was 1 instead of -1 */ lua_pop(L,1); /* stack: ubox */ /* remove value from ubox */ lua_pushlightuserdata(L,value); /* stack: ubox u */ lua_pushnil(L); lua_rawset(L,-3); lua_pop(L,1); } /* Do clone */ TOLUA_API void* tolua_clone (lua_State* L, void* value, lua_CFunction func) { lua_pushstring(L,"tolua_gc"); lua_rawget(L,LUA_REGISTRYINDEX); lua_pushlightuserdata(L,value); lua_pushcfunction(L,func); lua_rawset(L,-3); lua_pop(L,1); return value; } /* 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); tolua_newmetatable(L,ctype); /* create both metatables */ 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 tolua_push_globals_table(L); } /* 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 tolua_push_globals_table(L); 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 tolua_push_globals_table(L); 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 /* 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); tolua_getmetatable(L,name); lua_pushstring(L,".collector"); lua_pushcfunction(L,col); lua_rawset(L,-3); /* store collector function into metatable */ lua_rawset(L,-3); /* assign class metatable to module */ } /* 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); } /* 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, double 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-5.2.0/src/lib/tolua_push.c000755 000765 000767 00000010350 11717267062 015771 0ustar00celes000000 000000 /* tolua: functions to push C values. ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: tolua_push.c,v 1.7 2010/01/22 15:39:29 fabraham 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. */ #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, double 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 { lua_pushstring(L,"tolua_ubox"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: ubox */ lua_pushlightuserdata(L,value); lua_rawget(L,-2); /* stack: ubox ubox[u] */ if (lua_isnil(L,-1)) { /* creating ubox of value */ lua_pop(L,1); /* stack: ubox */ lua_pushlightuserdata(L,value); *(void**)lua_newuserdata(L,sizeof(void *)) = value; /* stack: ubox u newud */ lua_pushvalue(L,-1); /* stack: ubox u newud newud */ lua_insert(L,-4); /* stack: newud ubox u newud */ lua_rawset(L,-3); /* stack: newud ubox */ lua_pop(L,1); /* stack: newud */ tolua_getmetatable(L,type); /* stack: newud mt */ lua_setmetatable(L,-2); /* stack: newud */ } else { /* reusing ubox of value */ /* check the need of updating the metatable to a more specialized class */ lua_insert(L,-2); /* stack: ubox[u] ubox */ lua_pop(L,1); /* stack: ubox[u] */ lua_pushstring(L,"tolua_super"); lua_rawget(L,LUA_REGISTRYINDEX); /* stack: ubox[u] super */ lua_getmetatable(L,-2); /* stack: ubox[u] super mt */ lua_rawget(L,-2); /* stack: ubox[u] super super[mt] */ if (lua_istable(L,-1)) { lua_pushstring(L,type); /* stack: ubox[u] super super[mt] type */ lua_rawget(L,-2); /* stack: ubox[u] super super[mt] flag */ if (lua_toboolean(L,-1) == 1) /* if true */ { lua_pop(L,3); /* stack: ubox[u] */ return; } } /* type represents a more specilized type */ tolua_getmetatable(L,type); /* stack: ubox[u] super super[mt] flag mt */ lua_setmetatable(L,-5); /* stack: ubox[u] super super[mt] flag */ lua_pop(L,3); /* stack: ubox[u] */ } } } 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, double 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-5.2.0/src/lib/tolua_to.c000755 000765 000767 00000005615 11717267062 015444 0ustar00celes000000 000000 /* tolua: funcitons to convert to C types ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: tolua_to.c,v 1.5 2009/11/24 16:45:15 fabraham 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. */ #include "tolua.h" #include #include TOLUA_API double tolua_tonumber (lua_State* L, int narg, double def) { return lua_gettop(L) #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" " -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)\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 error (char* o) { fprintf(stderr,"tolua: unknown option '%s'\n",o); help(); exit(1); } int main (int argc, char* argv[]) { lua_State* L = luaL_newstate(); luaL_openlibs(L); lua_pushstring(L,TOLUA_VERSION); lua_setglobal(L,"TOLUA_VERSION"); if (argc==1) { help(); return 0; } else { int i, t; lua_newtable(L); lua_pushvalue(L,-1); lua_setglobal(L,"flags"); t = lua_gettop(L); for (i=1; i #endif #ifdef __cplusplus extern "C" int tolua_bnd_takeownership (lua_State* L); // from tolua_map.c #else int tolua_bnd_takeownership (lua_State* L); /* from tolua_map.c */ #endif #include /* Exported function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S); LUALIB_API int luaopen_tolua (lua_State* tolua_S); /* function to register type */ static void tolua_reg_types (lua_State* tolua_S) { } /* Open lib function */ LUALIB_API int luaopen_tolua (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 */ static unsigned char B[] = { 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10, 13, 10,114, 97, 119,116,121,112,101, 32, 61, 32,116,121,112,101, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,100,111, 95, 32, 40, 102, 44, 32,101,114,114, 41, 13, 10,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, 13, 10,108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,112, 99, 97,108,108, 40,102, 41, 13, 10,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, 13, 10, 101,108,115,101, 32,114,101,116,117,114,110, 32, 98, 32,111, 114, 32,116,114,117,101, 13, 10,101,110,100, 13, 10,101,110, 100, 13, 10, 13, 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, 40,115, 41, 41, 32,101,110,100, 13, 10, 13, 10,108,111, 99, 97,108, 32,116, 97, 98, 32, 61, 32,116, 97, 98,108,101, 13, 10,102,111,114, 101, 97, 99,104, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,116, 44,102, 41, 13, 10,102,111,114, 32,107, 44,118, 32, 105,110, 32,112, 97,105,114,115, 40,116, 41, 32,100,111, 13, 10,102, 40,107, 44,118, 41, 13, 10,101,110,100, 13, 10,101, 110,100, 13, 10,102,111,114,101, 97, 99,104,105, 32, 61, 32, 102,117,110, 99,116,105,111,110, 40,116, 44,102, 41, 13, 10, 102,111,114, 32,105, 44,118, 32,105,110, 32,105,112, 97,105, 114,115, 40,116, 41, 32,100,111, 13, 10,102, 40,105, 44,118, 41, 13, 10,101,110,100, 13, 10,101,110,100, 13, 10,103,101, 116,110, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,116, 41, 13, 10,114,101,116,117,114,110, 32, 35,116, 13, 10,101, 110,100, 13, 10,116,105,110,115,101,114,116, 32, 61, 32,116, 97, 98, 46,105,110,115,101,114,116, 13, 10,116,114,101,109, 111,118,101, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118, 101, 13, 10,115,111,114,116, 32, 61, 32,116, 97, 98, 46,115, 111,114,116, 13, 10, 13, 10,108,111, 99, 97,108, 32,100, 98, 103, 32, 61, 32,100,101, 98,117,103, 13, 10,103,101,116,105, 110,102,111, 32, 61, 32,100, 98,103, 46,103,101,116,105,110, 102,111, 13, 10,103,101,116,108,111, 99, 97,108, 32, 61, 32, 100, 98,103, 46,103,101,116,108,111, 99, 97,108, 13, 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, 13, 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, 13, 10,115,101,116,108, 111, 99, 97,108, 32, 61, 32,100, 98,103, 46,115,101,116,108, 111, 99, 97,108, 13, 10, 13, 10,108,111, 99, 97,108, 32,109, 97,116,104, 32, 61, 32,109, 97,116,104, 13, 10, 97, 98,115, 32, 61, 32,109, 97,116,104, 46, 97, 98,115, 13, 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, 13, 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, 13, 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, 13, 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, 13, 10, 99, 101,105,108, 32, 61, 32,109, 97,116,104, 46, 99,101,105,108, 13, 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, 13, 10,100,101,103, 32, 61, 32,109, 97,116,104, 46,100,101,103, 13, 10,101,120,112, 32, 61, 32,109, 97,116,104, 46,101,120,112, 13, 10,102,108,111, 111,114, 32, 61, 32,109, 97,116,104, 46,102,108,111,111,114, 13, 10,102,114,101,120,112, 32, 61, 32,109, 97,116,104, 46, 102,114,101,120,112, 13, 10,108,100,101,120,112, 32, 61, 32, 109, 97,116,104, 46,108,100,101,120,112, 13, 10,108,111,103, 32, 61, 32,109, 97,116,104, 46,108,111,103, 13, 10,108,111, 103, 49, 48, 32, 61, 32,109, 97,116,104, 46,108,111,103, 49, 48, 13, 10,109, 97,120, 32, 61, 32,109, 97,116,104, 46,109, 97,120, 13, 10,109,105,110, 32, 61, 32,109, 97,116,104, 46, 109,105,110, 13, 10,109,111,100, 32, 61, 32,109, 97,116,104, 46,109,111,100, 13, 10, 80, 73, 32, 61, 32,109, 97,116,104, 46,112,105, 13, 10,114, 97,100, 32, 61, 32,109, 97,116,104, 46,114, 97,100, 13, 10,114, 97,110,100,111,109, 32, 61, 32, 109, 97,116,104, 46,114, 97,110,100,111,109, 13, 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, 13, 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, 13, 10,115,113,114,116, 32, 61, 32,109, 97, 116,104, 46,115,113,114,116, 13, 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, 13, 10, 13, 10,108,111, 99, 97,108, 32,115,116,114, 32, 61, 32,115,116,114,105,110,103, 13, 10,115,116,114, 98,121,116, 101, 32, 61, 32,115,116,114, 46, 98,121,116,101, 13, 10,115, 116,114, 99,104, 97,114, 32, 61, 32,115,116,114, 46, 99,104, 97,114, 13, 10,115,116,114,102,105,110,100, 32, 61, 32,115, 116,114, 46,102,105,110,100, 13, 10,102,111,114,109, 97,116, 32, 61, 32,115,116,114, 46,102,111,114,109, 97,116, 13, 10, 103,115,117, 98, 32, 61, 32,115,116,114, 46,103,115,117, 98, 13, 10,115,116,114,108,101,110, 32, 61, 32,115,116,114, 46, 108,101,110, 13, 10,115,116,114,108,111,119,101,114, 32, 61, 32,115,116,114, 46,108,111,119,101,114, 13, 10,115,116,114, 114,101,112, 32, 61, 32,115,116,114, 46,114,101,112, 13, 10, 115,116,114,115,117, 98, 32, 61, 32,115,116,114, 46,115,117, 98, 13, 10,115,116,114,117,112,112,101,114, 32, 61, 32,115, 116,114, 46,117,112,112,101,114, 13, 10, 13, 10, 99,108,111, 99,107, 32, 61, 32,111,115, 46, 99,108,111, 99,107, 13, 10, 100, 97,116,101, 32, 61, 32,111,115, 46,100, 97,116,101, 13, 10,100,105,102,102,116,105,109,101, 32, 61, 32,111,115, 46, 100,105,102,102,116,105,109,101, 13, 10,101,120,101, 99,117, 116,101, 32, 61, 32,111,115, 46,101,120,101, 99,117,116,101, 10,101,120,105,116, 32, 61, 32,111,115, 46,101,120,105,116, 13, 10,103,101,116,101,110,118, 32, 61, 32,111,115, 46,103, 101,116,101,110,118, 13, 10,114,101,109,111,118,101, 32, 61, 32,111,115, 46,114,101,109,111,118,101, 13, 10,114,101,110, 97,109,101, 32, 61, 32,111,115, 46,114,101,110, 97,109,101, 13, 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, 13, 10,116,105, 109,101, 32, 61, 32,111,115, 46,116,105,109,101, 13, 10,116, 109,112,110, 97,109,101, 32, 61, 32,111,115, 46,116,109,112, 110, 97,109,101, 13, 10, 13, 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, 13, 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, 13, 10, 13, 10, 13, 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, 13, 10, 13, 10, 95, 83, 84, 68, 73, 78, 32, 61, 32, 105,111, 46,115,116,100,105,110, 13, 10, 95, 83, 84, 68, 69, 82, 82, 32, 61, 32,105,111, 46,115,116,100,101,114,114, 13, 10, 95, 83, 84, 68, 79, 85, 84, 32, 61, 32,105,111, 46,115, 116,100,111,117,116, 13, 10, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,105,110, 13, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 13, 10,115,101,101,107, 32, 61, 32,105,111, 46,115,116,100, 105,110, 46,115,101,101,107, 10,116,109,112,102,105,108,101, 32, 61, 32,105,111, 46,116,109,112,102,105,108,101, 13, 10, 99,108,111,115,101,102,105,108,101, 32, 61, 32,105,111, 46, 99,108,111,115,101, 13, 10,111,112,101,110,102,105,108,101, 32, 61, 32,105,111, 46,111,112,101,110, 13, 10, 13, 10,102, 117,110, 99,116,105,111,110, 32,102,108,117,115,104, 32, 40, 102, 41, 13, 10,105,102, 32,102, 32,116,104,101,110, 32,102, 58,102,108,117,115,104, 40, 41, 13, 10,101,108,115,101, 32, 95, 79, 85, 84, 80, 85, 84, 58,102,108,117,115,104, 40, 41, 13, 10,101,110,100, 13, 10,101,110,100, 13, 10, 13, 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, 13, 10,105,102, 32,110, 97, 109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101,110, 13, 10,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, 13, 10, 95, 73, 78, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,105,110, 13, 10,114,101, 116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111, 100, 13, 10,101,108,115,101, 13, 10,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, 13, 10, 95, 73, 78, 80, 85, 84, 32, 61, 32,102, 32, 111,114, 32, 95, 73, 78, 80, 85, 84, 13, 10,114,101,116,117, 114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 13, 10,101,110,100, 13, 10,101,110,100, 13, 10, 13, 10,102,117, 110, 99,116,105,111,110, 32,119,114,105,116,101,116,111, 32, 40,110, 97,109,101, 41, 13, 10,105,102, 32,110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101,110, 13, 10,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, 13, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 13, 10,114, 101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99, 111,100, 13, 10,101,108,115,101, 13, 10,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, 13, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 13, 10,114, 101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99, 111,100, 13, 10,101,110,100, 13, 10,101,110,100, 13, 10, 13, 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, 13, 10,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, 13, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 13, 10,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 13, 10,101,110,100, 13, 10, 13, 10,102,117, 110, 99,116,105,111,110, 32,114,101, 97,100, 32, 40, 46, 46, 46, 41, 13, 10,108,111, 99, 97,108, 32,102, 32, 61, 32, 95, 73, 78, 80, 85, 84, 13, 10,108,111, 99, 97,108, 32, 97,114, 103, 32, 61, 32,123, 46, 46, 46,125, 13, 10,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, 13, 10,102, 32, 61, 32,116, 97, 98, 46,114,101, 109,111,118,101, 40, 97,114,103, 44, 32, 49, 41, 13, 10,101, 110,100, 13, 10,114,101,116,117,114,110, 32,102, 58,114,101, 97,100, 40,116, 97, 98,108,101, 46,117,110,112, 97, 99,107, 40, 97,114,103, 41, 41, 13, 10,101,110,100, 13, 10, 13, 10, 102,117,110, 99,116,105,111,110, 32,119,114,105,116,101, 32, 40, 46, 46, 46, 41, 13, 10,108,111, 99, 97,108, 32,102, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 13, 10,108,111, 99, 97, 108, 32, 97,114,103, 32, 61, 32,123, 46, 46, 46,125, 13, 10, 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, 13, 10,102, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101, 40, 97,114,103, 44, 32, 49, 41, 13, 10,101,110,100, 13, 10,114,101,116,117,114,110, 32, 102, 58,119,114,105,116,101, 40,116, 97, 98,108,101, 46,117, 110,112, 97, 99,107, 40, 97,114,103, 41, 41, 13, 10,101,110, 100, 13,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 13, 10, 13, 10, 13, 10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 13, 10, 91, 39,118,111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 13, 10, 91, 39, 99,104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 13, 10, 91, 39,116, 111,108,117, 97, 95,105,110,100,101,120, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 13, 10, 91, 39,116,111, 108,117, 97, 95, 98,121,116,101, 39, 93, 32, 61, 32, 39,110, 117,109, 98,101,114, 39, 44, 13, 10, 91, 39,116,111,108,117, 97, 95,117, 98,121,116,101, 39, 93, 32, 61, 32, 39,110,117, 109, 98,101,114, 39, 44, 13, 10, 91, 39,105,110,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 13, 10, 91, 39,115,104,111,114,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 13, 10, 91, 39,108,111,110,103, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 13, 10, 91, 39,117,110,115,105,103,110,101,100, 39, 93, 32, 61, 32, 39, 110,117,109, 98,101,114, 39, 44, 13, 10, 91, 39,102,108,111, 97,116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 13, 10, 91, 39,100,111,117, 98,108,101, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44, 13, 10, 91, 39, 95, 99,115,116,114,105,110,103, 39, 93, 32, 61, 32, 39,115,116, 114,105,110,103, 39, 44, 13, 10, 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, 13, 10, 91, 39, 99,104, 97,114, 42, 39, 93, 32, 61, 32, 39,115,116,114,105,110,103, 39, 44, 13, 10, 91, 39,118,111,105,100, 42, 39, 93, 32, 61, 32, 39,117,115, 101,114,100, 97,116, 97, 39, 44, 13, 10, 91, 39, 98,111,111, 108, 39, 93, 32, 61, 32, 39, 98,111,111,108,101, 97,110, 39, 44, 13, 10, 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, 13, 10, 91, 39, 95,108,115,116, 97,116,101, 39, 93, 32, 61, 32, 39, 115,116, 97,116,101, 39, 44, 13, 10, 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, 13, 10, 91, 39,108,117, 97, 95, 70,117,110, 99,116,105,111,110, 39, 93, 32, 61, 32, 39,102,117,110, 99, 116,105,111,110, 39, 44, 13, 10, 91, 39, 76, 85, 65, 95, 86, 65, 76, 85, 69, 39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10,125, 13, 10, 13, 10, 95, 98, 97,115,105, 99, 95, 99,116,121,112,101, 32, 61, 32,123, 13, 10,110,117,109, 98, 101,114, 32, 61, 32, 34,108,117, 97, 95, 78,117,109, 98,101, 114, 34, 44, 13, 10,115,116,114,105,110,103, 32, 61, 32, 34, 99,111,110,115,116, 32, 99,104, 97,114, 42, 34, 44, 13, 10, 117,115,101,114,100, 97,116, 97, 32, 61, 32, 34,118,111,105, 100, 42, 34, 44, 13, 10, 98,111,111,108,101, 97,110, 32, 61, 32, 34, 98,111,111,108, 34, 44, 13, 10,118, 97,108,117,101, 32, 61, 32, 34,105,110,116, 34, 44, 13, 10,125, 13, 10, 13, 10, 95,117,115,101,114,116,121,112,101, 32, 61, 32,123,125, 13, 10, 13, 10, 95, 99,111,108,108,101, 99,116, 32, 61, 32, 123,125, 13, 10, 13, 10, 13, 10, 95,114,101,110, 97,109,105, 110,103, 32, 61, 32,123,125, 13, 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, 13, 10,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, 13, 10,105,102, 32,110,111,116, 32, 98, 32,116, 104,101,110, 13, 10,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, 13, 10,101,110,100, 13, 10,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, 13, 10,101,110,100, 13, 10, 13, 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, 13, 10,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, 13, 10,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, 13, 10,105,102, 32,110, 32,126, 61, 32, 48, 32, 116,104,101,110, 13, 10,114,101,116,117,114,110, 32,109, 13, 10,101,110,100, 13, 10,101,110,100, 13, 10,114,101,116,117, 114,110, 32,110,105,108, 13, 10,101,110,100, 13, 10, 13, 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, 13, 10,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 13, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 13, 10,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, 13, 10,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, 13, 10,105,102, 32, 95, 99,117,114, 114, 95, 99,111,100,101, 32,116,104,101,110, 13, 10,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, 10, 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, 13, 10,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, 10,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, 10,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, 10,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, 13, 10,101,110,100, 13, 10,101,108,115,101, 13, 10,112,114,105,110,116, 40,100,101, 98,117,103, 46,116,114, 97, 99,101, 98, 97, 99,107, 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, 41, 13, 10,114,101,116,117,114,110, 13, 10,101,110,100, 13, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,111,117,116, 13, 10, 101,110,100, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,119, 97,114,110,105,110,103, 32, 40,109,115,103, 41, 13, 10,108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 13, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69, 82, 82, 13, 10,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, 13, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,111,117,116, 13, 10,101,110,100, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,114,101,103, 116,121,112,101, 32, 40,116, 41, 13, 10,108,111, 99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,112,101, 40, 116, 41, 13, 10,105,102, 32,105,115, 98, 97,115,105, 99, 40, 116, 41, 32,116,104,101,110, 13, 10,114,101,116,117,114,110, 32,116, 13, 10,101,110,100, 13, 10,105,102, 32,110,111,116, 32,102,116, 32,116,104,101,110, 13, 10,114,101,116,117,114, 110, 32, 97,112,112,101,110,100,117,115,101,114,116,121,112, 101, 40,116, 41, 13, 10,101,110,100, 13, 10,101,110,100, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,116,121,112, 101,118, 97,114, 40,116,121,112,101, 41, 13, 10,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,111, 114, 32,116,121,112,101, 32, 61, 61, 32, 34, 46, 46, 46, 34, 32,116,104,101,110, 13, 10,114,101,116,117,114,110, 32,116, 121,112,101, 13, 10,101,108,115,101, 13, 10,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, 13, 10,105,102, 32,102,116, 32,116, 104,101,110, 13, 10,114,101,116,117,114,110, 32,102,116, 13, 10,101,110,100, 13, 10, 95,117,115,101,114,116,121,112,101, 91,116,121,112,101, 93, 32, 61, 32,116,121,112,101, 13, 10, 114,101,116,117,114,110, 32,116,121,112,101, 13, 10,101,110, 100, 13, 10,101,110,100, 13, 10, 13, 10,102,117,110, 99,116, 105,111,110, 32,105,115, 98, 97,115,105, 99, 32, 40,116,121, 112,101, 41, 13, 10,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, 13, 10,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,116, 41, 13, 10,108,111, 99, 97,108, 32, 98, 32, 61, 32, 95, 98, 97,115,105, 99, 91,116, 93, 13, 10,105, 102, 32, 98, 32,116,104,101,110, 13, 10,114,101,116,117,114, 110, 32, 98, 44, 95, 98, 97,115,105, 99, 95, 99,116,121,112, 101, 91, 98, 93, 13, 10,101,110,100, 13, 10,114,101,116,117, 114,110, 32,110,105,108, 13, 10,101,110,100, 13, 10, 13, 10, 102,117,110, 99,116,105,111,110, 32,115,112,108,105,116, 32, 40,115, 44,116, 41, 13, 10,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 13, 10,108,111, 99, 97,108, 32, 102, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,115, 41, 13, 10,108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 13, 10,108, 91,108, 46,110, 93, 32, 61, 32,115, 13, 10, 114,101,116,117,114,110, 32, 34, 34, 13, 10,101,110,100, 13, 10,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, 13, 10,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 94, 37,115, 43, 34, 44, 34, 34, 41, 13, 10,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 37,115, 43, 36, 34, 44, 34, 34, 41, 13, 10,115, 32, 61, 32,103,115,117, 98, 40, 115, 44,112, 44,102, 41, 13, 10,108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 13, 10,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, 13, 10,114,101,116,117,114, 110, 32,108, 13, 10,101,110,100, 13, 10, 13, 10, 13, 10,102, 117,110, 99,116,105,111,110, 32, 99,111,110, 99, 97,116, 32, 40,116, 44,102, 44,108, 41, 13, 10,108,111, 99, 97,108, 32, 115, 32, 61, 32, 39, 39, 13, 10,108,111, 99, 97,108, 32,105, 61,102, 13, 10,119,104,105,108,101, 32,105, 60, 61,108, 32, 100,111, 13, 10,115, 32, 61, 32,115, 46, 46,116, 91,105, 93, 13, 10,105, 32, 61, 32,105, 43, 49, 13, 10,105,102, 32,105, 32, 60, 61, 32,108, 32,116,104,101,110, 32,115, 32, 61, 32, 115, 46, 46, 39, 32, 39, 32,101,110,100, 13, 10,101,110,100, 13, 10,114,101,116,117,114,110, 32,115, 13, 10,101,110,100, 13, 10, 13, 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, 13, 10,108,111, 99, 97,108, 32, 97, 114,103, 32, 61, 32,123, 46, 46, 46,125, 13, 10,108,111, 99, 97,108, 32,105, 61, 49, 13, 10,119,104,105,108,101, 32,105, 60, 61, 35, 97,114,103, 32,100,111, 13, 10,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, 32, 13, 10,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, 32, 13, 10,108,105,110,101, 32, 61, 32,108,105,110,101, 32, 46, 46, 32, 39, 32, 39, 32, 13, 10,101,110,100, 13, 10,108,105,110, 101, 32, 61, 32,108,105,110,101, 32, 46, 46, 32, 97,114,103, 91,105, 93, 13, 10,105,102, 32, 97,114,103, 91,105, 93, 32, 126, 61, 32, 39, 39, 32,116,104,101,110, 13, 10, 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, 13, 10,101,110,100, 13, 10,105, 32, 61, 32,105, 43, 49, 13, 10,101,110,100, 13, 10,105,102, 32,115,116,114,102,105,110,100, 40, 97,114,103, 91, 35, 97,114,103, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 32, 13, 10, 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, 13, 10,101,110,100, 13, 10,114,101,116,117,114,110, 32,108, 105,110,101, 13, 10,101,110,100, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,111,117,116,112,117,116, 32, 40, 46, 46, 46, 41, 13, 10,108,111, 99, 97,108, 32, 97,114,103, 32, 61, 32,123, 46, 46, 46,125, 13, 10,108,111, 99, 97,108, 32, 105, 61, 49, 13, 10,119,104,105,108,101, 32,105, 60, 61, 35, 97,114,103, 32,100,111, 13, 10,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, 32, 13, 10,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, 32, 13, 10,119,114, 105,116,101, 40, 39, 32, 39, 41, 32, 13, 10,101,110,100, 13, 10,119,114,105,116,101, 40, 97,114,103, 91,105, 93, 41, 13, 10,105,102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 13, 10, 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, 13, 10,101,110,100, 13, 10,105, 32, 61, 32,105, 43, 49, 13, 10,101,110,100, 13, 10,105,102, 32, 115,116,114,102,105,110,100, 40, 97,114,103, 91, 35, 97,114, 103, 93, 44, 34, 91, 37, 47, 37, 41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,110, 32, 13, 10, 95, 99,111, 110,116, 61,110,105,108, 32,119,114,105,116,101, 40, 39, 92, 110, 39, 41, 13, 10,101,110,100, 13, 10,101,110,100, 13,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 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,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,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,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, 41, 10, 101,110,100, 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,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,114,101,116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 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,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10,101,110,100, 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,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,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,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,110, 91, 49, 93, 10,105,102, 32,110,111,116, 32,110, 91, 50, 93, 32,116,104,101,110, 10,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,101,110,100, 10,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,101,110,100, 10,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,101,110,100, 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,105,102, 32, 115,101,108,102, 46,112, 97,114,101,110,116, 32,116,104,101, 110, 10,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,119, 104,105,108,101, 32,112, 97,114,101,110,116, 32,100,111, 10, 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,114,101,116,117,114,110, 32,112, 97,114,101, 110,116, 46,110, 97,109,101, 10,101,110,100, 10,112, 97,114, 101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,112, 97, 114,101,110,116, 10,101,110,100, 10,101,110,100, 10,114,101, 116,117,114,110, 32,110,105,108, 10,101,110,100, 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,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,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,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,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,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,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,105, 102, 32,115,101,108,102, 46,112, 97,114,101,110,116, 32,116, 104,101,110, 10,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,101,110,100, 10,105,102, 32,115,101,108,102, 46, 108,110, 97,109,101, 32, 97,110,100, 10,115,116,114,115,117, 98, 40,115,101,108,102, 46,108,110, 97,109,101, 44, 49, 44, 49, 41,126, 61, 34, 46, 34, 10,116,104,101,110, 10,114,101, 116,117,114,110, 32,110, 46, 46, 39, 95, 39, 46, 46,115,101, 108,102, 46,108,110, 97,109,101, 10,101,108,115,101, 10,114, 101,116,117,114,110, 32,110, 46, 46, 39, 95, 39, 46, 46,115, 101,108,102, 46,110, 97,109,101, 10,101,110,100, 10,101,110, 100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 32, 61, 32,123, 10,108,105,110,101, 32, 61, 32, 39, 39, 44, 10, 99,111,110,100, 32, 61, 32,110,105,108, 44, 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,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,105,102, 32,115,101,108,102, 46, 99,111,110,100, 32, 61, 61, 32, 39, 39, 32,116,104,101, 110, 10,119,114,105,116,101, 40,115,101,108,102, 46,108,105, 110,101, 41, 10,101,110,100, 10,101,110,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,115,117,112, 99,111,100,101, 32, 40, 41, 10,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,119,114,105,116,101, 40,115,101,108,102, 46,108,105, 110,101, 41, 10,119,114,105,116,101, 40, 39, 92,110, 39, 41, 10,101,110,100, 10,101,110,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,114,101,103,105,115,116,101,114, 32, 40, 41, 10,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, 119,114,105,116,101, 40,115,101,108,102, 46,108,105,110,101, 41, 10,101,110,100, 10,101,110,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,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,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,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,102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, 97,116,105,109, 32, 40,116, 41, 10,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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117,114,110, 32,116, 10,101,110, 100, 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,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, 99,111, 110,100, 32, 61, 32, 39,115,114, 39, 10,108, 32, 61, 32,115, 116,114,115,117, 98, 40,108, 44, 50, 41, 10,101,110,100, 10, 114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,116,105, 109, 32,123, 10,108,105,110,101, 32, 61, 32,108, 44, 10, 99, 111,110,100, 32, 61, 32, 99,111,110,100, 32,111,114, 32, 39, 39, 44, 10,125, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 67,111,100,101, 32, 61, 32,123, 10, 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,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, 41, 10,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,105,102, 32,110,111,116, 32,115, 32,116,104,101, 110, 10,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,101,110,100, 10, 111,117,116,112,117,116, 40, 39, 92,110, 32,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,111,117,116,112,117,116, 40, 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, 39, 41, 10, 108,111, 99, 97,108, 32,116, 61,123,110, 61, 48,125, 10,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,108,111, 99, 97,108, 32,101, 32, 61, 32, 39, 39, 10,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, 32, 39, 32,101,110, 100, 10,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,101,110,100, 10, 41, 10, 111,117,116,112,117,116, 40, 98, 46, 46,115,116,114, 98,121, 116,101, 40, 34, 32, 34, 41, 41, 10,111,117,116,112,117,116, 40, 39, 92,110, 32,125, 59, 92,110, 39, 41, 10,111,117,116, 112,117,116, 40, 39, 32,105,102, 32, 40,108,117, 97, 76, 95, 108,111, 97,100, 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, 34, 41, 32, 61, 61, 32, 76, 85, 65, 95, 79, 75, 41, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32, 108,117, 97, 95,112, 99, 97,108,108, 40,116,111,108,117, 97, 95, 83, 44, 48, 44, 76, 85, 65, 95, 77, 85, 76, 84, 82, 69, 84, 44, 48, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,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,101,110,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,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, 10,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,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, 102,117,110, 99,116,105,111,110, 32, 95, 67,111,100,101, 32, 40,116, 41, 10,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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117,114, 110, 32,116, 10,101,110,100, 10,102,117,110, 99,116,105,111, 110, 32, 67,111,100,101, 32, 40,108, 41, 10,114,101,116,117, 114,110, 32, 95, 67,111,100,101, 32,123, 10,116,101,120,116, 32, 61, 32,108, 10,125, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 84,121,112,101,100,101,102, 32, 61, 32,123, 10,117,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 109,111,100, 32, 61, 32, 39, 39, 44, 10,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,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,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,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,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,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,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,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,114,101,116,117,114,110, 32,102, 97,108,115, 101, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 95, 84,121,112,101,100,101,102, 32, 40,116, 41, 10,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, 97,112,112, 101,110,100,116,121,112,101,100,101,102, 40,116, 41, 10,114, 101,116,117,114,110, 32,116, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 84,121,112,101,100,101,102, 32, 40, 115, 41, 10,105,102, 32,115,116,114,102,105,110,100, 40,115, 44, 39, 91, 37, 42, 38, 93, 39, 41, 32,116,104,101,110, 10, 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,101,110,100, 10,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,105,102, 32,110,111,116, 32,105,115, 98, 97,115,105, 99, 40,116, 91,116, 46,110, 93, 41, 32,116,104,101,110, 10, 114,101,116,117,114,110, 32, 95, 84,121,112,101,100,101,102, 32,123, 10,117,116,121,112,101, 32, 61, 32,116, 91,116, 46, 110, 93, 44, 10,116,121,112,101, 32, 61, 32,116, 91,116, 46, 110, 45, 49, 93, 44, 10,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,125, 10,101,108,115,101, 10,114,101,116,117,114,110, 32, 110,105,108, 10,101,110,100, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 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, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 32, 61, 10,123, 10, 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,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,112,117,115,104, 40,115,101,108,102, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101,108,102, 91,105, 93, 58,100,101, 99, 108,116,121,112,101, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111,112, 40, 41, 10,101,110,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,115,117,112, 99,111,100, 101, 32, 40, 41, 10,112,117,115,104, 40,115,101,108,102, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, 108,102, 91,105, 93, 58,115,117,112, 99,111,100,101, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111, 112, 40, 41, 10,101,110,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,104, 97,115,118, 97,114, 32, 40, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101, 108,102, 91,105, 93, 32,100,111, 10,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,114,101,116,117,114,110, 32, 49, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101, 110,100, 10,114,101,116,117,114,110, 32, 48, 10,101,110,100, 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,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,115,101,108,102, 46,110, 32, 61, 32, 48, 10,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,115,101,108,102, 46,117,115,101,114,116,121,112,101,115, 32, 61, 32,123,125, 10,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,115,101,108,102, 46,108,110, 97,109,101,115, 32, 61, 32,123,125, 10,114,101, 116,117,114,110, 32,115,101,108,102, 10,101,110,100, 10,102, 117,110, 99,116,105,111,110, 32,112,117,115,104, 32, 40,116, 41, 10,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, 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,102, 117,110, 99,116,105,111,110, 32,112,111,112, 32, 40, 41, 10, 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,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,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,102,117,110, 99,116,105,111,110, 32, 97, 112,112,101,110,100, 32, 40,116, 41, 10,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,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,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,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,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,102,117,110, 99,116,105,111, 110, 32, 97,112,112,101,110,100,101,110,117,109, 32, 40,116, 41, 10,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,102,117,110, 99,116,105,111,110, 32, 97,112,112,108, 121,116,121,112,101,100,101,102, 32, 40,116,121,112,101, 41, 10,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,116,121,112,101, 41, 10,101,110,100, 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,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,114,101,116,117,114,110, 32,116, 10,101,110,100, 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,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,102,117,110, 99,116,105,111,110, 32,102,117,108,108,116,121,112,101, 32, 40,116, 41, 10,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,119,104,105,108,101, 32, 99,117, 114,114, 32,100,111, 10,105,102, 32, 99,117,114,114, 32,116, 104,101,110, 10,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,114,101,116,117,114,110, 32, 99,117,114,114, 46,116, 121,112,101,100,101,102,115, 91,116, 93, 10,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, 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,101,110,100, 10,101, 110,100, 10, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46, 112,114,111,120, 10,101,110,100, 10,114,101,116,117,114,110, 32,116, 10,101,110,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,114,101,113,117,105,114,101, 99,111,108,108,101, 99,116, 105,111,110, 32, 40,116, 41, 10,112,117,115,104, 40,115,101, 108,102, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,108, 111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, 10, 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, 111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111,112, 40, 41, 10,114,101, 116,117,114,110, 32,114, 10,101,110,100, 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,108,111, 99, 97,108, 32,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, 10,119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10, 105,102, 32, 99,117,114,114, 32, 97,110,100, 10, 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,116, 104,101,110, 10,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,101,110,100, 10, 99,117,114,114, 32, 61, 32, 99,117, 114,114, 46,112,114,111,120, 10,101,110,100, 10,114,101,116, 117,114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101, 110,100, 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,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,108,111, 99, 97,108, 32,110, 97,109,101, 115,112, 97, 99,101, 32, 61, 32, 39, 39, 10,119,104,105,108, 101, 32, 99,117,114,114, 32,100,111, 10,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,114, 101,116,117,114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,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,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,101,110,100, 10, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111, 120, 10,101,110,100, 10,114,101,116,117,114,110, 32,110, 97, 109,101,115,112, 97, 99,101, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32,105,115,101,110,117,109, 32, 40,116, 121,112,101, 41, 10,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,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,115,101,108,102, 46,110, 32, 61, 32,115,101,108,102, 46,110, 32, 43, 32, 49, 10,115, 101,108,102, 91,115,101,108,102, 46,110, 93, 32, 61, 32,116, 10,116, 46,112, 97,114,101,110,116, 32, 61, 32,115,101,108, 102, 10,101,110,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, 97,112,112,101,110,100,116,121,112,101,100,101,102, 32, 40, 116, 41, 10,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,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, 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,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,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,101,110,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, 97,112,112,101,110,100,117,115,101,114, 116,121,112,101, 32, 40,116, 41, 10,108,111, 99, 97,108, 32, 99,111,110,116, 97,105,110,101,114, 10,105,102, 32,116, 32, 61, 61, 32,115,101,108,102, 46,110, 97,109,101, 32,116,104, 101,110, 10, 99,111,110,116, 97,105,110,101,114, 32, 61, 32, 115,101,108,102, 46,112,114,111,120, 10,101,108,115,101, 10, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,108, 102, 10,101,110,100, 10,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, 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, 95, 117,115,101,114,116,121,112,101, 91,102,116, 93, 32, 61, 32, 102,116, 10,114,101,116,117,114,110, 32,102,116, 10,101,110, 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, 97,112,112,101, 110,100,101,110,117,109, 32, 40,116, 41, 10,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,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,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,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,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,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,115, 101,108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109, 101, 93, 32, 61, 32, 48, 10,101,108,115,101, 10,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,101,110,100, 10, 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, 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,116,121,112,101, 41, 10,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,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,116,121,112,101, 10,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,116,121,112,101, 49, 41, 10,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,101,110,100, 10,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,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,102, 10,119,104,105, 108,101, 32,101,110,118, 32,100,111, 10,105,102, 32,101,110, 118, 46,116,121,112,101,100,101,102,115, 32,116,104,101,110, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,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,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, 98, 97,115,101,116,121,112,101, 32,116,104, 101,110, 10,108,111, 99, 97,108, 32,109,111,100, 49, 44,116, 121,112,101, 49, 32, 61, 32,101,110,118, 46,116,121,112,101, 100,101,102,115, 91,105, 93, 46,109,111,100, 44,101,110,118, 46,116,121,112,101,100,101,102,115, 91,105, 93, 46,116,121, 112,101, 10,108,111, 99, 97,108, 32,109,111,100, 50, 44,116, 121,112,101, 50, 32, 61, 32, 97,112,112,108,121,116,121,112, 101,100,101,102, 40,116,121,112,101, 49, 41, 10,114,101,116, 117,114,110, 32,109,111,100, 50, 46, 46, 39, 32, 39, 46, 46, 109,111,100, 49, 44,116,121,112,101, 50, 10,101,110,100, 10, 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10,101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101, 110,116, 10,101,110,100, 10,114,101,116,117,114,110, 32, 39, 39, 44,116,121,112,101, 10,101,110,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,105,115,116,121,112,101,100,101,102, 32, 40,116,121,112,101, 41, 10,108,111, 99, 97,108, 32,101,110, 118, 32, 61, 32,115,101,108,102, 10,119,104,105,108,101, 32, 101,110,118, 32,100,111, 10,105,102, 32,101,110,118, 46,116, 121,112,101,100,101,102,115, 32,116,104,101,110, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,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,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,114,101,116,117, 114,110, 32,116,121,112,101, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10,101,110, 118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10, 101,110,100, 10,114,101,116,117,114,110, 32,110,105,108, 10, 101,110,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,102,105, 110,100,116,121,112,101, 32, 40,116, 41, 10,108,111, 99, 97, 108, 32, 99,117,114,114, 32, 61, 32,115,101,108,102, 10,119, 104,105,108,101, 32, 99,117,114,114, 32,100,111, 10,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,114,101,116,117, 114,110, 32, 99,117,114,114, 46,116,121,112,101,100,101,102, 115, 91,116, 93, 10,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,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,101,110,100, 10, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,111,120, 10,101,110,100, 10,105, 102, 32, 95, 98, 97,115,105, 99, 91,116, 93, 32,116,104,101, 110, 10,114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 114,101,116,117,114,110, 32,110,105,108, 10,101,110,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,105,115,101,110,117,109, 32, 40,116,121,112,101, 41, 10,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,114,101,116,117,114,110, 32,116,114,117, 101, 10,101,110,100, 10,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, 108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108, 102, 10,119,104,105,108,101, 32,101,110,118, 32,100,111, 10, 105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104, 101,110, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, 105,108,101, 32,101,110,118, 46,101,110,117,109,115, 91,105, 93, 32,100,111, 10,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,114,101, 116,117,114,110, 32,116,114,117,101, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10, 101,110,118, 32, 61, 32,101,110,118, 46,112, 97,114,101,110, 116, 10,101,110,100, 10,114,101,116,117,114,110, 32,102, 97, 108,115,101, 10,101,110,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,100,111,112, 97,114,115,101, 32, 40,115, 41, 10,100, 111, 10,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, 105,102, 32, 98, 32,116,104,101,110, 10, 67,111,100,101, 40, 115,116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 41, 10,114,101,116,117,114,110, 32,115,116,114,115, 117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101, 110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 86,101,114, 98, 97,116,105, 109, 40, 99,111,100,101, 44, 39,114, 39, 41, 10,114,101,116, 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,108, 111, 99, 97,108, 32, 98, 44,101, 44,108,105,110,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42, 37, 36, 40, 46, 45, 92,110, 41, 34, 41, 10,105,102, 32, 98, 32,116,104,101,110, 10, 86,101,114, 98, 97,116,105,109, 40,108,105,110,101, 41, 10,114,101,116,117,114,110, 32,115, 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110, 100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32, 116,104,101,110, 10, 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, 77,111,100,117,108,101, 40,110, 97,109,101, 44, 98, 111,100,121, 41, 10,114,101,116,117,114,110, 32,115,116,114, 115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10, 101,110,100, 10,100,111, 10,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, 34, 41, 10,105,102, 32, 98, 32,116,104,101,110, 10, 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, 78, 97,109,101,115,112, 97, 99,101, 40,110, 97, 109,101, 44, 98,111,100,121, 41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10, 101,110,100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 68,101,102,105,110,101, 40,110, 97,109,101, 41, 10,114,101,116,117,114,110, 32,115, 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110, 100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 69,110,117,109,101, 114, 97,116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40, 115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10, 100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 69,110,117,109,101,114, 97, 116,101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10,114, 101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44, 101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,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, 93, 42,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,105,102, 32,110,111,116, 32, 98, 32,116, 104,101,110, 10, 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, 93, 42,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, 37, 98,123,125, 37, 115, 42, 59, 63, 37,115, 42, 34, 41, 10,101,110,100, 10,105, 102, 32, 98, 32,116,104,101,110, 10, 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, 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,114,101,116,117,114,110, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,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, 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, 105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 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,101,110,100, 10,105,102, 32, 98, 32,116,104,101,110, 10, 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, 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,114,101,116,117,114,110, 32,115, 116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110, 100, 10,101,110,100, 10,100,111, 10,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, 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, 46, 45, 37, 98, 123,125, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 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,101,110,100, 10,105,102, 32, 98, 32, 116,104,101,110, 10, 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, 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,114,101,116, 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,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, 98, 97,115,101, 32, 61, 32, 39, 39, 32, 98,111,100,121, 32, 61, 32, 39, 39, 10, 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, 10,105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 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, 10,105,102, 32,110,111,116, 32, 98, 32,116,104, 101,110, 10, 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, 46, 45, 41, 37,115, 42, 40, 37, 98,123, 125, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105,102, 32, 110,111,116, 32, 98, 32,116,104,101,110, 10, 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, 42, 40, 91, 95, 37, 119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105,102, 32,110,111,116, 32, 98, 32, 116,104,101,110, 10, 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, 46, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105, 102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 98, 97, 115,101, 32, 61, 32, 39, 39, 10, 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, 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, 37,115, 42, 34, 41, 10,105,102, 32, 110,111,116, 32, 98, 32,116,104,101,110, 10, 98, 97,115,101, 32, 61, 32, 39, 39, 10, 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,117,110,105,111,110, 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, 37,115, 42, 34, 41, 10,101,110,100, 10,101,110, 100, 10,101,110,100, 10,101,110,100, 10,101,110,100, 10,101, 110,100, 10,105,102, 32, 98, 32,116,104,101,110, 10,105,102, 32, 98, 97,115,101, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10,108,111, 99, 97,108, 32, 98, 44,101, 10, 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, 93, 42, 41, 36, 34, 41, 10,101,110,100, 10, 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, 67,108, 97, 115,115, 40,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111, 100,121, 41, 10,114,101,116,117,114,110, 32,115,116,114,115, 117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101, 110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 84,121,112, 101,100,101,102, 40,116,121,112,101,115, 41, 10,114,101,116, 117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,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, 93, 42, 91, 95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105,102, 32, 98, 32, 116,104,101,110, 10, 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, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99,108, 41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10,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,105,102, 32, 98, 32,116,104,101,110, 10, 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, 86, 97, 114,105, 97, 98,108,101, 40,100,101, 99,108, 41, 10,114,101, 116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,100,111, 10, 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,105, 102, 32, 98, 32,116,104,101,110, 10, 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, 65,114,114, 97,121, 40,100,101, 99, 108, 41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110, 100, 10,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, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115, 10,101,114,114,111,114, 40, 34, 35,112, 97, 114,115,101, 32,101,114,114,111,114, 34, 41, 10,101,108,115, 101, 10,114,101,116,117,114,110, 32, 34, 34, 10,101,110,100, 10,101,110,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,112, 97,114,115,101, 32, 40,115, 41, 10,119,104,105,108,101, 32, 115, 32,126, 61, 32, 39, 39, 32,100,111, 10,115, 32, 61, 32, 115,101,108,102, 58,100,111,112, 97,114,115,101, 40,115, 41, 10,101,110,100, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 32, 61, 32,123, 10, 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, 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,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, 108,102, 91,105, 93, 58,112,114,105,110,116, 40, 34, 34, 44, 34, 34, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,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,101, 112,114,111, 99,101,115,115, 32, 40, 41, 10,108,111, 99, 97, 108, 32, 76, 32, 61, 32,123,125, 10,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, 10,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,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,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10,116,105,110,115,101,114,116, 40, 76, 44, 99, 41, 10,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,101,110, 100, 41, 10,108,111, 99, 97,108, 32, 67, 32, 61, 32,123,125, 10,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, 10,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,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,102,117,110, 99,116, 105,111,110, 32, 40, 99, 41, 10,116,105,110,115,101,114,116, 40, 67, 44, 99, 41, 10,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,101,110,100, 41, 10,108,111, 99, 97,108, 32, 86, 32, 61, 32,123,125, 10,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,116,105, 110,115,101,114,116, 40, 86, 44,118, 41, 10,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,101,110,100, 41, 10,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, 10,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,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, 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,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,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,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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, 10,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,114, 101,116,117,114,110, 32, 76, 91,116,111,110,117,109, 98,101, 114, 40,110, 41, 93, 10,101,110,100, 41, 10,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,114,101,116,117,114,110, 32, 67, 91,116,111,110,117,109, 98,101,114, 40,110, 41, 93, 10,101, 110,100, 41, 10,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,114,101,116,117, 114,110, 32, 86, 91,116,111,110,117,109, 98,101,114, 40,110, 41, 93, 10,101,110,100, 41, 10,101,110,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,101, 97,109, 98,108,101, 32, 40, 41, 10,111,117,116,112,117,116, 40, 39, 47, 42, 92,110, 39, 41, 10,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, 111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108, 117,100,101, 32, 34,116,111,108,117, 97, 46,104, 34, 92,110, 92,110, 39, 41, 10,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,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 60,115,116,100,108,105, 98, 46,104, 62, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,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,111, 117,116,112,117,116, 40, 39,101,120,116,101,114,110, 32, 34, 67, 34, 32,105,110,116, 32,116,111,108,117, 97, 95, 98,110, 100, 95,116, 97,107,101,111,119,110,101,114,115,104,105,112, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 76, 41, 59, 32, 47, 47, 32,102,114,111,109, 32,116,111,108,117, 97, 95,109, 97,112, 46, 99, 92,110, 39, 41, 10,111,117,116,112, 117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111, 117,116,112,117,116, 40, 39,105,110,116, 32,116,111,108,117, 97, 95, 98,110,100, 95,116, 97,107,101,111,119,110,101,114, 115,104,105,112, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32, 76, 41, 59, 32, 47, 42, 32,102,114,111,109, 32,116, 111,108,117, 97, 95,109, 97,112, 46, 99, 32, 42, 47, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 60,115,116,114,105,110, 103, 46,104, 62, 92,110, 92,110, 39, 41, 10,105,102, 32,110, 111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101,110, 10,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,111,117,116,112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 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,111,117,116,112,117,116, 40, 39, 76, 85, 65, 76, 73, 66, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111, 112,101,110, 95, 39, 46, 46,115,101,108,102, 46,110, 97,109, 101, 46, 46, 39, 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,111, 117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, 108,102, 91,105, 93, 58,112,114,101, 97,109, 98,108,101, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,111,117,116,112,117, 116, 40, 39, 92,110, 39, 41, 10,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,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,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,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,111,117,116,112,117,116, 40, 39,123, 39, 41, 10,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, 111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, 114,101,108,101, 97,115,101, 40,116,111,108,117, 97, 95, 83, 44,115,101,108,102, 41, 59, 39, 41, 10,111,117,116,112,117, 116, 40, 39, 32,100,101,108,101,116,101, 32,115,101,108,102, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,114,101, 116,117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10,101,110,100, 10,111,117,116,112, 117,116, 40, 39, 35,101,110,100,105,102, 92,110, 92,110, 39, 41, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 92, 110, 39, 41, 10,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,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, 111,117,116,112,117,116, 40, 39,123, 39, 41, 10,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, 32,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, 32,101,110, 100, 41, 10,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110, 100, 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, 41, 10,112,117,115,104, 40,115,101,108,102, 41, 10,111,117,116,112,117,116, 40, 34, 47, 42, 32, 79,112, 101,110, 32,108,105, 98, 32,102,117,110, 99,116,105,111,110, 32, 42, 47, 34, 41, 10,111,117,116,112,117,116, 40, 39, 76, 85, 65, 76, 73, 66, 95, 65, 80, 73, 32,105,110,116, 32,108, 117, 97,111,112,101,110, 95, 39, 46, 46,115,101,108,102, 46, 110, 97,109,101, 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,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,111,117, 116,112,117,116, 40, 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, 111,117,116,112,117,116, 40, 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,111,117,116,112,117,116, 40, 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,111,117,116,112,117,116, 40, 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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 115,101,108,102, 91,105, 93, 58,114,101,103,105,115,116,101, 114, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,111,117,116,112,117,116, 40, 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,111,117,116,112,117,116, 40, 34, 32,114,101,116,117,114,110, 32, 49, 59, 34, 41, 10,111, 117,116,112,117,116, 40, 34,125, 34, 41, 10,111,117,116,112, 117,116, 40, 34, 47, 42, 32, 79,112,101,110, 32,116,111,108, 117, 97, 32,102,117,110, 99,116,105,111,110, 32, 42, 47, 34, 41, 10,111,117,116,112,117,116, 40, 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,111, 117,116,112,117,116, 40, 34,123, 34, 41, 10,111,117,116,112, 117,116, 40, 34, 32,108,117, 97, 95,112,117,115,104, 99,102, 117,110, 99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 32,108,117, 97,111,112,101,110, 95, 34, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 34, 41, 59, 34, 41, 10, 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, 32, 34, 39, 46, 46,115,101,108,102, 46,110, 97,109, 101, 46, 46, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,117, 116, 40, 34, 32,108,117, 97, 95, 99, 97,108,108, 40,116,111, 108,117, 97, 95, 83, 44, 32, 49, 44, 32, 48, 41, 59, 34, 41, 10,111,117,116,112,117,116, 40, 34, 32,114,101,116,117,114, 110, 32, 49, 59, 34, 41, 10,111,117,116,112,117,116, 40, 34, 125, 34, 41, 10,112,111,112, 40, 41, 10,101,110,100, 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,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, 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,111,117,116,112,117,116, 40, 39, 42, 47, 92, 110, 92,110, 39, 41, 10,105,102, 32,110,111,116, 32,102,108, 97,103,115, 46,104, 32,116,104,101,110, 10,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, 111,117,116,112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73, 32,105,110,116, 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,111,117, 116,112,117,116, 40, 39, 76, 85, 65, 76, 73, 66, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111,112,101,110, 95, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 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,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10,101,110,100, 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,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,114,101,116, 117,114,110, 32,115,101,108,102, 10,101,110,100, 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,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,115, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 34, 10,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, 119,104,105,108,101, 32,101, 32,100,111, 10,116, 32, 61, 32, 115,116,114,108,111,119,101,114, 40,116, 41, 10,105,102, 32, 116, 32, 61, 61, 32, 34, 98,101,103,105,110, 34, 32,116,104, 101,110, 10, 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,105,102, 32,110,111,116, 32,101, 32,116, 104,101,110, 10,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,101,110,100, 10,101,110, 100, 10, 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, 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,101,110,100, 10, 114,101,116,117,114,110, 32, 99,111,100,101, 10,101,110,100, 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,108,111, 99, 97,108, 32,101,120,116, 32, 61, 32, 34,112,107,103, 34, 10,105,102, 32,102,110, 32,116,104,101,110, 10,108,111, 99, 97,108, 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,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 10,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10,101,110,100, 10,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,101,110,100, 10,108,111, 99, 97,108, 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,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, 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,101,110,100, 10,105,102, 32,102,110, 32,116,104,101,110, 10,114,101, 97,100,102,114,111,109, 40, 41, 10,101,110,100, 10, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 99,111, 100,101, 44, 39, 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,108,111, 99, 97,108, 32,110,115,117, 98, 115,116, 10,114,101,112,101, 97,116, 10, 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, 37,115, 42, 92,110, 39, 44, 10,102,117,110, 99,116,105,111,110, 32, 40,107,105,110,100, 44,102,110, 41, 10,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,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,105,102, 32,110,111,116, 32,102,112, 32,116,104,101,110, 10,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,101,110,100, 10,108,111, 99, 97,108, 32, 115, 32, 61, 32,114,101, 97,100, 40,102,112, 44, 39, 42, 97, 39, 41, 10, 99,108,111,115,101,102,105,108,101, 40,102,112, 41, 10,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,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,101,108,115,101,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,112, 39, 32,116,104,101,110, 10,114,101,116, 117,114,110, 32, 34, 92,110, 92,110, 34, 32, 46, 46, 32,115, 10,101,108,115,101,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,108, 39, 32,116,104,101,110, 10,114,101,116,117,114, 110, 32, 34, 92,110, 36, 91, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 36, 93, 92,110, 34, 10,101,108, 115,101, 10,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, 32,111,114, 32, 36,108,102,105,108,101, 41, 39, 41, 10,101,110,100, 10,101, 110,100, 41, 10,117,110,116,105,108, 32,110,115,117, 98,115, 116, 61, 61, 48, 10,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,112,117, 115,104, 40,116, 41, 10,116, 58,112,114,101,112,114,111, 99, 101,115,115, 40, 41, 10,116, 58,112, 97,114,115,101, 40,116, 46, 99,111,100,101, 41, 10,112,111,112, 40, 41, 10,114,101, 116,117,114,110, 32,116, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 77,111,100,117,108,101, 32, 61, 32, 123, 10, 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,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, 41, 10,112,117, 115,104, 40,115,101,108,102, 41, 10,111,117,116,112,117,116, 40, 39, 32,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,111,117,116,112,117,116, 40, 39, 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, 34, 39, 46, 46,115,101, 108,102, 46,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, 101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101, 108,102, 91,105, 93, 58,114,101,103,105,115,116,101,114, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,111, 117,116,112,117,116, 40, 39, 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, 39, 41, 10,112,111,112, 40, 41, 10,101,110,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,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 77,111,100,117, 108,101,123, 34, 41, 10,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119, 104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,102,117,110, 99,116,105,111,110, 32, 95, 77,111,100,117,108,101, 32, 40, 116, 41, 10,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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117, 114,110, 32,116, 10,101,110,100, 10,102,117,110, 99,116,105, 111,110, 32, 77,111,100,117,108,101, 32, 40,110, 44, 98, 41, 10,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,112,117,115,104, 40,116, 41, 10,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, 10,112,111,112, 40, 41, 10,114,101,116,117, 114,110, 32,116, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 32, 61, 32,123, 10, 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, 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,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,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, 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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115, 101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,102,117,110, 99,116,105,111,110, 32, 95, 78, 97,109,101,115,112, 97, 99,101, 32, 40,116, 41, 10, 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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117, 114,110, 32,116, 10,101,110,100, 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,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, 112,117,115,104, 40, 99, 41, 10, 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, 10,112,111,112, 40, 41, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 68,101,102,105,110,101, 32, 61, 32, 123, 10,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,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, 41, 10,111,117,116,112,117,116, 40, 39, 32,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,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,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 68,101,102,105, 110,101,123, 34, 41, 10,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,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,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,102,117,110, 99,116,105,111,110, 32, 95, 68,101, 102,105,110,101, 32, 40,116, 41, 10,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,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10,105,102, 32,116, 46,110, 97,109, 101, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10,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,101,110,100, 10, 97,112,112, 101,110,100, 40,116, 41, 10,114,101,116,117,114,110, 32,116, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 68, 101,102,105,110,101, 32, 40,110, 41, 10,114,101,116,117,114, 110, 32, 95, 68,101,102,105,110,101,123, 10,110, 97,109,101, 32, 61, 32,110, 10,125, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 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,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, 41, 10,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,108,111, 99, 97,108, 32, 105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 91, 105, 93, 32,100,111, 10,111,117,116,112,117,116, 40, 39, 32, 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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,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,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,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, 108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,102,117,110, 99,116,105,111,110, 32, 95, 69, 110,117,109,101,114, 97,116,101, 32, 40,116, 41, 10,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, 97, 112,112,101,110,100, 40,116, 41, 10, 97,112,112,101,110,100, 101,110,117,109, 40,116, 41, 10,114,101,116,117,114,110, 32, 116, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 69,110,117,109,101,114, 97,116,101, 32, 40,110, 44, 98, 41, 10,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, 10,108,111, 99, 97,108, 32,105, 32, 61, 32, 49, 10,108,111, 99, 97,108, 32,101, 32, 61, 32,123, 110, 61, 48,125, 10,119,104,105,108,101, 32,116, 91,105, 93, 32,100,111, 10,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, 10,101, 46,110, 32, 61, 32,101, 46,110, 32, 43, 32, 49, 10, 101, 91,101, 46,110, 93, 32, 61, 32,116,116, 91, 49, 93, 10, 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,105, 32, 61, 32, 49, 10,101, 46,108,110, 97,109,101,115, 32, 61, 32,123, 125, 10,119,104,105,108,101, 32,101, 91,105, 93, 32,100,111, 10,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,101, 91,105, 93, 32, 61, 32,116, 91, 49, 93, 10,105,102, 32,110,111,116, 32,116, 91, 50, 93, 32,116,104,101,110, 10,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,101,110,100, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101, 46,110, 97,109,101, 32, 61, 32, 110, 10,105,102, 32,110,126, 61, 34, 34, 32,116,104,101,110, 10, 84,121,112,101,100,101,102, 40, 34,105,110,116, 32, 34, 46, 46,110, 41, 10,101,110,100, 10,114,101,116,117,114,110, 32, 95, 69,110,117,109,101,114, 97,116,101, 40,101, 41, 10, 101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105, 111,110, 32, 61, 32,123, 10,109,111,100, 32, 61, 32, 39, 39, 44, 10,116,121,112,101, 32, 61, 32, 39, 39, 44, 10,112,116, 114, 32, 61, 32, 39, 39, 44, 10,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10,100,105,109, 32, 61, 32, 39, 39, 44, 10,114, 101,116, 32, 61, 32, 39, 39, 44, 10,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,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, 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, 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,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,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,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, 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,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,115,101,108,102, 46,116,121,112, 101, 32, 61, 32,109, 91,109, 46,110, 93, 10,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,101,110,100, 10,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, 105,102, 32,116, 46,110, 61, 61, 50, 32,116,104,101,110, 10, 115,101,108,102, 46,110, 97,109,101, 32, 61, 32,116, 91, 49, 93, 10,115,101,108,102, 46,100,101,102, 32, 61, 32,116, 91, 116, 46,110, 93, 10,101,110,100, 10,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,105,102, 32, 98, 32,116,104, 101,110, 10,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,115,101,108,102, 46,100, 105,109, 32, 61, 32,100, 10,101,110,100, 10,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,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,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,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,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, 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,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,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, 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,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,101,110,100, 10,101,110,100, 10,101,110,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, 99,104,101, 99,107,116, 121,112,101, 32, 40, 41, 10,105,102, 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,126, 61, 39, 39, 32,116,104,101,110, 10,115,101,108,102, 46,114,101,116, 32, 61, 32,115,101,108,102, 46,112,116,114, 10,115,101,108,102, 46,112,116,114, 32, 61, 32,110,105,108, 10,101,110,100, 10, 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,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,101,110,100, 10,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,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,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,101,110,100, 10,101,110,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,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,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,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,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,112,116,114, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10,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,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, 10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,114,101,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10,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,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,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,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,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, 115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32, 116,104,101,110, 10,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, 42, 34, 44, 34, 34, 41, 10,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,103,115,117, 98, 40,116,121,112,101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10,114,101,116,117, 114,110, 32,116,114,117,101, 10,101,110,100, 10,114,101,116, 117,114,110, 32,102, 97,108,115,101, 10,101,110,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,100,101, 99,108,116, 121,112,101, 32, 40, 41, 10,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,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,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,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,101,110,100, 10,101,110, 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,111,117, 116, 99,104,101, 99,107,116,121,112,101, 32, 40,110, 97,114, 103, 44,118, 97,114, 41, 10,108,111, 99, 97,108, 32,100,101, 102, 10,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,105,102, 32,115,101,108,102, 46,100,101,102,126, 61, 39, 39, 32,116,104,101,110, 10,100,101,102, 32, 61, 32, 49, 10, 101,108,115,101, 10,100,101,102, 32, 61, 32, 48, 10,101,110, 100, 10,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,105,102, 32,118, 97, 114, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 61, 61, 39, 99,104, 97,114, 39, 32,116,104,101,110, 10,114, 101,116,117,114,110, 32, 39,116,111,108,117, 97, 95,105,115, 115,116,114,105,110,103, 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,101,108,115,101, 10,114,101,116,117,114,110, 32, 39,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,101,110,100, 10,101,108,115,101,105,102, 32,116, 32,116,104,101,110, 10,114,101,116,117,114,110, 32, 39,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,101, 108,115,101, 10,114,101,116,117,114,110, 32, 39,116,111,108, 117, 97, 95,105,115,117,115,101,114,116,121,112,101, 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,101, 110,100, 10,101,110,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, 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,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,108,111, 99, 97,108, 32,108,105,110,101, 32, 61, 32, 34, 34, 10,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10,108,111, 99, 97,108, 32,109,111,100, 10,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115, 101,108,102, 46,116,121,112,101, 10,105,102, 32,115,101,108, 102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101, 110, 10,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, 42, 39, 44, 39, 39, 41, 10,101,110,100, 10,108,111, 99, 97,108, 32, 99,116,121,112,101, 32, 61, 32,116,121,112, 101, 10,105,102, 32, 99,116,121,112,101, 61, 61, 34,108,117, 97, 95, 79, 98,106,101, 99,116, 34, 32,111,114, 32, 99,116, 121,112,101, 61, 61, 34,108,117, 97, 95, 70,117,110, 99,116, 105,111,110, 34, 32,116,104,101,110, 10, 99,116,121,112,101, 32, 61, 32, 34,105,110,116, 34, 10,101,110,100, 10,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,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, 99,116,121,112,101, 44,112,116,114, 41, 10,105,102, 32, 97,114,114, 97,121, 32, 116,104,101,110, 10,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,101,110,100, 10,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,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,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,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,101,108,115,101, 10,105,102, 32, 99, 112,108,117,115,112,108,117,115, 32,116,104,101,110, 10,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,110,101,119, 39, 44,116,121,112,101, 44,112,116,114, 44, 39, 91, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46, 39, 93, 59, 39, 41, 10,101,108,115,101, 10,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, 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,101,110,100, 10, 101,110,100, 10,101,108,115,101, 10,108,111, 99, 97,108, 32, 116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112, 101, 41, 10,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,105,102, 32,116, 32, 61, 61, 32, 39,115,116, 97,116,101, 39, 32,116,104,101,110, 10,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,101,108,115,101, 10,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,108,111, 99, 97,108, 32, 99,116, 32, 61, 32,116,121,112,101, 10,105,102, 32,116, 32, 61, 61, 32, 39,118, 97,108,117,101, 39, 32,111,114, 32,116, 32, 61, 61, 32, 39,102,117,110, 99,116,105,111,110, 39, 32,116,104,101, 110, 10, 99,116, 32, 61, 32, 39,105,110,116, 39, 10,101,110, 100, 10,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, 99,116, 41, 10,105, 102, 32,110,111,116, 32,116, 32,116,104,101,110, 10,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,101,110,100, 10,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,105,102, 32,105,115,101,110,117,109, 40,116,121,112,101, 41, 32,116,104,101,110, 10,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,101,110,100, 10, 108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10,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,105,102, 32,116, 32,116,104,101,110, 10,105,102, 32,116, 61, 61, 39,102,117, 110, 99,116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10,105,102, 32, 115,101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 34,116, 111,108,117, 97, 95,105,110,100,101,120, 34, 32,116,104,101, 110, 10,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, 45, 49, 41, 59, 39, 41, 10,101, 108,115,101, 10,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,101, 110,100, 10,101,108,115,101, 10,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,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, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10,101,110,100, 10,101,110,100, 10,101,110, 100, 10,114,101,116,117,114,110, 32,108,105,110,101, 10,101, 110,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,100, 101, 99,108, 97,114,101, 32, 40,110, 97,114,103, 41, 10,105, 102, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101, 126, 61, 39, 99,104, 97,114, 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,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,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,111,117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,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,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,101,108, 115,101, 10,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, 101,110,100, 10,101,110,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,103,101,116, 97,114,114, 97,121, 32, 40,110, 97,114,103, 41, 10,105,102, 32,115,101,108,102, 46,100,105, 109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,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,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10,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,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,108,111, 99, 97,108, 32,116, 32, 61, 32,105, 115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10,105,102, 32, 40,116, 41, 32,116,104,101,110, 10,111,117,116,112,117, 116, 40, 39, 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,101,108,115,101, 10,111,117, 116,112,117,116, 40, 39, 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,101,110,100, 10,111,117,116, 112,117,116, 40, 39, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108,101,114,114,111,114, 59, 39, 41, 10,111,117,116, 112,117,116, 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10, 111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92, 110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,105,110,116, 32, 105, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 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,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10,108,111, 99, 97, 108, 32,112,116,114, 32, 61, 32, 39, 39, 10,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,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108, 102, 46,110, 97,109,101, 46, 46, 39, 91,105, 93, 32, 61, 32, 39, 41, 10,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, 111,117,116,112,117,116, 40, 39, 40, 40, 39, 44,116,121,112, 101, 41, 10,105,102, 32,110,111,116, 32,116, 32,116,104,101, 110, 10,111,117,116,112,117,116, 40, 39, 42, 39, 41, 10,101, 110,100, 10,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10, 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,105,102, 32, 116, 32,116,104,101,110, 10,105,102, 32,116, 61, 61, 39,102, 117,110, 99,116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10,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,101,108,115,101, 10,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,101,110,100, 10,111, 117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,111,117,116, 112,117,116, 40, 39, 32,125, 39, 41, 10,101,110,100, 10,101, 110,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,115, 101,116, 97,114,114, 97,121, 32, 40,110, 97,114,103, 41, 10, 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, 97,110,100, 32,115,101,108,102, 46,100,105, 109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,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,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,105,110,116, 32,105, 59, 39, 41, 10,111,117,116,112,117, 116, 40, 39, 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,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,105,102, 32,116, 32,116,104,101,110, 10,105, 102, 32,116, 61, 61, 39,102,117,110, 99,116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10,111,117,116,112,117,116, 40, 39, 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,101,108,115, 101, 10,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10,111,117,116,112,117, 116, 40, 39, 32,123, 39, 41, 10,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,111,117,116,112,117,116, 40, 39, 32,118,111,105,100, 42, 32,116,111,108,117, 97, 95, 111, 98,106, 32, 61, 32,110,101,119, 39, 44,116,121,112,101, 44, 39, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 91,105, 93, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 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, 99,108,111,110,101, 40, 116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 39, 46, 46, 32, 40, 95, 99,111,108,108,101, 99, 116, 91,116,121,112,101, 93, 32,111,114, 32, 39, 78, 85, 76, 76, 39, 41, 32, 46, 46, 39, 41, 44, 34, 39, 44,116,121,112, 101, 44, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111,117,116, 112,117,116, 40, 39, 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,111, 117,116,112,117,116, 40, 39, 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, 99, 108,111,110,101, 40,116,111,108,117, 97, 95, 83, 44,116,111, 108,117, 97, 95,111, 98,106, 44, 78, 85, 76, 76, 41, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10,111, 117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 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,101,110,100, 10,101,110, 100, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10, 101,110,100, 10,101,110,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,102,114,101,101, 97,114,114, 97,121, 32, 40, 41, 10,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,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,111,117,116,112,117,116, 40, 39, 32,100,101,108,101,116,101, 32, 91, 93, 39, 44,115, 101,108,102, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10,111, 117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,102,114,101,101, 40, 39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 39, 41, 10,101,110,100, 10,101,110,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, 97,115, 115,112, 97,114, 32, 40, 41, 10,108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,101, 10,105,102, 32,115,101,108,102, 46,112,116,114, 61, 61, 39, 38, 39, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 42, 39, 46, 46,110, 97,109,101, 41, 10,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,111,117,116,112,117,116, 40, 39, 38, 39, 46, 46,110, 97,109,101, 41, 10,101,108,115,101, 10, 111,117,116,112,117,116, 40,110, 97,109,101, 41, 10,101,110, 100, 10,101,110,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,114,101,116,118, 97,108,117,101, 32, 40, 41, 10,105, 102, 32,115,101,108,102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,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,105,102, 32,116, 32,116, 104,101,110, 10,105,102, 32,116, 61, 61, 39,102,117,110, 99, 116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10,105,102, 32,115,101, 108,102, 46,116,121,112,101, 61, 61, 34,116,111,108,117, 97, 95,105,110,100,101,120, 34, 32,116,104,101,110, 10,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, 46,110, 97,109,101, 46, 46, 39, 43, 49, 41, 59, 39, 41, 10,101,108,115,101, 10,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, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10,101,110,100, 10, 101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 32,116, 111,108,117, 97, 95,112,117,115,104,117,115,101,114,116,121, 112,101, 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,101,110,100, 10,114,101, 116,117,114,110, 32, 49, 10,101,110,100, 10,114,101,116,117, 114,110, 32, 48, 10,101,110,100, 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,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,116, 58, 98,117,105,108,100, 110, 97,109,101,115, 40, 41, 10,116, 58, 99,104,101, 99,107, 110, 97,109,101, 40, 41, 10,116, 58, 99,104,101, 99,107,116, 121,112,101, 40, 41, 10,114,101,116,117,114,110, 32,116, 10, 101,110,100, 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, 41, 10,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, 105,102, 32,107,105,110,100, 32, 61, 61, 32, 34,118, 97,114, 34, 32,116,104,101,110, 10,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,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,125, 10,101,110,100, 10, 101,110,100, 10,108,111, 99, 97,108, 32,116, 32, 61, 32,115, 112,108,105,116, 40,115, 44, 39, 37, 42, 37,115, 42, 38, 39, 41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, 104,101,110, 10,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32,116,104,101,110, 10,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,101,110,100, 10, 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, 114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97, 116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 114,101,116, 32, 61, 32, 39, 38, 39, 44, 10,116,121,112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,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,107,105,110,100, 32, 61, 32,107,105, 110,100, 10,125, 10,101,110,100, 10,116, 32, 61, 32,115,112, 108,105,116, 40,115, 44, 39, 37, 42, 37,115, 42, 37, 42, 39, 41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116, 104,101,110, 10,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102,117,110, 99, 39, 32,116,104,101,110, 10,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,101,110,100, 10, 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, 114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97, 116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10, 114,101,116, 32, 61, 32, 39, 42, 39, 44, 10,116,121,112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,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,107,105,110,100, 32, 61, 32,107,105, 110,100, 10,125, 10,101,110,100, 10,116, 32, 61, 32,115,112, 108,105,116, 40,115, 44, 39, 38, 39, 41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10,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,114,101, 116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105, 111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 38, 39, 44, 10,116,121, 112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,109,111, 100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44, 109, 46,110, 45, 49, 41, 32, 44, 10,107,105,110,100, 32, 61, 32,107,105,110,100, 10,125, 10,101,110,100, 10,108,111, 99, 97,108, 32,115, 49, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 40, 37, 98, 37, 91, 37, 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,116, 32, 61, 32,115,112, 108,105,116, 40,115, 49, 44, 39, 37, 42, 39, 41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10, 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, 10,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,114,101, 116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105, 111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, 50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10,116,121, 112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,109,111, 100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44, 109, 46,110, 45, 49, 41, 32, 44, 10,107,105,110,100, 32, 61, 32,107,105,110,100, 10,125, 10,101,110,100, 10,105,102, 32, 107,105,110,100, 32, 61, 61, 32, 39,118, 97,114, 39, 32,116, 104,101,110, 10,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10,108,111, 99, 97,108, 32,118, 10,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, 39, 39, 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,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,118, 44, 10,116,121,112,101, 32, 61, 32,116, 91,116, 46,110, 93, 44, 10,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,107,105,110,100, 32, 61, 32,107,105,110,100, 10,125, 10,101,108,115,101, 10,116, 32, 61, 32,115,112,108, 105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41, 10,108, 111, 99, 97,108, 32,118, 32, 61, 32,116, 91,116, 46,110, 93, 10,108,111, 99, 97,108, 32,116,112, 44,109,100, 10,105,102, 32,116, 46,110, 62, 49, 32,116,104,101,110, 10,116,112, 32, 61, 32,116, 91,116, 46,110, 45, 49, 93, 10,109,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 10,101,110,100, 10,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,118, 44, 10,116,121,112,101, 32, 61, 32,116,112, 44, 10,109,111,100, 32, 61, 32,109,100, 44, 10, 107,105,110,100, 32, 61, 32,107,105,110,100, 10,125, 10,101, 110,100, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 32, 61, 32,123, 10, 95,103,101,116, 32, 61, 32,123,125, 44, 10, 95,115,101,116, 32, 61, 32,123,125, 44, 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,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,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, 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,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,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10,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,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,112,114,105,110,116, 40,105,100,101,110, 116, 46, 46, 34, 32,100,101,102, 32, 61, 32, 39, 34, 46, 46, 115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,114,101,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10,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,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,108,111, 99, 97,108, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 34, 10,108,111, 99, 97, 108, 32,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 34, 10,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 34, 34, 10,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,105,102, 32,112, 32,116,104,101, 110, 10,112, 97,114,101,110,116, 32, 61, 32, 34, 95, 34, 32, 46, 46, 32,112, 10,101,110,100, 10,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,117,110,115,105,103,110,101,100, 32, 61, 32, 34, 95,117,110,115,105,103,110,101,100, 34, 10,101,110,100, 10, 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,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,101,110,100, 10,108,111, 99, 97,108, 32,110, 97, 109,101, 32, 61, 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,110, 97,109,101, 44, 34, 46, 42, 58, 58, 34, 44, 34, 34, 41, 32, 46, 46, 32,112,116, 114, 10,114,101,116,117,114,110, 32,110, 97,109,101, 10,101, 110,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,105,115,118, 97, 114,105, 97, 98,108,101, 32, 40, 41, 10,114,101,116,117,114, 110, 32,116,114,117,101, 10,101,110,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,103,101,116,118, 97,108,117,101, 32, 40, 99, 108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10,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,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, 10,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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, 10,101,108,115,101, 10,114,101, 116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101, 10, 101,110,100, 10,101,110,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,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,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,114,101,116, 117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58, 58,112, 39, 10,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32, 116,104,101,110, 10,114,101,116,117,114,110, 32, 39,115,101, 108,102, 45, 62,112, 39, 10,101,108,115,101, 10,114,101,116, 117,114,110, 32, 39,112, 39, 10,101,110,100, 10,101,110,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,115,117,112, 99,111,100, 101, 32, 40, 41, 10,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,105,102, 32, 99,108, 97,115,115, 32,116,104, 101,110, 10,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,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, 95, 34, 46, 46, 99,108, 97,115,115, 41, 10,101,108,115, 101, 10,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, 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,101, 110,100, 10,111,117,116,112,117,116, 40, 34,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,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,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,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,111,117,116,112,117,116, 40, 39, 32, 39, 44, 99,108, 97,115,115, 44, 39, 42, 39, 44, 39,115,101,108, 102, 32, 61, 32, 39, 41, 10,111,117,116,112,117,116, 40, 39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39, 41, 10,111,117,116,112,117,116, 40, 39,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,101,108,115, 101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10, 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, 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,111,117,116,112,117,116, 40, 39, 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,111,117,116,112,117, 116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,101, 110,100, 10,108,111, 99, 97,108, 32,116,121,112,101, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10,105,102, 32,103, 115,117, 98, 40,116,121,112,101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39, 39, 41, 61, 61, 39, 99,104, 97,114, 39, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109,126, 61, 39, 39, 32,116,104,101,110, 10,116,121,112,101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10,101,110,100, 10,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,105,102, 32,116, 32,116,104, 101,110, 10,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,101,108,115,101, 10,116, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10,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,111,117,116,112,117, 116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104,117, 115,101,114,116,121,112,101, 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,101,108,115,101, 10, 111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, 112,117,115,104,117,115,101,114,116,121,112,101, 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,101, 110,100, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10,111,117, 116,112,117,116, 40, 39,125, 39, 41, 10,111,117,116,112,117, 116, 40, 39, 92,110, 39, 41, 10,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,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,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, 95, 34, 46, 46, 99,108, 97,115,115, 41, 10,101,108,115,101, 10, 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,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,101,110,100, 10,111,117,116,112,117,116, 40, 34,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,111, 117,116,112,117,116, 40, 34,123, 34, 41, 10,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,111,117,116,112, 117,116, 40, 39, 32, 39, 44, 99,108, 97,115,115, 44, 39, 42, 39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10,111,117, 116,112,117,116, 40, 39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39, 41, 10,111,117,116,112,117,116, 40, 39, 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,101,110,100, 10,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,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, 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, 111,117,116,112,117,116, 40, 39, 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,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 33, 39, 46, 46,115,101,108,102, 58,111,117,116, 99,104,101, 99,107,116,121,112,101, 40, 50, 44,116,114,117,101, 41, 46, 46, 39, 41, 39, 41, 10,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,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,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,108,111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10,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,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,111,117,116,112,117, 116, 40, 39, 32,115,116,114,110, 99,112,121, 40, 39, 41, 10, 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,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, 41, 10,101,108,115,101, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108,115, 101, 10,111,117,116,112,117,116, 40,115,101,108,102, 46,110, 97,109,101, 41, 10,101,110,100, 10,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,101,108,115,101, 10,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32, 39, 39, 10,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,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10,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,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, 41, 10,101, 108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101, 110, 10,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, 101,108,115,101, 10,111,117,116,112,117,116, 40,115,101,108, 102, 46,110, 97,109,101, 41, 10,101,110,100, 10,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,111,117,116,112, 117,116, 40, 39, 32, 61, 32, 39, 41, 10,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,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,105,102, 32,110,111,116, 32,116, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 42, 39, 41, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10,105,102, 32,116, 32,116,104,101, 110, 10,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,111,117, 116,112,117,116, 40, 39, 40,105,110,116, 41, 32, 39, 41, 10, 101,110,100, 10,105,102, 32,116, 61, 61, 39,102,117,110, 99, 116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10,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, 59, 39, 41, 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39,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, 50, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10,101,110,100, 10,101,110,100, 10,111,117,116, 112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,125, 39, 41, 10, 111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110, 100, 10,101,110,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,114, 101,103,105,115,116,101,114, 32, 40, 41, 10,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,105,102, 32,110,111,116, 32,112, 97,114,101,110,116, 32,116,104,101,110, 10,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,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, 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,101,110,100, 10,101,110,100, 10,105,102, 32,115,101,108, 102, 46, 99,115,101,116,110, 97,109,101, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,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,101,108,115,101, 10,111,117,116,112, 117,116, 40, 39, 32,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,101,110,100, 10,101,110,100, 10,102,117,110, 99,116,105, 111,110, 32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, 41, 10,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, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116, 117,114,110, 32,116, 10,101,110,100, 10,102,117,110, 99,116, 105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,115, 41, 10,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 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 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,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,112,114,105, 110,116, 40,105,100,101,110,116, 46, 46, 34, 65,114,114, 97, 121,123, 34, 41, 10,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,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,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,112, 116,114, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112, 116,114, 46, 46, 34, 39, 44, 34, 41, 10,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,112,114,105,110,116, 40,105, 100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44, 34, 41, 10,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, 10, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 114,101,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46, 114,101,116, 46, 46, 34, 39, 44, 34, 41, 10,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,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,114, 101,116,117,114,110, 32,116,114,117,101, 10,101,110,100, 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,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,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,101,108,115,101, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108, 115,101, 10,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,101,110,100, 10,101,110,100, 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,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, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108,115,101, 10,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,101,110,100, 10,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,111,117,116,112,117,116, 40, 34, 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,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,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, 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,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,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,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,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,111,117,116,112,117,116, 40, 39, 32, 115,101,108,102, 32, 61, 32, 39, 41, 10,111,117,116,112,117, 116, 40, 39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39, 41, 10,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,101,108,115, 101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10, 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,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10,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,111,117,116,112,117,116, 40, 39, 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,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,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,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10,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,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,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, 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, 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,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,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, 105,102, 32,116, 32,116,104,101,110, 10,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,101,108,115,101, 10,116, 32, 61, 32,115,101,108,102, 46, 116,121,112,101, 10,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,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,101, 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,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104,117,115,101,114, 116,121,112,101, 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,101,110,100, 10,101,110,100, 10,111, 117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10, 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,105,102, 32, 99,108, 97, 115,115, 32,116,104,101,110, 10,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,101,108,115,101, 10, 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,101,110, 100, 10,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,111,117,116,112,117,116, 40, 34,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,111, 117,116,112,117,116, 40, 34,123, 34, 41, 10,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,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,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,111,117,116,112,117,116, 40, 39, 32, 39, 44, 99,108, 97, 115,115, 44, 39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41, 10,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, 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,111,117,116,112,117,116, 40, 39, 32,115,101, 108,102, 32, 61, 32, 39, 41, 10,111,117,116,112,117,116, 40, 39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39, 41, 10,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,101,108,115,101,105, 102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10,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,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10, 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,111,117,116,112,117,116, 40, 39, 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, 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,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,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10,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,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,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,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, 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,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,108,111, 99, 97, 108, 32,112,116,114, 32, 61, 32, 39, 39, 10,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,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10,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,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,101,108,115,101, 105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101, 108,115,101, 10,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,101,110,100, 10,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,111,117,116, 112,117,116, 40, 39, 32, 61, 32, 39, 41, 10,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,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,105,102, 32,110,111, 116, 32,116, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 42, 39, 41, 10,101,110,100, 10,111,117,116,112,117, 116, 40, 39, 41, 32, 39, 41, 10,108,111, 99, 97,108, 32,100, 101,102, 32, 61, 32, 48, 10,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,105,102, 32,116, 32,116,104,101,110, 10,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,111,117,116,112,117, 116, 40, 39, 40,105,110,116, 41, 39, 41, 10,101,110,100, 10, 105,102, 32,116, 61, 61, 39,102,117,110, 99,116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10,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,101,108,115,101, 10,111,117,116, 112,117,116, 40, 39,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, 51, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10, 101,110,100, 10,111,117,116,112,117,116, 40, 39, 32,114,101, 116,117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117, 116, 40, 39,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10,101,110,100, 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, 41, 10, 105,102, 32,115,101,108,102, 46, 99,115,101,116,110, 97,109, 101, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,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,101,108,115,101, 10,111, 117,116,112,117,116, 40, 39, 32,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,101,110,100, 10,101,110,100, 10,102,117,110, 99,116,105, 111,110, 32, 95, 65,114,114, 97,121, 32, 40,116, 41, 10,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, 97,112,112,101, 110,100, 40,116, 41, 10,114,101,116,117,114,110, 32,116, 10, 101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 65,114, 114, 97,121, 32, 40,115, 41, 10,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 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 32, 61, 32,123, 10,109,111,100, 32, 61, 32, 39, 39, 44, 10,116, 121,112,101, 32, 61, 32, 39, 39, 44, 10,112,116,114, 32, 61, 32, 39, 39, 44, 10,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 97,114,103,115, 32, 61, 32,123,110, 61, 48,125, 44, 10, 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,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,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,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,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, 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,101,110,100, 10,108, 111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32, 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,100, 101, 99,108,116,121,112,101, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,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,115,117,112, 99,111,100,101, 32, 40, 41, 10, 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, 10,108,111, 99, 97,108, 32,110,114,101,116, 32, 61, 32, 48, 10,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, 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,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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,101,108,115,101, 10,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,101,110,100, 10,111,117,116,112,117,116, 40, 34,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, 111,117,116,112,117,116, 40, 34,123, 34, 41, 10,105,102, 32, 111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104, 101,110, 10,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,101,110,100, 10,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, 111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 92,110, 39, 41, 10,108,111, 99, 97,108, 32,110, 97,114,103, 10,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,105,102, 32, 99,108, 97,115,115, 32, 116,104,101,110, 10,108,111, 99, 97,108, 32,102,117,110, 99, 32, 61, 32, 39,116,111,108,117, 97, 95,105,115,117,115,101, 114,116,121,112,101, 39, 10,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,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,116,121,112,101, 32, 61, 32,115,101,108,102, 46, 99, 111,110,115,116, 32, 46, 46, 32, 34, 32, 34, 32, 46, 46, 32, 116,121,112,101, 10,101,110,100, 10,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,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,116,121,112,101, 32, 61, 32,115,101,108,102, 46,112, 97, 114,101,110,116, 46,116,121,112,101, 10,101,110,100, 10,111, 117,116,112,117,116, 40, 39, 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, 32, 92,110, 39, 41, 10,101,110,100, 10,108,111, 99, 97,108, 32, 118, 97,114, 97,114,103, 32, 61, 32,102, 97,108,115,101, 10, 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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103, 115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97, 114,103,115, 91,105, 93, 46,116,121,112,101, 32,126, 61, 32, 34, 46, 46, 46, 34, 32,100,111, 10,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,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, 111,117,116,112,117,116, 40, 39, 32, 33, 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, 44,102, 97,108,115,101, 41, 46, 46, 39, 32,124,124, 32, 92,110, 39, 41, 10,101,110,100, 10,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,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10, 101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,105,102, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,116,104,101,110, 10,118, 97,114, 97,114,103, 32, 61, 32,116,114,117,101, 10,101,110,100, 10,101,110,100, 10,105, 102, 32,110,111,116, 32,118, 97,114, 97,114,103, 32,116,104, 101,110, 10,111,117,116,112,117,116, 40, 39, 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, 39, 41, 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 32, 48, 92,110, 39, 41, 10,101,110,100, 10,111,117,116,112, 117,116, 40, 39, 32, 41, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,103,111,116,111, 32,116,111,108,117, 97, 95,108, 101,114,114,111,114, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10,105,102, 32, 111,118,101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104, 101,110, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10,101,110,100, 10,111,117,116,112, 117,116, 40, 39, 32,123, 39, 41, 10,108,111, 99, 97,108, 32, 110, 97,114,103, 10,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,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,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,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,111,117, 116,112,117,116, 40, 39,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,101,108,115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 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,101,110,100, 10,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, 105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46,116,121,112,101, 32,126, 61, 32, 34, 46, 46, 46, 34, 32,100,111, 10,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,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,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10, 101,110,100, 10,101,110,100, 10,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,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,111,117,116,112,117,116, 40, 39, 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,111, 117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,101,110,100, 10,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,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,108,111, 99, 97,108, 32,105, 61, 49, 10, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,114, 103,115, 91,105, 93, 46,116,121,112,101, 32,126, 61, 32, 34, 46, 46, 46, 34, 32,100,111, 10,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,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,110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100, 10,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,111,117,116,112,117,116, 40, 39, 32,116,111, 108,117, 97, 95,114,101,108,101, 97,115,101, 40,116,111,108, 117, 97, 95, 83, 44,115,101,108,102, 41, 59, 39, 41, 10,111, 117,116,112,117,116, 40, 39, 32,100,101,108,101,116,101, 32, 115,101,108,102, 59, 39, 41, 10,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,111,117,116, 112,117,116, 40, 39, 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, 101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10,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,108,111, 99, 97,108, 32, 99,116,121, 112,101, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10, 105,102, 32, 99,116,121,112,101, 32, 61, 61, 32, 39,118, 97, 108,117,101, 39, 32,111,114, 32, 99,116,121,112,101, 32, 61, 61, 32, 39,102,117,110, 99,116,105,111,110, 39, 32,116,104, 101,110, 10, 99,116,121,112,101, 32, 61, 32, 39,105,110,116, 39, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46,109,111,100, 44, 99,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,105,102, 32, 105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121, 112,101, 41, 32,111,114, 32,115,101,108,102, 46,112,116,114, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,111,117,116, 112,117,116, 40, 39, 40, 39, 44,115,101,108,102, 46,109,111, 100, 44, 99,116,121,112,101, 44,115,101,108,102, 46,112,116, 114, 44, 39, 41, 32, 39, 41, 10,101,110,100, 10,101,108,115, 101, 10,111,117,116,112,117,116, 40, 39, 32, 39, 41, 10,101, 110,100, 10,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,111,117,116,112,117,116, 40, 39,110,101,119, 39, 44,115,101,108,102, 46,116,121,112,101, 44, 39, 40, 39, 41, 10,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,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,101,108,115,101,105, 102, 32, 99,108, 97,115,115, 32,116,104,101,110, 10,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, 101,108,115,101, 10,111,117,116,112,117,116, 40,115,101,108, 102, 46,110, 97,109,101, 44, 39, 40, 39, 41, 10,101,110,100, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108, 101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46,116,121,112,101, 32,126, 61, 32, 34, 46, 46, 46, 34, 32,100,111, 10,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 58,112, 97,115,115,112, 97,114, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,105,102, 32,115,101,108,102, 46, 97,114, 103,115, 91,105, 93, 32, 97,110,100, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 46,116,121,112,101, 32,126, 61, 32, 34, 46, 46, 46, 34, 32,116,104,101,110, 10,111,117,116, 112,117,116, 40, 39, 44, 39, 41, 10,101,110,100, 10,101,110, 100, 10,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,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 45, 49, 41, 59, 39, 41, 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 41, 59, 39, 41, 10,101,110,100, 10,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,110,114,101,116, 32, 61, 32,110,114,101,116, 32, 43, 32, 49, 10,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,105, 102, 32,116, 32,116,104,101,110, 10,105,102, 32,116, 61, 61, 39,102,117,110, 99,116,105,111,110, 39, 32,116,104,101,110, 32,116, 61, 39,118, 97,108,117,101, 39, 32,101,110,100, 10, 105,102, 32,115,101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 39,116,111,108,117, 97, 95,105,110,100,101,120, 39, 32, 116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,105, 102, 32, 40,116,111,108,117, 97, 95,114,101,116, 32, 60, 32, 48, 41, 32,108,117, 97, 95,112,117,115,104,110,105,108, 40, 116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10,111,117,116, 112,117,116, 40, 39, 32,101,108,115,101, 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, 43, 49, 41, 59, 39, 41, 10,101,108,115,101, 10,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,116,111,108,117, 97, 95,114,101,116, 41, 59, 39, 41, 10,101,110,100, 10,101,108,115,101, 10,116, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 10,105,102, 32,115, 101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116, 104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10,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,111,117,116,112,117,116, 40, 39, 32,118,111,105, 100, 42, 32,116,111,108,117, 97, 95,111, 98,106, 32, 61, 32, 110,101,119, 39, 44,116, 44, 39, 40,116,111,108,117, 97, 95, 114,101,116, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104,117,115,101, 114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44,116, 111,108,117, 97, 95, 99,108,111,110,101, 40,116,111,108,117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 39, 46, 46, 32, 40, 95, 99,111,108,108,101, 99,116, 91,116, 93, 32,111,114, 32, 39, 78, 85, 76, 76, 39, 41, 32, 46, 46, 39, 41, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10,111, 117,116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 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,111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,104,117,115, 101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 116,111,108,117, 97, 95, 99,108,111,110,101, 40,116,111,108, 117, 97, 95, 83, 44,116,111,108,117, 97, 95,111, 98,106, 44, 78, 85, 76, 76, 41, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100, 105,102, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,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,111,117,116,112,117,116, 40, 39, 32,116,111,108, 117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,101, 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,101,108,115,101, 10,111, 117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112, 117,115,104,117,115,101,114,116,121,112,101, 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,105,102, 32,115,101,108,102, 46,109,111,100, 32, 61, 61, 32, 39,116,111,108,117, 97, 95,111,119,110, 39, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32, 108,117, 97, 95,112,117,115,104, 99,102,117,110, 99,116,105, 111,110, 40,116,111,108,117, 97, 95, 83, 44, 32,116,111,108, 117, 97, 95, 98,110,100, 95,116, 97,107,101,111,119,110,101, 114,115,104,105,112, 41, 59, 39, 41, 10,111,117,116,112,117, 116, 40, 39, 32,108,117, 97, 95,112,117,115,104,118, 97,108, 117,101, 40,116,111,108,117, 97, 95, 83, 44, 32, 45, 50, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95, 99, 97,108,108, 40,116,111,108,117, 97, 95, 83, 44, 32, 49, 44, 32, 48, 41, 59, 39, 41, 10,101,110,100, 10,101, 110,100, 10,101,110,100, 10,101,110,100, 10,108,111, 99, 97, 108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101, 110,100, 10,111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,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,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,108, 111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32, 115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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,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, 110, 97,114,103, 32, 61, 32,110, 97,114,103, 43, 49, 10,101, 110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10, 101,110,100, 10,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10, 101,110,100, 10,101,110,100, 10,101,110,100, 10,111,117,116, 112,117,116, 40, 39, 32,125, 39, 41, 10,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,105,102, 32,111,118, 101,114,108,111, 97,100, 32, 60, 32, 48, 32,116,104,101,110, 10,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,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,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,111, 117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101, 110,100,105,102, 92,110, 39, 41, 10,101,108,115,101, 10,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,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, 39, 40,116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,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,114, 101,103,105,115,116,101,114, 32, 40, 41, 10,111,117,116,112, 117,116, 40, 39, 32,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,101,110,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,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,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,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, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 112,116,114, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46, 112,116,114, 46, 46, 34, 39, 44, 34, 41, 10,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,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,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,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,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,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,108,111, 99, 97,108, 32,105, 61, 49, 10, 119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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, 34, 44, 34, 44, 34, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,114,105,110,116, 40, 105,100,101,110,116, 46, 46, 34, 32,125, 34, 41, 10,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,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,108,111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, 10,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,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, 42, 34, 44, 34, 34, 41, 10,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,103,115,117, 98, 40,116,121,112, 101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10,114, 32, 61, 32,116,114,117,101, 10,101,110,100, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,114,101,116,117,114,110, 32,114, 10,101,110,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,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,102,117,110, 99,116,105, 111,110, 32, 95, 70,117,110, 99,116,105,111,110, 32, 40,116, 41, 10,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,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,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,101,110,100, 10, 97,112,112,101,110,100, 40,116, 41, 10,105,102, 32,116, 58,105,110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, 10,105,102, 32,116, 46,110, 97,109,101, 32, 61, 61, 32,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 32,116,104, 101,110, 10,116, 46,110, 97,109,101, 32, 61, 32, 39,110,101, 119, 39, 10,116, 46,108,110, 97,109,101, 32, 61, 32, 39,110, 101,119, 39, 10,116, 46,116,121,112,101, 32, 61, 32,116, 46, 112, 97,114,101,110,116, 46,110, 97,109,101, 10,116, 46,112, 116,114, 32, 61, 32, 39, 42, 39, 10,101,108,115,101,105,102, 32,116, 46,110, 97,109,101, 32, 61, 61, 32, 39,126, 39, 46, 46,116, 46,112, 97,114,101,110,116, 46,110, 97,109,101, 32, 116,104,101,110, 10,116, 46,110, 97,109,101, 32, 61, 32, 39, 100,101,108,101,116,101, 39, 10,116, 46,108,110, 97,109,101, 32, 61, 32, 39,100,101,108,101,116,101, 39, 10,116, 46,112, 97,114,101,110,116, 46, 95,100,101,108,101,116,101, 32, 61, 32,116,114,117,101, 10,101,110,100, 10,101,110,100, 10,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, 114,101,116,117,114,110, 32,116, 10,101,110,100, 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,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, 10, 108,111, 99, 97,108, 32,105, 61, 49, 10,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10,119,104,105,108, 101, 32,116, 91,105, 93, 32,100,111, 10,108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,102, 46, 97,114,103,115, 32, 61, 32,108, 10,102, 46, 99,111,110,115,116, 32, 61, 32, 99, 10,114,101,116,117,114,110, 32, 95, 70,117,110, 99,116, 105,111,110, 40,102, 41, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 79,112,101,114, 97,116,111,114, 32, 61, 32,123, 10,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, 95, 84, 77, 32, 61, 32,123, 91, 39, 43, 39, 93, 32, 61, 32, 39, 97,100,100, 39, 44, 10, 91, 39, 45, 39, 93, 32, 61, 32, 39,115,117, 98, 39, 44, 10, 91, 39, 42, 39, 93, 32, 61, 32, 39,109,117,108, 39, 44, 10, 91, 39, 47, 39, 93, 32, 61, 32, 39,100,105,118, 39, 44, 10, 91, 39, 60, 39, 93, 32, 61, 32, 39,108,116, 39, 44, 10, 91, 39, 60, 61, 39, 93, 32, 61, 32, 39,108,101, 39, 44, 10, 91, 39, 61, 61, 39, 93, 32, 61, 32, 39,101,113, 39, 44, 10, 91, 39, 91, 93, 39, 93, 32, 61, 32, 39,103,101,116,105, 39, 44, 10, 91, 39, 38, 91, 93, 39, 93, 32, 61, 32, 39,115,101,116,105, 39, 44, 10,125, 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,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,112, 114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,107, 105,110,100, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46, 107,105,110,100, 46, 46, 34, 39, 44, 34, 41, 10,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,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,112,114,105,110,116, 40,105,100,101, 110,116, 46, 46, 34, 32,112,116,114, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10,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, 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, 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, 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, 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,108,111, 99, 97, 108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108, 102, 46, 97,114,103,115, 91,105, 93, 32,100,111, 10,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, 34, 44, 34, 44, 34, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10, 112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32, 125, 34, 41, 10,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,102,117,110, 99,116,105,111,110, 32, 95, 79,112, 101,114, 97,116,111,114, 32, 40,116, 41, 10,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,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,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,101,110,100, 10, 97,112,112,101,110, 100, 40,116, 41, 10,105,102, 32,110,111,116, 32,116, 58,105, 110, 99,108, 97,115,115, 40, 41, 32,116,104,101,110, 10,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,101,110,100, 10,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, 95, 84, 77, 91,116, 46, 107,105,110,100, 93, 10,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,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, 10,114,101,116,117,114,110, 32,116, 10,101,110,100, 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,108,111, 99, 97,108, 32,114,101,102, 32, 61, 32, 39, 39, 10,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, 115,116,114,108,101,110, 40, 97, 41, 45, 49, 41, 44, 39, 44, 39, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,108,111, 99, 97,108, 32,108, 32, 61, 32,123,110, 61, 48,125, 10,119, 104,105,108,101, 32,116, 91,105, 93, 32,100,111, 10,108, 46, 110, 32, 61, 32,108, 46,110, 43, 49, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,105,102, 32,107, 32, 61, 61, 32, 39, 91, 93, 39, 32,116,104,101,110, 10,108,111, 99, 97,108, 32, 95, 10, 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,100, 32, 61, 32,103,115,117, 98, 40,100, 44, 39, 38, 39, 44, 39, 39, 41, 10,101,108,115,101,105,102, 32,107, 61, 61, 39, 38, 91, 93, 39, 32,116,104,101,110, 10, 108, 46,110, 32, 61, 32,108, 46,110, 43, 49, 10,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,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,101,110,100, 10,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,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,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,101,110,100, 10,102, 46, 97,114,103, 115, 32, 61, 32,108, 10,102, 46, 99,111,110,115,116, 32, 61, 32, 99, 10,102, 46,107,105,110,100, 32, 61, 32,103,115,117, 98, 40,107, 44, 34, 37,115, 34, 44, 34, 34, 41, 10,105,102, 32,110,111,116, 32, 95, 84, 77, 91,102, 46,107,105,110,100, 93, 32,116,104,101,110, 10,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,101,110,100, 10,102, 46,108,110, 97,109,101, 32, 61, 32, 34, 46, 34, 46, 46, 95, 84, 77, 91,102, 46,107,105,110,100, 93, 10,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, 79,112,101,114, 97, 116,111,114, 40,100, 44, 39, 38, 39, 46, 46,107, 44, 97, 44, 99, 41, 10,101,110,100, 10,114,101,116,117,114,110, 32, 95, 79,112,101,114, 97,116,111,114, 40,102, 41, 10,101,110,100, 32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 99,108, 97,115,115, 67,108, 97,115,115, 32, 61, 32,123, 10, 99,108, 97,115,115,116,121,112,101, 32, 61, 32, 39, 99, 108, 97,115,115, 39, 44, 10,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10, 98, 97,115,101, 32, 61, 32, 39, 39, 44, 10,116, 121,112,101, 32, 61, 32, 39, 39, 44, 10, 98,116,121,112,101, 32, 61, 32, 39, 39, 44, 10, 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,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, 41, 10,112,117,115,104, 40,115,101,108,102, 41, 10,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,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, 111,117,116,112,117,116, 40, 39, 32,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,111,117,116,112, 117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,111, 117,116,112,117,116, 40, 39, 32,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,111,117,116,112,117,116, 40, 39, 35,101,110, 100,105,102, 92,110, 39, 41, 10,101,108,115,101, 10,111,117, 116,112,117,116, 40, 39, 32,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,101,110,100, 10,111,117,116,112,117,116, 40, 39, 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, 34, 39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 41, 59, 39, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10, 119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100, 111, 10,115,101,108,102, 91,105, 93, 58,114,101,103,105,115, 116,101,114, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101, 110,100, 10,111,117,116,112,117,116, 40, 39, 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, 39, 41, 10,112,111,112, 40, 41, 10,101,110,100, 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,112,117,115,104, 40,115,101,108,102, 41, 10,108,111, 99, 97,108, 32,114, 32, 61, 32,102, 97,108,115,101, 10,108, 111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32, 115,101,108,102, 91,105, 93, 32,100,111, 10,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,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111,112, 40, 41, 10,105,102, 32,115,101,108,102, 46, 95,100,101,108,101,116,101, 32,116,104,101,110, 10,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,114, 32, 61, 32,116,114,117,101, 10,101,110,100, 10,114,101,116,117, 114,110, 32,114, 10,101,110,100, 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,112,117,115,104, 40,115,101,108,102, 41, 10,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,110, 97,109,101, 41, 10,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,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115, 101,108,102, 91,105, 93, 32,100,111, 10,115,101,108,102, 91, 105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111,112, 40, 41, 10,101,110,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,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 67,108, 97,115,115,123, 34, 41, 10,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,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,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,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,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,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,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104, 105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10, 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, 105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,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,102,117,110, 99, 116,105,111,110, 32, 95, 67,108, 97,115,115, 32, 40,116, 41, 10,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,116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10, 97,112, 112,101,110,100, 40,116, 41, 10,114,101,116,117,114,110, 32, 116, 10,101,110,100, 10,102,117,110, 99,116,105,111,110, 32, 67,108, 97,115,115, 32, 40,110, 44,112, 44, 98, 41, 10,108, 111, 99, 97,108, 32, 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,112,125, 41, 10,112, 117,115,104, 40, 99, 41, 10, 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, 10,112,111,112, 40, 41, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10, 83, 84, 82, 49, 32, 61, 32, 34, 92, 48, 48, 49, 34, 13, 10, 83, 84, 82, 50, 32, 61, 32, 34, 92, 48, 48, 50, 34, 13, 10, 83, 84, 82, 51, 32, 61, 32, 34, 92, 48, 48, 51, 34, 13, 10, 83, 84, 82, 52, 32, 61, 32, 34, 92, 48, 48, 52, 34, 13, 10, 82, 69, 77, 32, 61, 32, 34, 92, 48, 48, 53, 34, 13, 10, 65, 78, 89, 32, 61, 32, 34, 40, 91, 92, 48, 48, 49, 45, 92, 48, 48, 53, 93, 41, 34, 13, 10, 69, 83, 67, 49, 32, 61, 32, 34, 92, 48, 48, 54, 34, 13, 10, 69, 83, 67, 50, 32, 61, 32, 34, 92, 48, 48, 55, 34, 13, 10, 13, 10, 77, 65, 83, 75, 32, 61, 32,123, 10,123, 69, 83, 67, 49, 44, 32, 34, 92, 92, 39, 34, 44, 32, 34, 92, 92, 39, 34,125, 44, 13, 10,123, 69, 83, 67, 50, 44, 32, 39, 92, 92, 34, 39, 44, 32, 39, 92, 92, 34, 39,125, 44, 13, 10,123, 83, 84, 82, 49, 44, 32, 34, 39, 34, 44, 32, 34, 39, 34,125, 44, 13, 10,123, 83, 84, 82, 50, 44, 32, 39, 34, 39, 44, 32, 39, 34, 39,125, 44, 13, 10,123, 83, 84, 82, 51, 44, 32, 34, 37, 91, 37, 91, 34, 44, 32, 34, 91, 91, 34,125, 44, 13, 10,123, 83, 84, 82, 52, 44, 32, 34, 37, 93, 37, 93, 34, 44, 32, 34, 93, 93, 34,125, 44, 13, 10,123, 82, 69, 77, 32, 44, 32, 34, 37, 45, 37, 45, 34, 44, 32, 34, 45, 45, 34,125, 44, 13, 10,125, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32,109, 97,115,107, 32, 40,115, 41, 13, 10,102,111,114, 32,105, 32, 61, 32, 49, 44,103,101,116,110, 40, 77, 65, 83, 75, 41, 32,100,111, 13, 10,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, 13, 10,101,110,100, 13, 10,114,101,116,117,114,110, 32,115, 13, 10,101,110,100, 13, 10, 13, 10,102,117,110, 99,116,105,111, 110, 32,117,110,109, 97,115,107, 32, 40,115, 41, 13, 10,102, 111,114, 32,105, 32, 61, 32, 49, 44,103,101,116,110, 40, 77, 65, 83, 75, 41, 32,100,111, 13, 10,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, 51, 93, 41, 13, 10,101, 110,100, 13, 10,114,101,116,117,114,110, 32,115, 13, 10,101, 110,100, 13, 10, 13, 10,102,117,110, 99,116,105,111,110, 32, 99,108,101, 97,110, 32, 40,115, 41, 13, 10,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, 32, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34, 32,101,110,100, 34, 32, 13, 10,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, 13, 10,114,101,116,117,114,110, 32,110,105,108, 13, 10,101,110, 100, 13, 10, 13, 10,108,111, 99, 97,108, 32, 83, 32, 61, 32, 34, 34, 10, 13, 10,115, 32, 61, 32,109, 97,115,107, 40,115, 41, 13, 10, 13, 10,119,104,105,108,101, 32, 49, 32,100,111, 13, 10,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, 13, 10,105,102, 32, 98, 32,116,104,101,110, 32, 13, 10, 83, 32, 61, 32, 83, 46, 46,115,116,114,115,117, 98, 40,115, 44, 49, 44, 98, 45, 49, 41, 13, 10,115, 32, 61, 32,115,116,114, 115,117, 98, 40,115, 44, 98, 43, 49, 41, 13, 10,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, 13, 10,101, 32, 61, 32,115, 116,114,102,105,110,100, 40,115, 44,100, 41, 13, 10, 83, 32, 61, 32, 83, 32, 46, 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44, 49, 44,101, 41, 13, 10,115, 32, 61, 32,115,116, 114,115,117, 98, 40,115, 44,101, 43, 49, 41, 13, 10,101,108, 115,101,105,102, 32,100, 61, 61, 83, 84, 82, 51, 32,116,104, 101,110, 13, 10,101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 83, 84, 82, 52, 41, 13, 10, 83, 32, 61, 32, 83, 46, 46,100, 46, 46,115,116,114,115,117, 98, 40,115, 44, 49, 44,101, 41, 13, 10,115, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 13, 10,101,108,115,101,105,102, 32,100, 61, 61, 82, 69, 77, 32,116,104,101,110, 13, 10,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, 13, 10,101,110,100, 32, 13, 10,101,108,115,101, 13, 10, 83, 32, 61, 32, 83, 46, 46,115, 13, 10, 98,114,101, 97,107, 13, 10,101,110,100, 13, 10,101,110,100, 13, 10, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 91, 32, 92,116, 93, 43, 34, 44, 34, 32, 34, 41, 13, 10, 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, 13, 10, 83, 32, 61, 32,103,115,117, 98, 40, 83, 44, 34, 92,110, 43, 34, 44, 34, 92,110, 34, 41, 13, 10, 83, 32, 61, 32,117,110,109, 97, 115,107, 40, 83, 41, 13, 10,114,101,116,117,114,110, 32, 83, 13, 10,101,110,100, 13,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ static unsigned char B[] = { 10,102,117,110, 99,116,105,111,110, 32,100,111,105,116, 32, 40, 41, 10,105,102, 32,110,111,116, 32,102,108, 97,103,115, 46,110, 32,116,104,101,110, 10,105,102, 32,102,108, 97,103, 115, 46,102, 32,116,104,101,110, 10,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, 34, 44, 34, 34, 41, 10,101,108, 115,101, 10,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,101,110,100, 10,101,110,100, 10,108,111, 99, 97,108, 32,112, 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,105,102, 32,102,108, 97,103,115, 46, 112, 32,116,104,101,110, 10,114,101,116,117,114,110, 10,101, 110,100, 10,105,102, 32,102,108, 97,103,115, 46,111, 32,116, 104,101,110, 10,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,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 10,101,114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10,101,110,100, 10,101,110,100, 10, 112, 58,100,101, 99,108,116,121,112,101, 40, 41, 10,105,102, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, 10,112, 58,112,114,105,110,116, 40, 41, 10,101,108,115,101, 10,112, 58,112,114,101, 97,109, 98,108,101, 40, 41, 10,112, 58,115, 117,112, 99,111,100,101, 40, 41, 10,112, 58,114,101,103,105, 115,116,101,114, 40, 41, 10,101,110,100, 10,105,102, 32,102, 108, 97,103,115, 46,111, 32,116,104,101,110, 10,119,114,105, 116,101,116,111, 40, 41, 10,101,110,100, 10,105,102, 32,110, 111,116, 32,102,108, 97,103,115, 46, 80, 32,116,104,101,110, 10,105,102, 32,102,108, 97,103,115, 46, 72, 32,116,104,101, 110, 10,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,105,102, 32,110,111,116, 32,115,116, 32,116, 104,101,110, 10,101,114,114,111,114, 40, 39, 35, 39, 46, 46, 109,115,103, 41, 10,101,110,100, 10,112, 58,104,101, 97,100, 101,114, 40, 41, 10,119,114,105,116,101,116,111, 40, 41, 10, 101,110,100, 10,101,110,100, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ { /* begin embedded lua code */ 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, 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,116,111,108,117, 97, 95,101, 114,114,111,114, 40,109,115,103, 44,108, 97, 98,101,108, 41, 10,101,110,100,32 }; if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK) lua_pcall(tolua_S,0,LUA_MULTRET,0); } /* end of embedded lua code */ tolua_endmodule(tolua_S); return 1; } /* Open tolua function */ TOLUA_API int tolua_tolua_open (lua_State* tolua_S) { lua_pushcfunction(tolua_S, luaopen_tolua); lua_pushstring(tolua_S, "tolua"); lua_call(tolua_S, 1, 0); return 1; } tolua-5.2.0/src/bin/lua/all.lua000644 000765 000767 00000001254 11717267062 015500 0ustar00celes000000 000000 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.."class.lua") dofile(path.."clean.lua") dofile(path.."doit.lua") local err,msg = pcall(doit) if not err then local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)") tolua_error(msg,label) end tolua-5.2.0/src/bin/lua/array.lua000644 000765 000767 00000013340 11717267062 016045 0ustar00celes000000 000000 -- tolua: array class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1999 -- $Id: array.lua,v 1.4 2011/01/13 13:43:45 fabraham 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("static 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('(',class,'*) ') 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') output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') output('#ifndef TOLUA_RELEASE\n') output(' if (tolua_index<0 || tolua_index>='..self.dim..')') output(' tolua_error(tolua_S,"array indexing out of range.",NULL);') output('#endif\n') -- return value local t,ct = isbasic(self.type) 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(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') else output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') end end output(' return 1;') output('}') 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("static 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(' ',class,'*','self;') output(' lua_pushstring(tolua_S,".self");') output(' lua_rawget(tolua_S,1);') output(' self = ') output('(',class,'*) ') 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') output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;') output('#ifndef TOLUA_RELEASE\n') output(' if (tolua_index<0 || tolua_index>='..self.dim..')') 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 if isenum(self.type) then output('(int)') end if t=='function' then t='value' end output('tolua_to'..t,'(tolua_S,3,',def,'));') else output('tolua_tousertype(tolua_S,3,',def,'));') end output(' return 0;') output('}') output('\n') end end function classArray:register () if self.csetname then output(' tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') else output(' 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 tolua-5.2.0/src/bin/lua/._basic.lua000644 000765 000765 00000000341 11717267062 017234 0ustar00celesceles000000 000000 Mac OS X  2ATTRIIcom.apple.quarantineq/0001;4f3c168e;Mail;B0B98B99-1A0B-48E4-B489-A891C5693194|com.apple.mailtolua-5.2.0/src/bin/lua/basic.lua000644 000765 000767 00000011307 11717267062 016011 0ustar00celes000000 000000 -- tolua: basic utility functions -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- Last update: Apr 2003 -- $Id: basic.lua,v 1.4 2009/11/24 16:45:13 fabraham 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. -- 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', ['tolua_index'] = 'number', ['tolua_byte'] = 'number', ['tolua_ubyte'] = 'number', ['int'] = 'number', ['short'] = 'number', ['long'] = 'number', ['unsigned'] = 'number', ['float'] = 'number', ['double'] = 'number', ['_cstring'] = 'string', ['_userdata'] = 'userdata', ['char*'] = 'string', ['void*'] = 'userdata', ['bool'] = 'boolean', ['lua_State*'] = 'state', ['_lstate'] = 'state', ['lua_Object'] = 'value', ['lua_Function'] = 'function', ['LUA_VALUE'] = 'value', -- for compatibility with tolua 4.0 } _basic_ctype = { number = "lua_Number", string = "const char*", userdata = "void*", boolean = "bool", value = "int", } -- 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 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) 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 print(debug.traceback("\n** tolua internal error: "..f..s..".\n\n")) return end _OUTPUT = out end function warning (msg) 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) local ft = findtype(t) if isbasic(t) then return t end if not ft then return appendusertype(t) end end -- return type name: returns full type function typevar(type) if type == '' or type == 'void' or type == "..." 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 -- concatenate strings of a table function concat (t,f,l) local s = '' local i=f while i<=l do s = s..t[i] i = i+1 if i <= l then s = s..' ' end end return s end -- concatenate all parameters, following output rules function concatparam (line, ...) local arg = {...} local i=1 while i<=#arg 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],"[%/%)%;%{%}]$") then _cont=nil line = line .. '\n' end return line end -- output line function output (...) local arg = {...} local i=1 while i<=#arg 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],"[%/%)%;%{%}]$") then _cont=nil write('\n') end end tolua-5.2.0/src/bin/lua/class.lua000644 000765 000767 00000005424 11717267062 016040 0ustar00celes000000 000000 -- tolua: class class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: class.lua,v 1.3 2009/11/24 16:45:13 fabraham 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. -- 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 () push(self) if _collect[self.type] then output('#ifdef __cplusplus\n') output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",'.._collect[self.type]..');') output('#else\n') output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') output('#endif\n') else output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",NULL);') end output(' tolua_beginmodule(tolua_S,"'..self.lname..'");') local i=1 while self[i] do self[i]:register() i = i+1 end output(' tolua_endmodule(tolua_S);') pop() end -- return collection requirement function classClass:requirecollection (t) 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 if self._delete then t[self.type] = "tolua_collect_" .. gsub(self.type,"::","_") r = true end return r end -- output tags function classClass:decltype () push(self) self.type = regtype(self.name) self.btype = typevar(self.base) self.ctype = 'const '..self.type 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 -- Internal constructor function _Class (t) setmetatable(t,classClass) t:buildnames() append(t) return t end -- Constructor -- Expects the name, the base and the body of the class. function Class (n,p,b) local c = _Class(_Container{name=n, base=p}) push(c) c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces pop() end tolua-5.2.0/src/bin/lua/._clean.lua000644 000765 000765 00000000341 11717267062 017235 0ustar00celesceles000000 000000 Mac OS X  2ATTRIIcom.apple.quarantineq/0001;4f3c168e;Mail;B0B98B99-1A0B-48E4-B489-A891C5693194|com.apple.mailtolua-5.2.0/src/bin/lua/clean.lua000644 000765 000767 00000002610 11717267062 016007 0ustar00celes000000 000000 -- 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][3]) end return s end function clean (s) -- check for compilation error local code = "return function () " .. s .. " end" if not dostring(code) then return nil 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 tolua-5.2.0/src/bin/lua/code.lua000644 000765 000767 00000003417 11717267062 015645 0ustar00celes000000 000000 -- tolua: code class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1999 -- $Id: code.lua,v 1.5 2009/11/24 16:45:13 fabraham 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. -- 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 () -- clean Lua code local s = clean(self.text) if not s then error("parser error in embedded code") end -- convert to C output('\n { /* begin embedded lua code */\n') output(' static 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 ' end return format('%3u,%s',strbyte(c),e) end ) output(b..strbyte(" ")) output('\n };\n') output(' if (luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") == LUA_OK)\n') output(' lua_pcall(tolua_S,0,LUA_MULTRET,0);') output(' } /* end of embedded lua code */\n\n') 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 tolua-5.2.0/src/bin/lua/._compat.lua000644 000765 000765 00000000341 11717267062 017436 0ustar00celesceles000000 000000 Mac OS X  2ATTRIIcom.apple.quarantineq/0001;4f3c168e;Mail;B0B98B99-1A0B-48E4-B489-A891C5693194|com.apple.mailtolua-5.2.0/src/bin/lua/compat.lua000644 000765 000767 00000010423 11717267062 016211 0ustar00celes000000 000000 ------------------------------------------------------------------- -- Real globals -- _ALERT -- _ERRORMESSAGE -- _VERSION -- _G -- assert -- error -- metatable -- next -- print -- require -- tonumber -- tostring -- type ------------------------------------------------------------------- -- collectgarbage -- gcinfo -- globals -- call -> protect(f, err) -- 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_(load(s)) end ------------------------------------------------------------------- -- Table library local tab = table foreach = function(t,f) for k,v in pairs(t) do f(k,v) end end foreachi = function(t,f) for i,v in ipairs(t) do f(i,v) end end getn = function(t) return #t end 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 local arg = {...} if rawtype(arg[1]) == 'userdata' then f = tab.remove(arg, 1) end return f:read(table.unpack(arg)) end function write (...) local f = _OUTPUT local arg = {...} if rawtype(arg[1]) == 'userdata' then f = tab.remove(arg, 1) end return f:write(table.unpack(arg)) end tolua-5.2.0/src/bin/lua/container.lua000644 000765 000767 00000026253 11717267062 016720 0ustar00celes000000 000000 -- tolua: container abstract class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: container.lua,v 1.3 2009/11/24 16:45:13 fabraham 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. -- 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 () push(self) local i=1 while self[i] do self[i]:supcode() 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 (type) return classContainer.curr:applytypedef(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.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 end -- append usertype: return full type function classContainer:appendusertype (t) local container if t == 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 (type) if global_typedefs[type] then local mod1, type1 = global_typedefs[type].mod, global_typedefs[type].type local mod2, type2 = applytypedef(type1) return mod2 .. ' ' .. mod1, type2 end local basetype = gsub(type,"^.*::","") local env = self while env do if env.typedefs then local i=1 while env.typedefs[i] do if env.typedefs[i].utype == basetype then local mod1,type1 = env.typedefs[i].mod,env.typedefs[i].type local mod2,type2 = applytypedef(type1) return mod2..' '..mod1,type2 end i = i+1 end end env = env.parent end return '',type 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 -- check if is a registered type: return full type or nil function classContainer:findtype (t) local curr = self while curr do 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 curr = curr.prox end if _basic[t] then return t end return nil end function classContainer:isenum (type) if global_enums[type] then return true 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 -- parse chunk function classContainer:doparse (s) -- 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 verbatim do local b,e,line = strfind(s,"^%s*%$(.-\n)") if b then Verbatim(line) return strsub(s,e+1) 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 = 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%*&:]*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%*&:]*operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*%b{}%s*;?%s*") 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*") 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 b then _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*([~_%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 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*;%s*") if not b then b,e,name,base,body = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*") if not b then b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*") if not b then base = '' b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*") if not b then base = '' b,e,body,name = strfind(s,"^%s*typedef%s%s*union%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*") end end end end end end if b then if base ~= '' then local b,e b,e,base = strfind(base,".-([_%w][_%w]*)$") end _curr_code = strsub(s,b,e) Class(name,base,body) 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) 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) while s ~= '' do s = self:doparse(s) end end tolua-5.2.0/src/bin/lua/CVS/000755 000765 000767 00000000000 11717267062 014656 5ustar00celes000000 000000 tolua-5.2.0/src/bin/lua/declaration.lua000644 000765 000767 00000030057 11717267062 017220 0ustar00celes000000 000000 -- tolua: declaration class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: declaration.lua,v 1.5 2011/01/13 13:43:46 fabraham 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. -- 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 = t[t.n] end local b,e,d = strfind(self.name,"%[(.-)%]") if b then self.name = strsub(self.name,1,b-1) self.dim = 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 end -- Check declaration type -- Substitutes typedef's. function classDeclaration:checktype () -- check if there is a pointer to basic type if isbasic(self.type) and self.ptr~='' then self.ret = self.ptr self.ptr = nil 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 -- -- -- if returning value, automatically set default value -- if self.ret ~= '' and self.def == '' then -- self.def = '0' -- end -- 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 == '' then local type = gsub(self.type,"%s*const%s*","") t[type] = "tolua_collect_" .. gsub(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,var) local def local t = isbasic(self.type) if self.def~='' then def = 1 else def = 0 end if self.dim ~= '' then if var and self.type=='char' then return 'tolua_isstring(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 return 'tolua_isusertype(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)' 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 if self.dim ~= '' then type = gsub(self.type,'const%s*','') -- eliminates const modifier for arrays end local ctype = type if ctype=="lua_Object" or ctype=="lua_Function" then ctype = "int" end if self.ptr~='' then ptr = '*' end line = concatparam(line," ",self.mod,ctype,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,' = new',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 if not t and ptr=='' then line = concatparam(line,'*') end local ct = type if t == 'value' or t == 'function' then ct = 'int' end line = concatparam(line,'((',self.mod,ct) if not t then line = concatparam(line,'*') end line = concatparam(line,') ') if isenum(type) then --if not t and isenum(type) then line = concatparam(line,'(int) ') end local def = 0 if self.def ~= '' then def = self.def end if t then if t=='function' then t='value' end if self.type == "tolua_index" then line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,')-1);') else line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));') end else line = concatparam(line,'tolua_tousertype(tolua_S,',narg,',',def,'));') end end end return line end -- Declare variable function classDeclaration:declare (narg) if self.dim ~= '' and self.type~='char' 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 if t=='function' then t='value' end 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') 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 if t=='function' then t='value' end 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 = new',type,'(',self.name,'[i]);') output(' tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_clone(tolua_S,tolua_obj,'.. (_collect[type] or 'NULL') ..'),"',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_clone(tolua_S,tolua_obj,NULL),"',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(' delete []',self.name,';') output('#else\n') output(' free(',self.name,');') output('#endif\n') end end -- Pass parameter function classDeclaration:passpar () local name = self.name if self.ptr=='&' then output('*'..name) elseif self.ret=='*' then output('&'..name) else output(name) end end -- Return parameter value function classDeclaration:retvalue () if self.ret ~= '' then local t,ct = isbasic(self.type) if t then if t=='function' then t='value' end if self.type=="tolua_index" then output(' tolua_push'..t..'(tolua_S,(',ct,')'..self.name..'+1);') else output(' tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');') end else output(' tolua_pushusertype(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() return t end -- Constructor -- Expects the string declaration. -- The kind of declaration can be "var" or "func". function Declaration (s,kind) -- eliminate spaces if default value is provided s = gsub(s,"%s*=%s*","=") if kind == "var" then -- check the form: void if s == '' or s == 'void' then return _Declaration{type = 'void', kind = kind} end end -- check the form: mod type*& name local t = split(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*') return _Declaration{ name = t[2], ptr = '*', ret = '&', type = m[m.n], mod = concat(m,1,m.n-1), kind = kind } end -- check the form: mod type** name t = split(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*') return _Declaration{ name = t[2], ptr = '*', ret = '*', type = m[m.n], mod = concat(m,1,m.n-1), kind = kind } end -- check the form: mod type& name t = split(s,'&') if t.n == 2 then local m = split(t[1],'%s%s*') return _Declaration{ name = t[2], ptr = '&', type = m[m.n], mod = concat(m,1,m.n-1) , kind = kind } end -- check the form: mod type* name local s1 = gsub(s,"(%b%[%])",function (n) return gsub(n,'%*','\1') end) t = split(s1,'%*') if t.n == 2 then t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression local m = split(t[1],'%s%s*') return _Declaration{ name = t[2], ptr = '*', type = m[m.n], mod = concat(m,1,m.n-1) , kind = kind } end if kind == 'var' then -- check the form: mod type name t = split(s,'%s%s*') local v if findtype(t[t.n]) then v = '' else v = t[t.n]; t.n = t.n-1 end return _Declaration{ name = v, type = t[t.n], mod = concat(t,1,t.n-1), kind = kind } else -- kind == "func" -- check the form: mod type name t = split(s,'%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 return _Declaration{ name = v, type = tp, mod = md, kind = kind } end end tolua-5.2.0/src/bin/lua/define.lua000644 000765 000767 00000002333 11717267062 016161 0ustar00celes000000 000000 -- tolua: define class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: define.lua,v 1.3 2009/11/24 16:45:13 fabraham 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 () output(' 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 tolua-5.2.0/src/bin/lua/doit.lua000644 000765 000767 00000002200 11717267062 015657 0ustar00celes000000 000000 -- Generate binding code -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- Last update: Apr 2003 -- $Id: doit.lua,v 1.3 2009/11/24 16:45:13 fabraham 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. function doit () -- define package name, if not provided if not flags.n then if flags.f then flags.n = gsub(flags.f,"%..*","") else error("#no package name nor input file provided") end 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 p:preamble() p:supcode() p:register() 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 tolua-5.2.0/src/bin/lua/enumerate.lua000644 000765 000767 00000003427 11717267062 016721 0ustar00celes000000 000000 -- tolua: enumerate class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: enumerate.lua,v 1.3 2009/11/24 16:45:13 fabraham 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 () local nspace = getnamespace(classContainer.curr) local i=1 while self[i] do output(' tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');') 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) setmetatable(t,classEnumerate) append(t) appendenum(t) return t end -- Constructor -- Expects a string representing the enumerate body function Enumerate (n,b) 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 = {} 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] i = i+1 end e.name = n if n~="" then Typedef("int "..n) end return _Enumerate(e) end tolua-5.2.0/src/bin/lua/feature.lua000644 000765 000767 00000004126 11717267062 016364 0ustar00celes000000 000000 -- tolua: abstract feature class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: feature.lua,v 1.3 2009/11/24 16:45:14 fabraham 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. -- 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 () end -- translate verbatim function classFeature:preamble () end -- check if it is a variable function classFeature:isvariable () return false end -- checi 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] if not n[2] then n[2] = applyrenaming(n[1]) end self.lname = n[2] or gsub(n[1],"%[.-%]","") end self.name = getonlynamespace() .. self.name 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 if self.lname and strsub(self.lname,1,1)~="." -- operator are named as ".add" then return n..'_'..self.lname else return n..'_'..self.name end end tolua-5.2.0/src/bin/lua/function.lua000644 000765 000767 00000023234 11717267062 016557 0ustar00celes000000 000000 -- tolua: function class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: function.lua,v 1.4 2009/11/24 16:45:14 fabraham 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. -- 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%s*','') 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 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 output("/* method:",self.name," of class ",class," */") else output("/* function:",self.name," */") end output("static int",self.cname,"(lua_State* tolua_S)") 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 = 'tolua_isusertype' local type = self.parent.type if self.const ~= '' then type = self.const .. " " .. type end if self.name=='new' or static~=nil then func = 'tolua_isusertable' type = self.parent.type end output(' !'..func..'(tolua_S,1,"'..type..'",0,&tolua_err) || \n') end -- check args local vararg = false if self.args[1].type ~= 'void' then local i=1 while self.args[i] and self.args[i].type ~= "..." do local btype = isbasic(self.args[i].type) if btype ~= 'state' then output(' !'..self.args[i]:outchecktype(narg,false)..' || \n') end if btype ~= 'state' then narg = narg+1 end i = i+1 end if self.args[i] then vararg = true end end -- check end of list if not vararg then output(' !tolua_isnoobj(tolua_S,'..narg..',&tolua_err)\n') else output(' 0\n') end output(' )') 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,'*) ') output('tolua_tousertype(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] and self.args[i].type ~= "..." 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,"invalid \'self\' in function \''..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] and self.args[i].type ~= "..." do if isbasic(self.args[i].type) ~= "state" then self.args[i]:getarray(narg) narg = narg+1 end i = i+1 end end -- call function if class and self.name=='delete' then output(' tolua_release(tolua_S,self);') output(' delete self;') elseif class and self.name == 'operator&[]' then output(' self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';') else output(' {') if self.type ~= '' and self.type ~= 'void' then local ctype = self.type if ctype == 'value' or ctype == 'function' then ctype = 'int' end output(' ',self.mod,ctype,self.ptr,'tolua_ret = ') if isbasic(self.type) or self.ptr ~= '' then output('(',self.mod,ctype,self.ptr,') ') end else output(' ') end if class and self.name=='new' then output('new',self.type,'(') elseif class and static then output(class..'::'..self.name,'(') elseif class then output('self->'..self.name,'(') else output(self.name,'(') end -- write parameters local i=1 while self.args[i] and self.args[i].type ~= "..." do self.args[i]:passpar() i = i+1 if self.args[i] and self.args[i].type ~= "..." then output(',') end end if class and self.name == 'operator[]' then output('-1);') else output(');') end -- return values if self.type ~= '' and self.type ~= 'void' then nret = nret + 1 local t,ct = isbasic(self.type) if t then if t=='function' then t='value' end if self.type == 'tolua_index' then output(' if (tolua_ret < 0) lua_pushnil(tolua_S);') output(' else tolua_push'..t..'(tolua_S,(',ct,')tolua_ret+1);') else output(' tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);') end else t = self.type if self.ptr == '' then output(' {') output('#ifdef __cplusplus\n') output(' void* tolua_obj = new',t,'(tolua_ret);') output(' tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,'.. (_collect[t] or 'NULL') ..'),"',t,'");') output('#else\n') output(' void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));') output(' tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,NULL),"',t,'");') output('#endif\n') output(' }') elseif self.ptr == '&' then output(' tolua_pushusertype(tolua_S,(void*)&tolua_ret,"',t,'");') else output(' tolua_pushusertype(tolua_S,(void*)tolua_ret,"',t,'");') if self.mod == 'tolua_own' then output(' lua_pushcfunction(tolua_S, tolua_bnd_takeownership);') output(' lua_pushvalue(tolua_S, -2);') output(' lua_call(tolua_S, 1, 0);') 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 if isbasic(self.args[i].type) ~= "state" then self.args[i]:setarray(narg) narg = narg+1 end 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 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,"#ferror in function \''..self.lname..'\'.",&tolua_err);') output(' return 0;') output('#endif\n') else output('tolua_lerror:\n') output(' return '..strsub(self.cname,1,-3)..format("%02d",overload)..'(tolua_S);') end output('}') output('\n') end -- register function function classFunction:register () output(' tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');') 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 a 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_" .. gsub(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 -- 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 if t.name == t.parent.name then t.name = 'new' t.lname = 'new' t.type = t.parent.name t.ptr = '*' elseif t.name == '~'..t.parent.name 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 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 local f = Declaration(d,'func') f.args = l f.const = c return _Function(f) end tolua-5.2.0/src/bin/lua/module.lua000644 000765 000767 00000002722 11717267062 016216 0ustar00celes000000 000000 -- tolua: module class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: module.lua,v 1.3 2009/11/24 16:45:14 fabraham 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. -- 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 () push(self) output(' tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');') output(' tolua_beginmodule(tolua_S,"'..self.name..'");') local i=1 while self[i] do self[i]:register() i = i+1 end output(' 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 tolua-5.2.0/src/bin/lua/namespace.lua000644 000765 000767 00000002321 11717267062 016660 0ustar00celes000000 000000 -- tolua: namespace class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 2003 -- $Id: namespace.lua,v 1.3 2009/11/24 16:45:14 fabraham 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. -- 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 tolua-5.2.0/src/bin/lua/operator.lua000644 000765 000767 00000005612 11717267062 016565 0ustar00celes000000 000000 -- tolua: operator class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: operator.lua,v 1.3 2009/11/24 16:45:14 fabraham 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. -- 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', } -- 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 -- 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] 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 ref = '' local t = split(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 = gsub(k,"%s","") if not _TM[f.kind] then error("tolua: no support for operator" .. f.kind) end f.lname = ".".._TM[f.kind] if f.kind == '[]' and ref=='&' and f.const~='const' then Operator(d,'&'..k,a,c) -- create correspoding set operator end return _Operator(f) end tolua-5.2.0/src/bin/lua/package.lua000644 000765 000767 00000021545 11717267062 016330 0ustar00celes000000 000000 -- tolua: package class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: package.lua,v 1.4 2009/11/24 16:45:15 fabraham 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. -- 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 C 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 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 code self.code = gsub(self.code,"%#%[(%d+)%]%#",function (n) return L[tonumber(n)] end) -- restore embedded 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) end -- translate verbatim function classPackage:preamble () output('/*\n') output('** Lua binding: '..self.name..'\n') -- fred: removido porque gera trabalho na hora de fazer diffs -- output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n') output('*/\n\n') output('#include "tolua.h"\n\n') output('#ifndef __cplusplus\n') output('#include \n') output('#endif\n') output('#ifdef __cplusplus\n') output('extern "C" int tolua_bnd_takeownership (lua_State* L); // from tolua_map.c\n') output('#else\n') output('int tolua_bnd_takeownership (lua_State* L); /* from tolua_map.c */\n') output('#endif\n') output('#include \n\n') if not flags.h then output('/* Exported function */') output('TOLUA_API int tolua_'..self.name..'_open (lua_State* tolua_S);') output('LUALIB_API int luaopen_'..self.name..' (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(' tolua_release(tolua_S,self);') output(' 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('{') foreach(_usertype,function(n,v) output(' tolua_usertype(tolua_S,"',v,'");') end) output('}') output('\n') end -- register package -- write package open function function classPackage:register () push(self) output("/* Open lib function */") output('LUALIB_API int luaopen_'..self.name..' (lua_State* tolua_S)') output("{") output(" tolua_open(tolua_S);") output(" tolua_reg_types(tolua_S);") output(" tolua_module(tolua_S,NULL,",self:hasvar(),");") output(" tolua_beginmodule(tolua_S,NULL);") local i=1 while self[i] do self[i]:register() i = i+1 end output(" tolua_endmodule(tolua_S);") output(" return 1;") output("}") output("/* Open tolua function */") output("TOLUA_API int tolua_"..self.name.."_open (lua_State* tolua_S)") output("{") output(" lua_pushcfunction(tolua_S, luaopen_"..self.name..");") output(' lua_pushstring(tolua_S, "'..self.name..'");') output(" lua_call(tolua_S, 1, 0);") output(" return 1;") output("}") 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('LUALIB_API int luaopen_'..self.name..' (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 if fn then local st, msg = readfrom(flags.f) if not st then error('#'..msg) end local _; _, _, ext = strfind(fn,".*%.(.*)$") end local code = "\n" .. read('*a') if ext == 'h' or ext == 'hpp' then code = extract_code(fn,code) end -- close file if fn then readfrom() end -- deal with renaming directive code = gsub(code,'%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end) -- deal with include directive local nsubst repeat code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"%s*\n', function (kind,fn) local _, _, ext = strfind(fn,".*%.(.*)$") local fp,msg = openfile(fn,'r') if not fp then error('#'..msg..': '..fn) end local s = read(fp,'*a') closefile(fp) if kind == 'c' or kind == 'h' then return extract_code(fn,s) elseif kind == 'p' then return "\n\n" .. s elseif kind == 'l' then return "\n$[\n" .. s .. "\n$]\n" else error('#Invalid include directive (use $cfile, $pfile or $lfile)') end end) until nsubst==0 local t = _Package(_Container{name=name, code=code}) push(t) t:preprocess() t:parse(t.code) pop() return t end tolua-5.2.0/src/bin/lua/typedef.lua000644 000765 000767 00000003060 11717267062 016365 0ustar00celes000000 000000 -- tolua: typedef class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: typedef.lua,v 1.3 2009/11/24 16:45:15 fabraham 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. -- 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) appendtypedef(t) return t end -- Constructor -- Expects one string representing the type definition. function Typedef (s) if strfind(s,'[%*&]') then tolua_error("#invalid typedef: pointers (and references) are not supported") end local t = split(gsub(s,"%s%s*"," ")," ") if not isbasic(t[t.n]) then return _Typedef { utype = t[t.n], type = t[t.n-1], mod = concat(t,1,t.n-2), } else return nil end end tolua-5.2.0/src/bin/lua/variable.lua000644 000765 000767 00000015013 11717267062 016513 0ustar00celes000000 000000 -- tolua: variable class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: variable.lua,v 1.3 2009/11/24 16:45:15 fabraham 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. -- 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 parent = "_" .. p 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.name,".*::","") .. ptr return name end -- check if it is a variable function classVariable:isvariable () return true end -- get variable value function classVariable:getvalue (class,static) if class and static then return class..'::'..self.name elseif class then return 'self->'..self.name else return self.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() -- get function ------------------------------------------------ if class then output("/* get function:",self.name," of class ",class," */") self.cgetname = self:cfuncname("tolua_get_"..class) else output("/* get function:",self.name," */") self.cgetname = self:cfuncname("tolua_get") end output("static 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(' ',class,'*','self = ') output('(',class,'*) ') output('tolua_tousertype(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,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);'); output('#endif\n') end -- return value local type = self.type if gsub(type,'const ','')=='char' and self.dim~='' then type = 'char*' end local t,ct = isbasic(type) 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(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");') else output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");') end end output(' return 1;') output('}') output('\n') -- set function ------------------------------------------------ if not strfind(self.type,'const') then if class then output("/* set function:",self.name," of class ",class," */") self.csetname = self:cfuncname("tolua_set_"..class) else output("/* set function:",self.name," */") self.csetname = self:cfuncname("tolua_set") end output("static int",self.csetname,"(lua_State* tolua_S)") output("{") -- declare self, if the case if class and static==nil then output(' ',class,'*','self = ') output('(',class,'*) ') output('tolua_tousertype(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,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);'); elseif static then _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)') end -- check variable type output(' if (!'..self:outchecktype(2,true)..')') 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(') if class and static then output(class..'::'..self.name) elseif class then output('self->'..self.name) else output(self.name) end output(',tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);') else local ptr = '' if self.ptr~='' then ptr = '*' end output(' ') if class and static then output(class..'::'..self.name) elseif class then output('self->'..self.name) else output(self.name) 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(') ') if t then if isenum(self.type) then output('(int) ') end if t=='function' then t='value' end output('tolua_to'..t,'(tolua_S,2,',def,'));') else output('tolua_tousertype(tolua_S,2,',def,'));') end end output(' return 0;') output('}') output('\n') end end function classVariable:register () 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(' tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');') else output(' 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 tolua-5.2.0/src/bin/lua/verbatim.lua000644 000765 000767 00000003121 11717267062 016534 0ustar00celes000000 000000 -- tolua: verbatim class -- Written by Waldemar Celes -- TeCGraf/PUC-Rio -- Jul 1998 -- $Id: verbatim.lua,v 1.3 2009/11/24 16:45:15 fabraham 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 () 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 cond = 'sr' -- generates in both suport and register fragments l = strsub(l,2) end return _Verbatim { line = l, cond = cond or '', } end tolua-5.2.0/src/bin/lua/CVS/Entries000644 000765 000767 00000001627 11717267062 016220 0ustar00celes000000 000000 /all.lua/1.1/Wed Apr 9 20:46:10 2008// /array.lua/1.4/Thu Jan 13 13:43:45 2011// /basic.lua/1.4/Tue Nov 24 16:45:13 2009// /class.lua/1.3/Tue Nov 24 16:45:13 2009// /clean.lua/1.1/Wed Apr 9 20:46:10 2008// /code.lua/1.5/Tue Nov 24 16:45:13 2009// /compat.lua/1.1/Wed Apr 9 20:46:10 2008// /container.lua/1.3/Tue Nov 24 16:45:13 2009// /declaration.lua/1.5/Thu Jan 13 13:43:46 2011// /define.lua/1.3/Tue Nov 24 16:45:13 2009// /doit.lua/1.3/Tue Nov 24 16:45:13 2009// /enumerate.lua/1.3/Tue Nov 24 16:45:13 2009// /feature.lua/1.3/Tue Nov 24 16:45:14 2009// /function.lua/1.4/Tue Nov 24 16:45:14 2009// /module.lua/1.3/Tue Nov 24 16:45:14 2009// /namespace.lua/1.3/Tue Nov 24 16:45:14 2009// /operator.lua/1.3/Tue Nov 24 16:45:14 2009// /package.lua/1.4/Tue Nov 24 16:45:15 2009// /typedef.lua/1.3/Tue Nov 24 16:45:15 2009// /variable.lua/1.3/Tue Nov 24 16:45:15 2009// /verbatim.lua/1.3/Tue Nov 24 16:45:15 2009// D tolua-5.2.0/src/bin/lua/CVS/Repository000644 000765 000767 00000000026 11717267062 016756 0ustar00celes000000 000000 src/tolua/src/bin/lua tolua-5.2.0/src/bin/lua/CVS/Root000644 000765 000767 00000000077 11717267062 015530 0ustar00celes000000 000000 :ext:celes@ssh.tecgraf.puc-rio.br:/home/t/tecgraf/prod/lib/vis tolua-5.2.0/include/._.DS_Store000644 000765 000765 00000000122 11717267062 016433 0ustar00celesceles000000 000000 Mac OS X  2 R tolua-5.2.0/include/.DS_Store000644 000765 000767 00000014004 11717267062 015210 0ustar00celes000000 000000 Bud1%  @ @ @ @ E%DSDB` @ @ @tolua-5.2.0/include/tolua.h000755 000765 000767 00000013147 11717267062 015034 0ustar00celes000000 000000 /* tolua ** Support code for Lua bindings. ** Written by Waldemar Celes ** TeCGraf/PUC-Rio ** Apr 2003 ** $Id: tolua.h,v 1.12 2011/01/13 13:43:45 fabraham 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. */ #ifndef TOLUA_H #define TOLUA_H #ifndef TOLUA_API # ifdef TOLUA5_DLL # define TOLUA_API __declspec(dllexport) # else # define TOLUA_API # endif #endif #define TOLUA_VERSION "tolua 5.2.0" #ifdef __cplusplus extern "C" { #endif #include "lua.h" #include "lauxlib.h" struct tolua_Error { int index; int array; const char* type; }; typedef struct tolua_Error tolua_Error; typedef char tolua_byte; typedef unsigned char tolua_ubyte; typedef int tolua_index; typedef int lua_Object; #define tolua_own 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_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_isfunction (lua_State* L, int lo, 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 void* tolua_clone (lua_State* L, void* value, lua_CFunction func); 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, double 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_pushvalue (lua_State* L, int lo); TOLUA_API void tolua_pushboolean (lua_State* L, int value); TOLUA_API void tolua_pushnumber (lua_State* L, double 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_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, double 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_release (lua_State* L, void* value); TOLUA_API double tolua_tonumber (lua_State* L, int narg, double 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 double tolua_tofieldnumber (lua_State* L, int lo, int index, double def); TOLUA_API int tolua_tofieldboolean (lua_State* L, int lo, int index, int 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_newmetatable (lua_State* L, const char* name); TOLUA_API void tolua_getmetatable (lua_State* L, const char* name); #ifdef __cplusplus } #endif #endif tolua-5.2.0/bin/._.DS_Store000644 000765 000765 00000000122 11717267062 015560 0ustar00celesceles000000 000000 Mac OS X  2 R@tolua-5.2.0/bin/.DS_Store000644 000765 000767 00000014004 11717267062 014335 0ustar00celes000000 000000 Bud1%  @ @ @ @ E%DSDB` @ @ @