History

Lua 3.0

Lua Team committed 29 years ago

Commit 9bc113c1 parent 100a7f178 files · +6569 −11586Browse files

Unified · Split

78 files
  1. COPYRIGHT +1 −1
  2. HISTORY +15 −1
  3. INSTALL +34 −7
  4. Makefile +0 −4
  5. README +16 −16
  6. clients/lib/iolib.c +101 −66
  7. clients/lib/mathlib.c +34 −47
  8. clients/lib/old/Makefile +0 −35
  9. clients/lib/old/iolib.c +0 −618
  10. clients/lib/old/lualib.h +0 −33
  11. clients/lib/old/mathlib.c +0 −230
  12. clients/lib/old/strlib.c +0 −276
  13. clients/lib/strlib.c +106 −144
  14. clients/lua/lua.c +73 −3
  15. config +5 −5
  16. doc/Makefile +0 −23
  17. doc/idx.html +241 −0
  18. doc/index.html +85 −0
  19. doc/luac.html +88 −0
  20. doc/luac.man +0 −75
  21. doc/luac.ps +0 −246
  22. doc/luac.txt +0 −66
  23. doc/manual.html +2545 −0
  24. doc/refman.ps +0 −7807
  25. include/Makefile +1 −1
  26. include/auxlib.h +30 −0
  27. include/lua.h +74 −49
  28. include/lualib.h +5 −14
  29. src/Makefile +12 −6
  30. src/auxlib.c +81 −0
  31. src/auxlib.h +30 −0
  32. src/fallback.c +286 −109
  33. src/fallback.h +50 −22
  34. src/func.c +26 −16
  35. src/func.h +3 −2
  36. src/hash.c +147 −134
  37. src/hash.h +17 −16
  38. src/inout.c +278 −170
  39. src/inout.h +8 −17
  40. src/lex.c +174 −45
  41. src/lex.h +3 −4
  42. src/lua.stx +29 −34
  43. src/luac/dump.c +11 −19
  44. src/luac/luac.c +112 −27
  45. src/luac/luac.h +6 −5
  46. src/luac/print.c +213 −20
  47. src/luac/print.h +6 −3
  48. src/luamem.c +159 −0
  49. src/luamem.h +3 −3
  50. src/mem.c +0 −58
  51. src/opcode.c +517 −369
  52. src/opcode.h +46 −25
  53. src/parser.c +344 −316
  54. src/table.c +84 −96
  55. src/table.h +6 −5
  56. src/tree.c +92 −26
  57. src/tree.h +14 −4
  58. src/undump.c +71 −74
  59. src/undump.h +11 −4
  60. src/zio.c +79 −0
  61. src/zio.h +48 −0
  62. test/README +3 −4
  63. test/array.lua +3 −3
  64. test/bisect.lua +2 −2
  65. test/dump.lua +15 −11
  66. test/examples/complex/complex.lua +0 −82
  67. test/examples/complex/mandel.lua +0 −25
  68. test/examples/www/README +10 −0
  69. test/examples/www/db.lua +46 −0
  70. test/examples/www/staff.lua +37 −0
  71. test/examples/www/template.html +29 −0
  72. test/hello.lua +1 −1
  73. test/loop.lua +0 −6
  74. test/lua +1 −0
  75. test/luac +1 −0
  76. test/sort.lua +1 −1
  77. test/split.lua +0 −18
  78. test/type.lua +0 −37
COPYRIGHT+1−1
@@ -1,4 +1,4 @@
1−Copyright (c) 1994-1996 TeCGraf, PUC-Rio. Written by Waldemar Celes Filho,
1+Copyright (c) 1994-1997 TeCGraf, PUC-Rio. Written by Waldemar Celes Filho,
22 Roberto Ierusalimschy, Luiz Henrique de Figueiredo. All rights reserved.
33
44 Permission is hereby granted, without written agreement and without license or
HISTORY+15−1
@@ -1,4 +1,18 @@
1−Current version is 2.5
1+This is version 3.0.
2+
3+* Changes since version 2.5 (no versions between 2.5 and 3.0)
4+ + NEW CONCEPT: "tag methods".
5+ Tag methods replace fallbacks as the meta-mechanism for extending the
6+ semantics of Lua. Whereas fallbacks had a global nature, tag methods
7+ work on objects having the same tag (e.g., groups of tables).
8+ Existing code that uses fallbacks should work without change.
9+ + new, general syntax for constructors {[exp] = exp, ... }.
10+ + support for handling variable number of arguments in functions (varargs).
11+ + support for conditional compilation ($if ... $else ... $end).
12+ + cleaner semantics in API simplifies host code.
13+ + better support for writing libraries (auxlib.h).
14+ + better type checking and error messages in the standard library.
15+ + luac can now also undump.
216
317 * Changes since version 2.4
418 + io and string libraries are now based on pattern matching;
INSTALL+34−7
@@ -1,26 +1,53 @@
11 * Installation
2− Installing Lua should be very easy:
2+
3+ Building Lua on a Unix system should be very easy:
34
45 1. Edit "config" to suit your platform, if at all necessary
56 2. Then, type "make"
67
8+ See below for instructions for Windows and Macintosh.
9+
710 * What you get
11+
812 If make succeeds, you get:
9− * a compiler and an interpreter in ./bin/lua;
13+ * an interpreter and a compiler in ./bin;
1014 * libraries in ./lib;
1115 * include files in ./include.
16+ These are the only directories you need for development.
1217
13− There is a reference manual in ./doc, and tests and examples in ./test.
18+ There is a reference manual in html in ./doc, and sample code in ./test.
1419 You don't need these directories for development.
1520
1621 * If you have problems (and solutions!)
17− If make fails, please let us know (lua@icad.puc-rio.br).
22+
23+ If "make" fails, please let us know (lua@tecgraf.puc-rio.br).
1824 If you make changes to "config", please send them to us.
1925
2026 * Shared libraries
27+
2128 If you are running SunOs 4.x, type the following after "make" succeeds:
22− ld -o lib/liblua.so.2.5 src/*.o
23− ld -o lib/liblualib.so.2.5 clients/lib/*.o
29+ ld -o lib/liblua.so.3.0 src/*.o
30+ ld -o lib/liblualib.so.3.0 clients/lib/*.o
2431
2532 For AIX, the OpenGL clone Mesa includes a script for making shared libraries.
26− For other systems, please let us know how!
33+ For other systems, please tell us how!
34+
35+* Installation on Windows or Macintosh
36+
37+ The instructions for building Lua on a Mac or Windows machine depend on
38+ the particular compiler you are using.
39+ The simplest way is to create a folder with all .c and .h files.
40+ Then create projects for the basic library, the standard library,
41+ the interpreter and the compiler, as follows:
42+
43+ basic lib: auxlib.c fallback.c func.c hash.c inout.c lex.c luamem.c
44+ opcode.c parser.c table.c tree.c undump.c zio.c
45+
46+ standard lib: iolib.c mathlib.c strlib.c
47+
48+ interpreter: basic lib, standard lib, lua.c
49+
50+ compiler: basic lib, dump.c luac.c print.c
51+
52+ Of course, to use Lua as a library, you'll have to know how to create
53+ libraries and use with your compiler.
Makefile+0−4
@@ -5,8 +5,4 @@ all co clean klean: · 4 unmodified lines
55 cd src; make $@
66 cd src/luac; make $@
77 cd clients/lib; make $@
8− cd clients/lib/old; make $@
98 cd clients/lua; make $@
10−
11−old:
12− cd clients/lib/old; make $@
README+16−16
@@ -5,32 +5,32 @@ · 4 unmodified lines
55 Dozens of industrial products developed by TeCGraf use Lua.
66
77 * Some features of Lua
8− + a simple, pascal-like, syntax
9− + powerful data description constructs (e.g., associative arrays)
10− + user-controlled type constructors
11− + fallbacks for extending the language in unconventional ways (e.g.,
12− inheritance, overloading)
13− + garbage collection
14− + Lua programs are compiled into bytecodes, which are then interpreted
15− + portable, written in ANSI C (runs in Unix, DOS, Windows, Mac, Cray, ...)
8+ + simple syntax (Pascal-like);
9+ + powerful data description constructs (e.g., associative arrays);
10+ + user-controlled type constructors;
11+ + extensible semantics with tag methods;
12+ + garbage collection;
13+ + Lua programs are compiled into bytecodes, which are then interpreted;
14+ + truly portable, written in ANSI C.
1615
1716 * Availability
1817 The latest version of Lua is always available at the following locations:
19− In Brazil: ftp://ftp.icad.puc-rio.br/pub/lua/lua.tar.gz
20− In Canada: ftp://csg.uwaterloo.ca/pub/lhf/lua/lua.tar.gz
21− In Germany: ftp://ftp.uni-trier.de/pub/languages/lua/lua.tar.gz
22− In Greece: ftp://ftp.ntua.gr/pub/lang/lua/lua.tar.gz
23− Home page: http://www.inf.puc-rio.br/~roberto/lua.html
24− The current version is 2.5.
18+ In Brazil: ftp://ftp.icad.puc-rio.br/pub/lua/lua.tar.gz
19+ In Canada: ftp://csg.uwaterloo.ca/pub/lhf/lua/lua.tar.gz
20+ In Germany: ftp://ftp.uni-trier.de/pub/languages/lua/lua.tar.gz
21+ In Greece: ftp://ftp.ntua.gr/pub/lang/lua/lua.tar.gz
22+ Home page: http://www.tecgraf.puc-rio.br/lua/
23+ Meta page: http://www.tecgraf.puc-rio.br/lua/meta.html
24+ The current version is 3.0
2525
2626 * Legal matters
2727 Lua is freely available for both academic and commercial purposes.
28− Lua is not in the public domain; TeCGraf keeps its copyright.
2928 See COPYRIGHT.
3029
3130 * Installation
3231 See INSTALL.
3332
3433 * Contacting the authors
35− Send your comments, bug reports and anything else to lua@icad.puc-rio.br.
34+ Send your comments, bug reports and anything else to lua@tecgraf.puc-rio.br.
3635 Please send us email if you download Lua so that we can know how far it goes.
36+ For reporting bugs, try also the mailing list: lua-l@tecgraf.puc-rio.br
clients/lib/iolib.c+101−66
@@ -1,16 +1,16 @@
11 #include <stdio.h>
2−#include <ctype.h>
32 #include <string.h>
43 #include <time.h>
54 #include <stdlib.h>
65 #include <errno.h>
76
87 #include "lua.h"
8+#include "auxlib.h"
99 #include "luadebug.h"
1010 #include "lualib.h"
1111
1212
13−FILE *lua_infile, *lua_outfile;
13+int lua_tagio;
1414
1515
1616 #ifdef POPEN
@@ -31,76 +31,95 @@ static void pushresult (int i) · 14 unmodified lines
3131 #ifndef NOSTRERROR
3232 lua_pushstring(strerror(errno));
3333 #else
34− lua_pushstring("system unable to define the error");
34+ lua_pushstring("O.S. unable to define the error");
3535 #endif
3636 }
3737 }
3838
3939
40−static void closefile (FILE *f)
40+
41+static FILE *getfile (char *name)
42+{
43+ lua_Object f = lua_getglobal(name);
44+ if (!lua_isuserdata(f) || lua_tag(f) != lua_tagio)
45+ luaL_verror("global variable %s is not a file handle", name);
46+ return lua_getuserdata(f);
47+}
48+
49+
50+static void closefile (char *name)
4151 {
42− if (f == stdin || f == stdout)
43− return;
44− if (f == lua_infile)
45− lua_infile = stdin;
46− if (f == lua_outfile)
47− lua_outfile = stdout;
52+ FILE *f = getfile(name);
53+ if (f == stdin || f == stdout) return;
4854 if (pclose(f) == -1)
4955 fclose(f);
5056 }
5157
5258
59+static void setfile (FILE *f, char *name)
60+{
61+ lua_pushusertag(f, lua_tagio);
62+ lua_setglobal(name);
63+}
64+
65+
66+static void setreturn (FILE *f, char *name)
67+{
68+ setfile(f, name);
69+ lua_pushusertag(f, lua_tagio);
70+}
71+
5372
5473 static void io_readfrom (void)
5574 {
75+ FILE *current;
5676 lua_Object f = lua_getparam(1);
57− if (f == LUA_NOOBJECT)
58− closefile(lua_infile); /* restore standart input */
59− else if (lua_isuserdata(f))
60− lua_infile = lua_getuserdata(f);
77+ if (f == LUA_NOOBJECT) {
78+ closefile("_INPUT");
79+ current = stdin;
80+ }
81+ else if (lua_tag(f) == lua_tagio)
82+ current = lua_getuserdata(f);
6183 else {
62− char *s = lua_check_string(1, "readfrom");
63− FILE *fp = (*s == '|') ? popen(s+1, "r") : fopen(s, "r");
64− if (fp)
65− lua_infile = fp;
66− else {
84+ char *s = luaL_check_string(1);
85+ current = (*s == '|') ? popen(s+1, "r") : fopen(s, "r");
86+ if (current == NULL) {
6787 pushresult(0);
6888 return;
6989 }
7090 }
71− lua_pushuserdata(lua_infile);
91+ setreturn(current, "_INPUT");
7292 }
7393
7494
7595 static void io_writeto (void)
7696 {
97+ FILE *current;
7798 lua_Object f = lua_getparam(1);
78− if (f == LUA_NOOBJECT)
79− closefile(lua_outfile); /* restore standart output */
80− else if (lua_isuserdata(f))
81− lua_outfile = lua_getuserdata(f);
99+ if (f == LUA_NOOBJECT) {
100+ closefile("_OUTPUT");
101+ current = stdout;
102+ }
103+ else if (lua_tag(f) == lua_tagio)
104+ current = lua_getuserdata(f);
82105 else {
83− char *s = lua_check_string(1, "writeto");
84− FILE *fp = (*s == '|') ? popen(s+1,"w") : fopen(s,"w");
85− if (fp)
86− lua_outfile = fp;
87− else {
106+ char *s = luaL_check_string(1);
107+ current = (*s == '|') ? popen(s+1,"w") : fopen(s,"w");
108+ if (current == NULL) {
88109 pushresult(0);
89110 return;
90111 }
91112 }
92− lua_pushuserdata(lua_outfile);
113+ setreturn(current, "_OUTPUT");
93114 }
94115
95116
96117 static void io_appendto (void)
97118 {
98− char *s = lua_check_string(1, "appendto");
119+ char *s = luaL_check_string(1);
99120 FILE *fp = fopen (s, "a");
100− if (fp != NULL) {
101− lua_outfile = fp;
102− lua_pushuserdata(lua_outfile);
103− }
121+ if (fp != NULL)
122+ setreturn(fp, "_OUTPUT");
104123 else
105124 pushresult(0);
106125 }
@@ -110,23 +129,30 @@ static void io_appendto (void) · 3 unmodified lines
110129
111130 static void io_read (void)
112131 {
132+ FILE *f = getfile("_INPUT");
113133 char *buff;
114− char *p = lua_opt_string(1, "[^\n]*{\n}", "read");
134+ char *p = luaL_opt_string(1, "[^\n]*{\n}");
115135 int inskip = 0; /* to control {skips} */
116136 int c = NEED_OTHER;
117− luaI_addchar(0);
137+ luaI_emptybuff();
118138 while (*p) {
119− if (*p == '{' || *p == '}') {
120− inskip = (*p == '{');
139+ if (*p == '{') {
140+ inskip++;
141+ p++;
142+ }
143+ else if (*p == '}') {
144+ if (inskip == 0)
145+ lua_error("unbalanced braces in read pattern");
146+ inskip--;
121147 p++;
122148 }
123149 else {
124− char *ep = item_end(p); /* get what is next */
150+ char *ep = luaL_item_end(p); /* get what is next */
125151 int m; /* match result */
126− if (c == NEED_OTHER) c = getc(lua_infile);
127− m = (c == EOF) ? 0 : singlematch((char)c, p);
152+ if (c == NEED_OTHER) c = getc(f);
153+ m = (c == EOF) ? 0 : luaL_singlematch((char)c, p);
128154 if (m) {
129− if (!inskip) luaI_addchar(c);
155+ if (inskip == 0) luaI_addchar(c);
130156 c = NEED_OTHER;
131157 }
132158 switch (*ep) {
@@ -144,7 +170,7 @@ static void io_read (void) · 11 unmodified lines
144170 }
145171 } break_while:
146172 if (c >= 0) /* not EOF nor NEED_OTHER? */
147− ungetc(c, lua_infile);
173+ ungetc(c, f);
148174 buff = luaI_addchar(0);
149175 if (*buff != 0 || *p == 0) /* read something or did not fail? */
150176 lua_pushstring(buff);
@@ -153,31 +179,32 @@ static void io_read (void) · 2 unmodified lines
153179
154180 static void io_write (void)
155181 {
182+ FILE *f = getfile("_OUTPUT");
156183 int arg = 1;
157184 int status = 1;
158185 char *s;
159− while ((s = lua_opt_string(arg++, NULL, "write")) != NULL)
160− status = status && (fputs(s, lua_outfile) != EOF);
186+ while ((s = luaL_opt_string(arg++, NULL)) != NULL)
187+ status = status && (fputs(s, f) != EOF);
161188 pushresult(status);
162189 }
163190
164191
165192 static void io_execute (void)
166193 {
167− lua_pushnumber(system(lua_check_string(1, "execute")));
194+ lua_pushnumber(system(luaL_check_string(1)));
168195 }
169196
170197
171198 static void io_remove (void)
172199 {
173− pushresult(remove(lua_check_string(1, "remove")) == 0);
200+ pushresult(remove(luaL_check_string(1)) == 0);
174201 }
175202
176203
177204 static void io_rename (void)
178205 {
179− pushresult(rename(lua_check_string(1, "rename"),
180− lua_check_string(2, "rename")) == 0);
206+ pushresult(rename(luaL_check_string(1),
207+ luaL_check_string(2)) == 0);
181208 }
182209
183210
@@ -190,7 +217,7 @@ static void io_tmpname (void) · 6 unmodified lines
190217
191218 static void io_getenv (void)
192219 {
193− lua_pushstring(getenv(lua_check_string(1, "getenv"))); /* if NULL push nil */
220+ lua_pushstring(getenv(luaL_check_string(1))); /* if NULL push nil */
194221 }
195222
196223
@@ -198,7 +225,7 @@ static void io_date (void) · 1 unmodified line
198225 {
199226 time_t t;
200227 struct tm *tm;
201− char *s = lua_opt_string(1, "%c", "date");
228+ char *s = luaL_opt_string(1, "%c");
202229 char b[BUFSIZ];
203230 time(&t); tm = localtime(&t);
204231 if (strftime(b,sizeof(b),s,tm))
@@ -229,34 +256,36 @@ static void io_debug (void) · 24 unmodified lines
229256
230257 static void lua_printstack (FILE *f)
231258 {
232− int level = 0;
259+ int level = 1; /* skip level 0 (it's this function) */
233260 lua_Object func;
234− fprintf(f, "Active Stack:\n");
235261 while ((func = lua_stackedfunction(level++)) != LUA_NOOBJECT) {
236262 char *name;
237263 int currentline;
238− fprintf(f, "\t");
264+ char *filename;
265+ int linedefined;
266+ lua_funcinfo(func, &filename, &linedefined);
267+ fprintf(f, (level==2) ? "Active Stack:\n\t" : "\t");
239268 switch (*lua_getobjname(func, &name)) {
240269 case 'g':
241270 fprintf(f, "function %s", name);
242271 break;
243− case 'f':
244− fprintf(f, "`%s' fallback", name);
272+ case 't':
273+ fprintf(f, "`%s' tag method", name);
245274 break;
246275 default: {
247− char *filename;
248− int linedefined;
249− lua_funcinfo(func, &filename, &linedefined);
250276 if (linedefined == 0)
251277 fprintf(f, "main of %s", filename);
252278 else if (linedefined < 0)
253279 fprintf(f, "%s", filename);
254280 else
255281 fprintf(f, "function (%s:%d)", filename, linedefined);
282+ filename = NULL;
256283 }
257284 }
258285 if ((currentline = lua_currentline(func)) > 0)
259286 fprintf(f, " at line %d", currentline);
287+ if (filename)
288+ fprintf(f, " [in file %s]", filename);
260289 fprintf(f, "\n");
261290 }
262291 }
@@ -264,13 +293,13 @@ static void lua_printstack (FILE *f) · 1 unmodified line
264293
265294 static void errorfb (void)
266295 {
267− char *s = lua_opt_string(1, "(no messsage)", NULL);
268− fprintf(stderr, "lua: %s\n", s);
296+ fprintf(stderr, "lua: %s\n", lua_getstring(lua_getparam(1)));
269297 lua_printstack(stderr);
270298 }
271299
272300
273−static struct lua_reg iolib[] = {
301+
302+static struct luaL_reg iolib[] = {
274303 {"readfrom", io_readfrom},
275304 {"writeto", io_writeto},
276305 {"appendto", io_appendto},
@@ -289,7 +318,13 @@ static struct lua_reg iolib[] = { · 12 unmodified lines
289318
290319 void iolib_open (void)
291320 {
292− lua_infile=stdin; lua_outfile=stdout;
293− luaI_openlib(iolib, (sizeof(iolib)/sizeof(iolib[0])));
294− lua_setfallback("error", errorfb);
321+ lua_tagio = lua_newtag();
322+ setfile(stdin, "_INPUT");
323+ setfile(stdout, "_OUTPUT");
324+ setfile(stdin, "_STDIN");
325+ setfile(stdout, "_STDOUT");
326+ setfile(stderr, "_STDERR");
327+ luaL_openlib(iolib, (sizeof(iolib)/sizeof(iolib[0])));
328+ lua_pushcfunction(errorfb);
329+ lua_seterrormethod();
295330 }
clients/lib/mathlib.c+34−47
@@ -3,12 +3,13 @@ · 2 unmodified lines
33 ** Mathematics library to LUA
44 */
55
6−char *rcs_mathlib="$Id: mathlib.c,v 1.18 1996/08/01 14:55:33 roberto Exp $";
6+char *rcs_mathlib="$Id: mathlib.c,v 1.25 1997/06/19 18:03:04 roberto Exp $";
77
88 #include <stdlib.h>
99 #include <math.h>
1010
1111 #include "lualib.h"
12+#include "auxlib.h"
1213 #include "lua.h"
1314
1415 #ifndef PI
@@ -19,7 +20,7 @@ char *rcs_mathlib="$Id: mathlib.c,v 1.18 1996/08/01 14:55:33 roberto Exp $"; · 4 unmodified lines
1920
2021 static void math_abs (void)
2122 {
22− double d = lua_check_number(1, "abs");
23+ double d = luaL_check_number(1);
2324 if (d < 0) d = -d;
2425 lua_pushnumber (d);
2526 }
@@ -27,7 +28,7 @@ static void math_abs (void) · 1 unmodified line
2728
2829 static void math_sin (void)
2930 {
30− double d = lua_check_number(1, "sin");
31+ double d = luaL_check_number(1);
3132 lua_pushnumber (sin(TORAD(d)));
3233 }
3334
@@ -35,7 +36,7 @@ static void math_sin (void) · 1 unmodified line
3536
3637 static void math_cos (void)
3738 {
38− double d = lua_check_number(1, "cos");
39+ double d = luaL_check_number(1);
3940 lua_pushnumber (cos(TORAD(d)));
4041 }
4142
@@ -43,98 +44,82 @@ static void math_cos (void) · 1 unmodified line
4344
4445 static void math_tan (void)
4546 {
46− double d = lua_check_number(1, "tan");
47+ double d = luaL_check_number(1);
4748 lua_pushnumber (tan(TORAD(d)));
4849 }
4950
5051
5152 static void math_asin (void)
5253 {
53− double d = lua_check_number(1, "asin");
54+ double d = luaL_check_number(1);
5455 lua_pushnumber (TODEGREE(asin(d)));
5556 }
5657
5758
5859 static void math_acos (void)
5960 {
60− double d = lua_check_number(1, "acos");
61+ double d = luaL_check_number(1);
6162 lua_pushnumber (TODEGREE(acos(d)));
6263 }
6364
6465
6566 static void math_atan (void)
6667 {
67− double d = lua_check_number(1, "atan");
68+ double d = luaL_check_number(1);
6869 lua_pushnumber (TODEGREE(atan(d)));
6970 }
7071
7172
7273 static void math_atan2 (void)
7374 {
74− double d1 = lua_check_number(1, "atan2");
75− double d2 = lua_check_number(2, "atan2");
75+ double d1 = luaL_check_number(1);
76+ double d2 = luaL_check_number(2);
7677 lua_pushnumber (TODEGREE(atan2(d1, d2)));
7778 }
7879
7980
8081 static void math_ceil (void)
8182 {
82− double d = lua_check_number(1, "ceil");
83+ double d = luaL_check_number(1);
8384 lua_pushnumber (ceil(d));
8485 }
8586
8687
8788 static void math_floor (void)
8889 {
89− double d = lua_check_number(1, "floor");
90+ double d = luaL_check_number(1);
9091 lua_pushnumber (floor(d));
9192 }
9293
9394 static void math_mod (void)
9495 {
95− float x = lua_check_number(1, "mod");
96− float y = lua_check_number(2, "mod");
96+ float x = luaL_check_number(1);
97+ float y = luaL_check_number(2);
9798 lua_pushnumber(fmod(x, y));
9899 }
99100
100101
101102 static void math_sqrt (void)
102103 {
103− double d = lua_check_number(1, "sqrt");
104+ double d = luaL_check_number(1);
104105 lua_pushnumber (sqrt(d));
105106 }
106107
107−static int old_pow;
108108
109109 static void math_pow (void)
110110 {
111− lua_Object o1 = lua_getparam (1);
112− lua_Object o2 = lua_getparam (2);
113− lua_Object op = lua_getparam(3);
114− if (!lua_isnumber(o1) || !lua_isnumber(o2) || *(lua_getstring(op)) != 'p')
115− {
116− lua_Object old = lua_getref(old_pow);
117− lua_pushobject(o1);
118− lua_pushobject(o2);
119− lua_pushobject(op);
120− if (lua_callfunction(old) != 0)
121− lua_error(NULL);
122− }
123− else
124− {
125− double d1 = lua_getnumber(o1);
126− double d2 = lua_getnumber(o2);
127− lua_pushnumber (pow(d1,d2));
128− }
111+ double d1 = luaL_check_number(1);
112+ double d2 = luaL_check_number(2);
113+ lua_pushnumber(pow(d1,d2));
129114 }
130115
131116 static void math_min (void)
132117 {
133118 int i=1;
134− double dmin = lua_check_number(i, "min");
119+ double dmin = luaL_check_number(i);
135120 while (lua_getparam(++i) != LUA_NOOBJECT)
136121 {
137− double d = lua_check_number(i, "min");
122+ double d = luaL_check_number(i);
138123 if (d < dmin) dmin = d;
139124 }
140125 lua_pushnumber (dmin);
@@ -143,10 +128,10 @@ static void math_min (void) · 2 unmodified lines
143128 static void math_max (void)
144129 {
145130 int i=1;
146− double dmax = lua_check_number(i, "max");
131+ double dmax = luaL_check_number(i);
147132 while (lua_getparam(++i) != LUA_NOOBJECT)
148133 {
149− double d = lua_check_number(i, "max");
134+ double d = luaL_check_number(i);
150135 if (d > dmax) dmax = d;
151136 }
152137 lua_pushnumber (dmax);
@@ -154,33 +139,33 @@ static void math_max (void) · 1 unmodified line
154139
155140 static void math_log (void)
156141 {
157− double d = lua_check_number(1, "log");
142+ double d = luaL_check_number(1);
158143 lua_pushnumber (log(d));
159144 }
160145
161146
162147 static void math_log10 (void)
163148 {
164− double d = lua_check_number(1, "log10");
149+ double d = luaL_check_number(1);
165150 lua_pushnumber (log10(d));
166151 }
167152
168153
169154 static void math_exp (void)
170155 {
171− double d = lua_check_number(1, "exp");
156+ double d = luaL_check_number(1);
172157 lua_pushnumber (exp(d));
173158 }
174159
175160 static void math_deg (void)
176161 {
177− float d = lua_check_number(1, "deg");
162+ float d = luaL_check_number(1);
178163 lua_pushnumber (d*180./PI);
179164 }
180165
181166 static void math_rad (void)
182167 {
183− float d = lua_check_number(1, "rad");
168+ float d = luaL_check_number(1);
184169 lua_pushnumber (d/180.*PI);
185170 }
186171
@@ -191,11 +176,11 @@ static void math_random (void) · 4 unmodified lines
191176
192177 static void math_randomseed (void)
193178 {
194− srand(lua_check_number(1, "randomseed"));
179+ srand(luaL_check_number(1));
195180 }
196181
197182
198−static struct lua_reg mathlib[] = {
183+static struct luaL_reg mathlib[] = {
199184 {"abs", math_abs},
200185 {"sin", math_sin},
201186 {"cos", math_cos},
@@ -224,7 +209,9 @@ static struct lua_reg mathlib[] = { · 22 unmodified lines
224209 */
225210 void mathlib_open (void)
226211 {
227− luaI_openlib(mathlib, (sizeof(mathlib)/sizeof(mathlib[0])));
228− old_pow = lua_refobject(lua_setfallback("arith", math_pow), 1);
212+ luaL_openlib(mathlib, (sizeof(mathlib)/sizeof(mathlib[0])));
213+ lua_pushcfunction(math_pow);
214+ lua_pushnumber(0); /* to get its tag */
215+ lua_settagmethod(lua_tag(lua_pop()), "pow");
229216 }
230217
clients/lib/old/Makefile+0−35
@@ -1,35 +0,0 @@
1−# makefile for lualib
2−
3−LUA= ../../..
4−
5−include $(LUA)/config
6−
7−EXTRA_DEFS= $(POPEN) $(NOSTRERROR)
8−
9−OBJS= iolib.o mathlib.o strlib.o
10−SRCS= iolib.c mathlib.c strlib.c
11−
12−SLIB= $(LIB)/liboldlualib.a
13−
14−# dynamic libraries only work for SunOs
15−DLIB= $(LIB)/liboldlualib.so.$(VERSION)
16−
17−all: $(SLIB)
18−
19−dynamic: $(DLIB)
20−
21−$(SLIB): $(OBJS)
22− ar rcu $@ $(OBJS)
23− $(RANLIB) $(SLIB)
24−
25−$(DLIB): $(OBJS)
26− ld -o $@ $(OBJS)
27−
28−clean:
29− rm -f $(OBJS) $(SLIB) $(DLIB)
30−
31−co:
32− co -f -M -rv2_4 $(SRCS)
33−
34−klean: clean
35− rm -f $(SRCS)
clients/lib/old/iolib.c+0−618
@@ -1,618 +0,0 @@
1−/*
2−** iolib.c
3−** Input/output library to LUA
4−*/
5−
6−char *rcs_iolib="$Id: iolib.c,v 1.44 1996/05/03 20:10:59 roberto Exp $";
7−
8−#include <stdio.h>
9−#include <ctype.h>
10−#include <string.h>
11−#include <time.h>
12−#include <stdlib.h>
13−#include <errno.h>
14−
15−#include "lua.h"
16−#include "luadebug.h"
17−#include "lualib.h"
18−
19−static FILE *in=stdin, *out=stdout;
20−
21−
22−#ifdef POPEN
23−FILE *popen();
24−int pclose();
25−#else
26−#define popen(x,y) NULL /* that is, popen always fails */
27−#define pclose(x) (-1)
28−#endif
29−
30−
31−static void pushresult (int i)
32−{
33− if (i)
34− lua_pushnumber (1);
35− else
36− lua_pushnil();
37−}
38−
39−static void closeread (void)
40−{
41− if (in != stdin)
42− {
43− if (pclose(in) == -1)
44− fclose(in);
45− in = stdin;
46− }
47−}
48−
49−static void closewrite (void)
50−{
51− if (out != stdout)
52− {
53− if (pclose(out) == -1)
54− fclose(out);
55− out = stdout;
56− }
57−}
58−
59−/*
60−** Open a file to read.
61−** LUA interface:
62−** status = readfrom (filename)
63−** where:
64−** status = 1 -> success
65−** status = nil -> error
66−*/
67−static void io_readfrom (void)
68−{
69− if (lua_getparam (1) == LUA_NOOBJECT)
70− { /* restore standart input */
71− closeread();
72− lua_pushnumber (1);
73− }
74− else
75− {
76− char *s = lua_check_string(1, "readfrom");
77− FILE *fp = (*s == '|') ? popen(s+1, "r") : fopen(s, "r");
78− if (fp == NULL)
79− lua_pushnil();
80− else
81− {
82− closeread();
83− in = fp;
84− lua_pushnumber (1);
85− }
86− }
87−}
88−
89−
90−/*
91−** Open a file to write.
92−** LUA interface:
93−** status = writeto (filename)
94−** where:
95−** status = 1 -> success
96−** status = nil -> error
97−*/
98−static void io_writeto (void)
99−{
100− if (lua_getparam (1) == LUA_NOOBJECT) /* restore standart output */
101− {
102− closewrite();
103− lua_pushnumber (1);
104− }
105− else
106− {
107− char *s = lua_check_string(1, "writeto");
108− FILE *fp = (*s == '|') ? popen(s+1,"w") : fopen(s,"w");
109− if (fp == NULL)
110− lua_pushnil();
111− else
112− {
113− closewrite();
114− out = fp;
115− lua_pushnumber (1);
116− }
117− }
118−}
119−
120−
121−/*
122−** Open a file to write appended.
123−** LUA interface:
124−** status = appendto (filename)
125−** where:
126−** status = 1 -> success
127−** status = nil -> error
128−*/
129−static void io_appendto (void)
130−{
131− char *s = lua_check_string(1, "appendto");
132− FILE *fp = fopen (s, "a");
133− if (fp == NULL)
134− lua_pushnil();
135− else
136− {
137− if (out != stdout) fclose (out);
138− out = fp;
139− lua_pushnumber(1);
140− }
141−}
142−
143−
144−static char getformat (char *f, int *just, int *m, int *n)
145−{
146− int t;
147− switch (*f++)
148− {
149− case 'q': case 'Q':
150− case 's': case 'S':
151− case 'i': case 'I':
152− t = tolower(*(f-1));
153− break;
154− case 'f': case 'F': case 'g': case 'G': case 'e': case 'E':
155− t = 'f';
156− break;
157− default:
158− t = 0; /* to avoid compiler warnings */
159− lua_arg_error("read/write (format)");
160− }
161− *just = (*f == '<' || *f == '>' || *f == '|') ? *f++ : '>';
162− if (isdigit(*f))
163− {
164− *m = 0;
165− while (isdigit(*f))
166− *m = *m*10 + (*f++ - '0');
167− }
168− else
169− *m = -1;
170− if (*f == '.')
171− {
172− f++; /* skip point */
173− *n = 0;
174− while (isdigit(*f))
175− *n = *n*10 + (*f++ - '0');
176− }
177− else
178− *n = -1;
179− return t;
180−}
181−
182−
183−/*
184−** Read a variable. On error put nil on stack.
185−** LUA interface:
186−** variable = read ([format])
187−**
188−** O formato pode ter um dos seguintes especificadores:
189−**
190−** s ou S -> para string
191−** f ou F, g ou G, e ou E -> para reais
192−** i ou I -> para inteiros
193−**
194−** Estes especificadores podem vir seguidos de numero que representa
195−** o numero de campos a serem lidos.
196−*/
197−
198−static int read_until_char (int del)
199−{
200− int c;
201− while((c = fgetc(in)) != EOF && c != del)
202− luaI_addchar(c);
203− return c;
204−}
205−
206−static void read_until_blank (void)
207−{
208− int c;
209− while((c = fgetc(in)) != EOF && !isspace(c))
210− luaI_addchar(c);
211− if (c != EOF) ungetc(c,in);
212−}
213−
214−static void read_m (int m)
215−{
216− int c;
217− while (m-- && (c = fgetc(in)) != EOF)
218− luaI_addchar(c);
219−}
220−
221−
222−static void read_free (void)
223−{
224− int c;
225− while (isspace(c=fgetc(in)))
226− ;
227− if (c == EOF)
228− {
229− lua_pushnil();
230− return;
231− }
232− if (c == '\"' || c == '\'')
233− { /* string */
234− c = read_until_char(c);
235− if (c == EOF)
236− lua_pushnil();
237− else
238− lua_pushstring(luaI_addchar(0));
239− }
240− else
241− {
242− double d;
243− char dummy;
244− char *s;
245− luaI_addchar(c);
246− read_until_blank();
247− s = luaI_addchar(0);
248− if (sscanf(s, "%lf %c", &d, &dummy) == 1)
249− lua_pushnumber(d);
250− else
251− lua_pushstring(s);
252− }
253−}
254−
255−static void io_read (void)
256−{
257− lua_Object o = lua_getparam (1);
258− luaI_addchar(0); /* initialize buffer */
259− if (o == LUA_NOOBJECT) /* free format */
260− read_free();
261− else /* formatted */
262− {
263− int m, dummy1, dummy2;
264− switch (getformat(lua_check_string(1, "read"), &dummy1, &m, &dummy2))
265− {
266− case 's':
267− {
268− char *s;
269− if (m < 0)
270− read_until_blank();
271− else
272− read_m(m);
273− s = luaI_addchar(0);
274− if ((m >= 0 && strlen(s) == m) || (m < 0 && strlen(s) > 0))
275− lua_pushstring(s);
276− else
277− lua_pushnil();
278− break;
279− }
280−
281− case 'i': /* can read as float, since it makes no difference to Lua */
282− case 'f':
283− {
284− double d;
285− int result;
286− if (m < 0)
287− result = fscanf(in, "%lf", &d);
288− else
289− {
290− read_m(m);
291− result = sscanf(luaI_addchar(0), "%lf", &d);
292− }
293− if (result == 1)
294− lua_pushnumber(d);
295− else
296− lua_pushnil();
297− break;
298− }
299− default:
300− lua_arg_error("read (format)");
301− }
302− }
303−}
304−
305−
306−/*
307−** Read characters until a given one. The delimiter is not read.
308−*/
309−static void io_readuntil (void)
310−{
311− int del, c;
312− lua_Object p = lua_getparam(1);
313− luaI_addchar(0); /* initialize buffer */
314− if (p == LUA_NOOBJECT || lua_isnil(p))
315− del = EOF;
316− else
317− del = *lua_check_string(1, "readuntil");
318− c = read_until_char(del);
319− if (c != EOF) ungetc(c,in);
320− lua_pushstring(luaI_addchar(0));
321−}
322−
323−
324−/*
325−** Write a variable. On error put 0 on stack, otherwise put 1.
326−** LUA interface:
327−** status = write (variable [,format])
328−**
329−** O formato pode ter um dos seguintes especificadores:
330−**
331−** s ou S -> para string
332−** f ou F, g ou G, e ou E -> para reais
333−** i ou I -> para inteiros
334−**
335−** Estes especificadores podem vir seguidos de:
336−**
337−** [?][m][.n]
338−**
339−** onde:
340−** ? -> indica justificacao
341−** < = esquerda
342−** | = centro
343−** > = direita (default)
344−** m -> numero maximo de campos (se exceder estoura)
345−** n -> indica precisao para
346−** reais -> numero de casas decimais
347−** inteiros -> numero minimo de digitos
348−** string -> nao se aplica
349−*/
350−
351−static int write_fill (int n, int c)
352−{
353− while (n--)
354− if (fputc(c, out) == EOF)
355− return 0;
356− return 1;
357−}
358−
359−static int write_string (char *s, int just, int m)
360−{
361− int status;
362− int l = strlen(s);
363− int pre; /* number of blanks before string */
364− if (m < 0) m = l;
365− else if (l > m)
366− {
367− write_fill(m, '*');
368− return 0;
369− }
370− pre = (just == '<') ? 0 : (just == '>') ? m-l : (m-l)/2;
371− status = write_fill(pre, ' ');
372− status = status && fprintf(out, "%s", s) >= 0;
373− status = status && write_fill(m-(l+pre), ' ');
374− return status;
375−}
376−
377−static int write_quoted (int just, int m)
378−{
379− luaI_addchar(0);
380− luaI_addquoted(lua_check_string(1, "write"));
381− return write_string(luaI_addchar(0), just, m);
382−}
383−
384−static int write_float (int just, int m, int n)
385−{
386− char buffer[100];
387− lua_Object p = lua_getparam(1);
388− float number;
389− if (!lua_isnumber(p)) return 0;
390− number = lua_getnumber(p);
391− if (n >= 0)
392− sprintf(buffer, "%.*f", n, number);
393− else
394− sprintf(buffer, "%g", number);
395− return write_string(buffer, just, m);
396−}
397−
398−
399−static int write_int (int just, int m, int n)
400−{
401− char buffer[100];
402− lua_Object p = lua_getparam(1);
403− int number;
404− if (!lua_isnumber(p)) return 0;
405− number = (int)lua_getnumber(p);
406− if (n >= 0)
407− sprintf(buffer, "%.*d", n, number);
408− else
409− sprintf(buffer, "%d", number);
410− return write_string(buffer, just, m);
411−}
412−
413−
414−static void io_write (void)
415−{
416− int status = 0;
417− if (lua_getparam (2) == LUA_NOOBJECT) /* free format */
418− {
419− lua_Object o1 = lua_getparam(1);
420− int t = lua_type(o1);
421− if (t == LUA_T_NUMBER)
422− status = fprintf (out, "%g", lua_getnumber(o1)) >= 0;
423− else if (t == LUA_T_STRING)
424− status = fprintf (out, "%s", lua_getstring(o1)) >= 0;
425− }
426− else /* formated */
427− {
428− int just, m, n;
429− switch (getformat(lua_check_string(2, "write"), &just, &m, &n))
430− {
431− case 's':
432− {
433− lua_Object p = lua_getparam(1);
434− if (lua_isstring(p))
435− status = write_string(lua_getstring(p), just, m);
436− else
437− status = 0;
438− break;
439− }
440− case 'q':
441− status = write_quoted(just, m);
442− break;
443− case 'f':
444− status = write_float(just, m, n);
445− break;
446− case 'i':
447− status = write_int(just, m, n);
448− break;
449− }
450− }
451− if (status)
452− lua_pushnumber(status);
453− else
454− lua_pushnil();
455−}
456−
457−/*
458−** Execute a executable program using "system".
459−** Return the result of execution.
460−*/
461−static void io_execute (void)
462−{
463− lua_pushnumber(system(lua_check_string(1, "execute")));
464−}
465−
466−/*
467−** Remove a file. On error return nil.
468−*/
469−static void io_remove (void)
470−{
471− pushresult(remove(lua_check_string(1, "remove")) == 0);
472−}
473−
474−static void io_rename (void)
475−{
476− char *f1 = lua_check_string(1, "rename");
477− char *f2 = lua_check_string(2, "rename");
478− pushresult(rename(f1, f2) == 0);
479−}
480−
481−static void io_tmpname (void)
482−{
483− lua_pushstring(tmpnam(NULL));
484−}
485−
486−static void io_errorno (void)
487−{
488−/* lua_pushstring(strerror(errno));*/
489−}
490−
491−
492−/*
493−** To get a environment variable
494−*/
495−static void io_getenv (void)
496−{
497− char *env = getenv(lua_check_string(1, "getenv"));
498− lua_pushstring(env); /* if NULL push nil */
499−}
500−
501−/*
502−** Return user formatted time stamp
503−*/
504−static void io_date (void)
505−{
506− time_t t;
507− struct tm *tm;
508− char *s;
509− char b[BUFSIZ];
510− if (lua_getparam(1) == LUA_NOOBJECT)
511− s = "%c";
512− else
513− s = lua_check_string(1, "date");
514− time(&t); tm = localtime(&t);
515− if (strftime(b,sizeof(b),s,tm))
516− lua_pushstring(b);
517− else
518− lua_error("invalid `date' format");
519−}
520−
521−/*
522−** To exit
523−*/
524−static void io_exit (void)
525−{
526− lua_Object o = lua_getparam(1);
527− int code = lua_isnumber(o) ? (int)lua_getnumber(o) : 1;
528− exit(code);
529−}
530−
531−/*
532−** To debug a lua program. Start a dialog with the user, interpreting
533− lua commands until an 'cont'.
534−*/
535−static void io_debug (void)
536−{
537− while (1)
538− {
539− char buffer[250];
540− fprintf(stderr, "lua_debug> ");
541− if (fgets(buffer, sizeof(buffer), stdin) == 0) return;
542− if (strcmp(buffer, "cont") == 0) return;
543− lua_dostring(buffer);
544− }
545−}
546−
547−
548−static void lua_printstack (FILE *f)
549−{
550− int level = 0;
551− lua_Object func;
552− fprintf(f, "Active Stack:\n");
553− while ((func = lua_stackedfunction(level++)) != LUA_NOOBJECT)
554− {
555− char *name;
556− int currentline;
557− fprintf(f, "\t");
558− switch (*lua_getobjname(func, &name))
559− {
560− case 'g':
561− fprintf(f, "function %s", name);
562− break;
563− case 'f':
564− fprintf(f, "`%s' fallback", name);
565− break;
566− default:
567− {
568− char *filename;
569− int linedefined;
570− lua_funcinfo(func, &filename, &linedefined);
571− if (linedefined == 0)
572− fprintf(f, "main of %s", filename);
573− else if (linedefined < 0)
574− fprintf(f, "%s", filename);
575− else
576− fprintf(f, "function (%s:%d)", filename, linedefined);
577− }
578− }
579− if ((currentline = lua_currentline(func)) > 0)
580− fprintf(f, " at line %d", currentline);
581− fprintf(f, "\n");
582− }
583−}
584−
585−
586−static void errorfb (void)
587−{
588− lua_Object o = lua_getparam(1);
589− char *s = lua_isstring(o) ? lua_getstring(o) : "(no messsage)";
590− fprintf(stderr, "lua: %s\n", s);
591− lua_printstack(stderr);
592−}
593−
594−
595−static struct lua_reg iolib[] = {
596−{"readfrom", io_readfrom},
597−{"writeto", io_writeto},
598−{"appendto", io_appendto},
599−{"read", io_read},
600−{"readuntil",io_readuntil},
601−{"write", io_write},
602−{"execute", io_execute},
603−{"remove", io_remove},
604−{"rename", io_rename},
605−{"tmpname", io_tmpname},
606−{"ioerror", io_errorno},
607−{"getenv", io_getenv},
608−{"date", io_date},
609−{"exit", io_exit},
610−{"debug", io_debug},
611−{"print_stack", errorfb}
612−};
613−
614−void iolib_open (void)
615−{
616− luaI_openlib(iolib, (sizeof(iolib)/sizeof(iolib[0])));
617− lua_setfallback("error", errorfb);
618−}
clients/lib/old/lualib.h+0−33
@@ -1,33 +0,0 @@
1−/*
2−** Libraries to be used in LUA programs
3−** Grupo de Tecnologia em Computacao Grafica
4−** TeCGraf - PUC-Rio
5−** $Id: lualib.h,v 1.8 1996/04/30 21:13:55 roberto Exp $
6−*/
7−
8−#ifndef lualib_h
9−#define lualib_h
10−
11−#include "lua.h"
12−
13−void iolib_open (void);
14−void strlib_open (void);
15−void mathlib_open (void);
16−
17−
18−/* auxiliar functions (private) */
19−
20−struct lua_reg {
21− char *name;
22− lua_CFunction func;
23−};
24−
25−void luaI_openlib (struct lua_reg *l, int n);
26−void lua_arg_error(char *funcname);
27−char *lua_check_string (int numArg, char *funcname);
28−double lua_check_number (int numArg, char *funcname);
29−char *luaI_addchar (int c);
30−void luaI_addquoted (char *s);
31−
32−#endif
33−
clients/lib/old/mathlib.c+0−230
@@ -1,230 +0,0 @@
1−/*
2−** mathlib.c
3−** Mathematics library to LUA
4−*/
5−
6−char *rcs_mathlib="$Id: mathlib.c,v 1.17 1996/04/30 21:13:55 roberto Exp $";
7−
8−#include <stdlib.h>
9−#include <math.h>
10−
11−#include "lualib.h"
12−#include "lua.h"
13−
14−#ifndef PI
15−#define PI 3.14159265358979323846
16−#endif
17−#define TODEGREE(a) ((a)*180.0/PI)
18−#define TORAD(a) ((a)*PI/180.0)
19−
20−static void math_abs (void)
21−{
22− double d = lua_check_number(1, "abs");
23− if (d < 0) d = -d;
24− lua_pushnumber (d);
25−}
26−
27−
28−static void math_sin (void)
29−{
30− double d = lua_check_number(1, "sin");
31− lua_pushnumber (sin(TORAD(d)));
32−}
33−
34−
35−
36−static void math_cos (void)
37−{
38− double d = lua_check_number(1, "cos");
39− lua_pushnumber (cos(TORAD(d)));
40−}
41−
42−
43−
44−static void math_tan (void)
45−{
46− double d = lua_check_number(1, "tan");
47− lua_pushnumber (tan(TORAD(d)));
48−}
49−
50−
51−static void math_asin (void)
52−{
53− double d = lua_check_number(1, "asin");
54− lua_pushnumber (TODEGREE(asin(d)));
55−}
56−
57−
58−static void math_acos (void)
59−{
60− double d = lua_check_number(1, "acos");
61− lua_pushnumber (TODEGREE(acos(d)));
62−}
63−
64−
65−static void math_atan (void)
66−{
67− double d = lua_check_number(1, "atan");
68− lua_pushnumber (TODEGREE(atan(d)));
69−}
70−
71−
72−static void math_atan2 (void)
73−{
74− double d1 = lua_check_number(1, "atan2");
75− double d2 = lua_check_number(2, "atan2");
76− lua_pushnumber (TODEGREE(atan2(d1, d2)));
77−}
78−
79−
80−static void math_ceil (void)
81−{
82− double d = lua_check_number(1, "ceil");
83− lua_pushnumber (ceil(d));
84−}
85−
86−
87−static void math_floor (void)
88−{
89− double d = lua_check_number(1, "floor");
90− lua_pushnumber (floor(d));
91−}
92−
93−static void math_mod (void)
94−{
95− int d1 = (int)lua_check_number(1, "mod");
96− int d2 = (int)lua_check_number(2, "mod");
97− lua_pushnumber (d1%d2);
98−}
99−
100−
101−static void math_sqrt (void)
102−{
103− double d = lua_check_number(1, "sqrt");
104− lua_pushnumber (sqrt(d));
105−}
106−
107−static int old_pow;
108−
109−static void math_pow (void)
110−{
111− lua_Object o1 = lua_getparam (1);
112− lua_Object o2 = lua_getparam (2);
113− lua_Object op = lua_getparam(3);
114− if (!lua_isnumber(o1) || !lua_isnumber(o2) || *(lua_getstring(op)) != 'p')
115− {
116− lua_Object old = lua_getref(old_pow);
117− lua_pushobject(o1);
118− lua_pushobject(o2);
119− lua_pushobject(op);
120− if (lua_callfunction(old) != 0)
121− lua_error(NULL);
122− }
123− else
124− {
125− double d1 = lua_getnumber(o1);
126− double d2 = lua_getnumber(o2);
127− lua_pushnumber (pow(d1,d2));
128− }
129−}
130−
131−static void math_min (void)
132−{
133− int i=1;
134− double dmin = lua_check_number(i, "min");
135− while (lua_getparam(++i) != LUA_NOOBJECT)
136− {
137− double d = lua_check_number(i, "min");
138− if (d < dmin) dmin = d;
139− }
140− lua_pushnumber (dmin);
141−}
142−
143−static void math_max (void)
144−{
145− int i=1;
146− double dmax = lua_check_number(i, "max");
147− while (lua_getparam(++i) != LUA_NOOBJECT)
148− {
149− double d = lua_check_number(i, "max");
150− if (d > dmax) dmax = d;
151− }
152− lua_pushnumber (dmax);
153−}
154−
155−static void math_log (void)
156−{
157− double d = lua_check_number(1, "log");
158− lua_pushnumber (log(d));
159−}
160−
161−
162−static void math_log10 (void)
163−{
164− double d = lua_check_number(1, "log10");
165− lua_pushnumber (log10(d));
166−}
167−
168−
169−static void math_exp (void)
170−{
171− double d = lua_check_number(1, "exp");
172− lua_pushnumber (exp(d));
173−}
174−
175−static void math_deg (void)
176−{
177− float d = lua_check_number(1, "deg");
178− lua_pushnumber (d*180./PI);
179−}
180−
181−static void math_rad (void)
182−{
183− float d = lua_check_number(1, "rad");
184− lua_pushnumber (d/180.*PI);
185−}
186−
187−static void math_random (void)
188−{
189− lua_pushnumber((double)(rand()%RAND_MAX) / (double)RAND_MAX);
190−}
191−
192−static void math_randomseed (void)
193−{
194− srand(lua_check_number(1, "randomseed"));
195−}
196−
197−
198−static struct lua_reg mathlib[] = {
199−{"abs", math_abs},
200−{"sin", math_sin},
201−{"cos", math_cos},
202−{"tan", math_tan},
203−{"asin", math_asin},
204−{"acos", math_acos},
205−{"atan", math_atan},
206−{"atan2", math_atan2},
207−{"ceil", math_ceil},
208−{"floor", math_floor},
209−{"mod", math_mod},
210−{"sqrt", math_sqrt},
211−{"min", math_min},
212−{"max", math_max},
213−{"log", math_log},
214−{"log10", math_log10},
215−{"exp", math_exp},
216−{"deg", math_deg},
217−{"rad", math_rad},
218−{"random", math_random},
219−{"randomseed", math_randomseed}
220−};
221−
222−/*
223−** Open math library
224−*/
225−void mathlib_open (void)
226−{
227− luaI_openlib(mathlib, (sizeof(mathlib)/sizeof(mathlib[0])));
228− old_pow = lua_refobject(lua_setfallback("arith", math_pow), 1);
229−}
230−
clients/lib/old/strlib.c+0−276
@@ -1,276 +0,0 @@
1−/*
2−** strlib.c
3−** String library to LUA
4−*/
5−
6−char *rcs_strlib="$Id: strlib.c,v 1.23 1996/04/30 21:13:55 roberto Exp $";
7−
8−#include <string.h>
9−#include <stdio.h>
10−#include <stdlib.h>
11−#include <ctype.h>
12−#include <limits.h>
13−
14−#include "lua.h"
15−#include "lualib.h"
16−
17−
18−void lua_arg_error(char *funcname)
19−{
20− char buff[100];
21− sprintf(buff, "incorrect arguments to function `%s'", funcname);
22− lua_error(buff);
23−}
24−
25−char *lua_check_string (int numArg, char *funcname)
26−{
27− lua_Object o = lua_getparam(numArg);
28− if (!lua_isstring(o))
29− lua_arg_error(funcname);
30− return lua_getstring(o);
31−}
32−
33−double lua_check_number (int numArg, char *funcname)
34−{
35− lua_Object o = lua_getparam(numArg);
36− if (!lua_isnumber(o))
37− lua_arg_error(funcname);
38− return lua_getnumber(o);
39−}
40−
41−static int lua_opt_number (int numArg, int def, char *funcname)
42−{
43− return (lua_getparam(numArg) == LUA_NOOBJECT) ? def :
44− (int)lua_check_number(numArg, funcname);
45−}
46−
47−char *luaI_addchar (int c)
48−{
49− static char *buff = NULL;
50− static int max = 0;
51− static int n = 0;
52− if (n >= max)
53− {
54− if (max == 0)
55− {
56− max = 100;
57− buff = (char *)malloc(max);
58− }
59− else
60− {
61− max *= 2;
62− buff = (char *)realloc(buff, max);
63− }
64− if (buff == NULL)
65− lua_error("memory overflow");
66− }
67− buff[n++] = c;
68− if (c == 0)
69− n = 0; /* prepare for next string */
70− return buff;
71−}
72−
73−
74−/*
75−** Return the position of the first caracter of a substring into a string
76−** LUA interface:
77−** n = strfind (string, substring, init, end)
78−*/
79−static void str_find (void)
80−{
81− char *s1 = lua_check_string(1, "strfind");
82− char *s2 = lua_check_string(2, "strfind");
83− int init = lua_opt_number(3, 1, "strfind") - 1;
84− char *f = (init>=0 && init<=strlen(s1)) ? strstr(s1+init,s2) : NULL;
85− if (f != NULL)
86− {
87− int pos = f-s1+1;
88− if (lua_opt_number(4, INT_MAX, "strfind") >= pos+strlen(s2)-1)
89− lua_pushnumber (pos);
90− else
91− lua_pushnil();
92− }
93− else
94− lua_pushnil();
95−}
96−
97−/*
98−** Return the string length
99−** LUA interface:
100−** n = strlen (string)
101−*/
102−static void str_len (void)
103−{
104− char *s = lua_check_string(1, "strlen");
105− lua_pushnumber(strlen(s));
106−}
107−
108−
109−/*
110−** Return the substring of a string, from start to end
111−** LUA interface:
112−** substring = strsub (string, start, end)
113−*/
114−static void str_sub (void)
115−{
116− char *s = lua_check_string(1, "strsub");
117− int start = (int)lua_check_number(2, "strsub");
118− int end = lua_opt_number(3, strlen(s), "strsub");
119− if (end < start || start < 1 || end > strlen(s))
120− lua_pushliteral("");
121− else
122− {
123− luaI_addchar(0);
124− while (start <= end)
125− luaI_addchar(s[start++ - 1]);
126− lua_pushstring (luaI_addchar(0));
127− }
128−}
129−
130−/*
131−** Convert a string to lower case.
132−** LUA interface:
133−** lowercase = strlower (string)
134−*/
135−static void str_lower (void)
136−{
137− char *s = lua_check_string(1, "strlower");
138− luaI_addchar(0);
139− while (*s)
140− luaI_addchar(tolower(*s++));
141− lua_pushstring(luaI_addchar(0));
142−}
143−
144−
145−/*
146−** Convert a string to upper case.
147−** LUA interface:
148−** uppercase = strupper (string)
149−*/
150−static void str_upper (void)
151−{
152− char *s = lua_check_string(1, "strupper");
153− luaI_addchar(0);
154− while (*s)
155− luaI_addchar(toupper(*s++));
156− lua_pushstring(luaI_addchar(0));
157−}
158−
159−/*
160−** get ascii value of a character in a string
161−*/
162−static void str_ascii (void)
163−{
164− char *s = lua_check_string(1, "ascii");
165− int pos = lua_opt_number(2, 1, "ascii") - 1;
166− if (pos<0 || pos>=strlen(s))
167− lua_arg_error("ascii");
168− lua_pushnumber(s[pos]);
169−}
170−
171−void luaI_addquoted (char *s)
172−{
173− luaI_addchar('"');
174− for (; *s; s++)
175− {
176− if (*s == '"' || *s == '\\' || *s == '\n')
177− luaI_addchar('\\');
178− luaI_addchar(*s);
179− }
180− luaI_addchar('"');
181−}
182−
183−#define MAX_CONVERTION 2000
184−#define MAX_FORMAT 50
185−
186−static void str_format (void)
187−{
188− int arg = 1;
189− char *strfrmt = lua_check_string(arg++, "format");
190− luaI_addchar(0); /* initialize */
191− while (*strfrmt)
192− {
193− if (*strfrmt != '%')
194− luaI_addchar(*strfrmt++);
195− else if (*++strfrmt == '%')
196− luaI_addchar(*strfrmt++); /* %% */
197− else
198− { /* format item */
199− char form[MAX_FORMAT]; /* store the format ('%...') */
200− char buff[MAX_CONVERTION]; /* store the formated value */
201− int size = 0;
202− int i = 0;
203− form[i++] = '%';
204− form[i] = *strfrmt++;
205− while (!isalpha(form[i]))
206− {
207− if (isdigit(form[i]))
208− {
209− size = size*10 + form[i]-'0';
210− if (size >= MAX_CONVERTION)
211− lua_error("format size/precision too long in function `format'");
212− }
213− else if (form[i] == '.')
214− size = 0; /* re-start */
215− if (++i >= MAX_FORMAT)
216− lua_error("bad format in function `format'");
217− form[i] = *strfrmt++;
218− }
219− form[i+1] = 0; /* ends string */
220− switch (form[i])
221− {
222− case 'q':
223− luaI_addquoted(lua_check_string(arg++, "format"));
224− buff[0] = '\0'; /* addchar already done */
225− break;
226− case 's':
227− {
228− char *s = lua_check_string(arg++, "format");
229− if (strlen(s) >= MAX_CONVERTION)
230− lua_error("string argument too long in function `format'");
231− sprintf(buff, form, s);
232− break;
233− }
234− case 'c': case 'd': case 'i': case 'o':
235− case 'u': case 'x': case 'X':
236− sprintf(buff, form, (int)lua_check_number(arg++, "format"));
237− break;
238− case 'e': case 'E': case 'f': case 'g':
239− sprintf(buff, form, lua_check_number(arg++, "format"));
240− break;
241− default: /* also treat cases 'pnLlh' */
242− lua_error("invalid format option in function `format'");
243− }
244− for (i=0; buff[i]; i++) /* move formated value to result */
245− luaI_addchar(buff[i]);
246− }
247− }
248− lua_pushstring(luaI_addchar(0)); /* push the result */
249−}
250−
251−
252−void luaI_openlib (struct lua_reg *l, int n)
253−{
254− int i;
255− for (i=0; i<n; i++)
256− lua_register(l[i].name, l[i].func);
257−}
258−
259−static struct lua_reg strlib[] = {
260−{"strfind", str_find},
261−{"strlen", str_len},
262−{"strsub", str_sub},
263−{"strlower", str_lower},
264−{"strupper", str_upper},
265−{"ascii", str_ascii},
266−{"format", str_format}
267−};
268−
269−
270−/*
271−** Open string library
272−*/
273−void strlib_open (void)
274−{
275− luaI_openlib(strlib, (sizeof(strlib)/sizeof(strlib[0])));
276−}
clients/lib/strlib.c+106−144
@@ -3,7 +3,7 @@ · 2 unmodified lines
33 ** String library to LUA
44 */
55
6−char *rcs_strlib="$Id: strlib.c,v 1.33 1996/11/20 13:47:59 roberto Exp $";
6+char *rcs_strlib="$Id: strlib.c,v 1.46 1997/06/19 18:49:40 roberto Exp $";
77
88 #include <string.h>
99 #include <stdio.h>
@@ -11,6 +11,7 @@ char *rcs_strlib="$Id: strlib.c,v 1.33 1996/11/20 13:47:59 roberto Exp $"; · 1 unmodified line
1111 #include <ctype.h>
1212
1313 #include "lua.h"
14+#include "auxlib.h"
1415 #include "lualib.h"
1516
1617
@@ -23,7 +24,7 @@ struct lbuff { · 6 unmodified lines
2324 static struct lbuff lbuffer = {NULL, 0, 0};
2425
2526
26−static char *lua_strbuffer (unsigned long size)
27+static char *strbuffer (unsigned long size)
2728 {
2829 if (size > lbuffer.max) {
2930 /* ANSI "realloc" doesn't need this test, but some machines (Sun!)
@@ -38,55 +39,24 @@ static char *lua_strbuffer (unsigned long size) · 8 unmodified lines
3839
3940 static char *openspace (unsigned long size)
4041 {
41− char *buff = lua_strbuffer(lbuffer.size+size);
42+ char *buff = strbuffer(lbuffer.size+size);
4243 return buff+lbuffer.size;
4344 }
4445
45−void lua_arg_check(int cond, char *funcname)
46−{
47− if (!cond) {
48− char buff[100];
49− sprintf(buff, "incorrect argument to function `%s'", funcname);
50− lua_error(buff);
51− }
52−}
53−
54−char *lua_check_string (int numArg, char *funcname)
55−{
56− lua_Object o = lua_getparam(numArg);
57− lua_arg_check(lua_isstring(o), funcname);
58− return lua_getstring(o);
59−}
60−
61−char *lua_opt_string (int numArg, char *def, char *funcname)
62−{
63− return (lua_getparam(numArg) == LUA_NOOBJECT) ? def :
64− lua_check_string(numArg, funcname);
65−}
66−
67−double lua_check_number (int numArg, char *funcname)
68−{
69− lua_Object o = lua_getparam(numArg);
70− lua_arg_check(lua_isnumber(o), funcname);
71− return lua_getnumber(o);
72−}
73−
74−long lua_opt_number (int numArg, long def, char *funcname)
75−{
76− return (lua_getparam(numArg) == LUA_NOOBJECT) ? def :
77− (long)lua_check_number(numArg, funcname);
78−}
79−
8046 char *luaI_addchar (int c)
8147 {
8248 if (lbuffer.size >= lbuffer.max)
83− lua_strbuffer(lbuffer.max == 0 ? 100 : lbuffer.max*2);
49+ strbuffer(lbuffer.max == 0 ? 100 : lbuffer.max*2);
8450 lbuffer.b[lbuffer.size++] = c;
85− if (c == 0)
86− lbuffer.size = 0; /* prepare for next string */
8751 return lbuffer.b;
8852 }
8953
54+void luaI_emptybuff (void)
55+{
56+ lbuffer.size = 0; /* prepare for next string */
57+}
58+
59+
9060 static void addnchar (char *s, int n)
9161 {
9262 char *b = openspace(n);
@@ -99,35 +69,13 @@ static void addstr (char *s) · 6 unmodified lines
9969 addnchar(s, strlen(s));
10070 }
10171
102−/*
103−** Interface to strtok
104−*/
105−static void str_tok (void)
106−{
107− char *s1 = lua_check_string(1, "strtok");
108− char *del = lua_check_string(2, "strtok");
109− lua_Object t = lua_createtable();
110− int i = 1;
111− /* As strtok changes s1, and s1 is "constant", make a copy of it */
112− s1 = strcpy(lua_strbuffer(strlen(s1+1)), s1);
113− while ((s1 = strtok(s1, del)) != NULL) {
114− lua_pushobject(t);
115− lua_pushnumber(i++);
116− lua_pushstring(s1);
117− lua_storesubscript();
118− s1 = NULL; /* prepare for next strtok */
119− }
120− lua_pushobject(t);
121− lua_pushnumber(i-1); /* total number of tokens */
122−}
123−
12472
12573 /*
12674 ** Return the string length
12775 */
12876 static void str_len (void)
12977 {
130− lua_pushnumber(strlen(lua_check_string(1, "strlen")));
78+ lua_pushnumber(strlen(luaL_check_string(1)));
13179 }
13280
13381 /*
@@ -135,15 +83,18 @@ static void str_len (void) · 1 unmodified line
13583 */
13684 static void str_sub (void)
13785 {
138− char *s = lua_check_string(1, "strsub");
139− long start = (long)lua_check_number(2, "strsub");
140− long end = lua_opt_number(3, strlen(s), "strsub");
141− if (1 <= start && start <= end && end <= strlen(s)) {
142− luaI_addchar(0);
86+ char *s = luaL_check_string(1);
87+ long l = strlen(s);
88+ long start = (long)luaL_check_number(2);
89+ long end = (long)luaL_opt_number(3, -1);
90+ if (start < 0) start = l+start+1;
91+ if (end < 0) end = l+end+1;
92+ if (1 <= start && start <= end && end <= l) {
93+ luaI_emptybuff();
14394 addnchar(s+start-1, end-start+1);
14495 lua_pushstring(luaI_addchar(0));
14596 }
146− else lua_pushliteral("");
97+ else lua_pushstring("");
14798 }
14899
149100 /*
@@ -151,10 +102,10 @@ static void str_sub (void) · 1 unmodified line
151102 */
152103 static void str_lower (void)
153104 {
154− char *s = lua_check_string(1, "strlower");
155− luaI_addchar(0);
156− while (*s)
157− luaI_addchar(tolower(*s++));
105+ char *s;
106+ luaI_emptybuff();
107+ for (s = luaL_check_string(1); *s; s++)
108+ luaI_addchar(tolower((unsigned char)*s));
158109 lua_pushstring(luaI_addchar(0));
159110 }
160111
@@ -163,18 +114,18 @@ static void str_lower (void) · 2 unmodified lines
163114 */
164115 static void str_upper (void)
165116 {
166− char *s = lua_check_string(1, "strupper");
167− luaI_addchar(0);
168− while (*s)
169− luaI_addchar(toupper(*s++));
117+ char *s;
118+ luaI_emptybuff();
119+ for (s = luaL_check_string(1); *s; s++)
120+ luaI_addchar(toupper((unsigned char)*s));
170121 lua_pushstring(luaI_addchar(0));
171122 }
172123
173124 static void str_rep (void)
174125 {
175− char *s = lua_check_string(1, "strrep");
176− int n = (int)lua_check_number(2, "strrep");
177− luaI_addchar(0);
126+ char *s = luaL_check_string(1);
127+ int n = (int)luaL_check_number(2);
128+ luaI_emptybuff();
178129 while (n-- > 0)
179130 addstr(s);
180131 lua_pushstring(luaI_addchar(0));
@@ -185,9 +136,9 @@ static void str_rep (void) · 4 unmodified lines
185136 */
186137 static void str_ascii (void)
187138 {
188− char *s = lua_check_string(1, "ascii");
189− long pos = lua_opt_number(2, 1, "ascii") - 1;
190− lua_arg_check(0<=pos && pos<strlen(s), "ascii");
139+ char *s = luaL_check_string(1);
140+ long pos = (long)luaL_opt_number(2, 1) - 1;
141+ luaL_arg_check(0<=pos && pos<strlen(s), 2, "out of range");
191142 lua_pushnumber((unsigned char)s[pos]);
192143 }
193144
@@ -195,23 +146,23 @@ static void str_ascii (void) · 1 unmodified line
195146 /* pattern matching */
196147
197148 #define ESC '%'
198−#define SPECIALS "^$*?.([%"
149+#define SPECIALS "^$*?.([%-"
199150
200151 static char *bracket_end (char *p)
201152 {
202153 return (*p == 0) ? NULL : strchr((*p=='^') ? p+2 : p+1, ']');
203154 }
204155
205−char *item_end (char *p)
156+char *luaL_item_end (char *p)
206157 {
207158 switch (*p++) {
208159 case '\0': return p-1;
209160 case ESC:
210− if (*p == 0) lua_error("incorrect pattern");
161+ if (*p == 0) luaL_verror("incorrect pattern (ends with `%c')", ESC);
211162 return p+1;
212163 case '[': {
213164 char *end = bracket_end(p);
214− if (end == NULL) lua_error("incorrect pattern");
165+ if (end == NULL) lua_error("incorrect pattern (missing `]')");
215166 return end+1;
216167 }
217168 default:
@@ -222,21 +173,21 @@ char *item_end (char *p) · 4 unmodified lines
222173 static int matchclass (int c, int cl)
223174 {
224175 int res;
225− switch (tolower(cl)) {
226− case 'a' : res = isalpha(c); break;
227− case 'c' : res = iscntrl(c); break;
228− case 'd' : res = isdigit(c); break;
229− case 'l' : res = islower(c); break;
230− case 'p' : res = ispunct(c); break;
231− case 's' : res = isspace(c); break;
232− case 'u' : res = isupper(c); break;
233− case 'w' : res = isalnum(c); break;
176+ switch (tolower((unsigned char)cl)) {
177+ case 'a' : res = isalpha((unsigned char)c); break;
178+ case 'c' : res = iscntrl((unsigned char)c); break;
179+ case 'd' : res = isdigit((unsigned char)c); break;
180+ case 'l' : res = islower((unsigned char)c); break;
181+ case 'p' : res = ispunct((unsigned char)c); break;
182+ case 's' : res = isspace((unsigned char)c); break;
183+ case 'u' : res = isupper((unsigned char)c); break;
184+ case 'w' : res = isalnum((unsigned char)c); break;
234185 default: return (cl == c);
235186 }
236− return (islower(cl) ? res : !res);
187+ return (islower((unsigned char)cl) ? res : !res);
237188 }
238189
239−int singlematch (int c, char *p)
190+int luaL_singlematch (int c, char *p)
240191 {
241192 if (c == 0) return 0;
242193 switch (*p) {
@@ -333,7 +284,7 @@ static char *match (char *s, char *p, int level) · 90 unmodified lines
333284 return res;
334285 }
335286 case ESC:
336− if (isdigit(*(p+1))) { /* capture */
287+ if (isdigit((unsigned char)(*(p+1)))) { /* capture */
337288 int l = check_cap(*(p+1), level);
338289 if (strncmp(capture[l].init, s, capture[l].len) == 0) {
339290 /* return match(p+2, s+capture[l].len, level); */
@@ -358,8 +309,8 @@ static char *match (char *s, char *p, int level) · 18 unmodified lines
358309 }
359310 else goto dflt;
360311 default: dflt: { /* it is a pattern item */
361− int m = singlematch(*s, p);
362− char *ep = item_end(p); /* get what is next */
312+ int m = luaL_singlematch(*s, p);
313+ char *ep = luaL_item_end(p); /* get what is next */
363314 switch (*ep) {
364315 case '*': { /* repetition */
365316 char *res;
@@ -367,6 +318,17 @@ static char *match (char *s, char *p, int level) · 1 unmodified line
367318 return res;
368319 p=ep+1; goto init; /* else return match(s, ep+1, level); */
369320 }
321+ case '-': { /* repetition */
322+ char *res;
323+ if ((res = match(s, ep+1, level)) != 0)
324+ return res;
325+ else if (m) {
326+ s++;
327+ goto init; /* return match(s+1, p, level); */
328+ }
329+ else
330+ return NULL;
331+ }
370332 case '?': { /* optional */
371333 char *res;
372334 if (m && (res = match(s+1, ep+1, level)))
@@ -383,10 +345,10 @@ static char *match (char *s, char *p, int level) · 10 unmodified lines
383345
384346 static void str_find (void)
385347 {
386− char *s = lua_check_string(1, "strfind");
387− char *p = lua_check_string(2, "strfind");
388− long init = lua_opt_number(3, 1, "strfind") - 1;
389− lua_arg_check(0 <= init && init <= strlen(s), "strfind");
348+ char *s = luaL_check_string(1);
349+ char *p = luaL_check_string(2);
350+ long init = (long)luaL_opt_number(3, 1) - 1;
351+ luaL_arg_check(0 <= init && init <= strlen(s), 3, "out of range");
390352 if (lua_getparam(4) != LUA_NOOBJECT ||
391353 strpbrk(p, SPECIALS) == NULL) { /* no special caracters? */
392354 char *s2 = strstr(s+init, p);
@@ -410,12 +372,12 @@ static void str_find (void) · 17 unmodified lines
410372 }
411373 }
412374
413−static void add_s (lua_Object newp)
375+static void add_s (lua_Object newp, lua_Object table, int n)
414376 {
415377 if (lua_isstring(newp)) {
416378 char *news = lua_getstring(newp);
417379 while (*news) {
418− if (*news != ESC || !isdigit(*++news))
380+ if (*news != ESC || !isdigit((unsigned char)*++news))
419381 luaI_addchar(*news++);
420382 else {
421383 int l = check_cap(*news++, num_captures);
@@ -426,41 +388,50 @@ static void add_s (lua_Object newp) · 4 unmodified lines
426388 else if (lua_isfunction(newp)) {
427389 lua_Object res;
428390 struct lbuff oldbuff;
391+ int status;
429392 lua_beginblock();
393+ if (lua_istable(table)) {
394+ lua_pushobject(table);
395+ lua_pushnumber(n);
396+ }
430397 push_captures();
431398 /* function may use lbuffer, so save it and create a new one */
432399 oldbuff = lbuffer;
433400 lbuffer.b = NULL; lbuffer.max = lbuffer.size = 0;
434− lua_callfunction(newp);
401+ status = lua_callfunction(newp);
435402 /* restore old buffer */
436403 free(lbuffer.b);
437404 lbuffer = oldbuff;
405+ if (status != 0)
406+ lua_error(NULL);
438407 res = lua_getresult(1);
439408 addstr(lua_isstring(res) ? lua_getstring(res) : "");
440409 lua_endblock();
441410 }
442− else lua_arg_check(0, "gsub");
411+ else luaL_arg_check(0, 3, NULL);
443412 }
444413
445414 static void str_gsub (void)
446415 {
447− char *src = lua_check_string(1, "gsub");
448− char *p = lua_check_string(2, "gsub");
416+ char *src = luaL_check_string(1);
417+ char *p = luaL_check_string(2);
449418 lua_Object newp = lua_getparam(3);
450− int max_s = lua_opt_number(4, strlen(src), "gsub");
419+ lua_Object table = lua_getparam(4);
420+ int max_s = (int)luaL_opt_number(lua_istable(table)?5:4, strlen(src)+1);
451421 int anchor = (*p == '^') ? (p++, 1) : 0;
452422 int n = 0;
453− luaI_addchar(0);
454− while (*src && n < max_s) {
455− char *e;
456− if ((e=match(src, p, 0)) == NULL)
457− luaI_addchar(*src++);
458− else {
459− if (e == src) lua_error("empty pattern in substitution");
460− add_s(newp);
461− src = e;
423+ luaI_emptybuff();
424+ while (n < max_s) {
425+ char *e = match(src, p, 0);
426+ if (e) {
462427 n++;
428+ add_s(newp, table, n);
463429 }
430+ if (e && e>src) /* non empty match? */
431+ src = e; /* skip it */
432+ else if (*src)
433+ luaI_addchar(*src++);
434+ else break;
464435 if (anchor) break;
465436 }
466437 addstr(src);
@@ -470,12 +441,12 @@ static void str_gsub (void) · 3 unmodified lines
470441
471442 static void str_set (void)
472443 {
473− char *item = lua_check_string(1, "strset");
444+ char *item = luaL_check_string(1);
474445 int i;
475− lua_arg_check(*item_end(item) == 0, "strset");
476− luaI_addchar(0);
446+ luaL_arg_check(*luaL_item_end(item) == 0, 1, "wrong format");
447+ luaI_emptybuff();
477448 for (i=1; i<256; i++) /* 0 cannot be part of a set */
478− if (singlematch(i, item))
449+ if (luaL_singlematch(i, item))
479450 luaI_addchar(i);
480451 lua_pushstring(luaI_addchar(0));
481452 }
@@ -497,8 +468,8 @@ void luaI_addquoted (char *s) · 15 unmodified lines
497468 static void str_format (void)
498469 {
499470 int arg = 1;
500− char *strfrmt = lua_check_string(arg++, "format");
501− luaI_addchar(0); /* initialize */
471+ char *strfrmt = luaL_check_string(arg++);
472+ luaI_emptybuff(); /* initialize */
502473 while (*strfrmt) {
503474 if (*strfrmt != '%')
504475 luaI_addchar(*strfrmt++);
@@ -510,26 +481,26 @@ static void str_format (void) · 5 unmodified lines
510481 char *initf = strfrmt-1; /* -1 to include % */
511482 strfrmt = match(strfrmt, "[-+ #]*(%d*)%.?(%d*)", 0);
512483 if (capture[0].len > 3 || capture[1].len > 3) /* < 1000? */
513− lua_error("invalid format (width/precision too long)");
484+ lua_error("invalid format (width or precision too long)");
514485 strncpy(form, initf, strfrmt-initf+1); /* +1 to include convertion */
515486 form[strfrmt-initf+1] = 0;
516487 buff = openspace(1000); /* to store the formated value */
517488 switch (*strfrmt++) {
518489 case 'q':
519− luaI_addquoted(lua_check_string(arg++, "format"));
490+ luaI_addquoted(luaL_check_string(arg++));
520491 continue;
521492 case 's': {
522− char *s = lua_check_string(arg++, "format");
493+ char *s = luaL_check_string(arg++);
523494 buff = openspace(strlen(s));
524495 sprintf(buff, form, s);
525496 break;
526497 }
527498 case 'c': case 'd': case 'i': case 'o':
528499 case 'u': case 'x': case 'X':
529− sprintf(buff, form, (int)lua_check_number(arg++, "format"));
500+ sprintf(buff, form, (int)luaL_check_number(arg++));
530501 break;
531502 case 'e': case 'E': case 'f': case 'g':
532− sprintf(buff, form, lua_check_number(arg++, "format"));
503+ sprintf(buff, form, luaL_check_number(arg++));
533504 break;
534505 default: /* also treat cases 'pnLlh' */
535506 lua_error("invalid format option in function `format'");
@@ -541,16 +512,7 @@ static void str_format (void) · 5 unmodified lines
541512 }
542513
543514
544−void luaI_openlib (struct lua_reg *l, int n)
545−{
546− int i;
547− for (i=0; i<n; i++)
548− lua_register(l[i].name, l[i].func);
549−}
550−
551−
552−static struct lua_reg strlib[] = {
553−{"strtok", str_tok},
515+static struct luaL_reg strlib[] = {
554516 {"strlen", str_len},
555517 {"strsub", str_sub},
556518 {"strset", str_set},
@@ -569,5 +531,5 @@ static struct lua_reg strlib[] = { · 12 unmodified lines
569531 */
570532 void strlib_open (void)
571533 {
572− luaI_openlib(strlib, (sizeof(strlib)/sizeof(strlib[0])));
534+ luaL_openlib(strlib, (sizeof(strlib)/sizeof(strlib[0])));
573535 }
clients/lua/lua.c+73−3
@@ -3,12 +3,13 @@ · 2 unmodified lines
33 ** Linguagem para Usuarios de Aplicacao
44 */
55
6−char *rcs_lua="$Id: lua.c,v 1.14 1996/09/24 17:30:28 roberto Exp $";
6+char *rcs_lua="$Id: lua.c,v 1.18 1997/06/19 18:55:40 roberto Exp $";
77
88 #include <stdio.h>
99 #include <string.h>
1010
1111 #include "lua.h"
12+#include "auxlib.h"
1213 #include "lualib.h"
1314
1415
@@ -19,6 +20,74 @@ char *rcs_lua="$Id: lua.c,v 1.14 1996/09/24 17:30:28 roberto Exp $"; · 4 unmodified lines
1920 #endif
2021
2122
23+#define DEBUG 0
24+
25+static void testC (void)
26+{
27+#if DEBUG
28+#define getnum(s) ((*s++) - '0')
29+#define getname(s) (nome[0] = *s++, nome)
30+
31+ static int locks[10];
32+ lua_Object reg[10];
33+ char nome[2];
34+ char *s = luaL_check_string(1);
35+ nome[1] = 0;
36+ while (1) {
37+ switch (*s++) {
38+ case '0': case '1': case '2': case '3': case '4':
39+ case '5': case '6': case '7': case '8': case '9':
40+ lua_pushnumber(*(s-1) - '0');
41+ break;
42+
43+ case 'c': reg[getnum(s)] = lua_createtable(); break;
44+
45+ case 'P': reg[getnum(s)] = lua_pop(); break;
46+
47+ case 'g': { int n = getnum(s); reg[n] = lua_getglobal(getname(s)); break; }
48+
49+ case 'G': { int n = getnum(s);
50+ reg[n] = lua_rawgetglobal(getname(s));
51+ break;
52+ }
53+
54+ case 'l': locks[getnum(s)] = lua_ref(1); break;
55+ case 'L': locks[getnum(s)] = lua_ref(0); break;
56+
57+ case 'r': { int n = getnum(s); reg[n] = lua_getref(locks[getnum(s)]); break; }
58+
59+ case 'u': lua_unref(locks[getnum(s)]); break;
60+
61+ case 'p': { int n = getnum(s); reg[n] = lua_getparam(getnum(s)); break; }
62+
63+ case '=': lua_setglobal(getname(s)); break;
64+
65+ case 's': lua_pushstring(getname(s)); break;
66+
67+ case 'o': lua_pushobject(reg[getnum(s)]); break;
68+
69+ case 'f': lua_call(getname(s)); break;
70+
71+ case 'i': reg[getnum(s)] = lua_gettable(); break;
72+
73+ case 'I': reg[getnum(s)] = lua_rawgettable(); break;
74+
75+ case 't': lua_settable(); break;
76+
77+ case 'T': lua_rawsettable(); break;
78+
79+ default: luaL_verror("unknown command in `testC': %c", *(s-1));
80+
81+ }
82+ if (*s == 0) return;
83+ if (*s++ != ' ') lua_error("missing ` ' between commands in `testC'");
84+ }
85+#else
86+ lua_error("`testC' not active");
87+#endif
88+}
89+
90+
2291 static void manual_input (void)
2392 {
2493 if (isatty(0)) {
@@ -41,6 +110,7 @@ int main (int argc, char *argv[]) · 16 unmodified lines
41110 iolib_open ();
42111 strlib_open ();
43112 mathlib_open ();
113+ lua_register("testC", testC);
44114 if (argc < 2)
45115 manual_input();
46116 else for (i=1; i<argc; i++) {
@@ -59,8 +129,8 @@ int main (int argc, char *argv[]) · 12 unmodified lines
59129 result = lua_dofile (argv[i]);
60130 if (result) {
61131 if (result == 2) {
62− fprintf(stderr, "lua: cannot execute file `%s' - ", argv[i]);
63− perror(NULL);
132+ fprintf(stderr, "lua: cannot execute file ");
133+ perror(argv[i]);
64134 }
65135 return 1;
66136 }
config+5−5
@@ -2,31 +2,31 @@ · 1 unmodified line
22
33 # you need an ANSI C compiler
44 CC= gcc
5−WARN= -ansi -Wall # -Wmissing-prototypes -Wshadow
5+WARN= -ansi -Wall
66
77 # for SGI's with cc
88 #CC= cc
99 #WARN= -ansi -fullwarn
1010
1111 # in SunOs 4.1.x, uncomment the following line to avoid prototypes warnings
12−# for standard functions
12+# for standard functions:
1313 #EXTRA_INCS= -I/usr/5include
1414
1515 # if you don't have popen() in your C library, comment the following line:
1616 POPEN= -DPOPEN
1717
1818 # if your C library is not POSIX compliant, comment the following line:
19−POSIX= -DPOSIX
19+POSIX= -D_POSIX_SOURCE
2020
2121 # if you don't have strerror() in your C library, uncomment the following line:
2222 #NOSTRERROR= -DNOSTRERROR
2323
24−# if your system doesn't have ranlib, change "ranlib" to "true"
24+# if your system doesn't have (or need) ranlib, change "ranlib" to "true":
2525 RANLIB=ranlib
2626
2727 ### NO NEED TO CHANGE ANYTHING BELOW THIS LINE ================================
2828
29−VERSION= 2.5
29+VERSION= 3.0
3030
3131 INC= $(LUA)/include
3232 LIB= $(LUA)/lib
doc/Makefile+0−23
@@ -1,23 +0,0 @@
1−# makefile for lua distribution
2−
3−all:
4− rm -f manual.id
5− touch manual.id
6− latex manual.tex
7− latex manual.tex
8− makeindex manual
9− sort -df manual.idx | sed -e 's/_/\\_/g' >manual.id
10− latex manual.tex
11− dvips -o manual.ps manual.dvi
12− gzip manual.ps
13− mv manual.ps.gz refman.ps.gz
14− rm -f manual.*
15−
16−clean:
17− rm -f manual.tex
18−
19−co:
20− co -f -M manual.tex luac.man
21−
22−klean: clean
23− rm -f manual.tex manual.ps manual.dvi
doc/idx.html+241−0
@@ -0,0 +1,241 @@
1+<HTML>
2+<HEAD>
3+<TITLE>Lua 3.0 Reference Manual - Word Index</TITLE>
4+</HEAD>
5+
6+<BODY>
7+
8+<H1>Index</H1>
9+
10+<A HREF="manual.html#..">..</A><BR>
11+<A HREF="manual.html#abs">abs</A><BR>
12+<A HREF="manual.html#acos">acos</A><BR>
13+<A HREF="manual.html#add event">add event</A><BR>
14+<A HREF="manual.html#Adjustment">Adjustment</A><BR>
15+<A HREF="manual.html#and">and</A><BR>
16+<A HREF="manual.html#appendto">appendto</A><BR>
17+<A HREF="manual.html#arg">arg</A><BR>
18+<A HREF="manual.html#arguments">arguments</A><BR>
19+<A HREF="manual.html#arithmetic operators">arithmetic operators</A><BR>
20+<A HREF="manual.html#arrays">arrays</A><BR>
21+<A HREF="manual.html#ascii">ascii</A><BR>
22+<A HREF="manual.html#asin">asin</A><BR>
23+<A HREF="manual.html#assert">assert</A><BR>
24+<A HREF="manual.html#Assignment">Assignment</A><BR>
25+<A HREF="manual.html#associative arrays">associative arrays</A><BR>
26+<A HREF="manual.html#atan2">atan2</A><BR>
27+<A HREF="manual.html#atan">atan</A><BR>
28+<A HREF="manual.html#basic types">basic types</A><BR>
29+<A HREF="manual.html#block">block</A><BR>
30+<A HREF="manual.html#C pointers">C pointers</A><BR>
31+<A HREF="manual.html#C2lua">C2lua</A><BR>
32+<A HREF="manual.html#call">call</A><BR>
33+<A HREF="manual.html#captures">captures</A><BR>
34+<A HREF="manual.html#ceil">ceil</A><BR>
35+<A HREF="manual.html#character class">character class</A><BR>
36+<A HREF="manual.html#chunk">chunk</A><BR>
37+<A HREF="manual.html#closing a file">closing a file</A><BR>
38+<A HREF="manual.html#Coercion">Coercion</A><BR>
39+<A HREF="manual.html#collectgarbage">collectgarbage</A><BR>
40+<A HREF="manual.html#Comments">Comments</A><BR>
41+<A HREF="manual.html#concatenation event">concatenation event</A><BR>
42+<A HREF="manual.html#concatenation">concatenation</A><BR>
43+<A HREF="manual.html#condition expression">condition expression</A><BR>
44+<A HREF="manual.html#constructors">constructors</A><BR>
45+<A HREF="manual.html#cos">cos</A><BR>
46+<A HREF="manual.html#date">date</A><BR>
47+<A HREF="manual.html#debug pragma">debug pragma</A><BR>
48+<A HREF="manual.html#div event">div event</A><BR>
49+<A HREF="manual.html#dofile">dofile</A><BR>
50+<A HREF="manual.html#dostring">dostring</A><BR>
51+<A HREF="manual.html#error method">error method</A><BR>
52+<A HREF="manual.html#error">error</A><BR>
53+<A HREF="manual.html#event">event</A><BR>
54+<A HREF="manual.html#execute">execute</A><BR>
55+<A HREF="manual.html#exit">exit</A><BR>
56+<A HREF="manual.html#exponentiation">exponentiation</A><BR>
57+<A HREF="manual.html#Expressions">Expressions</A><BR>
58+<A HREF="manual.html#file handles">file handles</A><BR>
59+<A HREF="manual.html#floor">floor</A><BR>
60+<A HREF="manual.html#format">format</A><BR>
61+<A HREF="manual.html#function call">function call</A><BR>
62+<A HREF="manual.html#Function Definitions">Function Definitions</A><BR>
63+<A HREF="manual.html#function event">function event</A><BR>
64+<A HREF="manual.html#function">function</A><BR>
65+<A HREF="manual.html#gc event">gc event</A><BR>
66+<A HREF="manual.html#ge event">ge event</A><BR>
67+<A HREF="manual.html#getenv">getenv</A><BR>
68+<A HREF="manual.html#getglobal event">getglobal event</A><BR>
69+<A HREF="manual.html#getglobal">getglobal</A><BR>
70+<A HREF="manual.html#gettable event">gettable event</A><BR>
71+<A HREF="manual.html#gettagmethod">gettagmethod</A><BR>
72+<A HREF="manual.html#gettagmethod">gettagmethod</A><BR>
73+<A HREF="manual.html#global environment">global environment</A><BR>
74+<A HREF="manual.html#Global variables">Global variables</A><BR>
75+<A HREF="manual.html#gsub">gsub</A><BR>
76+<A HREF="manual.html#gt event">gt event</A><BR>
77+<A HREF="manual.html#Identifiers">Identifiers</A><BR>
78+<A HREF="manual.html#if-then-else">if-then-else</A><BR>
79+<A HREF="manual.html#index event">index event</A><BR>
80+<A HREF="manual.html#_INPUT">_INPUT</A><BR>
81+<A HREF="manual.html#le event">le event</A><BR>
82+<A HREF="manual.html#Literal strings">Literal strings</A><BR>
83+<A HREF="manual.html#Local variables">Local variables</A><BR>
84+<A HREF="manual.html#log10">log10</A><BR>
85+<A HREF="manual.html#log">log</A><BR>
86+<A HREF="manual.html#logical operators">logical operators</A><BR>
87+<A HREF="manual.html#lt event">lt event</A><BR>
88+<A HREF="manual.html#Lua Stand-alone">Lua Stand-alone</A><BR>
89+<A HREF="manual.html#lua2C">lua2C</A><BR>
90+<A HREF="manual.html#LUA_ANYTAG">LUA_ANYTAG</A><BR>
91+<A HREF="manual.html#luac">luac</A><BR>
92+<A HREF="manual.html#luac">luac</A><BR>
93+<A HREF="manual.html#lua_callfunction">lua_callfunction</A><BR>
94+<A HREF="manual.html#lua_CFunction">lua_CFunction</A><BR>
95+<A HREF="manual.html#lua_collectgarbage">lua_collectgarbage</A><BR>
96+<A HREF="manual.html#lua_createtable">lua_createtable</A><BR>
97+<A HREF="manual.html#lua_dofile">lua_dofile</A><BR>
98+<A HREF="manual.html#lua_dostring">lua_dostring</A><BR>
99+<A HREF="manual.html#lua_error">lua_error</A><BR>
100+<A HREF="manual.html#lua_getcfunction">lua_getcfunction</A><BR>
101+<A HREF="manual.html#lua_getglobal">lua_getglobal</A><BR>
102+<A HREF="manual.html#lua_getnumber">lua_getnumber</A><BR>
103+<A HREF="manual.html#lua_getparam">lua_getparam</A><BR>
104+<A HREF="manual.html#lua_getref">lua_getref</A><BR>
105+<A HREF="manual.html#lua_getresult">lua_getresult</A><BR>
106+<A HREF="manual.html#lua_getstring">lua_getstring</A><BR>
107+<A HREF="manual.html#lua_gettable">lua_gettable</A><BR>
108+<A HREF="manual.html#lua_gettagmethod">lua_gettagmethod</A><BR>
109+<A HREF="manual.html#lua_getuserdata">lua_getuserdata</A><BR>
110+<A HREF="manual.html#lua_iscfunction">lua_iscfunction</A><BR>
111+<A HREF="manual.html#lua_isfunction">lua_isfunction</A><BR>
112+<A HREF="manual.html#lua_isnil">lua_isnil</A><BR>
113+<A HREF="manual.html#lua_isnumber">lua_isnumber</A><BR>
114+<A HREF="manual.html#lua_isstring">lua_isstring</A><BR>
115+<A HREF="manual.html#lua_istable">lua_istable</A><BR>
116+<A HREF="manual.html#lua_isuserdata">lua_isuserdata</A><BR>
117+<A HREF="manual.html#lua_lua2C">lua_lua2C</A><BR>
118+<A HREF="manual.html#lua_newtag">lua_newtag</A><BR>
119+<A HREF="manual.html#LUA_NOOBJECT">LUA_NOOBJECT</A><BR>
120+<A HREF="manual.html#lua_Object">lua_Object</A><BR>
121+<A HREF="manual.html#lua_pop">lua_pop</A><BR>
122+<A HREF="manual.html#lua_pushcfunction">lua_pushcfunction</A><BR>
123+<A HREF="manual.html#lua_pushnil">lua_pushnil</A><BR>
124+<A HREF="manual.html#lua_pushnumber">lua_pushnumber</A><BR>
125+<A HREF="manual.html#lua_pushobject">lua_pushobject</A><BR>
126+<A HREF="manual.html#lua_pushstring">lua_pushstring</A><BR>
127+<A HREF="manual.html#lua_pushuserdata">lua_pushuserdata</A><BR>
128+<A HREF="manual.html#lua_pushusertag">lua_pushusertag</A><BR>
129+<A HREF="manual.html#lua_rawgetglobal">lua_rawgetglobal</A><BR>
130+<A HREF="manual.html#lua_rawgetglobal">lua_rawgetglobal</A><BR>
131+<A HREF="manual.html#lua_rawgetglobal">lua_rawgetglobal</A><BR>
132+<A HREF="manual.html#lua_rawsettable">lua_rawsettable</A><BR>
133+<A HREF="manual.html#lua_ref">lua_ref</A><BR>
134+<A HREF="manual.html#lua_register">lua_register</A><BR>
135+<A HREF="manual.html#lua_seterrormethod">lua_seterrormethod</A><BR>
136+<A HREF="manual.html#lua_setglobal">lua_setglobal</A><BR>
137+<A HREF="manual.html#lua_settable">lua_settable</A><BR>
138+<A HREF="manual.html#lua_settag">lua_settag</A><BR>
139+<A HREF="manual.html#lua_settagmethod">lua_settagmethod</A><BR>
140+<A HREF="manual.html#lua_tag">lua_tag</A><BR>
141+<A HREF="manual.html#lua_unref">lua_unref</A><BR>
142+<A HREF="manual.html#max">max</A><BR>
143+<A HREF="manual.html#methods">methods</A><BR>
144+<A HREF="manual.html#min">min</A><BR>
145+<A HREF="manual.html#mod">mod</A><BR>
146+<A HREF="manual.html#mul event">mul event</A><BR>
147+<A HREF="manual.html#multiple assignment">multiple assignment</A><BR>
148+<A HREF="manual.html#newtag">newtag</A><BR>
149+<A HREF="manual.html#next">next</A><BR>
150+<A HREF="manual.html#nextvar">nextvar</A><BR>
151+<A HREF="manual.html#nil">nil</A><BR>
152+<A HREF="manual.html#not">not</A><BR>
153+<A HREF="manual.html#number">number</A><BR>
154+<A HREF="manual.html#Numerical constants">Numerical constants</A><BR>
155+<A HREF="manual.html#Operator precedence">Operator precedence</A><BR>
156+<A HREF="manual.html#or">or</A><BR>
157+<A HREF="manual.html#_OUTPUT">_OUTPUT</A><BR>
158+<A HREF="manual.html#packed results">packed results</A><BR>
159+<A HREF="manual.html#pattern item">pattern item</A><BR>
160+<A HREF="manual.html#pattern">pattern</A><BR>
161+<A HREF="manual.html#piped input">piped input</A><BR>
162+<A HREF="manual.html#piped output">piped output</A><BR>
163+<A HREF="manual.html#popen">popen</A><BR>
164+<A HREF="manual.html#popen">popen</A><BR>
165+<A HREF="manual.html#pow event">pow event</A><BR>
166+<A HREF="manual.html#pre-compilation">pre-compilation</A><BR>
167+<A HREF="manual.html#predefined functions">predefined functions</A><BR>
168+<A HREF="manual.html#Pre-processor">Pre-processor</A><BR>
169+<A HREF="manual.html#print">print</A><BR>
170+<A HREF="manual.html#random">random</A><BR>
171+<A HREF="manual.html#randomseed">randomseed</A><BR>
172+<A HREF="manual.html#rawgetglobal">rawgetglobal</A><BR>
173+<A HREF="manual.html#rawgettable">rawgettable</A><BR>
174+<A HREF="manual.html#rawsetglobal">rawsetglobal</A><BR>
175+<A HREF="manual.html#rawsettable">rawsettable</A><BR>
176+<A HREF="manual.html#read pattern">read pattern</A><BR>
177+<A HREF="manual.html#read">read</A><BR>
178+<A HREF="manual.html#readfrom">readfrom</A><BR>
179+<A HREF="manual.html#records">records</A><BR>
180+<A HREF="manual.html#reference">reference</A><BR>
181+<A HREF="manual.html#reflexivity">reflexivity</A><BR>
182+<A HREF="manual.html#relational operators">relational operators</A><BR>
183+<A HREF="manual.html#remove">remove</A><BR>
184+<A HREF="manual.html#rename">rename</A><BR>
185+<A HREF="manual.html#repeat-until">repeat-until</A><BR>
186+<A HREF="manual.html#reserved words">reserved words</A><BR>
187+<A HREF="manual.html#return statement">return statement</A><BR>
188+<A HREF="manual.html#return">return</A><BR>
189+<A HREF="manual.html#self">self</A><BR>
190+<A HREF="manual.html#setglobal event">setglobal event</A><BR>
191+<A HREF="manual.html#setglobal">setglobal</A><BR>
192+<A HREF="manual.html#settable event">settable event</A><BR>
193+<A HREF="manual.html#settag">settag</A><BR>
194+<A HREF="manual.html#settagmethod">settagmethod</A><BR>
195+<A HREF="manual.html#settagmethod">settagmethod</A><BR>
196+<A HREF="manual.html#short-cut evaluation">short-cut evaluation</A><BR>
197+<A HREF="manual.html#Simple Expressions">Simple Expressions</A><BR>
198+<A HREF="manual.html#sin">sin</A><BR>
199+<A HREF="manual.html#skips">skips</A><BR>
200+<A HREF="manual.html#sqrt">sqrt</A><BR>
201+<A HREF="manual.html#statements">statements</A><BR>
202+<A HREF="manual.html#_STDERR">_STDERR</A><BR>
203+<A HREF="manual.html#_STDIN">_STDIN</A><BR>
204+<A HREF="manual.html#_STDOUT">_STDOUT</A><BR>
205+<A HREF="manual.html#strfind">strfind</A><BR>
206+<A HREF="manual.html#string">string</A><BR>
207+<A HREF="manual.html#strlen">strlen</A><BR>
208+<A HREF="manual.html#strlower">strlower</A><BR>
209+<A HREF="manual.html#strrep">strrep</A><BR>
210+<A HREF="manual.html#strsub">strsub</A><BR>
211+<A HREF="manual.html#strupper">strupper</A><BR>
212+<A HREF="manual.html#sub event">sub event</A><BR>
213+<A HREF="manual.html#table">table</A><BR>
214+<A HREF="manual.html#Tag Methods">Tag Methods</A><BR>
215+<A HREF="manual.html#tag">tag</A><BR>
216+<A HREF="manual.html#tag">tag</A><BR>
217+<A HREF="manual.html#tan">tan</A><BR>
218+<A HREF="manual.html#tmpname">tmpname</A><BR>
219+<A HREF="manual.html#tokens">tokens</A><BR>
220+<A HREF="manual.html#tonumber">tonumber</A><BR>
221+<A HREF="manual.html#tostring">tostring</A><BR>
222+<A HREF="manual.html#type">type</A><BR>
223+<A HREF="manual.html#Types and Tags">Types and Tags</A><BR>
224+<A HREF="manual.html#unm event">unm event</A><BR>
225+<A HREF="manual.html#userdata">userdata</A><BR>
226+<A HREF="manual.html#vararg">vararg</A><BR>
227+<A HREF="manual.html#version 1.1">version 1.1</A><BR>
228+<A HREF="manual.html#version 2.1">version 2.1</A><BR>
229+<A HREF="manual.html#version 2.2">version 2.2</A><BR>
230+<A HREF="manual.html#version 2.4">version 2.4</A><BR>
231+<A HREF="manual.html#version 2.5">version 2.5</A><BR>
232+<A HREF="manual.html#while-do">while-do</A><BR>
233+<A HREF="manual.html#write">write</A><BR>
234+<A HREF="manual.html#writeto">writeto</A><BR>
235+
236+<HR>
237+Last update:
238+Tue Jul 1 07:55:45 EST 1997
239+by <A HREF="http://www.tecgraf.puc-rio.br/~lhf/">lhf</A>.
240+</BODY>
241+</HTML>
doc/index.html+85−0
@@ -0,0 +1,85 @@
1+<HTML>
2+<HEAD>
3+<TITLE>Lua 3.0 Reference Manual - Index</TITLE>
4+</HEAD>
5+
6+<BODY>
7+
8+<H1>Reference Manual of the Programming Language Lua 3.0</H1>
9+<P>
10+<A HREF="http://www.inf.puc-rio.br/~roberto/">Roberto Ierusalimschy</A>,
11+<A HREF="http://www2.lncc.br/~lhf/">Luiz Henrique de Figueiredo</A>,
12+<A HREF="http://www.graphics.cornell.edu/~celes/">Waldemar Celes</A>
13+<BR>
14+<A HREF="mailto:lua@tecgraf.puc-rio.br">lua@tecgraf.puc-rio.br</A><BR>
15+<A HREF="http://www.tecgraf.puc-rio.br">TeCGraf</A>,
16+<A HREF="http://www.inf.puc-rio.br">Computer Science Department</A>,
17+<A HREF="http://www.puc-rio.br">PUC-Rio</A>
18+<P>
19+
20+<HR>
21+<B>Abstract.</B>
22+Lua is an extension programming language designed to be used
23+as a configuration language for any program that needs one.
24+This document describes version 3.0 of the Lua programming language and
25+the API that allows interaction between Lua programs and their host C programs.
26+<HR>
27+
28+<B>Sum�rio.</B>
29+Lua � uma linguagem de extens�o projetada para ser usada como
30+linguagem de configura��o em qualquer programa que precise de uma.
31+Este documento descreve a vers�o 3.0 da linguagem de
32+programa��o Lua e a Interface de Programa��o (API) que permite
33+a intera��o entre programas Lua e programas C hospedeiros.
34+<HR>
35+<A NAME="index"></A>
36+<UL>
37+<LI><A HREF="manual.html#1.">1 - Introduction</A>
38+<LI><A HREF="manual.html#2.">2 - Environment and Chunks</A>
39+<LI><A HREF="manual.html#3.">3 - Types and Tags</A>
40+<LI><A HREF="manual.html#4.">4 - The Language</A>
41+ <UL>
42+ <LI><A HREF="manual.html#4.1">4.1 - Lexical Conventions</A>
43+ <LI><A HREF="manual.html#4.2">4.2 - The Pre-processor</A>
44+ <LI><A HREF="manual.html#4.3">4.3 - Coercion</A>
45+ <LI><A HREF="manual.html#4.4">4.4 - Adjustment</A>
46+ <LI><A HREF="manual.html#4.5">4.5 - Statements</A>
47+ <LI><A HREF="manual.html#4.6">4.6 - Expressions</A>
48+ <LI><A HREF="manual.html#4.7">4.7 - Function Definitions</A>
49+ <LI><A HREF="manual.html#4.8">4.8 - Tag Methods</A>
50+ <LI><A HREF="manual.html#4.9">4.9 - Error Handling</A>
51+ </UL>
52+<LI><A HREF="manual.html#5.">5 - The Application Program Interface</A>
53+ <UL>
54+ <LI><A HREF="manual.html#5.1">5.1 - Exchanging Values between C and Lua</A>
55+ <LI><A HREF="manual.html#5.2">5.2 - Executing Lua Code</A>
56+ <LI><A HREF="manual.html#5.3">5.3 - Manipulating Lua Objects</A>
57+ <LI><A HREF="manual.html#5.4">5.4 - Calling Lua Functions</A>
58+ <LI><A HREF="manual.html#5.5">5.5 - C Functions</A>
59+ <LI><A HREF="manual.html#5.6">5.6 - References to Lua Objects</A>
60+ </UL>
61+<LI><A HREF="manual.html#6.">6 - Predefined Functions and Libraries</A>
62+ <UL>
63+ <LI><A HREF="manual.html#6.1">6.1 - Predefined Functions</A>
64+ <LI><A HREF="manual.html#6.2">6.2 - String Manipulation</A>
65+ <LI><A HREF="manual.html#6.3">6.3 - Mathematical Functions</A>
66+ <LI><A HREF="manual.html#6.4">6.4 - I/O Facilities</A>
67+ </UL>
68+<LI><A HREF="manual.html#7.">7 - The Debugger Interface</A>
69+ <UL>
70+ <LI><A HREF="manual.html#7.1">7.1 - Stack and Function Information</A>
71+ <LI><A HREF="manual.html#7.2">7.2 - Manipulating Local Variables</A>
72+ <LI><A HREF="manual.html#7.3">7.3 - Hooks</A>
73+ </UL>
74+<LI><A HREF="manual.html#8.">8 - Lua Stand-alone</A>
75+<LI><A HREF="manual.html#Acknowledgments">Acknowledgments</A>
76+<LI><A HREF="manual.html#Incompatibilities">Incompatibilities with Previous Versions</A>
77+<LI><A HREF="idx.html">Index</A>
78+</UL>
79+
80+<HR>
81+Last update:
82+Tue Jul 1 07:55:45 EST 1997
83+by <A HREF="http://www.tecgraf.puc-rio.br/~lhf/">lhf</A>.
84+</BODY>
85+</HTML>
doc/luac.html+88−0
@@ -0,0 +1,88 @@
1+<!-- manual page source format generated by RosettaMan, -->
2+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
3+<HTML>
4+<HEADER>
5+<TITLE>luac manual page</TITLE>
6+</HEADER>
7+<BODY>
8+<A HREF="#toc">Table of Contents</A><P>
9+
10+<A NAME="sect0" HREF="#toc0"><H2>NAME</H2></A>
11+luac - Lua compiler<P>
12+
13+<A NAME="sect1" HREF="#toc1"><H2>SYNOPSIS</H2></A>
14+luac [ -c | -u ] [ -d ] [ -l ] [ -p ] [ -q ] [ -v ] [ -o <I>outputfile</I> ] <I>sourcefile</I> ...<P>
15+
16+<A NAME="sect2" HREF="#toc2"><H2>DESCRIPTION</H2></A>
17+luac is the Lua compiler. It translates programs written in the Lua programming language into binary files that can be loaded and executed with lua_dofile in C or dofile in Lua.<P>
18+luac produces a single output file containing the bytecode for all named source files. By default, the output file is named luac.out, but you can change this with the -o option.<P>
19+You can use &quot;-&quot; to indicate stdin as a source file.<P>
20+luac can also load and list binary files.<P>
21+
22+<A NAME="sect3" HREF="#toc3"><H2>OPTIONS</H2></A>
23+<dl>
24+<dt>-c <dd> compile (this is the default).<P>
25+</dd>
26+</dl>
27+<dl>
28+<dt>-u <dd> undump.<P>
29+</dd>
30+</dl>
31+<dl>
32+<dt>-d <dd> turns debugging on.<P>
33+</dd>
34+</dl>
35+<dl>
36+<dt>-l <dd> produces a listing of the compiled bytecode for Lua's virtual machine. This is the default when undumping.<P>
37+</dd>
38+</dl>
39+<dl>
40+<dt>-p <dd> parses sources files but does not generate any output file.<P>
41+</dd>
42+</dl>
43+<dl>
44+<dt>-q <dd> quiet; procudes no listing. This is the default when compiling.<P>
45+</dd>
46+</dl>
47+<dl>
48+<dt>-v <dd> prints version information.<P>
49+</dd>
50+</dl>
51+<dl>
52+<dt>-o <I>outputfile</I><dd> Name the output file <I>output</I>, instead of the default luac.out. The output file cannot be a source file.<P>
53+</dd>
54+</dl>
55+
56+<A NAME="sect4" HREF="#toc4"><H2>FILES</H2></A>
57+<dl>
58+<dt>luac.out <dd> default output file<P>
59+</dd>
60+</dl>
61+
62+<A NAME="sect5" HREF="#toc5"><H2>SEE ALSO</H2></A>
63+<A HREF="http://localhost/cgi-bin/man2html?lua?1">lua(1)</A><P>
64+<I>Reference</I> <I>Manual</I> <I>of</I> <I>the</I> <I>Programming</I> <I>Language</I> <I>Lua</I><P>
65+
66+<A NAME="sect6" HREF="#toc6"><H2>DIAGNOSTICS</H2></A>
67+Error messages should be self explanatory.<P>
68+
69+<A NAME="sect7" HREF="#toc7"><H2>BUGS</H2></A>
70+Inherits any bugs from Lua, but Lua has no bugs...<P>
71+
72+<A NAME="sect8" HREF="#toc8"><H2>AUTHORS</H2></A>
73+W. Celes, R. Ierusalimschy &amp; L. H. de Figueiredo (lua@tecgraf.puc-rio.br)<P>
74+
75+<HR><P>
76+<A NAME="toc"><B>Table of Contents</B></A><P>
77+<UL>
78+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
79+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
80+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
81+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
82+<LI><A NAME="toc4" HREF="#sect4">FILES</A></LI>
83+<LI><A NAME="toc5" HREF="#sect5">SEE ALSO</A></LI>
84+<LI><A NAME="toc6" HREF="#sect6">DIAGNOSTICS</A></LI>
85+<LI><A NAME="toc7" HREF="#sect7">BUGS</A></LI>
86+<LI><A NAME="toc8" HREF="#sect8">AUTHORS</A></LI>
87+</UL>
88+</BODY></HTML>
doc/luac.man+0−75
@@ -1,75 +0,0 @@
1−.\" $Id: luac.man,v 1.3 1996/03/28 20:24:55 lhf Exp $
2−.TH LUAC 1 "12 March 1996"
3−.SH NAME
4−luac \- Lua compiler
5−.SH SYNOPSIS
6−.B luac
7−[
8−.B \-dlpv
9−]
10−[
11−.B \-o
12−.I outputfile
13−]
14−.I sourcefile
15−\&.\|.\|.
16−.SH DESCRIPTION
17−.B luac
18−is the Lua compiler.
19−It translates programs written in the Lua programming language
20−into binary files that can be loaded and executed with
21−.B lua_dofile
22−in C or
23−.B dofile
24−in Lua.
25−
26−.BR luac
27−produces a single output file containing the bytecode
28−for all named source files.
29−By default,
30−the output file is named
31−.BR luac.out ,
32−but you can change this with the
33−.B \-o
34−option.
35−
36−You can use "-" to indicate stdin as a source file.
37−.SH OPTIONS
38−.LP
39−.TP 1i
40−.B \-d
41−turns debugging on.
42−.TP
43−.B \-l
44−produces a listing of the compiled bytecode for Lua's virtual machine.
45−.TP
46−.B \-p
47−parses sources files but does not generate any output file.
48−.TP
49−.B \-v
50−prints version information.
51−.TP
52−.BI \-o " outputfile"
53−Name the output file
54−.IR output ,
55−instead of the default
56−.BR luac.out .
57−The output file cannot be a source file.
58−.SH FILES
59−.PD 0
60−.TP 20
61−.B luac.out
62−default output file
63−.PD
64−.SH "SEE ALSO"
65−.BR lua (1)
66−.LP
67−.IR "Reference Manual of the Programming Language Lua"
68−.SH DIAGNOSTICS
69−Error messages should be self explanatory.
70−.SH BUGS
71−Inherits any bugs from Lua,
72−but Lua has no bugs...
73−.SH AUTHORS
74−W. Celes, R. Ierusalimschy & L. H. de Figueiredo
75−(lua@icad.puc-rio.br)
doc/luac.ps+0−246
@@ -1,246 +0,0 @@
1−%!PS-Adobe-3.0
2−%%Creator: groff version 1.09
3−%%CreationDate: Fri Mar 29 10:45:53 1996
4−%%DocumentNeededResources: font Times-Roman
5−%%+ font Times-Bold
6−%%+ font Times-Italic
7−%%DocumentSuppliedResources: procset grops 1.09 0
8−%%Pages: 1
9−%%PageOrder: Ascend
10−%%Orientation: Portrait
11−%%EndComments
12−%%BeginProlog
13−%%BeginResource: procset grops 1.09 0
14−/setpacking where{
15−pop
16−currentpacking
17−true setpacking
18−}if
19−/grops 120 dict dup begin
20−/SC 32 def
21−/A/show load def
22−/B{0 SC 3 -1 roll widthshow}bind def
23−/C{0 exch ashow}bind def
24−/D{0 exch 0 SC 5 2 roll awidthshow}bind def
25−/E{0 rmoveto show}bind def
26−/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
27−/G{0 rmoveto 0 exch ashow}bind def
28−/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
29−/I{0 exch rmoveto show}bind def
30−/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
31−/K{0 exch rmoveto 0 exch ashow}bind def
32−/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
33−/M{rmoveto show}bind def
34−/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
35−/O{rmoveto 0 exch ashow}bind def
36−/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
37−/Q{moveto show}bind def
38−/R{moveto 0 SC 3 -1 roll widthshow}bind def
39−/S{moveto 0 exch ashow}bind def
40−/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
41−/SF{
42−findfont exch
43−[exch dup 0 exch 0 exch neg 0 0]makefont
44−dup setfont
45−[exch/setfont cvx]cvx bind def
46−}bind def
47−/MF{
48−findfont
49−[5 2 roll
50−0 3 1 roll
51−neg 0 0]makefont
52−dup setfont
53−[exch/setfont cvx]cvx bind def
54−}bind def
55−/level0 0 def
56−/RES 0 def
57−/PL 0 def
58−/LS 0 def
59−/PLG{
60−gsave newpath clippath pathbbox grestore
61−exch pop add exch pop
62−}bind def
63−/BP{
64−/level0 save def
65−1 setlinecap
66−1 setlinejoin
67−72 RES div dup scale
68−LS{
69−90 rotate
70−}{
71−0 PL translate
72−}ifelse
73−1 -1 scale
74−}bind def
75−/EP{
76−level0 restore
77−showpage
78−}bind def
79−/DA{
80−newpath arcn stroke
81−}bind def
82−/SN{
83−transform
84−.25 sub exch .25 sub exch
85−round .25 add exch round .25 add exch
86−itransform
87−}bind def
88−/DL{
89−SN
90−moveto
91−SN
92−lineto stroke
93−}bind def
94−/DC{
95−newpath 0 360 arc closepath
96−}bind def
97−/TM matrix def
98−/DE{
99−TM currentmatrix pop
100−translate scale newpath 0 0 .5 0 360 arc closepath
101−TM setmatrix
102−}bind def
103−/RC/rcurveto load def
104−/RL/rlineto load def
105−/ST/stroke load def
106−/MT/moveto load def
107−/CL/closepath load def
108−/FL{
109−currentgray exch setgray fill setgray
110−}bind def
111−/BL/fill load def
112−/LW/setlinewidth load def
113−/RE{
114−findfont
115−dup maxlength 1 index/FontName known not{1 add}if dict begin
116−{
117−1 index/FID ne{def}{ pop pop}ifelse
118−}forall
119−/Encoding exch def
120−dup/FontName exch def
121−currentdict end definefont pop
122−}bind def
123−/DEFS 0 def
124−/EBEGIN{
125−moveto
126−DEFS begin
127−}bind def
128−/EEND/end load def
129−/CNT 0 def
130−/level1 0 def
131−/PBEGIN{
132−/level1 save def
133−translate
134−div 3 1 roll div exch scale
135−neg exch neg exch translate
136−0 setgray
137−0 setlinecap
138−1 setlinewidth
139−0 setlinejoin
140−10 setmiterlimit
141−[] 0 setdash
142−/setstrokeadjust where{
143−pop
144−false setstrokeadjust
145−}if
146−/setoverprint where{
147−pop
148−false setoverprint
149−}if
150−newpath
151−/CNT countdictstack def
152−userdict begin
153−/showpage{} def
154−}bind def
155−/PEND{
156−clear
157−countdictstack CNT sub{end}repeat
158−level1 restore
159−}bind def
160−end def
161−/setpacking where{
162−pop
163−setpacking
164−}if
165−%%EndResource
166−%%IncludeResource: font Times-Roman
167−%%IncludeResource: font Times-Bold
168−%%IncludeResource: font Times-Italic
169−grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
170−def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
171−/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
172−/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
173−/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
174−/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
175−/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
176−/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
177−/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
178−/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
179−/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
180−/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
181−/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
182−/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
183−/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
184−/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
185−/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
186−/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
187−/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
188−/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
189−/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
190−/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
191−/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
192−/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
193−/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
194−/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
195−/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
196−/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
197−/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
198−/Times-Roman@0 ENC0/Times-Roman RE
199−%%EndProlog
200−%%Page: 1 1
201−%%BeginPageSetup
202−BP
203−%%EndPageSetup
204−/F0 10/Times-Roman@0 SF(LU)72 48 Q -.034 -.4(AC \( 1 \))-.4 H
205−(User Commands)157.852 E(LU)157.452 E -.034 -.4(AC \( 1 \))-.4 H/F1 9
206−/Times-Bold@0 SF -.18(NA)72 96 S(ME).18 E F0(luac \255 Lua compiler)108
207−108 Q F1(SYNOPSIS)72 124.8 Q/F2 10/Times-Bold@0 SF(luac)108 136.8 Q F0
208−([)3.75 E F2(\255dlpv)3.75 E F0 3.75(][)3.75 G F2<ad6f>A/F3 10
209−/Times-Italic@0 SF(output\214le)3.75 E F0(])3.75 E F3(sour)3.75 E
210−(ce\214le)-.37 E F0 1.666(...)3.75 G F1(DESCRIPTION)72 153.6 Q F2(luac)
211−108 165.6 Q F0 .371(is the Lua compiler)2.871 F 5.371(.I)-.55 G 2.871
212−(tt)-5.371 G .37(ranslates programs written in the Lua programming lang\
213−uage into binary \214les)-2.871 F(that can be loaded and e)108 177.6 Q
214−-.15(xe)-.15 G(cuted with).15 E F2(lua_do\214le)2.5 E F0(in C or)2.5 E
215−F2(do\214le)2.5 E F0(in Lua.)2.5 E F2(luac)108 201.6 Q F0 .159(produces\
216− a single output \214le containing the bytecode for all named source \
217−\214les.)2.658 F .159(By def)5.159 F .159(ault, the output)-.1 F
218−(\214le is named)108 213.6 Q F2(luac.out)2.5 E F0 2.5(,b)C
219−(ut you can change this with the)-2.7 E F2<ad6f>2.5 E F0(option.)2.5 E
220−-1.1(Yo)108 237.6 S 2.5(uc)1.1 G
221−(an use "-" to indicate stdin as a source \214le.)-2.5 E F1(OPTIONS)72
222−254.4 Q F2<ad64>108 266.4 Q F0(turns deb)60.74 E(ugging on.)-.2 E F2
223−<ad6c>108 283.2 Q F0
224−(produces a listing of the compiled bytecode for Lua')63.52 E 2.5(sv)
225−-.55 G(irtual machine.)-2.5 E F2<ad70>108 300 Q F0
226−(parses sources \214les b)60.74 E(ut does not generate an)-.2 E 2.5(yo)
227−-.15 G(utput \214le.)-2.5 E F2<ad76>108 316.8 Q F0(prints v)61.3 E
228−(ersion information.)-.15 E F2<ad6f>108 333.6 Q F3(output\214le)2.5 E F0
229−.657(Name the output \214le)21.02 F F3(output)3.157 E F0 3.157(,i)C .657
230−(nstead of the def)-3.157 F(ault)-.1 E F2(luac.out)3.157 E F0 5.657(.T)C
231−.656(he output \214le cannot be a)-5.657 F(source \214le.)180 345.6 Q F1
232−(FILES)72 362.4 Q F2(luac.out)108 374.4 Q F0(def)65.83 E
233−(ault output \214le)-.1 E F1(SEE ALSO)72 391.2 Q F2(lua)108 403.2 Q F0
234−(\(1\))A F3(Refer)108 420 Q(ence Manual of the Pr)-.37 E -.1(og)-.45 G
235−-.15(ra).1 G(mming Langua).15 E .2 -.1(ge L)-.1 H(ua).1 E F1(DIA)72
236−436.8 Q(GNOSTICS)-.495 E F0(Error messages should be self e)108 448.8 Q
237−(xplanatory)-.15 E(.)-.65 E F1 -.09(BU)72 465.6 S(GS).09 E F0
238−(Inherits an)108 477.6 Q 2.5(yb)-.15 G(ugs from Lua, b)-2.7 E
239−(ut Lua has no b)-.2 E(ugs...)-.2 E F1 -.45(AU)72 494.4 S(THORS).45 E F0
240−1.84 -.92(W. C)108 506.4 T(eles, R. Ierusalimsch).92 E 2.5(y&L)-.05 G
241−2.5(.H)-2.5 G 2.5(.d)-2.5 G 2.5(eF)-2.5 G
242−(igueiredo \(lua@icad.puc-rio.br\))-2.5 E(29 March 1996)72 768 Q
243−(12 March 1996)142.35 E(1)198.45 E EP
244−%%Trailer
245−end
246−%%EOF
doc/luac.txt+0−66
@@ -1,66 +0,0 @@
1−
2−
3−
4−LUAC(1) User Commands LUAC(1)
5−
6−
7−
8−NAME
9− luac - Lua compiler
10−
11−SYNOPSIS
12− luac [ -dlpv ] [ -o outputfile ] sourcefile ...
13−
14−DESCRIPTION
15− luac is the Lua compiler. It translates programs written in
16− the Lua programming language into binary files that can be
17− loaded and executed with lua_dofile in C or dofile in Lua.
18−
19− luac produces a single output file containing the bytecode
20− for all named source files. By default, the output file is
21− named luac.out, but you can change this with the -o option.
22−
23− You can use "-" to indicate stdin as a source file.
24−
25−OPTIONS
26− -d turns debugging on.
27−
28− -l produces a listing of the compiled bytecode for
29− Lua's virtual machine.
30−
31− -p parses sources files but does not generate any
32− output file.
33−
34− -v prints version information.
35−
36− -o outputfile
37− Name the output file output, instead of the
38− default luac.out. The output file cannot be a
39− source file.
40−
41−FILES
42− luac.out default output file
43−
44−SEE ALSO
45− lua(1)
46−
47− Reference Manual of the Programming Language Lua
48−
49−DIAGNOSTICS
50− Error messages should be self explanatory.
51−
52−BUGS
53− Inherits any bugs from Lua, but Lua has no bugs...
54−
55−AUTHORS
56− W. Celes, R. Ierusalimschy & L. H. de Figueiredo
57− (lua@icad.puc-rio.br)
58−
59−
60−
61−
62−
63−Formatted 96/03/29 12 March 1996 1
64−
65−
66−
doc/manual.html+2545−0
@@ -0,0 +1,2545 @@
1+<HEAD>
2+<TITLE>Lua 3.0 Reference Manual</TITLE>
3+</HEAD>
4+<BODY>
5+<h1>Lua 3.0 Reference Manual</h1>
6+
7+<!-- ====================================================================== -->
8+<HR>
9+<A NAME="1."></A>
10+<H1>1 - Introduction</H1>
11+<P>
12+Lua is an extension programming language designed to support
13+general procedural programming with data description
14+facilities.
15+It is intended to be used as a light-weight, but powerful,
16+configuration language for any program that needs one.
17+Lua has been designed and implemented by
18+W.&nbsp;Celes,
19+R.&nbsp;Ierusalimschy and
20+L.&nbsp;H.&nbsp;de Figueiredo.
21+<P>
22+Lua is implemented as a library, written in C.
23+Being an extension language, Lua has no notion of a ``main'' program:
24+it only works <EM>embedded</EM> in a host client,
25+called the <EM>embedding</EM> program.
26+This host program can invoke functions to execute a piece of
27+code in Lua, can write and read Lua variables,
28+and can register C functions to be called by Lua code.
29+Through the use of C functions, Lua can be augmented to cope with
30+a wide range of different domains,
31+thus creating customized programming languages sharing a syntactical framework.
32+<P>
33+Lua is free-distribution software,
34+and provided as usual with no guarantees,
35+as stated in the copyright notice in the front page of this manual.
36+The implementation described in this manual is available
37+at the following URL's:
38+<LISTING>
39+ <A HREF="http://www.tecgraf.puc-rio.br/lua/">http://www.tecgraf.puc-rio.br/lua/</A>
40+ <A HREF="ftp://ftp.tecgraf.puc-rio.br/pub/lua/lua.tar.gz">ftp://ftp.tecgraf.puc-rio.br/pub/lua/lua.tar.gz</A>
41+</LISTING>
42+<P>
43+<P>
44+<!-- ====================================================================== -->
45+<HR>
46+<A NAME="2."></A>
47+<H1>2 - Environment and Chunks</H1>
48+<P>
49+All statements in Lua are executed in a <A NAME="global environment"><EM>global environment</EM></A>.
50+This environment, which keeps all global variables and functions,
51+is initialized at the beginning of the embedding program and
52+persists until its end.
53+<P>
54+The global environment can be manipulated by Lua code or
55+by the embedding program,
56+which can read and write global variables
57+using functions in the library that implements Lua.
58+<P>
59+<A NAME="Global variables">Global variables</A> do not need declaration.
60+Any variable is assumed to be global unless explicitly declared local
61+(see Section&nbsp;<A HREF="#localvar">4.5.5</A>).
62+Before the first assignment, the value of a global variable is <B>nil</B>;
63+this default can be changed (see Section&nbsp;<A HREF="#tag-method">4.8</A>).
64+<P>
65+The unit of execution of Lua is called a <A NAME="chunk"><EM>chunk</EM></A>.
66+The syntax
67+\footnote{As usual, {<EM>a</EM>} means 0 or more <EM>a</EM>'s,
68+[<EM>a</EM>] means an optional <EM>a</EM> and ('<EM>a</EM>)+ means
69+one or more <EM>a</EM>'s.}
70+for chunks is:
71+<LISTING>
72+chunk ::= {stat | function} [ret]
73+</LISTING>
74+A chunk may contain statements and function definitions,
75+and may be in a file or in a string inside the host program.
76+A chunk may optionally end with a <CODE>return</CODE> statement (see Section&nbsp;<A HREF="#return">4.5.3</A>).
77+When a chunk is executed, first all its functions and statements are compiled,
78+then the statements are executed in sequential order.
79+All modifications a chunk effects on the global environment persist
80+after its end.
81+Those include modifications to global variables and definitions
82+of new functions
83+\footnote{Actually, a function definition is an
84+assignment to a global variable (see Section&nbsp;<A HREF="#TypesSec">3</A>).}.
85+<P>
86+Chunks may be pre-compiled into binary form;
87+see program <A NAME="luac"><TT>luac</TT></A> for details.
88+Text files with chunks and their binary pre-compiled forms
89+are interchangeable.
90+Lua automatically detects the file type and acts accordingly.
91+<A NAME="pre-compilation"></A>
92+<P>
93+<A NAME="TypesSec"></A>
94+<!-- ====================================================================== -->
95+<HR>
96+<A NAME="3."></A>
97+<H1>3 - Types and Tags</H1>
98+<P>
99+Lua is a dynamically typed language.
100+Variables do not have types; only values do.
101+Therefore, there are no type definitions in the language.
102+All values carry their own type.
103+Besides a type, all values also have a <A NAME="tag">tag</A>.
104+<P>
105+There are six <A NAME="basic types">basic types</A> in Lua: <A NAME="nil"><EM>nil</EM></A>, <A NAME="number"><EM>number</EM></A>,
106+<A NAME="string"><EM>string</EM></A>, <A NAME="function"><EM>function</EM></A>, <A NAME="userdata"><EM>userdata</EM></A>, and <A NAME="table"><EM>table</EM></A>.
107+<EM>Nil</EM> is the type of the value <B>nil</B>,
108+whose main property is to be different from any other value.
109+<EM>Number</EM> represents real (floating-point) numbers,
110+while <EM>string</EM> has the usual meaning.
111+The function <CODE>type</CODE> returns a string describing the type
112+of a given value (see Section&nbsp;<A HREF="#pdf-type">6.1</A>).
113+<P>
114+Functions are considered first-class values in Lua.
115+This means that functions can be stored in variables,
116+passed as arguments to other functions and returned as results.
117+When a function is defined in Lua, its body is compiled and stored
118+in a given variable.
119+Lua can call (and manipulate) functions written in Lua and
120+functions written in C.
121+They can be distinguished by their tags:
122+all Lua functions have the same tag,
123+and all C functions have the same tag,
124+which is different from the tag of a Lua function.
125+<P>
126+The type <EM>userdata</EM> is provided to allow
127+arbitrary <A NAME="C pointers">C pointers</A> to be stored in Lua variables.
128+It corresponds to a <CODE>void*</CODE> and has no pre-defined operations in Lua,
129+besides assignment and equality test.
130+However, by using <EM>tag methods</EM>,
131+the programmer may define operations for <EM>userdata</EM> values
132+(see Section&nbsp;<A HREF="#tag-method">4.8</A>).
133+<P>
134+The type <EM>table</EM> implements <A NAME="associative arrays">associative arrays</A>,
135+that is, <A NAME="arrays">arrays</A> that can be indexed not only with numbers,
136+but with any value (except <B>nil</B>).
137+Therefore, this type may be used not only to represent ordinary arrays,
138+but also symbol tables, sets, records, etc.
139+To represent <A NAME="records">records</A>, Lua uses the field name as an index.
140+The language supports this representation by
141+providing <CODE>a.name</CODE> as syntactic sugar for <CODE>a["name"]</CODE>.
142+Tables may also carry methods.
143+Because functions are first class values,
144+table fields may contain functions.
145+The form <CODE>t:f(x)</CODE> is syntactic sugar for <CODE>t.f(t,x)</CODE>,
146+which calls the method <CODE>f</CODE> from the table <CODE>t</CODE> passing
147+itself as the first parameter (see Section&nbsp;<A HREF="#func-def">4.7</A>).
148+<P>
149+It is important to notice that tables are <EM>objects</EM>, and not values.
150+Variables cannot contain tables, only <EM>references</EM> to them.
151+Assignment, parameter passing and returns always manipulate references
152+to tables, and do not imply any kind of copy.
153+Moreover, tables must be explicitly created before used
154+(see Section&nbsp;<A HREF="#tableconstructor">4.6.7</A>).
155+<P>
156+Tags are mainly used to select tag methods when
157+some events occur (see Section&nbsp;<A HREF="#tag-method">4.8</A>).
158+Each of the types nil, number and string has a different tag.
159+All values of each of these types have this same pre-defined tag.
160+Values of type function can have two different tags,
161+depending on whether they are Lua or C functions.
162+Finally,
163+values of type userdata and table can have
164+as many different tags as needed (see Section&nbsp;<A HREF="#tag-method">4.8</A>).
165+Tags are created with the function <CODE>newtag</CODE>,
166+and the function <CODE>tag</CODE> returns the tag of a given value.
167+To change the tag of a given table,
168+there is the function <CODE>settag</CODE> (see Section&nbsp;<A HREF="#pdf-newtag">6.1</A>).
169+<P>
170+<P>
171+<!-- ====================================================================== -->
172+<HR>
173+<A NAME="4."></A>
174+<H1>4 - The Language</H1>
175+<P>
176+This section describes the lexis, the syntax and the semantics of Lua.
177+<P>
178+<P>
179+<A NAME="lexical"></A>
180+<A NAME="4.1"></A>
181+<H2>4.1 - Lexical Conventions</H2>
182+<P>
183+Lua is a case-sensitive language.
184+<A NAME="Identifiers">Identifiers</A> can be any string of letters, digits, and underscores,
185+not beginning with a digit.
186+The following words are reserved, and cannot be used as identifiers:
187+<A NAME="reserved words"></A>
188+<LISTING>
189+ and do else elseif
190+ end function if local
191+ nil not or repeat
192+ return then until while
193+</LISTING>
194+<P>
195+The following strings denote other <A NAME="tokens">tokens</A>:
196+<LISTING>
197+ ~= &lt;= &gt;= &lt; &gt; == = .. + - * /
198+ % ( ) { } [ ] ; , . ...
199+</LISTING>
200+<P>
201+<A NAME="Literal strings">Literal strings</A> can be delimited by matching single or double quotes,
202+and can contain the C-like escape sequences
203+<CODE>'\n'</CODE>, <CODE>'\t'</CODE> and <CODE>'\r'</CODE>.
204+Literal strings can also be delimited by matching <CODE>[[ ... ]]</CODE>.
205+Literals in this bracketed form may run for several lines,
206+may contain nested <CODE>[[ ... ]]</CODE> pairs,
207+and do not interpret escape sequences.
208+This form is specially convenient for
209+handling strings that contain program pieces or
210+other quoted strings.
211+<P>
212+<A NAME="Comments">Comments</A> start anywhere outside a string with a
213+double hyphen (<CODE>--</CODE>) and run until the end of the line.
214+Moreover,
215+the first line of a chunk file is skipped if it starts with <CODE>#</CODE>
216+\footnote{This facility allows the use of Lua as a script interpreter
217+in Unix systems (see Section&nbsp;<A HREF="#lua-sa">8</A>).}.
218+<P>
219+<A NAME="Numerical constants">Numerical constants</A> may be written with an optional decimal part,
220+and an optional decimal exponent.
221+Examples of valid numerical constants are:
222+<LISTING>
223+ 4 4.0 0.4 4.57e-3 0.3e12
224+</LISTING>
225+<P>
226+<A NAME="pre-processor"></A>
227+<A NAME="4.2"></A>
228+<H2>4.2 - The Pre-processor</H2>
229+<P>
230+All lines that start with a <CODE>$</CODE> are handled by a pre-processor.
231+The <CODE>$</CODE> can be followed by any of the following directives:
232+<DL>
233+<DT><B><TT>debug</TT></B><DD> - turn on some debugging facilities (see Section&nbsp;<A HREF="#pragma">4.9</A>).
234+<DT><B><TT>nodebug</TT></B><DD> - turn off some debugging facilities (see Section&nbsp;<A HREF="#pragma">4.9</A>).
235+<DT><B><TT>if <EM>cond</TT></EM></B><DD> - starts a conditional part.
236+If <EM>cond</EM> is false, then this part is skipped by the lexical analyzer.
237+<DT><B><TT>ifnot <EM>cond</TT></EM></B><DD> - starts a conditional part.
238+If <EM>cond</EM> is true, then this part is skipped by the lexical analyzer.
239+<DT><B><TT>end</TT></B><DD> - ends a conditional part.
240+<DT><B><TT>else</TT></B><DD> - starts an ``else'' conditional part,
241+switching the ``skip'' status.
242+<DT><B><TT>endinput</TT></B><DD> - ends the lexical parse of the file.
243+</DL>
244+<P>
245+Directives can be freely nested.
246+Particularly, a <CODE>$endinput</CODE> may occur inside a <CODE>$if</CODE>;
247+in that case, even the matching <CODE>$end</CODE> is not parsed.
248+<P>
249+A <EM>cond</EM> part may be:
250+<DL>
251+<DT><B><TT>nil</TT></B><DD> - always false.
252+<DT><B><TT>1</TT></B><DD> - always true.
253+<DT><B><EM>name</EM></B><DD> - true if the value of the
254+global variable <EM>name</EM> is different from <B>nil</B>.
255+Notice that <EM>name</EM> is evaluated before the chunk starts its execution.
256+Therefore, actions in a chunk do not affect its own conditional directives.
257+</DL>
258+<P>
259+<A NAME="coercion"></A>
260+<A NAME="4.3"></A>
261+<H2>4.3 - Coercion</H2>
262+<P>
263+Lua provides some automatic conversions between values.
264+Any arithmetic operation applied to a string tries to convert
265+that string to a number, following the usual rules.
266+Conversely, whenever a number is used when a string is expected,
267+that number is converted to a string, according to the following rule:
268+if the number is an integer, it is written without exponent or decimal point;
269+otherwise, it is formatted following the <CODE>%g</CODE>
270+conversion specification of the <CODE>printf</CODE> function in the
271+standard C library.
272+For complete control on how numbers are converted to strings,
273+use the <CODE>format</CODE> function (see Section&nbsp;<A HREF="#format">6.2</A>).
274+<P>
275+<P>
276+<A NAME="adjust"></A>
277+<A NAME="4.4"></A>
278+<H2>4.4 - Adjustment</H2>
279+<P>
280+Functions in Lua can return many values.
281+Because there are no type declarations,
282+the system does not know how many values a function will return,
283+or how many parameters it needs.
284+Therefore, sometimes, a list of values must be <EM>adjusted</EM>, at run time,
285+to a given length.
286+If there are more values than are needed, then the last values are thrown away.
287+If there are more needs than values, then the list is extended with as
288+many <B>nil</B>'s as needed.
289+Adjustment occurs in multiple assignment and function calls.
290+<P>
291+<P>
292+<A NAME="4.5"></A>
293+<H2>4.5 - Statements</H2>
294+<P>
295+Lua supports an almost conventional set of <A NAME="statements">statements</A>,
296+similar to those in Pascal or C.
297+The conventional commands include
298+assignment, control structures and procedure calls.
299+Non-conventional commands include table constructors
300+(see Section&nbsp;<A HREF="#tableconstructor">4.6.7</A>),
301+and local variable declarations (see Section&nbsp;<A HREF="#localvar">4.5.5</A>).
302+<P>
303+<H3>4.5.1 - Blocks</H3>
304+A <A NAME="block">block</A> is a list of statements, which are executed sequentially.
305+Any statement can be optionally followed by a semicolon:
306+<LISTING>
307+block ::= {stat sc} [ret]
308+sc ::= ['<B>;</B>']
309+</LISTING>
310+For syntactic reasons, a <A NAME="return"><TT>return</TT></A> statement can only be written
311+as the last statement of a block.
312+This restriction also avoids some ``statement not reached'' conditions.
313+<P>
314+<A NAME="assignment"></A>
315+<H3>4.5.2 - <A NAME="Assignment</H3>">Assignment</H3></A>
316+The language allows <A NAME="multiple assignment">multiple assignment</A>.
317+Therefore, the syntax for assignment
318+defines a list of variables on the left side,
319+and a list of expressions on the right side.
320+Both lists have their elements separated by commas:
321+<LISTING>
322+stat ::= varlist1 '<B>=</B>' explist1
323+varlist1 ::= var {'<B>,</B>' var}
324+</LISTING>
325+This statement first evaluates all values on the right side
326+and eventual indices on the left side,
327+and then makes the assignments.
328+Therefore, it can be used to exchange two values, as in
329+<LISTING>
330+ x, y = y, x
331+</LISTING>
332+The two lists may have different lengths.
333+Before the assignment, the list of values is <EM>adjusted</EM> to
334+the length of the list of variables (see Section&nbsp;<A HREF="#adjust">4.4</A>).
335+<P>
336+A single name can denote a global or a local variable,
337+or a formal parameter:
338+<LISTING>
339+var ::= name
340+</LISTING>
341+Square brackets are used to index a table:
342+<LISTING>
343+var ::= var '<B>[</B>' exp1 '<B>]</B>'
344+</LISTING>
345+The <CODE>var</CODE> should result in a table value,
346+where the field indexed by the expression value gets the assigned value.
347+<P>
348+The meaning of assignments and evaluations of global variables and
349+indexed variables can be changed by tag methods (see Section&nbsp;<A HREF="#tag-method">4.8</A>).
350+Actually,
351+an assignment <CODE>x = val</CODE>, where <CODE>x</CODE> is a global variable,
352+is equivalent to a call <CODE>setglobal('x', val)</CODE>;
353+an assignment <CODE>t[i] = val</CODE> is equivalent to
354+<CODE>settable_event(t, i, val)</CODE>.
355+See Section&nbsp;<A HREF="#tag-method">4.8</A> for a description of these functions
356+\footnote{Function <CODE>setglobal</CODE> is pre-defined in Lua.
357+Function <TT>settable_event</TT> is used only for explanation purposes.}.
358+<P>
359+The syntax <CODE>var.NAME</CODE> is just syntactic sugar for
360+<CODE>var["NAME"]</CODE>:
361+<LISTING>
362+var ::= var '<B>.</B>' name
363+</LISTING>
364+<P>
365+<H3>4.5.3 - Control Structures</H3>
366+The <A NAME="condition expression">condition expression</A> of a control structure may return any value.
367+All values different from <B>nil</B> are considered true;
368+only <B>nil</B> is considered false.
369+<TT>if</TT>'s, <TT>while</TT>'s and <TT>repeat</TT>'s have the usual meaning.
370+<P>
371+<A NAME="while-do"></A><A NAME="repeat-until"></A><A NAME="if-then-else"></A>
372+<LISTING>
373+stat ::= <B>while</B> exp1 <B>do</B> block <B>end</B> <BR> | <B>repeat</B> block <B>until</B> exp1 <BR> | <B>if</B> exp1 <B>then</B> block {elseif} [<B>else</B> block] <B>end</B>
374+elseif ::= <B>elseif</B> exp1 <B>then</B> block
375+</LISTING>
376+<P>
377+A <TT>return</TT> is used to return values from a function or a chunk.
378+<A NAME="return"></A>
379+
380+Because they may return more than one value,
381+the syntax for a <A NAME="return statement">return statement</A> is:
382+<LISTING>
383+ret ::= <B>return</B> [explist1] [sc]
384+</LISTING>
385+<P>
386+<A NAME="funcstat"></A>
387+<H3>4.5.4 - Function Calls as Statements</H3>
388+Because of possible side-effects,
389+function calls can be executed as statements:
390+<LISTING>
391+stat ::= functioncall
392+</LISTING>
393+In this case, returned values are thrown away.
394+Function calls are explained in Section&nbsp;<A HREF="#functioncall">4.6.8</A>.
395+<P>
396+<A NAME="localvar"></A>
397+<H3>4.5.5 - Local Declarations</H3>
398+<A NAME="Local variables">Local variables</A> may be declared anywhere inside a block.
399+Their scope begins after the declaration and lasts until the
400+end of the block.
401+The declaration may include an initial assignment:
402+<LISTING>
403+stat ::= <B>local</B> declist [init]
404+declist ::= name {'<B>,</B>' name}
405+init ::= '<B>=</B>' explist1
406+</LISTING>
407+If present, an initial assignment has the same semantics
408+of a multiple assignment.
409+Otherwise, all variables are initialized with <B>nil</B>.
410+<P>
411+<P>
412+<A NAME="4.6"></A>
413+<H2>4.6 - Expressions</H2>
414+<P>
415+<H3>4.6.1 - <A NAME="Simple Expressions</H3>">Simple Expressions</H3></A>
416+Simple expressions are:
417+<LISTING>
418+exp ::= '<B>(</B>' exp '<B>)</B>'
419+exp ::= <B>nil</B>
420+exp ::= '<B>number</B>'
421+exp ::= '<B>literal</B>'
422+exp ::= var
423+</LISTING>
424+Numbers (numerical constants) and
425+string literals are explained in Section&nbsp;<A HREF="#lexical">4.1</A>.
426+Variables are explained in Section&nbsp;<A HREF="#assignment">4.5.2</A>.
427+<P>
428+An access to a global variable <CODE>x</CODE> is equivalent to a
429+call <CODE>getglobal('x')</CODE>;
430+an access to an indexed variable <CODE>t[i]</CODE> is equivalent to
431+a call <CODE>gettable_event(t, i)</CODE>.
432+See Section&nbsp;<A HREF="#tag-method">4.8</A> for a description of these functions
433+\footnote{Function <CODE>getglobal</CODE> is pre-defined in Lua.
434+Function <TT>gettable_event</TT> is used only for explanation purposes.}.
435+<P>
436+The non-terminal <EM>exp1</EM> is used to indicate that the values
437+returned by an expression must be adjusted to one single value:
438+<LISTING>
439+exp1 ::= exp
440+</LISTING>
441+<P>
442+<H3>4.6.2 - Arithmetic Operators</H3>
443+Lua supports the usual <A NAME="arithmetic operators">arithmetic operators</A>:
444+the binary <CODE>+</CODE> (addition),
445+<CODE>-</CODE> (subtraction), <CODE>*</CODE> (multiplication),
446+<CODE>/</CODE> (division) and <CODE>^</CODE> (exponentiation),
447+and unary <CODE>-</CODE> (negation).
448+If the operands are numbers, or strings that can be converted to
449+numbers, according to the rules given in Section&nbsp;<A HREF="#coercion">4.3</A>,
450+then all operations except exponentiation have the usual meaning.
451+Otherwise, an appropriate tag method is called (see Section&nbsp;<A HREF="#tag-method">4.8</A>).
452+An exponentiation always calls a tag method.
453+The standard mathematical library redefines this method for numbers,
454+giving the expected meaning to <A NAME="exponentiation">exponentiation</A>
455+(see Section&nbsp;<A HREF="#mathlib">6.3</A>).
456+<P>
457+<H3>4.6.3 - Relational Operators</H3>
458+Lua provides the following <A NAME="relational operators">relational operators</A>:
459+<LISTING>
460+ &lt; &gt; &lt;= &gt;= ~= ==
461+</LISTING>
462+All these return <B>nil</B> as false and a value different from <B>nil</B> as true.
463+<P>
464+Equality first compares the types of its operands.
465+If they are different, then the result is <B>nil</B>.
466+Otherwise, their values are compared.
467+Numbers and strings are compared in the usual way.
468+Tables, userdata and functions are compared by reference,
469+that is, two tables are considered equal only if they are the same table.
470+The operator <CODE>~=</CODE> is exactly the negation of equality (<CODE>==</CODE>).
471+Note that the conversion rules of Section&nbsp;<A HREF="#coercion">4.3</A>
472+<EM>do not</EM> apply to equality comparisons.
473+Thus, <CODE>"0"==0</CODE> evaluates to false.
474+<P>
475+The other operators work as follows.
476+If both arguments are numbers, then they are compared as such.
477+Otherwise, if both arguments are strings,
478+their values are compared using lexicographical order.
479+Otherwise, the ``order'' tag method is called (see Section&nbsp;<A HREF="#tag-method">4.8</A>).
480+<P>
481+<H3>4.6.4 - Logical Operators</H3>
482+Like control structures, all logical operators
483+consider <B>nil</B> as false and anything else as true.
484+The <A NAME="logical operators">logical operators</A> are:
485+<A NAME="and"></A><A NAME="or"></A><A NAME="not"></A>
486+<LISTING>
487+ and or not
488+</LISTING>
489+The operator <CODE>and</CODE> returns <B>nil</B> if its first argument is <B>nil</B>;
490+otherwise, it returns its second argument.
491+The operator <CODE>or</CODE> returns its first argument
492+if it is different from <B>nil</B>;
493+otherwise, it returns its second argument.
494+Both <CODE>and</CODE> and <CODE>or</CODE> use <A NAME="short-cut evaluation">short-cut evaluation</A>,
495+that is,
496+the second operand is evaluated only when necessary.
497+<P>
498+<H3>4.6.5 - Concatenation</H3>
499+Lua offers a string <A NAME="concatenation">concatenation</A> operator,
500+denoted by ``<A NAME=".."><TT>..</TT></A>''.
501+If operands are strings or numbers, then they are converted to
502+strings according to the rules in Section&nbsp;<A HREF="#coercion">4.3</A>.
503+Otherwise, the ``concat'' tag method is called (see Section&nbsp;<A HREF="#tag-method">4.8</A>).
504+<P>
505+<H3>4.6.6 - Precedence</H3>
506+<A NAME="Operator precedence">Operator precedence</A> follows the table below,
507+from the lower to the higher priority:
508+<LISTING>
509+ and or
510+ &lt; &gt; &lt;= &gt;= ~= ==
511+ ..
512+ + -
513+ * /
514+ not - (unary)
515+ ^
516+</LISTING>
517+All binary operators are left associative,
518+except for <CODE>^</CODE> (exponentiation),
519+which is right associative.
520+<P>
521+<A NAME="tableconstructor"></A>
522+<H3>4.6.7 - Table Constructors</H3>
523+Table <A NAME="constructors">constructors</A> are expressions that create tables;
524+every time a constructor is evaluated, a new table is created.
525+Constructors can be used to create empty tables,
526+or to create a table and initialize some fields.
527+<P>
528+The general syntax for constructors is:
529+<LISTING>
530+tableconstructor ::= '<B>{</B>' fieldlist '<B>}</B>'
531+fieldlist ::= lfieldlist | ffieldlist | lfieldlist '<B>;</B>' ffieldlist
532+lfieldlist ::= [lfieldlist1]
533+ffieldlist ::= [ffieldlist1]
534+</LISTING>
535+<P>
536+The form <EM>lfieldlist1</EM> is used to initialize lists.
537+<LISTING>
538+lfieldlist1 ::= exp {'<B>,</B>' exp} ['<B>,</B>']
539+</LISTING>
540+The expressions in the list are assigned to consecutive numerical indices,
541+starting with 1.
542+For example:
543+<LISTING>
544+ a = {"v1", "v2", 34}
545+</LISTING>
546+is essentially equivalent to:
547+<LISTING>
548+ temp = {}
549+ temp[1] = "v1"
550+ temp[2] = "v2"
551+ temp[3] = 34
552+ a = temp
553+</LISTING>
554+<P>
555+The form <EM>ffieldlist1</EM> initializes other fields in a table:
556+<LISTING>
557+ffieldlist1 ::= ffield {'<B>,</B>' ffield} ['<B>,</B>']
558+ffield ::= '<B>[</B>' exp '<B>]</B>' \ter {= exp | name '<B>=</B>' exp}
559+</LISTING>
560+For example:
561+<LISTING>
562+ a = {[f(k)] = g(y), x = 1, y = 3, [0] = b+c}
563+</LISTING>
564+is essentially equivalent to:
565+<LISTING>
566+ temp = {}
567+ temp[f(k)] = g(y)
568+ temp.x = 1 -- or temp["x"] = 1
569+ temp.y = 3 -- or temp["y"] = 3
570+ temp[0] = b+c
571+ a = temp
572+</LISTING>
573+An expression like <CODE>{x = 1, y = 4}</CODE> is
574+in fact syntactic sugar for <CODE>{["x"] = 1, ["y"] = 4}</CODE>.
575+<P>
576+<A NAME="functioncall"></A>
577+<H3>4.6.8 - Function Calls</H3>
578+A <A NAME="function call">function call</A> has the following syntax:
579+<LISTING>
580+functioncall ::= var realParams
581+</LISTING>
582+Here, <EM>var</EM> can be any variable (global, local, indexed, etc).
583+If its value has type <EM>function</EM>,
584+then this function is called.
585+Otherwise, the ``function'' tag method is called,
586+having as first parameter the value of <EM>var</EM>,
587+and then the original call parameters.
588+<P>
589+The form:
590+<LISTING>
591+functioncall ::= var '<B>:</B>' name realParams
592+</LISTING>
593+can be used to call ``methods''.
594+A call <CODE>var:name(...)</CODE>
595+is syntactic sugar for
596+<LISTING>
597+ var.name(var, ...)
598+</LISTING>
599+except that <CODE>var</CODE> is evaluated only once.
600+<P>
601+<LISTING>
602+realParams ::= '<B>(</B>' [explist1] '<B>)</B>'
603+realParams ::= tableconstructor
604+explist1 ::= exp1 {'<B>,</B>' exp1}
605+</LISTING>
606+All argument expressions are evaluated before the call.
607+A call of the form <CODE>f{...}</CODE> is syntactic sugar for
608+<CODE>f({...})</CODE>, that is,
609+the parameter list is a single new table.
610+<P>
611+Because a function can return any number of results
612+(see Section&nbsp;<A HREF="#return">4.5.3</A>),
613+the number of results must be adjusted before used.
614+If the function is called as a statement (see Section&nbsp;<A HREF="#funcstat">4.5.4</A>),
615+then its return list is adjusted to&nbsp;0,
616+thus discarding all returned values.
617+If the function is called in a place that needs a single value
618+(syntactically denoted by the non-terminal <EM>exp1</EM>),
619+then its return list is adjusted to&nbsp;1,
620+thus discarding all returned values but the first one.
621+If the function is called in a place that can hold many values
622+(syntactically denoted by the non-terminal <EM>exp</EM>),
623+then no adjustment is made.
624+<P>
625+<P>
626+<A NAME="func-def"></A>
627+<A NAME="4.7"></A>
628+<H2>4.7 - Function Definitions</H2>
629+<P>
630+Functions in Lua can be defined anywhere in the global level of a chunk.
631+The syntax for function definition is:
632+<LISTING>
633+function ::= <B>function</B> var '<B>(</B>' [parlist1] '<B>)</B>' block <B>end</B>
634+</LISTING>
635+<P>
636+When Lua pre-compiles a chunk,
637+all its function bodies are pre-compiled, too.
638+Then, when Lua ``executes'' the function definition,
639+its body is stored, with type <EM>function</EM>,
640+into the variable <CODE>var</CODE>.
641+It is in this sense that
642+a function definition is an assignment to a global variable.
643+<P>
644+Parameters act as local variables,
645+initialized with the argument values.
646+<LISTING>
647+parlist1 ::= '<B>...</B>'
648+parlist1 ::= name {'<B>,</B>' name} ['<B>,</B>' '<B>...</B>']
649+</LISTING>
650+<A NAME="vararg"></A>
651+
652+When a function is called,
653+the list of <A NAME="arguments">arguments</A> is adjusted to
654+the length of the list of parameters (see Section&nbsp;<A HREF="#adjust">4.4</A>),
655+unless the function is a <A NAME="vararg"><EM>vararg</EM></A> function,
656+indicated by the dots (...) at the end of its parameter list.
657+A vararg function does not adjust its argument list;
658+instead, it collects any extra arguments in an implicit parameter,
659+called <A NAME="arg"><EM>arg</EM></A>.
660+This parameter is always initialized as a table,
661+with a field <CODE>n</CODE> with the number of extra arguments,
662+and the extra arguments at positions 1, 2, ...
663+<P>
664+As an example, suppose definitions like:
665+<LISTING>
666+ function f(a, b) end
667+ function g(a, b, ...) end
668+</LISTING>
669+Then, we have the following mapping from arguments to parameters:
670+<LISTING>
671+ CALL PARAMETERS
672+<P>
673+ f(3) a=3, b=nil
674+ f(3, 4) a=3, b=4
675+ f(3, 4, 5) a=3, b=4
676+<P>
677+ g(3) a=3, b=nil, arg={n=0}
678+ g(3, 4) a=3, b=4, arg={n=0}
679+ g(3, 4, 5, 8) a=3, b=4, arg={5, 8; n=2}
680+</LISTING>
681+<P>
682+Results are returned using the <CODE>return</CODE> statement (see Section&nbsp;<A HREF="#return">4.5.3</A>).
683+If control reaches the end of a function without a return instruction,
684+then the function returns with no results.
685+<P>
686+There is a special syntax for defining <A NAME="methods">methods</A>,
687+that is, functions that have an extra parameter <A NAME="self"><EM>self</EM></A>.
688+<LISTING>
689+function ::= <B>function</B> var '<B>:</B>' name '<B>(</B>' [parlist1] '<B>)</B>' block <B>end</B>
690+</LISTING>
691+Thus, a declaration like
692+<LISTING>
693+function v:f (...)
694+ ...
695+end
696+</LISTING>
697+is equivalent to
698+<LISTING>
699+function v.f (self, ...)
700+ ...
701+end
702+</LISTING>
703+that is, the function gets an extra formal parameter called <CODE>self</CODE>.
704+Notice that
705+the variable <CODE>v</CODE> must have been
706+previously initialized with a table value.
707+<P>
708+<P>
709+<A NAME="tag-method"></A>
710+<A NAME="4.8"></A>
711+<H2>4.8 - Tag Methods</H2>
712+<P>
713+Lua provides a powerful mechanism to extend its semantics,
714+called <A NAME="Tag Methods"><EM>Tag Methods</EM></A>.
715+A tag method (TM) is a programmer-defined function
716+that can be called at many key points of the evaluation of a program,
717+allowing a programmer to change the standard Lua behavior at these points.
718+Each of these points is called an <A NAME="event"><EM>event</EM></A>.
719+<P>
720+The tag method called for any specific event is selected
721+according to the tag of the values involved
722+in the event (see Section&nbsp;<A HREF="#TypesSec">3</A>).
723+The function <A NAME="settagmethod"><TT>settagmethod</TT></A> changes the tag method
724+associated with a given pair <EM>&lt;tag, event&gt;</EM>.
725+Its first parameter is the tag, the second the event name
726+(a string, see below),
727+and the third parameter is the new method (a function),
728+or <B>nil</B> to restore the default behavior.
729+The function returns the previous tag method.
730+Another function, <A NAME="gettagmethod"><TT>gettagmethod</TT></A>,
731+receives a tag and an event name and returns the
732+current method associated with the pair.
733+<P>
734+Tag methods are called in the following events,
735+identified by the given names.
736+The semantics of tag methods is better explained by a Lua function
737+describing the behavior of the interpreter at each event.
738+The function not only shows when a tag method is called,
739+but also its arguments, its results and the default behavior.
740+Please notice that the code shown here is only illustrative;
741+the real behavior is hard coded in the interpreter,
742+and it is much more efficient than this simulation.
743+All functions used in these descriptions
744+(<CODE>rawgetglobal</CODE>, <CODE>tonumber</CODE>, <CODE>call</CODE>, etc)
745+are described in Section&nbsp;<A HREF="#predefined">6.1</A>.
746+<P>
747+<DL>
748+<P>
749+<DT><B>``add'':</B><DD><A NAME="add event"></A>
750+called when a <CODE>+</CODE> operation is applied to non numerical operands.
751+<P>
752+The function <CODE>getbinmethod</CODE> defines how Lua chooses a tag method
753+for a binary operation.
754+First Lua tries the first operand.
755+If its tag does not define a tag method for the operation,
756+then Lua tries the second operand.
757+If it also fails, then it gets a tag method from tag&nbsp;0:
758+<LISTING>
759+ function getbinmethod (op1, op2, event)
760+ return gettagmethod(tag(op1), event) or
761+ gettagmethod(tag(op2), event) or
762+ gettagmethod(0, event)
763+ end
764+</LISTING>
765+<LISTING>
766+ function add_event (op1, op2)
767+ local o1, o2 = tonumber(op1), tonumber(op2)
768+ if o1 and o2 then -- both operands are numeric
769+ return o1+o2 -- '+' here is the primitive 'add'
770+ else -- at least one of the operands is not numeric.
771+ local tm = getbinmethod(op1, op2, "add")
772+ if tm then
773+ -- call the method with both operands and an extra
774+ -- argument with the event name
775+ return tm(op1, op2, "add")
776+ else -- no tag method available: Default behavior
777+ error("unexpected type at arithmetic operation")
778+ end
779+ end
780+ end
781+</LISTING>
782+<P>
783+<DT><B>``sub'':</B><DD><A NAME="sub event"></A>
784+called when a <CODE>-</CODE> operation is applied to non numerical operands.
785+Behavior similar to <CODE>"add"</CODE> event.
786+<P>
787+<DT><B>``mul'':</B><DD><A NAME="mul event"></A>
788+called when a <CODE>*</CODE> operation is applied to non numerical operands.
789+Behavior similar to <CODE>"add"</CODE> event.
790+<P>
791+<DT><B>``div'':</B><DD><A NAME="div event"></A>
792+called when a <CODE>/</CODE> operation is applied to non numerical operands.
793+Behavior similar to <CODE>"add"</CODE> event.
794+<P>
795+<DT><B>``pow'':</B><DD><A NAME="pow event"></A>
796+called when a <CODE>^</CODE> operation is applied.
797+<LISTING>
798+ function pow_event (op1, op2)
799+ local tm = getbinmethod(op1, op2, "pow")
800+ if tm then
801+ -- call the method with both operands and an extra
802+ -- argument with the event name
803+ return tm(op1, op2, "pow")
804+ else -- no tag method available: Default behavior
805+ error("unexpected type at arithmetic operation")
806+ end
807+ end
808+</LISTING>
809+<P>
810+<DT><B>``unm'':</B><DD><A NAME="unm event"></A>
811+called when an unary <CODE>-</CODE> operation is applied to a non numerical operand.
812+<LISTING>
813+ function unm_event (op)
814+ local o = tonumber(op)
815+ if o then -- operand is numeric
816+ return -o -- '-' here is the primitive 'unm'
817+ else -- the operand is not numeric.
818+ -- Try to get a tag method from the operand;
819+ -- if it does not have one, try a "global" one (tag 0)
820+ local tm = gettagmethod(tag(op), "unm") or
821+ gettagmethod(0, "unm")
822+ if tm then
823+ -- call the method with the operand, nil, and an extra
824+ -- argument with the event name
825+ return tm(op, nil, "unm")
826+ else -- no tag method available: Default behavior
827+ error("unexpected type at arithmetic operation")
828+ end
829+ end
830+ end
831+</LISTING>
832+<P>
833+<DT><B>``lt'':</B><DD><A NAME="lt event"></A>
834+called when a <CODE>&lt;</CODE> operation is applied to non numerical
835+or non string operands.
836+<LISTING>
837+ function lt_event (op1, op2)
838+ if type(op1) == "number" and type(op2) == "number" then
839+ return op1 &lt; op2 -- numeric comparison
840+ elseif type(op1) == "string" and type(op2) == "string" then
841+ return op1 &lt; op2 -- lexicographic comparison
842+ else
843+ local tm = getbinmethod(op1, op2, "lt")
844+ if tm then
845+ return tm(op1, op2, "lt")
846+ else
847+ error("unexpected type at comparison");
848+ end
849+ end
850+ end
851+</LISTING>
852+<P>
853+<DT><B>``gt'':</B><DD><A NAME="gt event"></A>
854+called when a <CODE>&gt;</CODE> operation is applied to non numerical
855+or non string operands.
856+Behavior similar to <CODE>"lt"</CODE> event.
857+<P>
858+<DT><B>``le'':</B><DD><A NAME="le event"></A>
859+called when a <CODE>&lt;=</CODE> operation is applied to non numerical
860+or non string operands.
861+Behavior similar to <CODE>"lt"</CODE> event.
862+<P>
863+<DT><B>``ge'':</B><DD><A NAME="ge event"></A>
864+called when a <CODE>&gt;=</CODE> operation is applied to non numerical
865+or non string operands.
866+Behavior similar to <CODE>"lt"</CODE> event.
867+<P>
868+<DT><B>``concat'':</B><DD><A NAME="concatenation event"></A>
869+called when a concatenation is applied to non string operands.
870+<LISTING>
871+ function concat_event (op1, op2)
872+ if (type(op1) == "string" or type(op1) == "number") and
873+ (type(op2) == "string" or type(op2) == "number") then
874+ return op1..op2 -- primitive string concatenation
875+ else
876+ local tm = getbinmethod(op1, op2, "concat")
877+ if tm then
878+ return tm(op1, op2, "concat")
879+ else
880+ error("unexpected type for concatenation")
881+ end
882+ end
883+ end
884+</LISTING>
885+<P>
886+<DT><B>``index'':</B><DD><A NAME="index event"></A>
887+called when Lua tries to retrieve the value of an index
888+not present in a table.
889+See event <CODE>"gettable"</CODE> for its semantics.
890+<P>
891+<DT><B>``getglobal'':</B><DD><A NAME="getglobal event"></A>
892+called whenever Lua accesses a global variable.
893+This method can only be set for <B>nil</B> and for tags
894+created by <CODE>newtag</CODE>.
895+<LISTING>
896+ function getglobal (varname)
897+ local value = rawgetglobal(varname)
898+ local tm = gettagmethod(tag(value), "getglobal")
899+ if not tm then
900+ return value
901+ else
902+ return tm(varname, value)
903+ end
904+ end
905+</LISTING>
906+Notice: the function <CODE>getglobal</CODE> is pre-defined in Lua (see Section&nbsp;<A HREF="#predefined">6.1</A>).
907+<P>
908+<DT><B>``setglobal'':</B><DD><A NAME="setglobal event"></A>
909+called whenever Lua assigns to a global variable.
910+This method cannot be set for numbers, strings, and tables and
911+userdata with default tags.
912+<LISTING>
913+ function setglobal (varname, newvalue)
914+ local oldvalue = rawgetglobal(varname)
915+ local tm = gettagmethod(tag(oldvalue), "setglobal")
916+ if not tm then
917+ return rawsetglobal(varname, newvalue)
918+ else
919+ return tm(varname, oldvalue, newvalue)
920+ end
921+ end
922+</LISTING>
923+Notice: the function <CODE>setglobal</CODE> is pre-defined in Lua (see Section&nbsp;<A HREF="#predefined">6.1</A>).
924+<P>
925+<DT><B>``gettable'':</B><DD><A NAME="gettable event"></A>
926+called whenever Lua accesses an indexed variable.
927+This method cannot be set for tables with default tag.
928+<LISTING>
929+ function gettable_event (table, index)
930+ local tm = gettagmethod(tag(table), "gettable")
931+ if tm then
932+ return tm(table, index)
933+ elseif type(table) ~= "table" then
934+ error("indexed expression not a table");
935+ else
936+ local v = rawgettable(table, index)
937+ tm = gettagmethod(tag(table), "index")
938+ if (v == nil) and tm then
939+ return tm(table, index)
940+ else
941+ return v
942+ end
943+ end
944+ end
945+</LISTING>
946+<P>
947+<DT><B>``settable'':</B><DD><A NAME="settable event"></A>
948+called when Lua assigns to an indexed variable.
949+This method cannot be set for tables with default tag.
950+<LISTING>
951+ function settable_event (table, index, value)
952+ local tm = gettagmethod(tag(table), "settable")
953+ if tm then
954+ tm(table, index, value)
955+ elseif type(table) ~= "table" then
956+ error("indexed expression not a table")
957+ else
958+ rawsettable(table, index, value)
959+ end
960+ end
961+</LISTING>
962+<P>
963+<DT><B>``function'':</B><DD><A NAME="function event"></A>
964+called when Lua tries to call a non function value.
965+<LISTING>
966+ function function_event (func, ...)
967+ if type(func) == "function" then
968+ return call(func, arg)
969+ else
970+ local tm = gettagmethod(tag(func), "function")
971+ if tm then
972+ local i = arg.n
973+ while i &gt; 0 do
974+ arg[i+1] = arg[i]
975+ i = i-1
976+ end
977+ arg.n = arg.n+1
978+ arg[1] = func
979+ return call(tm, arg)
980+ else
981+ error("call expression not a function")
982+ end
983+ end
984+ end
985+</LISTING>
986+<P>
987+<DT><B>``gc'':</B><DD><A NAME="gc event"></A>
988+called when Lua is garbage collecting an object.
989+This method cannot be set for strings, numbers, functions,
990+and userdata with default tag.
991+For each object to be collected,
992+Lua does the equivalent of the following function:
993+<LISTING>
994+ function gc_event (obj)
995+ local tm = gettagmethod(tag(obj), "gc")
996+ if tm then
997+ tm(obj)
998+ end
999+ end
1000+</LISTING>
1001+Moreover, at the end of a garbage collection cycle,
1002+Lua does the equivalent of the call <CODE>gc_event(nil)</CODE>.
1003+<P>
1004+</DL>
1005+<P>
1006+<P>
1007+<P>
1008+<A NAME="error"></A>
1009+<A NAME="4.9"></A>
1010+<H2>4.9 - Error Handling</H2>
1011+<P>
1012+Because Lua is an extension language,
1013+all Lua actions start from C code calling a function from the Lua library.
1014+Whenever an error occurs during Lua compilation or execution,
1015+the <A NAME="error method"><EM>error method</EM></A> is called,
1016+and then the corresponding function from the library
1017+(<CODE>lua_dofile</CODE>, <CODE>lua_dostring</CODE>, or <CODE>lua_callfunction</CODE>)
1018+is terminated returning an error condition.
1019+<P>
1020+The only argument to the error method is a string
1021+describing the error.
1022+The default method prints this message in <CODE>stderr</CODE>.
1023+If needed, it is possible to change the error method with the
1024+function <CODE>seterrormethod</CODE>,
1025+which gets the new error handler as its only parameter
1026+(see Section&nbsp;<A HREF="#pdf-seterrormethod">6.1</A>).
1027+The standard I/O library uses this facility to redefine the error method,
1028+using the debug facilities (see Section&nbsp;<A HREF="#debugI">7</A>),
1029+in order to print some extra information,
1030+like the call stack.
1031+<P>
1032+To provide more information about errors,
1033+Lua programs should include the compilation pragma <CODE>$debug</CODE>.
1034+<A NAME="pragma"></A>
1035+<A NAME="debug pragma"></A>
1036+When an error occurs in a program compiled with this option,
1037+the I/O error routine is able to print the number of the
1038+lines where the calls (and the error) were made.
1039+<P>
1040+Lua code can explicitly generate an error by calling the built-in
1041+function <CODE>error</CODE> (see Section&nbsp;<A HREF="#pdf-error">6.1</A>).
1042+<P>
1043+<P>
1044+<!-- ====================================================================== -->
1045+<HR>
1046+<A NAME="5."></A>
1047+<H1>5 - The Application Program Interface</H1>
1048+<P>
1049+This section describes the API for Lua, that is,
1050+the set of C functions available to the host program to communicate
1051+with the Lua library.
1052+The API functions can be classified in the following categories:
1053+<OL>
1054+<LI>exchanging values between C and Lua;
1055+<LI>executing Lua code;
1056+<LI>manipulating (reading and writing) Lua objects;
1057+<LI>calling Lua functions;
1058+<LI>C functions to be called by Lua;
1059+<LI>manipulating references to Lua Objects.
1060+</OL>
1061+All API functions and related types and constants
1062+are declared in the header file <CODE>lua.h</CODE>.
1063+<P>
1064+<A NAME="valuesCLua"></A>
1065+<A NAME="5.1"></A>
1066+<H2>5.1 - Exchanging Values between C and Lua</H2>
1067+Because Lua has no static type system,
1068+all values passed between Lua and C have type
1069+<CODE>lua_Object</CODE><A NAME="lua_Object"></A>,
1070+which works like an abstract type in C that can hold any Lua value.
1071+Values of type <CODE>lua_Object</CODE> have no meaning outside Lua;
1072+for instance,
1073+the comparison of two <CODE>lua_Object's</CODE> is undefined.
1074+<P>
1075+To check the type of a <CODE>lua_Object</CODE>,
1076+the following functions are available:
1077+<A NAME="lua_isnil"></A><A NAME="lua_isnumber"></A><A NAME="lua_isstring"></A>
1078+<A NAME="lua_istable"></A><A NAME="lua_iscfunction"></A><A NAME="lua_isuserdata"></A>
1079+<A NAME="lua_isfunction"></A>
1080+<LISTING>
1081+int lua_isnil (lua_Object object);
1082+int lua_isnumber (lua_Object object);
1083+int lua_isstring (lua_Object object);
1084+int lua_istable (lua_Object object);
1085+int lua_isfunction (lua_Object object);
1086+int lua_iscfunction (lua_Object object);
1087+int lua_isuserdata (lua_Object object);
1088+</LISTING>
1089+All macros return 1 if the object is compatible with the given type,
1090+and 0 otherwise.
1091+The function <CODE>lua_isnumber</CODE> accepts numbers and numerical strings,
1092+whereas
1093+<CODE>lua_isstring</CODE> accepts strings and numbers (see Section&nbsp;<A HREF="#coercion">4.3</A>),
1094+and <CODE>lua_isfunction</CODE> accepts Lua and C functions.
1095+<P>
1096+To check the tag of a <CODE>lua_Object</CODE>,
1097+the following function is available:
1098+<A NAME="lua_tag"></A>
1099+<LISTING>
1100+int lua_tag (lua_Object object);
1101+</LISTING>
1102+<P>
1103+To translate a value from type <CODE>lua_Object</CODE> to a specific C type,
1104+the programmer can use:
1105+<A NAME="lua_getnumber"></A><A NAME="lua_getstring"></A>
1106+<A NAME="lua_getcfunction"></A><A NAME="lua_getuserdata"></A>
1107+<LISTING>
1108+float lua_getnumber (lua_Object object);
1109+char *lua_getstring (lua_Object object);
1110+lua_CFunction lua_getcfunction (lua_Object object);
1111+void *lua_getuserdata (lua_Object object);
1112+</LISTING>
1113+<P>
1114+<CODE>lua_getnumber</CODE> converts a <CODE>lua_Object</CODE> to a floating-point number.
1115+This <CODE>lua_Object</CODE> must be a number or a string convertible to number
1116+(see Section&nbsp;<A HREF="#coercion">4.3</A>); otherwise, the function returns&nbsp;0.
1117+<P>
1118+<CODE>lua_getstring</CODE> converts a <CODE>lua_Object</CODE> to a string (<CODE>char*</CODE>).
1119+This <CODE>lua_Object</CODE> must be a string or a number;
1120+otherwise, the function returns&nbsp;0 (the <CODE>NULL</CODE> pointer).
1121+This function does not create a new string,
1122+but returns a pointer to a string inside the Lua environment.
1123+Because Lua has garbage collection,
1124+there is no guarantee that such pointer will be valid after the block ends
1125+(see below).
1126+<P>
1127+<CODE>lua_getcfunction</CODE> converts a <CODE>lua_Object</CODE> to a C function.
1128+This <CODE>lua_Object</CODE> must have type <EM>CFunction</EM>;
1129+otherwise, the function returns 0 (the <CODE>NULL</CODE> pointer).
1130+The type <CODE>lua_CFunction</CODE> is explained in Section&nbsp;<A HREF="#LuacallC">5.5</A>.
1131+<P>
1132+<CODE>lua_getuserdata</CODE> converts a <CODE>lua_Object</CODE> to <CODE>void*</CODE>.
1133+This <CODE>lua_Object</CODE> must have type <EM>userdata</EM>;
1134+otherwise, the function returns 0 (the <CODE>NULL</CODE> pointer).
1135+<P>
1136+Because Lua has automatic memory management and garbage collection,
1137+a <CODE>lua_Object</CODE> has a limited scope,
1138+and is only valid inside the <EM>block</EM> where it was created.
1139+A C function called from Lua is a block,
1140+and its parameters are valid only until its end.
1141+It is good programming practice to convert Lua objects to C values
1142+as soon as they are available,
1143+and never to store <CODE>lua_Object</CODE>s in C global variables.
1144+<P>
1145+A garbage collection cycle can be forced by:
1146+<A NAME="lua_collectgarbage"></A>
1147+<LISTING>
1148+long lua_collectgarbage (long limit);
1149+</LISTING>
1150+This function returns the number of objects collected.
1151+The argument <CODE>limit</CODE> makes the next cycle occur only
1152+when that number of new objects have been created.
1153+If <CODE>limit</CODE>=0, then Lua uses an adaptable heuristics to set this limit.
1154+<P>
1155+<P>
1156+All communication between Lua and C is done through two
1157+abstract data types, called <A NAME="lua2C"><EM>lua2C</EM></A> and <A NAME="C2lua"><EM>C2lua</EM></A>.
1158+The first one, as the name implies, is used to pass values
1159+from Lua to C: parameters when Lua calls C and results when C calls Lua.
1160+The structure C2lua is used in the reverse direction:
1161+parameters when C calls Lua and results when Lua calls C.
1162+<P>
1163+The structure lua2C is an abstract array,
1164+which can be indexed with the function:
1165+<A NAME="lua_lua2C"></A>
1166+<LISTING>
1167+lua_Object lua_lua2C (int number);
1168+</LISTING>
1169+where <CODE>number</CODE> starts with 1.
1170+When called with a number larger than the array size,
1171+this function returns <CODE>LUA_NOOBJECT</CODE><A NAME="LUA_NOOBJECT"></A>.
1172+In this way, it is possible to write C functions that receive
1173+a variable number of parameters,
1174+and to call Lua functions that return a variable number of results.
1175+Notice that the structure lua2C cannot be directly modified by C code.
1176+<P>
1177+The second structure, C2lua, is a stack.
1178+Pushing elements into this stack
1179+is done with the following functions:
1180+<A NAME="lua_pushnumber"></A><A NAME="lua_pushstring"></A>
1181+<A NAME="lua_pushcfunction"></A><A NAME="lua_pushusertag"></A>
1182+<A NAME="lua_pushnil"></A><A NAME="lua_pushobject"></A>
1183+<A NAME="pushing"></A>
1184+<A NAME="lua_pushuserdata"></A>
1185+<LISTING>
1186+void lua_pushnumber (double n);
1187+void lua_pushstring (char *s);
1188+void lua_pushcfunction (lua_CFunction f);
1189+void lua_pushusertag (void *u, int tag);
1190+void lua_pushnil (void);
1191+void lua_pushobject (lua_Object object);
1192+</LISTING>
1193+All of them receive a C value,
1194+convert it to a corresponding <CODE>lua_Object</CODE>,
1195+and leave the result on the top of C2lua.
1196+The function
1197+<A NAME="lua_pop"></A>
1198+<LISTING>
1199+lua_Object lua_pop (void);
1200+</LISTING>
1201+returns a reference to the object at the top of the C2lua stack,
1202+and pops it.
1203+<P>
1204+As a general rule, all API functions pop from the stack
1205+all elements that they use.
1206+<P>
1207+Because userdata are objects,
1208+the function <CODE>lua_pushusertag</CODE> may create a new userdata.
1209+If Lua has a userdata with the given value (<CODE>void*</CODE>) and tag,
1210+that userdata is pushed.
1211+Otherwise, a new userdata is created, with the given value and tag.
1212+If this function is called with
1213+<CODE>tag</CODE>=<CODE>LUA_ANYTAG</CODE><A NAME="LUA_ANYTAG"></A>,
1214+then Lua will try to find any userdata with the given value,
1215+no matter its tag.
1216+If there is no userdata with that value, then a new one is created,
1217+with tag=0.
1218+<P>
1219+Userdata can have different tags,
1220+whose semantics are only known to the host program.
1221+Tags are created with the function:
1222+<A NAME="lua_newtag"></A>
1223+<LISTING>
1224+int lua_newtag (void);
1225+</LISTING>
1226+The function <CODE>lua_settag</CODE> changes the tag of
1227+the object on the top of C2lua (and pops it);
1228+the object must be a userdata or a table.
1229+<A NAME="lua_settag"></A>
1230+<LISTING>
1231+void lua_settag (int tag);
1232+</LISTING>
1233+<CODE>tag</CODE> must be a value created with <CODE>lua_newtag</CODE>.
1234+<P>
1235+When C code calls Lua repeatedly, as in a loop,
1236+objects returned by these calls can accumulate,
1237+and may cause a stack overflow.
1238+To avoid this,
1239+nested blocks can be defined with the functions:
1240+<LISTING>
1241+void lua_beginblock (void);
1242+void lua_endblock (void);
1243+</LISTING>
1244+After the end of the block,
1245+all <CODE>lua_Object</CODE>'s created inside it are released.
1246+The use of explicit nested blocks is strongly encouraged.
1247+<P>
1248+<A NAME="5.2"></A>
1249+<H2>5.2 - Executing Lua Code</H2>
1250+A host program can execute Lua chunks written in a file or in a string
1251+using the following functions:
1252+<A NAME="lua_dofile"></A><A NAME="lua_dostring"></A>
1253+<LISTING>
1254+int lua_dofile (char *filename);
1255+int lua_dostring (char *string);
1256+</LISTING>
1257+Both functions return an error code:
1258+0, in case of success; non zero, in case of errors.
1259+More specifically, <CODE>lua_dofile</CODE> returns 2 if for any reason
1260+it could not open the file.
1261+The function <CODE>lua_dofile</CODE>, if called with argument <CODE>NULL</CODE>,
1262+executes the <CODE>stdin</CODE> stream.
1263+Function <CODE>lua_dofile</CODE> is also able to execute pre-compiled chunks.
1264+It automatically detects whether the file is text or binary,
1265+and loads it accordingly (see program <A NAME="luac"><TT>luac</TT></A>).
1266+<P>
1267+These functions return, in structure lua2C,
1268+any values eventually returned by the chunks.
1269+They also empty the stack C2lua.
1270+<P>
1271+<P>
1272+<A NAME="5.3"></A>
1273+<H2>5.3 - Manipulating Lua Objects</H2>
1274+To read the value of any global Lua variable,
1275+one uses the function:
1276+<A NAME="lua_getglobal"></A>
1277+<LISTING>
1278+lua_Object lua_getglobal (char *varname);
1279+</LISTING>
1280+As in Lua, this function may trigger a tag method.
1281+To read the real value of any global variable,
1282+without invoking any tag method,
1283+this function has a <EM>raw</EM> version:
1284+<A NAME="lua_rawgetglobal"></A>
1285+<LISTING>
1286+lua_Object lua_rawgetglobal (char *varname);
1287+</LISTING>
1288+<P>
1289+To store a value previously pushed onto C2lua in a global variable,
1290+there is the function:
1291+<A NAME="lua_setglobal"></A>
1292+<LISTING>
1293+void lua_setglobal (char *varname);
1294+</LISTING>
1295+As in Lua, this function may trigger a tag method.
1296+To set the real value of any global variable,
1297+without invoking any tag method,
1298+this function has a <EM>raw</EM> version:
1299+<A NAME="lua_rawgetglobal"></A>
1300+<LISTING>
1301+void lua_rawsetglobal (char *varname);
1302+</LISTING>
1303+<P>
1304+Tables can also be manipulated via the API.
1305+The function
1306+<A NAME="lua_gettable"></A>
1307+<LISTING>
1308+lua_Object lua_gettable (void);
1309+</LISTING>
1310+pops from the stack C2lua a table and an index,
1311+and returns the contents of the table at that index.
1312+As in Lua, this operation may trigger a tag method.
1313+To get the real value of any table index,
1314+without invoking any tag method,
1315+this function has a <EM>raw</EM> version:
1316+<A NAME="lua_rawgetglobal"></A>
1317+<LISTING>
1318+lua_Object lua_rawgettable (void);
1319+</LISTING>
1320+<P>
1321+To store a value in an index,
1322+the program must push the table, the index,
1323+and the value onto C2lua,
1324+and then call the function:
1325+<A NAME="lua_settable"></A>
1326+<LISTING>
1327+void lua_settable (void);
1328+</LISTING>
1329+Again, the tag method for ``settable'' may be called.
1330+To set the real value of any table index,
1331+without invoking any tag method,
1332+this function has a <EM>raw</EM> version:
1333+<A NAME="lua_rawsettable"></A>
1334+<LISTING>
1335+void lua_rawsettable (void);
1336+</LISTING>
1337+<P>
1338+Finally, the function
1339+<A NAME="lua_createtable"></A>
1340+<LISTING>
1341+lua_Object lua_createtable (void);
1342+</LISTING>
1343+creates and returns a new, empty table.
1344+<P>
1345+<P>
1346+<A NAME="5.4"></A>
1347+<H2>5.4 - Calling Lua Functions</H2>
1348+Functions defined in Lua by a chunk executed with
1349+<CODE>dofile</CODE> or <CODE>dostring</CODE> can be called from the host program.
1350+This is done using the following protocol:
1351+first, the arguments to the function are pushed onto C2lua
1352+(see Section&nbsp;<A HREF="#pushing">5.1</A>), in direct order, i.e., the first argument is pushed first.
1353+<P>
1354+Then, the function is called using
1355+<A NAME="lua_callfunction"></A>
1356+<LISTING>
1357+int lua_callfunction (lua_Object function);
1358+</LISTING>
1359+This function returns an error code:
1360+0, in case of success; non zero, in case of errors.
1361+Finally, the results (a Lua function may return many values)
1362+are returned in structure lua2C,
1363+and can be retrieved with the macro <CODE>lua_getresult</CODE>,
1364+<A NAME="lua_getresult"></A>
1365+which is just another name to the function <CODE>lua_lua2C</CODE>.
1366+Notice that the function <CODE>lua_callfunction</CODE>
1367+pops all elements from the C2lua stack.
1368+<P>
1369+The following example shows how a C program may do the
1370+equivalent to the Lua code:
1371+<LISTING>
1372+ a = f("how", t.x, 4)
1373+</LISTING>
1374+<LISTING>
1375+ lua_pushstring("how"); /* 1st argument */
1376+ lua_pushobject(lua_getglobal("t")); /* push value of global 't' */
1377+ lua_pushstring("x"); /* push the string 'x' */
1378+ lua_pushobject(lua_gettable()); /* push result of t.x (= t['x']) */
1379+ lua_pushnumber(4); /* 3th argument */
1380+ lua_callfunction(lua_getglobal("f")); /* call Lua function */
1381+ lua_pushobject(lua_getresult(1)); /* push first result of the call */
1382+ lua_setglobal("a"); /* sets global variable 'a' */
1383+</LISTING>
1384+<P>
1385+Some special Lua functions have exclusive interfaces.
1386+A C function can generate a Lua error calling the function
1387+<A NAME="lua_error"></A>
1388+<LISTING>
1389+void lua_error (char *message);
1390+</LISTING>
1391+This function never returns.
1392+If the C function has been called from Lua,
1393+then the corresponding Lua execution terminates,
1394+as if an error had occurred inside Lua code.
1395+Otherwise, the whole program terminates with a call to <CODE>exit(1)</CODE>.
1396+<P>
1397+The error handler method (see Section&nbsp;<A HREF="#error">4.9</A>) can be changed with:
1398+<A NAME="lua_seterrormethod"></A>
1399+<LISTING>
1400+lua_Object lua_seterrormethod (void);
1401+</LISTING>
1402+This function sets the object at the top of C2lua
1403+as the new error method,
1404+and returns the old error method value.
1405+<P>
1406+Tag methods can be changed with:
1407+<A NAME="lua_settagmethod"></A>
1408+<LISTING>
1409+lua_Object lua_settagmethod (int tag, char *event);
1410+</LISTING>
1411+The first parameter is the tag,
1412+the second is the event name (see Section&nbsp;<A HREF="#tag-method">4.8</A>);
1413+the new method is pushed from C2lua.
1414+This function returns a <CODE>lua_Object</CODE>,
1415+which is the old tag method value.
1416+To get just the current value of a tag method,
1417+there is the function
1418+<A NAME="lua_gettagmethod"></A>
1419+<LISTING>
1420+lua_Object lua_gettagmethod (int tag, char *event);
1421+</LISTING>
1422+<P>
1423+<P>
1424+<A NAME="LuacallC"></A>
1425+<A NAME="5.5"></A>
1426+<H2>5.5 - C Functions</H2>
1427+To register a C function to Lua,
1428+there is the following macro:
1429+<A NAME="lua_register"></A>
1430+<LISTING>
1431+#define lua_register(n,f) (lua_pushcfunction(f), lua_setglobal(n))
1432+/* char *n; */
1433+/* lua_CFunction f; */
1434+</LISTING>
1435+which receives the name the function will have in Lua,
1436+and a pointer to the function.
1437+This pointer must have type <CODE>lua_CFunction</CODE>,
1438+which is defined as
1439+<A NAME="lua_CFunction"></A>
1440+<LISTING>
1441+typedef void (*lua_CFunction) (void);
1442+</LISTING>
1443+that is, a pointer to a function with no parameters and no results.
1444+<P>
1445+In order to communicate properly with Lua,
1446+a C function must follow a protocol,
1447+which defines the way parameters and results are passed.
1448+<P>
1449+A C function receives its arguments in structure lua2C;
1450+to access them, it uses the macro <CODE>lua_getparam</CODE>, <A NAME="lua_getparam"></A>
1451+again just another name to <CODE>lua_lua2C</CODE>.
1452+To return values, a C function just pushes them onto the stack C2lua,
1453+in direct order (see Section&nbsp;<A HREF="#valuesCLua">5.1</A>).
1454+Like a Lua function, a C function called by Lua can also return
1455+many results.
1456+<P>
1457+For some examples, see files <CODE>strlib.c</CODE>,
1458+<CODE>iolib.c</CODE> and <CODE>mathlib.c</CODE> in Lua distribution.
1459+<P>
1460+<A NAME="5.6"></A>
1461+<H2>5.6 - References to Lua Objects</H2>
1462+<P>
1463+As noted in Section&nbsp;<A HREF="#LuacallC">5.5</A>, <CODE>lua_Object</CODE>s are volatile.
1464+If the C code needs to keep a <CODE>lua_Object</CODE>
1465+outside block boundaries,
1466+then it must create a <A NAME="reference"><EM>reference</EM></A> to the object.
1467+The routines to manipulate references are the following:
1468+<A NAME="lua_ref"></A><A NAME="lua_getref"></A>
1469+<A NAME="lua_unref"></A>
1470+<LISTING>
1471+int lua_ref (int lock);
1472+lua_Object lua_getref (int ref);
1473+void lua_unref (int ref);
1474+</LISTING>
1475+The function <CODE>lua_ref</CODE> creates a reference
1476+to the object that is on the top of the stack,
1477+and returns this reference.
1478+If <CODE>lock</CODE> is true, the object is <EM>locked</EM>:
1479+this means the object will not be garbage collected.
1480+Notice that an unlocked reference may be garbage collected.
1481+Whenever the referenced object is needed,
1482+a call to <CODE>lua_getref</CODE>
1483+returns a handle to it;
1484+if the object has been collected,
1485+<CODE>lua_getref</CODE> returns <CODE>LUA_NOOBJECT</CODE>.
1486+<P>
1487+When a reference is no longer needed,
1488+it can be freed with a call to <CODE>lua_unref</CODE>.
1489+<P>
1490+<P>
1491+<P>
1492+<!-- ====================================================================== -->
1493+<HR>
1494+<A NAME="6."></A>
1495+<H1>6 - Predefined Functions and Libraries</H1>
1496+<P>
1497+The set of <A NAME="predefined functions">predefined functions</A> in Lua is small but powerful.
1498+Most of them provide features that allow some degree of
1499+<A NAME="reflexivity">reflexivity</A> in the language.
1500+Some of these features cannot be simulated with the rest of the
1501+language nor with the standard Lua API.
1502+Others are just convenient interfaces to common API functions.
1503+<P>
1504+The libraries, on the other hand, provide useful routines
1505+that are implemented directly through the standard API.
1506+Therefore, they are not necessary to the language,
1507+and are provided as separate C modules.
1508+Currently there are three standard libraries:
1509+<UL>
1510+<LI>string manipulation;
1511+<LI>mathematical functions (sin, log, etc);
1512+<LI>input and output (plus some system facilities).
1513+</UL>
1514+In order to have access to these libraries,
1515+the host program must call the functions
1516+<CODE>strlib_open</CODE>, <CODE>mathlib_open</CODE>, and <CODE>iolib_open</CODE>,
1517+declared in <CODE>lualib.h</CODE>.
1518+<P>
1519+<P>
1520+<A NAME="predefined"></A>
1521+<A NAME="6.1"></A>
1522+<H2>6.1 - Predefined Functions</H2>
1523+<P>
1524+<h3> <TT>call (func, arg, [retmode])</TT></h3><A NAME="call"></A>
1525+This function calls function <CODE>func</CODE> with
1526+the arguments given by the table <CODE>arg</CODE>.
1527+The call is equivalent to
1528+<LISTING>
1529+ func(arg[1], arg[2], ..., arg[arg.n])
1530+</LISTING>
1531+If <CODE>arg.n</CODE> is not defined,
1532+then Lua stops getting arguments at the first nil value.
1533+<P>
1534+If <CODE>retmode</CODE> is absent,
1535+all results from <CODE>func</CODE> are just returned by the call.
1536+If <CODE>retmode</CODE> is equal to <CODE>"pack"</CODE>,
1537+the results are <EM>packed</EM> in a single table.<A NAME="packed results"></A>
1538+That is, <CODE>call</CODE> returns just one table;
1539+at index <CODE>n</CODE>, the table has the total number of results
1540+from the call;
1541+the first result is at index 1, etc.
1542+For instance, the following calls produce the following results:
1543+<LISTING>
1544+a = call(sin, {5}) --&gt; a = 0.0871557 = sin(5)
1545+a = call(max, {1,4,5; n=2}) --&gt; a = 4 (only 1 and 4 are arguments)
1546+t = {x=1}
1547+a = call(next, {t,nil;n=2}, "pack") --&gt; a={"x", 1; n=2}
1548+</LISTING>
1549+<P>
1550+<h3> <TT>collectgarbage ([limit])</TT></h3><A NAME="collectgarbage"></A>
1551+Forces a garbage collection cycle.
1552+Returns the number of objects collected.
1553+An optional argument, <CODE>limit</CODE>, is a number that
1554+makes the next cycle occur when that number of new
1555+objects have been created.
1556+If absent, Lua uses an adaptable algorithm to set
1557+this limit.
1558+<CODE>collectgarbage</CODE> is equivalent to
1559+the API function <CODE>lua_collectgarbage</CODE>.
1560+<P>
1561+<h3> <TT>dofile (filename)</TT></h3><A NAME="dofile"></A>
1562+This function receives a file name,
1563+opens it, and executes its contents as a Lua chunk,
1564+or as pre-compiled chunks.
1565+When called without arguments,
1566+it executes the contents of the standard input (<CODE>stdin</CODE>).
1567+If there is any error executing the file,
1568+then <CODE>dofile</CODE> returns <B>nil</B>.
1569+Otherwise, it returns the values returned by the chunk,
1570+or a non <B>nil</B> value if the chunk returns no values.
1571+It issues an error when called with a non string argument.
1572+<CODE>dofile</CODE> is equivalent to the API function <CODE>lua_dofile</CODE>.
1573+<P>
1574+<h3> <TT>dostring (string [, errmethod])</TT></h3><A NAME="dostring"></A>
1575+This function executes a given string as a Lua chunk.
1576+If there is any error executing the string, it returns <B>nil</B>.
1577+Otherwise, it returns the values returned by the chunk,
1578+or a non <B>nil</B> value if the chunk returns no values.
1579+If provided, <CODE>errmethod</CODE> is temporarily set as the error method,
1580+while <CODE>string</CODE> runs.
1581+As a particular case, if <CODE>errmethod</CODE> is <B>nil</B>,
1582+no error messages will be issued during the execution of the string.
1583+<P>
1584+<A NAME="pdf-newtag"></A>
1585+<h3> <TT>newtag ()</TT></h3><A NAME="newtag"></A>
1586+Returns a new tag.
1587+<CODE>newtag</CODE> is equivalent to the API function <CODE>lua_newtag</CODE>.
1588+<P>
1589+<h3> <TT>next (table, index)</TT></h3><A NAME="next"></A>
1590+This function allows a program to traverse all fields of a table.
1591+Its first argument is a table and its second argument
1592+is an index in this table.
1593+It returns the next index of the table and the
1594+value associated with the index.
1595+When called with <B>nil</B> as its second argument,
1596+the function returns the first index
1597+of the table (and its associated value).
1598+When called with the last index, or with <B>nil</B> in an empty table,
1599+it returns <B>nil</B>.
1600+<P>
1601+In Lua there is no declaration of fields;
1602+semantically, there is no difference between a
1603+field not present in a table or a field with value <B>nil</B>.
1604+Therefore, the function only considers fields with non <B>nil</B> values.
1605+The order in which the indices are enumerated is not specified,
1606+<EM>not even for numeric indices</EM>
1607+(to traverse a table in numeric order,
1608+use a counter).
1609+If the table is modified in any way during a traversal,
1610+the semantics of <CODE>next</CODE> is undefined.
1611+<P>
1612+This function cannot be written with the standard API.
1613+<P>
1614+<h3> <TT>nextvar (name)</TT></h3><A NAME="nextvar"></A>
1615+This function is similar to the function <CODE>next</CODE>,
1616+but iterates over the global variables.
1617+Its single argument is the name of a global variable,
1618+or <B>nil</B> to get a first name.
1619+Similarly to <CODE>next</CODE>, it returns the name of another variable
1620+and its value,
1621+or <B>nil</B> if there are no more variables.
1622+There can be no assignments to global variables during the traversal;
1623+otherwise the semantics of <CODE>nextvar</CODE> is undefined.
1624+<P>
1625+This function cannot be written with the standard API.
1626+<P>
1627+<h3> <TT>tostring (e)</TT></h3><A NAME="tostring"></A>
1628+This function receives an argument of any type and
1629+converts it to a string in a reasonable format.
1630+<P>
1631+<h3> <TT>print (e1, e2, ...)</TT></h3><A NAME="print"></A>
1632+This function receives any number of arguments,
1633+and prints their values in a reasonable format.
1634+Each value is printed in a new line.
1635+This function is not intended for formatted output,
1636+but as a quick way to show a value,
1637+for instance for error messages or debugging.
1638+See Section&nbsp;<A HREF="#libio">6.4</A> for functions for formatted output.
1639+<P>
1640+<h3> <TT>tonumber (e)</TT></h3><A NAME="tonumber"></A>
1641+This function receives one argument,
1642+and tries to convert it to a number.
1643+If the argument is already a number or a string convertible
1644+to a number (see Section&nbsp;<A HREF="#coercion">4.3</A>), then it returns that number;
1645+otherwise, it returns <B>nil</B>.
1646+<P>
1647+<A NAME="pdf-type"></A>
1648+<h3> <TT>type (v)</TT></h3><A NAME="type"></A>
1649+This function allows Lua to test the type of a value.
1650+It receives one argument, and returns its type, coded as a string.
1651+The possible results of this function are
1652+<CODE>"nil"</CODE> (a string, not the value <B>nil</B>),
1653+<CODE>"number"</CODE>,
1654+<CODE>"string"</CODE>,
1655+<CODE>"table"</CODE>,
1656+<CODE>"function"</CODE>,
1657+and <CODE>"userdata"</CODE>.
1658+<CODE>type</CODE> is equivalent to the API function <CODE>lua_type</CODE>.
1659+<P>
1660+<h3> <TT>tag (v)</TT></h3><A NAME="tag"></A>
1661+This function allows Lua to test the tag of a value (see Section&nbsp;<A HREF="#TypesSec">3</A>).
1662+It receives one argument, and returns its tag (a number).
1663+<CODE>tag</CODE> is equivalent to the API function <CODE>lua_tag</CODE>.
1664+<P>
1665+<h3> <TT>settag (t, tag)</TT></h3><A NAME="settag"></A>
1666+This function sets the tag of a given table (see Section&nbsp;<A HREF="#TypesSec">3</A>).
1667+<CODE>tag</CODE> must be a value created with <CODE>newtag</CODE>
1668+(see Section&nbsp;<A HREF="#pdf-newtag">6.1</A>).
1669+For security reasons,
1670+it is impossible to change the tag of a userdata from Lua.
1671+<P>
1672+<h3> <TT>assert (v)</TT></h3><A NAME="assert"></A>
1673+This function issues an <EM>``assertion failed!''</EM> error
1674+when its argument is <B>nil</B>.
1675+<P>
1676+<A NAME="pdf-error"></A>
1677+<h3> <TT>error (message)</TT></h3><A NAME="error"></A>
1678+This function issues an error message and terminates
1679+the last called function from the library
1680+(<CODE>lua_dofile</CODE>, <CODE>lua_dostring</CODE>, or <CODE>lua_callfunction</CODE>).
1681+It never returns.
1682+<CODE>error</CODE> is equivalent to the API function <CODE>lua_error</CODE>.
1683+<P>
1684+<h3> <TT>rawgettable (table, index)</TT></h3><A NAME="rawgettable"></A>
1685+Gets the real value of <CODE>table[index]</CODE>,
1686+without invoking any tag method.
1687+<CODE>table</CODE> must be a table,
1688+and <CODE>index</CODE> is any value different from <B>nil</B>.
1689+<P>
1690+<h3> <TT>rawsettable (table, index, value)</TT></h3><A NAME="rawsettable"></A>
1691+Sets the real value <CODE>table[index]=value</CODE>,
1692+without invoking any tag method.
1693+<CODE>table</CODE> must be a table,
1694+<CODE>index</CODE> is any value different from <B>nil</B>,
1695+and <CODE>value</CODE> is any Lua value.
1696+<P>
1697+<h3> <TT>rawsetglobal (name, value)</TT></h3><A NAME="rawsetglobal"></A>
1698+This function assigns the given value to a global variable.
1699+The string <CODE>name</CODE> does not need to be a syntactically valid variable name.
1700+Therefore, this function can set global variables with strange names like
1701+<CODE>"m v 1"</CODE> or <CODE>34</CODE>.
1702+It returns the value of its second argument.
1703+<P>
1704+<h3> <TT>setglobal (name, value)</TT></h3><A NAME="setglobal"></A>
1705+This function assigns the given value to a global variable,
1706+or calls a tag method.
1707+Its full semantics is explained in Section&nbsp;<A HREF="#tag-method">4.8</A>.
1708+<P>
1709+<h3> <TT>rawgetglobal (name)</TT></h3><A NAME="rawgetglobal"></A>
1710+This function retrieves the value of a global variable.
1711+The string <CODE>name</CODE> does not need to be a
1712+syntactically valid variable name.
1713+<P>
1714+<h3> <TT>getglobal (name)</TT></h3><A NAME="getglobal"></A>
1715+This function retrieves the value of a global variable,
1716+or calls a tag method.
1717+Its full semantics is explained in Section&nbsp;<A HREF="#tag-method">4.8</A>.
1718+<P>
1719+<h3> <TT>seterrormethod (newmethod)</TT></h3>
1720+<A NAME="pdf-seterrormethod"></A>
1721+
1722+Sets the error handler (see Section&nbsp;<A HREF="#error">4.9</A>).
1723+<CODE>newmethod</CODE> must be a function or <B>nil</B>,
1724+in which case the error handler does nothing.
1725+Returns the old error handler.
1726+<P>
1727+<h3> <TT>settagmethod (tag, event, newmethod)</TT></h3>
1728+<A NAME="settagmethod"></A>
1729+This function sets a new tag method to the given pair <EM>&lt;tag, event&gt;</EM>.
1730+It returns the old method.
1731+If <CODE>newmethod</CODE> is <B>nil</B>,
1732+it restores the default behavior for the given event.
1733+<P>
1734+<h3> <TT>gettagmethod (tag, event)</TT></h3>
1735+<A NAME="gettagmethod"></A>
1736+This function returns the current tag method
1737+for a given pair <EM>&lt;tag, event&gt;</EM>.
1738+<P>
1739+<P>
1740+<A NAME="6.2"></A>
1741+<H2>6.2 - String Manipulation</H2>
1742+This library provides generic functions for string manipulation,
1743+such as finding and extracting substrings and pattern matching.
1744+When indexing a string, the first character is at position&nbsp;1,
1745+not&nbsp;0, as in C.
1746+<P>
1747+<h3> <TT>strfind (str, pattern [, init [, plain]])</TT></h3>
1748+<A NAME="strfind"></A>
1749+This function looks for the first <EM>match</EM> of
1750+<CODE>pattern</CODE> in <CODE>str</CODE>.
1751+If it finds one, then it returns the indices on <CODE>str</CODE>
1752+where this occurrence starts and ends;
1753+otherwise, it returns <B>nil</B>.
1754+If the pattern specifies captures,
1755+the captured strings are returned as extra results.
1756+A third optional numerical argument specifies where to start the search;
1757+its default value is 1.
1758+A value of 1 as a fourth optional argument
1759+turns off the pattern matching facilities,
1760+so the function does a plain ``find substring'' operation,
1761+with no characters in <CODE>pattern</CODE> being considered ``magic''.
1762+<P>
1763+<h3> <TT>strlen (s)</TT></h3><A NAME="strlen"></A>
1764+Receives a string and returns its length.
1765+<P>
1766+<h3> <TT>strsub (s, i [, j])</TT></h3><A NAME="strsub"></A>
1767+Returns another string, which is a substring of <CODE>s</CODE>,
1768+starting at <CODE>i</CODE> and running until <CODE>j</CODE>.
1769+If <CODE>i</CODE> or <CODE>j</CODE> are negative,
1770+they are replaced by the length of the string minus their
1771+absolute value plus 1.
1772+Therefore, -1 points to the last character of <CODE>s</CODE>
1773+and -2 to the previous one.
1774+If <CODE>j</CODE> is absent, it is assumed to be equal to -1
1775+(which is the same as the string length).
1776+In particular,
1777+the call <CODE>strsub(s,1,j)</CODE> returns a prefix of <CODE>s</CODE>
1778+with length <CODE>j</CODE>,
1779+and the call <CODE>strsub(s, -i)</CODE> returns a suffix of <CODE>s</CODE>
1780+with length <CODE>i</CODE>.
1781+<P>
1782+<h3> <TT>strlower (s)</TT></h3><A NAME="strlower"></A>
1783+Receives a string and returns a copy of that string with all
1784+upper case letters changed to lower case.
1785+All other characters are left unchanged.
1786+<P>
1787+<h3> <TT>strupper (s)</TT></h3><A NAME="strupper"></A>
1788+Receives a string and returns a copy of that string with all
1789+lower case letters changed to upper case.
1790+All other characters are left unchanged.
1791+<P>
1792+<h3> <TT>strrep (s, n)</TT></h3><A NAME="strrep"></A>
1793+Returns a string which is the concatenation of <CODE>n</CODE> copies of
1794+the string <CODE>s</CODE>.
1795+<P>
1796+<h3> <TT>ascii (s [, i])</TT></h3><A NAME="ascii"></A>
1797+Returns the ASCII code of the character <CODE>s[i]</CODE>.
1798+If <CODE>i</CODE> is absent, then it is assumed to be 1.
1799+<P>
1800+<h3> <TT>format (formatstring, e1, e2, ...)</TT></h3><A NAME="format"></A>
1801+<A NAME="format"></A>
1802+
1803+This function returns a formated version of its variable number of arguments
1804+following the description given in its first argument (which must be a string).
1805+The format string follows the same rules as the <CODE>printf</CODE> family of
1806+standard C functions.
1807+The only differences are that the options/modifiers
1808+<CODE>*</CODE>, <CODE>l</CODE>, <CODE>L</CODE>, <CODE>n</CODE>, <CODE>p</CODE>,
1809+and <CODE>h</CODE> are not supported,
1810+and there is an extra option, <CODE>q</CODE>.
1811+This option formats a string in a form suitable to be safely read
1812+back by the Lua interpreter;
1813+that is,
1814+the string is written between double quotes,
1815+and all double quotes, returns and backslashes in the string
1816+are correctly escaped when written.
1817+For instance, the call
1818+<LISTING>
1819+format('%q', 'a string with "quotes" and \n new line')
1820+</LISTING>
1821+will produce the string:
1822+<LISTING>
1823+"a string with \"quotes\" and \
1824+ new line"
1825+</LISTING>
1826+<P>
1827+The options <CODE>c</CODE>, <CODE>d</CODE>, <CODE>E</CODE>, <CODE>e</CODE>, <CODE>f</CODE>,
1828+<CODE>g</CODE> <CODE>i</CODE>, <CODE>o</CODE>, <CODE>u</CODE>, <CODE>X</CODE>, and <CODE>x</CODE> all
1829+expect a number as argument,
1830+whereas <CODE>q</CODE> and <CODE>s</CODE> expect a string.
1831+Note that the <CODE>*</CODE> modifier can be simulated by building
1832+the appropriate format string.
1833+For example, <CODE>"%*g"</CODE> can be simulated with
1834+<CODE>"%"..width.."g"</CODE>.
1835+<P>
1836+<h3> <TT>gsub (s, pat, repl [, table] [, n])</TT></h3>
1837+<A NAME="gsub"></A>
1838+Returns a copy of <CODE>s</CODE>,
1839+where all occurrences of the pattern <CODE>pat</CODE> have been
1840+replaced by a replacement string specified by <CODE>repl</CODE>.
1841+This function also returns, as a second value,
1842+the total number of substitutions made.
1843+<P>
1844+If <CODE>repl</CODE> is a string, then its value is used for replacement.
1845+Any sequence in <CODE>repl</CODE> of the form <CODE>%n</CODE>
1846+with <CODE>n</CODE> between 1 and 9
1847+stands for the value of the n-th captured substring.
1848+<P>
1849+If <CODE>repl</CODE> is a function, then this function is called every time a
1850+match occurs, with the following arguments:
1851+If <CODE>table</CODE> is present, then the first argument is this table
1852+and the second one is a match counter (1 for the first call).
1853+Independently of these two optional arguments,
1854+all captured substrings are passed as arguments,
1855+in order (see below);
1856+If the value returned by this function is a string,
1857+then it is used as the replacement string;
1858+otherwise, the replacement string is the empty string.
1859+<P>
1860+A last optional parameter <CODE>n</CODE> limits
1861+the maximum number of substitutions to occur.
1862+For instance, when <CODE>n</CODE> is 1 only the first occurrence of
1863+<CODE>pat</CODE> is replaced.
1864+<P>
1865+See some examples below:
1866+<LISTING>
1867+ x = gsub("hello world", "(%w%w*)", "%1 %1", 1)
1868+ --&gt; x="hello hello world"
1869+<P>
1870+ x = gsub("home = $HOME, user = $USER", "$(%w%w*)", getenv)
1871+ --&gt; x="home = /home/roberto, user = roberto" (for instance)
1872+<P>
1873+ x = gsub("4+5 = $return 4+5$", "$(.-)%$", dostring)
1874+ --&gt; x="4+5 = 9"
1875+<P>
1876+ function f(t, i, v) return t[v] end
1877+ t = {name="lua", version="3.0"}
1878+ x = gsub("$name - $version", "$(%w%w*)", f, t)
1879+ --&gt; x="lua - 3.0"
1880+<P>
1881+ t = {"apple", "orange", "lime"}
1882+ x = gsub("x and x and x", "x", rawgettable, t)
1883+ --&gt; x="apple and orange and lime"
1884+<P>
1885+ t = {}
1886+ dummy, t.n = gsub("first second word", "(%w%w*)", rawsettable, t)
1887+ --&gt; t={"first", "second", "word"; n=3}
1888+</LISTING>
1889+<P>
1890+<P>
1891+<A NAME="pm"></A>
1892+<h3>Patterns</h3>
1893+<P>
1894+<H4>Character Class:</H4>
1895+a <A NAME="character class"><EM>character class</EM></A> is used to represent a set of characters.
1896+The following combinations are allowed in describing a character class:
1897+<DL>
1898+<DT><B><EM>x</EM></B><DD> (where <EM>x</EM> is any character not in the list <CODE>()%.[*-?</CODE>)
1899+- represents the character <EM>x</EM> itself.
1900+<DT><B><TT>.</TT></B><DD> - represents all characters.
1901+<DT><B><TT>%a</TT></B><DD> - represents all letters.
1902+<DT><B><TT>%A</TT></B><DD> - represents all non letter characters.
1903+<DT><B><TT>%d</TT></B><DD> - represents all digits.
1904+<DT><B><TT>%D</TT></B><DD> - represents all non digits.
1905+<DT><B><TT>%l</TT></B><DD> - represents all lower case letters.
1906+<DT><B><TT>%L</TT></B><DD> - represents all non lower case letter characters.
1907+<DT><B><TT>%s</TT></B><DD> - represents all space characters.
1908+<DT><B><TT>%S</TT></B><DD> - represents all non space characters.
1909+<DT><B><TT>%u</TT></B><DD> - represents all upper case letters.
1910+<DT><B><TT>%U</TT></B><DD> - represents all non upper case letter characters.
1911+<DT><B><TT>%w</TT></B><DD> - represents all alphanumeric characters.
1912+<DT><B><TT>%W</TT></B><DD> - represents all non alphanumeric characters.
1913+<DT><B><TT>%<EM>x</TT></EM></B><DD> (where <EM>x</EM> is any non alphanumeric character) -
1914+represents the character <EM>x</EM>.
1915+This is the standard way to escape the magic characters <CODE>()%.[*-?</CODE>.
1916+<DT><B><TT>[char-set]</TT></B><DD> -
1917+Represents the class which is the union of all
1918+characters in char-set.
1919+To include a <CODE>]</CODE> in char-set, it must be the first character.
1920+A range of characters may be specified by
1921+separating the end characters of the range with a <CODE>-</CODE>;
1922+e.g., <CODE>A-Z</CODE> specifies the upper case characters.
1923+If <CODE>-</CODE> appears as the first or last character of char-set,
1924+then it represents itself.
1925+All classes <CODE>%</CODE><EM>x</EM> described above can also be used as
1926+components in a char-set.
1927+All other characters in char-set represent themselves.
1928+<DT><B><TT>[^char-set]</TT></B><DD> -
1929+represents the complement of char-set,
1930+where char-set is interpreted as above.
1931+</DL>
1932+<P>
1933+<H4>Pattern Item:</H4>
1934+a <A NAME="pattern item"><EM>pattern item</EM></A> may be:
1935+<UL>
1936+<LI>
1937+a single character class,
1938+which matches any single character in the class;
1939+<LI>
1940+a single character class followed by <CODE>*</CODE>,
1941+which matches 0 or more repetitions of characters in the class.
1942+These repetition items will always match the longest possible sequence.
1943+<LI>
1944+a single character class followed by <CODE>-</CODE>,
1945+which also matches 0 or more repetitions of characters in the class.
1946+Unlike <CODE>*</CODE>,
1947+these repetition items will always match the shortest possible sequence.
1948+<LI>
1949+a single character class followed by <CODE>?</CODE>,
1950+which matches 0 or 1 occurrence of a character in the class;
1951+<LI>
1952+<TT>%<EM>n</TT></EM>, for <EM>n</EM> between 1 and 9;
1953+such item matches a sub-string equal to the n-th captured string
1954+(see below);
1955+<LI>
1956+<TT>%b<EM>xy</TT></EM>, where <EM>x</EM> and <EM>y</EM> are two distinct characters;
1957+such item matches strings that start with <EM>x</EM>, end with <EM>y</EM>,
1958+and where the <EM>x</EM> and <EM>y</EM> are <EM>balanced</EM>.
1959+That means that, if one reads the string from left to write,
1960+counting plus 1 for an <EM>x</EM> and minus 1 for a <EM>y</EM>,
1961+the ending <EM>y</EM> is the first where the count reaches 0.
1962+For instance, the item <CODE>%b()</CODE> matches expressions with
1963+balanced parentheses.
1964+</UL>
1965+<P>
1966+<H4>Pattern:</H4>
1967+a <A NAME="pattern"><EM>pattern</EM></A> is a sequence of pattern items.
1968+A <CODE>^</CODE> at the beginning of a pattern anchors the match at the
1969+beginning of the subject string.
1970+A <CODE>$</CODE> at the end of a pattern anchors the match at the
1971+end of the subject string.
1972+<P>
1973+<H4>Captures:</H4>
1974+a pattern may contain sub-patterns enclosed in parentheses,
1975+that describe <A NAME="captures"><EM>captures</EM></A>.
1976+When a match succeeds, the sub-strings of the subject string
1977+that match captures are stored (<EM>captured</EM>) for future use.
1978+Captures are numbered according to their left parentheses.
1979+For instance, in the pattern <CODE>"(a*(.)%w(%s*))"</CODE>,
1980+the part of the string matching <CODE>"a*(.)%w(%s*)"</CODE> is
1981+stored as the first capture (and therefore has number 1);
1982+the character matching <CODE>.</CODE> is captured with number 2,
1983+and the part matching <CODE>%s*</CODE> has number 3.
1984+<P>
1985+<A NAME="mathlib"></A>
1986+<A NAME="6.3"></A>
1987+<H2>6.3 - Mathematical Functions</H2>
1988+<P>
1989+This library is an interface to some functions of the standard C math library.
1990+In addition, it registers a tag method for the binary operator <CODE>^</CODE> that
1991+returns <I>x^y</I> when applied to numbers <CODE>x^y</CODE>.
1992+<P>
1993+The library provides the following functions:
1994+<A NAME="abs"></A><A NAME="acos"></A><A NAME="asin"></A><A NAME="atan"></A>
1995+<A NAME="atan2"></A><A NAME="ceil"></A><A NAME="cos"></A><A NAME="floor"></A>
1996+<A NAME="log"></A><A NAME="log10"></A><A NAME="max"></A><A NAME="min"></A>
1997+<A NAME="mod"></A><A NAME="sin"></A><A NAME="sqrt"></A><A NAME="tan"></A>
1998+<A NAME="random"></A><A NAME="randomseed"></A>
1999+<LISTING>
2000+abs acos asin atan atan2 ceil cos floor log log10
2001+max min mod sin sqrt tan random randomseed
2002+</LISTING>
2003+Most of them
2004+are only interfaces to the homonymous functions in the C library,
2005+except that, for the trigonometric functions,
2006+all angles are expressed in <EM>degrees</EM>, not radians.
2007+<P>
2008+The function <CODE>max</CODE> returns the maximum
2009+value of its numeric arguments.
2010+Similarly, <CODE>min</CODE> computes the minimum.
2011+Both can be used with an unlimited number of arguments.
2012+<P>
2013+The functions <CODE>random</CODE> and <CODE>randomseed</CODE> are interfaces to
2014+the simple random generator functions <CODE>rand</CODE> and <CODE>srand</CODE>,
2015+provided by ANSI C.
2016+The function <CODE>random</CODE> returns pseudo-random numbers in the
2017+range <I>[0,1)</I>.
2018+<P>
2019+<P>
2020+<A NAME="libio"></A>
2021+<A NAME="6.4"></A>
2022+<H2>6.4 - I/O Facilities</H2>
2023+<P>
2024+All input and output operations in Lua are done over two
2025+<A NAME="file handles"><EM>file handles</EM></A>, one for reading and one for writing.
2026+These handles are stored in two Lua global variables,
2027+called <CODE>_INPUT</CODE> and <CODE>_OUTPUT</CODE>.
2028+The global variables
2029+<CODE>_STDIN</CODE>, <CODE>_STDOUT</CODE> and <CODE>_STDERR</CODE>
2030+are initialized with file descriptors for
2031+<CODE>stdin</CODE>, <CODE>stdout</CODE> and <CODE>stderr</CODE>.
2032+Initially, <CODE>_INPUT=_STDIN</CODE> and <CODE>_OUTPUT=_STDOUT</CODE>.
2033+<A NAME="_INPUT"></A><A NAME="_OUTPUT"></A>
2034+<A NAME="_STDIN"></A><A NAME="_STDOUT"></A><A NAME="_STDERR"></A>
2035+<P>
2036+A file handle is a userdata containing the file stream <CODE>FILE*</CODE>,
2037+and with a distinctive tag created by the I/O library.
2038+<P>
2039+<P>
2040+Unless otherwise stated,
2041+all I/O functions return <B>nil</B> on failure and
2042+some value different from <B>nil</B> on success.
2043+<P>
2044+<h3> <TT>readfrom (filename)</TT></h3><A NAME="readfrom"></A>
2045+<P>
2046+This function may be called in two ways.
2047+When called with a file name, it opens the named file,
2048+sets its handle as the value of <CODE>_INPUT</CODE>,
2049+and returns this value.
2050+It does not close the current input file.
2051+When called without parameters,
2052+it closes the <CODE>_INPUT</CODE> file,
2053+and restores <CODE>stdin</CODE> as the value of <CODE>_INPUT</CODE>.
2054+<P>
2055+If this function fails, it returns <B>nil</B>,
2056+plus a string describing the error.
2057+<P>
2058+<CITE>
2059+<EM>System dependent</EM>: if <CODE>filename</CODE> starts with a <CODE>|</CODE>,
2060+then a <A NAME="piped input">piped input</A> is open, via function <A NAME="popen"><TT>popen</TT></A>.
2061+Not all systems implement pipes.
2062+Moreover,
2063+the number of files that can be open at the same time is
2064+usually limited and depends on the system.
2065+</CITE>
2066+<P>
2067+<h3> <TT>writeto (filename)</TT></h3><A NAME="writeto"></A>
2068+<P>
2069+This function may be called in two ways.
2070+When called with a file name,
2071+it opens the named file,
2072+sets its handle as the value of <CODE>_OUTPUT</CODE>,
2073+and returns this value.
2074+It does not close the current output file.
2075+Notice that, if the file already exists,
2076+then it will be <EM>completely erased</EM> with this operation.
2077+When called without parameters,
2078+this function closes the <CODE>_OUTPUT</CODE> file,
2079+and restores <CODE>stdout</CODE> as the value of <CODE>_OUTPUT</CODE>.
2080+<A NAME="closing a file"></A>
2081+<P>
2082+If this function fails, it returns <B>nil</B>,
2083+plus a string describing the error.
2084+<P>
2085+<CITE>
2086+<EM>System dependent</EM>: if <CODE>filename</CODE> starts with a <CODE>|</CODE>,
2087+then a <A NAME="piped output">piped output</A> is open, via function <A NAME="popen"><TT>popen</TT></A>.
2088+Not all systems implement pipes.
2089+Moreover,
2090+the number of files that can be open at the same time is
2091+usually limited and depends on the system.
2092+</CITE>
2093+<P>
2094+<h3> <TT>appendto (filename)</TT></h3><A NAME="appendto"></A>
2095+<P>
2096+This function opens a file named <CODE>filename</CODE> and sets it as the
2097+value of <CODE>_OUTPUT</CODE>.
2098+Unlike the <CODE>writeto</CODE> operation,
2099+this function does not erase any previous content of the file.
2100+If this function fails, it returns <B>nil</B>,
2101+plus a string describing the error.
2102+<P>
2103+Notice that function <CODE>writeto</CODE> is available to close an output file.
2104+<P>
2105+<h3> <TT>remove (filename)</TT></h3><A NAME="remove"></A>
2106+<P>
2107+This function deletes the file with the given name.
2108+If this function fails, it returns <B>nil</B>,
2109+plus a string describing the error.
2110+<P>
2111+<h3> <TT>rename (name1, name2)</TT></h3><A NAME="rename"></A>
2112+<P>
2113+This function renames file named <CODE>name1</CODE> to <CODE>name2</CODE>.
2114+If this function fails, it returns <B>nil</B>,
2115+plus a string describing the error.
2116+<P>
2117+<h3> <TT>tmpname ()</TT></h3><A NAME="tmpname"></A>
2118+<P>
2119+This function returns a string with a file name that can safely
2120+be used for a temporary file.
2121+The file must be explicitly removed when no longer needed.
2122+<P>
2123+<h3> <TT>read ([readpattern])</TT></h3><A NAME="read"></A>
2124+<P>
2125+This function reads the file <CODE>_INPUT</CODE>
2126+according to a read pattern, that specifies how much to read;
2127+characters are read from the current input file until
2128+the read pattern fails or ends.
2129+The function <CODE>read</CODE> returns a string with the characters read,
2130+even if the pattern succeeds only partially,
2131+or <B>nil</B> if the read pattern fails <EM>and</EM>
2132+the result string would be empty.
2133+When called without parameters,
2134+it uses a default pattern that reads the next line
2135+(see below).
2136+<P>
2137+A <A NAME="read pattern"><EM>read pattern</EM></A> is a sequence of read pattern items.
2138+An item may be a single character class
2139+or a character class followed by <CODE>?</CODE> or by <CODE>*</CODE>.
2140+A single character class reads the next character from the input
2141+if it belongs to the class, otherwise it fails.
2142+A character class followed by <CODE>?</CODE> reads the next character
2143+from the input if it belongs to the class;
2144+it never fails.
2145+A character class followed by <CODE>*</CODE> reads until a character that
2146+does not belong to the class, or end of file;
2147+since it can match a sequence of zero characters, it never fails.
2148+\footnote{
2149+Notice that the behavior of read patterns is different from
2150+the regular pattern matching behavior,
2151+where a <CODE>*</CODE> expands to the maximum length <EM>such that</EM>
2152+the rest of the pattern does not fail.
2153+With the read pattern behavior
2154+there is no need for backtracking the reading.
2155+}
2156+<P>
2157+A pattern item may contain sub-patterns enclosed in curly brackets,
2158+that describe <A NAME="skips"><EM>skips</EM></A>.
2159+Characters matching a skip are read,
2160+but are not included in the resulting string.
2161+<P>
2162+Following are some examples of read patterns and their meanings:
2163+<UL>
2164+<LI><CODE>"."</CODE> returns the next character, or <B>nil</B> on end of file.
2165+<LI><CODE>".*"</CODE> reads the whole file.
2166+<LI><CODE>"[^\n]*{\n}"</CODE> returns the next line
2167+(skipping the end of line), or <B>nil</B> on end of file.
2168+This is the default pattern.
2169+<LI><CODE>"{%s*}%S%S*"</CODE> returns the next word
2170+(maximal sequence of non white-space characters),
2171+skipping spaces if necessary,
2172+or <B>nil</B> on end of file.
2173+<LI><CODE>"{%s*}[+-]?%d%d*"</CODE> returns the next integer
2174+or <B>nil</B> if the next characters do not conform to an integer format.
2175+</UL>
2176+<P>
2177+<h3> <TT>write (value1, ...)</TT></h3><A NAME="write"></A>
2178+<P>
2179+This function writes the value of each of its arguments to the
2180+file <CODE>_OUTPUT</CODE>.
2181+The arguments must be strings or numbers.
2182+To write other values,
2183+use <CODE>tostring</CODE> or <CODE>format</CODE> before <CODE>write</CODE>.
2184+If this function fails, it returns <B>nil</B>,
2185+plus a string describing the error.
2186+<P>
2187+<h3> <TT>date ([format])</TT></h3><A NAME="date"></A>
2188+<P>
2189+This function returns a string containing date and time
2190+formatted according to the given string <CODE>format</CODE>,
2191+following the same rules of the ANSI C function <CODE>strftime</CODE>.
2192+When called without arguments,
2193+it returns a reasonable date and time representation that depends on
2194+the host system.
2195+<P>
2196+<h3> <TT>exit ([code])</TT></h3><A NAME="exit"></A>
2197+<P>
2198+This function calls the C function <CODE>exit</CODE>,
2199+with an optional <CODE>code</CODE>,
2200+to terminate the program.
2201+The default value for <CODE>code</CODE> is 1.
2202+<P>
2203+<h3> <TT>getenv (varname)</TT></h3><A NAME="getenv"></A>
2204+<P>
2205+Returns the value of the environment variable <CODE>varname</CODE>,
2206+or <B>nil</B> if the variable is not defined.
2207+<P>
2208+<h3> <TT>execute (command)</TT></h3><A NAME="execute"></A>
2209+<P>
2210+This function is equivalent to the C function <CODE>system</CODE>.
2211+It passes <CODE>command</CODE> to be executed by an operating system shell.
2212+It returns an error code, which is system-dependent.
2213+<P>
2214+<P>
2215+<A NAME="debugI"></A>
2216+<!-- ====================================================================== -->
2217+<HR>
2218+<A NAME="7."></A>
2219+<H1>7 - The Debugger Interface</H1>
2220+<P>
2221+Lua has no built-in debugging facilities.
2222+Instead, it offers a special interface,
2223+by means of functions and <EM>hooks</EM>,
2224+which allows the construction of different
2225+kinds of debuggers, profilers, and other tools
2226+that need ``inside information'' from the interpreter.
2227+This interface is declared in the header file <CODE>luadebug.h</CODE>.
2228+<P>
2229+<A NAME="7.1"></A>
2230+<H2>7.1 - Stack and Function Information</H2>
2231+<P>
2232+The main function to get information about the interpreter stack
2233+is
2234+<LISTING>
2235+lua_Function lua_stackedfunction (int level);
2236+</LISTING>
2237+It returns a handle (<CODE>lua_Function</CODE>) to the <EM>activation record</EM>
2238+of the function executing at a given level.
2239+Level&nbsp;0 is the current running function,
2240+while level <I>n+1</I> is the function that has called level <I>n</I>.
2241+When called with a level greater than the stack depth,
2242+<CODE>lua_stackedfunction</CODE> returns <CODE>LUA_NOOBJECT</CODE>.
2243+<P>
2244+The type <CODE>lua_Function</CODE> is just another name
2245+to <CODE>lua_Object</CODE>.
2246+Although, in this library,
2247+a <CODE>lua_Function</CODE> can be used wherever a <CODE>lua_Object</CODE> is required,
2248+when a parameter has type <CODE>lua_Function</CODE>
2249+it accepts only a handle returned by
2250+<CODE>lua_stackedfunction</CODE>.
2251+<P>
2252+Three other functions produce extra information about a function:
2253+<LISTING>
2254+void lua_funcinfo (lua_Object func, char **filename, int *linedefined);
2255+int lua_currentline (lua_Function func);
2256+char *lua_getobjname (lua_Object o, char **name);
2257+</LISTING>
2258+<CODE>lua_funcinfo</CODE> gives the file name and the line where the
2259+given function has been defined.
2260+If the ``function'' is in fact the main code of a chunk,
2261+then <CODE>linedefined</CODE> is 0.
2262+If the function is a C function,
2263+then <CODE>linedefined</CODE> is -1, and <CODE>filename</CODE> is <CODE>"(C)"</CODE>.
2264+<P>
2265+The function <CODE>lua_currentline</CODE> gives the current line where
2266+a given function is executing.
2267+It only works if the function has been compiled with debug
2268+information (see Section&nbsp;<A HREF="#pragma">4.9</A>).
2269+When no line information is available, it returns -1.
2270+<P>
2271+Function <CODE>lua_getobjname</CODE> tries to find a reasonable name for
2272+a given function.
2273+Because functions in Lua are first class values,
2274+they do not have a fixed name:
2275+Some functions may be the value of many global variables,
2276+while others may be stored only in a table field.
2277+Function <CODE>lua_getobjname</CODE> first checks whether the given
2278+function is a tag method.
2279+If so, it returns the string <CODE>"tag-method"</CODE>,
2280+and <CODE>name</CODE> is set to point to the event name.
2281+Otherwise, if the given function is the value of a global variable,
2282+then <CODE>lua_getobjname</CODE> returns the string <CODE>"global"</CODE>,
2283+and <CODE>name</CODE> points to the variable name.
2284+If the given function is neither a tag method nor a global variable,
2285+then <CODE>lua_getobjname</CODE> returns the empty string,
2286+and <CODE>name</CODE> is set to <CODE>NULL</CODE>.
2287+<P>
2288+<A NAME="7.2"></A>
2289+<H2>7.2 - Manipulating Local Variables</H2>
2290+<P>
2291+The following functions allow the manipulation of the
2292+local variables of a given activation record.
2293+They only work if the function has been compiled with debug
2294+information (see Section&nbsp;<A HREF="#pragma">4.9</A>).
2295+<LISTING>
2296+lua_Object lua_getlocal (lua_Function func, int local_number, char **name);
2297+int lua_setlocal (lua_Function func, int local_number);
2298+</LISTING>
2299+<CODE>lua_getlocal</CODE> returns the value of a local variable,
2300+and sets <CODE>name</CODE> to point to the variable name.
2301+<CODE>local_number</CODE> is an index for local variables.
2302+The first parameter has index 1, and so on, until the
2303+last active local variable.
2304+When called with a <CODE>local_number</CODE> greater than the
2305+number of active local variables,
2306+or if the activation record has no debug information,
2307+<CODE>lua_getlocal</CODE> returns <CODE>LUA_NOOBJECT</CODE>.
2308+Formal parameters are the first local variables.
2309+<P>
2310+The function <CODE>lua_setlocal</CODE> sets the local variable
2311+<CODE>local_number</CODE> to the value previously pushed on the stack
2312+(see Section&nbsp;<A HREF="#valuesCLua">5.1</A>).
2313+If the function succeeds, then it returns 1.
2314+If <CODE>local_number</CODE> is greater than the number
2315+of active local variables,
2316+or if the activation record has no debug information,
2317+then this function fails and returns 0.
2318+<P>
2319+<A NAME="7.3"></A>
2320+<H2>7.3 - Hooks</H2>
2321+<P>
2322+The Lua interpreter offers two hooks for debugging purposes:
2323+<LISTING>
2324+typedef void (*lua_CHFunction) (lua_Function func, char *file, int line);
2325+extern lua_CHFunction lua_callhook;
2326+<P>
2327+typedef void (*lua_LHFunction) (int line);
2328+extern lua_LHFunction lua_linehook;
2329+</LISTING>
2330+The first one is called whenever the interpreter enters or leaves a
2331+function.
2332+When entering a function,
2333+its parameters are a handle to the function activation record,
2334+plus the file and the line where the function is defined (the same
2335+information which is provided by <CODE>lua_funcinfo</CODE>);
2336+when leaving a function, <CODE>func</CODE> is <CODE>LUA_NOOBJECT</CODE>,
2337+<CODE>file</CODE> is <CODE>"(return)"</CODE>, and <CODE>line</CODE> is 0.
2338+<P>
2339+The other hook is called every time the interpreter changes
2340+the line of code it is executing.
2341+Its only parameter is the line number
2342+(the same information which is provided by the call
2343+<CODE>lua_currentline(lua_stackedfunction(0))</CODE>).
2344+This second hook is only called if the active function
2345+has been compiled with debug information (see Section&nbsp;<A HREF="#pragma">4.9</A>).
2346+<P>
2347+A hook is disabled when its value is <CODE>NULL</CODE>,
2348+which is the initial value of both hooks.
2349+<P>
2350+<P>
2351+<P>
2352+<A NAME="lua-sa"></A>
2353+<!-- ====================================================================== -->
2354+<HR>
2355+<A NAME="8."></A>
2356+<H1>8 - Lua Stand-alone</H1>
2357+<P>
2358+Although Lua has been designed as an extension language,
2359+the language can also be used as a stand-alone interpreter.
2360+An implementation of such an interpreter,
2361+called simply <CODE>lua</CODE>,
2362+is provided with the standard distribution.
2363+This program can be called with any sequence of the following arguments:
2364+<DL>
2365+<DT><B><TT>-v</TT></B><DD> prints version information.
2366+<DT><B><TT>-</TT></B><DD> runs interactively, accepting commands from standard input
2367+until an <CODE>EOF</CODE>.
2368+<DT><B><TT>-e stat</TT></B><DD> executes <CODE>stat</CODE> as a Lua chunk.
2369+<DT><B><TT>var=exp</TT></B><DD> executes <CODE>var=exp</CODE> as a Lua chunk.
2370+<DT><B><TT>filename</TT></B><DD> executes file <CODE>filename</CODE> as a Lua chunk.
2371+</DL>
2372+All arguments are handled in order.
2373+For instance, an invocation like
2374+<LISTING>
2375+$ lua - a=1 prog.lua
2376+</LISTING>
2377+will first interact with the user until an <CODE>EOF</CODE>,
2378+then will set <CODE>a</CODE> to 1,
2379+and finally will run file <CODE>prog.lua</CODE>.
2380+<P>
2381+Please notice that the interaction with the shell may lead to
2382+unintended results.
2383+For instance, a call like
2384+<LISTING>
2385+$ lua a="name" prog.lua
2386+</LISTING>
2387+will <EM>not</EM> set <CODE>a</CODE> to the string <CODE>"name"</CODE>.
2388+Instead, the quotes will be handled by the shell,
2389+lua will get only <CODE>a=name</CODE> to run,
2390+and <CODE>a</CODE> will finish with <B>nil</B>,
2391+because the global variable <CODE>name</CODE> has not been initialized.
2392+Instead, one should write
2393+<LISTING>
2394+$ lua 'a="name"' prog.lua
2395+</LISTING>
2396+<P>
2397+<HR>
2398+<A NAME="Acknowledgments"></A>
2399+<h1>Acknowledgments</h1>
2400+<P>
2401+The authors would like to thank CENPES/PETROBRAS which,
2402+jointly with TeCGraf, used extensively early versions of
2403+this system and gave valuable comments.
2404+The authors would also like to thank Carlos Henrique Levy,
2405+who found the name of the game.
2406+Lua means <EM>moon</EM> in Portuguese.
2407+<P>
2408+<P>
2409+<P>
2410+<P>
2411+<HR>
2412+<A NAME="Incompatibilities"></A>
2413+<h1>Incompatibilities with Previous Versions</h1>
2414+<P>
2415+Although great care has been taken to avoid incompatibilities with
2416+the previous public versions of Lua,
2417+some differences had to be introduced.
2418+Here is a list of all these incompatibilities.
2419+<P>
2420+<h2>Incompatibilities with <A NAME="version 2.5</h2>">version 2.5</h2></A>
2421+<UL>
2422+<LI>
2423+The whole fallback mechanism has been replaced by tag methods.
2424+Nevertheless, the function <CODE>setfallback</CODE> has been rewritten in
2425+a way that uses tag methods to fully emulate the old behavior
2426+of fallbacks.
2427+<LI>
2428+Tags now must be created with the function <CODE>newtag</CODE>.
2429+Nevertheless, old user defined tags are still accepted
2430+(user defined tags must be positive;
2431+<CODE>newtag</CODE> uses negative numbers).
2432+Tag methods cannot be set for such user defined tags,
2433+and fallbacks do not affect tags created by <CODE>newtag</CODE>.
2434+<LI>
2435+Lua 2.5 accepts mixed comparisons of strings and numbers,
2436+like <CODE>2&lt;"12"</CODE>, giving weird results.
2437+Now this is an error.
2438+<LI>
2439+Character <CODE>"-"</CODE> (hyphen) now is ``magic'' in pattern matching.
2440+<LI>
2441+Some API functions have been rewritten as macros.
2442+</UL>
2443+<P>
2444+<h2>Incompatibilities with <A NAME="version 2.4</h2>">version 2.4</h2></A>
2445+The whole I/O facilities have been rewritten.
2446+We strongly encourage programmers to adapt their code
2447+to this new version.
2448+The incompatibilities between the new and the old libraries are:
2449+<UL>
2450+<LI>The format facility of function <CODE>write</CODE> has been supersed by
2451+function <CODE>format</CODE>;
2452+therefore this facility has been dropped.
2453+<LI>Function <CODE>read</CODE> now uses <EM>read patterns</EM> to specify
2454+what to read;
2455+this is incompatible with the old format options.
2456+<LI>Function <CODE>strfind</CODE> now accepts patterns,
2457+so it may have a different behavior when the pattern includes
2458+special characters.
2459+</UL>
2460+<P>
2461+<h2>Incompatibilities with <A NAME="version 2.2</h2>">version 2.2</h2></A>
2462+<UL>
2463+<LI>
2464+Functions <CODE>date</CODE> and <CODE>time</CODE> (from <CODE>iolib</CODE>)
2465+have been superseded by the new, more powerful version of function <CODE>date</CODE>.
2466+<LI>
2467+Function <CODE>append</CODE> (from <CODE>iolib</CODE>) now returns 1 whenever it succeeds,
2468+whether the file is new or not.
2469+<LI>
2470+Function <CODE>int2str</CODE> (from <CODE>strlib</CODE>) has been superseded by new
2471+function <CODE>format</CODE>, with parameter <CODE>"%c"</CODE>.
2472+<LI>
2473+The API lock mechanism has been superseded by the reference mechanism.
2474+However, <CODE>lua.h</CODE> provides compatibility macros,
2475+so there is no need to change programs.
2476+<LI>
2477+The API function <CODE>lua_pushliteral</CODE> now is just a macro to
2478+<CODE>lua_pushstring</CODE>.
2479+</UL>
2480+<P>
2481+<h2>Incompatibilities with <A NAME="version 2.1</h2>">version 2.1</h2></A>
2482+<UL>
2483+<LI>
2484+The function <CODE>type</CODE> now returns the string <CODE>"function"</CODE>
2485+both for C and Lua functions.
2486+Because Lua functions and C functions are compatible,
2487+this behavior is usually more useful.
2488+When needed, the second result of function <TT>type</TT> may be used
2489+to distinguish between Lua and C functions.
2490+<LI>
2491+A function definition only assigns the function value to the
2492+given variable at execution time.
2493+</UL>
2494+<P>
2495+<h2>Incompatibilities with <A NAME="version 1.1</h2>">version 1.1</h2></A>
2496+<UL>
2497+<LI>
2498+The equality test operator now is denoted by <CODE>==</CODE>,
2499+instead of <CODE>=</CODE>.
2500+<LI>
2501+The syntax for table construction has been greatly simplified.
2502+The old <CODE>@(size)</CODE> has been substituted by <CODE>{}</CODE>.
2503+The list constructor (formerly <CODE>@[...]</CODE>) and the record
2504+constructor (formerly <CODE>@{...}</CODE>) now are both coded like
2505+<CODE>{...}</CODE>.
2506+When the construction involves a function call,
2507+like in <CODE>@func{...}</CODE>,
2508+the new syntax does not use the <CODE>@</CODE>.
2509+More important, {\em a construction function must now
2510+explicitly return the constructed table}.
2511+<LI>
2512+The function <CODE>lua_call</CODE> no longer has the parameter <CODE>nparam</CODE>.
2513+<LI>
2514+The function <CODE>lua_pop</CODE> is no longer available,
2515+since it could lead to strange behavior.
2516+In particular,
2517+to access results returned from a Lua function,
2518+the new macro <CODE>lua_getresult</CODE> should be used.
2519+<LI>
2520+The old functions <CODE>lua_storefield</CODE> and <CODE>lua_storeindexed</CODE>
2521+have been replaced by
2522+<LISTING>
2523+int lua_storesubscript (void);
2524+</LISTING>
2525+with the parameters explicitly pushed on the stack.
2526+<LI>
2527+The functionality of the function <CODE>lua_errorfunction</CODE> has been
2528+replaced by the <EM>fallback</EM> mechanism (see Section&nbsp;<A HREF="#error">4.9</A>).
2529+<LI>
2530+When calling a function from the Lua library,
2531+parameters passed through the stack
2532+must be pushed just before the corresponding call,
2533+with no intermediate calls to Lua.
2534+Special care should be taken with macros like
2535+<CODE>lua_getindexed</CODE> and <CODE>lua_getfield</CODE>.
2536+</UL>
2537+<P>
2538+<P>
2539+
2540+<HR>
2541+Last update:
2542+Tue Jul 1 07:55:45 EST 1997
2543+by <A HREF="http://www.tecgraf.puc-rio.br/~lhf/">lhf</A>.
2544+</BODY>
2545+</HTML>
doc/refman.ps+0−7807
@@ -1,7807 +0,0 @@
1−%!PS-Adobe-2.0
2−%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software
3−%%Title: manual.dvi
4−%%Pages: 39
5−%%PageOrder: Ascend
6−%%BoundingBox: 0 0 612 792
7−%%DocumentPaperSizes: Letter
8−%%EndComments
9−%DVIPSCommandLine: /visgraf/pub/teTeX/bin/sun4/dvips manual
10−%DVIPSParameters: dpi=600, comments removed
11−%DVIPSSource: TeX output 1996.11.18:1940
12−%%BeginProcSet: tex.pro
13−/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
14−/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
15−mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
16−ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
17−isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
18−hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
19−TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
20−forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
21−/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
22−/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
23−/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
24−string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
25−end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
26−/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
27−N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
28−length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
29−128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
30−get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
31−dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
32−/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
33−/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
34−0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
35−setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
36−.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
37−if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
38−length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
39−cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
40−0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
41−add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
42−/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
43−known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
44−/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
45−65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
46−0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
47−{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
48−getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
49−ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
50−RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
51−false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
52−round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
53−rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
54−{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
55−B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
56−4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
57−p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
58−a}B /bos{/SS save N}B /eos{SS restore}B end
59−%%EndProcSet
60−TeXDict begin 40258431 52099146 1000 600 600 (manual.dvi)
61−@start /Fa 7 115 df<000000FFF00000000FFFFF8000003FFFFFF00000FFFFFFFC0001
62−FFFFFFFC0007FFFFFFFC000FFF803FF8001FFC0003F8003FF00000F8007FC000003800FF
63−8000001801FF0000000003FE0000000003FC0000000007FC0000000007F8000000000FF0
64−000000000FF0000000001FE0000000001FE0000000003FC0000000003FC0000000003FC0
65−000000007F80000000007F80000000007F80000000007F8000000000FF0000000000FF00
66−00000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00
67−00000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000000007F80
68−000000007F80000000007F80000000007F80000000003FC0000000003FC0000000003FC0
69−000000001FE0000000001FE0000000000FF0000000000FF00000000007F80000000007FC
70−0000000003FC0000000003FE0000000001FF0000000400FF8000000C007FC000003C003F
71−F000007C001FFC0001FE000FFF801FFE0007FFFFFFFE0001FFFFFFFC0000FFFFFFF00000
72−3FFFFFC000000FFFFF00000000FFF0002F437AC03A>67 D<000000FFF000000007FFFF00
73−00003FFFFFE00000FFFFFFF80001FFFFFFFE0007FFFFFFFE000FFF803FFE001FFC0003FC
74−003FF00000FC007FE000003C00FF8000001C01FF0000000C01FE0000000003FC00000000
75−07FC0000000007F8000000000FF0000000000FF0000000001FE0000000001FE000000000
76−3FC0000000003FC0000000003FC0000000007F80000000007F80000000007F8000000000
77−7F8000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000
78−FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF000007FFFF
79−FF000007FFFFFF000007FFFF7F800007FFFF7F800007FFFF7F800007FFFF7F800000007F
80−3FC00000007F3FC00000007F3FC00000007F1FE00000007F1FE00000007F0FF00000007F
81−0FF00000007F07F80000007F07FC0000007F03FC0000007F01FE0000007F01FF0000007F
82−00FF8000007F007FE000007F003FF000007F001FFC0001FF000FFF801FFF0007FFFFFFFF
83−0001FFFFFFFF0000FFFFFFFC00003FFFFFF0000007FFFF00000000FFF00030437AC03D>
84−71 D<FFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFF
85−FFFEFFFFFFFFFFFFFE000000FF000000000000FF000000000000FF000000000000FF0000
86−00000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000
87−000000FF000000000000FF000000000000FF000000000000FF000000000000FF00000000
88−0000FF000000000000FF000000000000FF000000000000FF000000000000FF0000000000
89−00FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000
90−FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF
91−000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF00
92−0000000000FF000000000000FF000000000000FF000000000000FF000000000000FF0000
93−00000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000
94−000000FF000000000000FF000000000000FF000000000000FF000000000000FF00000000
95−0000FF000000000000FF000000000000FF000000000000FF000000000000FF0000000000
96−00FF000000373E7DBD3E>84 D<000FF80000FFFF0003FFFF800FFFFFE01FFFFFF01FFFFF
97−F01FF00FF81F8003FC1E0001FC180001FE100000FE000000FF0000007F0000007F000000
98−7F0000007F0000007F0000007F0000007F00007FFF000FFFFF007FFFFF01FFFFFF07FFFF
99−FF0FFFF07F3FFC007F3FC0007F7F00007FFE00007FFC00007FFC00007FFC00007FFC0000
100−FFFE0000FFFE0001FF7F8007FF7FE01FFF3FFFFFFF3FFFFFFF1FFFFF7F0FFFFC7F07FFF0
101−7F01FF0000202B7CA92C>97 D<0003F80000001FFF0000007FFFC00000FFFFE00001FFFF
102−F00003FFFFF80007FE07F8000FF801FC000FE000FE001FC0007E003FC0003E003F80003F
103−003F00001F007F00001F007E00001F007E00000F80FFFFFFFF80FFFFFFFF80FFFFFFFF80
104−FFFFFFFF80FFFFFFFF80FFFFFFFF80FC00000000FC00000000FC00000000FE000000007E
105−000000007E000000007F000000007F000000003F800000003F800000001FC00000001FE0
106−0000800FF000038007FC001F8007FF00FF8003FFFFFF8001FFFFFF80007FFFFF00003FFF
107−FC00000FFFE0000001FF0000212B7DA928>101 D<00001FF00000FFFC0001FFFC0007FF
108−FC000FFFFC000FFFFC001FE03C003F8004003F0000007F0000007E000000FE000000FE00
109−0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00
110−0000FE000000FE0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FE00
111−0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00
112−0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00
113−0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00
114−0000FE000000FE000000FE000000FE000000FE000000FE00001E407FBF1C>I<FC007CFC
115−03FCFC0FFCFC1FFCFC3FFCFC7FFCFCFFC0FDFE00FFF800FFF000FFE000FFC000FFC000FF
116−8000FF8000FF0000FF0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
117−0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
118−0000FE0000FE0000FE0000162979A81F>114 D E /Fb 7 121 df<001FFC00000000FFFF
119−80000003FFFFE0000007FFFFF000000FFFFFFC00001FFFFFFE00001FF007FF00001FE001
120−FF00001FE000FF80001FE0003F80000FC0003FC0000780001FC0000000001FE000000000
121−0FE0000000000FE0000000000FE0000000000FE0000000000FE00000000FFFE0000001FF
122−FFE000001FFFFFE000007FFFFFE00001FFFFFFE00007FFFF0FE0000FFFC00FE0001FFC00
123−0FE0003FF0000FE0007FC0000FE0007F80000FE000FF00000FE000FE00000FE000FE0000
124−0FE000FE00000FE000FE00000FE000FE00000FE000FF00001FE0007F00001FE0007F8000
125−7FE0003FE000FFF0003FF807FFFFF01FFFFFFFFFF80FFFFFFFFFF807FFFFF3FFF803FFFF
126−C1FFF800FFFF003FF0001FF00000002D2E7BAC33>97 D<0000FF80000007FFF000001FFF
127−FC00003FFFFE0000FFFFFF0001FFFFFF8003FF80FFC007FE003FE007F8000FF00FF00007
128−F01FE00007F81FC00003F83FC00003FC3F800001FC7F800001FC7F000001FC7F000001FE
129−7F000000FEFF000000FEFE000000FEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFF
130−FFFFFFFEFFFFFFFFFCFE00000000FF000000007F000000007F000000007F000000003F80
131−0000003F8000007C1FC00000FE1FE00000FE0FF00000FE0FF80001FE07FC0003FC03FF00
132−0FFC01FFC03FF800FFFFFFF0007FFFFFE0003FFFFFC0000FFFFF000003FFFC0000007FE0
133−00272E7BAC33>101 D<000001FF00003FFC07FFC0007FFE1FFFF000FFFE7FFFF800FFFE
134−FFFFF8007FFFFFFFFC003FFFFF07FE0000FFF801FE0000FFF000FE0000FFE000FF0000FF
135−C0007F0000FF80007F0000FF80007F0000FF00007F0000FF00007F0000FF00007F0000FE
136−00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE
137−00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE
138−00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE
139−00007F0000FE00007F0000FE00007F0000FE00007F003FFFF80FFFFC7FFFFC1FFFFEFFFF
140−FE3FFFFFFFFFFE3FFFFF7FFFFC1FFFFE3FFFF80FFFFC302C7FAB33>110
141−D<00000003FE007FFF801FFF80FFFFC07FFFE0FFFFC1FFFFE0FFFFC3FFFFF0FFFFC7FFFF
142−F07FFFCFFE0FF0001FDFF00FF0001FFFC007E0001FFF8003C0001FFF000000001FFE0000
143−00001FFC000000001FF8000000001FF8000000001FF0000000001FF0000000001FE00000
144−00001FE0000000001FE0000000001FC0000000001FC0000000001FC0000000001FC00000
145−00001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000
146−00001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000
147−00001FC0000000001FC00000007FFFFFFE0000FFFFFFFF0000FFFFFFFF0000FFFFFFFF00
148−00FFFFFFFF00007FFFFFFE00002C2C7DAB33>114 D<0003C00000000007E0000000000F
149−E0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000F
150−E0000000000FE0000000000FE0000000000FE00000003FFFFFFFFC007FFFFFFFFE00FFFF
151−FFFFFE00FFFFFFFFFE00FFFFFFFFFE007FFFFFFFFC00000FE0000000000FE0000000000F
152−E0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000F
153−E0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000F
154−E0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000F
155−E0000000000FE0001F00000FE0003F80000FE0003F80000FE0003F80000FE0003F80000F
156−E0003F80000FE0007F80000FF0007F000007F000FF000007F801FF000007FE07FE000003
157−FFFFFC000001FFFFF8000000FFFFF00000007FFFE00000001FFF8000000007FC00002938
158−7EB633>116 D<3FFFC00FFFF07FFFE01FFFF8FFFFF03FFFFCFFFFF03FFFFC7FFFE01FFF
159−F83FFFC00FFFF001F800007E0001FC0000FE0000FC0000FC0000FC0000FC0000FE0001FC
160−00007E0001F800007E0001F800007F0003F800003F0003F000003F0003F000003F8007F0
161−00001F8007E000001F8007E000001FC00FE000000FC00FC000000FC00FC000000FC00FC0
162−000007E01F80000007E01F80000007E01F80000007F03F80000003F03F00000003F03F00
163−000003F87F00000001F87E00000001F87E00000001FCFE00000000FCFC00000000FCFC00
164−000000FFFC000000007FF8000000007FF8000000007FF8000000003FF0000000003FF000
165−0000001FE0000000000FC000002E2B7EAA33>118 D<3FFFC07FFF807FFFE0FFFFC0FFFF
166−F1FFFFE0FFFFF1FFFFE07FFFE0FFFFC03FFFC07FFF8000FE000FE000007F001FC000003F
167−801FC000003F803F8000001FC07F0000000FE07E00000007F0FE00000007F1FC00000003
168−FBF800000001FFF800000000FFF000000000FFE0000000007FC0000000003FC000000000
169−1F80000000003F80000000003FC0000000007FE000000000FFE000000001FBF000000001
170−F9F800000003F1FC00000007E0FC00000007E07E0000000FC07F0000001FC03F8000003F
171−801F8000003F001FC000007F000FE00000FE0007F00001FC0003F0007FFFC03FFFE0FFFF
172−E07FFFF0FFFFE07FFFF0FFFFE07FFFF0FFFFE07FFFF07FFFC03FFFE02C2B7DAA33>120
173−D E /Fc 1 43 df<000F0000001F8000001F8000001F8000001F8000001F8000001F8000
174−781F81E0FE1F87F0FF1F8FF0FFDFBFF07FFFFFE03FFFFFC00FFFFF0003FFFC0000FFF000
175−00FFF00003FFFC000FFFFF003FFFFFC07FFFFFE0FFDFBFF0FF1F8FF0FE1F87F0781F81E0
176−001F8000001F8000001F8000001F8000001F8000001F8000000F00001C207BA627>42
177−D E /Fd 1 122 df<01E0000007F8000E0E3C001F1C3E003F383E003E303E003E703E00
178−3E607E007EE07C007CC07C007CC0FC007C80F800FC00F800F801F800F801F000F801F001
179−F803F001F003E001F003E001F003E003F007E003E007C003E007C003E007C007E007C007
180−C003C00FC003E01FC003E03FC001F07F80007FEF80001F8F8000001F8000001F0000001F
181−003E003E003E003E007E007C007E00F8007C01F0007003E0003007C0003C0F80000FFE00
182−0003F00000202C7E9D23>121 D E /Fe 3 121 df<1E007F80FF80FFC0FFC0FFE0FFE0FF
183−E07FE01E60006000600060006000E000C000C000C001C001800380030007000E001C0018
184−00380030000B1C798919>59 D<01F0000FF0000007FC003FFE00000F1F00F01F00000E1F
185−03C00F80001E0F87000FC0001C0F8E0007C0003C0FDC0007E000380FF80007E000380FF0
186−0007E000781FF00007E000701FE00007E000701FC00007E000701FC00007E000F01F8000
187−0FE000F03F80000FC000003F00000FC000003F00000FC000003F00001FC000007F00001F
188−8000007E00001F8000007E00003F8000007E00003F000000FE00003F000000FC00007F00
189−0000FC00007E000000FC00007E000001FC0000FE038001F80000FC038001F80000FC0380
190−01F80001FC078003F80001F8070003F00001F8070003F00001F80F0003F00001F00E0007
191−F00001F01E0007E00001F01C0007E00001F0380007E00001F078000FE00000F8F0000FC0
192−00007FC000038000001F000031297EA737>110 D<0001F8003F000007FE00FFE0001E0F
193−83C0F0003807C780F8007003CF03F800E003FE03F801C003FC07F803C003FC07F8038003
194−F807F8070003F807F0070003F801C00E0003F000000E0003F000001E0007F000001E0007
195−F00000000007E00000000007E0000000000FE0000000000FC0000000000FC0000000000F
196−C0000000001FC0000000001F80000000001F80000000001F80000000003F80000000003F
197−0001C000003F0001C000003F0001C000007F0003C01E007F0003803F007E0007807F80FE
198−0007007F80FE000F00FF81FE001E00FF01DF001C00FE03DF0038007C078F80F0003C0F07
199−C1E0001FFC03FF800007F0007E00002D297EA734>120 D E /Ff
200−51 121 df<0000000FFF0000000001FFFFC00000000FFFFFF00000007FFFFFF8000001FF
201−F803FC000003FFC000FE00000FFF0003FE00001FFE0007FF00003FFC000FFF00003FF800
202−0FFF00007FF0000FFF00007FF0001FFF8000FFF0000FFF0000FFE0000FFF0000FFE0000F
203−FF0000FFE0000FFF0000FFE00007FE0000FFE00001F80000FFE00000000000FFE0000000
204−0000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000000000
205−00FFE001FFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FF
206−FFFFFFFFFF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FF
207−E00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE0
208−0003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE000
209−03FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003
210−FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF
211−8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF80
212−00FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF807FFFFFC1FFFFFF7F
213−FFFFC1FFFFFF7FFFFFC1FFFFFF7FFFFFC1FFFFFF7FFFFFC1FFFFFF38467EC53E>12
214−D<07C01FF03FF87FFCFFFEFFFEFFFEFFFEFFFEFFFEFFFE7FFC3FF81FF007C00F0F788E1F
215−>46 D<0000000001C00000000003E00000000007E00000000007E0000000000FE0000000
216−000FC0000000001FC0000000001F80000000001F80000000003F80000000003F00000000
217−007F00000000007E00000000007E0000000000FE0000000000FC0000000001FC00000000
218−01F80000000001F80000000003F80000000003F00000000003F00000000007F000000000
219−07E0000000000FE0000000000FC0000000000FC0000000001FC0000000001F8000000000
220−3F80000000003F00000000003F00000000007F00000000007E0000000000FE0000000000
221−FC0000000000FC0000000001FC0000000001F80000000003F80000000003F00000000003
222−F00000000007F00000000007E0000000000FE0000000000FC0000000000FC0000000001F
223−C0000000001F80000000003F80000000003F00000000003F00000000007F00000000007E
224−00000000007E0000000000FE0000000000FC0000000001FC0000000001F80000000001F8
225−0000000003F80000000003F00000000007F00000000007E00000000007E0000000000FE0
226−000000000FC0000000001FC0000000001F80000000001F80000000003F80000000003F00
227−000000007F00000000007E00000000007E0000000000FE0000000000FC0000000001FC00
228−00000001F80000000001F80000000003F80000000003F00000000003F00000000007F000
229−00000007E0000000000FE0000000000FC0000000000FC0000000001FC0000000001F8000
230−0000003F80000000003F00000000003F00000000007F00000000007E0000000000FE0000
231−000000FC0000000000FC0000000000F800000000007800000000002B647ACA38>I<0000
232−3FF800000001FFFF0000000FFFFFE000003FFFFFF800007FF01FFC0000FFC007FE0001FF
233−0001FF0003FE0000FF8007FE0000FFC007FC00007FC00FFC00007FE00FF800003FE01FF8
234−00003FF01FF800003FF03FF800003FF83FF800003FF83FF000001FF87FF000001FFC7FF0
235−00001FFC7FF000001FFC7FF000001FFC7FF000001FFC7FF000001FFCFFF000001FFEFFF0
236−00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0
237−00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0
238−00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0
239−00001FFEFFF000001FFE7FF000001FFC7FF000001FFC7FF000001FFC7FF000001FFC7FF0
240−00001FFC3FF800003FF83FF800003FF83FF800003FF81FF800003FF01FF800003FF00FF8
241−00003FE00FFC00007FE007FC00007FC007FE0000FFC003FF0001FF8001FF8003FF0000FF
242−C007FE00007FF01FFC00003FFFFFF800000FFFFFE0000003FFFF800000003FF800002F42
243−7CC038>I<000003C000000007C00000001FC00000007FC0000003FFC000003FFFC000FF
244−FFFFC000FFFFFFC000FFFFFFC000FFFFFFC000FFC3FFC0000003FFC0000003FFC0000003
245−FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FF
246−C0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0
247−000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC000
248−0003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC00000
249−03FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003
250−FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FF
251−C0000003FFC0000003FFC0000003FFC000FFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFFFFFFF
252−FCFFFFFFFFFC264177C038>I<0000FFE00000000FFFFE0000003FFFFF800000FFFFFFE0
253−0003FFFFFFF80007FC03FFFE000FE0007FFF001F80003FFF803F00000FFFC07F000007FF
254−C07FC00007FFE07FF00003FFE0FFF00001FFF0FFF80001FFF0FFF80001FFF8FFF80000FF
255−F8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF00000FFF83FE00000FFF81FC00000FF
256−F800000000FFF800000000FFF000000001FFF000000001FFF000000001FFE000000003FF
257−E000000003FFC000000007FF800000000FFF000000000FFF000000001FFC000000003FF8
258−000000003FF0000000007FE000000000FFC000000001FF0000000003FE0000000007FC00
259−0000000FF0000000001FE0000000003F80000000007F0000780000FE0000780001FC0000
260−780003F80000F80007E00000F0000FC00000F0001F800000F0003F000000F0007C000001
261−F000F8000003F001FFFFFFFFF003FFFFFFFFE007FFFFFFFFE00FFFFFFFFFE01FFFFFFFFF
262−E03FFFFFFFFFE07FFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFF
263−C0FFFFFFFFFFC02D417BC038>I<0000FFF000000007FFFF0000001FFFFFC000007FFFFF
264−F00000FF007FF80003F8003FFE0007E0001FFF0007E0000FFF000FF80007FF800FFE0007
265−FF801FFE0007FFC01FFF0007FFC01FFF0007FFC01FFF0007FFC01FFF0007FFC01FFF0007
266−FFC01FFF0007FFC00FFE0007FFC007FC0007FF8003F8000FFF800000000FFF000000001F
267−FF000000001FFE000000003FFC000000007FF800000000FFF000000001FFE00000000FFF
268−80000007FFFE00000007FFF800000007FFFF00000007FFFFC000000000FFF0000000003F
269−FC000000000FFE000000000FFF8000000007FF8000000003FFC000000003FFE000000003
270−FFE000000001FFF000000001FFF000000001FFF800000001FFF800000001FFF80FC00001
271−FFF83FF00001FFF87FF80001FFF87FF80001FFF8FFFC0001FFF8FFFC0001FFF8FFFC0001
272−FFF0FFFC0001FFF0FFFC0003FFF0FFFC0003FFE07FF80003FFE07FF00007FFC07FE00007
273−FFC03F80000FFF801FF0001FFF000FFE00FFFE0007FFFFFFF80001FFFFFFF000007FFFFF
274−C000001FFFFE00000001FFE000002D427BC038>I<000000003F0000000000003F000000
275−0000007F000000000000FF000000000001FF000000000003FF000000000003FF00000000
276−0007FF00000000000FFF00000000001FFF00000000003FFF00000000003FFF0000000000
277−7FFF0000000000FFFF0000000001F7FF0000000003E7FF0000000007E7FF0000000007C7
278−FF000000000F87FF000000001F07FF000000003E07FF000000007E07FF000000007C07FF
279−00000000F807FF00000001F007FF00000003E007FF00000007E007FF00000007C007FF00
280−00000F8007FF0000001F0007FF0000003E0007FF0000007C0007FF0000007C0007FF0000
281−00F80007FF000001F00007FF000003E00007FF000007C00007FF00000FC00007FF00000F
282−800007FF00001F000007FF00003E000007FF00007C000007FF0000FC000007FF0000FFFF
283−FFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80000000
284−0FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000F
285−FF00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF
286−00000000000FFF000000007FFFFFFF8000007FFFFFFF8000007FFFFFFF8000007FFFFFFF
287−8000007FFFFFFF8031417DC038>I<07000000030007E000003F0007FF0007FF0007FFFF
288−FFFF0007FFFFFFFE0007FFFFFFFC0007FFFFFFF80007FFFFFFF00007FFFFFFE00007FFFF
289−FF800007FFFFFE000007FFFFFC000007FFFFE0000007FFFF00000007C00000000007C000
290−00000007C00000000007C00000000007C00000000007C00000000007C00000000007C000
291−00000007C00000000007C00000000007C03FF0000007C1FFFF000007C7FFFFC00007DFFF
292−FFF00007FFE03FFC0007FF000FFE0007FC0007FF0007F00003FF8007E00003FFC007C000
293−01FFC003800001FFE000000001FFE000000000FFF000000000FFF000000000FFF0000000
294−00FFF800000000FFF800000000FFF800000000FFF80F800000FFF83FE00000FFF87FF000
295−00FFF8FFF00000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF0FFF000
296−00FFF0FFF00001FFF07FE00001FFE07FC00001FFE07E000003FFC03E000003FFC03F0000
297−07FF801FC0000FFF000FF0001FFE0007FE00FFFC0003FFFFFFF00000FFFFFFE000003FFF
298−FF8000000FFFFC00000001FFC000002D427BC038>I<000001FF800000001FFFF0000000
299−7FFFFC000001FFFFFF000007FF807F80000FFC001F80003FF0001FC0007FE0007FC000FF
300−C000FFE001FF8001FFE003FF8001FFE003FF0001FFE007FE0001FFE00FFE0001FFE00FFE
301−0001FFE01FFC0000FFC01FFC00007F801FFC00001E003FFC000000003FFC000000003FF8
302−000000007FF8000000007FF8000000007FF807FC00007FF81FFF8000FFF87FFFE000FFF8
303−FFFFF800FFF9F01FFC00FFFBC007FE00FFFF8003FF00FFFF8003FF80FFFF0001FFC0FFFE
304−0001FFC0FFFE0000FFE0FFFE0000FFE0FFFC0000FFF0FFFC0000FFF0FFFC0000FFF0FFFC
305−0000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF80000FFF87FF8
306−0000FFF87FF80000FFF87FF80000FFF87FF80000FFF83FF80000FFF83FF80000FFF83FF8
307−0000FFF03FFC0000FFF01FFC0000FFF01FFC0000FFF00FFC0001FFE00FFC0001FFE007FE
308−0001FFC007FF0003FF8003FF8003FF0001FFC007FE0000FFE01FFC00007FFFFFF800001F
309−FFFFF0000007FFFFC0000001FFFF000000003FF000002D427BC038>I<1E00000000001F
310−00000000001FFC000000001FFFFFFFFFFE1FFFFFFFFFFE1FFFFFFFFFFE1FFFFFFFFFFE3F
311−FFFFFFFFFE3FFFFFFFFFFC3FFFFFFFFFF83FFFFFFFFFF03FFFFFFFFFE03FFFFFFFFFC03F
312−FFFFFFFFC07FFFFFFFFF807E0000003F007C0000007E007C000000FC0078000000F80078
313−000001F80078000003F000F8000007E000F000000FC000F000000F8000F000001F800000
314−00003F00000000007E0000000000FC0000000000FC0000000001F80000000003F8000000
315−0003F00000000007F0000000000FE0000000000FE0000000001FE0000000001FC0000000
316−003FC0000000003FC0000000007FC0000000007F8000000000FF8000000000FF80000000
317−01FF8000000001FF8000000001FF8000000003FF8000000003FF0000000003FF00000000
318−03FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000000
319−0FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF00000000
320−0FFF000000000FFF000000000FFF000000000FFF0000000007FE0000000003FC00000000
321−01F80000002F447AC238>I<00007FF000000003FFFF0000000FFFFFC000003FFFFFF000
322−007F801FFC0001FC0003FE0003F80001FF0003F00000FF0007E000007F8007E000003F80
323−0FC000003FC00FC000003FC01FC000001FC01FC000001FC01FE000001FC01FE000001FC0
324−1FF000001FC01FF800001FC01FFE00003FC01FFF00003F801FFFC0007F801FFFF0007F00
325−0FFFFC00FF000FFFFE01FE0007FFFF83FC0007FFFFE7F80003FFFFFFE00001FFFFFFC000
326−00FFFFFF0000007FFFFFC000003FFFFFE000000FFFFFF800000FFFFFFC00003FFFFFFE00
327−00FFFFFFFF0001FF3FFFFF8007FC0FFFFFC00FF803FFFFE01FF000FFFFE01FE0007FFFF0
328−3FE0001FFFF07FC00007FFF07F800003FFF87F800000FFF8FF8000007FF8FF0000003FF8
329−FF0000001FF8FF0000000FF8FF0000000FF8FF00000007F8FF00000007F8FF00000007F8
330−FF80000007F07F80000007F07F8000000FF07FC000000FE03FE000001FE03FF000003FC0
331−1FF800007F800FFE0001FF0007FFC00FFE0003FFFFFFFC0000FFFFFFF000003FFFFFC000
332−000FFFFF00000000FFF000002D427BC038>I<00007FF000000007FFFE0000001FFFFF80
333−00007FFFFFE00000FFE03FF00001FF800FF80003FF0007FC0007FE0007FE000FFC0003FF
334−001FFC0001FF003FFC0001FF803FFC0001FF807FF80001FFC07FF80000FFC07FF80000FF
335−E07FF80000FFE0FFF80000FFE0FFF80000FFF0FFF80000FFF0FFF80000FFF0FFF80000FF
336−F0FFF80000FFF0FFF80000FFF0FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FF
337−F8FFF80001FFF87FF80001FFF87FF80001FFF87FF80001FFF83FF80003FFF83FF80003FF
338−F81FFC0003FFF81FFC0007FFF80FFE000FFFF807FE000FFFF803FF001EFFF801FFC07CFF
339−F800FFFFF8FFF8003FFFF0FFF8000FFFC0FFF00001FF00FFF000000000FFF000000000FF
340−F000000000FFE000000001FFE000000001FFE003C00001FFE00FF00001FFC01FF80001FF
341−C03FFC0003FF803FFC0003FF803FFC0003FF003FFC0007FE003FFC000FFE003FFC000FFC
342−003FF8001FF8001FF0003FF0001FC000FFE0000FF003FFC00007FFFFFF800003FFFFFE00
343−0001FFFFF80000007FFFE000000007FE0000002D427BC038>I<000000001F8000000000
344−000000001F8000000000000000003FC000000000000000003FC000000000000000007FE0
345−00000000000000007FE000000000000000007FE00000000000000000FFF0000000000000
346−0000FFF00000000000000001FFF80000000000000001FFF80000000000000001FFF80000
347−000000000003FFFC0000000000000003FFFC0000000000000007FFFE0000000000000007
348−FFFE0000000000000007FFFE000000000000000FFFFF000000000000000F9FFF00000000
349−0000001F9FFF800000000000001F1FFF800000000000001F0FFF800000000000003F0FFF
350−C00000000000003E07FFC00000000000007E07FFE00000000000007C07FFE00000000000
351−007C03FFE0000000000000FC03FFF0000000000000F801FFF0000000000001F801FFF800
352−0000000001F001FFF8000000000001F000FFF8000000000003F000FFFC000000000003E0
353−007FFC000000000007E0007FFE000000000007C0007FFE000000000007C0003FFE000000
354−00000FC0003FFF00000000000F80001FFF00000000001F80001FFF80000000001F00000F
355−FF80000000001F00000FFF80000000003F00000FFFC0000000003E000007FFC000000000
356−7E000007FFE0000000007FFFFFFFFFE0000000007FFFFFFFFFE000000000FFFFFFFFFFF0
357−00000000FFFFFFFFFFF000000001FFFFFFFFFFF800000001F0000000FFF800000001F000
358−0000FFF800000003F0000000FFFC00000003E00000007FFC00000007E00000007FFE0000
359−0007C00000003FFE00000007C00000003FFE0000000F800000003FFF0000000F80000000
360−1FFF0000001F800000001FFF8000001F000000000FFF8000003F000000000FFFC000003E
361−000000000FFFC000007E0000000007FFC000FFFFFF00000FFFFFFFF0FFFFFF00000FFFFF
362−FFF0FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF04C457CC4
363−55>65 D<00000000FFF00000700000001FFFFF0000F0000001FFFFFFE001F0000007FFFF
364−FFF803F000003FFFFFFFFE07F00000FFFFE001FF0FF00001FFFE00003F9FF00007FFF000
365−000FFFF0000FFFC0000007FFF0001FFF00000003FFF0003FFE00000001FFF0007FFC0000
366−0000FFF000FFF8000000007FF001FFF0000000003FF003FFE0000000001FF007FFE00000
367−00001FF007FFC0000000000FF00FFF80000000000FF00FFF800000000007F01FFF000000
368−000007F01FFF000000000003F03FFF000000000003F03FFE000000000003F03FFE000000
369−000003F07FFE000000000001F07FFE000000000001F07FFE000000000001F07FFC000000
370−00000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC000000
371−00000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC000000
372−00000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC000000
373−00000000FFFC00000000000000FFFC000000000000007FFC000000000000007FFE000000
374−000000007FFE000000000000F07FFE000000000000F03FFE000000000000F03FFE000000
375−000000F03FFF000000000000F01FFF000000000001F01FFF000000000001E00FFF800000
376−000001E00FFF800000000003E007FFC00000000003C007FFE00000000007C003FFE00000
377−000007C001FFF0000000000F8000FFF8000000001F00007FFC000000003F00003FFE0000
378−00007E00001FFF80000000FC00000FFFC0000001F8000007FFF0000007F0000001FFFE00
379−001FE0000000FFFFF001FF800000003FFFFFFFFF0000000007FFFFFFFC0000000001FFFF
380−FFF000000000001FFFFF80000000000000FFF800000044467AC451>67
381−D<FFFFFFFFFFFF00000000FFFFFFFFFFFFF0000000FFFFFFFFFFFFFE000000FFFFFFFFFF
382−FFFF800000FFFFFFFFFFFFFFE00000003FFE00001FFFF80000003FFE000001FFFC000000
383−3FFE0000003FFF0000003FFE0000000FFF8000003FFE00000007FFC000003FFE00000003
384−FFE000003FFE00000001FFF000003FFE00000000FFF000003FFE000000007FF800003FFE
385−000000003FFC00003FFE000000003FFC00003FFE000000001FFE00003FFE000000001FFE
386−00003FFE000000000FFF00003FFE000000000FFF00003FFE000000000FFF80003FFE0000
387−00000FFF80003FFE0000000007FF80003FFE0000000007FFC0003FFE0000000007FFC000
388−3FFE0000000007FFC0003FFE0000000007FFC0003FFE0000000007FFC0003FFE00000000
389−07FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE
390−0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FF
391−E0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000
392−000007FFE0003FFE0000000007FFE0003FFE0000000007FFC0003FFE0000000007FFC000
393−3FFE0000000007FFC0003FFE0000000007FFC0003FFE0000000007FFC0003FFE00000000
394−07FF80003FFE000000000FFF80003FFE000000000FFF80003FFE000000000FFF00003FFE
395−000000001FFF00003FFE000000001FFE00003FFE000000003FFE00003FFE000000003FFC
396−00003FFE000000007FF800003FFE00000000FFF800003FFE00000000FFF000003FFE0000
397−0001FFE000003FFE00000007FFC000003FFE0000000FFF8000003FFE0000003FFF000000
398−3FFE000001FFFE0000003FFE00000FFFF80000FFFFFFFFFFFFFFF00000FFFFFFFFFFFFFF
399−C00000FFFFFFFFFFFFFE000000FFFFFFFFFFFFF0000000FFFFFFFFFFFF000000004B447C
400−C356>I<FFFFFFFFFFFFFFF800FFFFFFFFFFFFFFF800FFFFFFFFFFFFFFF800FFFFFFFFFF
401−FFFFF800FFFFFFFFFFFFFFFC00001FFF000001FFFC00001FFF0000003FFC00001FFF0000
402−000FFC00001FFF00000003FC00001FFF00000001FC00001FFF00000000FC00001FFF0000
403−0000FC00001FFF000000007E00001FFF000000003E00001FFF000000003E00001FFF0000
404−00003E00001FFF000000001E00001FFF000000001E00001FFF000078001E00001FFF0000
405−78001E00001FFF000078000F00001FFF000078000F00001FFF000078000F00001FFF0000
406−78000F00001FFF0000F8000000001FFF0000F8000000001FFF0000F8000000001FFF0001
407−F8000000001FFF0003F8000000001FFF001FF8000000001FFFFFFFF8000000001FFFFFFF
408−F8000000001FFFFFFFF8000000001FFFFFFFF8000000001FFFFFFFF8000000001FFF001F
409−F8000000001FFF0003F8000000001FFF0001F8000000001FFF0000F8000000001FFF0000
410−F8000000001FFF0000F80001E0001FFF0000780001E0001FFF0000780001E0001FFF0000
411−780003C0001FFF0000780003C0001FFF0000780003C0001FFF0000780003C0001FFF0000
412−000003C0001FFF0000000007C0001FFF0000000007C0001FFF000000000780001FFF0000
413−00000780001FFF000000000F80001FFF000000000F80001FFF000000001F80001FFF0000
414−00001F80001FFF000000003F80001FFF000000007F00001FFF00000000FF00001FFF0000
415−0001FF00001FFF00000007FF00001FFF0000001FFF00001FFF000001FFFF00FFFFFFFFFF
416−FFFFFF00FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00FFFFFFFFFF
417−FFFFFE0043447DC34A>I<FFFFFFFFFFFFFF80FFFFFFFFFFFFFF80FFFFFFFFFFFFFF80FF
418−FFFFFFFFFFFF80FFFFFFFFFFFFFFC0003FFE00001FFFC0003FFE000001FFC0003FFE0000
419−007FC0003FFE0000003FC0003FFE0000001FC0003FFE0000000FC0003FFE00000007C000
420−3FFE00000007E0003FFE00000003E0003FFE00000003E0003FFE00000003E0003FFE0000
421−0001E0003FFE00000001E0003FFE00000001E0003FFE0001E001E0003FFE0001E000F000
422−3FFE0001E000F0003FFE0001E000F0003FFE0001E000F0003FFE0001E00000003FFE0003
423−E00000003FFE0003E00000003FFE0003E00000003FFE0007E00000003FFE000FE0000000
424−3FFE007FE00000003FFFFFFFE00000003FFFFFFFE00000003FFFFFFFE00000003FFFFFFF
425−E00000003FFFFFFFE00000003FFE007FE00000003FFE000FE00000003FFE0007E0000000
426−3FFE0003E00000003FFE0003E00000003FFE0003E00000003FFE0001E00000003FFE0001
427−E00000003FFE0001E00000003FFE0001E00000003FFE0001E00000003FFE0001E0000000
428−3FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000
429−000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000000000
430−3FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000
431−000000003FFE0000000000FFFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF0000000FF
432−FFFFFFF0000000FFFFFFFFF00000003C447CC346>I<FFFFFFFF8003FFFFFFFEFFFFFFFF
433−8003FFFFFFFEFFFFFFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFE
434−003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE000000
435−00FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003F
436−FE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FF
437−F800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00
438−000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800
439−003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE000000
440−00FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003F
441−FFFFFFFFFFFFF800003FFFFFFFFFFFFFF800003FFFFFFFFFFFFFF800003FFFFFFFFFFFFF
442−F800003FFFFFFFFFFFFFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00
443−000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800
444−003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE000000
445−00FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003F
446−FE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FF
447−F800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00
448−000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800
449−003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE000000
450−00FFF800FFFFFFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFEFFFF
451−FFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFE4F447CC358>72 D<FFFFFFFFE0FFFFFFFFE0
452−FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0001FFF0000001FFF0000001FFF0000001FFF000000
453−1FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001F
454−FF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF
455−0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF00
456−00001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000
457−001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF000000
458−1FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001F
459−FF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF
460−0000001FFF0000001FFF0000001FFF0000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFF
461−E0FFFFFFFFE023447DC32A>I<FFFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF00000
462−00FFFFFFFFF0000000FFFFFFFFF0000000003FFE0000000000003FFE0000000000003FFE
463−0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000
464−00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE
465−0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000
466−00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE
467−0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000
468−00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE
469−0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000
470−00003FFE0000000000003FFE0000000780003FFE0000000780003FFE0000000780003FFE
471−0000000780003FFE0000000F80003FFE0000000F00003FFE0000000F00003FFE0000000F
472−00003FFE0000000F00003FFE0000001F00003FFE0000001F00003FFE0000001F00003FFE
473−0000003F00003FFE0000003F00003FFE0000007E00003FFE0000007E00003FFE000000FE
474−00003FFE000001FE00003FFE000003FE00003FFE000007FE00003FFE00001FFE00003FFE
475−00007FFE00003FFE0003FFFE00FFFFFFFFFFFFFC00FFFFFFFFFFFFFC00FFFFFFFFFFFFFC
476−00FFFFFFFFFFFFFC00FFFFFFFFFFFFFC0039447CC343>76 D<FFFFFE0000000000007FFF
477−FF80FFFFFF000000000000FFFFFF80FFFFFF000000000000FFFFFF80FFFFFF8000000000
478−01FFFFFF80FFFFFF800000000001FFFFFF80003FFF800000000001FFFE0000003DFFC000
479−00000003DFFE0000003DFFC00000000003DFFE0000003CFFE000000000079FFE0000003C
480−FFE000000000079FFE0000003C7FF0000000000F1FFE0000003C7FF0000000000F1FFE00
481−00003C3FF8000000001E1FFE0000003C3FF8000000001E1FFE0000003C1FFC000000003C
482−1FFE0000003C1FFC000000003C1FFE0000003C1FFC000000003C1FFE0000003C0FFE0000
483−0000781FFE0000003C0FFE00000000781FFE0000003C07FF00000000F01FFE0000003C07
484−FF00000000F01FFE0000003C03FF80000001E01FFE0000003C03FF80000001E01FFE0000
485−003C01FFC0000003C01FFE0000003C01FFC0000003C01FFE0000003C01FFC0000003C01F
486−FE0000003C00FFE0000007801FFE0000003C00FFE0000007801FFE0000003C007FF00000
487−0F001FFE0000003C007FF000000F001FFE0000003C003FF800001E001FFE0000003C003F
488−F800001E001FFE0000003C001FFC00003C001FFE0000003C001FFC00003C001FFE000000
489−3C001FFC00003C001FFE0000003C000FFE000078001FFE0000003C000FFE000078001FFE
490−0000003C0007FF0000F0001FFE0000003C0007FF0000F0001FFE0000003C0003FF8001E0
491−001FFE0000003C0003FF8001E0001FFE0000003C0001FFC003C0001FFE0000003C0001FF
492−C003C0001FFE0000003C0000FFE00780001FFE0000003C0000FFE00780001FFE0000003C
493−0000FFE00780001FFE0000003C00007FF00F00001FFE0000003C00007FF00F00001FFE00
494−00003C00003FF81E00001FFE0000003C00003FF81E00001FFE0000003C00001FFC3C0000
495−1FFE0000003C00001FFC3C00001FFE0000003C00000FFE7800001FFE0000003C00000FFE
496−7800001FFE0000003C00000FFE7800001FFE0000003C000007FFF000001FFE0000003C00
497−0007FFF000001FFE0000003C000003FFE000001FFE0000003C000003FFE000001FFE0000
498−003C000001FFC000001FFE0000003C000001FFC000001FFE0000003C000000FF8000001F
499−FE0000003C000000FF8000001FFE0000FFFFFF0000FF80007FFFFFFF80FFFFFF00007F00
500−007FFFFFFF80FFFFFF00007F00007FFFFFFF80FFFFFF00003E00007FFFFFFF80FFFFFF00
501−001C00007FFFFFFF8061447CC36A>I<00000007FFC0000000000000FFFFFE0000000000
502−07FFFFFFC0000000001FFFFFFFF0000000007FFE00FFFC00000001FFF0001FFF00000007
503−FF800003FFC000000FFF000001FFE000001FFC0000007FF000003FF80000003FF800007F
504−F00000001FFC0000FFF00000001FFE0001FFE00000000FFF0003FFC000000007FF8003FF
505−C000000007FF8007FF8000000003FFC007FF8000000003FFC00FFF0000000001FFE00FFF
506−0000000001FFE01FFF0000000001FFF01FFE0000000000FFF03FFE0000000000FFF83FFE
507−0000000000FFF83FFE0000000000FFF87FFE0000000000FFFC7FFC00000000007FFC7FFC
508−00000000007FFC7FFC00000000007FFC7FFC00000000007FFCFFFC00000000007FFEFFFC
509−00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC
510−00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC
511−00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFE7FFC
512−00000000007FFC7FFE0000000000FFFC7FFE0000000000FFFC7FFE0000000000FFFC3FFE
513−0000000000FFF83FFE0000000000FFF83FFF0000000001FFF81FFF0000000001FFF01FFF
514−0000000001FFF01FFF8000000003FFF00FFF8000000003FFE00FFF8000000003FFE007FF
515−C000000007FFC003FFC000000007FF8003FFE00000000FFF8001FFF00000001FFF0000FF
516−F80000003FFE00007FFC0000007FFC00003FFE000000FFF800001FFF000001FFF000000F
517−FFC00007FFE0000007FFF0001FFFC0000001FFFE00FFFF00000000FFFFFFFFFE00000000
518−3FFFFFFFF80000000007FFFFFFC00000000000FFFFFE00000000000007FFC00000004746
519−7AC454>79 D<FFFFFFFFFFFF000000FFFFFFFFFFFFF00000FFFFFFFFFFFFFE0000FFFFFF
520−FFFFFFFF8000FFFFFFFFFFFFFFE000001FFF00000FFFF000001FFF000001FFF800001FFF
521−0000007FFC00001FFF0000003FFE00001FFF0000001FFF00001FFF0000000FFF80001FFF
522−0000000FFF80001FFF0000000FFFC0001FFF00000007FFC0001FFF00000007FFC0001FFF
523−00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF
524−00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF
525−00000007FFE0001FFF00000007FFC0001FFF00000007FFC0001FFF0000000FFF80001FFF
526−0000000FFF80001FFF0000000FFF00001FFF0000001FFF00001FFF0000003FFE00001FFF
527−0000007FFC00001FFF000001FFF800001FFF00000FFFF000001FFFFFFFFFFFC000001FFF
528−FFFFFFFF0000001FFFFFFFFFFC0000001FFFFFFFFFC00000001FFF000000000000001FFF
529−000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF
530−000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF
531−000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF
532−000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF
533−000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF
534−000000000000001FFF000000000000001FFF000000000000001FFF000000000000FFFFFF
535−FFE000000000FFFFFFFFE000000000FFFFFFFFE000000000FFFFFFFFE000000000FFFFFF
536−FFE00000000043447DC34D>I<FFFFFFFFFFF800000000FFFFFFFFFFFFC0000000FFFFFF
537−FFFFFFF8000000FFFFFFFFFFFFFE000000FFFFFFFFFFFFFF800000001FFF00003FFFE000
538−00001FFF000003FFF00000001FFF000000FFF80000001FFF0000007FFC0000001FFF0000
539−003FFE0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF800000
540−1FFF0000000FFF8000001FFF0000000FFF8000001FFF0000000FFFC000001FFF0000000F
541−FFC000001FFF0000000FFFC000001FFF0000000FFFC000001FFF0000000FFFC000001FFF
542−0000000FFFC000001FFF0000000FFFC000001FFF0000000FFF8000001FFF0000000FFF80
543−00001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000003FFE0000001FFF0000
544−003FFC0000001FFF0000007FFC0000001FFF000001FFF00000001FFF000007FFE0000000
545−1FFF00003FFF800000001FFFFFFFFFFF000000001FFFFFFFFFF8000000001FFFFFFFFFE0
546−000000001FFFFFFFFFF8000000001FFF0000FFFC000000001FFF00003FFF000000001FFF
547−00000FFF800000001FFF000007FFC00000001FFF000003FFE00000001FFF000003FFE000
548−00001FFF000001FFF00000001FFF000001FFF00000001FFF000000FFF80000001FFF0000
549−00FFF80000001FFF000000FFF80000001FFF000000FFF80000001FFF000000FFF8000000
550−1FFF000000FFF80000001FFF000000FFF80000001FFF000000FFFC0000001FFF000000FF
551−FC0000001FFF000000FFFC0000001FFF000000FFFC0000001FFF000000FFFC0000001FFF
552−000000FFFC0000001FFF000000FFFC000F001FFF000000FFFE000F001FFF000000FFFE00
553−0F001FFF0000007FFE000F001FFF0000007FFF001F001FFF0000003FFF001EFFFFFFFFE0
554−001FFF803EFFFFFFFFE0000FFFE0FCFFFFFFFFE00007FFFFF8FFFFFFFFE00001FFFFF0FF
555−FFFFFFE000007FFFE00000000000000007FF8050457DC354>82 D<0000FFE0001C000007
556−FFFE003C00003FFFFF807C0000FFFFFFE0FC0001FFFFFFF9FC0003FF801FFFFC0007FC00
557−01FFFC000FF800007FFC001FF000003FFC003FE000000FFC003FC0000007FC007FC00000
558−03FC007F80000003FC007F80000001FC007F80000000FC00FF80000000FC00FF80000000
559−7C00FF800000007C00FFC00000007C00FFC00000007C00FFE00000003C00FFF00000003C
560−00FFF80000003C00FFFC00000000007FFE00000000007FFFE0000000007FFFFE00000000
561−3FFFFFF00000003FFFFFFF0000001FFFFFFFE000001FFFFFFFFC00000FFFFFFFFE000007
562−FFFFFFFF800003FFFFFFFFC00001FFFFFFFFE000007FFFFFFFF000001FFFFFFFF8000007
563−FFFFFFFC000000FFFFFFFC0000000FFFFFFE00000000FFFFFE0000000007FFFF00000000
564−007FFF00000000003FFF00000000000FFF800000000007FF800000000003FF80F0000000
565−03FF80F000000001FF80F000000001FF80F000000000FF80F000000000FF80F800000000
566−FF80F800000000FF80F800000000FF00FC00000000FF00FC00000000FF00FE00000001FF
567−00FF00000001FE00FF80000003FE00FFC0000003FC00FFE0000007FC00FFF800000FF800
568−FFFF00003FF000FFFFF800FFE000FE7FFFFFFFC000FC1FFFFFFF0000F807FFFFFC0000F0
569−00FFFFF00000E00007FF80000031467AC43E>I<3FFFFFFFFFFFFFFFE03FFFFFFFFFFFFF
570−FFE03FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE03FFE000FFF8003
571−FFE07FE0000FFF80003FF07FC0000FFF80001FF07F00000FFF800007F07F00000FFF8000
572−07F07E00000FFF800003F07C00000FFF800001F07C00000FFF800001F07C00000FFF8000
573−01F07800000FFF800000F07800000FFF800000F07800000FFF800000F07800000FFF8000
574−00F0F800000FFF800000F8F000000FFF80000078F000000FFF80000078F000000FFF8000
575−0078F000000FFF80000078F000000FFF800000780000000FFF800000000000000FFF8000
576−00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000
577−00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000
578−00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000
579−00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000
580−00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000
581−00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000
582−00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000
583−00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000
584−00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000
585−00000007FFFFFFFFFF00000007FFFFFFFFFF00000007FFFFFFFFFF00000007FFFFFFFFFF
586−00000007FFFFFFFFFF000045437CC24E>I<FFFFFFFF000000FFFFFFFFFFFFFF000000FF
587−FFFFFFFFFFFF000000FFFFFFFFFFFFFF000000FFFFFFFFFFFFFF000000FFFFFF003FFE00
588−00000000FC00003FFF0000000000FC00001FFF0000000000F800001FFF8000000001F800
589−000FFF8000000001F000000FFFC000000001F000000FFFC000000003F0000007FFC00000
590−0003E0000007FFE000000007E0000003FFE000000007C0000003FFF00000000FC0000001
591−FFF00000000F80000001FFF80000000F80000001FFF80000001F80000000FFFC0000001F
592−00000000FFFC0000003F000000007FFC0000003E000000007FFE0000007E000000003FFE
593−0000007C000000003FFF0000007C000000003FFF000000FC000000001FFF800000F80000
594−00001FFF800001F8000000000FFF800001F0000000000FFFC00003F00000000007FFC000
595−03E00000000007FFE00003E00000000007FFE00007E00000000003FFF00007C000000000
596−03FFF0000FC00000000001FFF0000F800000000001FFF8001F800000000000FFF8001F00
597−0000000000FFFC003F0000000000007FFC003E0000000000007FFE003E0000000000007F
598−FE007E0000000000003FFE007C0000000000003FFF00FC0000000000001FFF00F8000000
599−0000001FFF81F80000000000000FFF81F00000000000000FFFC1F00000000000000FFFC3
600−F000000000000007FFC3E000000000000007FFE7E000000000000003FFE7C00000000000
601−0003FFFFC000000000000001FFFF8000000000000001FFFF8000000000000001FFFF8000
602−000000000000FFFF0000000000000000FFFF00000000000000007FFE0000000000000000
603−7FFE00000000000000003FFC00000000000000003FFC00000000000000003FFC00000000
604−000000001FF800000000000000001FF800000000000000000FF000000000000000000FF0
605−000000000000000007E0000000000000000007E00000000050457EC355>86
606−D<0001FFE0000000001FFFFE000000007FFFFF80000001FFFFFFE0000003FE007FF80000
607−07FC001FFC000007FE000FFE00000FFF0007FF00000FFF0007FF00000FFF0003FF80000F
608−FF0003FF80000FFF0003FF80000FFF0001FFC00007FE0001FFC00003FC0001FFC00000F0
609−0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000003
610−FFFFC0000000FFFFFFC0000007FFFFFFC000003FFFF1FFC00000FFFC01FFC00003FFE001
611−FFC0000FFF8001FFC0001FFE0001FFC0003FFC0001FFC0003FF80001FFC0007FF80001FF
612−C0007FF00001FFC000FFF00001FFC000FFE00001FFC000FFE00001FFC000FFE00001FFC0
613−00FFE00003FFC000FFE00003FFC000FFF00007FFC0007FF8000FFFC0007FF8001FFFF000
614−3FFE003EFFFFC01FFF80FC7FFFC007FFFFF87FFFC003FFFFE01FFFC0007FFF8007FFC000
615−0FFC00000000322F7DAD36>97 D<007FC000000000FFFFC000000000FFFFC000000000FF
616−FFC000000000FFFFC000000000FFFFC00000000003FFC00000000001FFC00000000001FF
617−C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0
618−0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000
619−00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000
620−000001FFC00FF8000001FFC0FFFF800001FFC3FFFFE00001FFCFFFFFF80001FFDFC03FFC
621−0001FFFF000FFE0001FFFC0003FF0001FFF80001FF8001FFF00001FFC001FFE00000FFE0
622−01FFC00000FFE001FFC000007FF001FFC000007FF001FFC000007FF801FFC000003FF801
623−FFC000003FF801FFC000003FF801FFC000003FFC01FFC000003FFC01FFC000003FFC01FF
624−C000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC0
625−00003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FF801FFC000
626−003FF801FFC000007FF801FFC000007FF001FFC000007FF001FFC000007FF001FFC00000
627−FFE001FFE00000FFC001FFF00001FFC001FFF80003FF8001FF7C0007FF0001FE3E000FFE
628−0001FC1FC07FFC0001F80FFFFFF00001F003FFFFC00001E000FFFF00000000001FF00000
629−36467DC43E>I<00003FFC00000001FFFFC000000FFFFFF000003FFFFFFC00007FF003FE
630−0000FFC001FF0003FF8003FF0007FF0007FF8007FE0007FF800FFE0007FF801FFC0007FF
631−801FFC0007FF803FF80007FF803FF80003FF007FF80001FE007FF8000078007FF0000000
632−007FF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000
633−00FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000
634−00FFF0000000007FF8000000007FF8000000007FF8000000003FF8000000003FFC000003
635−C03FFC000003C01FFE000007C00FFE000007800FFF00000F8007FF80001F0003FFC0003E
636−0001FFF0007C00007FFC03F800003FFFFFF000000FFFFFC0000003FFFF000000003FF800
637−002A2F7CAD32>I<0000000003FE0000000007FFFE0000000007FFFE0000000007FFFE00
638−00000007FFFE0000000007FFFE00000000001FFE00000000000FFE00000000000FFE0000
639−0000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000000
640−00000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000
641−000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0000003FE0
642−0FFE000003FFFC0FFE00000FFFFF8FFE00003FFFFFCFFE0000FFF807FFFE0001FFC001FF
643−FE0003FF80007FFE0007FF00003FFE000FFE00001FFE000FFC00000FFE001FFC00000FFE
644−003FF800000FFE003FF800000FFE003FF800000FFE007FF800000FFE007FF000000FFE00
645−7FF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FF
646−F000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF0
647−00000FFE00FFF000000FFE00FFF000000FFE007FF000000FFE007FF000000FFE007FF000
648−000FFE007FF800000FFE003FF800000FFE003FF800000FFE001FFC00001FFE001FFC0000
649−1FFE000FFE00003FFE0007FE00007FFE0003FF0000FFFF0001FFC003FFFFFC00FFF01FEF
650−FFFC007FFFFF8FFFFC001FFFFE0FFFFC0007FFF80FFFFC00007FC00FF80036467CC43E>
651−I<00003FF800000003FFFF8000000FFFFFE000003FFFFFF000007FF83FF80000FFC007FC
652−0001FF8003FE0003FF0001FF0007FE0000FF800FFC0000FF801FFC00007FC01FF800007F
653−C03FF800003FE03FF800003FE07FF800003FE07FF000003FE07FF000003FF07FF000001F
654−F0FFF000001FF0FFF000001FF0FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFF
655−F0FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000007FF0000000
656−007FF0000000007FF8000000007FF8000000003FF8000000003FF8000000F01FFC000000
657−F01FFC000001F00FFE000001E007FF000003E003FF800007C001FFC0000F8000FFF0003F
658−00007FFE01FE00001FFFFFFC000007FFFFF0000001FFFFC00000001FFE00002C2F7DAD33
659−>I<000000FF8000000FFFE000007FFFF00001FFFFF80003FF8FFC000FFE0FFE001FFC1F
660−FE001FF81FFE003FF81FFE007FF01FFE007FF01FFE007FF00FFC00FFE00FFC00FFE003F0
661−00FFE000C000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000
662−FFE0000000FFE0000000FFE0000000FFE0000000FFE00000FFFFFFF800FFFFFFF800FFFF
663−FFF800FFFFFFF800FFFFFFF80000FFE0000000FFE0000000FFE0000000FFE0000000FFE0
664−000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000
665−0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000
666−00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000
667−FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF
668−E000007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE00027467DC522>I<00
669−00FFE0007E00000FFFFE03FF80003FFFFF8FFF8000FFFFFFFFFFC001FFC07FFF3FC003FF
670−001FF83FC007FE000FFC3FC00FFC0007FE1F801FFC0007FF0F001FF80003FF00001FF800
671−03FF00003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003
672−FF80003FF80003FF80003FF80003FF80003FF80003FF80001FF80003FF00001FF80003FF
673−00001FFC0007FF00000FFC0007FE000007FE000FFC000003FF001FF8000001FFC07FF000
674−0003FFFFFFE0000003FFFFFF800000078FFFFE0000000780FFE00000000F800000000000
675−0F8000000000000F8000000000000F8000000000000FC000000000000FE000000000000F
676−F000000000000FFFFFFFC000000FFFFFFFFC000007FFFFFFFF800007FFFFFFFFE00003FF
677−FFFFFFF00001FFFFFFFFFC0000FFFFFFFFFC0003FFFFFFFFFE000FFFFFFFFFFF001FF000
678−007FFF003FC0000007FF007F80000001FF807F80000000FF80FF00000000FF80FF000000
679−007F80FF000000007F80FF000000007F80FF000000007F80FF80000000FF807F80000000
680−FF007FC0000001FF003FE0000003FE001FF0000007FC000FFE00003FF80007FFC001FFF0
681−0001FFFFFFFFC000007FFFFFFF0000000FFFFFF8000000007FFF00000032427DAC38>I<
682−007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000FF
683−FFC00000000003FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF
684−C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0
685−0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000
686−00000001FFC00000000001FFC00000000001FFC00000000001FFC007FE000001FFC03FFF
687−800001FFC0FFFFE00001FFC1FFFFF80001FFC7F03FFC0001FFCF801FFC0001FFDF000FFE
688−0001FFDE000FFE0001FFFC000FFE0001FFF80007FF0001FFF00007FF0001FFF00007FF00
689−01FFE00007FF0001FFE00007FF0001FFE00007FF0001FFC00007FF0001FFC00007FF0001
690−FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF
691−C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0
692−0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000
693−07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007
694−FF0001FFC00007FF0001FFC00007FF00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFF
695−FEFFFFFF83FFFFFEFFFFFF83FFFFFE37457CC43E>I<007C0001FF0003FF8007FFC007FF
696−C00FFFE00FFFE00FFFE00FFFE00FFFE007FFC007FFC003FF8001FF00007C000000000000
697−00000000000000000000000000000000000000000000000000007FC07FFFC07FFFC07FFF
698−C07FFFC07FFFC003FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
699−C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
700−C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
701−C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18467CC520>I<000003E000000FF800001FFC00
702−003FFE00003FFE00007FFF00007FFF00007FFF00007FFF00007FFF00003FFE00003FFE00
703−001FFC00000FF8000003E000000000000000000000000000000000000000000000000000
704−000000000000000000000000000000000001FF0003FFFF0003FFFF0003FFFF0003FFFF00
705−03FFFF00000FFF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00
706−0007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00
707−0007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00
708−0007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00
709−0007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF1F
710−8007FF3FC007FF7FE007FFFFF007FFFFF00FFEFFF00FFEFFF00FFCFFF01FFCFFE01FF87F
711−E03FF03FC0FFE01FFFFF800FFFFF0003FFFC0000FFC000205A86C522>I<007FC0000000
712−00FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000
713−03FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001
714−FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF
715−C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0
716−0000000001FFC00000000001FFC00000000001FFC00000000001FFC0007FFFE001FFC000
717−7FFFE001FFC0007FFFE001FFC0007FFFE001FFC0007FFFE001FFC0000FE00001FFC0001F
718−C00001FFC0003F000001FFC0007E000001FFC000FC000001FFC003F8000001FFC007E000
719−0001FFC00FC0000001FFC01F80000001FFC07F00000001FFC0FE00000001FFC1FC000000
720−01FFC3FE00000001FFC7FE00000001FFDFFF00000001FFFFFF80000001FFFFFFC0000001
721−FFFFFFC0000001FFF9FFE0000001FFE1FFF0000001FFC0FFF8000001FF807FF8000001FF
722−803FFC000001FF803FFE000001FF801FFF000001FF800FFF000001FF8007FF800001FF80
723−07FFC00001FF8003FFE00001FF8001FFE00001FF8000FFF00001FF8000FFF80001FF8000
724−7FFC0001FF80003FFC00FFFFFF03FFFFF8FFFFFF03FFFFF8FFFFFF03FFFFF8FFFFFF03FF
725−FFF8FFFFFF03FFFFF835457DC43B>I<007FC000FFFFC000FFFFC000FFFFC000FFFFC000
726−FFFFC00003FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
727−01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
728−01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
729−01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
730−01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
731−01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
732−01FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80FFFFFF80
733−FFFFFF8019457CC420>I<007F8007FE00000FFC0000FFFF803FFFC0007FFF8000FFFF80
734−FFFFF001FFFFE000FFFF81FFFFF803FFFFF000FFFF87F01FFC0FE03FF800FFFF8FC00FFE
735−1F801FFC0003FF9F000FFF3E001FFE0001FF9E0007FF3C000FFE0001FFBC0007FF78000F
736−FE0001FFF80003FFF00007FF0001FFF80003FFF00007FF0001FFF00003FFE00007FF0001
737−FFE00003FFC00007FF0001FFE00003FFC00007FF0001FFE00003FFC00007FF0001FFC000
738−03FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF80
739−0007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF
740−0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FF
741−C00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003
742−FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF8000
743−07FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF00
744−01FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC0
745−0003FF800007FF0001FFC00003FF800007FF00FFFFFF81FFFFFF03FFFFFEFFFFFF81FFFF
746−FF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FF
747−FFFE572D7CAC5E>I<007F8007FE0000FFFF803FFF8000FFFF80FFFFE000FFFF81FFFFF8
748−00FFFF87F03FFC00FFFF8F801FFC0003FF9F000FFE0001FF9E000FFE0001FFBC000FFE00
749−01FFF80007FF0001FFF00007FF0001FFF00007FF0001FFE00007FF0001FFE00007FF0001
750−FFE00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF
751−C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0
752−0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000
753−07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007
754−FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF
755−00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFE
756−372D7CAC3E>I<00001FFC0000000001FFFFC000000007FFFFF00000001FFFFFFC000000
757−7FF80FFF000000FFC001FF800001FF8000FFC00003FE00003FE00007FE00003FF0000FFC
758−00001FF8000FF800000FF8001FF800000FFC001FF800000FFC003FF800000FFE003FF000
759−0007FE007FF0000007FF007FF0000007FF007FF0000007FF007FF0000007FF00FFF00000
760−07FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007
761−FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF807FF0000007FF
762−007FF0000007FF007FF0000007FF007FF0000007FF003FF800000FFE003FF800000FFE00
763−1FF800000FFC001FFC00001FFC000FFC00001FF80007FE00003FF00007FE00003FF00003
764−FF8000FFE00001FFC001FFC000007FF80FFF0000003FFFFFFE0000000FFFFFF800000001
765−FFFFC0000000001FFC000000312F7DAD38>I<007FC00FF80000FFFFC0FFFF8000FFFFC3
766−FFFFE000FFFFCFFFFFF800FFFFDFC03FFC00FFFFFF001FFE0003FFFC0007FF0001FFF800
767−03FF8001FFF00003FFC001FFE00001FFE001FFC00001FFE001FFC00000FFF001FFC00000
768−FFF001FFC000007FF801FFC000007FF801FFC000007FF801FFC000007FF801FFC000003F
769−FC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC
770−01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01
771−FFC000003FFC01FFC000007FF801FFC000007FF801FFC000007FF801FFC000007FF001FF
772−C00000FFF001FFC00000FFF001FFC00001FFE001FFE00001FFC001FFF00003FFC001FFF8
773−0007FF8001FFFC000FFF0001FFFE001FFE0001FFDFC07FFC0001FFCFFFFFF00001FFC3FF
774−FFC00001FFC0FFFF000001FFC01FF0000001FFC00000000001FFC00000000001FFC00000
775−000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000
776−0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000
777−FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF8000000036
778−407DAC3E>I<007F807F00FFFF81FFE0FFFF83FFF0FFFF8FFFF8FFFF8F8FFCFFFF9F1FFE
779−03FFBE1FFE01FFBC1FFE01FFF81FFE01FFF81FFE01FFF01FFE01FFF00FFC01FFE007F801
780−FFE001E001FFE0000001FFE0000001FFE0000001FFC0000001FFC0000001FFC0000001FF
781−C0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0
782−000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC000
783−0001FFC0000001FFC0000001FFC0000001FFC0000001FFC00000FFFFFFE000FFFFFFE000
784−FFFFFFE000FFFFFFE000FFFFFFE000272D7DAC2E>114 D<001FFC038000FFFF878003FF
785−FFFF800FFFFFFF801FF003FF803FC000FF803F80003F807F00001F807E00001F80FE0000
786−0F80FE00000F80FE00000780FF00000780FF00000780FF80000780FFE0000000FFFE0000
787−007FFFF000007FFFFF00003FFFFFC0003FFFFFF0001FFFFFFC000FFFFFFE0003FFFFFF00
788−01FFFFFF80007FFFFF80000FFFFFC000003FFFC0000003FFE0000000FFE0F000003FE0F0
789−00003FE0F800001FE0F800000FE0F800000FE0FC00000FE0FC00000FE0FE00000FC0FF00
790−001FC0FF00001FC0FF80003F80FFE0007F00FFF803FE00FFFFFFFC00FCFFFFF800F03FFF
791−E000E007FE0000232F7CAD2C>I<0001E000000001E000000001E000000001E000000001
792−E000000003E000000003E000000003E000000003E000000007E000000007E00000000FE0
793−0000000FE00000001FE00000001FE00000003FE00000007FE0000000FFE0000003FFE000
794−000FFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF8000FFE0000000FFE00000
795−00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000
796−FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF
797−E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE001E000FFE001E000FFE0
798−01E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE003
799−E000FFF003C0007FF003C0007FF007C0003FF80F80001FFC1F00000FFFFF000007FFFC00
800−0001FFF80000003FE00023407EBE2C>I<007FC00001FF00FFFFC003FFFF00FFFFC003FF
801−FF00FFFFC003FFFF00FFFFC003FFFF00FFFFC003FFFF0003FFC0000FFF0001FFC00007FF
802−0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00
803−01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001
804−FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF
805−C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0
806−0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000
807−0FFF0001FFC0000FFF0001FFC0001FFF0001FFC0001FFF0001FFC0003FFF0000FFC0003F
808−FF0000FFE0007FFF80007FE001F7FFFE007FF807E7FFFE003FFFFFC7FFFE000FFFFF07FF
809−FE0003FFFE07FFFE00007FF007FC00372E7CAC3E>I<FFFFFF0003FFFCFFFFFF0003FFFC
810−FFFFFF0003FFFCFFFFFF0003FFFCFFFFFF0003FFFC01FFE000003E0000FFE000003C0000
811−FFF000003C00007FF000007800007FF800007800007FF80000F800003FF80000F000003F
812−FC0001F000001FFC0001E000001FFE0003E000000FFE0003C000000FFF0007C0000007FF
813−000780000007FF800F80000003FF800F00000003FFC00F00000003FFC01F00000001FFE0
814−1E00000001FFE03E00000000FFE03C00000000FFF07C000000007FF078000000007FF8F8
815−000000003FF8F0000000003FFDF0000000001FFDE0000000001FFFE0000000000FFFC000
816−0000000FFFC0000000000FFFC00000000007FF800000000007FF800000000003FF000000
817−000003FF000000000001FE000000000001FE000000000000FC000000000000FC00000000
818−000078000000362C7EAB3B>I<FFFFFE1FFFFF801FFFF0FFFFFE1FFFFF801FFFF0FFFFFE
819−1FFFFF801FFFF0FFFFFE1FFFFF801FFFF0FFFFFE1FFFFF801FFFF001FFC0003FE000007C
820−0001FFC0003FF00000780001FFE0003FF00000F80000FFE0001FF80000F00000FFF0001F
821−F80001F000007FF0000FFC0001E000007FF0000FFC0001E000007FF8001FFC0003E00000
822−3FF8001FFE0003C000003FFC003FFE0007C000001FFC003FFF00078000001FFC003FFF00
823−078000001FFE0079FF000F8000000FFE0079FF800F0000000FFF00F9FF801F00000007FF
824−00F0FFC01E00000007FF80F0FFC01E00000003FF81E07FC03C00000003FF81E07FE03C00
825−000003FFC3E07FE07C00000001FFC3C03FF07800000001FFE7C03FF07800000000FFE780
826−1FF0F000000000FFE7801FF8F000000000FFFF801FF9F0000000007FFF000FFDE0000000
827−007FFF000FFFE0000000003FFE0007FFC0000000003FFE0007FFC0000000003FFE0007FF
828−C0000000001FFC0003FF80000000001FFC0003FF80000000000FF80001FF00000000000F
829−F80001FF00000000000FF00000FF000000000007F00000FE000000000007F00000FE0000
830−00000003E000007C000000000003C000003C0000004C2C7EAB51>I<FFFFFE003FFFF0FF
831−FFFE003FFFF0FFFFFE003FFFF0FFFFFE003FFFF0FFFFFE003FFFF000FFF00003E000007F
832−F80007C000003FF8000F8000001FFC001F0000001FFE003F0000000FFF007E00000007FF
833−807C00000003FFC0F800000001FFC1F000000001FFE3E000000000FFF7C0000000007FFF
834−80000000003FFF80000000001FFF00000000001FFE00000000000FFF000000000007FF80
835−0000000003FFC00000000003FFC00000000007FFE0000000000FFFF0000000000FFFF800
836−0000001F3FFC000000003E1FFC000000007C1FFE00000000F80FFF00000001F007FF8000
837−0003F003FFC0000007E001FFC0000007C001FFE000000F8000FFF000001F00007FF80000
838−3E00003FFC00007E00001FFC00FFFFE000FFFFFCFFFFE000FFFFFCFFFFE000FFFFFCFFFF
839−E000FFFFFCFFFFE000FFFFFC362C7EAB3B>I E /Fg 6 118 df<0003F000000FF800003E
840−1C60007C0FF000F807F001F007F003E007F007E003E00FC003E00FC003E01F8007E01F80
841−07C03F0007C03F0007C03F000FC07F000F807E000F807E000F807E001F80FE001F00FC00
842−1F00FC001F06FC003F07FC003E0FFC003E0EFC007E0E7C007E1E7C00FE1C7C01FC1C3C03
843−FC3C3E07BE381F0E1E7807FC0FF001F003C0202278A027>97 D<0000FC000007FF00001F
844−0780003E03C000FC01C001F803C003F007C007E00FC007C00FC00FC00FC01F8007001F80
845−00003F0000003F0000003F0000007F0000007E0000007E0000007E000000FE000000FC00
846−0000FC000000FC000000FC0000007C0000C07C0001E07C0001E07C0003C03E000F803E00
847−1F001F007C000F81F00003FFC00000FE00001B2278A023>99 D<000FC0000003FFC00000
848−03FFC0000003FF800000001F800000001F800000001F800000001F000000001F00000000
849−3F000000003F000000003E000000003E000000007E000000007E000000007C000000007C
850−00000000FC00000000FC00000000F83F800000F8FFE00001FBE0F00001FF80F80001FF00
851−780001FE007C0003FC007C0003F8007C0003F0007C0003F0007C0007E000FC0007E000F8
852−0007C000F80007C000F8000FC001F8000FC001F0000F8001F0000F8001F0001F8003F000
853−1F8003E0001F0007E0001F0007C0C03F0007C1E03F000FC1C03E000F81C03E000F81C07E
854−000F83C07E000F03807C000F07807C000F0700FC000F0E00FC000F1E00F80007F8007000
855−01F00023357BB327>104 D<0003F0001FFC003C1E00780F00F00701E00701E00F03E01F
856−03C01F03C01F03E00403E00003F00003FF8003FFE001FFF000FFF8007FFC0007FC0000FE
857−00007E00003E38003EFC003CFC003CFC003CFC007CF00078E000F0F001F07803E03C0F80
858−1FFE0003F80018227AA01F>115 D<000300000F80000F80000F80001F80001F80001F00
859−001F00003F00003F00003E00003E00007E00007E00007C007FFFF87FFFF8FFFFF800F800
860−00F80001F80001F80001F00001F00003F00003F00003E00003E00007E00007E00007C000
861−07C0000FC0000FC0000F80000F80601F80F01F80E01F00E01F01E01F01C01F03C01E0380
862−1E07001E0F000F1E0007F80001E00015307AAE19>I<01F000000003FC0007000F1E000F
863−000E1E001F001C1E001F003C1E001F00381E003F00783E003E00703E003E00703E003E00
864−707E007E00F07C007C0060FC007C0000F8007C0000F800FC0001F800F80001F000F80001
865−F000F80001F001F80003F001F00003E001F00003E001F06003E003F07003E003E0F007C0
866−03E0E007C003E0E003C007E1E003C007E1C003E00FC1C003E01FC3C001E03FE38001F071
867−E780007FE0FF00001F803C0024227AA029>I E /Fh 2 104 df<000007E000003FE00000
868−FE000003F8000007F000000FE000000FC000001FC000001F8000001F8000001F8000001F
869−8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F
870−8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F
871−8000001F8000003F8000003F0000007E000000FC000003F800007FE00000FF0000007FE0
872−000003F8000000FC0000007E0000003F0000003F8000001F8000001F8000001F8000001F
873−8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F
874−8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F
875−8000001F8000001FC000000FC000000FE0000007F0000003F8000000FE0000003FE00000
876−07E01B4B7BB726>102 D<FC000000FFC0000007F0000001FC000000FE0000007F000000
877−3F0000003F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000
878−1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000
879−1F8000001F8000001F8000001F8000001F8000001F8000001F8000001FC000000FC00000
880−07E0000003F0000001FC0000007FC000001FE000007FC00001FC000003F0000007E00000
881−0FC000001FC000001F8000001F8000001F8000001F8000001F8000001F8000001F800000
882−1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000
883−1F8000001F8000001F8000001F8000001F8000001F8000001F8000003F8000003F000000
884−7F000000FE000001FC000007F00000FFC00000FC0000001B4B7BB726>I
885−E /Fi 38 122 df<00003FE00FE00001FFF83FF80007E01EF83C001F800FF07E003F001F
886−E0FE007E003FE0FE00FC003FC0FE01F8003FC0FE01F8003FC03803F0001F800003F0001F
887−800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F
888−800003F0001F800003F0001F800003F0001F800003F0001F8000FFFFFFFFFFC0FFFFFFFF
889−FFC0FFFFFFFFFFC003F0001F800003F0001F800003F0001F800003F0001F800003F0001F
890−800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F
891−800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F
892−800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F
893−800003F0001F800003F0001F800007F8003FC000FFFF83FFFF00FFFF83FFFF00FFFF83FF
894−FF002F357FB42D>11 D<00001FE0000000FFFC000003F01E00000FC00780001F80078000
895−3F000FC0007E001FC000FC001FC000FC001FC001F8001FC001F8000F8001F800000001F8
896−00000001F800000001F800000001F800000001F800000001F800000001F800000001F800
897−000001F8000FC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC001F8001FC001F8000FC001F8000F
898−C001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC0
899−01F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001
900−F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8
901−000FC003FC001FE07FFFC1FFFF7FFFC1FFFF7FFFC1FFFF28357FB42B>I<3C007E00FF00
902−FF00FF80FF807F803D800180018001800180038003000300070006000E000C001C003800
903−7000600009177AB315>39 D<3C007E00FF00FF00FF80FF807F803D800180018001800180
904−038003000300070006000E000C001C0038007000600009177A8715>44
905−D<3C7EFFFFFFFF7E3C08087A8715>46 D<000FE000007FFC0000F83E0003E00F8007C007
906−C0078003C00F8003E01F0001F01F0001F03F0001F83F0001F83E0000F87E0000FC7E0000
907−FC7E0000FC7E0000FC7E0000FCFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000
908−FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000
909−FEFE0000FEFE0000FEFE0000FE7E0000FC7E0000FC7E0000FC7E0000FC7E0000FC3F0001
910−F83F0001F83F0001F81F0001F01F0001F00F8003E007C007C007C007C003E00F8000F83E
911−00007FFC00000FE0001F347DB126>48 D<001FE00000FFFC0001FFFF0007E03F800F001F
912−C01E000FE01C0007F03F0007F03F8007F83F8003F83FC003F83F8003F83F8003F81F0007
913−F8000007F8000007F0000007F000000FE000000FC000001FC000003F8000007E000001F8
914−00007FE000007FFC0000003F0000001FC000000FE0000007F0000007F8000003F8000003
915−FC000001FC000001FE000001FE000001FE7E0001FEFF0001FEFF0001FEFF0001FEFF0001
916−FEFF0001FCFE0003FC780003FC700007F8380007F03C000FF01F001FE00FE03F8003FFFF
917−0000FFFC00001FE0001F347DB126>51 D<3C7EFFFFFFFF7E3C0000000000000000000000
918−00000000003C7EFEFFFFFF7F3F03030303070606060E0C1C38307060082F7A9F15>59
919−D<000000E0000000000000E0000000000000E0000000000001F0000000000001F0000000
920−000003F8000000000003F8000000000003F8000000000007FC000000000007FC00000000
921−0007FC00000000000DFE00000000000CFE00000000000CFE0000000000187F0000000000
922−187F0000000000187F0000000000303F8000000000303F8000000000703FC00000000060
923−1FC000000000601FC000000000E01FE000000000C00FE000000000C00FE000000001800F
924−F0000000018007F0000000018007F0000000030003F8000000030003F8000000030003F8
925−000000060001FC000000060001FC0000000E0001FE0000000FFFFFFE0000000FFFFFFE00
926−00001FFFFFFF0000001800007F0000001800007F0000003000007F8000003000003F8000
927−003000003F8000006000001FC000006000001FC000006000001FC00000C000000FE00000
928−C000000FE00001C000000FF00001C0000007F00003E0000007F0001FF000000FF800FFFE
929−0001FFFFE0FFFE0001FFFFE0FFFE0001FFFFE033367DB53A>65 D<FFFFFE000000FFFFFE
930−000000FFFFFE00000003FE0000000001FC0000000001FC0000000001FC0000000001FC00
931−00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
932−00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
933−00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
934−00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00
935−00018001FC0000018001FC0000018001FC0000018001FC0000038001FC0000030001FC00
936−00030001FC0000030001FC0000030001FC0000070001FC0000070001FC00000F0001FC00
937−001F0001FC00003F0001FC00007F0001FC0000FE0003FC0007FE00FFFFFFFFFE00FFFFFF
938−FFFE00FFFFFFFFFE0029337DB230>76 D<FFFE00001FFFF8FFFF00001FFFF8FFFF80001F
939−FFF800FF800000FF0000FFC000003C0000DFE00000180000CFF00000180000CFF0000018
940−0000C7F80000180000C3FC0000180000C3FC0000180000C1FE0000180000C0FF00001800
941−00C07F8000180000C07F8000180000C03FC000180000C01FE000180000C01FE000180000
942−C00FF000180000C007F800180000C003FC00180000C003FC00180000C001FE00180000C0
943−00FF00180000C000FF00180000C0007F80180000C0003FC0180000C0001FE0180000C000
944−1FE0180000C0000FF0180000C00007F8180000C00007F8180000C00003FC180000C00001
945−FE180000C00000FF180000C00000FF180000C000007F980000C000003FD80000C000003F
946−D80000C000001FF80000C000000FF80000C0000007F80000C0000007F80000C0000003F8
947−0000C0000001F80000C0000001F80001E0000000F80007F80000007800FFFFC000003800
948−FFFFC000003800FFFFC00000180035337EB23A>78 D<001FE00300007FFC070001FFFF07
949−0007F01FCF000F8003FF001F0000FF003E00007F003E00003F007C00001F007C00001F00
950−7800000F00F800000700F800000700F800000700F800000700FC00000300FC00000300FE
951−00000300FE000000007F000000007FC00000003FF00000003FFF0000001FFFF000000FFF
952−FF000007FFFFC00003FFFFF00000FFFFF800003FFFFC000003FFFE0000003FFF00000003
953−FF00000000FF800000007F800000003F800000001FC00000000FC0C000000FC0C000000F
954−C0C0000007C0C0000007C0C0000007C0E0000007C0E0000007C0F000000F80F000000F80
955−F800000F00FC00001F00FE00003E00FF00007E00FFC000FC00F1FC03F800E0FFFFE000E0
956−1FFF8000C003FE000022377CB42B>83 D<7FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE7F
957−8007F001FE7C0007F0003E780007F0001E700007F0000E700007F0000E600007F00006E0
958−0007F00007E00007F00007E00007F00007C00007F00003C00007F00003C00007F00003C0
959−0007F00003C00007F00003C00007F00003000007F00000000007F00000000007F0000000
960−0007F00000000007F00000000007F00000000007F00000000007F00000000007F0000000
961−0007F00000000007F00000000007F00000000007F00000000007F00000000007F0000000
962−0007F00000000007F00000000007F00000000007F00000000007F00000000007F0000000
963−0007F00000000007F00000000007F00000000007F00000000007F00000000007F0000000
964−0007F00000000007F0000000000FF80000001FFFFFFC00001FFFFFFC00001FFFFFFC0030
965−337DB237>I<FFFFFE001FFFF8FFFFFE001FFFF8FFFFFE001FFFF801FF000000FF0000FE
966−0000003C0000FE000000180000FE000000180000FE000000180000FE000000180000FE00
967−0000180000FE000000180000FE000000180000FE000000180000FE000000180000FE0000
968−00180000FE000000180000FE000000180000FE000000180000FE000000180000FE000000
969−180000FE000000180000FE000000180000FE000000180000FE000000180000FE00000018
970−0000FE000000180000FE000000180000FE000000180000FE000000180000FE0000001800
971−00FE000000180000FE000000180000FE000000180000FE000000180000FE000000180000
972−FE000000180000FE000000180000FE000000180000FE0000003800007F0000003000007F
973−0000003000007F0000007000003F8000006000001F800000E000001FC00001C000000FC0
974−0003C0000007E0000780000003F0000F00000001FC001E00000000FF00FC000000003FFF
975−F0000000000FFFC00000000001FF00000035357EB23A>I<FFF0FFF0FFF0FFF0F000F000
976−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
977−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
978−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
979−F000F000F000F000F000F000F000F000F000F000F000FFF0FFF0FFF0FFF00C4B79B715>
980−91 D<FFF0FFF0FFF0FFF000F000F000F000F000F000F000F000F000F000F000F000F000
981−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
982−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
983−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
984−F0FFF0FFF0FFF0FFF00C4B7FB715>93 D<007F80000003FFF000000F80FC00001C003E00
985−003F003F00003F801F80003F800FC0003F800FC0003F8007E0001F0007E000000007E000
986−000007E000000007E000000007E0000001FFE000001FFFE00000FF87E00003FC07E0000F
987−F007E0001FC007E0003F8007E0007F8007E0007F0007E000FF0007E0C0FE0007E0C0FE00
988−07E0C0FE0007E0C0FE000FE0C0FE000FE0C0FF001FE0C07F003BE0C03F8071F1801FC1E1
989−FF8007FFC0FF0000FE003C0022237DA126>97 D<03F0000000FFF0000000FFF0000000FF
990−F000000007F000000003F000000003F000000003F000000003F000000003F000000003F0
991−00000003F000000003F000000003F000000003F000000003F000000003F000000003F000
992−000003F000000003F03F800003F0FFE00003F3C0F80003F7007E0003FE003F0003FC001F
993−8003F8000FC003F0000FC003F00007E003F00007F003F00007F003F00003F003F00003F8
994−03F00003F803F00003F803F00003F803F00003F803F00003F803F00003F803F00003F803
995−F00003F803F00003F803F00003F003F00007F003F00007E003F00007E003F0000FC003F8
996−000FC003FC001F8003EC003F0003CF007C00038381F8000301FFE00000007F000025357E
997−B32B>I<0007F800003FFF0000FC07C001F000E003E003F007C007F00FC007F01F8007F0
998−3F8007F03F0003E07F0000007F0000007E000000FE000000FE000000FE000000FE000000
999−FE000000FE000000FE000000FE000000FE000000FE0000007F0000007F0000003F000018
1000−3F8000181F8000381FC000300FC0007007E000E003F001C000FC0F80003FFE000007F000
1001−1D237EA122>I<0000003F0000000FFF0000000FFF0000000FFF000000007F000000003F
1002−000000003F000000003F000000003F000000003F000000003F000000003F000000003F00
1003−0000003F000000003F000000003F000000003F000000003F000000003F000007F03F0000
1004−3FFC3F0000FC0F3F0001F003BF0007E001FF000FC000FF001F80007F001F80003F003F00
1005−003F003F00003F007F00003F007E00003F00FE00003F00FE00003F00FE00003F00FE0000
1006−3F00FE00003F00FE00003F00FE00003F00FE00003F00FE00003F00FE00003F007E00003F
1007−007F00003F007F00003F003F00003F001F80007F001F80007F000FC000FF0007E001FF80
1008−03F007BFFC00F81E3FFC003FFC3FFC000FE03F0026357DB32B>I<000FE000007FFC0000
1009−F83F0003F00F8007E00FC00FC007E01F8003E01F8003F03F0003F03F0001F07F0001F87E
1010−0001F87E0001F8FE0001F8FE0001F8FFFFFFF8FFFFFFF8FE000000FE000000FE000000FE
1011−000000FE0000007E0000007F0000007F0000003F0000183F0000181F8000380F8000300F
1012−C0007007E000E001F003C000FC0F00003FFE000007F0001D237EA122>I<0001FC000007
1013−FF00001F0780003E0FC0007C1FC000FC1FC001F81FC001F81FC003F8070003F0000003F0
1014−000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0
1015−000003F00000FFFFF000FFFFF000FFFFF00003F0000003F0000003F0000003F0000003F0
1016−000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0
1017−000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0
1018−000003F0000003F0000007F800007FFFE0007FFFE0007FFFE0001A357FB417>I<000000
1019−1F00001FC07F8000FFF8E3C001F07FC7C007E03F03C00FC01F83800F800F80001F800FC0
1020−001F0007C0003F0007E0003F0007E0003F0007E0003F0007E0003F0007E0003F0007E000
1021−1F0007C0001F800FC0000F800F80000FC01F800007E03F000007F07C00000EFFF800000C
1022−1FC000001C000000001C000000001C000000001E000000001E000000001F000000000FFF
1023−FE00000FFFFFC00007FFFFF00003FFFFFC0007FFFFFE001F0001FE003E00007F007C0000
1024−3F007C00001F80F800000F80F800000F80F800000F80F800000F80F800000F80FC00001F
1025−807C00001F003E00003E001F00007C000FC001F80003F007E00000FFFF8000001FFC0000
1026−22337EA126>I<03F0000000FFF0000000FFF0000000FFF000000007F000000003F00000
1027−0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
1028−03F000000003F000000003F000000003F000000003F000000003F000000003F01FC00003
1029−F07FF00003F1E0FC0003F3807C0003F7007E0003FE007E0003FC003F0003FC003F0003F8
1030−003F0003F8003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F000
1031−3F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F
1032−0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0007F8007F80
1033−FFFFC7FFFCFFFFC7FFFCFFFFC7FFFC26347EB32B>I<07800FC01FE01FE01FE01FE00FC0
1034−0780000000000000000000000000000000000000000007E0FFE0FFE0FFE00FE007E007E0
1035−07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E0
1036−07E007E007E007E00FF0FFFFFFFFFFFF10337EB215>I<07E0FFE0FFE0FFE00FE007E007
1037−E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007
1038−E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007
1039−E007E007E007E007E007E00FF0FFFFFFFFFFFF10347EB315>108
1040−D<03F01FE000FF0000FFF07FF803FFC000FFF1E07C0F03E000FFF3803E1C01F00007F700
1041−3F3801F80003FE003F7001F80003FC001FE000FC0003FC001FE000FC0003F8001FC000FC
1042−0003F8001FC000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F000
1043−1F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC
1044−0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F000
1045−1F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC
1046−0003F0001F8000FC0003F0001F8000FC0007F8003FC001FE00FFFFC7FFFE3FFFF0FFFFC7
1047−FFFE3FFFF0FFFFC7FFFE3FFFF03C217EA041>I<03F01FC000FFF07FF000FFF1E0FC00FF
1048−F3807C0007F7007E0003FE007E0003FC003F0003FC003F0003F8003F0003F8003F0003F0
1049−003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F000
1050−3F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F
1051−0003F0003F0003F0003F0003F0003F0003F0003F0007F8007F80FFFFC7FFFCFFFFC7FFFC
1052−FFFFC7FFFC26217EA02B>I<0007F00000003FFE000000FC1F800001F007C00003C001E0
1053−0007C001F0000F8000F8001F00007C001F00007C003F00007E003E00003E007E00003F00
1054−7E00003F007E00003F00FE00003F80FE00003F80FE00003F80FE00003F80FE00003F80FE
1055−00003F80FE00003F80FE00003F807E00003F007E00003F007E00003F003F00007E003F00
1056−007E001F00007C001F8000FC000FC001F80007C001F00003F007E00000FC1F8000003FFE
1057−00000007F0000021237EA126>I<03F03F8000FFF0FFE000FFF3C0F800FFF7007E0007FE
1058−003F0003FC001F8003F8001FC003F0000FC003F0000FE003F00007F003F00007F003F000
1059−07F003F00003F803F00003F803F00003F803F00003F803F00003F803F00003F803F00003
1060−F803F00003F803F00003F803F00007F803F00007F003F00007F003F00007E003F0000FE0
1061−03F0000FC003F8001FC003FC003F8003FC003F0003FF00FC0003F381F80003F1FFE00003
1062−F07F000003F000000003F000000003F000000003F000000003F000000003F000000003F0
1063−00000003F000000003F000000003F000000007F8000000FFFFC00000FFFFC00000FFFFC0
1064−000025307EA02B>I<03E07C00FFE1FF00FFE38F80FFE71FC007EE1FC003EC1FC003EC1F
1065−C003FC0F8003F8000003F8000003F8000003F0000003F0000003F0000003F0000003F000
1066−0003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000
1067−0003F0000003F0000003F0000003F0000007F80000FFFFE000FFFFE000FFFFE0001A217F
1068−A01E>114 D<00FF060007FFCE001F00FE003C003E0078001E0078000E00F0000E00F000
1069−0600F0000600F8000600F8000600FE000000FF8000007FFC00003FFFC0003FFFF0000FFF
1070−F80007FFFC0000FFFE00000FFF000000FF0000003F80C0001F80C0000F80E0000780E000
1071−0780E0000780F0000780F0000700F8000F00FC000E00FE001C00F7807800E1FFE000C07F
1072−800019237EA11E>I<00300000300000300000300000300000700000700000700000F000
1073−00F00001F00001F00003F00007F0001FFFFEFFFFFEFFFFFE03F00003F00003F00003F000
1074−03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F003
1075−03F00303F00303F00303F00303F00303F00303F00303F00701F80601F80600FC0E007E1C
1076−001FF80007E0182F7FAD1E>I<03F0003F00FFF00FFF00FFF00FFF00FFF00FFF0007F000
1077−7F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F
1078−0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F00
1079−03F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0007F0003F0007F0003
1080−F0007F0003F000FF0001F000FF0001F801FF8000F803BFFC007E073FFC001FFE3FFC0007
1081−F83F0026227EA02B>I<FFFF00FFF0FFFF00FFF0FFFF00FFF00FF0003F8007F0001F0003
1082−F0000E0003F0000C0003F8001C0001F800180001F800180000FC00300000FC00300000FE
1083−007000007E006000007F006000003F00C000003F00C000001F818000001F818000001FC3
1084−8000000FC30000000FC300000007E600000007E600000007FE00000003FC00000003FC00
1085−000001F800000001F800000001F800000000F000000000F00000000060000024217E9F29
1086−>I<FFFF1FFF81FFF0FFFF1FFF81FFF0FFFF1FFF81FFF007F801FC003F8007F001F8001E
1087−0003F000F8001C0003F000FC001C0001F8007C00180001F8007C00180001FC007E003800
1088−00FC00FE00300000FC00FE003000007E01FF006000007E019F006000007E019F80600000
1089−3F030F80C000003F030F80C000003F030FC0C000001F8607C18000001F8607C18000001F
1090−C607E38000000FCC03E30000000FCC03E300000007FC03F600000007F801F600000007F8
1091−01FE00000003F000FC00000003F000FC00000003F000FC00000001E0007800000001E000
1092−7800000001E0007800000000C00030000034217F9F37>I<FFFF01FFF8FFFF01FFF8FFFF
1093−01FFF803FE00FF8001FC007C0000FC007800007E007000007F00E000003F81C000001F83
1094−8000000FC300000007E600000007FE00000003FC00000001F800000000FC00000000FE00
1095−000000FF00000001FF000000039F800000071FC00000060FE000000C07E000001C03F000
1096−003801F800007001FC0000F000FC0001F000FE000FF000FF80FFFC03FFFCFFFC03FFFCFF
1097−FC03FFFC26207F9F29>I<7FFF807FF87FFF807FF87FFF807FF807F8001FC003F8000F80
1098−01F800070001F800060000FC000C0000FC000C0000FE001C00007E001800007E00180000
1099−3F003000003F003000003F807000001F806000001FC0E000000FC0C000000FC0C0000007
1100−E180000007E180000007F380000003F300000003FB00000001FE00000001FE00000000FC
1101−00000000FC00000000FC0000000078000000007800000000300000000030000000006000
1102−0000006000000000E000000000C000000000C0000000018000007801800000FC03000000
1103−FC03000000FC06000000FC0E000000701C00000078380000001FF00000000FC000000025
1104−307F9F29>I E /Fj 5 53 df<0000380000000038000000003800000000380000000038
1105−000000003800000000380000000038000000003800000000380000000038000000003800
1106−00000038000000003800000000380000000038000000003800000000380000FFFFFFFFFE
1107−FFFFFFFFFEFFFFFFFFFE0000380000000038000000003800000000380000000038000000
1108−003800000000380000000038000000003800000000380000000038000000003800000000
1109−3800000000380000000038000000003800000000380000000038000027277C9F2F>43
1110−D<00E00001E00007E000FFE000F9E00001E00001E00001E00001E00001E00001E00001E0
1111−0001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E0
1112−0001E00001E00001E00001E00001E00001E00003F000FFFFC0FFFFC012217AA01E>49
1113−D<01FC0007FF801C0FC03003E06001F06000F8F800F8FC00FCFC00FCFC007C78007C3000
1114−FC0000FC0000F80000F80001F00003E00003C0000780000F00001E0000380000700000E0
1115−0001C00C03800C0600180C00181800183FFFF87FFFF8FFFFF0FFFFF016217CA01E>I<00
1116−FF0003FFC00F03E01C00F01C00F83E00FC3E007C3E007C1E00FC0C00FC0000F80000F800
1117−01F00003E0000FC001FF0001FF000003E00000F000007800007C00003E00003F30003F78
1118−003FFC003FFC003FFC003EF8007E60007C3800F81E03F00FFFC001FF0018227DA01E>I<
1119−0000E00001E00001E00003E00007E00007E0000DE0001DE00039E00031E00061E000E1E0
1120−00C1E00181E00381E00701E00601E00C01E01C01E01801E03001E07001E0E001E0FFFFFF
1121−FFFFFF0001E00001E00001E00001E00001E00001E00003F0003FFF003FFF18227DA11E>
1122−I E /Fk 5 107 df<000FFC0000003FFF000000FFFFC00003FFFFF00007FFFFF8000FFF
1123−FFFC001FFFFFFE003FFFFFFF003FFFFFFF007FFFFFFF807FFFFFFF807FFFFFFF80FFFFFF
1124−FFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFF
1125−C0FFFFFFFFC0FFFFFFFFC07FFFFFFF807FFFFFFF807FFFFFFF803FFFFFFF003FFFFFFF00
1126−1FFFFFFE000FFFFFFC0007FFFFF80003FFFFF00000FFFFC000003FFF0000000FFC000022
1127−227BA72D>15 D<0000000000000030000000000000000000780000000000000000007800
1128−00000000000000007C0000000000000000003C0000000000000000003C00000000000000
1129−00003E0000000000000000001E0000000000000000001E0000000000000000001F000000
1130−0000000000000F8000000000000000000F80000000000000000007C00000000000000000
1131−03E0000000000000000003E0000000000000000001F0000000000000000000F800000000
1132−00000000007C0000000000000000007E0000000000000000001F8000000000000000000F
1133−C0000000000000000007F07FFFFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
1134−FFFFFFFFFF7FFFFFFFFFFFFFFFFFFC000000000000000007F000000000000000000FC000
1135−000000000000001F8000000000000000007E0000000000000000007C0000000000000000
1136−00F8000000000000000001F0000000000000000003E0000000000000000003E000000000
1137−0000000007C000000000000000000F8000000000000000000F8000000000000000001F00
1138−00000000000000001E0000000000000000001E0000000000000000003E00000000000000
1139−00003C0000000000000000003C0000000000000000007C00000000000000000078000000
1140−0000000000007800000000000000000030000050307BAE5B>33 D<0000003F000003FF00
1141−000FE000003F8000007E000001FC000001F8000003F0000003F0000007E0000007E00000
1142−07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000
1143−07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000
1144−07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000000FE00000
1145−0FC000001FC000003F8000003F000000FE000003F800007FE00000FF0000007FE0000003
1146−F8000000FE0000003F0000003F8000001FC000000FC000000FE0000007E0000007E00000
1147−07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000
1148−07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000
1149−07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000003F00000
1150−03F0000001F8000001FC0000007E0000003F8000000FE0000003FF0000003F205B7AC32D
1151−>102 D<FC000000FFC0000007F0000001FC0000007E0000003F8000001F8000000FC000
1152−000FC0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
1153−0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
1154−0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
1155−0007E0000007E0000007F0000003F0000003F8000001FC000000FC0000007F0000001FC0
1156−000007FE000000FF000007FE00001FC000007F000000FC000001FC000003F8000003F000
1157−0007F0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
1158−0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
1159−0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
1160−0007E0000007E000000FC000000FC000001F8000003F8000007E000001FC000007F00000
1161−FFC00000FC000000205B7AC32D>I<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
1162−F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
1163−F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F060045B
1164−76C319>106 D E /Fl 4 53 df<000C00003C00007C0003FC00FFFC00FC7C00007C0000
1165−7C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000
1166−7C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000
1167−7C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000FE007FFFFE7F
1168−FFFE172C7AAB23>49 D<007F800001FFF0000780FC000E003F001C001F8038000FC07000
1169−0FC0600007E0F00007E0FC0007F0FE0007F0FE0003F0FE0003F0FE0003F07C0007F00000
1170−07F0000007F0000007E000000FE000000FC000001FC000001F8000003F0000007E000000
1171−7C000000F8000001F0000003E0000007C000000F8000001E0000003C00000078000000F0
1172−003000E0003001C0003003800060070000600E0000E01FFFFFE03FFFFFE07FFFFFC0FFFF
1173−FFC0FFFFFFC01C2C7DAB23>I<003FC00001FFF00007C0FC000E007E001C003F001C001F
1174−803F001FC03F001FC03F800FC03F000FC03F000FC00C001FC000001FC000001F8000001F
1175−8000003F0000003E0000007C000000F8000003F00000FFC00000FFF0000000FC0000003F
1176−0000001F8000001FC000000FC000000FE000000FE0000007F0000007F0380007F07C0007
1177−F0FE0007F0FE0007F0FE0007F0FE000FE0F8000FE060000FC070001FC038001F801E003F
1178−000780FC0001FFF000007FC0001C2D7DAB23>I<00000E0000000E0000001E0000003E00
1179−00003E0000007E000000FE000000FE000001BE000003BE0000033E0000063E00000E3E00
1180−000C3E0000183E0000383E0000303E0000603E0000E03E0000C03E0001803E0003803E00
1181−03003E0006003E000E003E000C003E0018003E0038003E0030003E0060003E00E0003E00
1182−FFFFFFFCFFFFFFFC00003E0000003E0000003E0000003E0000003E0000003E0000003E00
1183−00003E0000003E0000007F00001FFFFC001FFFFC1E2D7EAC23>I
1184−E /Fm 52 122 df<000000FFF8000000000FFFFF000000007FFFFF80000001FFFFFFE000
1185−0007FFC01FF000000FFE0007F000001FF8000FF800003FE0001FF800007FC0003FFC0000
1186−FFC0003FFC0000FF80003FFC0001FF80003FFC0001FF00003FFC0001FF00003FFC0001FF
1187−00001FF80001FF00000FF00001FF000003C00001FF000000000001FF000000000001FF00
1188−0000000001FF000000000001FF000000000001FF000000000001FF000003FC00FFFFFFFF
1189−FFFC00FFFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC0001FF80001F
1190−FC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC
1191−0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC00
1192−01FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001
1193−FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF
1194−80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80
1195−000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC007FFFFE03FFFFF07FFFFE03
1196−FFFFF07FFFFE03FFFFF07FFFFE03FFFFF07FFFFE03FFFFF034407EBF3A>12
1197−D<0FC0001F801FE0003FC03FF0007FE07FF800FFF0FFFC01FFF8FFFC01FFF8FFFC01FFF8
1198−FFFE01FFFCFFFE01FFFCFFFE01FFFC7FFE00FFFC3FFE007FFC1FFE003FFC0FDE001FBC00
1199−1E00003C001E00003C003E00007C003C000078003C000078007C0000F800780000F00078
1200−0000F000F80001F001F00003E001F00003E003E00007C007C0000F800F80001F001F8000
1201−3F003F00007E003E00007C001C0000380026207DBE37>34 D<FFFFFFE0FFFFFFE0FFFFFF
1202−E0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE01B097F9823>45
1203−D<0FC01FE03FF07FF8FFFCFFFCFFFCFFFCFFFCFFFC7FF83FF01FE00FC00E0E798D1D>I<
1204−0000FFE000000007FFFC0000001FFFFF0000007FFFFFC00000FFE0FFE00001FF803FF000
1205−03FE000FF80007FC0007FC0007FC0007FC000FF80003FE001FF80003FF001FF80003FF00
1206−1FF80003FF003FF00001FF803FF00001FF803FF00001FF807FF00001FFC07FF00001FFC0
1207−7FF00001FFC07FF00001FFC07FF00001FFC0FFF00001FFE0FFF00001FFE0FFF00001FFE0
1208−FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0
1209−FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0
1210−FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE07FF00001FFC0
1211−7FF00001FFC07FF00001FFC07FF00001FFC07FF00001FFC03FF00001FF803FF80003FF80
1212−3FF80003FF801FF80003FF001FF80003FF000FF80003FE000FFC0007FE0007FE000FFC00
1213−03FF001FF80001FF803FF00000FFE0FFE000007FFFFFC000001FFFFF00000007FFFC0000
1214−0000FFE000002B3D7CBB34>48 D<00000F000000003F000000007F00000001FF0000000F
1215−FF000001FFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFF7FF0000FE07FF00000007FF
1216−00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00
1217−000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF0000
1218−0007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF000000
1219−07FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007
1220−FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF
1221−00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00
1222−00FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0243C78BB34>I<0003FF
1223−800000003FFFF8000000FFFFFE000003FFFFFF800007FFFFFFC0000FF80FFFE0001FC003
1224−FFF0003F8000FFF8007FC0007FFC007FE0003FFE00FFF0003FFE00FFF8001FFF00FFF800
1225−1FFF00FFF8000FFF80FFF8000FFF80FFF8000FFF80FFF8000FFF807FF0000FFF803FE000
1226−0FFF801FC0000FFF800700000FFF800000000FFF800000001FFF000000001FFF00000000
1227−1FFE000000003FFE000000003FFC000000007FF8000000007FF800000000FFF000000000
1228−FFE000000001FFC000000003FF8000000007FE0000000007FC000000000FF8000000001F
1229−E0000000003FC0000000007F8000000000FF000F800001FC000F800003F8000F800007F0
1230−001F00000FE0001F00001F80001F00003F00001F00007E00003F0000FC00003F0001FFFF
1231−FFFF0003FFFFFFFE0007FFFFFFFE000FFFFFFFFE001FFFFFFFFE003FFFFFFFFE007FFFFF
1232−FFFE00FFFFFFFFFE00FFFFFFFFFC00FFFFFFFFFC00FFFFFFFFFC00FFFFFFFFFC00293C7B
1233−BB34>I<0001FFE00000000FFFFE0000003FFFFF800000FFFFFFE00001FF81FFF00003FC
1234−007FF80007F0003FFC0007F0003FFE000FFC001FFE000FFE001FFF001FFE001FFF001FFF
1235−001FFF001FFF001FFF001FFF001FFF001FFF001FFF001FFF001FFF000FFE001FFF000FFE
1236−001FFE0007FC003FFE0001F0003FFC000000003FFC000000007FF8000000007FF0000000
1237−00FFE000000001FFC00000000FFF80000007FFFE00000007FFF800000007FFFE00000007
1238−FFFFC000000001FFF0000000007FF8000000003FFC000000001FFE000000000FFF000000
1239−000FFF800000000FFF8000000007FFC000000007FFC000000007FFE00FC00007FFE01FE0
1240−0007FFE03FF00007FFE07FF80007FFE0FFFC0007FFE0FFFC0007FFE0FFFC0007FFE0FFFC
1241−0007FFC0FFFC0007FFC0FFFC000FFFC0FFF8000FFF807FF8000FFF807FF0001FFF003FC0
1242−003FFE001FE0007FFC000FFE01FFF80007FFFFFFF00003FFFFFFE00000FFFFFF8000003F
1243−FFFE00000003FFE000002B3D7CBB34>I<00000001F80000000003F80000000007F80000
1244−000007F8000000000FF8000000001FF8000000003FF8000000003FF8000000007FF80000
1245−0000FFF800000001FFF800000003FFF800000003FFF800000007FFF80000000FFFF80000
1246−001FBFF80000003F3FF80000003E3FF80000007C3FF8000000FC3FF8000001F83FF80000
1247−01F03FF8000003E03FF8000007E03FF800000FC03FF800001F803FF800001F003FF80000
1248−3E003FF800007E003FF80000FC003FF80001F8003FF80001F0003FF80003E0003FF80007
1249−E0003FF8000FC0003FF8000F80003FF8001F00003FF8003F00003FF8007E00003FF800FC
1250−00003FF800FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF800
1251−00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000
1252−00007FF8000000007FF8000000007FF8000000007FF8000001FFFFFFF80001FFFFFFF800
1253−01FFFFFFF80001FFFFFFF80001FFFFFFF82D3C7DBB34>I<0700000038000FE00001F800
1254−0FFE003FF8000FFFFFFFF8000FFFFFFFF0000FFFFFFFE0000FFFFFFFC0000FFFFFFF8000
1255−0FFFFFFF00000FFFFFFE00000FFFFFF800000FFFFFF000000FFFFFC000000FFFFE000000
1256−0F80000000000F80000000000F80000000000F80000000000F80000000000F8000000000
1257−0F80000000000F80000000000F80000000000F80FFC000000F87FFFC00000F9FFFFF0000
1258−0FFFFFFF80000FFF01FFE0000FF8007FF0000FF0003FF8000FC0001FFC000F80001FFC00
1259−0700001FFE000000000FFE000000000FFF000000000FFF000000000FFF000000000FFF80
1260−0000000FFF800700000FFF801FC0000FFF803FE0000FFF807FF0000FFF80FFF0000FFF80
1261−FFF8000FFF80FFF8000FFF80FFF8000FFF00FFF8000FFF00FFF0000FFF00FFF0001FFE00
1262−7FE0001FFE007F80001FFC003F00003FFC003F80007FF8001FE000FFF0000FFC07FFE000
1263−07FFFFFFC00003FFFFFF000000FFFFFC0000003FFFF000000007FF000000293D7BBB34>
1264−I<000007FF000000003FFFC0000001FFFFF0000007FFFFF800000FFF03FC00003FF800FC
1265−00007FE001FE0000FFC003FE0001FF8007FF0003FF000FFF0003FF000FFF0007FE000FFF
1266−000FFE000FFF000FFE000FFF001FFC000FFF001FFC0007FE003FFC0003FC003FFC0001F8
1267−003FFC000000007FF8000000007FF8000000007FF8020000007FF83FFE0000FFF87FFF80
1268−00FFF9FFFFE000FFFBFFFFF000FFFBE03FF800FFFF800FFC00FFFF0007FE00FFFF0007FF
1269−00FFFE0007FF00FFFE0003FF80FFFC0003FFC0FFFC0003FFC0FFFC0003FFC0FFFC0003FF
1270−E0FFF80003FFE0FFF80003FFE0FFF80003FFE0FFF80003FFE07FF80003FFE07FF80003FF
1271−E07FF80003FFE07FF80003FFE07FF80003FFE03FF80003FFE03FF80003FFE03FFC0003FF
1272−C01FFC0003FFC01FFC0003FFC00FFC0007FF800FFE0007FF0007FE0007FF0003FF000FFE
1273−0001FF801FFC0000FFE07FF800007FFFFFF000003FFFFFE000001FFFFF80000007FFFE00
1274−000000FFF000002B3D7CBB34>I<1F00000000001F80000000001FF8000000001FFFFFFF
1275−FFF01FFFFFFFFFF01FFFFFFFFFF01FFFFFFFFFF03FFFFFFFFFF03FFFFFFFFFE03FFFFFFF
1276−FFC03FFFFFFFFF803FFFFFFFFF003FFFFFFFFE003FFFFFFFFC007FFFFFFFFC007E000001
1277−F8007E000003F0007C000007E0007C00000FC0007C00001F80007C00001F0000F800003F
1278−0000F800007E0000F80000FC0000000001F80000000003F00000000003F00000000007E0
1279−000000000FE0000000000FC0000000001FC0000000003FC0000000003F80000000007F80
1280−000000007F8000000000FF8000000000FF0000000001FF0000000001FF0000000003FF00
1281−00000003FF0000000003FF0000000007FE0000000007FE0000000007FE000000000FFE00
1282−0000000FFE000000000FFE000000000FFE000000000FFE000000001FFE000000001FFE00
1283−0000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE00
1284−0000001FFE000000001FFE000000000FFC0000000007F80000000003F00000002C3F7ABD
1285−34>I<0000FFF000000007FFFE0000001FFFFF8000007FFFFFE00000FFC07FF00001FE00
1286−1FF80003FC000FFC0007F80007FE0007F80003FE000FF00003FE000FF00003FF000FF000
1287−01FF001FF00001FF001FF00001FF001FF80001FF001FFC0001FF001FFE0001FF001FFF00
1288−03FF001FFFC003FE001FFFF003FE000FFFF807FC000FFFFE0FF8000FFFFF9FF00007FFFF
1289−FFE00003FFFFFFC00003FFFFFF800001FFFFFF000000FFFFFF8000007FFFFFE000001FFF
1290−FFF000003FFFFFF80000FFFFFFFC0001FFFFFFFE0007FE3FFFFF000FFC1FFFFF801FF807
1291−FFFF801FF001FFFFC03FE0007FFFC07FE0003FFFC07FC0000FFFE07FC00003FFE0FF8000
1292−01FFE0FF800000FFE0FF8000007FE0FF8000007FE0FF8000003FE0FF8000003FE0FF8000
1293−003FE0FFC000003FC07FC000003FC07FC000007F807FE000007F803FF00000FF001FF800
1294−01FF001FFE0007FE000FFFC03FFC0007FFFFFFF80001FFFFFFE000007FFFFFC000001FFF
1295−FE00000001FFF000002B3D7CBB34>I<0001FFE00000000FFFFC0000003FFFFF000000FF
1296−FFFFC00001FFE0FFE00003FF003FF00007FE001FF8000FFE000FFC001FFC000FFC001FFC
1297−0007FE003FFC0007FE007FF80007FF007FF80003FF007FF80003FF80FFF80003FF80FFF8
1298−0003FF80FFF80003FFC0FFF80003FFC0FFF80003FFC0FFF80003FFC0FFF80003FFC0FFF8
1299−0003FFE0FFF80003FFE0FFF80003FFE0FFF80003FFE07FF80007FFE07FF80007FFE07FF8
1300−0007FFE07FF80007FFE03FF8000FFFE01FFC000FFFE01FFC001FFFE00FFE001FFFE007FE
1301−003FFFE003FF80FBFFE001FFFFFBFFE0007FFFF3FFE0003FFFC3FFE0000FFF83FFC00000
1302−0803FFC000000003FFC000000003FFC000000007FF8003F00007FF8007F80007FF800FFC
1303−0007FF001FFE0007FF001FFE000FFE001FFE000FFE001FFE000FFC001FFE001FFC001FFE
1304−003FF8001FFC003FF0000FF800FFE0000FF001FFC00007FC0FFF800003FFFFFF000001FF
1305−FFFC000000FFFFF00000007FFFC00000000FFE0000002B3D7CBB34>I<0FC01FE03FF07F
1306−F8FFFCFFFCFFFCFFFCFFFCFFFC7FF83FF01FE00FC0000000000000000000000000000000
1307−0000000000000000000FC01FE03FF07FF8FFFCFFFCFFFCFFFCFFFCFFFC7FF83FF01FE00F
1308−C00E2879A71D>I<00000000FC0000000000000000FC0000000000000001FE0000000000
1309−000001FE0000000000000003FF0000000000000003FF0000000000000003FF0000000000
1310−000007FF8000000000000007FF800000000000000FFFC00000000000000FFFC000000000
1311−00000FFFC00000000000001FFFE00000000000001FFFE00000000000003FFFF000000000
1312−00003FFFF00000000000003FFFF00000000000007FFFF80000000000007CFFF800000000
1313−0000FCFFFC000000000000F87FFC000000000000F87FFC000000000001F87FFE00000000
1314−0001F03FFE000000000003F03FFF000000000003E01FFF000000000007E01FFF80000000
1315−0007C01FFF800000000007C00FFF80000000000FC00FFFC0000000000F8007FFC0000000
1316−001F8007FFE0000000001F0007FFE0000000001F0003FFE0000000003F0003FFF0000000
1317−003E0001FFF0000000007E0001FFF8000000007C0000FFF8000000007C0000FFF8000000
1318−00FC0000FFFC00000000F800007FFC00000001FFFFFFFFFE00000001FFFFFFFFFE000000
1319−01FFFFFFFFFE00000003FFFFFFFFFF00000003FFFFFFFFFF00000007E000001FFF800000
1320−07C000000FFF8000000FC000000FFFC000000F8000000FFFC000000F80000007FFC00000
1321−1F80000007FFE000001F00000003FFE000003F00000003FFF000003E00000003FFF00000
1322−3E00000001FFF000007E00000001FFF800007C00000000FFF800FFFFFC0000FFFFFFFCFF
1323−FFFC0000FFFFFFFCFFFFFC0000FFFFFFFCFFFFFC0000FFFFFFFCFFFFFC0000FFFFFFFC46
1324−3F7CBE4F>65 D<FFFFFFFFFFF80000FFFFFFFFFFFF8000FFFFFFFFFFFFF000FFFFFFFFFF
1325−FFFC00FFFFFFFFFFFFFE00003FFC00003FFF00003FFC00000FFF80003FFC000007FFC000
1326−3FFC000003FFE0003FFC000001FFE0003FFC000001FFF0003FFC000001FFF0003FFC0000
1327−00FFF8003FFC000000FFF8003FFC000000FFF8003FFC000000FFF8003FFC000000FFF800
1328−3FFC000000FFF8003FFC000000FFF8003FFC000000FFF0003FFC000001FFF0003FFC0000
1329−01FFF0003FFC000003FFE0003FFC000003FFC0003FFC000007FF80003FFC00000FFF0000
1330−3FFC00003FFE00003FFC0001FFF800003FFFFFFFFFE000003FFFFFFFFF8000003FFFFFFF
1331−FFF800003FFFFFFFFFFE00003FFC00000FFF80003FFC000003FFC0003FFC000001FFE000
1332−3FFC000000FFF0003FFC000000FFF8003FFC0000007FFC003FFC0000007FFC003FFC0000
1333−003FFE003FFC0000003FFE003FFC0000003FFF003FFC0000003FFF003FFC0000003FFF00
1334−3FFC0000001FFF003FFC0000003FFF003FFC0000003FFF003FFC0000003FFF003FFC0000
1335−003FFF003FFC0000003FFE003FFC0000007FFE003FFC0000007FFE003FFC000000FFFC00
1336−3FFC000001FFF8003FFC000003FFF8003FFC000007FFF0003FFC00003FFFE0FFFFFFFFFF
1337−FFFFC0FFFFFFFFFFFFFF00FFFFFFFFFFFFFC00FFFFFFFFFFFFF000FFFFFFFFFFFF000040
1338−3E7DBD4A>I<00000007FFC0000E000000FFFFFC001E000007FFFFFF003E00003FFFFFFF
1339−C07E0000FFFFFFFFE1FE0003FFFF803FFBFE0007FFF80003FFFE000FFFC00000FFFE003F
1340−FF0000007FFE007FFE0000001FFE00FFF80000000FFE01FFF000000007FE03FFE0000000
1341−07FE03FFC000000003FE07FFC000000001FE0FFF8000000001FE0FFF8000000000FE1FFF
1342−0000000000FE1FFF00000000007E3FFF00000000007E3FFE00000000007E3FFE00000000
1343−003E7FFE00000000003E7FFE00000000003E7FFE00000000003E7FFC000000000000FFFC
1344−000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC00000000
1345−0000FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC
1346−000000000000FFFC000000000000FFFC0000000000007FFC0000000000007FFE00000000
1347−00007FFE00000000003E7FFE00000000003E3FFE00000000003E3FFE00000000003E3FFF
1348−00000000003E1FFF00000000007E1FFF00000000007C0FFF80000000007C0FFF80000000
1349−00FC07FFC000000000F803FFE000000001F803FFE000000001F001FFF000000003F000FF
1350−F800000007E0007FFE0000000FC0003FFF0000003F80000FFFC00000FF000007FFF80003
1351−FE000003FFFF801FFC000000FFFFFFFFF80000003FFFFFFFE000000007FFFFFF80000000
1352−00FFFFFC000000000007FFC000003F407ABE4C>I<FFFFFFFFFFF8000000FFFFFFFFFFFF
1353−800000FFFFFFFFFFFFF00000FFFFFFFFFFFFFC0000FFFFFFFFFFFFFF0000003FFC00007F
1354−FFC000003FFC000007FFE000003FFC000001FFF000003FFC0000007FF800003FFC000000
1355−3FFC00003FFC0000001FFE00003FFC0000000FFF00003FFC00000007FF80003FFC000000
1356−07FF80003FFC00000003FFC0003FFC00000003FFC0003FFC00000001FFE0003FFC000000
1357−01FFE0003FFC00000001FFF0003FFC00000000FFF0003FFC00000000FFF0003FFC000000
1358−00FFF8003FFC00000000FFF8003FFC00000000FFF8003FFC00000000FFF8003FFC000000
1359−00FFFC003FFC00000000FFFC003FFC00000000FFFC003FFC00000000FFFC003FFC000000
1360−00FFFC003FFC000000007FFC003FFC000000007FFC003FFC000000007FFC003FFC000000
1361−00FFFC003FFC00000000FFFC003FFC00000000FFFC003FFC00000000FFFC003FFC000000
1362−00FFFC003FFC00000000FFF8003FFC00000000FFF8003FFC00000000FFF8003FFC000000
1363−00FFF8003FFC00000000FFF0003FFC00000000FFF0003FFC00000001FFF0003FFC000000
1364−01FFE0003FFC00000001FFE0003FFC00000003FFC0003FFC00000003FFC0003FFC000000
1365−07FF80003FFC0000000FFF00003FFC0000001FFF00003FFC0000003FFE00003FFC000000
1366−7FFC00003FFC000001FFF800003FFC000007FFE000003FFC00007FFFC000FFFFFFFFFFFF
1367−FF8000FFFFFFFFFFFFFE0000FFFFFFFFFFFFF80000FFFFFFFFFFFFC00000FFFFFFFFFFF8
1368−000000463E7DBD50>I<FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFF
1369−FFFFFFFFFF00FFFFFFFFFFFFFF80003FFE00003FFF80003FFE000007FF80003FFE000001
1370−FF80003FFE000000FF80003FFE0000003F80003FFE0000003F80003FFE0000001F80003F
1371−FE0000000FC0003FFE0000000FC0003FFE0000000FC0003FFE00000007C0003FFE0007C0
1372−07C0003FFE0007C007C0003FFE0007C007C0003FFE0007C003E0003FFE0007C003E0003F
1373−FE0007C003E0003FFE000FC003E0003FFE000FC00000003FFE001FC00000003FFE003FC0
1374−0000003FFE00FFC00000003FFFFFFFC00000003FFFFFFFC00000003FFFFFFFC00000003F
1375−FFFFFFC00000003FFFFFFFC00000003FFE00FFC00000003FFE003FC00000003FFE001FC0
1376−0000003FFE000FC0007C003FFE000FC0007C003FFE0007C0007C003FFE0007C000F8003F
1377−FE0007C000F8003FFE0007C000F8003FFE0007C000F8003FFE0007C000F8003FFE000000
1378−01F8003FFE00000001F8003FFE00000001F0003FFE00000003F0003FFE00000003F0003F
1379−FE00000007F0003FFE00000007F0003FFE0000000FF0003FFE0000001FE0003FFE000000
1380−3FE0003FFE000000FFE0003FFE000003FFE0003FFE00003FFFE0FFFFFFFFFFFFFFE0FFFF
1381−FFFFFFFFFFE0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC03E3D7DBC45>
1382−I<FFFFFFFFFFFFFE00FFFFFFFFFFFFFE00FFFFFFFFFFFFFE00FFFFFFFFFFFFFE00FFFFFF
1383−FFFFFFFF00003FFE00007FFF00003FFE00000FFF00003FFE000003FF00003FFE000000FF
1384−00003FFE0000007F00003FFE0000007F00003FFE0000003F00003FFE0000001F80003FFE
1385−0000001F80003FFE0000001F80003FFE0000000F80003FFE0000000F80003FFE0007C00F
1386−80003FFE0007C00F80003FFE0007C007C0003FFE0007C007C0003FFE0007C007C0003FFE
1387−0007C007C0003FFE000FC00000003FFE000FC00000003FFE001FC00000003FFE003FC000
1388−00003FFE00FFC00000003FFFFFFFC00000003FFFFFFFC00000003FFFFFFFC00000003FFF
1389−FFFFC00000003FFFFFFFC00000003FFE00FFC00000003FFE003FC00000003FFE001FC000
1390−00003FFE000FC00000003FFE000FC00000003FFE0007C00000003FFE0007C00000003FFE
1391−0007C00000003FFE0007C00000003FFE0007C00000003FFE0007C00000003FFE00000000
1392−00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE
1393−0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000
1394−00003FFE0000000000003FFE0000000000FFFFFFFFE0000000FFFFFFFFE0000000FFFFFF
1395−FFE0000000FFFFFFFFE0000000FFFFFFFFE00000003A3D7DBC42>I<FFFFFFFF80FFFFFF
1396−FF80FFFFFFFF80FFFFFFFF80FFFFFFFF80003FFE0000003FFE0000003FFE0000003FFE00
1397−00003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000
1398−003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE000000
1399−3FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003F
1400−FE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE
1401−0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE00
1402−00003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000
1403−003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000FFFFFFFF80FFFFFFFF80FF
1404−FFFFFF80FFFFFFFF80FFFFFFFF80213E7DBD28>73 D<FFFFFFFFE00000FFFFFFFFE00000
1405−FFFFFFFFE00000FFFFFFFFE00000FFFFFFFFE00000003FFE00000000003FFE0000000000
1406−3FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003F
1407−FE00000000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE
1408−00000000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE00
1409−000000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE0000
1410−0000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE000000
1411−00003FFE00000000003FFE00000000003FFE00000000003FFE0000003E003FFE0000003E
1412−003FFE0000003E003FFE0000003E003FFE0000007E003FFE0000007C003FFE0000007C00
1413−3FFE0000007C003FFE0000007C003FFE000000FC003FFE000000FC003FFE000001FC003F
1414−FE000001FC003FFE000003F8003FFE000003F8003FFE000007F8003FFE00000FF8003FFE
1415−00001FF8003FFE00007FF8003FFE0001FFF8003FFE000FFFF8FFFFFFFFFFFFF8FFFFFFFF
1416−FFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0373E7DBD3F>76
1417−D<0000003FFF00000000000003FFFFF000000000001FFFFFFE00000000007FFFFFFF8000
1418−000001FFF807FFE000000007FFC000FFF80000000FFF00003FFC0000003FFC00000FFF00
1419−00007FF8000007FF800000FFF0000003FFC00001FFE0000001FFE00001FFC0000000FFE0
1420−0003FFC0000000FFF00007FF800000007FF80007FF800000007FF8000FFF000000003FFC
1421−001FFF000000003FFE001FFF000000003FFE001FFE000000001FFE003FFE000000001FFF
1422−003FFE000000001FFF003FFE000000001FFF007FFC000000000FFF807FFC000000000FFF
1423−807FFC000000000FFF807FFC000000000FFF80FFFC000000000FFFC0FFFC000000000FFF
1424−C0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFF
1425−C0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFF
1426−C0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFFC07FFC000000000FFF
1427−807FFE000000001FFF807FFE000000001FFF807FFE000000001FFF803FFE000000001FFF
1428−003FFE000000001FFF003FFF000000003FFF001FFF000000003FFE001FFF000000003FFE
1429−000FFF800000007FFC000FFF800000007FFC0007FFC0000000FFF80003FFE0000001FFF0
1430−0003FFE0000001FFF00001FFF0000003FFE00000FFF8000007FFC000007FFC00000FFF80
1431−00003FFF00003FFF0000001FFFC000FFFE00000007FFF807FFF800000001FFFFFFFFE000
1432−000000FFFFFFFFC0000000001FFFFFFE000000000003FFFFF00000000000003FFF000000
1433−0042407ABE4F>79 D<FFFFFFFFFFF00000FFFFFFFFFFFF0000FFFFFFFFFFFFC000FFFFFF
1434−FFFFFFF000FFFFFFFFFFFFFC00003FFC0000FFFE00003FFC00001FFF00003FFC00000FFF
1435−80003FFC000007FFC0003FFC000003FFE0003FFC000003FFE0003FFC000001FFF0003FFC
1436−000001FFF0003FFC000001FFF0003FFC000001FFF8003FFC000001FFF8003FFC000001FF
1437−F8003FFC000001FFF8003FFC000001FFF8003FFC000001FFF8003FFC000001FFF8003FFC
1438−000001FFF8003FFC000001FFF0003FFC000001FFF0003FFC000001FFF0003FFC000003FF
1439−E0003FFC000003FFC0003FFC000007FFC0003FFC00000FFF80003FFC00003FFF00003FFC
1440−0000FFFE00003FFFFFFFFFF800003FFFFFFFFFF000003FFFFFFFFF8000003FFFFFFFFC00
1441−00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE
1442−0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000
1443−00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE
1444−0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000
1445−00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000FFFFFF
1446−FF80000000FFFFFFFF80000000FFFFFFFF80000000FFFFFFFF80000000FFFFFFFF800000
1447−003D3E7DBD47>I<FFFFFFFFFF8000000000FFFFFFFFFFFC00000000FFFFFFFFFFFF8000
1448−0000FFFFFFFFFFFFF0000000FFFFFFFFFFFFF8000000003FFC0001FFFE000000003FFC00
1449−003FFF000000003FFC00000FFF800000003FFC000007FFC00000003FFC000003FFE00000
1450−003FFC000003FFE00000003FFC000003FFF00000003FFC000001FFF00000003FFC000001
1451−FFF80000003FFC000001FFF80000003FFC000001FFF80000003FFC000001FFF80000003F
1452−FC000001FFF80000003FFC000001FFF80000003FFC000001FFF80000003FFC000001FFF0
1453−0000003FFC000001FFF00000003FFC000003FFF00000003FFC000003FFE00000003FFC00
1454−0003FFC00000003FFC000007FF800000003FFC00000FFF000000003FFC00003FFE000000
1455−003FFC0001FFFC000000003FFFFFFFFFF0000000003FFFFFFFFFC0000000003FFFFFFFFE
1456−00000000003FFFFFFFFF80000000003FFC000FFFC0000000003FFC0001FFF0000000003F
1457−FC0000FFF8000000003FFC00007FFC000000003FFC00007FFC000000003FFC00003FFE00
1458−0000003FFC00003FFE000000003FFC00001FFF000000003FFC00001FFF000000003FFC00
1459−001FFF000000003FFC00001FFF000000003FFC00001FFF000000003FFC00001FFF000000
1460−003FFC00001FFF800000003FFC00001FFF800000003FFC00001FFF800000003FFC00001F
1461−FF800000003FFC00001FFF800000003FFC00001FFF800000003FFC00001FFF8007C0003F
1462−FC00001FFFC007C0003FFC00001FFFC007C0003FFC00000FFFC00FC0003FFC00000FFFE0
1463−0F80FFFFFFFF0007FFF01F80FFFFFFFF0003FFFC3F00FFFFFFFF0001FFFFFF00FFFFFFFF
1464−00007FFFFE00FFFFFFFF00001FFFF80000000000000001FFE0004A3F7DBD4E>82
1465−D<0003FFC001C0001FFFF803C0007FFFFE07C001FFFFFF8FC003FFFFFFDFC007FF00FFFF
1466−C00FF8000FFFC01FF00003FFC01FE00001FFC03FC000007FC07FC000007FC07F8000003F
1467−C07F8000001FC0FF8000001FC0FF8000000FC0FF8000000FC0FFC000000FC0FFC0000007
1468−C0FFC0000007C0FFE0000007C0FFF0000007C0FFFC00000000FFFF800000007FFFF80000
1469−007FFFFFC000003FFFFFFC00003FFFFFFF80001FFFFFFFE0001FFFFFFFF8000FFFFFFFFC
1470−0007FFFFFFFE0003FFFFFFFF0001FFFFFFFF80007FFFFFFFC0003FFFFFFFC00007FFFFFF
1471−E000007FFFFFE0000007FFFFF00000003FFFF000000003FFF000000000FFF8000000007F
1472−F8000000003FF8780000003FF8F80000001FF8F80000001FF8F80000000FF8F80000000F
1473−F8FC0000000FF8FC0000000FF8FC0000000FF0FE0000000FF0FE0000001FF0FF0000001F
1474−E0FF8000003FE0FFE000003FC0FFF800007F80FFFE0001FF80FFFFE007FF00FEFFFFFFFE
1475−00FC7FFFFFF800F81FFFFFF000F003FFFFC000E0003FFE00002D407ABE3A>I<3FFFFFFF
1476−FFFFFFFC3FFFFFFFFFFFFFFC3FFFFFFFFFFFFFFC3FFFFFFFFFFFFFFC3FFFFFFFFFFFFFFC
1477−3FFE003FFE003FFC7FF0003FFE000FFE7FC0003FFE0003FE7F80003FFE0001FE7F00003F
1478−FE0000FE7F00003FFE00007E7E00003FFE00007E7E00003FFE00007E7C00003FFE00003E
1479−7C00003FFE00003E7C00003FFE00003E7C00003FFE00003EFC00003FFE00003FF800003F
1480−FE00001FF800003FFE00001FF800003FFE00001FF800003FFE00001FF800003FFE00001F
1481−0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F
1482−FE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000
1483−0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F
1484−FE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000
1485−0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F
1486−FE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000
1487−0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F
1488−FE0000000000003FFE000000000FFFFFFFFFF800000FFFFFFFFFF800000FFFFFFFFFF800
1489−000FFFFFFFFFF800000FFFFFFFFFF800403D7CBC49>I<00700000E000F80001F001F800
1490−03F003F00007E003E00007C007C0000F800F80001F001F00003E001F00003E003E00007C
1491−003C000078003C000078007C0000F800780000F000780000F000F80001F000F00001E000
1492−F00001E000F7E001EFC0FFF001FFE0FFF801FFF0FFFC01FFF8FFFE01FFFCFFFE01FFFCFF
1493−FE01FFFC7FFE00FFFC7FFE00FFFC7FFE00FFFC3FFC007FF81FF8003FF00FF0001FE007E0
1494−000FC0262073BE37>92 D<0007FFC00000003FFFF8000001FFFFFF000003FFFFFF800007
1495−FE03FFC0000FF800FFE0000FFC003FF0001FFE003FF8001FFE001FFC001FFE001FFC001F
1496−FE001FFC001FFE000FFE001FFE000FFE000FFC000FFE0007F8000FFE0001E0000FFE0000
1497−00000FFE000000003FFE000000FFFFFE00000FFFFFFE00007FFFFFFE0001FFFE0FFE0003
1498−FFE00FFE000FFF800FFE001FFE000FFE003FFC000FFE003FF8000FFE007FF0000FFE00FF
1499−F0000FFE00FFE0000FFE00FFE0000FFE00FFE0000FFE00FFE0000FFE00FFE0001FFE00FF
1500−F0001FFE007FF0003FFE007FF8007BFF803FFC00FBFFFE1FFF07F3FFFE0FFFFFE1FFFE03
1501−FFFF80FFFE00FFFF003FFE001FF80000002F2B7DA933>97 D<00FF0000000000FFFF0000
1502−000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF000000000007FF000000
1503−000003FF000000000003FF000000000003FF000000000003FF000000000003FF00000000
1504−0003FF000000000003FF000000000003FF000000000003FF000000000003FF0000000000
1505−03FF000000000003FF000000000003FF000000000003FF000000000003FF000000000003
1506−FF00FFE0000003FF07FFFC000003FF1FFFFF800003FF7FFFFFC00003FFFF81FFF00003FF
1507−FC003FF80003FFF0001FFC0003FFE0000FFE0003FFC00007FE0003FF800007FF0003FF80
1508−0003FF8003FF800003FF8003FF800003FFC003FF800001FFC003FF800001FFC003FF8000
1509−01FFC003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003FF800001
1510−FFE003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FF
1511−E003FF800001FFC003FF800001FFC003FF800003FFC003FF800003FF8003FF800003FF80
1512−03FF800003FF0003FF800007FF0003FFC00007FE0003FFE0000FFC0003FFF0001FF80003
1513−FFFC007FF00003FCFF01FFE00003F87FFFFFC00003F01FFFFF000003E007FFFC00000000
1514−01FFC0000033407DBE3A>I<00007FF0000007FFFF00001FFFFFC0007FFFFFE000FFF01F
1515−F001FF800FF803FF001FF807FE003FFC0FFE003FFC1FFC003FFC1FFC003FFC3FF8003FFC
1516−3FF8003FFC7FF8001FF87FF0000FF07FF00003C0FFF0000000FFF0000000FFF0000000FF
1517−F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0
1518−0000007FF00000007FF80000007FF80000007FF80000003FF800003E3FFC00003E1FFC00
1519−007E0FFE00007C07FF0000FC07FF8001F803FFC003F000FFF81FE0007FFFFFC0001FFFFF
1520−800007FFFE0000007FF000272B7DA92E>I<0000000007F80000000007FFF80000000007
1521−FFF80000000007FFF80000000007FFF80000000007FFF800000000003FF800000000001F
1522−F800000000001FF800000000001FF800000000001FF800000000001FF800000000001FF8
1523−00000000001FF800000000001FF800000000001FF800000000001FF800000000001FF800
1524−000000001FF800000000001FF800000000001FF800000000001FF80000007FF01FF80000
1525−07FFFE1FF800001FFFFF9FF800007FFFFFDFF80000FFF01FFFF80001FFC003FFF80003FF
1526−0001FFF80007FE00007FF8000FFC00007FF8001FFC00003FF8001FF800003FF8003FF800
1527−003FF8003FF800003FF8007FF800003FF8007FF000003FF8007FF000003FF800FFF00000
1528−3FF800FFF000003FF800FFF000003FF800FFF000003FF800FFF000003FF800FFF000003F
1529−F800FFF000003FF800FFF000003FF800FFF000003FF800FFF000003FF8007FF000003FF8
1530−007FF000003FF8007FF000003FF8007FF800003FF8003FF800003FF8003FF800003FF800
1531−1FFC00007FF8000FFC00007FF8000FFE0000FFF80007FF0003FFFC0003FF8007FFFFE001
1532−FFF03FFFFFE0007FFFFFBFFFE0003FFFFF3FFFE00007FFFC3FFFE00000FFE03FE0003340
1533−7DBE3A>I<0000FFF000000007FFFE0000001FFFFF8000007FFFFFC00000FFE07FE00001
1534−FF801FF00003FF000FF80007FE0007FC000FFC0003FE001FFC0003FE001FF80001FE003F
1535−F80001FF003FF80001FF007FF00001FF007FF00000FF807FF00000FF80FFF00000FF80FF
1536−F00000FF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFF000000000FF
1537−F000000000FFF000000000FFF000000000FFF0000000007FF0000000007FF0000000007F
1538−F8000000003FF8000000003FF800000F801FFC00000F801FFC00001F800FFE00001F0007
1539−FF00003F0003FF80007E0001FFE001FC0000FFF80FF800003FFFFFF000001FFFFFC00000
1540−03FFFF000000007FF80000292B7DA930>I<000007FE0000007FFF800001FFFFC00007FF
1541−FFE0000FFE3FF0001FF03FF0003FE07FF8007FC07FF800FFC07FF800FF807FF800FF807F
1542−F801FF003FF001FF001FE001FF000FC001FF00000001FF00000001FF00000001FF000000
1543−01FF00000001FF00000001FF00000001FF00000001FF00000001FF000000FFFFFFE000FF
1544−FFFFE000FFFFFFE000FFFFFFE000FFFFFFE00001FF80000001FF80000001FF80000001FF
1545−80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80
1546−000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF8000
1547−0001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF800000
1548−01FF80000001FF80000001FF80000001FF80000001FF8000007FFFFF80007FFFFF80007F
1549−FFFF80007FFFFF80007FFFFF800025407DBF20>I<0003FF8007F0003FFFF83FF8007FFF
1550−FCFFFC01FFFFFFFFFE03FF83FFF9FE07FC007FC3FE0FF8003FE1FE1FF8003FF1FC1FF000
1551−1FF0F81FF0001FF0003FF0001FF8003FF0001FF8003FF0001FF8003FF0001FF8003FF000
1552−1FF8003FF0001FF8003FF0001FF8001FF0001FF0001FF0001FF0001FF8003FF0000FF800
1553−3FE00007FC007FC00003FF83FF800003FFFFFF000007FFFFFC000007BFFFF800000F03FF
1554−8000000F00000000000F00000000001F80000000001F80000000001FC0000000001FF000
1555−0000000FFFFFFF00000FFFFFFFF0000FFFFFFFFC0007FFFFFFFF0007FFFFFFFF8003FFFF
1556−FFFFC001FFFFFFFFE007FFFFFFFFE01FFFFFFFFFF03FE00003FFF07FC000003FF07F8000
1557−001FF8FF8000000FF8FF00000007F8FF00000007F8FF00000007F8FF00000007F8FF0000
1558−0007F87F8000000FF07FC000001FF03FC000001FE03FF000007FE01FFC0001FFC007FF80
1559−0FFF0003FFFFFFFE0000FFFFFFF800003FFFFFE0000001FFFC00002F3D7DA834>I<00FF
1560−0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF00
1561−0000000007FF000000000003FF000000000003FF000000000003FF000000000003FF0000
1562−00000003FF000000000003FF000000000003FF000000000003FF000000000003FF000000
1563−000003FF000000000003FF000000000003FF000000000003FF000000000003FF00000000
1564−0003FF000000000003FF001FF8000003FF00FFFE000003FF03FFFF800003FF07FFFFC000
1565−03FF0FE0FFE00003FF1F007FE00003FF3C007FF00003FF78007FF00003FFF0003FF80003
1566−FFE0003FF80003FFE0003FF80003FFC0003FF80003FFC0003FF80003FFC0003FF80003FF
1567−80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80
1568−003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8000
1569−3FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003F
1570−F80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8
1571−0003FF80003FF800FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0
1572−FFFFFE0FFFFFE0333F7CBE3A>I<01F80003FC0007FE000FFF001FFF801FFF801FFF801F
1573−FF801FFF801FFF800FFF0007FE0003FC0001F80000000000000000000000000000000000
1574−000000000000000000000000FF00FFFF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003
1575−FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
1576−FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
1577−FF0003FF0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8FFFFF815407CBF1D>I<00FF00
1578−00000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF0000
1579−00000007FF000000000003FF000000000003FF000000000003FF000000000003FF000000
1580−000003FF000000000003FF000000000003FF000000000003FF000000000003FF00000000
1581−0003FF000000000003FF000000000003FF000000000003FF000000000003FF0000000000
1582−03FF000000000003FF000000000003FF000FFFFE0003FF000FFFFE0003FF000FFFFE0003
1583−FF000FFFFE0003FF000FFFFE0003FF0001FE000003FF0003FC000003FF0007F0000003FF
1584−001FE0000003FF003FC0000003FF007F80000003FF00FF00000003FF03FC00000003FF07
1585−F800000003FF0FF000000003FF1FF000000003FF7FF800000003FFFFFC00000003FFFFFC
1586−00000003FFFFFE00000003FFFFFF00000003FFE7FF80000003FFC3FFC0000003FF81FFC0
1587−000003FF00FFE0000003FF00FFF0000003FF007FF8000003FF003FFC000003FF001FFC00
1588−0003FF000FFE000003FF000FFF000003FF0007FF800003FF0003FFC00003FF0001FFC000
1589−03FF0000FFE000FFFFFC07FFFFC0FFFFFC07FFFFC0FFFFFC07FFFFC0FFFFFC07FFFFC0FF
1590−FFFC07FFFFC0323F7DBE37>107 D<00FF00FFFF00FFFF00FFFF00FFFF00FFFF0007FF00
1591−03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
1592−03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
1593−03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
1594−03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
1595−03FF0003FF0003FF00FFFFFCFFFFFCFFFFFCFFFFFCFFFFFC163F7CBE1D>I<00FF001FF8
1596−0000FFC00000FFFF00FFFF0007FFF80000FFFF03FFFFC01FFFFE0000FFFF07FFFFE03FFF
1597−FF0000FFFF0FE0FFF07F07FF8000FFFF1F003FF0F801FF800007FF3E003FF9F001FFC000
1598−03FF78003FFBC001FFC00003FFF0001FFF8000FFE00003FFF0001FFF8000FFE00003FFE0
1599−001FFF0000FFE00003FFC0001FFE0000FFE00003FFC0001FFE0000FFE00003FFC0001FFE
1600−0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FF
1601−E00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003
1602−FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF8000
1603−1FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC00
1604−00FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE0
1605−0003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF
1606−80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE000FFFFFE07FF
1607−FFF03FFFFF80FFFFFE07FFFFF03FFFFF80FFFFFE07FFFFF03FFFFF80FFFFFE07FFFFF03F
1608−FFFF80FFFFFE07FFFFF03FFFFF8051297CA858>I<00FF001FF80000FFFF00FFFE0000FF
1609−FF03FFFF8000FFFF07FFFFC000FFFF0FE0FFE000FFFF1F007FE00007FF3C007FF00003FF
1610−78007FF00003FFF0003FF80003FFE0003FF80003FFE0003FF80003FFC0003FF80003FFC0
1611−003FF80003FFC0003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8000
1612−3FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003F
1613−F80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8
1614−0003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF800
1615−03FF80003FF80003FF80003FF80003FF80003FF800FFFFFE0FFFFFE0FFFFFE0FFFFFE0FF
1616−FFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE033297CA83A>I<00007FF000000003FF
1617−FE0000001FFFFFC000007FFFFFF00000FFE03FF80001FF800FFC0003FE0003FE0007FC00
1618−01FF000FFC0001FF801FF80000FFC01FF80000FFC03FF80000FFE03FF000007FE07FF000
1619−007FF07FF000007FF07FF000007FF07FF000007FF0FFF000007FF8FFF000007FF8FFF000
1620−007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000
1621−007FF8FFF000007FF87FF000007FF07FF000007FF07FF000007FF07FF000007FF03FF800
1622−00FFE03FF80000FFE01FF80000FFC00FFC0001FF800FFC0001FF8007FE0003FF0003FF80
1623−0FFE0001FFE03FFC00007FFFFFF000001FFFFFC0000007FFFF000000007FF000002D2B7D
1624−A934>I<00FF00FFE00000FFFF07FFFC0000FFFF1FFFFF8000FFFF7FFFFFC000FFFFFF81
1625−FFF000FFFFFC007FF80003FFF0003FFC0003FFE0001FFE0003FFC0000FFE0003FF800007
1626−FF0003FF800007FF8003FF800007FF8003FF800003FFC003FF800003FFC003FF800003FF
1627−C003FF800001FFC003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE0
1628−03FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003
1629−FF800001FFE003FF800003FFC003FF800003FFC003FF800003FFC003FF800003FF8003FF
1630−800007FF8003FF800007FF0003FF80000FFF0003FFC0000FFE0003FFE0001FFC0003FFF0
1631−003FF80003FFFC00FFF00003FFFF03FFE00003FFFFFFFFC00003FF9FFFFF000003FF87FF
1632−FC000003FF81FFC0000003FF800000000003FF800000000003FF800000000003FF800000
1633−000003FF800000000003FF800000000003FF800000000003FF800000000003FF80000000
1634−0003FF800000000003FF800000000003FF8000000000FFFFFE00000000FFFFFE00000000
1635−FFFFFE00000000FFFFFE00000000FFFFFE00000000333B7DA83A>I<01FE01FE00FFFE07
1636−FF80FFFE0FFFE0FFFE1FFFF0FFFE3F1FF0FFFE7C3FF807FEF83FF803FEF03FF803FFE03F
1637−F803FFE03FF803FFC01FF003FFC00FE003FF8007C003FF80000003FF80000003FF800000
1638−03FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003
1639−FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
1640−00000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFF0000FFFFFF
1641−0000FFFFFF0000FFFFFF0000FFFFFF000025297DA82B>114 D<003FFC1E0001FFFFBE00
1642−07FFFFFE000FFFFFFE001FF00FFE003F8001FE007F0000FE007E00007E007E00007E00FE
1643−00003E00FE00003E00FF00003E00FF80003E00FFC0000000FFF8000000FFFFE000007FFF
1644−FF00007FFFFFC0003FFFFFF0001FFFFFF8000FFFFFFC0007FFFFFE0003FFFFFF0000FFFF
1645−FF80001FFFFF800000FFFF80000007FFC0000000FFC07800007FC0F800003FC0F800001F
1646−C0FC00001FC0FC00001FC0FE00001FC0FE00001F80FF00003F80FF80003F00FFE000FF00
1647−FFF803FE00FFFFFFFC00FFFFFFF000F87FFFC000E00FFE0000222B7DA929>I<0007C000
1648−0007C0000007C0000007C0000007C000000FC000000FC000000FC000000FC000001FC000
1649−001FC000001FC000003FC000007FC000007FC00000FFC00001FFC00007FFC0001FFFFFFE
1650−FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE01FFC00001FFC00001FFC00001FFC00001FFC000
1651−01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
1652−01FFC00001FFC00001FFC00001FFC00001FFC00001FFC01F01FFC01F01FFC01F01FFC01F
1653−01FFC01F01FFC01F01FFC01F01FFC01F01FFC01F00FFE03E00FFE03E007FE07E007FF8FC
1654−003FFFF8001FFFF00007FFE00000FF80203B7EB929>I<00FF80000FF800FFFF800FFFF8
1655−00FFFF800FFFF800FFFF800FFFF800FFFF800FFFF800FFFF800FFFF80007FF80007FF800
1656−03FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003
1657−FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF
1658−80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80
1659−003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8000
1660−3FF80003FF80003FF80003FF80003FF80003FF80007FF80003FF80007FF80003FF80007F
1661−F80003FF8000FFF80001FF8001FFF80001FF8003FFFC0000FFC007DFFFE000FFF01F9FFF
1662−E0007FFFFF1FFFE0003FFFFE1FFFE0000FFFF81FFFE00001FFE01FE000332A7CA83A>I<
1663−FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC001
1664−FFC00003E00001FFE00007E00001FFE00007E00000FFE00007C00000FFF0000FC000007F
1665−F0000F8000007FF8001F8000003FF8001F0000003FFC003F0000001FFC003E0000001FFE
1666−007E0000000FFE007C0000000FFF00FC0000000FFF00FC00000007FF00F800000007FF81
1667−F800000003FF81F000000003FFC3F000000001FFC3E000000001FFE7E000000000FFE7C0
1668−00000000FFFFC0000000007FFF80000000007FFF80000000007FFF80000000003FFF0000
1669−0000003FFF00000000001FFE00000000001FFE00000000000FFC00000000000FFC000000
1670−000007F8000000000007F8000000000003F0000000000003F000000032287EA737>I<FF
1671−FFFC3FFFFC03FFFEFFFFFC3FFFFC03FFFEFFFFFC3FFFFC03FFFEFFFFFC3FFFFC03FFFEFF
1672−FFFC3FFFFC03FFFE03FF8000FFC0000F8003FFC000FFC0001F8001FFC0007FC0001F0001
1673−FFE000FFE0003F0000FFE000FFE0003E0000FFE000FFF0003E0000FFF001FFF0007E0000
1674−7FF001FFF0007C00007FF803FFF800FC00003FF803EFF800F800003FF803EFFC00F80000
1675−3FFC07EFFC01F800001FFC07C7FC01F000001FFE0FC7FE03F000000FFE0F83FE03E00000
1676−0FFE0F83FF03E000000FFF1F83FF07E0000007FF1F01FF07C0000007FFBF01FF8FC00000
1677−03FFBE00FF8F80000003FFBE00FFCF80000003FFFE00FFDF80000001FFFC007FDF000000
1678−01FFFC007FFF00000000FFF8003FFE00000000FFF8003FFE00000000FFF8003FFE000000
1679−007FF0001FFC000000007FF0001FFC000000003FE0000FF8000000003FE0000FF8000000
1680−003FE0000FF8000000001FC00007F0000000001FC00007F0000000000F800003E0000047
1681−287EA74C>I<FFFFFC03FFFF80FFFFFC03FFFF80FFFFFC03FFFF80FFFFFC03FFFF80FFFF
1682−FC03FFFF8000FFE0007F000000FFF000FE0000007FF800FC0000003FFC01F80000001FFE
1683−03F00000000FFE07F000000007FF0FE000000007FF9FC000000003FFFF8000000001FFFF
1684−0000000000FFFE00000000007FFC00000000007FFC00000000003FFC00000000001FFE00
1685−000000000FFE00000000000FFF00000000001FFF80000000003FFFC0000000007FFFE000
1686−000000FEFFF000000001FC7FF000000003F83FF800000003F03FFC00000007E01FFE0000
1687−000FC00FFF0000001FC007FF0000003F8003FF8000007F0003FFC00000FE0001FFE000FF
1688−FFC007FFFFC0FFFFC007FFFFC0FFFFC007FFFFC0FFFFC007FFFFC0FFFFC007FFFFC03228
1689−7EA737>I<FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC
1690−003FFFC001FFC00003E00001FFE00007E00001FFE00007E00000FFE00007C00000FFF000
1691−0FC000007FF0000F8000007FF8001F8000003FF8001F0000003FFC003F0000001FFC003E
1692−0000001FFE007E0000000FFE007C0000000FFF00FC0000000FFF00FC00000007FF00F800
1693−000007FF81F800000003FF81F000000003FFC3F000000001FFC3E000000001FFE7E00000
1694−0000FFE7C000000000FFFFC0000000007FFF80000000007FFF80000000007FFF80000000
1695−003FFF00000000003FFF00000000001FFE00000000001FFE00000000000FFC0000000000
1696−0FFC000000000007F8000000000007F8000000000003F0000000000003F0000000000003
1697−F0000000000003E0000000000007E0000000000007C00000000E000FC00000003F800F80
1698−0000007FC01F80000000FFE01F00000000FFE03F00000000FFE03E00000000FFE07E0000
1699−0000FFE0FC00000000FFC1F8000000007FC3F0000000007E0FE0000000003FFFC0000000
1700−001FFF80000000000FFE000000000003F80000000000323B7EA737>I
1701−E /Fn 88 127 df<1C007F00FF80FF80FF80FF80FF80FF80FF80FF80FF80FF80FF80FF80
1702−FF80FF80FF80FF80FF80FF80FF807F007F007F007F007F007F007F007F007F007F007F00
1703−7F007F007F007F007F007F007F003E00000000000000000000000000000000001C007F00
1704−7F00FF80FF80FF807F007F001C0009396DB830>33 D<100004007C001F00FE003F80FE00
1705−3F80FF007F80FF007F80FE003F80FE003F80FE003F80FE003F80FE003F80FE003F80FE00
1706−3F80FE003F80FE003F80FE003F80FE003F80FE003F80FE003F80FE003F80FE003F80FE00
1707−3F80FE003F80FE003F807E003F007C001F003C001E0010000400191C75B830>I<0007C0
1708−07C0000007C007C000000FE00FE000000FE00FE000000FE00FE000000FE00FE000000FE0
1709−0FE000000FE00FE000000FE00FE000000FE00FE000001FE01FE000001FE01FE000001FC0
1710−1FC000001FC01FC000001FC01FC0007FFFFFFFFF007FFFFFFFFF00FFFFFFFFFF80FFFFFF
1711−FFFF80FFFFFFFFFF807FFFFFFFFF003FFFFFFFFE00007F807F8000007F807F8000007F00
1712−7F0000007F007F0000007F007F0000007F007F0000007F007F0000007F007F0000007F00
1713−7F0000007F007F0000007F007F000000FF00FF000000FF00FF00003FFFFFFFFE007FFFFF
1714−FFFF00FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF007FFFFFFFFF0001FC01
1715−FC000001FC01FC000001FC01FC000003FC03FC000003FC03FC000003F803F8000003F803
1716−F8000003F803F8000003F803F8000003F803F8000003F803F8000003F803F8000001F001
1717−F0000001F001F0000029387DB730>I<000038000000007C00000000FC00000000FC0000
1718−0000FC00000000FC00000003FF0000001FFFE00000FFFFFC0001FFFFFE0007FFFFFF000F
1719−FFFFFF801FFEFDFFC01FF0FC3FE03FC0FC1FE07F80FC0FF07F00FC07F07E00FC07F8FE00
1720−FC03F8FC00FC03F8FC00FC07F8FC00FC07F8FC00FC07F8FE00FC03F0FE00FC03F07F00FC
1721−00007F80FC00007FC0FC00003FF0FC00001FFEFC00001FFFFC00000FFFFF000007FFFFE0
1722−0001FFFFF800007FFFFC00001FFFFE000003FFFF000000FFFF800000FDFFC00000FC7FE0
1723−0000FC1FE00000FC0FF00000FC07F01800FC03F87E00FC03F87E00FC01F8FF00FC01F8FF
1724−00FC01F8FF00FC01F8FE00FC01F8FE00FC01F8FF00FC03F07F00FC03F07F80FC07F07F80
1725−FC0FE03FC0FC1FE03FF0FC7FC01FFEFFFF800FFFFFFF0007FFFFFE0003FFFFFC0000FFFF
1726−F000003FFFC0000007FE00000000FC00000000FC00000000FC00000000FC00000000FC00
1727−0000007C0000000038000025477BBE30>I<03C00001E0000FF00003E0001FF80007F000
1728−3FFC0007F0003FFC000FF0007FFE000FF0007E7E001FE000FE7F001FE000FE7F001FC000
1729−FC3F003FC000FC3F003FC000FC3F003F8000FC3F007F8000FC3F007F8000FC3F00FF0000
1730−FE7F00FF0000FE7F00FE00007E7E01FE00007FFE01FE00003FFC01FC00003FFC03FC0000
1731−1FF803FC00000FF007F8000003C007F80000000007F0000000000FF0000000000FF00000
1732−00000FE0000000001FE0000000001FE0000000003FC0000000003FC0000000003F800000
1733−00007F80000000007F80000000007F0000000000FF0000000000FF0000000001FE000000
1734−0001FE0000000001FC0000000003FC0000000003FC0000000003F80000000007F8000000
1735−0007F8000000000FF001E000000FF007F800000FE00FFC00001FE01FFE00001FE01FFE00
1736−001FC03FFF00003FC03FFF00003FC03F3F00007F807F3F80007F807E1F80007F007E1F80
1737−00FF007E1F8000FF007E1F8000FE007E1F8001FE007E1F8001FE007E1F8003FC007F3F80
1738−03FC003F3F0003F8003FFF0007F8003FFF0007F8001FFE0007F0001FFE0007F0000FFC00
1739−03E00007F80001E00001E00029477DBE30>I<0007E0000000001FF8000000003FFC0000
1740−00007FFC00000000FFFE00000000FFFF00000001FC7F00000001F83F00000001F83F8000
1741−0003F81F80000003F01F80000003F01F80000003F01F80000003F01F80000003F01F8000
1742−0003F01F80000003F03F80000003F03F00000003F07F0FFF0003F87E1FFF8001F8FE1FFF
1743−8001F9FC1FFF8001FBFC1FFF8001FBF80FFF0001FFF00FC00000FFE00FC00000FFE01FC0
1744−0000FFC01F8000007F801F800000FF003F800001FF003F000003FF007F000007FF807E00
1745−000FFF807E00000FFF80FE00001FDFC0FC00003F8FE0FC00003F8FE1FC00007F07F1F800
1746−007F03F3F80000FE03FBF00000FE01FFF00000FE01FFE00000FE00FFE00000FE00FFC006
1747−00FE007FC00F00FE003F801F80FE003FC01F80FF007FC01F807F00FFE01F807F01FFF83F
1748−807F87FFFC3F003FFFFBFFFF001FFFF1FFFE001FFFE0FFFE000FFFC03FFC0003FF001FF8
1749−0001FC0007E000293A7DB830>I<07C00FF01FF81FF81FFC1FFC1FFE0FFE07FE007E007E
1750−007E007E007E00FE00FC00FC01FC01F803F807F00FF01FE07FE0FFC0FF80FF007C003800
1751−0F1D70B730>I<00001E00007F0000FF0001FF0003FE0007FC000FF0001FE0003FC0007F
1752−8000FF0001FE0001FC0003FC0003F80007F0000FF0000FE0000FE0001FC0001FC0003FC0
1753−003F80003F80007F80007F00007F00007F00007F0000FE0000FE0000FE0000FE0000FE00
1754−00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00007F00007F00007F00007F00
1755−007F80003F80003F80003FC0001FC0001FC0000FE0000FE0000FF00007F00003F80003FC
1756−0001FC0001FE0000FF00007F80003FC0001FE0000FF00007FC0003FE0001FF0000FF0000
1757−7F00001E184771BE30>I<780000FE0000FF0000FF80007FC0003FE0000FF00007F80003
1758−FC0001FE0000FF00007F80003F80003FC0001FC0000FE0000FF00007F00007F00003F800
1759−03F80003FC0001FC0001FC0001FE0000FE0000FE0000FE0000FE00007F00007F00007F00
1760−007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0000FE0000FE00
1761−00FE0000FE0001FE0001FC0001FC0003FC0003F80003F80007F00007F0000FF0000FE000
1762−1FC0003FC0003F80007F8000FF0001FE0003FC0007F8000FF0003FE0007FC000FF8000FF
1763−0000FE0000780000184778BE30>I<0000E000000001F000000003F800000003F8000000
1764−03F800000003F800000003F800000003F800003803F803807E03F80FC0FF83F83FE0FFC3
1765−F87FE0FFF3F9FFE07FFBFBFFC03FFFFFFF800FFFFFFE0003FFFFF80001FFFFF000007FFF
1766−C000001FFF0000007FFFC00001FFFFF00003FFFFF8000FFFFFFE003FFFFFFF807FFBFBFF
1767−C0FFF3F9FFE0FFC3F87FE0FF83F83FE07E03F80FC03803F803800003F800000003F80000
1768−0003F800000003F800000003F800000003F800000001F000000000E0000023277AAE30>
1769−I<00003E00000000003E00000000007F00000000007F00000000007F00000000007F0000
1770−0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000
1771−0000007F00000000007F00000000007F00000000007F00000000007F0000007FFFFFFFFF
1772−007FFFFFFFFF00FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF007FFFFFFFFF
1773−0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000
1774−0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000
1775−0000007F00000000007F00000000007F00000000003E00000000003E00000029297DAF30
1776−>I<03E00FF01FF81FFC3FFE3FFE3FFF3FFF1FFF1FFF0FFF03FF007F007F007E00FE01FC
1777−03FC07F83FF07FF0FFE07F807F003C001019708B30>I<7FFFFFFFF07FFFFFFFF0FFFFFF
1778−FFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF07FFFFFFFF025077B9E30>I<0F003FC07FE07F
1779−E0FFF0FFF0FFF0FFF07FE07FE03FC00F000C0C6E8B30>I<00000000F000000001F00000
1780−0003F800000003F800000007F800000007F80000000FF00000000FF00000001FE0000000
1781−1FE00000003FC00000003FC00000007F800000007F80000000FF00000000FF00000001FE
1782−00000001FE00000001FC00000003FC00000003FC00000007F800000007F80000000FF000
1783−00000FF00000001FE00000001FE00000003FC00000003FC00000007F800000007F800000
1784−00FF00000000FF00000001FE00000001FE00000001FC00000003FC00000003FC00000007
1785−F800000007F80000000FF00000000FF00000001FE00000001FE00000003FC00000003FC0
1786−0000007F800000007F80000000FF00000000FF00000001FE00000001FE00000001FC0000
1787−0003FC00000003FC00000007F800000007F80000000FF00000000FF00000001FE0000000
1788−1FE00000003FC00000003FC00000007F800000007F80000000FF00000000FF00000000FE
1789−00000000FE000000007C000000007C0000000025477BBE30>I<0000FE00000007FFC000
1790−000FFFE000003FFFF800007FFFFC0000FFFFFE0001FF83FF0003FE00FF8003FC007F8007
1791−F8003FC00FF0001FE00FE0000FE01FE0000FF01FC00007F01FC00007F03F800003F83F80
1792−0003F83F000001F87F000001FC7F000001FC7F000001FC7F000001FCFE000000FEFE0000
1793−00FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000
1794−FEFE000000FEFE000000FEFE000000FEFE000000FEFF000001FE7F000001FC7F000001FC
1795−7F000001FC7F800003FC3F800003F83F800003F83FC00007F81FC00007F01FC00007F01F
1796−E0000FF00FF0001FE00FF0001FE007F8003FC003FC007F8003FE00FF8001FF83FF0000FF
1797−FFFE00007FFFFC00003FFFF800000FFFE0000007FFC0000000FE0000273A7CB830>I<00
1798−03C0000007E0000007E000000FE000000FE000001FE000001FE000003FE000007FE00000
1799−FFE00003FFE0003FFFE000FFFFE000FFFFE000FFEFE000FF8FE0007E0FE000000FE00000
1800−0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000
1801−0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000
1802−0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000
1803−0FE000000FE000000FE000000FE000000FE000000FE0003FFFFFF87FFFFFFCFFFFFFFEFF
1804−FFFFFE7FFFFFFC3FFFFFF81F3977B830>I<0007FC0000003FFFC00000FFFFF00003FFFF
1805−F80007FFFFFE000FFFFFFF001FF80FFF803FE001FFC03FC0007FC07F80003FE07F00001F
1806−E07F00000FF0FF000007F0FE000007F0FF000007F8FF000003F8FF000003F8FF000003F8
1807−7E000003F818000003F800000003F800000003F800000007F800000007F00000000FF000
1808−00000FE00000001FE00000001FC00000003FC00000007F80000000FF80000001FF000000
1809−01FE00000007FC0000000FF80000001FF00000003FE00000007FC0000000FF80000001FF
1810−00000003FE00000007FC0000000FF00000003FE00000007FC0000000FF80000001FF0000
1811−0003FE0001F007FC0003F80FF80003F81FE00003F83FFFFFFFF8FFFFFFFFF8FFFFFFFFF8
1812−FFFFFFFFF87FFFFFFFF83FFFFFFFF025397BB830>I<0003FF0000003FFFE00000FFFFF8
1813−0001FFFFFE0003FFFFFF0007FFFFFF800FFE01FFC00FF0007FC01FE0001FE01FE0000FE0
1814−1FE0000FF01FE00007F01FE00007F00FC00007F007800007F000000007F00000000FF000
1815−00000FE00000000FE00000001FE00000003FC00000007FC0000000FF80000007FF000007
1816−FFFE00000FFFFC00000FFFF800000FFFFC00000FFFFF000007FFFF80000001FFC0000000
1817−3FE00000001FF000000007F800000003F800000003FC00000001FC00000001FE00000000
1818−FE00000000FE18000000FE7E000000FEFF000000FEFF000000FEFF000001FEFF000001FC
1819−FE000003FCFF000003F87F800007F87FC0001FF03FF0003FF01FFE01FFE00FFFFFFFC007
1820−FFFFFF8003FFFFFE0000FFFFFC00003FFFF0000003FF8000273A7CB830>I<000003FC00
1821−00000007FE000000000FFE000000001FFE000000001FFE000000003FFE000000007FFE00
1822−0000007F7E00000000FE7E00000000FE7E00000001FC7E00000003F87E00000003F87E00
1823−000007F07E00000007F07E0000000FE07E0000001FC07E0000001FC07E0000003F807E00
1824−00003F807E0000007F007E000000FE007E000000FE007E000001FC007E000003F8007E00
1825−0003F8007E000007F0007E000007F0007E00000FE0007E00001FC0007E00001FC0007E00
1826−003F80007E00003F80007E00007F00007E0000FE00007E0000FFFFFFFFFF00FFFFFFFFFF
1827−80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF000000007E00000000007E00
1828−000000007E00000000007E00000000007E00000000007E00000000007E00000000007E00
1829−000000007E00000000007E000000007FFFFE000000FFFFFF000000FFFFFF000000FFFFFF
1830−000000FFFFFF0000007FFFFE0029397DB830>I<0FFFFFFF801FFFFFFFC03FFFFFFFC03F
1831−FFFFFFC03FFFFFFFC03FFFFFFF803F800000003F800000003F800000003F800000003F80
1832−0000003F800000003F800000003F800000003F800000003F800000003F800000003F8000
1833−00003F800000003F800000003F83FF00003F9FFFC0003FFFFFF0003FFFFFFC003FFFFFFE
1834−003FFFFFFF003FFE03FF803FF0007FC03FE0003FC03F80001FE01F00000FE00E00000FF0
1835−00000007F000000007F000000007F800000003F800000003F800000003F818000003F87E
1836−000003F87E000003F8FF000003F8FF000007F8FF000007F0FE00000FF0FF00000FE07F00
1837−001FE07F80003FC07FC0007FC03FE001FF801FFC0FFF000FFFFFFE0007FFFFFC0003FFFF
1838−F80001FFFFE000007FFF8000000FFC000025397BB730>I<7C00000000FFFFFFFFFCFFFF
1839−FFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFCFE00000FF8FE00000FF0FE0000
1840−1FE07C00003FC00000007F80000000FF00000000FF00000001FE00000003FC00000003F8
1841−00000007F800000007F00000000FF00000000FE00000001FC00000001FC00000003F8000
1842−00003F800000007F000000007F00000000FF00000000FE00000001FE00000001FC000000
1843−01FC00000003FC00000003F800000003F800000007F800000007F000000007F000000007
1844−F000000007F00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0
1845−0000001FE00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000
1846−00001FC00000001FC00000001FC00000000F8000000007000000273A7CB830>55
1847−D<0F003FC07FE07FE0FFF0FFF0FFF0FFF07FE07FE03FC00F000000000000000000000000
1848−000000000000000000000000000000000000000F003FC07FE07FE0FFF0FFF0FFF0FFF07F
1849−E07FE03FC00F000C276EA630>58 D<03C00FF01FF81FF83FFC3FFC3FFC3FFC1FF81FF80F
1850−F003C000000000000000000000000000000000000000000000000000000000000003C00F
1851−F01FF01FF83FF83FFC3FFC3FFC1FFC1FFC0FFC03FC00FC01FC01F803F803F007F01FE03F
1852−E07FC0FF807F007E0038000E3470A630>I<00000000F000000003F000000007F8000000
1853−1FF80000007FF8000000FFF0000003FFF0000007FFC000001FFF8000003FFE000000FFF8
1854−000001FFF0000007FFC000000FFF8000003FFE0000007FFC000001FFF0000003FFE00000
1855−0FFF8000001FFF0000007FFC0000007FF8000000FFE0000000FFC0000000FFE00000007F
1856−F80000007FFC0000001FFF0000000FFF80000003FFE0000001FFF00000007FFC0000003F
1857−FE0000000FFF80000007FFC0000001FFF0000000FFF80000003FFE0000001FFF80000007
1858−FFC0000003FFF0000000FFF00000007FF80000001FF800000007F800000003F000000000
1859−F0252F7BB230>I<7FFFFFFFFF007FFFFFFFFF00FFFFFFFFFF80FFFFFFFFFF80FFFFFFFF
1860−FF807FFFFFFFFF003FFFFFFFFE0000000000000000000000000000000000000000000000
1861−00000000000000000000000000000000000000003FFFFFFFFE007FFFFFFFFF00FFFFFFFF
1862−FF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF007FFFFFFFFF0029157DA530>I<780000
1863−00007E00000000FF00000000FFC0000000FFE00000007FF80000007FFE0000001FFF0000
1864−000FFFC0000003FFE0000001FFF80000007FFC0000001FFF0000000FFF80000003FFE000
1865−0001FFF00000007FFC0000003FFE0000000FFF80000007FFC0000001FFF0000000FFF000
1866−00003FF80000001FF80000003FF8000000FFF0000001FFF0000007FFC000000FFF800000
1867−3FFE0000007FFC000001FFF0000003FFE000000FFF8000001FFF0000007FFC000001FFF8
1868−000003FFE000000FFFC000001FFF0000007FFE0000007FF8000000FFE0000000FFC00000
1869−00FF000000007E000000007800000000252F7BB230>I<001FFE000000FFFFE00003FFFF
1870−F8000FFFFFFE001FFFFFFF003FFFFFFF807FF803FFC07FC0007FC0FF00001FC0FF00001F
1871−E0FF00000FE0FF00000FE0FF00000FE07E00000FE07E00001FE01800007FC0000000FFC0
1872−000003FF80000007FF0000000FFE0000001FF80000003FF00000007FC0000000FF800000
1873−00FF00000001FE00000001FE00000003FC00000003F800000003F800000007F800000007
1874−F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0
1875−00000003E000000000000000000000000000000000000000000000000000000000000000
1876−00000000000000000000000001C000000007F000000007F00000000FF80000000FF80000
1877−000FF800000007F000000007F000000001C0000023397AB830>I<00001FE0000000FFF8
1878−000003FFFE00000FFFFF00001FFFFF80003FFFFFC0007FF03FE000FF800FE001FF0007F0
1879−03FC0003F007F801FBF807F007FFF80FE01FFFF80FE03FFFFC1FC03FFFFC1F807FFFFC3F
1880−80FF0FFC3F00FE07FC3F01FC03FE7F01F801FE7E03F801FE7E03F000FE7E03F000FEFE07
1881−F000FEFC07E0007EFC07E0007EFC07E0007EFC07E0007EFC07E0007EFC07E0007EFC07E0
1882−007EFC07E0007EFC07E0007EFC07E0007EFE07F000FE7E03F000FC7E03F000FC7E03F801
1883−FC7F01F801F83F01FC03F83F00FE07F03F80FF0FF01F807FFFE01FC03FFFC00FE03FFFC0
1884−0FE01FFF8007F007FE0007F801F80003FC00007C01FF0000FE00FF8003FE007FF01FFE00
1885−3FFFFFFC001FFFFFF8000FFFFFE00003FFFFC00000FFFE0000001FF000273A7CB830>I<
1886−00007F0000000000FF8000000000FF8000000001FFC000000001FFC000000001FFC00000
1887−0001FFC000000003FFE000000003F7E000000003F7E000000003F7E000000003F7E00000
1888−0007F7F000000007E3F000000007E3F000000007E3F00000000FE3F80000000FE3F80000
1889−000FE3F80000000FC1F80000000FC1F80000001FC1FC0000001FC1FC0000001FC1FC0000
1890−001FC1FC0000003F80FE0000003F80FE0000003F80FE0000003F80FE0000003F80FE0000
1891−007F007F0000007F007F0000007F007F0000007F007F000000FF007F800000FE003F8000
1892−00FFFFFF800000FFFFFF800000FFFFFF800001FFFFFFC00001FFFFFFC00001FFFFFFC000
1893−01FC001FC00003FC001FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE000
1894−07F8000FF00007F00007F00007F00007F0007FFF007FFF00FFFF80FFFF80FFFF80FFFF80
1895−FFFF80FFFF80FFFF80FFFF807FFF007FFF0029397DB830>I<7FFFFFF00000FFFFFFFE00
1896−00FFFFFFFF8000FFFFFFFFC000FFFFFFFFE0007FFFFFFFF00003F8001FF80003F80007F8
1897−0003F80003FC0003F80001FC0003F80001FC0003F80000FE0003F80000FE0003F80000FE
1898−0003F80000FE0003F80000FE0003F80000FE0003F80001FE0003F80001FC0003F80001FC
1899−0003F80003F80003F80007F80003F8001FF00003F8007FE00003FFFFFFC00003FFFFFF80
1900−0003FFFFFE000003FFFFFF800003FFFFFFE00003FFFFFFF00003F8000FF80003F80003FC
1901−0003F80001FE0003F80000FE0003F800007F0003F800007F0003F800007F0003F800003F
1902−8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800007F
1903−8003F800007F0003F800007F0003F80000FF0003F80001FE0003F80003FE0003F8001FFC
1904−007FFFFFFFFC00FFFFFFFFF800FFFFFFFFF000FFFFFFFFC000FFFFFFFF80007FFFFFFC00
1905−0029387EB730>I<00007F803C0003FFF03E0007FFFC7E001FFFFE7E003FFFFFFE007FFF
1906−FFFE00FFE07FFE01FF801FFE03FE000FFE07FC0007FE07F80007FE0FF00003FE0FF00003
1907−FE1FE00001FE1FC00001FE3FC00001FE3F800000FE3F800000FE7F800000FE7F000000FE
1908−7F0000007C7F00000000FF00000000FE00000000FE00000000FE00000000FE00000000FE
1909−00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
1910−000000FF000000007F000000007F000000007F0000007C7F800000FE3F800000FE3F8000
1911−00FE3FC00000FE1FC00000FE1FE00001FE0FF00001FC0FF00001FC07F80003F807FC0007
1912−F803FE000FF001FF801FF000FFE07FE0007FFFFFC0003FFFFF80001FFFFF000007FFFC00
1913−0003FFF00000007FC000273A7CB830>I<3FFFFFE000007FFFFFFC0000FFFFFFFE0000FF
1914−FFFFFF80007FFFFFFFC0003FFFFFFFE00003F8007FF00003F8001FF80003F8000FF80003
1915−F80007FC0003F80003FE0003F80001FE0003F80000FF0003F80000FF0003F800007F8003
1916−F800007F8003F800003F8003F800003FC003F800001FC003F800001FC003F800001FC003
1917−F800001FC003F800000FE003F800000FE003F800000FE003F800000FE003F800000FE003
1918−F800000FE003F800000FE003F800000FE003F800000FE003F800000FE003F800000FE003
1919−F800000FE003F800001FE003F800001FC003F800001FC003F800001FC003F800003FC003
1920−F800003F8003F800003F8003F800007F8003F800007F0003F80000FF0003F80001FE0003
1921−F80003FE0003F80007FC0003F8000FFC0003F8001FF80003F8007FF0003FFFFFFFE0007F
1922−FFFFFFC000FFFFFFFF8000FFFFFFFF00007FFFFFFC00003FFFFFE000002B387FB730>I<
1923−7FFFFFFFFF00FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF80
1924−03F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F80
1925−03F800003F8003F800003F8003F800001F0003F80000000003F80000000003F800000000
1926−03F80000000003F8007C000003F800FE000003F800FE000003F800FE000003F800FE0000
1927−03FFFFFE000003FFFFFE000003FFFFFE000003FFFFFE000003FFFFFE000003FFFFFE0000
1928−03F800FE000003F800FE000003F800FE000003F800FE000003F8007C000003F800000000
1929−03F80000000003F80000000003F80000000003F80000000003F8000007C003F800000FE0
1930−03F800000FE003F800000FE003F800000FE003F800000FE003F800000FE003F800000FE0
1931−03F800000FE003F800000FE07FFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0
1932−FFFFFFFFFFE07FFFFFFFFFC02B387EB730>I<3FFFFFFFFF807FFFFFFFFFC0FFFFFFFFFF
1933−C0FFFFFFFFFFC07FFFFFFFFFC03FFFFFFFFFC001FC00001FC001FC00001FC001FC00001F
1934−C001FC00001FC001FC00001FC001FC00001FC001FC00001FC001FC00001FC001FC00000F
1935−8001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC003E00
1936−0001FC007F000001FC007F000001FC007F000001FC007F000001FFFFFF000001FFFFFF00
1937−0001FFFFFF000001FFFFFF000001FFFFFF000001FFFFFF000001FC007F000001FC007F00
1938−0001FC007F000001FC007F000001FC003E000001FC0000000001FC0000000001FC000000
1939−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
1940−0001FC0000000001FC0000000001FC0000000001FC0000000001FC000000003FFFF80000
1941−007FFFFC000000FFFFFC000000FFFFFC0000007FFFFC0000003FFFF80000002A387EB730
1942−>I<0000FF00F0000003FFC0F800000FFFF1F800003FFFFDF800007FFFFFF80000FFFFFF
1943−F80001FFC1FFF80001FF007FF80003FE003FF80007FC001FF80007F8000FF8000FF0000F
1944−F8000FE00007F8001FE00007F8001FC00007F8003FC00007F8003F800003F8003F800003
1945−F8007F800003F8007F000003F8007F000001F0007F0000000000FF0000000000FE000000
1946−0000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000
1947−0000FE0000000000FE0000FFFF00FE0001FFFF80FE0003FFFF80FE0003FFFF80FF0001FF
1948−FF807F0000FFFF007F000003F8007F000003F8007F800003F8003F800007F8003F800007
1949−F8003FC00007F8001FC00007F8001FE0000FF8000FE0000FF8000FF0000FF80007F8001F
1950−F80007F8001FF80003FE003FF80001FF007FF80001FFC1FFF80000FFFFFFF800007FFFFF
1951−F800003FFFFBF800000FFFF3F8000003FFC1F0000000FF000000293A7DB830>I<3FFF80
1952−0FFFE07FFFC01FFFF0FFFFE03FFFF8FFFFE03FFFF87FFFC01FFFF03FFF800FFFE003F800
1953−00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800
1954−00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800
1955−00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003FFFF
1956−FFFE0003FFFFFFFE0003FFFFFFFE0003FFFFFFFE0003FFFFFFFE0003FFFFFFFE0003F800
1957−00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800
1958−00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800
1959−00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800
1960−00FE0003F80000FE003FFF800FFFE07FFFC01FFFF0FFFFE03FFFF8FFFFE03FFFF87FFFC0
1961−1FFFF03FFF800FFFE02D387FB730>I<7FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80
1962−FFFFFFFF807FFFFFFF000007F000000007F000000007F000000007F000000007F0000000
1963−07F000000007F000000007F000000007F000000007F000000007F000000007F000000007
1964−F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0
1965−00000007F000000007F000000007F000000007F000000007F000000007F000000007F000
1966−000007F000000007F000000007F000000007F000000007F000000007F000000007F00000
1967−0007F000000007F000000007F000000007F000000007F000000007F000000007F0000000
1968−07F000000007F000000007F000007FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFF
1969−FFFF807FFFFFFF00213879B730>I<0001FFFFF00003FFFFF80007FFFFF80007FFFFF800
1970−03FFFFF80001FFFFF0000000FE00000000FE00000000FE00000000FE00000000FE000000
1971−00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000
1972−FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE
1973−00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
1974−000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000
1975−0000FE00000000FE00000000FE003C0000FE007E0000FE00FF0000FE00FF0000FE00FF00
1976−01FC00FF0003FC00FF8007FC007FF01FF8003FFFFFF0003FFFFFE0001FFFFFC00007FFFF
1977−800001FFFE0000003FF0000025397AB730>I<3FFFF80000007FFFFC000000FFFFFE0000
1978−00FFFFFE0000007FFFFC0000003FFFF800000001FC0000000001FC0000000001FC000000
1979−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
1980−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
1981−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
1982−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
1983−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
1984−0001FC0000000001FC00000F8001FC00001FC001FC00001FC001FC00001FC001FC00001F
1985−C001FC00001FC001FC00001FC001FC00001FC001FC00001FC001FC00001FC03FFFFFFFFF
1986−C07FFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC07FFFFFFFFFC03FFFFFFFFF802A387EB730
1987−>76 D<3FF80000FFE07FFC0001FFF0FFFE0003FFF8FFFE0003FFF87FFE0003FFF03FFF00
1988−07FFE007FF0007FF0007EF0007BF0007EF800FBF0007EF800FBF0007EF800FBF0007E7C0
1989−1F3F0007E7C01F3F0007E7C01F3F0007E7C01F3F0007E7E03F3F0007E3E03E3F0007E3E0
1990−3E3F0007E3F07E3F0007E3F07E3F0007E1F07C3F0007E1F07C3F0007E1F8FC3F0007E1F8
1991−FC3F0007E0F8F83F0007E0F8F83F0007E0FDF83F0007E07DF03F0007E07DF03F0007E07D
1992−F03F0007E07FF03F0007E03FE03F0007E03FE03F0007E03FE03F0007E01FC03F0007E01F
1993−C03F0007E007003F0007E000003F0007E000003F0007E000003F0007E000003F0007E000
1994−003F0007E000003F0007E000003F0007E000003F0007E000003F0007E000003F0007E000
1995−003F0007E000003F0007E000003F003FFC0001FFE07FFE0003FFF0FFFF0007FFF8FFFF00
1996−07FFF87FFE0003FFF03FFC0001FFE02D387FB730>I<3FFC001FFF807FFE003FFFC0FFFF
1997−007FFFE0FFFF007FFFE07FFF803FFFC03FFF801FFF8003FF8001F80003F7C001F80003F7
1998−C001F80003F7C001F80003F3E001F80003F3E001F80003F3E001F80003F3F001F80003F1
1999−F001F80003F1F001F80003F1F801F80003F1F801F80003F0F801F80003F0FC01F80003F0
2000−FC01F80003F07C01F80003F07E01F80003F07E01F80003F03E01F80003F03F01F80003F0
2001−3F01F80003F01F01F80003F01F01F80003F01F81F80003F01F81F80003F00F81F80003F0
2002−0FC1F80003F00FC1F80003F007C1F80003F007E1F80003F007E1F80003F003E1F80003F0
2003−03F1F80003F003F1F80003F001F1F80003F001F1F80003F001F9F80003F000F9F80003F0
2004−00F9F80003F000F9F80003F0007DF80003F0007DF80003F0007DF80003F0003FF8003FFF
2005−003FF8007FFF803FF800FFFFC01FF800FFFFC01FF8007FFF800FF8003FFF0007F0002B38
2006−7EB730>I<003FFFE00001FFFFFC0007FFFFFF000FFFFFFF801FFFFFFFC03FFFFFFFE03F
2007−F800FFE03FE0003FE07F80000FF07F80000FF07F000007F07F000007F07F000007F07F00
2008−0007F0FF000007F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE0000
2009−03F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003
2010−F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8
2011−FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FF
2012−000007F8FF000007F87F000007F07F000007F07F000007F07F80000FF07F80000FF07FC0
2013−001FF03FE0003FE03FF800FFE03FFFFFFFE01FFFFFFFC00FFFFFFF8007FFFFFF0001FFFF
2014−FC00003FFFE000253A7BB830>I<7FFFFFF00000FFFFFFFE0000FFFFFFFF8000FFFFFFFF
2015−E000FFFFFFFFF0007FFFFFFFF80003F8003FF80003F8000FFC0003F80003FE0003F80001
2016−FE0003F80000FF0003F80000FF0003F800007F0003F800007F8003F800003F8003F80000
2017−3F8003F800003F8003F800003F8003F800003F8003F800003F8003F800007F8003F80000
2018−7F0003F80000FF0003F80000FF0003F80001FE0003F80003FE0003F8000FFC0003F8003F
2019−F80003FFFFFFF80003FFFFFFF00003FFFFFFE00003FFFFFF800003FFFFFE000003FFFFF0
2020−000003F80000000003F80000000003F80000000003F80000000003F80000000003F80000
2021−000003F80000000003F80000000003F80000000003F80000000003F80000000003F80000
2022−000003F80000000003F80000000003F80000000003F8000000007FFFC0000000FFFFE000
2023−0000FFFFE0000000FFFFE0000000FFFFE00000007FFFC000000029387EB730>I<3FFFFF
2024−8000007FFFFFF00000FFFFFFFC0000FFFFFFFF00007FFFFFFF80003FFFFFFFC00003F801
2025−FFE00003F8003FF00003F8001FF00003F8000FF80003F80007F80003F80003F80003F800
2026−03FC0003F80001FC0003F80001FC0003F80001FC0003F80001FC0003F80001FC0003F800
2027−03FC0003F80003F80003F80007F80003F8000FF80003F8001FF00003F8003FF00003F801
2028−FFE00003FFFFFFC00003FFFFFF800003FFFFFF000003FFFFFE000003FFFFFF000003FFFF
2029−FF800003F800FFC00003F8003FE00003F8001FE00003F8000FE00003F8000FF00003F800
2030−07F00003F80007F00003F80007F00003F80007F00003F80007F00003F80007F00003F800
2031−07F00003F80007F00003F80007F0F803F80007F1FC03F80007F1FC03F80007F1FC03F800
2032−07F1FC03F80007F1FC3FFF8003FBFC7FFFC003FFF8FFFFE001FFF8FFFFE001FFF07FFFC0
2033−00FFE03FFF80007FC0000000001F002E397FB730>82 D<000FF803C0007FFF03E001FFFF
2034−C7E003FFFFF7E007FFFFFFE00FFFFFFFE01FF80FFFE03FE001FFE03FC000FFE07F80007F
2035−E07F00003FE0FF00003FE0FE00001FE0FE00001FE0FE00000FE0FE00000FE0FE00000FE0
2036−FF00000FE0FF000007C07F000000007F800000007FC00000003FF00000001FFE0000001F
2037−FFF000000FFFFF000007FFFFE00001FFFFF80000FFFFFC00001FFFFF000003FFFF800000
2038−3FFFC0000001FFC00000007FE00000001FE00000000FF00000000FF000000007F8000000
2039−07F87C000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FF000007
2040−F8FF000007F0FF800007F0FFC0000FE0FFE0001FE0FFF8003FC0FFFF00FFC0FFFFFFFF80
2041−FFFFFFFF00FDFFFFFE00FC7FFFF800F81FFFF0007801FF8000253A7BB830>I<3FFFFFFF
2042−FFC07FFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FE003F80
2043−0FE0FE003F800FE0FE003F800FE0FE003F800FE0FE003F800FE0FE003F800FE0FE003F80
2044−0FE0FE003F800FE07C003F8007C000003F80000000003F80000000003F80000000003F80
2045−000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80
2046−000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80
2047−000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80
2048−000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80
2049−000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80
2050−000000003F800000001FFFFF0000003FFFFF8000003FFFFF8000003FFFFF8000003FFFFF
2051−8000001FFFFF00002B387EB730>I<7FFFC007FFFCFFFFE00FFFFEFFFFE00FFFFEFFFFE0
2052−0FFFFEFFFFE00FFFFE7FFFC007FFFC03F800003F8003F800003F8003F800003F8003F800
2053−003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800
2054−003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800
2055−003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800
2056−003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800
2057−003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800
2058−003F8003F800003F8003FC00007F8001FC00007F0001FC00007F0001FC00007F0000FE00
2059−00FE0000FF0001FE00007F0001FC00007F8003FC00003FE00FF800001FF83FF000000FFF
2060−FFE0000007FFFFC0000003FFFF80000001FFFF000000007FFC000000001FF000002F3980
2061−B730>I<7FFE000FFFC0FFFF001FFFE0FFFF803FFFE0FFFF803FFFE0FFFF001FFFE07FFE
2062−000FFFC007F00001FC0007F00001FC0007F80003FC0003F80003F80003F80003F80003F8
2063−0003F80003F80003F80001FC0007F00001FC0007F00001FC0007F00001FC0007F00000FE
2064−000FE00000FE000FE00000FE000FE00000FE000FE00000FF001FE000007F001FC000007F
2065−001FC000007F001FC000007F803FC000003F803F8000003F803F8000003F803F8000003F
2066−803F8000001FC07F0000001FC07F0000001FC07F0000001FC07F0000000FE0FE0000000F
2067−E0FE0000000FE0FE0000000FE0FE00000007E0FC00000007F1FC00000007F1FC00000007
2068−F1FC00000003F1F800000003F1F800000003F1F800000003FBF800000001FBF000000001
2069−FBF000000001FBF000000001FFF000000001FFF000000000FFE000000000FFE000000000
2070−FFE000000000FFE0000000007FC0000000003F8000002B397EB730>I<3FFC0001FFE07F
2071−FE0003FFF0FFFE0003FFF8FFFE0003FFF87FFE0003FFF03FFC0001FFE01FC000001FC00F
2072−C000001F800FC000001F800FC000001F800FC000001F800FC000001F800FC000001F800F
2073−C000001F800FE000003F8007E000003F0007E000003F0007E000003F0007E000003F0007
2074−E000003F0007E000003F0007E000003F0003E00F803E0003F01FC07E0003F03FE07E0003
2075−F03FE07E0003F03FE07E0003F07FF07E0003F07FF07E0003F07DF07E0001F07DF07C0001
2076−F07DF07C0001F8FDF8FC0001F8FDF8FC0001F8FDF8FC0001F8F8F8FC0001F8F8F8FC0001
2077−F8F8F8FC0000F8F8F8F80000F9F8FCF80000F9F8FCF80000F9F07CF80000F9F07CF80000
2078−FDF07DF80000FDF07DF800007DF07DF000007DE03DF000007DE03DF000007DE03DF00000
2079−7FE03FF000007FE03FF000007FC01FF000007FC01FF000003FC01FE000003FC01FE00000
2080−3F800FE000001F0007C0002D397FB730>I<3FFF01FFF8007FFF83FFFC007FFFC7FFFE00
2081−7FFFC7FFFE007FFF83FFFC003FFF01FFF80001FC007F800001FE007F000000FE00FF0000
2082−00FF00FE0000007F01FE0000007F81FC0000003F83FC0000003FC3FC0000001FC3F80000
2083−001FE7F80000000FE7F00000000FFFF000000007FFE000000007FFE000000003FFC00000
2084−0003FFC000000001FF8000000001FF8000000000FF0000000000FF0000000000FF000000
2085−0000FF0000000001FF8000000001FF8000000003FFC000000003FFC000000003FFE00000
2086−0007FFE000000007FFF00000000FE7F00000000FE7F80000001FC3F80000001FC3FC0000
2087−003F81FC0000003F81FE0000007F00FE0000007F00FF000000FF007F000000FE007F8000
2088−01FE003F800001FC003FC00003FC001FC00003F8001FE00007F8000FE0007FFE007FFF00
2089−FFFF00FFFF80FFFF80FFFF80FFFF80FFFF80FFFF00FFFF807FFE007FFF0029387DB730>
2090−I<1FFFFFFFFC3FFFFFFFFE7FFFFFFFFE7FFFFFFFFE7FFFFFFFFE7FFFFFFFFE7F000003FC
2091−7F000007F87F000007F07F00000FF07F00001FE07F00001FC07F00003FC07F00007F803E
2092−00007F00000000FF00000001FE00000001FC00000003FC00000007F800000007F0000000
2093−0FF00000001FE00000001FC00000003FC00000007F800000007F00000000FF00000001FE
2094−00000001FC00000003FC00000007F800000007F00000000FF00000001FE00000001FC000
2095−00003FC00000007F800000007F00000000FF00000001FE00007C01FC0000FE03FC0000FE
2096−07F80000FE07F00000FE0FF00000FE1FE00000FE1FC00000FE3FC00000FE7F800000FE7F
2097−FFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC27387CB730>90
2098−D<7FFFFF00FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF00FE000000FE000000FE0000
2099−00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
2100−00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
2101−00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
2102−00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
2103−00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
2104−00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
2105−00FE000000FE000000FFFFFF00FFFFFF80FFFFFF80FFFFFF80FFFFFF807FFFFF0019476D
2106−BE30>I<7C000000007C00000000FE00000000FE00000000FF00000000FF000000007F80
2107−0000007F800000003FC00000003FC00000001FE00000001FE00000000FF00000000FF000
2108−000007F800000007F800000003FC00000003FC00000001FC00000001FE00000001FE0000
2109−0000FF00000000FF000000007F800000007F800000003FC00000003FC00000001FE00000
2110−001FE00000000FF00000000FF000000007F800000007F800000003FC00000003FC000000
2111−01FC00000001FE00000001FE00000000FF00000000FF000000007F800000007F80000000
2112−3FC00000003FC00000001FE00000001FE00000000FF00000000FF000000007F800000007
2113−F800000003FC00000003FC00000001FC00000001FE00000001FE00000000FF00000000FF
2114−000000007F800000007F800000003FC00000003FC00000001FE00000001FE00000000FF0
2115−0000000FF000000007F800000007F800000003F800000003F800000001F000000000F025
2116−477BBE30>I<7FFFFF00FFFFFF80FFFFFF80FFFFFF80FFFFFF807FFFFF8000003F800000
2117−3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
2118−3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
2119−3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
2120−3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
2121−3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
2122−3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000
2123−3F8000003F8000003F8000003F807FFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF807FFF
2124−FF0019477DBE30>I<00070000001FC000007FF00000FFF80003FFFE000FFFFF803FFFFF
2125−E07FFDFFF0FFF07FF8FFC01FF8FF800FF8FE0003F87C0001F0100000401D0E77B730>I<
2126−7FFFFFFFF07FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF07FFFFFFFF025
2127−077B7D30>I<0038007C01FE03FE07FE0FFC0FF01FE01FC03F803F007F007E007E00FE00
2128−FC00FC00FC00FC00FC00FFC0FFE0FFF07FF07FF03FF03FF01FE007C00F1D70BE30>I<00
2129−3FFC00000001FFFF80000003FFFFE0000007FFFFF000000FFFFFF800001FFFFFFC00001F
2130−F00FFE00001FE001FF00001FE000FF00001FE0007F80000FC0003F80000780003FC00000
2131−00001FC0000000001FC0000000001FC0000000001FC0000000FFFFC000000FFFFFC00000
2132−7FFFFFC00001FFFFFFC00007FFFFFFC0000FFFFFFFC0001FFFC01FC0003FFC001FC0007F
2133−E0001FC0007F80001FC000FF00001FC000FE00001FC000FE00001FC000FE00001FC000FE
2134−00001FC000FF00003FC000FF00003FC0007F80007FC0007FC001FFC0003FF80FFFFFC01F
2135−FFFFFFFFE01FFFFFFFFFE007FFFFF7FFE003FFFFC3FFE000FFFF00FFC0003FF00000002B
2136−2A7CA830>I<3FFC000000007FFE00000000FFFE00000000FFFE000000007FFE00000000
2137−3FFE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00000000
2138−00FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE03FE0000
2139−00FE1FFF800000FE7FFFE00000FEFFFFF00000FFFFFFFC0000FFFFFFFE0000FFFE07FE00
2140−00FFF001FF0000FFE000FF8000FFC0007F8000FF80003FC000FF00001FC000FE00001FE0
2141−00FE00000FE000FE00000FE000FE00000FF000FE000007F000FE000007F000FE000007F0
2142−00FE000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE00000FF0
2143−00FE00000FF000FE00000FE000FF00000FE000FF00001FE000FF80003FC000FF80003FC0
2144−00FFC0007F8000FFE000FF8000FFF003FF0000FFFC0FFE0000FFFFFFFC0000FFFFFFF800
2145−00FEFFFFF000007E7FFFC000003C1FFF0000000003FC00002C3980B730>I<0000FFE000
2146−0007FFFC00001FFFFE00007FFFFF0000FFFFFF8001FFFFFFC003FF807FC007FC003FC00F
2147−F8003FC01FF0003FC01FE0001F803FC0000F003F800000007F800000007F000000007F00
2148−000000FF00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000
2149−0000FE00000000FE00000000FF000000007F000000007F000000007F800000003F800007
2150−C03FC0000FE01FE0000FE01FF0001FE00FF8001FC007FE003FC007FFC0FF8003FFFFFF80
2151−00FFFFFF00007FFFFE00001FFFF8000007FFF0000001FF8000232A7AA830>I<000001FF
2152−E000000003FFF000000007FFF000000007FFF000000003FFF000000001FFF00000000007
2153−F00000000007F00000000007F00000000007F00000000007F00000000007F00000000007
2154−F00000000007F00000000007F00000000007F0000003FE07F000001FFF87F000003FFFE7
2155−F00000FFFFFFF00001FFFFFFF00003FFFFFFF00007FF03FFF0000FFC00FFF0001FF0003F
2156−F0001FE0001FF0003FC0001FF0003FC0000FF0007F800007F0007F000007F0007F000007
2157−F000FF000007F000FF000007F000FE000007F000FE000007F000FE000007F000FE000007
2158−F000FE000007F000FE000007F000FE000007F000FE000007F000FF000007F0007F00000F
2159−F0007F00000FF0007F80000FF0003F80001FF0003FC0003FF0001FE0003FF0001FF0007F
2160−F0000FF801FFF00007FE07FFFFC003FFFFFFFFE001FFFFFFFFF000FFFFF7FFF0007FFFC7
2161−FFE0001FFF03FFC00007FC0000002C397DB730>I<0001FF00000007FFE000001FFFF800
2162−007FFFFC0000FFFFFE0001FFFFFF0003FF81FF8007FC007FC00FF8003FC01FE0001FE01F
2163−E0000FE03FC0000FF03F800007F07F800007F07F000007F07F000003F8FF000003F8FE00
2164−0003F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF0FE0000
2165−0000FF000000007F000000007F000000007F800000003F800001F03FC00003F81FE00003
2166−F80FF00003F80FF80007F807FE001FF003FFC07FE001FFFFFFE000FFFFFFC0003FFFFF80
2167−001FFFFE000007FFF8000000FFC000252A7CA830>I<000000FF80000007FFE000001FFF
2168−F000003FFFF000007FFFF80000FFFFF80001FF87F80003FE07F80003FC03F00007F800C0
2169−0007F000000007F000000007F000000007F000000007F000000007F000000007F0000000
2170−07F000003FFFFFFFC07FFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFC00007
2171−F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0
2172−00000007F000000007F000000007F000000007F000000007F000000007F000000007F000
2173−000007F000000007F000000007F000000007F000000007F000000007F000000007F00000
2174−0007F000000007F000000007F000000007F000000007F000003FFFFFFE007FFFFFFF00FF
2175−FFFFFF80FFFFFFFF807FFFFFFF003FFFFFFE0025397DB830>I<0003FC00FF00001FFF87
2176−FFC0003FFFDFFFC000FFFFFFFFE001FFFFFFFFE003FFFFFFFFE007FE07FF8FE007F801FE
2177−07C00FF000FF00000FF000FF00000FE0007F00001FE0007F80001FC0003F80001FC0003F
2178−80001FC0003F80001FC0003F80001FC0003F80001FE0007F80000FE0007F00000FF000FF
2179−00000FF000FF000007F801FE000007FE07FE000007FFFFFC000007FFFFF800000FFFFFF0
2180−00000FFFFFC000000FDFFF8000000FC3FC0000000FC0000000000FC0000000000FC00000
2181−00000FE0000000000FF00000000007FFFFF0000007FFFFFF000003FFFFFFC00007FFFFFF
2182−F0000FFFFFFFF8001FFFFFFFFC003FE0001FFE003F800001FE007F0000007F007E000000
2183−3F00FE0000003F80FC0000001F80FC0000001F80FC0000001F80FC0000001F80FC000000
2184−1F80FE0000003F807F0000007F007F800000FF003FC00001FE003FF00007FE001FFF007F
2185−FC000FFFFFFFF80007FFFFFFF00001FFFFFFC000007FFFFF0000001FFFFC00000001FFC0
2186−00002B3E7DA730>I<3FFC000000007FFE00000000FFFE00000000FFFE000000007FFE00
2187−0000003FFE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00
2188−00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE01
2189−FE000000FE0FFF800000FE3FFFE00000FEFFFFF00000FFFFFFF80000FFFFFFF80000FFFE
2190−07FC0000FFF803FC0000FFE001FE0000FFC001FE0000FF8000FE0000FF8000FE0000FF00
2191−00FE0000FF0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
2192−00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
2193−00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
2194−00FE0000FE0000FE0000FE0000FE0000FE0000FE003FFFF81FFFF87FFFFC3FFFFCFFFFFE
2195−3FFFFEFFFFFE3FFFFE7FFFFC3FFFFC3FFFF81FFFF82F3880B730>I<0000E000000003F8
2196−00000003F800000007FC00000007FC00000007FC00000003F800000003F800000000E000
2197−000000000000000000000000000000000000000000000000000000000000000000000000
2198−000000000000000000001FFFF800003FFFFC00007FFFFC00007FFFFC00003FFFFC00001F
2199−FFFC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001
2200−FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC
2201−00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00
2202−000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00003FFFFFFFC0
2203−7FFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFE03FFFFFFFC023397AB830>I<000001C0
2204−000007F0000007F000000FF800000FF800000FF8000007F0000007F0000001C000000000
2205−000000000000000000000000000000000000000000000000000000000000000000FFFFF0
2206−01FFFFF801FFFFF801FFFFF801FFFFF800FFFFF8000003F8000003F8000003F8000003F8
2207−000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8
2208−000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8
2209−000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8
2210−000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8
2211−000003F8000007F0000007F03C0007F07E000FE0FF001FE0FF003FC0FF007FC0FFFFFF80
2212−7FFFFF007FFFFE003FFFFC000FFFF00003FFC0001D4E7CB830>I<7FF800000000FFFC00
2213−000000FFFC00000000FFFC00000000FFFC000000007FFC0000000000FC0000000000FC00
2214−00000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC00
2215−00000000FC0000000000FC0000000000FC0000000000FC03FFFF8000FC07FFFFC000FC07
2216−FFFFE000FC07FFFFE000FC07FFFFC000FC03FFFF8000FC001FE00000FC003FC00000FC00
2217−7F800000FC00FF000000FC01FE000000FC03FC000000FC0FF8000000FC1FF0000000FC3F
2218−E0000000FC7FC0000000FCFF80000000FDFFC0000000FFFFE0000000FFFFF0000000FFF7
2219−F0000000FFE3F8000000FFC1FC000000FF81FE000000FF00FF000000FE007F000000FC00
2220−3F800000FC001FC00000FC001FE00000FC000FF00000FC0007F00000FC0003F80000FC00
2221−01FC007FFFF81FFFE0FFFFFC3FFFF0FFFFFC3FFFF8FFFFFC3FFFF8FFFFFC3FFFF07FFFF8
2222−1FFFE02D387FB730>I<7FFFF80000FFFFFC0000FFFFFC0000FFFFFC0000FFFFFC00007F
2223−FFFC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001
2224−FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC
2225−00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00
2226−000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000
2227−0001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000
2228−01FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001
2229−FC00000001FC00007FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFF
2230−FFF025387BB730>I<0000FC007E00007FC3FF01FF8000FFEFFF87FFC000FFFFFFCFFFE0
2231−00FFFFFFDFFFE000FFFFFFFFFFF0007FFF0FFF87F00007FE07FF03F80007FC07FE03F800
2232−07F803FC01F80007F803FC01F80007F003F801F80007F003F801F80007F003F801F80007
2233−E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E0
2234−03F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003
2235−F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F0
2236−01F80007E003F001F80007E003F001F80007E003F001F80007E003F001F8007FFE0FFF07
2237−FF80FFFF1FFF8FFFC0FFFF1FFF8FFFC0FFFF1FFF8FFFC0FFFF1FFF8FFFC07FFE0FFF07FF
2238−80322881A730>I<000001FE00003FFC0FFF80007FFE3FFFE000FFFEFFFFF000FFFFFFFF
2239−F8007FFFFFFFF8003FFFFE07FC0000FFF803FC0000FFE001FE0000FFC001FE0000FF8000
2240−FE0000FF8000FE0000FF0000FE0000FF0000FE0000FE0000FE0000FE0000FE0000FE0000
2241−FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000
2242−FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000
2243−FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE003FFFF81F
2244−FFF87FFFFC3FFFFCFFFFFE3FFFFEFFFFFE3FFFFE7FFFFC3FFFFC3FFFF81FFFF82F2880A7
2245−30>I<0001FF0000000FFFE000003FFFF800007FFFFC0000FFFFFE0003FFFFFF8003FF01
2246−FF8007FC007FC00FF8003FE01FE0000FF01FE0000FF03FC00007F83F800003F87F800003
2247−FC7F000001FC7F000001FC7F000001FCFE000000FEFE000000FEFE000000FEFE000000FE
2248−FE000000FEFE000000FEFE000000FEFE000000FEFF000001FE7F000001FC7F000001FC7F
2249−800003FC3F800003F83FC00007F83FE0000FF81FF0001FF00FF8003FE00FFC007FE007FF
2250−01FFC003FFFFFF8001FFFFFF00007FFFFC00003FFFF800000FFFE0000001FF0000272A7C
2251−A830>I<000003FE00003FFC1FFF80007FFE7FFFE000FFFEFFFFF000FFFFFFFFFC007FFF
2252−FFFFFE003FFFFE07FE0000FFF001FF0000FFE000FF8000FFC0007F8000FF80003FC000FF
2253−00001FC000FE00001FE000FE00000FE000FE00000FE000FE00000FF000FE000007F000FE
2254−000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE
2255−000007F000FE00000FF000FE00000FF000FE00000FE000FF00000FE000FF00001FE000FF
2256−80003FC000FF80003FC000FFC0007F8000FFE000FF8000FFF003FF0000FFFC0FFE0000FF
2257−FFFFFC0000FFFFFFF80000FEFFFFF00000FE7FFFC00000FE1FFF000000FE03FC000000FE
2258−0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE
2259−0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE
2260−000000003FFFF80000007FFFFC000000FFFFFE000000FFFFFE0000007FFFFC0000003FFF
2261−F80000002C3C80A730>I<0001FF00F800000FFFC1FC00003FFFF1FC00007FFFFDFC0001
2262−FFFFFFFC0003FFFFFFFC0007FF81FFFC000FFC007FFC000FF8001FFC001FF0000FFC001F
2263−E00007FC003FC00007FC003F800003FC007F800003FC007F000003FC007F000001FC00FF
2264−000001FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE
2265−000001FC00FE000001FC00FF000001FC007F000001FC007F000003FC007F800003FC007F
2266−800003FC003FC00007FC003FC0000FFC001FE0001FFC000FF0003FFC000FFC007FFC0007
2267−FF01FFFC0003FFFFFFFC0001FFFFFDFC0000FFFFF9FC00003FFFF1FC00000FFFC1FC0000
2268−03FE01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000
2269−000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000
2270−000001FC0000000001FC00000000FFFFF8000001FFFFFC000001FFFFFC000001FFFFFC00
2271−0001FFFFFC000000FFFFF82E3C7DA730>I<00000007F8003FFF803FFF007FFFC0FFFF80
2272−FFFFC3FFFF80FFFFCFFFFFC07FFFDFFFFFC03FFFFFFC3FC0001FFFE03FC0001FFF801F80
2273−001FFF000F00001FFE000000001FFC000000001FF8000000001FF0000000001FF0000000
2274−001FE0000000001FE0000000001FE0000000001FE0000000001FC0000000001FC0000000
2275−001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000
2276−001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000
2277−001FC00000003FFFFFFC00007FFFFFFE0000FFFFFFFF0000FFFFFFFF00007FFFFFFE0000
2278−3FFFFFFC00002A287EA730>I<001FFC1E0001FFFF9F0007FFFFFF000FFFFFFF001FFFFF
2279−FF003FFFFFFF007FF007FF007F8001FF00FE0000FF00FC00007F00FC00007F00FC00007F
2280−00FC00007F00FE00003E007F000000007FE00000003FFF0000001FFFFC00000FFFFF8000
2281−07FFFFE00001FFFFF800007FFFFC000003FFFE0000000FFF00000000FF807C00007F80FE
2282−00001FC0FE00001FC0FE00000FC0FF00000FC0FF00000FC0FF80000FC0FF80001FC0FFC0
2283−003F80FFE0007F80FFFC03FF00FFFFFFFF00FFFFFFFE00FFFFFFFC00FCFFFFF000F83FFF
2284−C000780FFE0000222A79A830>I<0007800000000FC00000001FC00000001FC00000001F
2285−C00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000003FFFFF
2286−FFE07FFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFE0001FC00000001FC000
2287−00001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000
2288−001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000000
2289−1FC00000001FC00000001FC000F8001FC001FC001FC001FC001FC001FC001FC001FC001F
2290−C001FC001FE003FC000FE007F8000FF007F8000FFC1FF00007FFFFE00003FFFFC00003FF
2291−FF800001FFFF0000007FFC0000001FF00026337EB130>I<3FFC003FFC007FFE007FFE00
2292−FFFE00FFFE00FFFE00FFFE007FFE007FFE003FFE003FFE0000FE0000FE0000FE0000FE00
2293−00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
2294−00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
2295−00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
2296−00FE0000FE0000FE0000FE0000FE0001FE0000FE0001FE0000FE0003FE0000FE0007FE00
2297−00FF000FFE00007FC07FFFF8007FFFFFFFFC003FFFFFFFFE001FFFFFFFFE000FFFFEFFFC
2298−0007FFF87FF80000FFC000002F2880A630>I<3FFFC07FFF807FFFE0FFFFC0FFFFE0FFFF
2299−E0FFFFE0FFFFE07FFFE0FFFFC03FFFC07FFF8001F80003F00001F80003F00001FC0007F0
2300−0000FC0007E00000FC0007E00000FE000FE000007E000FC000007E000FC000007F001FC0
2301−00003F001F8000003F001F8000003F803F8000001F803F0000001F803F0000001FC07F00
2302−00000FC07E0000000FC07E0000000FE0FE00000007E0FC00000007E0FC00000007F1FC00
2303−000003F1F800000003F1F800000003F1F800000001FBF000000001FBF000000001FBF000
2304−000001FFF000000000FFE000000000FFE000000000FFE0000000007FC0000000003F8000
2305−002B277EA630>I<3FFFC01FFFE07FFFE03FFFF0FFFFE03FFFF8FFFFE03FFFF87FFFE03F
2306−FFF03FFFC01FFFE007E000003F0007E000003F0007F000007F0003F000007E0003F00000
2307−7E0003F000007E0003F000007E0003F000007E0003F80000FE0001F80000FC0001F80F80
2308−FC0001F81FC0FC0001F83FE0FC0001F83FE0FC0001F83FE0FC0000FC7FF1F80000FC7FF1
2309−F80000FC7DF1F80000FC7DF1F80000FCFDF9F800007CFDF9F000007CF8F9F000007CF8F9
2310−F000007CF8F9F000007EF8FBF000007EF8FBF000003FF07FE000003FF07FE000003FF07F
2311−E000003FE03FE000003FE03FE000001FE03FC000000F800F80002D277FA630>I<3FFF81
2312−FFFC007FFFC3FFFE00FFFFC3FFFF00FFFFC3FFFF007FFFC3FFFE003FFF81FFFC0000FE00
2313−7F0000007F007F0000007F80FE0000003F81FC0000001FC3F80000000FE3F80000000FE7
2314−F000000007FFE000000003FFC000000001FFC000000000FF8000000000FF00000000007E
2315−00000000007F0000000000FF0000000001FF8000000001FFC000000003F7E000000007E7
2316−E00000000FE3F00000000FC1F80000001F81FC0000003F80FE0000007F007E0000007E00
2317−7F000000FE003F800001FC001FC0007FFF80FFFF00FFFFC1FFFF80FFFFE3FFFF80FFFFE3
2318−FFFF80FFFFC1FFFF807FFF80FFFF0029277DA630>I<3FFFC07FFF807FFFE0FFFFC0FFFF
2319−E0FFFFE0FFFFE0FFFFE07FFFE0FFFFC03FFFC07FFF8001FC0003F00001FC0003F00000FC
2320−0007F00000FE0007E000007E0007E000007E000FE000007F000FC000003F000FC000003F
2321−001FC000001F801F8000001F801F8000001FC01F8000000FC03F0000000FC03F0000000F
2322−E03F00000007E07E00000007E07E00000003F07E00000003F07C00000003F0FC00000001
2323−F8FC00000001F8F800000001F8F800000000F9F800000000FDF0000000007DF000000000
2324−7FF0000000007FF0000000003FE0000000003FE0000000003FE0000000001FC000000000
2325−1FC0000000001FC0000000001F80000000001F80000000003F80000000003F0000000000
2326−3F00000000007F00000000007E00000000007E0000000F00FE0000001F80FC0000003FC1
2327−FC0000003FC3F80000003F87F80000003F8FF00000003FFFE00000001FFFC00000001FFF
2328−800000000FFF0000000007FE0000000001F0000000002B3C7EA630>I<1FFFFFFFFC3FFF
2329−FFFFFE7FFFFFFFFE7FFFFFFFFE7FFFFFFFFE7FFFFFFFFC7F00000FF87F00001FF07F0000
2330−3FE07F00007FC07F0000FF803E0001FF00000003FE00000007FC0000000FF80000001FF0
2331−0000003FE00000007FC0000000FF80000001FF00000003FE00000007FC0000000FF80000
2332−001FF00000003FE00000007FC0000000FF80003E01FF00007F03FE00007F07FC00007F0F
2333−F800007F1FF000007F3FE000007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
2334−FFFFFF7FFFFFFFFE28277DA630>I<0000003FF0000003FFF800000FFFF800001FFFF800
2335−007FFFF800007FFFF00000FFF0000000FF00000001FE00000001FC00000001FC00000001
2336−FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC
2337−00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00
2338−000001FC00000001FC00000001FC00000003FC00000007F80000003FF800003FFFF00000
2339−FFFFE00000FFFFC00000FFFF000000FFFFC00000FFFFE000003FFFF00000003FF8000000
2340−07F800000003FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001
2341−FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC
2342−00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00
2343−000001FE00000000FF00000000FFF00000007FFFF000007FFFF800001FFFF800000FFFF8
2344−000003FFF80000003FF025477BBE30>I<7C7CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
2345−FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
2346−FEFEFEFEFEFEFEFEFEFEFEFEFEFE7C7C07476CBE30>I<7FE0000000FFFE000000FFFF80
2347−0000FFFFC00000FFFFF000007FFFF00000007FF800000007F800000003FC00000001FC00
2348−000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000
2349−0001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000
2350−01FC00000001FC00000001FC00000001FC00000001FC00000001FE00000000FF00000000
2351−FFE00000007FFFE000003FFFF800001FFFF8000007FFF800001FFFF800003FFFF800007F
2352−FFE00000FFE0000000FF00000001FE00000001FC00000001FC00000001FC00000001FC00
2353−000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000
2354−0001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000
2355−01FC00000001FC00000003FC00000007F80000007FF800007FFFF00000FFFFF00000FFFF
2356−C00000FFFF800000FFFE0000007FE000000025477BBE30>I<007C003801FF007C03FF80
2357−FE07FFC1FE0FFFC3FE1FFFEFFC7FEFFFF0FF87FFE0FF07FFC0FE03FF807C01FF0038007C
2358−001F0C78B730>I E /Fo 39 122 df<0000000007FF80000000003FFFE000000000FE00
2359−F800000001F0003E00000007E0000E0000000FC0001F0000000F80007F0000001F8000FF
2360−0000003F0000FF0000003F0000FF0000003F0000FE0000007E0000FE0000007E00007800
2361−00007E000000000000FE000000000000FC000000000000FC000000000000FC0000000000
2362−01FC000000000001FC000000000001F8000000000001F8000000000001F8000000000001
2363−F8000000000003F80000000003FFFFFFFFF00003FFFFFFFFF00003FFFFFFFFE0000003F0
2364−0007E0000007F0000FE0000007E0000FC0000007E0000FC0000007E0000FC0000007E000
2365−1FC000000FE0001F8000000FC0001F8000000FC0001F8000000FC0003F8000000FC0003F
2366−0000001FC0003F0000001F80003F0000001F80007F0000001F80007E0000001F80007E00
2367−00003F80007E0000003F0000FE0000003F0000FC0000003F0000FC0000003F0000FC0000
2368−007F0001FC0000007E0001F81C00007E0001F81C00007E0001F81C00007E0003F81C0000
2369−FE0003F03C0000FC0003F0380000FC0003F0380000FC0003F0780000FC0003F0700001FC
2370−0003F0700001F80001F0F00001F80001F0E00001F80000F1C00001F800007F800003F000
2371−001F000003F0000000000003F0000000000003F0000000000003E0000000000007E00000
2372−00000007E0000000001E07C0000000007F07C0000000007F0FC000000000FF0F80000000
2373−00FF0F8000000000FF1F0000000000FE1F0000000000F81E0000000000703C0000000000
2374−787800000000001FF0000000000007C00000000000385383BF33>12
2375−D<0000000007FC00007FF800000000003FFF8003FFFF0000000000FC03C00FE007C00000
2376−0003F001E03F0001F000000007E001F07C0000700000000FC007F0F80000F80000000F80
2377−0FF1F80003F80000001F800FF3F00007F80000001F800FF3F00007F80000003F000FF7E0
2378−0007F80000003F000FE7E00007F00000003F00038FC00007F00000007E00000FC00003C0
2379−0000007E00000FC00000000000007E00000FC00000000000007E00001FC0000000000000
2380−FE00001F80000000000000FC00001F80000000000000FC00001F80000000000000FC0000
2381−3F80000000000000FC00003F80000000000001FC00003F00000000000001F800003F0000
2382−0000000001F800003F00000000000001F800003F000000000001FFFFFFFFFFFFFFFF8000
2383−03FFFFFFFFFFFFFFFF800003FFFFFFFFFFFFFFFF00000003F000007E00003F00000003F0
2384−00007E00007F00000003F00000FE00007E00000007F00000FC00007E00000007E00000FC
2385−00007E00000007E00000FC0000FE00000007E00000FC0000FC00000007E00001FC0000FC
2386−0000000FE00001F80000FC0000000FC00001F80001FC0000000FC00001F80001F8000000
2387−0FC00001F80001F80000000FC00003F80001F80000001FC00003F00003F80000001F8000
2388−03F00003F00000001F800003F00003F00000001F800003F00003F00000001F800007F000
2389−07F00000003F800007E00007E00000003F800007E00007E00000003F000007E00007E000
2390−00003F000007E0000FE00000003F00000FE0000FC0E000003F00000FC0000FC0E000007F
2391−00000FC0000FC0E000007E00000FC0001FC0E000007E00000FC0001F81E000007E00000F
2392−C0001F81C000007E00001FC0001F81C00000FE00001F80001F83C00000FC00001F80001F
2393−83800000FC00001F80001F83800000FC00003F80000F87800000FC00003F00000F870000
2394−01F800003F0000078E000001F800003F000003FC000001F800003F000000F8000001F800
2395−007E00000000000003F000007E00000000000003F000007E00000000000003F000007C00
2396−000000000003F00000FC00000000000003E00000FC00000000001E07E07800F800000000
2397−007F07E1FC01F800000000007F07C1FC01F80000000000FF0FC3FC01F00000000000FF0F
2398−83FC03E00000000000FF0F83FC07E00000000000FE1F03F807C00000000000F81E03E00F
2399−800000000000703C01C01E000000000000787800F07C0000000000001FF0007FF0000000
2400−00000007C0001FC0000000000000555383BF50>14 D<00003C0000FE0001FF0003FF0003
2401−FF0003FF0003FF0003FE0007FE0007FE0007FC0007FC0007FC0007F8000FF8000FF8000F
2402−F0000FF0000FF0000FE0001FE0001FE0001FC0001FC0001FC0001F80003F80003F80003F
2403−00003F00003F00003E00007E00007E00007C00007C00007C0000780000F80000F80000F0
2404−0000F00000F00000E00001E00001E00000C0000000000000000000000000000000000000
2405−000000000000000F00003FC0007FC0007FC000FFC000FFC000FFC000FF80007F00003C00
2406−00184177C01C>33 D<01E000F007F803FC0FF807FC0FFC07FE1FFC0FFE1FFC0FFE1FFC0F
2407−FE1FFC0FFE0FFC07FE03D801EC0018000C0018000C0038001C0030001800700038006000
2408−3000E0007000C0006001C000E0038001C003000180070003800E0007001C000E0038001C
2409−0070003800E0007000C00060001F1C70BE2F>I<0F003FC07FC07FC0FFC0FFC0FFC0FF80
2410−7F003C000A0A77891C>46 D<00000003000000070000000F0000001F0000001E0000003E
2411−0000007E000001FE000003FC000007FC00001FFC0001FFFC000FFBF8001FC3F8000E07F8
2412−000007F8000007F0000007F000000FF000000FF000000FE000000FE000001FE000001FE0
2413−00001FC000001FC000003FC000003FC000003F8000003F8000007F8000007F8000007F00
2414−00007F000000FF000000FF000000FE000000FE000001FE000001FE000001FC000001FC00
2415−0003FC000003FC000003F8000003F8000007F8000007F8000007F0000007F000000FF000
2416−000FF000000FE000000FE000001FE000001FE000001FC000007FE000FFFFFFF0FFFFFFF0
2417−FFFFFFE0203D77BC2E>49 D<0000000FE00000007FF8000001F01C000007C00E00001F80
2418−0F00003E000700007C001F0000F8007F0001F000FF0003F000FF0007E000FF000FC000FE
2419−001FC000FE003F800078003F000000007F00000000FE00000000FE00000001FC00000001
2420−FC00000003FC00000003F800000007F81FC00007F87FF0000FF1E07C000FF3803E000FF7
2421−003E001FFE001F001FFC001F801FF8001F801FF0000FC03FF0000FC03FE0000FC03FE000
2422−1FC03FC0001FE07FC0001FE07FC0001FE07F80001FE07F80003FC07F80003FC0FF00003F
2423−C0FF00003FC0FF00007FC0FF00007F80FE00007F80FE00007F80FE0000FF80FE0000FF00
2424−FE0000FF00FE0001FE00FE0001FE00FC0001FC007C0003F8007C0003F8007E0007F0007E
2425−000FE0003E001FC0003F003F80001F807E00000FC1FC000007FFF8000003FFE00000007F
2426−000000283F76BC2E>54 D<0000007F00000001FFE0000007C0F000001F007C00003C003C
2427−000078003E0000F0001F0001F0001F0003E0001F0003C0001F0007C0001F0007C0001F00
2428−0F80001F000F80001F000F80003F001F80003E001F80003E001F80007E001FC0007C001F
2429−C000F8001FE001F8001FF001F0001FF803E0001FFC07C0000FFE0F00000FFFBE000007FF
2430−F8000003FFF0000001FFF0000000FFF8000000FFFC000003FFFE00000F9FFF00001F0FFF
2431−80007C07FFC000F803FFC001F001FFE003E0007FE007C0003FE00F80001FE01F80000FE0
2432−1F00000FE03E000007E03E000007E07E000007E07C000007E07C000007E0FC000007C0F8
2433−000007C0F8000007C0F800000F80F800000F80F800001F00F800003E007C00003C007C00
2434−007C007E0000F8003F0003F0001F8007C0000FE03F800007FFFE000001FFF80000003FC0
2435−0000283F78BC2E>56 D<001E00003F80007F8000FFC001FFC001FFC001FF8000FF0000FE
2436−00003C000000000000000000000000000000000000000000000000000000000000000000
2437−000000000000000000000000000000000000000000000000000F00003FC0007FC0007FC0
2438−00FFC000FFC000FFC000FF80007F00003C0000122777A61C>58 D<00000000FF8001C000
2439−00000FFFE001C00000003FFFF80380000000FF807E0780000003FC001F0F8000000FF000
2440−071F8000001FC00007BF0000007F800003FF000000FF000001FF000001FE000001FF0000
2441−03F8000000FE000007F0000000FE00000FF0000000FE00001FE00000007E00003FC00000
2442−007C00007F800000007C0000FF800000007C0000FF000000007C0001FE00000000780003
2443−FE00000000780003FC00000000780007FC00000000780007F80000000070000FF8000000
2444−0070000FF80000000070001FF00000000070001FF00000000000003FE00000000000003F
2445−E00000000000003FE00000000000007FE00000000000007FC00000000000007FC0000000
2446−0000007FC0000000000000FFC0000000000000FF80000000000000FF80000000000000FF
2447−80000000000000FF80000000000000FF00000000000000FF00000000000000FF00000000
2448−0F0000FF000000000F0000FF000000000E0000FF000000000E0000FF000000001E0000FF
2449−000000001C0000FF000000003C0000FF00000000380000FF000000007800007F00000000
2450−7000007F80000000F000007F80000001E000003F80000001C000003FC0000003C000001F
2451−C00000078000001FE000000F0000000FE000001E00000007F000003C00000003F80000F8
2452−00000001FC0001F000000000FE0007C0000000007FC03F80000000001FFFFE0000000000
2453−07FFF0000000000000FF80000000003A4272BF41>67 D<0001FFFFFFFFFFF00001FFFFFF
2454−FFFFF00001FFFFFFFFFFF0000003FE00003FF0000003FE00000FF0000003FC000003F000
2455−0003FC000003F0000003FC000001E0000007FC000001E0000007F8000001E0000007F800
2456−0001E0000007F8000001E000000FF8000001E000000FF0000001E000000FF0000001C000
2457−000FF0000001C000001FF0000001C000001FE0000001C000001FE0007001C000001FE000
2458−F003C000003FE000E0038000003FC000E0000000003FC000E0000000003FC001E0000000
2459−007FC001C0000000007F8003C0000000007F8003C0000000007F8007C000000000FF801F
2460−8000000000FFFFFF8000000000FFFFFF8000000000FFFFFF8000000001FF003F00000000
2461−01FE001F0000000001FE000F0000000001FE000F0000000003FE000E0000000003FC000E
2462−0000000003FC000E0000000003FC001E0000000007FC001C0000000007F8001C00000000
2463−07F8001C0000000007F80000000000000FF80000000000000FF00000000000000FF00000
2464−000000000FF00000000000001FF00000000000001FE00000000000001FE0000000000000
2465−1FE00000000000003FE00000000000003FC00000000000003FC00000000000007FC00000
2466−000000007FC00000000000007F80000000000000FFC00000000000FFFFFFE000000000FF
2467−FFFFE000000000FFFFFFE0000000003C3E7BBD3B>70 D<0001FFFE00000FFFFF0003FFFF
2468−00001FFFFF0003FFFF00001FFFFF000001FF800000FFC0000003FF8000003F00000003FF
2469−8000003E00000003FFC000001C00000003FFC000003C00000007BFC000003C000000073F
2470−E0000038000000071FE0000038000000071FE00000780000000F1FF00000780000000E0F
2471−F00000700000000E0FF80000700000000E0FF80000F00000001E07F80000F00000001C07
2472−FC0000E00000001C07FC0000E00000001C03FC0001E00000003C03FE0001E00000003801
2473−FE0001C00000003801FE0001C00000003801FF0003C00000007800FF0003C00000007000
2474−FF8003800000007000FF80038000000070007F800780000000F0007FC00780000000E000
2475−3FC00700000000E0003FC00700000000E0003FE00F00000001E0001FE00F00000001C000
2476−1FF00E00000001C0001FF00E00000001C0000FF01E00000003C0000FF81E000000038000
2477−0FF81C00000003800007F81C00000003800007FC3C00000007800003FC3C000000070000
2478−03FC3800000007000003FE3800000007000001FE780000000F000001FF780000000E0000
2479−01FF700000000E000000FF700000000E000000FFF00000001E000000FFF00000001C0000
2480−007FE00000001C0000007FE00000001C0000003FE00000003C0000003FE0000000380000
2481−003FC0000000380000001FC0000000780000001FC0000000F80000001FC0000001FC0000
2482−000F80000007FE0000000F800000FFFFF0000007800000FFFFF0000007800000FFFFF000
2483−0007000000483E7BBD44>78 D<0001FFFFFFFF80000001FFFFFFFFF0000001FFFFFFFFFC
2484−00000003FE0003FE00000003FE0000FF00000003FC00007F80000003FC00003FC0000007
2485−FC00001FC0000007FC00001FE0000007F800001FE0000007F800001FE000000FF800001F
2486−F000000FF800001FF000000FF000001FF000000FF000001FF000001FF000001FF000001F
2487−F000003FE000001FE000003FE000001FE000003FE000003FE000003FC000003FE000007F
2488−C000003FC000007F8000003FC000007F8000007FC00000FF0000007FC00000FE0000007F
2489−800001FC0000007F800003F8000000FF800007F0000000FF80000FE0000000FF00003FC0
2490−000000FF0001FF00000001FFFFFFFC00000001FFFFFFE000000001FE00000000000001FE
2491−00000000000003FE00000000000003FE00000000000003FC00000000000003FC00000000
2492−000007FC00000000000007FC00000000000007F800000000000007F80000000000000FF8
2493−0000000000000FF80000000000000FF00000000000000FF00000000000001FF000000000
2494−00001FF00000000000001FE00000000000001FE00000000000003FE00000000000003FE0
2495−0000000000003FC00000000000003FC00000000000007FC00000000000007FC000000000
2496−00007F80000000000000FFC00000000000FFFFFF8000000000FFFFFF8000000000FFFFFF
2497−80000000003C3E7BBD3E>80 D<0000000FF001C00000007FFE01C0000001FFFF03800000
2498−07F80FC78000000FC003EF8000001F8001FF8000003F0000FF0000007E00007F000000FC
2499−00007F000001F800007F000003F000003E000003F000003E000007E000003E000007E000
2500−003E00000FE000003C00000FC000003C00000FC000003C00000FC000003C00001FC00000
2501−3800001FC000003800001FC000003800001FE000003800001FE000000000001FF0000000
2502−00001FF000000000001FFC00000000000FFF00000000000FFFF0000000000FFFFE000000
2503−0007FFFFC000000003FFFFF000000001FFFFFC00000000FFFFFE000000003FFFFE000000
2504−000FFFFF0000000001FFFF80000000001FFF800000000003FF800000000000FFC0000000
2505−00007FC000000000003FC000000000003FC000000000001FC000000000001FC000070000
2506−001FC0000F0000001FC0000F0000001F80000E0000001F80000E0000001F80001E000000
2507−3F80001E0000003F00001E0000003F00001E0000003E00003E0000007E00003E0000007C
2508−00003F000000FC00003F000001F800007F800001F000007F800003E000007FC00007C000
2509−007DE0001F800000F8F8003F000000F87F00FE000000F03FFFF8000000E00FFFE0000000
2510−C000FF0000000032427ABF33>83 D<000C0006001C000E0078003C00E0007001C000E001
2511−8000C0038001C0070003800E0007000C0006001C000E0018000C0038001C003000180070
2512−0038006000300060003000E0007000CF006780FFC07FE0FFC07FE0FFC07FE0FFC07FE0FF
2513−C07FE0FFC07FE0FF807FC07F003F803C001E001F1C69BE2F>92 D<00007E00000001FF80
2514−000007C1C380001F80EFC0003F00FFC0007E007FC000FC007F8001F8003F8003F0003F80
2515−03F0003F8007E0003F000FE0003F000FC0003F001FC0007F001FC0007E003F80007E003F
2516−80007E003F8000FE007F8000FC007F0000FC007F0000FC007F0001FC00FF0001F800FE00
2517−01F800FE0001F800FE0003F800FE0003F038FC0003F038FC0003F038FC0007F038FC0007
2518−E078FC000FE0707C000FE0707C001FE0F07E003FE0E03E007FE0E03E00F3E1E01F01E3E1
2519−C00F8781E38003FF00FF0000FC003E00252977A72E>97 D<001FC0000FFFC0000FFF8000
2520−0FFF8000003F8000003F8000003F0000003F0000007F0000007F0000007E0000007E0000
2521−00FE000000FE000000FC000000FC000001FC000001FC000001F8000001F8000003F80000
2522−03F8000003F0000003F07E0007F1FF8007F783E007EF01F007FE01F00FF800F80FF800F8
2523−0FF000FC0FE0007C1FC0007C1FC0007E1F80007E1F8000FE3F8000FE3F8000FE3F0000FE
2524−3F0000FE7F0001FE7F0001FC7E0001FC7E0001FC7E0003FCFE0003F8FC0003F8FC0003F8
2525−FC0007F0FC0007F0FC0007E0F8000FE0F8000FC0F8001FC0F8001F8078003F007C003F00
2526−7C007E003C00FC003E01F8001E03E0000F07C00007FF000001F800001F4076BE2A>I<00
2527−001FE0000000FFF8000003F03E000007C00F00001F800700003F000780007E001F8000FC
2528−007F8001F8007F8003F0007F8007F0007F0007E0007F000FE0007E001FC00000001FC000
2529−00003F800000003F800000003F800000007F800000007F000000007F000000007F000000
2530−00FF00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000
2531−FC000003007E000007007E00000F007E00001E003E00003C003E000078001F0000F0001F
2532−0003E0000F800F800003E07E000001FFF80000003FC00000212977A72A>I<000000003F
2533−800000001FFF800000001FFF000000001FFF00000000007F00000000007F00000000007E
2534−00000000007E0000000000FE0000000000FE0000000000FC0000000000FC0000000001FC
2535−0000000001FC0000000001F80000000001F80000000003F80000000003F80000000003F0
2536−0000000003F00000000007F00000000007F00000000007E00000007E07E0000001FF8FE0
2537−000007C1CFE000001F80EFC000003F00FFC000007E007FC00000FC007FC00001F8003F80
2538−0003F0003F800003F0003F800007E0003F80000FE0003F00000FC0003F00001FC0007F00
2539−001FC0007F00003F80007E00003F80007E00003F8000FE00007F8000FE00007F0000FC00
2540−007F0000FC00007F0001FC0000FF0001FC0000FE0001F80000FE0001F80000FE0003F800
2541−00FE0003F83800FC0003F03800FC0003F03800FC0007F03800FC0007F07800FC000FE070
2542−007C000FE070007C001FE0F0007E003FE0E0003E007FE0E0003E00F3E1E0001F01E3E1C0
2543−000F8781E3800003FF00FF000000FC003E0000294077BE2E>I<00003F800001FFE00007
2544−E0F8001F803C003E003C00FC001E01F8001E03F0001E07F0001E0FE0003E0FC0003C1FC0
2545−003C3F80007C3F8000F83F8003F07F000FE07F00FF80FFFFFC00FFFFC000FE000000FE00
2546−0000FE000000FE000000FC000000FC000000FC000000FC000000FC000000FC000000FC00
2547−0006FC00000EFC00001E7C00003C7C0000783E0000F03E0001E01F0007C00F801F0007C0
2548−FC0001FFF000007F80001F2976A72A>I<000000007C0000000001FF0000000007C78000
2549−00000F83C00000001F87C00000001F1FC00000003F3FC00000003F3FC00000007E3FC000
2550−00007E3FC00000007E3F800000007E0E00000000FC0000000000FC0000000000FC000000
2551−0000FC0000000001FC0000000001F80000000001F80000000001F80000000001F8000000
2552−0003F80000000003F00000000003F00000000003F000000003FFFFF8000003FFFFF80000
2553−03FFFFF800000007E00000000007E00000000007E0000000000FE0000000000FC0000000
2554−000FC0000000000FC0000000000FC0000000000FC0000000001FC0000000001F80000000
2555−001F80000000001F80000000001F80000000003F80000000003F00000000003F00000000
2556−003F00000000003F00000000007F00000000007E00000000007E00000000007E00000000
2557−007E0000000000FE0000000000FC0000000000FC0000000000FC0000000000FC00000000
2558−01FC0000000001F80000000001F80000000001F80000000001F80000000003F000000000
2559−03F00000000003F00000000003F00000000007E00000000007E00000000007E000000000
2560−07E0000000000FC00000001E0FC00000007F0FC00000007F0F80000000FF0F80000000FF
2561−1F00000000FF1F00000000FE1E00000000F83C00000000703C000000007878000000003F
2562−E0000000000F80000000002A5383BF1C>I<000003F00000000FFC0000003E0E1C0000FC
2563−077E0001F003FE0003F003FE0007E001FE000FC001FC001F8001FC001F8001FC003F0001
2564−FC007F0001F8007E0001F800FE0003F800FE0003F801FC0003F001FC0003F001FC0007F0
2565−03FC0007F003F80007E003F80007E003F8000FE007F8000FE007F0000FC007F0000FC007
2566−F0001FC007F0001FC007F0001F8007E0001F8007E0003F8003E0003F8003E0007F0003F0
2567−00FF0003F000FF0001F001FF0000F003FE0000F80F7E00007C1EFE00001FF8FE000007E0
2568−FC00000000FC00000001FC00000001FC00000001F800000001F800000003F800000003F8
2569−00000003F0001C0007F0007F0007E000FF000FE000FF000FC000FF001F8000FF003F0000
2570−FE007E0000F800FC00007C03F000001FFFC0000003FE000000273B7CA72A>I<0001FC00
2571−0000FFFC000000FFF8000000FFF800000003F800000003F800000003F000000003F00000
2572−0007F000000007F000000007E000000007E00000000FE00000000FE00000000FC0000000
2573−0FC00000001FC00000001FC00000001F800000001F800000003F800000003F800000003F
2574−000000003F03F800007F0FFE00007F3E0F80007E780FC0007EE007C000FFC007E000FF80
2575−07E000FF0007E000FF0007E001FE0007E001FC0007E001FC0007E001F80007E003F8000F
2576−E003F8000FC003F0000FC003F0000FC007F0001FC007F0001F8007E0001F8007E0001F80
2577−0FE0003F800FE0003F000FC0003F000FC0007F001FC0007E001FC000FE071F8000FC071F
2578−8000FC073F8001FC0F3F8001F80E3F0001F80E3F0001F81E7F0001F01C7F0001F01C7E00
2579−01F0387E0001F038FE0001F070FE0000F0E0FC00007FC03800001F0028407ABE2E>I<00
2580−00780001FC0001FC0003FC0003FC0003FC0003F80000E000000000000000000000000000
2581−0000000000000000000000000000000000000000000000000000007C0001FF00038F8007
2582−07800E07C01E07C01C07C03C0FC0380FC0380FC0781FC0701F80701F80F03F80F03F0000
2583−3F00007F00007E0000FE0000FC0000FC0001FC0001F80001F80003F80003F00003F03807
2584−F03807E0380FE0780FC0700FC0700FC0F00F80E00F80E00F81C00F83C00F838007870003
2585−FE0000F800163E79BC1C>I<00000007000000001FC00000001FC00000003FC00000003F
2586−C00000003FC00000003F800000000E000000000000000000000000000000000000000000
2587−000000000000000000000000000000000000000000000000000000000000000000000000
2588−000000000000000000000007C00000003FF000000078F8000000E07C000001C07C000003
2589−C07C000003807E000007007E000007007E00000E00FE00000E00FC00001E00FC00001C00
2590−FC00003C01FC00003C01FC00000001F800000001F800000003F800000003F800000003F0
2591−00000003F000000007F000000007F000000007E000000007E00000000FE00000000FE000
2592−00000FC00000000FC00000001FC00000001FC00000001F800000001F800000003F800000
2593−003F800000003F000000003F000000007F000000007F000000007E000000007E00000000
2594−FE00000000FE00000000FC00000000FC00000001FC00000001F800000001F800001C01F8
2595−00007F03F00000FF03F00000FF07E00000FF07C00000FF0F800000FE1F000000F83E0000
2596−00707C0000003FF00000000FC0000000225083BC1C>I<0001FC000000FFFC000000FFF8
2597−000000FFF800000003F800000003F800000003F000000003F000000007F000000007F000
2598−000007E000000007E00000000FE00000000FE00000000FC00000000FC00000001FC00000
2599−001FC00000001F800000001F800000003F800000003F800000003F000000003F0003E000
2600−7F000FF8007F003C3C007E00707C007E00E1FC00FE01C1FC00FE0383FC00FC0703FC00FC
2601−0E03FC01FC1C03F801FC3800E001F870000001F860000003F8E0000003F9C0000003F780
2602−000003FE00000007FE00000007FFE0000007E7F8000007E0FE00000FE07F00000FE03F80
2603−000FC01F80000FC00FC0001FC00FC0001FC00FC0701F800FC0701F800FC0703F800FC0F0
2604−3F801FC0E03F001F80E03F001F80E07F001F81E07F001F81C07E000F83C07E000F8380FE
2605−000F8780FE00078F00FC0003FE00380000F80026407ABE2A>I<0007F003FFF003FFE003
2606−FFE0000FE0000FE0000FC0000FC0001FC0001FC0001F80001F80003F80003F80003F0000
2607−3F00007F00007F00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC0001F80001
2608−F80003F80003F80003F00003F00007F00007F00007E00007E0000FE0000FE0000FC0000F
2609−C0001FC0001FC0001F80001F80003F80003F80003F00003F00007F00007F07007E07007E
2610−0700FE0F00FE0E00FC0E00FC0E00FC1E00FC1C00FC1C007C38007C78003C70001FE00007
2611−8000144079BE17>I<01F0003F80007F000007FC01FFE003FFC0000F3E07C1F80F83F000
2612−0E1F0F00FC1E01F8001E1F1C007C3800F8001C1F38007E7000FC003C1FF0007EE000FC00
2613−381FF0007FE000FC00381FE0007FC000FC00783FC0007F8000FC00703FC0007F8000FC00
2614−703F80007F0000FC00703F00007E0000FC00F03F0000FE0001FC00F07F0000FC0001F800
2615−007E0000FC0001F800007E0000FC0001F800007E0001FC0003F80000FE0001FC0003F000
2616−00FC0001F80003F00000FC0001F80003F00000FC0003F80007F00001FC0003F80007E000
2617−01F80003F00007E00001F80003F0000FE00001F80007F0000FC00003F80007F0001FC0E0
2618−03F00007E0001F80E003F00007E0001F80E003F0000FE0003F81E007F0000FE0003F01C0
2619−07E0000FC0003F01C007E0000FC0003F01C007E0001FC0003E03800FE0001FC0003E0380
2620−0FC0001F80003E07000FC0001F80003E07000FC0003F80003E0E001FC0003F80001E1C00
2621−1F80003F00000FF8000700000E000003E000432979A74A>I<01F0003F800007FC01FFE0
2622−000F3E07C1F8000E1F0F00FC001E1F1C007C001C1F38007E003C1FF0007E00381FF0007E
2623−00381FE0007E00783FC0007E00703FC0007E00703F80007E00703F00007E00F03F0000FE
2624−00F07F0000FC00007E0000FC00007E0000FC00007E0001FC0000FE0001F80000FC0001F8
2625−0000FC0001F80000FC0003F80001FC0003F00001F80003F00001F80007F00001F80007E0
2626−0003F8000FE07003F0000FC07003F0000FC07003F0001FC0F007F0001F80E007E0001F80
2627−E007E0001F81E007E0001F01C00FE0001F01C00FC0001F03800FC0001F03800FC0001F07
2628−001FC0000F0E001F800007FC0007000001F0002C2979A733>I<00001FC0000000FFF800
2629−0003F07C00000FC01F00001F801F00003F000F80007E000FC000FC0007C001F80007E003
2630−F00007E007F00007E007E00007E00FE00007F01FC00007F01FC00007F03F800007F03F80
2631−0007F03F80000FE07F80000FE07F00000FE07F00000FE07F00001FE0FF00001FC0FE0000
2632−1FC0FE00001FC0FE00003F80FE00003F80FE00007F00FE00007F00FC00007E007C0000FC
2633−007E0001FC007E0001F8007E0003F0003E0007E0001F000FC0001F001F80000F803E0000
2634−07C0FC000001FFF00000003F800000242977A72E>I<0003E001F800000FF807FE00001E
2635−7C1E0F80001C3E3C07C0003C3E7807C000383EE003E000783FE003E000703FC003F00070
2636−3F8001F000F07F0001F000E07F0001F800E07E0001F800E07E0003F801E0FE0003F801E0
2637−FE0003F80000FC0003F80000FC0003F80001FC0007F80001FC0007F00001F80007F00001
2638−F80007F00003F8000FF00003F8000FE00003F0000FE00003F0000FE00007F0001FC00007
2639−F0001FC00007E0001F800007E0003F80000FE0003F00000FE0007F00000FE0007E00000F
2640−E000FC00001FE000FC00001FE001F800001FF003F000001FF007E000003FB80F8000003F
2641−9C1F0000003F0FFC0000003F03E00000007F00000000007F00000000007E00000000007E
2642−0000000000FE0000000000FE0000000000FC0000000000FC0000000001FC0000000001FC
2643−0000000001F80000000001F80000000003F80000000003F8000000007FFFE0000000FFFF
2644−E0000000FFFFE00000002D3A80A72E>I<01F000FC0007FC07FF800F3E0F03C00E1F1C03
2645−E01E1F380FE01C1F700FE03C1FE01FE0381FE01FE0381FC01FE0783FC01FC0703F800700
2646−703F800000703F000000F03F000000F07F000000007E000000007E000000007E00000000
2647−FE00000000FC00000000FC00000000FC00000001FC00000001F800000001F800000001F8
2648−00000003F800000003F000000003F000000003F000000007F000000007E000000007E000
2649−000007E00000000FE00000000FC00000000FC00000000FC00000001FC00000001F800000
2650−000700000000232979A726>114 D<00007F800001FFE00007C0F8001F003C003E001C00
2651−3C001E007C003E00F8007E00F800FE00F800FE01F800FC01F800FC01F8007001FC000001
2652−FE000001FFC00001FFFC0000FFFF0000FFFF80007FFFC0003FFFE0000FFFF00000FFF000
2653−000FF0000007F0000003F00C0003F03F0003F07F8001F07F8003F0FF0003E0FF0003E0FF
2654−0003E0FC0007C0F0000F8070000F8078001F003C003C001F01F80007FFE00000FF00001F
2655−297AA725>I<0001C0000003F0000007F0000007F0000007E0000007E000000FE000000F
2656−E000000FC000000FC000001FC000001FC000001F8000001F8000003F8000003F8000003F
2657−0000003F00007FFFFF80FFFFFF80FFFFFF00007E000000FE000000FE000000FC000000FC
2658−000001FC000001FC000001F8000001F8000003F8000003F8000003F0000003F0000007F0
2659−000007F0000007E0000007E000000FE000000FE000000FC000000FC000001FC000001FC0
2660−1C001F801C001F801C003F803C003F8038003F0078003F0070003F00F0003F00E0003F01
2661−C0001F03C0001F0780000F0F000007FC000001F00000193A78B81E>I<007C0000000001
2662−FF00001C00038F80007E00070780007E000E07C0007E001E07C000FE001C07C000FE003C
2663−0FC000FC00380FC000FC00380FC001FC00781FC001FC00701F8001F800701F8001F800F0
2664−3F8003F800F03F0003F800003F0003F000007F0003F000007E0007F000007E0007F00000
2665−FE0007E00000FC0007E00000FC000FE00001FC000FE00001F8000FC00001F8000FC00001
2666−F8001FC00003F8001FC1C003F0001F81C003F0001F81C003F0003F81C003F0003F83C003
2667−F0003F038003F0003F038003F0007F078001F000FF070001F001FF070001F801DF0F0000
2668−F8079F0E00007C0F0F1C00001FFC07F8000007F001F0002A2979A731>I<007C0001C001
2669−FF0007F0038F8007F007078007F00E07C007F81E07C007F81C07C003F83C0FC003F8380F
2670−C001F0380FC001F0781FC000F0701F8000F0701F8000F0F03F8000F0F03F0000E0003F00
2671−00E0007F0000E0007E0001E0007E0001C000FE0001C000FC0001C000FC0003C001FC0003
2672−8001F800038001F800038001F800070003F800070003F0000F0003F0000E0003F0000E00
2673−03F0001C0003F0001C0003F000380003F000780001F000700001F800E00000F801C00000
2674−FC038000007E0F0000001FFE00000003F00000252979A72A>I<007C000000007001FF00
2675−007001FC038F8001F801FC07078001F801FC0E07C001F801FE1E07C003F801FE1C07C003
2676−F000FE3C0FC003F000FE380FC003F0007C380FC007F0007C781FC007E0003C701F8007E0
2677−003C701F8007E0003CF03F800FE0003CF03F000FC00038003F000FC00038007F000FC000
2678−38007E001FC00078007E001F80007000FE001F80007000FC001F80007000FC003F8000F0
2679−01FC003F0000E001F8003F0000E001F8003F0000E001F8003F0001E003F8007F0001C003
2680−F0007E0001C003F0007E0003C003F0007E00038003F0007E00038003F0007E00070003F0
2681−00FE00070003F000FE000E0001F001FE001E0001F801FF001C0000F8039F00380000FC07
2682−9F807000003E0F07C1E000001FFC03FFC0000003F0007F0000372979A73C>I<0003F001
2683−F800000FFC07FE00003C1E0E0F0000780F1C0F8000F00FB83F8001E00FF83F8001C007F0
2684−7F80038007F07F80078007E07F8007000FE07F000F000FE01C000E000FC000000E000FC0
2685−00001E001FC000001E001FC0000000001F80000000001F80000000003F80000000003F00
2686−000000003F00000000003F00000000007F00000000007E00000000007E00000000007E00
2687−00000000FE0000000000FC001C000000FC001C000000FC001C000001FC003C001E01FC00
2688−38003F01F80078007F81F80070007F83F800F000FF83F800E000FF077801C000FE0F7C03
2689−C0007C0E3C078000783C1E1E00001FF80FFC000007E003F0000029297CA72A>I<007C00
2690−000001FF000038038F8000FC07078000FC0E07C000FC1E07C001FC1C07C001F83C0FC001
2691−F8380FC001F8380FC003F8781FC003F0701F8003F0701F8003F0F03F8007F0F03F0007E0
2692−003F0007E0007F0007E0007E000FE0007E000FC000FE000FC000FC000FC000FC001FC001
2693−FC001FC001F8001F8001F8001F8001F8003F8003F8003F0003F0003F0003F0003F0003F0
2694−007F0003F0007E0003F0007E0003F0007E0003F000FE0003F000FC0001F001FC0001F803
2695−FC0000F807FC00007C1FF800003FF9F8000007E1F800000003F800000003F000000003F0
2696−00000007F0000E0007E0003F8007E0007F800FC0007F800FC0007F801F8000FF001F0000
2697−FF003E00007C007E00007000FC00007801F000003803E000001E0FC000000FFF00000003
2698−F8000000263B79A72C>I E /Fp 78 125 df<000001FF000FE00000001FFFE03FFC0000
2699−007F00F8FC1E000001FC003FF03F000007F0007FE07F80000FE000FFE0FF80001FC001FF
2700−C0FF80003F8001FF80FF80007F8001FF80FF80007F0001FF807F00007F0001FF003E0000
2701−FE0000FF00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F
2702−00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000
2703−FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F
2704−000000FFFFFFFFFFFF8000FFFFFFFFFFFF8000FFFFFFFFFFFF800000FE00007F00000000
2705−FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F
2706−00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000
2707−FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F
2708−00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000
2709−FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F
2710−00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000
2711−FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000001FF0000FF
2712−8000007FFFFC3FFFFF80007FFFFC3FFFFF80007FFFFC3FFFFF800039407FBF35>11
2713−D<000001FF000000001FFFC00000007F01F0000001FC0078000007F0001C00000FE0003E
2714−00001FC000FF00003F8001FF00007F8001FF00007F0001FF00007F0001FF0000FE0001FF
2715−0000FE0000FE0000FE0000380000FE0000000000FE0000000000FE0000000000FE000000
2716−0000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000
2717−0000FE00007F00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF0000FE0001FF0000FE0000FF
2718−0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F
2719−0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F
2720−0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F
2721−0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F
2722−0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F
2723−0001FF0000FF807FFFFC3FFFFE7FFFFC3FFFFE7FFFFC3FFFFE2F407FBF33>I<000001FF
2724−800000001FFFF70000007F00FF000001F800FF000007F001FF00000FE001FF00001FC001
2725−FF00003F8001FF00007F8001FF00007F0001FF00007F0000FF0000FE00007F0000FE0000
2726−7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000
2727−7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000
2728−7F00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF0000FE00007F0000FE00007F0000FE0000
2729−7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000
2730−7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000
2731−7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000
2732−7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000
2733−7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0001FF0000
2734−FF807FFFFC3FFFFE7FFFFC3FFFFE7FFFFC3FFFFE2F407FBF33>I<000001FF0000FF8000
2735−00001FFFC00FFFE00000007F01F03F80F8000001F80078FE003C000007F0003FF8000E00
2736−000FE0007FF0001F00001FC000FFE0007F80003F8001FFC000FF80007F8001FFC000FF80
2737−007F0001FF8000FF80007F0001FF8000FF8000FE0001FF0000FF8000FE0000FF00007F00
2738−00FE00007F00001C0000FE00007F0000000000FE00007F0000000000FE00007F00000000
2739−00FE00007F0000000000FE00007F0000000000FE00007F0000000000FE00007F00000000
2740−00FE00007F0000000000FE00007F0000000000FE00007F0000000000FE00007F00003F80
2741−FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF8000FE00007F0000FF80
2742−00FE00007F00007F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80
2743−00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80
2744−00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80
2745−00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80
2746−00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80
2747−00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80
2748−00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80
2749−00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8001FF0000FF80007FC0
2750−7FFFFC3FFFFE1FFFFF7FFFFC3FFFFE1FFFFF7FFFFC3FFFFE1FFFFF48407FBF4C>I<003E
2751−003F007F00FF00FF01FE03FC07F807F00FE01FC01F803E007C00F8007000200010116EBE
2752−2D>19 D<1E000F007F803FC0FF807FC0FFC07FE0FFC07FE0FFE07FF0FFE07FF0FFE07FF0
2753−7FE03FF01E600F300060003000600030006000300060003000E0007000C0006000C00060
2754−00C0006001C000E0018000C0038001C003000180070003800E0007001C000E0018000C00
2755−38001C00300018001C1C7DBE2D>34 D<1E007F80FF80FFC0FFC0FFE0FFE0FFE07FE01E60
2756−006000600060006000E000C000C000C001C001800380030007000E001C00180038003000
2757−0B1C79BE19>39 D<0000300000700000E00001C0000380000780000F00001E00003E0000
2758−3C0000780000F80000F00001F00001E00003E00003E00007C00007C0000FC0000F80000F
2759−80001F80001F00001F00003F00003F00003F00003E00007E00007E00007E00007E00007E
2760−00007E00007C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC
2761−0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00007E
2762−00007E00007E00007E00003E00003F00003F00003F00001F00001F00001F80000F80000F
2763−80000FC00007C00007C00003E00003E00001E00001F00000F00000F800007800003C0000
2764−3E00001E00000F000007800003800001C00000E0000070000030145A77C323>I<C00000
2765−E000007000003800001C00001E00000F000007800007C00003C00001E00001F00000F000
2766−00F800007800007C00007C00003E00003E00003F00001F00001F00001F80000F80000F80
2767−000FC0000FC0000FC00007C00007E00007E00007E00007E00007E00007E00003E00003F0
2768−0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
2769−0003F00003F00003F00003F00003F00003E00007E00007E00007E00007E00007E00007E0
2770−0007C0000FC0000FC0000FC0000F80000F80001F80001F00001F00003F00003E00003E00
2771−007C00007C0000780000F80000F00001F00001E00003C00007C0000780000F00001E0000
2772−1C0000380000700000E00000C00000145A7BC323>I<00000006000000000000000F0000
2773−00000000000F000000000000000F000000000000000F000000000000000F000000000000
2774−000F000000000000000F000000000000000F000000000000000F000000000000000F0000
2775−00000000000F000000000000000F000000000000000F000000000000000F000000000000
2776−000F000000000000000F000000000000000F000000000000000F000000000000000F0000
2777−00000000000F000000000000000F000000000000000F000000000000000F000000000000
2778−000F000000000000000F000000000000000F000000000000000F000000007FFFFFFFFFFF
2779−FFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFFFFFFFFFFFFE00000000F000000000000
2780−000F000000000000000F000000000000000F000000000000000F000000000000000F0000
2781−00000000000F000000000000000F000000000000000F000000000000000F000000000000
2782−000F000000000000000F000000000000000F000000000000000F000000000000000F0000
2783−00000000000F000000000000000F000000000000000F000000000000000F000000000000
2784−000F000000000000000F000000000000000F000000000000000F000000000000000F0000
2785−00000000000F000000000000000F000000000000000F0000000000000006000000003C3C
2786−7BB447>43 D<1E007F80FF80FFC0FFC0FFE0FFE0FFE07FE01E60006000600060006000E0
2787−00C000C000C001C001800380030007000E001C001800380030000B1C798919>I<FFFFFE
2788−FFFFFEFFFFFEFFFFFEFFFFFEFFFFFE17067F961E>I<1E007F807F80FFC0FFC0FFC0FFC0
2789−7F807F801E000A0A798919>I<000000018000000003C000000007C000000007C0000000
2790−07800000000F800000000F800000000F000000001F000000001F000000001E000000003E
2791−000000003E000000003C000000007C000000007C000000007800000000F800000000F800
2792−000000F000000001F000000001F000000001E000000003E000000003E000000003C00000
2793−0007C000000007C000000007800000000F800000000F800000001F000000001F00000000
2794−1E000000003E000000003E000000003C000000007C000000007C000000007800000000F8
2795−00000000F800000000F000000001F000000001F000000001E000000003E000000003E000
2796−000003C000000007C000000007C000000007800000000F800000000F800000000F000000
2797−001F000000001F000000001E000000003E000000003E000000007C000000007C00000000
2798−7800000000F800000000F800000000F000000001F000000001F000000001E000000003E0
2799−00000003E000000003C000000007C000000007C000000007800000000F800000000F8000
2800−00000F000000001F000000001F000000001E000000003E000000003E000000003C000000
2801−007C000000007C000000007800000000F800000000F800000000F0000000006000000000
2802−225B7BC32D>I<0001FE0000000FFFC000003F03F000007C00F80000F8007C0001F0003E
2803−0003E0001F0007C0000F8007C0000F800FC0000FC01F800007E01F800007E01F800007E0
2804−3F800007F03F800007F03F000003F07F000003F87F000003F87F000003F87F000003F87F
2805−000003F87F000003F8FF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF00
2806−0003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF0000
2807−03FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003
2808−FC7F000003F87F000003F87F000003F87F000003F87F000003F83F800007F03F800007F0
2809−3F800007F01F800007E01F800007E01F800007E00FC0000FC00FC0000FC007E0001F8003
2810−E0001F0001F0003E0000F8007C00007C00F800003F03F000000FFFC0000001FE0000263F
2811−7DBC2D>I<0001C0000003C0000007C000001FC000007FC00007FFC000FFFFC000FF9FC0
2812−00F81FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0
2813−00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0
2814−00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0
2815−00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0
2816−00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0
2817−00001FC000001FC000001FC000001FC000007FF000FFFFFFF8FFFFFFF8FFFFFFF81D3D78
2818−BC2D>I<0007FC0000003FFF800000FFFFE00003F01FF80007C007FC000F0001FE001E00
2819−00FF001C0000FF803C00007FC07800007FC07800003FE07000003FE0FF00003FE0FF8000
2820−1FF0FFC0001FF0FFC0001FF0FFC0001FF0FFC0001FF0FFC0001FF07F80001FF03F00001F
2821−F00C00001FF00000001FE00000003FE00000003FE00000003FC00000007FC00000007F80
2822−000000FF80000000FF00000001FE00000001FC00000003F800000007F000000007E00000
2823−000FC00000001F800000003F000000007E000000007C00000000F800000001F000000003
2824−E000000007C00000000F800000001F000070003E000070003C000070007800007000F000
2825−00E001E00000E003C00000E007800000E00F000001E01FFFFFFFE01FFFFFFFE03FFFFFFF
2826−E07FFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0243D7CBC2D>I<0007FC0000003FFF
2827−800000F80FE00001E003F800078001FC000F0001FE000E0000FF001E0000FF801F80007F
2828−803FC0007FC03FE0007FC03FE0007FC03FF0007FC03FE0007FC03FE0007FC01FE0007FC0
2829−0FC0007FC00000007F80000000FF80000000FF00000000FF00000001FE00000001FE0000
2830−0003FC00000003F800000007E00000000FC00000003F0000001FFC0000001FFF80000000
2831−0FE000000007F800000003FC00000001FE00000000FF00000000FF800000007FC0000000
2832−7FC00000007FE00000003FE00000003FE00000003FF00000003FF00C00003FF03F00003F
2833−F07F80003FF0FFC0003FF0FFC0003FF0FFC0003FF0FFC0003FE0FFC0003FE0FF80007FE0
2834−7F00007FC07800007FC0780000FF803C0000FF801E0001FF000F0003FE0007C007FC0003
2835−F80FF00000FFFFE000003FFF80000007F80000243F7CBC2D>I<0000000E000000001E00
2836−0000003E000000003E000000007E000000007E00000000FE00000001FE00000001FE0000
2837−0003FE000000077E000000067E0000000E7E0000001C7E0000001C7E000000387E000000
2838−707E000000707E000000E07E000001C07E000001C07E000003807E000007007E00000700
2839−7E00000E007E00001C007E00001C007E000038007E000070007E000070007E0000E0007E
2840−0000C0007E0001C0007E000380007E000300007E000700007E000E00007E000C00007E00
2841−1C00007E003800007E003800007E007000007E00E000007E00FFFFFFFFFFFFFFFFFFFFFF
2842−FFFFFFFF000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000
2843−00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000001FF000001FF
2844−FFFF0001FFFFFF0001FFFFFF283E7EBD2D>I<06000003000780001F0007F800FE0007FF
2845−FFFE0007FFFFFC0007FFFFF80007FFFFF00007FFFFC00007FFFF000007FFFC0000073FE0
2846−000007000000000700000000070000000007000000000700000000070000000007000000
2847−00070000000007000000000700000000070000000007000000000701FE0000070FFF8000
2848−073E03E000077001F80007E000FC0007C0007E000780003F000700003F800600001F8000
2849−00001FC00000001FC00000001FE00000000FE00000000FE00000000FE00000000FF00000
2850−000FF00000000FF00C00000FF07F00000FF07F80000FF0FF80000FF0FF80000FF0FF8000
2851−0FF0FF80000FF0FF80000FE0FF00001FE0FC00001FE07000001FC07800001FC03800003F
2852−803C00003F801E00007F001F0000FE000F8001FC0007C003F80003F80FE00000FFFFC000
2853−003FFF00000007F80000243F7CBC2D>I<00001FE0000000FFF8000003F03E00000FC00F
2854−00001F000780003E000780007E001FC000FC003FC001F8007FC003F8007FC003F0007FC0
2855−07F0007FC00FE0003F800FE0001F001FE00000001FC00000001FC00000003FC00000003F
2856−C00000003FC00000007F800000007F800000007F80FE00007F87FF8000FF8F07E000FF9C
2857−01F000FFB800FC00FFB0007E00FFF0007E00FFE0003F00FFE0003F80FFC0003FC0FFC000
2858−3FC0FFC0001FE0FFC0001FE0FFC0001FE0FF80001FF0FF80001FF0FF80001FF0FF80001F
2859−F0FF80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF0
2860−3F80001FF03FC0001FE03FC0001FE01FC0001FE01FC0003FC01FC0003FC00FE0003F800F
2861−E0003F8007E0007F0003F0007E0001F800FC0000FC01F800007E07F000003FFFE000000F
2862−FF80000003FC0000243F7CBC2D>I<38000000003C000000003F000000003FFFFFFFFC3F
2863−FFFFFFFC3FFFFFFFFC3FFFFFFFF87FFFFFFFF87FFFFFFFF07FFFFFFFE078000001E07000
2864−0003C0700000078070000007007000000F00E000001E00E000001C00E000003C00E00000
2865−78000000007000000000F000000001E000000001C000000003C000000007800000000700
2866−0000000F000000001E000000001E000000003C000000003C000000007C00000000780000
2867−0000F800000000F800000001F800000001F000000003F000000003F000000003F0000000
2868−07F000000007F000000007F00000000FF00000000FE00000000FE00000001FE00000001F
2869−E00000001FE00000001FE00000001FE00000001FE00000003FE00000003FE00000003FE0
2870−0000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE000
2871−00001FC00000000700000026407BBD2D>I<0003FC0000001FFF8000007C07E00000F001
2872−F80001E0007C0003C0003E000780001F000F00001F000F00000F801E00000F801E00000F
2873−C03E000007C03E000007C03E000007C03E000007C03F000007C03F000007C03F80000F80
2874−3FC0000F801FE0001F801FF0001F001FFC003E000FFE007C000FFF80780007FFC0F00003
2875−FFF3E00001FFFF800000FFFF0000003FFF0000001FFFC000000FFFE000003FFFF8000078
2876−FFFC0001F07FFE0003E01FFF0007C00FFF800F8003FFC01F0001FFC03F00007FE03E0000
2877−3FE07E00001FE07C00000FF07C000007F0F8000003F0F8000003F0F8000003F0F8000001
2878−F0F8000001F0F8000001F0F8000001F0FC000001E07C000003E07C000003E07E000003C0
2879−3F000007C01F00000F801F80001F000FC0003E0007F0007C0001FC03F80000FFFFE00000
2880−1FFF80000003FC0000243F7CBC2D>I<0003FC0000001FFF0000007E07C00000FC03F000
2881−01F801F80003F000FC0007E0007C000FE0007E001FC0007F001FC0003F003FC0003F803F
2882−80003F807F80003FC07F80003FC07F80001FC0FF80001FC0FF80001FE0FF80001FE0FF80
2883−001FE0FF80001FE0FF80001FE0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF8000
2884−1FF07F80001FF07F80003FF07F80003FF07F80003FF03FC0003FF03FC0003FF01FC0007F
2885−F00FC0007FF007E000FFF007F000DFF003F001DFF000F8039FF0007E0F1FF0001FFE1FE0
2886−0007F01FE00000001FE00000001FE00000003FC00000003FC00000003FC00000003FC000
2887−00003F800000007F800F80007F001FC0007F003FE000FE003FE000FE003FE001FC003FE0
2888−01F8003FC003F0003F8007F0001E000FE0001F001FC0000FC07F000003FFFE000001FFF8
2889−0000003FC00000243F7CBC2D>I<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000000
2890−000000000000000000000000000000000000000000000000000000000000000000000000
2891−1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A2779A619>I<1E007F807F80FFC0FF
2892−C0FFC0FFC07F807F801E0000000000000000000000000000000000000000000000000000
2893−000000000000000000000000001E007F00FF80FF80FFC0FFC0FFC0FFC07FC01EC000C000
2894−C000C000C001C001800180018003800300070006000E000C001C003800300030000A3979
2895−A619>I<7FFFFFFFFFFFFFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFFFFFFFFFFFFE0
2896−000000000000000000000000000000000000000000000000000000000000000000000000
2897−000000000000000000000000000000000000000000000000000000000000000000000000
2898−000000000000000000000000000000000000000000000000000000000000000000000000
2899−000000007FFFFFFFFFFFFFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFFFFFFFFFFFFE0
2900−3C167BA147>61 D<00000007000000000000000F800000000000000F800000000000000F
2901−800000000000001FC00000000000001FC00000000000001FC00000000000003FE0000000
2902−0000003FE00000000000003FE00000000000007FF00000000000007FF00000000000007F
2903−F0000000000000FFF8000000000000E7F8000000000000E7F8000000000001C7FC000000
2904−000001C3FC000000000001C3FC00000000000381FE00000000000381FE00000000000381
2905−FE00000000000700FF00000000000700FF00000000000700FF00000000000E007F800000
2906−00000E007F80000000000E007F80000000001C003FC0000000001C003FC0000000001C00
2907−3FC00000000038001FE00000000038001FE00000000038001FE00000000070000FF00000
2908−000070000FF00000000070000FF000000000E00007F800000000E00007F800000000E000
2909−07F800000001C00003FC00000001FFFFFFFC00000001FFFFFFFC00000003FFFFFFFE0000
2910−0003800001FE00000003800001FE00000007000000FF00000007000000FF0000000F0000
2911−00FF8000000E0000007F8000000E0000007F8000001E0000007FC000001C0000003FC000
2912−001C0000003FC000003C0000003FE00000380000001FE00000380000001FE00000780000
2913−001FF00000780000000FF00000FC0000000FF00003FC0000001FF8000FFF0000003FFC00
2914−FFFFF0000FFFFFF8FFFFF0000FFFFFF8FFFFF0000FFFFFF83D417DC044>65
2915−D<FFFFFFFFFC0000FFFFFFFFFF8000FFFFFFFFFFF00001FF80000FF800007F000003FE00
2916−007F000001FF00007F000000FF80007F0000007FC0007F0000003FE0007F0000003FE000
2917−7F0000001FF0007F0000001FF0007F0000001FF8007F0000001FF8007F0000001FF8007F
2918−0000000FF8007F0000001FF8007F0000001FF8007F0000001FF8007F0000001FF0007F00
2919−00001FF0007F0000003FE0007F0000007FE0007F0000007FC0007F000000FF80007F0000
2920−01FF00007F000003FC00007F00000FF800007F00007FE000007FFFFFFF0000007FFFFFFF
2921−E000007F000007FC00007F000001FE00007F000000FF80007F0000007FC0007F0000003F
2922−E0007F0000001FF0007F0000001FF8007F0000000FF8007F0000000FFC007F00000007FC
2923−007F00000007FC007F00000007FE007F00000007FE007F00000007FE007F00000007FE00
2924−7F00000007FE007F00000007FE007F00000007FE007F00000007FC007F0000000FFC007F
2925−0000000FFC007F0000001FF8007F0000001FF0007F0000003FF0007F0000007FE0007F00
2926−0000FFC0007F000003FF8001FF80000FFE00FFFFFFFFFFFC00FFFFFFFFFFE000FFFFFFFF
2927−FF0000373E7DBD40>I<0000003FF00006000003FFFE000E00000FFFFF801E00003FF007
2928−E03E0000FF8000F83E0003FE00007C7E0007F800001EFE000FF000000FFE003FE0000007
2929−FE007FC0000003FE00FF80000003FE00FF00000001FE01FE00000000FE03FE00000000FE
2930−07FC000000007E07F8000000007E0FF8000000003E0FF8000000003E1FF0000000001E1F
2931−F0000000001E3FF0000000001E3FE0000000001E3FE0000000000E7FE0000000000E7FE0
2932−000000000E7FE0000000000E7FC00000000000FFC00000000000FFC00000000000FFC000
2933−00000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000
2934−000000FFC00000000000FFC00000000000FFC00000000000FFC000000000007FC0000000
2935−00007FE000000000007FE0000000000E7FE0000000000E3FE0000000000E3FE000000000
2936−0E3FF0000000000E1FF0000000001E1FF0000000001C0FF8000000001C0FF8000000001C
2937−07F8000000003C07FC000000003803FE000000007801FE000000007000FF00000000F000
2938−FF80000001E0007FC0000001C0003FE0000003C0000FF0000007800007F800001F000003
2939−FE00003E000000FF8000F80000003FF007F00000000FFFFFC000000003FFFF0000000000
2940−3FF0000037427BBF42>I<FFFFFFFFFC000000FFFFFFFFFF800000FFFFFFFFFFE0000001
2941−FFC0001FF80000007F800003FE0000007F800000FF0000007F8000007F8000007F800000
2942−3FC000007F8000000FE000007F8000000FF000007F80000007F800007F80000003FC0000
2943−7F80000001FC00007F80000001FE00007F80000000FF00007F80000000FF00007F800000
2944−00FF80007F800000007F80007F800000007FC0007F800000007FC0007F800000007FC000
2945−7F800000003FE0007F800000003FE0007F800000003FE0007F800000003FE0007F800000
2946−003FE0007F800000003FF0007F800000003FF0007F800000003FF0007F800000003FF000
2947−7F800000003FF0007F800000003FF0007F800000003FF0007F800000003FF0007F800000
2948−003FF0007F800000003FF0007F800000003FF0007F800000003FE0007F800000003FE000
2949−7F800000003FE0007F800000003FE0007F800000003FE0007F800000007FC0007F800000
2950−007FC0007F800000007F80007F800000007F80007F80000000FF80007F80000000FF0000
2951−7F80000001FE00007F80000001FE00007F80000003FC00007F80000003F800007F800000
2952−07F800007F8000000FF000007F8000001FE000007F8000007FC000007F800000FF000000
2953−7F800003FE000001FFC0001FF80000FFFFFFFFFFF00000FFFFFFFFFF800000FFFFFFFFFC
2954−0000003C3E7DBD45>I<FFFFFFFFFFFFE0FFFFFFFFFFFFE0FFFFFFFFFFFFE001FFC00001
2955−FFE0007F8000001FE0007F8000000FF0007F80000003F0007F80000003F0007F80000001
2956−F0007F80000000F0007F80000000F0007F80000000F0007F8000000070007F8000000070
2957−007F8000000070007F8000000070007F8000000038007F80001C0038007F80001C003800
2958−7F80001C0038007F80001C0038007F80001C0000007F80001C0000007F80003C0000007F
2959−80003C0000007F80007C0000007F8000FC0000007F8003FC0000007FFFFFFC0000007FFF
2960−FFFC0000007FFFFFFC0000007F8003FC0000007F8000FC0000007F80007C0000007F8000
2961−3C0000007F80003C0000007F80001C0000007F80001C0000007F80001C0007007F80001C
2962−0007007F80001C0007007F80001C000E007F800000000E007F800000000E007F80000000
2963−0E007F800000000E007F800000001E007F800000001C007F800000001C007F800000003C
2964−007F800000003C007F800000007C007F800000007C007F80000000F8007F80000001F800
2965−7F80000003F8007F80000007F8007F8000001FF801FFC00001FFF8FFFFFFFFFFFFF0FFFF
2966−FFFFFFFFF0FFFFFFFFFFFFF0383E7DBD3E>I<FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFF
2967−FFFFFF8001FFC00003FF80007F8000007F80007F8000001FC0007F8000000FC0007F8000
2968−0007C0007F80000007C0007F80000003C0007F80000003C0007F80000003C0007F800000
2969−01C0007F80000001C0007F80000001C0007F80000001C0007F80000000E0007F80000000
2970−E0007F80003800E0007F80003800E0007F80003800E0007F8000380000007F8000380000
2971−007F8000380000007F8000780000007F8000780000007F8000F80000007F8001F8000000
2972−7F8007F80000007FFFFFF80000007FFFFFF80000007FFFFFF80000007F8007F80000007F
2973−8001F80000007F8000F80000007F8000780000007F8000780000007F8000380000007F80
2974−00380000007F8000380000007F8000380000007F8000380000007F8000380000007F8000
2975−000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000
2976−0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000
2977−00007F8000000000007F8000000000007F8000000000007F800000000001FFE000000000
2978−FFFFFFF0000000FFFFFFF0000000FFFFFFF0000000333E7DBD3B>I<0000003FE0000C00
2979−000003FFFE001C0000001FFFFF803C0000007FF00FC07C000000FF0001F07C000003FC00
2980−0078FC000007F800003DFC00001FE000001FFC00003FC000000FFC00007F80000007FC00
2981−00FF80000003FC0001FF00000003FC0001FE00000001FC0003FC00000001FC0007FC0000
2982−0000FC0007F800000000FC000FF8000000007C000FF0000000007C001FF0000000003C00
2983−1FF0000000003C003FE0000000003C003FE0000000003C003FE0000000001C007FE00000
2984−00001C007FE0000000001C007FC0000000001C007FC0000000000000FFC0000000000000
2985−FFC0000000000000FFC0000000000000FFC0000000000000FFC0000000000000FFC00000
2986−00000000FFC0000000000000FFC0000000000000FFC0000000000000FFC0000000000000
2987−FFC0000000000000FFC000001FFFFFF07FC000001FFFFFF07FC000001FFFFFF07FE00000
2988−000FFE007FE000000003FC003FE000000003FC003FE000000003FC003FF000000003FC00
2989−1FF000000003FC001FF000000003FC000FF800000003FC000FF800000003FC0007F80000
2990−0003FC0007FC00000003FC0003FC00000003FC0001FE00000003FC0001FF00000003FC00
2991−00FF80000003FC00007FC0000007FC00003FE0000007FC00001FF000000FFC000007F800
2992−001EFC000003FE00003C7C000000FF8000F83C0000007FF007F01C0000001FFFFFC00C00
2993−000003FFFF0000000000003FF00000003C427BBF47>I<FFFFFFC01FFFFFF8FFFFFFC01F
2994−FFFFF8FFFFFFC01FFFFFF801FFE000003FFC00007F8000000FF000007F8000000FF00000
2995−7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000
2996−0FF000007F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF00000
2997−7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000
2998−0FF000007F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF00000
2999−7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007FFFFFFF
3000−FFF000007FFFFFFFFFF000007FFFFFFFFFF000007F8000000FF000007F8000000FF00000
3001−7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000
3002−0FF000007F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF00000
3003−7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000
3004−0FF000007F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF00000
3005−7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000
3006−0FF000007F8000000FF000007F8000000FF00001FFE000003FFC00FFFFFFC01FFFFFF8FF
3007−FFFFC01FFFFFF8FFFFFFC01FFFFFF83D3E7DBD44>I<FFFFFFF0FFFFFFF0FFFFFFF000FF
3008−F000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
3009−C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
3010−C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
3011−C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
3012−C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
3013−C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
3014−C00000FFF000FFFFFFF0FFFFFFF0FFFFFFF01C3E7EBD21>I<001FFFFFFC001FFFFFFC00
3015−1FFFFFFC000007FF00000003FE00000001FE00000001FE00000001FE00000001FE000000
3016−01FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001
3017−FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE
3018−00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00
3019−000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE0000
3020−0001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE000000
3021−01FE00000001FE003F0001FE007F8001FE00FFC001FE00FFC001FE00FFC001FE00FFC001
3022−FE00FFC003FC00FF8003FC007F0003F8007C0007F800380007F0003C000FE0001E001FC0
3023−000F003F800003E07E000000FFF80000003FC0000026407CBD2F>I<FFFFFFF8000000FF
3024−FFFFF8000000FFFFFFF800000001FFE000000000007F8000000000007F8000000000007F
3025−8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F80
3026−00000000007F8000000000007F8000000000007F8000000000007F8000000000007F8000
3027−000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000
3028−0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000
3029−00007F8000000000007F8000000000007F8000000000007F8000000000007F8000000000
3030−007F8000000000007F8000000000007F8000000000007F8000000000007F800000000000
3031−7F8000000000007F8000000380007F8000000380007F8000000380007F8000000380007F
3032−8000000380007F8000000780007F8000000700007F8000000700007F8000000700007F80
3033−00000700007F8000000F00007F8000000F00007F8000000F00007F8000001F00007F8000
3034−001F00007F8000003F00007F8000007F00007F800000FF00007F800001FE00007F800007
3035−FE0001FFC0003FFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFFFE00313E7DBD39>
3036−76 D<FFFFC0000000003FFFF0FFFFC0000000003FFFF0FFFFC0000000003FFFF001FFE0
3037−000000007FF800007FE0000000007FE0000077F000000000EFE0000077F000000000EFE0
3038−000077F000000000EFE0000073F800000001CFE0000073F800000001CFE0000071FC0000
3039−00038FE0000071FC000000038FE0000071FC000000038FE0000070FE000000070FE00000
3040−70FE000000070FE0000070FF0000000E0FE00000707F0000000E0FE00000707F0000000E
3041−0FE00000703F8000001C0FE00000703F8000001C0FE00000703F8000001C0FE00000701F
3042−C00000380FE00000701FC00000380FE00000700FE00000700FE00000700FE00000700FE0
3043−0000700FE00000700FE000007007F00000E00FE000007007F00000E00FE000007003F800
3044−01C00FE000007003F80001C00FE000007003F80001C00FE000007001FC0003800FE00000
3045−7001FC0003800FE000007001FC0003800FE000007000FE0007000FE000007000FE000700
3046−0FE0000070007F000E000FE0000070007F000E000FE0000070007F000E000FE000007000
3047−3F801C000FE0000070003F801C000FE0000070001FC038000FE0000070001FC038000FE0
3048−000070001FC038000FE0000070000FE070000FE0000070000FE070000FE0000070000FE0
3049−E0000FE00000700007F0E0000FE00000700007F0E0000FE00000700003F9C0000FE00000
3050−700003F9C0000FE00000700003F9C0000FE00000700001FF80000FE00000700001FF8000
3051−0FE00000700000FF00000FE00000700000FF00000FE00000F80000FF00000FE00001FC00
3052−007E00000FE00007FF00007E00003FF800FFFFF8003C001FFFFFF0FFFFF8003C001FFFFF
3053−F0FFFFF8003C001FFFFFF04C3E7DBD53>I<FFFF800000FFFFF8FFFFC00000FFFFF8FFFF
3054−E00000FFFFF8007FE0000007FF00007FF0000001FC00007FF8000000F800007FF8000000
3055−70000077FC00000070000073FE00000070000073FE00000070000071FF00000070000070
3056−FF80000070000070FF800000700000707FC00000700000703FE00000700000703FE00000
3057−700000701FF00000700000700FF80000700000700FF800007000007007FC000070000070
3058−03FE00007000007003FE00007000007001FF00007000007000FF80007000007000FF8000
3059−70000070007FC00070000070003FE00070000070003FE00070000070001FF00070000070
3060−000FF80070000070000FF800700000700007FC00700000700003FE00700000700003FE00
3061−700000700001FF00700000700000FF80700000700000FF807000007000007FC070000070
3062−00003FE07000007000003FE07000007000001FF07000007000000FF87000007000000FF8
3063−70000070000007FC70000070000003FE70000070000003FE70000070000001FF70000070
3064−000000FFF0000070000000FFF00000700000007FF00000700000003FF00000700000003F
3065−F00000700000001FF00000700000000FF00000700000000FF000007000000007F00000F8
3066−00000003F00001FC00000003F00007FF00000001F000FFFFF8000000F000FFFFF8000000
3067−F000FFFFF800000070003D3E7DBD44>I<0000007FE0000000000007FFFE00000000001F
3068−C03F80000000007E0007E000000001FC0003F800000007F00000FE0000000FE000007F00
3069−00001FC000003F8000003F8000001FC000007F0000000FE00000FE00000007F00001FE00
3070−000007F80001FC00000003F80003FC00000003FC0007F800000001FE0007F800000001FE
3071−000FF000000000FF000FF000000000FF001FF000000000FF801FE0000000007F803FE000
3072−0000007FC03FE0000000007FC03FE0000000007FC07FE0000000007FE07FC0000000003F
3073−E07FC0000000003FE07FC0000000003FE0FFC0000000003FF0FFC0000000003FF0FFC000
3074−0000003FF0FFC0000000003FF0FFC0000000003FF0FFC0000000003FF0FFC0000000003F
3075−F0FFC0000000003FF0FFC0000000003FF0FFC0000000003FF0FFC0000000003FF0FFC000
3076−0000003FF07FC0000000003FE07FE0000000007FE07FE0000000007FE07FE0000000007F
3077−E07FE0000000007FE03FE0000000007FC03FE0000000007FC01FF000000000FF801FF000
3078−000000FF801FF000000000FF800FF800000001FF000FF800000001FF0007FC00000003FE
3079−0003FC00000003FC0003FE00000007FC0001FE00000007F80000FF0000000FF000007F00
3080−00000FE000003F8000001FC000001FC000003F8000000FE000007F00000007F00000FE00
3081−000001FC0003F8000000007F000FE0000000001FC03F800000000007FFFE000000000000
3082−7FE00000003C427BBF47>I<FFFFFFFFF80000FFFFFFFFFF8000FFFFFFFFFFE00001FFC0
3083−003FF800007F800007FC00007F800001FE00007F800000FF00007F8000007F80007F8000
3084−003FC0007F8000003FE0007F8000003FE0007F8000001FF0007F8000001FF0007F800000
3085−1FF8007F8000001FF8007F8000001FF8007F8000001FF8007F8000001FF8007F8000001F
3086−F8007F8000001FF8007F8000001FF8007F8000001FF0007F8000001FF0007F8000003FE0
3087−007F8000003FE0007F8000003FC0007F8000007F80007F800000FF00007F800001FE0000
3088−7F800007FC00007F80003FF000007FFFFFFFC000007FFFFFFE0000007F8000000000007F
3089−8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F80
3090−00000000007F8000000000007F8000000000007F8000000000007F8000000000007F8000
3091−000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000
3092−0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000
3093−00007F8000000000007F8000000000007F800000000001FFE000000000FFFFFFC0000000
3094−FFFFFFC0000000FFFFFFC0000000353E7DBD3E>I<FFFFFFFFC0000000FFFFFFFFFC0000
3095−00FFFFFFFFFF80000001FFC000FFE00000007F80001FF00000007F800007FC0000007F80
3096−0001FE0000007F800000FF0000007F800000FF8000007F8000007FC000007F8000007FC0
3097−00007F8000003FE000007F8000003FE000007F8000003FF000007F8000003FF000007F80
3098−00003FF000007F8000003FF000007F8000003FF000007F8000003FF000007F8000003FF0
3099−00007F8000003FE000007F8000007FE000007F8000007FC000007F8000007F8000007F80
3100−0000FF8000007F800000FF0000007F800001FC0000007F800007F80000007F80001FE000
3101−00007F8000FF800000007FFFFFFC000000007FFFFFF0000000007F8001FC000000007F80
3102−003F000000007F80001FC00000007F80000FE00000007F800007F00000007F800007F800
3103−00007F800003F80000007F800003FC0000007F800001FC0000007F800001FE0000007F80
3104−0001FE0000007F800001FE0000007F800001FF0000007F800001FF0000007F800001FF00
3105−00007F800001FF0000007F800001FF8000007F800001FF8000007F800001FF8000007F80
3106−0001FF8000007F800001FFC004007F800001FFC00E007F800001FFC00E007F800000FFC0
3107−0E007F800000FFE00E007F8000007FE01E01FFE000007FE01CFFFFFFC0003FF01CFFFFFF
3108−C0001FF838FFFFFFC00007F870000000000001FFE00000000000003F803F407DBD43>82
3109−D<0007FC000C001FFF801C007FFFF03C01FC03F83C03F0007E7C07C0001FFC0F80000FFC
3110−1F800007FC3F000003FC3E000001FC7E000000FC7E000000FC7C0000007CFC0000007CFC
3111−0000007CFC0000003CFC0000003CFC0000003CFE0000001CFE0000001CFF0000001CFF00
3112−00001C7F800000007FC00000007FE00000003FF80000003FFF8000001FFFF800000FFFFF
3113−800007FFFFF00003FFFFFC0001FFFFFF0000FFFFFFC0003FFFFFE00007FFFFF000007FFF
3114−F0000007FFF80000007FFC0000000FFC00000007FE00000003FE00000001FE00000000FF
3115−00000000FFE00000007FE00000007FE00000007FE00000003FE00000003FF00000003FF0
3116−0000003FF00000003FF00000003EF80000003EF80000007EFC0000007CFE000000FCFF00
3117−0000F8FF800001F8FFC00003F0FFE00007E0F9FC000FC0F07F803F80F01FFFFE00E007FF
3118−F800C0007FC00028427BBF33>I<3FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFF
3119−FF803FF0007FE001FF803F80003FC0003F807F00003FC0001FC07E00003FC00007C07C00
3120−003FC00007C07800003FC00003C07800003FC00003C07800003FC00003C07000003FC000
3121−01C07000003FC00001C07000003FC00001C07000003FC00001C07000003FC00001C0E000
3122−003FC00000E0E000003FC00000E0E000003FC00000E0E000003FC00000E0E000003FC000
3123−00E00000003FC00000000000003FC00000000000003FC00000000000003FC00000000000
3124−003FC00000000000003FC00000000000003FC00000000000003FC00000000000003FC000
3125−00000000003FC00000000000003FC00000000000003FC00000000000003FC00000000000
3126−003FC00000000000003FC00000000000003FC00000000000003FC00000000000003FC000
3127−00000000003FC00000000000003FC00000000000003FC00000000000003FC00000000000
3128−003FC00000000000003FC00000000000003FC00000000000003FC00000000000003FC000
3129−00000000003FC00000000000003FC00000000000003FC00000000000003FC00000000000
3130−003FC00000000000003FC00000000000003FC00000000000003FC00000000000007FE000
3131−0000000000FFF00000000007FFFFFFFE00000007FFFFFFFE00000007FFFFFFFE00003B3D
3132−7DBC42>I<FFFFFFC000FFFFF8FFFFFFC000FFFFF8FFFFFFC000FFFFF801FFE0000007FF
3133−00007F80000001FC00007F80000000F800007F800000007000007F800000007000007F80
3134−0000007000007F800000007000007F800000007000007F800000007000007F8000000070
3135−00007F800000007000007F800000007000007F800000007000007F800000007000007F80
3136−0000007000007F800000007000007F800000007000007F800000007000007F8000000070
3137−00007F800000007000007F800000007000007F800000007000007F800000007000007F80
3138−0000007000007F800000007000007F800000007000007F800000007000007F8000000070
3139−00007F800000007000007F800000007000007F800000007000007F800000007000007F80
3140−0000007000007F800000007000007F800000007000007F800000007000007F8000000070
3141−00007F800000007000007F800000007000007F800000007000007F800000007000007F80
3142−0000007000007F800000007000003F80000000F000003FC0000000E000003FC0000000E0
3143−00003FC0000001E000001FC0000001C000001FE0000001C000000FE0000003C000000FF0
3144−00000780000007F000000700000003F800000F00000001FC00001E00000000FE00003C00
3145−0000007F0000F8000000003F8001F0000000000FF00FE00000000003FFFF800000000000
3146−FFFE0000000000001FF00000003D407DBD44>I<FFFFFF00000FFFFEFFFFFF00000FFFFE
3147−FFFFFF00000FFFFE03FFE0000001FFE001FF800000007F8000FF800000003F00007F8000
3148−00003E00007F800000001C00007FC00000003C00003FC00000003800003FC00000003800
3149−003FE00000007800001FE00000007000001FE00000007000000FF0000000E000000FF000
3150−0000E000000FF8000001E0000007F8000001C0000007F8000001C0000007FC000003C000
3151−0003FC00000380000003FC00000380000001FE00000700000001FE00000700000001FF00
3152−000700000000FF00000E00000000FF00000E00000000FF80001E000000007F80001C0000
3153−00007F80001C000000007FC0003C000000003FC00038000000003FC00038000000001FE0
3154−0070000000001FE00070000000001FF000F0000000000FF000E0000000000FF000E00000
3155−00000FF801E00000000007F801C00000000007F801C00000000003FC03800000000003FC
3156−03800000000003FE07800000000001FE07000000000001FE07000000000001FF0F000000
3157−000000FF0E000000000000FF0E0000000000007F9C0000000000007F9C0000000000007F
3158−DC0000000000003FF80000000000003FF80000000000003FF80000000000001FF0000000
3159−0000001FF00000000000001FF00000000000000FE00000000000000FE000000000000007
3160−C000000000000007C000000000000007C000000000000003800000003F407EBD44>I<FF
3161−FFFE007FFFFF8007FFFFFFFFFE007FFFFF8007FFFFFFFFFE007FFFFF8007FFFF03FFC000
3162−01FFE00000FFF801FF000000FFC000003FE001FF0000007F8000000F8000FF0000007F80
3163−00000F8000FF0000007FC000000F0000FF8000003FC000000F00007F8000003FC000000E
3164−00007F8000003FE000000E00007F8000003FE000000E00003FC000003FE000001C00003F
3165−C000003FE000001C00003FC000007FF000001C00001FE000007FF000003800001FE00000
3166−7FF000003800001FE00000E7F800003800000FF00000E7F800007000000FF00000E7F800
3167−007000000FF00001C3FC00007000000FF80001C3FC0000F0000007F80001C3FC0000E000
3168−0007F80003C3FE0000E0000007FC000381FE0001E0000003FC000381FE0001C0000003FC
3169−000781FF0001C0000003FC000700FF0001C0000001FE000700FF000380000001FE000700
3170−FF000380000001FE000E007F800380000000FF000E007F800700000000FF000E007F8007
3171−00000000FF001C003FC007000000007F801C003FC00E000000007F801C003FC00E000000
3172−007F8038001FE00E000000007FC038001FE01E000000003FC038001FE01C000000003FC0
3173−78001FF01C000000003FE070000FF03C000000001FE070000FF038000000001FE0F0000F
3174−F838000000001FE0E00007F838000000000FF0E00007F870000000000FF0E00007F87000
3175−0000000FF1C00003FC700000000007F9C00003FCE00000000007F9C00003FCE000000000
3176−07FB800001FEE00000000003FF800001FFC00000000003FF800001FFC00000000003FF00
3177−0000FFC00000000003FF000000FFC00000000001FF000000FF800000000001FF000000FF
3178−800000000001FE0000007F800000000000FE0000007F000000000000FE0000007F000000
3179−000000FC0000003F0000000000007C0000003E0000000000007C0000003E000000000000
3180−780000001E000000000000380000001C00000058407EBD5D>I<FFFCFFFCFFFCFFFCF000
3181−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
3182−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
3183−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
3184−F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000
3185−F000F000F000F000F000F000F000F000F000F000FFFCFFFCFFFCFFFC0E5B77C319>91
3186−D<018000C0038001C003000180070003800E0007001C000E0018000C0038001C00300018
3187−0070003800600030006000300060003000E0007000C0006000C0006000C0006000C00060
3188−00CF006780FFC07FE0FFE07FF0FFE07FF0FFE07FF07FE03FF07FE03FF03FE01FF03FC01F
3189−E00F0007801C1C73BE2D>I<FFFCFFFCFFFCFFFC003C003C003C003C003C003C003C003C
3190−003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C
3191−003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C
3192−003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C
3193−003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C
3194−003C003C003CFFFCFFFCFFFCFFFC0E5B7FC319>I<000FF800000000FFFE00000003F01F
3195−800000078007E000000F8003F000000FE001F800001FF001FC00001FF000FE00001FF000
3196−FE00001FF000FE00001FF0007F00000FE0007F00000380007F00000000007F0000000000
3197−7F00000000007F00000000007F000000001FFF00000003FFFF0000001FF87F0000007F80
3198−7F000001FC007F000007F8007F00000FE0007F00001FC0007F00003F80007F00003F8000
3199−7F00007F00007F00007F00007F0380FE00007F0380FE00007F0380FE00007F0380FE0000
3200−FF0380FE0000FF0380FE0000FF03807F0001FF03807F0003BF03803F80071F87001FC00E
3201−1FCF0007F03C0FFE0001FFF807FC00003FC001F000292A7DA82D>97
3202−D<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC0000000003FC000000
3203−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
3204−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
3205−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC03FC00
3206−0001FC1FFF800001FC7C07E00001FDE001F00001FFC000FC0001FF80007E0001FF00003F
3207−0001FE00003F8001FC00001F8001FC00001FC001FC00000FE001FC00000FE001FC00000F
3208−F001FC00000FF001FC000007F001FC000007F801FC000007F801FC000007F801FC000007
3209−F801FC000007F801FC000007F801FC000007F801FC000007F801FC000007F801FC000007
3210−F801FC000007F001FC000007F001FC00000FF001FC00000FF001FC00000FE001FC00001F
3211−E001FC00001FC001FE00001F8001FE00003F0001FF00007F0001FF8000FE0001F3C001F8
3212−0001F1E003F00001E0780FC00001C03FFF0000000007F800002D407EBE33>I<0001FF00
3213−00000FFFE000003F00F800007C001E0001F8001F0003F0007F0007F000FF800FE000FF80
3214−0FC000FF801FC000FF801FC000FF803F80007F003F80001C007F800000007F800000007F
3215−00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00
3216−000000FF00000000FF00000000FF00000000FF000000007F800000007F800000007F8000
3217−00003F800001C03FC00001C01FC00003C01FC00003800FE000078007F000070003F0000E
3218−0001F8001E0000FC007800003F01F000000FFFC0000001FE0000222A7DA828>I<000000
3219−01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC0000000003FC00000000
3220−01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000
3221−01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000
3222−01FC0000000001FC0000000001FC0000000001FC0000000001FC000000FF01FC000007FF
3223−E1FC00001F80F9FC00007E003DFC0000FC001FFC0003F80007FC0007F00007FC0007E000
3224−03FC000FC00001FC001FC00001FC003FC00001FC003F800001FC007F800001FC007F8000
3225−01FC007F000001FC007F000001FC00FF000001FC00FF000001FC00FF000001FC00FF0000
3226−01FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC00FF0000
3227−01FC007F000001FC007F800001FC007F800001FC003F800001FC003F800001FC001FC000
3228−01FC000FC00003FC000FE00003FC0007E00007FC0003F0000FFE0001F8001FFF00007C00
3229−79FFF8003F01F1FFF8000FFFC1FFF80001FE01FC002D407DBE33>I<0001FE0000000FFF
3230−C000003F03F00000FC01F80001F800FC0003F0007E0007E0003F000FE0003F800FC0001F
3231−801FC0001FC03F80000FC03F80000FC07F80000FC07F80000FE07F00000FE07F00000FE0
3232−FF00000FE0FF00000FE0FFFFFFFFE0FFFFFFFFE0FF00000000FF00000000FF00000000FF
3233−00000000FF00000000FF000000007F000000007F000000007F800000003F800000003F80
3234−0000E01FC00000E01FC00001E00FC00001C007E00003C007F000078003F800070000FC00
3235−1E00007E003C00001F80F8000007FFE0000000FF0000232A7EA828>I<00001FC000007F
3236−F80001F83C0007E07E000FC0FF001FC1FF003F81FF003F01FF007F01FF007F00FE00FE00
3237−7C00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00
3238−0000FE000000FE000000FE000000FE000000FE0000FFFFFF00FFFFFF00FFFFFF0000FE00
3239−0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00
3240−0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00
3241−0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00
3242−0000FE000000FE000000FE000000FE000001FF00007FFFFF007FFFFF007FFFFF0020407E
3243−BF1C>I<000000007C000003F801FF00001FFF078F80007E0FDE1F8000F803F81F8003F0
3244−01F81F8003F001F81F8007E000FC06000FE000FE00000FC0007E00001FC0007F00001FC0
3245−007F00001FC0007F00001FC0007F00001FC0007F00001FC0007F00001FC0007F00001FC0
3246−007F00000FC0007E00000FE000FE000007E000FC000003F001F8000003F001F8000001F8
3247−03E0000003FE0FC00000071FFF0000000703F80000000600000000000E00000000000E00
3248−000000000E00000000000F00000000000F00000000000F80000000000FC00000000007FF
3249−FFE0000007FFFFFE000003FFFFFF800001FFFFFFE00000FFFFFFF00003FFFFFFF8000FC0
3250−001FFC001F000001FE003E000000FE007C0000007E007C0000003F00F80000003F00F800
3251−00001F00F80000001F00F80000001F00F80000001F00FC0000003F007C0000003E007E00
3252−00007E003F000000FC001F800001F8000FC00003F00003F0000FC00000FE007F0000003F
3253−FFFC00000003FFC00000293D7EA82D>I<01FC00000000FFFC00000000FFFC00000000FF
3254−FC0000000007FC0000000003FC0000000001FC0000000001FC0000000001FC0000000001
3255−FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001
3256−FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001
3257−FC0000000001FC0000000001FC01FE000001FC07FFC00001FC1E07E00001FC7803F00001
3258−FCE001F80001FDC001FC0001FD8001FC0001FF8000FE0001FF0000FE0001FF0000FE0001
3259−FE0000FE0001FE0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001
3260−FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001
3261−FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001
3262−FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001
3263−FC0000FE0001FC0000FE0003FE0001FF00FFFFF87FFFFCFFFFF87FFFFCFFFFF87FFFFC2E
3264−3F7DBE33>I<01E00007F80007F8000FFC000FFC000FFC000FFC0007F80007F80001E000
3265−000000000000000000000000000000000000000000000000000000000000000000000000
3266−01FC007FFC007FFC007FFC0007FC0003FC0001FC0001FC0001FC0001FC0001FC0001FC00
3267−01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
3268−01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
3269−03FE00FFFFF0FFFFF0FFFFF0143E7DBD1A>I<0000780001FE0001FE0003FF0003FF0003
3270−FF0003FF0001FE0001FE0000780000000000000000000000000000000000000000000000
3271−0000000000000000000000000000007F007FFF007FFF007FFF0001FF0000FF00007F0000
3272−7F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0000
3273−7F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0000
3274−7F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0000
3275−7F00007F00007F00007F3E007F7F007FFF807EFF80FEFF80FEFF80FCFF81F87F01F87C03
3276−F01E07C00FFF8001FC00185185BD1C>I<01FC00000000FFFC00000000FFFC00000000FF
3277−FC0000000007FC0000000003FC0000000001FC0000000001FC0000000001FC0000000001
3278−FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001
3279−FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001
3280−FC0000000001FC0000000001FC0000000001FC00FFFF8001FC00FFFF8001FC00FFFF8001
3281−FC003FFC0001FC003FE00001FC003F800001FC003F000001FC003C000001FC0078000001
3282−FC00F0000001FC01E0000001FC07C0000001FC0F80000001FC1F00000001FC3E00000001
3283−FC7F00000001FCFF80000001FDFF80000001FFDFC0000001FF9FE0000001FF0FE0000001
3284−FE07F0000001FC07F8000001F803FC000001F801FC000001F801FE000001F800FF000001
3285−F8007F000001F8007F800001F8003FC00001F8001FC00001F8001FE00001F8000FF00001
3286−F8000FF00001F8000FF80003FC000FFE00FFFFF07FFFE0FFFFF07FFFE0FFFFF07FFFE02B
3287−3F7EBE30>I<01FC00FFFC00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC0001FC00
3288−01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
3289−01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
3290−01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
3291−01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00
3292−01FC0003FE00FFFFF8FFFFF8FFFFF8153F7DBE1A>I<01F801FE0000FF0000FFF807FFC0
3293−03FFE000FFF81E07E00F03F000FFF87803F03C01F80007F8E001F87000FC0003F9C001FC
3294−E000FE0001F98001FCC000FE0001FB8000FFC0007F0001FB0000FF80007F0001FF0000FF
3295−80007F0001FE0000FF00007F0001FE0000FF00007F0001FC0000FE00007F0001FC0000FE
3296−00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE
3297−00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE
3298−00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE
3299−00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE
3300−00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE
3301−00007F0001FC0000FE00007F0001FC0000FE00007F0003FE0001FF0000FF80FFFFF87FFF
3302−FC3FFFFEFFFFF87FFFFC3FFFFEFFFFF87FFFFC3FFFFE47287DA74C>I<01F801FE0000FF
3303−F807FFC000FFF81E07E000FFF87803F00007F8E001F80003F9C001FC0001F98001FC0001
3304−FB8000FE0001FB0000FE0001FF0000FE0001FE0000FE0001FE0000FE0001FC0000FE0001
3305−FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001
3306−FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001
3307−FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001
3308−FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0003FE0001FF00FF
3309−FFF87FFFFCFFFFF87FFFFCFFFFF87FFFFC2E287DA733>I<0000FF00000007FFE000001F
3310−81F800007E007E0000F8001F0001F0000F8003E00007C007C00003E00FC00003F01F8000
3311−01F81F800001F83F800001FC3F800001FC7F000000FE7F000000FE7F000000FE7F000000
3312−FEFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FF
3313−FF000000FFFF000000FF7F000000FE7F000000FE7F000000FE3F800001FC3F800001FC3F
3314−800001FC1F800001F80FC00003F00FC00003F007E00007E003F0000FC001F8001F80007E
3315−007E00003F81FC00000FFFF0000000FF0000282A7EA82D>I<01FC03FC0000FFFC1FFF80
3316−00FFFC7C0FE000FFFDE003F00003FFC001FC0001FF8000FE0001FF00007F0001FE00003F
3317−8001FC00003F8001FC00001FC001FC00001FE001FC00001FE001FC00000FF001FC00000F
3318−F001FC00000FF001FC000007F801FC000007F801FC000007F801FC000007F801FC000007
3319−F801FC000007F801FC000007F801FC000007F801FC000007F801FC000007F801FC00000F
3320−F001FC00000FF001FC00000FF001FC00000FF001FC00001FE001FC00001FE001FC00003F
3321−C001FE00003F8001FE00007F0001FF00007F0001FF8000FE0001FFC001F80001FDE007F0
3322−0001FC780FC00001FC3FFF000001FC07F8000001FC0000000001FC0000000001FC000000
3323−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
3324−0001FC0000000001FC0000000001FC0000000001FC0000000003FE00000000FFFFF80000
3325−00FFFFF8000000FFFFF80000002D3A7EA733>I<0000FF001C000007FFC03C00001F80F0
3326−3C00007F00387C0000FC001C7C0003F8000E7C0007F0000FFC0007F00007FC000FE00003
3327−FC001FE00003FC003FC00003FC003FC00001FC007F800001FC007F800001FC007F800001
3328−FC007F800001FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC00FF000001
3329−FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC007F800001
3330−FC007F800001FC007F800001FC003FC00001FC003FC00001FC001FC00003FC000FE00003
3331−FC000FE00007FC0007F0000FFC0003F8000FFC0001FC003DFC00007E0079FC00003F81F1
3332−FC00000FFFC1FC000001FE01FC0000000001FC0000000001FC0000000001FC0000000001
3333−FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001
3334−FC0000000001FC0000000001FC0000000001FC0000000003FE00000000FFFFF8000000FF
3335−FFF8000000FFFFF82D3A7DA730>I<01F807E0FFF81FF8FFF8787CFFF8E1FE07F9C1FE03
3336−F981FE01FB81FE01FB01FE01FB00FC01FF003001FE000001FE000001FE000001FC000001
3337−FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001
3338−FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001
3339−FC000001FC000001FC000001FC000003FE0000FFFFFE00FFFFFE00FFFFFE001F287EA724
3340−>I<003FC06001FFF8E007C03FE01F000FE03E0007E03C0003E07C0003E0780001E0F800
3341−01E0F80000E0F80000E0FC0000E0FE0000E0FF0000E0FF8000007FF800007FFFC0003FFF
3342−F8001FFFFE000FFFFF0007FFFF8001FFFFC0003FFFE00003FFF000001FF000000FF8E000
3343−03F8E00003F8E00001F8F00001F8F00000F8F00000F8F80000F8F80000F0FC0000F0FC00
3344−01F0FE0001E0FF0003C0FF800780F3E01F00E0FFFC00C01FE0001D2A7DA824>I<001C00
3345−00001C0000001C0000001C0000001C0000001C0000003C0000003C0000003C0000003C00
3346−00007C0000007C000000FC000000FC000001FC000003FC000007FC00001FFFFFC0FFFFFF
3347−C0FFFFFFC001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00
3348−0001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00
3349−0001FC000001FC000001FC000001FC00E001FC00E001FC00E001FC00E001FC00E001FC00
3350−E001FC00E001FC00E001FC00E000FC00E000FE01C000FE01C0007F03C0003F0380001F87
3351−000007FE000001F8001B397EB723>I<01FC0000FE00FFFC007FFE00FFFC007FFE00FFFC
3352−007FFE0007FC0003FE0003FC0001FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC
3353−0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC
3354−0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC
3355−0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC
3356−0000FE0001FC0000FE0001FC0001FE0001FC0001FE0001FC0001FE0001FC0003FE0000FC
3357−0003FE0000FC0007FE0000FE0006FF00007E000EFF80003F001CFFFC001FC078FFFC0007
3358−FFE0FFFC0000FF80FE002E297DA733>I<FFFFE00FFFE0FFFFE00FFFE0FFFFE00FFFE007
3359−FE0003FF0003FC0000FC0003FC0000F80001FC0000F00001FE0000F00000FE0000E00000
3360−FE0000E00000FF0001E000007F0001C000007F0001C000003F80038000003F8003800000
3361−3FC0078000001FC0070000001FC0070000000FE00E0000000FE00E0000000FF01E000000
3362−07F01C00000007F01C00000003F83800000003F83800000003FC7800000001FC70000000
3363−01FC7000000001FEF000000000FEE000000000FEE0000000007FC0000000007FC0000000
3364−007FC0000000003F80000000003F80000000001F00000000001F00000000001F00000000
3365−000E0000002B287EA630>I<FFFFC3FFFE03FFF8FFFFC3FFFE03FFF8FFFFC3FFFE03FFF8
3366−0FFE003FE000FFC007FC001FC0003F8003F8001FC0003F0003FC000FC0001E0001FC000F
3367−E0001C0001FC0007E0001C0001FE0007E0003C0000FE000FF000380000FE000FF0003800
3368−007F000FF0007000007F001FF8007000007F001DF8007000003F801DF800E000003F803D
3369−FC00E000003F8038FC00E000001FC038FC01C000001FC078FE01C000001FC0707E03C000
3370−000FE0707F038000000FE0E03F038000000FF0E03F0780000007F0E03F8700000007F1C0
3371−1F8700000007F9C01F8F00000003F9C01FCE00000003FB800FCE00000003FF800FDE0000
3372−0001FF800FFC00000001FF0007FC00000000FF0007F800000000FF0007F800000000FE00
3373−03F8000000007E0003F0000000007E0003F0000000007C0001F0000000003C0001E00000
3374−0000380000E000003D287EA642>I<FFFFF01FFFE0FFFFF01FFFE0FFFFF01FFFE003FFC0
3375−0FFF0000FF8007F800007F0007E000007F8007C000003FC0078000001FC00F0000000FE0
3376−0E0000000FF01E00000007F83C00000003F87800000001FCF000000001FEE000000000FF
3377−E0000000007FC0000000003F80000000003FC0000000001FC0000000001FE0000000003F
3378−F0000000003FF8000000007BF800000000F1FC00000001E1FE00000001C0FF00000003C0
3379−7F00000007803F8000000F003FC000001E001FE000003E000FE000007C0007F00000FC00
3380−07F80001FE0007FC000FFE000FFE00FFFF803FFFF8FFFF803FFFF8FFFF803FFFF82D277F
3381−A630>I<FFFFE00FFFE0FFFFE00FFFE0FFFFE00FFFE007FE0003FF0003FC0001FC0003FC
3382−0000F80001FC0000F00001FE0000F00000FE0000E00000FE0000E000007F0001C000007F
3383−0001C000007F8003C000003F80038000003F80038000001FC0070000001FC0070000001F
3384−E00F0000000FE00E0000000FE00E00000007F01C00000007F01C00000007F83C00000003
3385−F83800000003F83800000001FC7000000001FC7000000001FEF000000000FEE000000000
3386−FEE0000000007FC0000000007FC0000000007FC0000000003F80000000003F8000000000
3387−3F80000000001F00000000001F00000000000E00000000000E00000000001E0000000000
3388−1C00000000003C0000000000380000000000380000000000780000001800700000007E00
3389−70000000FF00E0000000FF00E0000000FF01C0000000FF01C0000000FE03800000007E07
3390−00000000780E000000003C3C000000001FF80000000007E0000000002B3A7EA630>I<1F
3391−FFFFFF801FFFFFFF801FE000FF801F8000FF001F0001FE001E0003FC001C0003FC001C00
3392−07F8003C000FF0003C001FF00038001FE00038003FC00038007FC00038007F80003800FF
3393−00000001FE00000001FE00000003FC00000007F80000000FF80000000FF00000001FE000
3394−00003FC00380003FC00380007F80038000FF00038001FF00038001FE00038003FC000780
3395−07FC00078007F80007000FF00007001FE0000F001FE0000F003FC0001F007F80007F00FF
3396−8001FF00FFFFFFFF00FFFFFFFF0021277EA628>I<FFFFFFFFFFFFFFFFFFFFFFC0FFFFFF
3397−FFFFFFFFFFFFFFFFC05A0280985B>124 D E /Fq 45 122 df<00000000FFFC00000000
3398−00001FFFFF800000000001FFFFFFE00000000007FFFFFFF0000000001FFFC00FF8000000
3399−007FFE0003FC00000000FFF00000FE00000001FFE00003FF00000003FF800007FF000000
3400−07FF00000FFF8000000FFE00001FFF8000000FFE00001FFF8000001FFC00001FFF800000
3401−1FFC00003FFFC000003FFC00001FFF8000003FF800001FFF8000003FF800001FFF800000
3402−3FF800001FFF8000003FF800000FFF0000003FF8000007FE0000003FF8000001F8000000
3403−3FF8000000000000003FF8000000000000003FF8000000000000003FF800000000000000
3404−3FF8000000000000003FF8000000000000003FF8000000000000003FF800000000000000
3405−3FF8000000000000003FF80003FFFFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FF
3406−FFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000003FFC000007FFC00000
3407−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3408−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3409−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3410−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3411−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3412−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3413−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3414−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3415−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3416−3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000
3417−3FFC000003FFC000003FFC000003FFC0003FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03F
3418−FFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC042547DD34B>12
3419−D<FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0
3420−FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0240B7F9F2D>45
3421−D<000000780000000000FC0000000003FC0000000007FC000000001FFC00000000FFFC00
3422−00000FFFFC000007FFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFF7FFC0000FFF07FFC00
3423−00F8007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3424−0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3425−0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3426−0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3427−0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3428−0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3429−0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3430−0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3431−0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3432−0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00
3433−0000007FFC00007FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFF
3434−FE2F4E76CD43>49 D<00003FFE0000000003FFFFE00000000FFFFFFC0000003FFFFFFF00
3435−0000FFFFFFFFC00001FFC07FFFE00003FE000FFFF80007F80003FFFC000FE00001FFFE00
3436−1FC00000FFFF003F8000007FFF003FF000007FFF807FF800003FFFC07FFC00003FFFC0FF
3437−FE00001FFFE0FFFF00001FFFE0FFFF00001FFFE0FFFF00000FFFF0FFFF00000FFFF0FFFF
3438−00000FFFF0FFFF00000FFFF0FFFF00000FFFF07FFE00000FFFF07FFE00000FFFF03FFC00
3439−000FFFF00FF000000FFFF003C000000FFFF0000000000FFFE0000000001FFFE000000000
3440−1FFFE0000000001FFFC0000000003FFFC0000000003FFF80000000003FFF80000000007F
3441−FF00000000007FFE0000000000FFFC0000000001FFF80000000001FFF00000000003FFE0
3442−0000000003FFC00000000007FF80000000000FFF00000000001FFE00000000001FFC0000
3443−0000003FF800000000007FE00000000000FFC00000000001FF800000000003FE00000000
3444−0007FC000000000007F800000000000FF00001F000001FE00001F000003F800001F00000
3445−7F000001F00000FE000003E00001FC000003E00003F8000003E00007F0000003E0000FE0
3446−000003E0001F80000007E0003F00000007E0003E0000000FE0007FFFFFFFFFE000FFFFFF
3447−FFFFC001FFFFFFFFFFC003FFFFFFFFFFC007FFFFFFFFFFC00FFFFFFFFFFFC01FFFFFFFFF
3448−FFC03FFFFFFFFFFFC07FFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFF80FFFFFFFFFFFF
3449−80FFFFFFFFFFFF80FFFFFFFFFFFF80344E79CD43>I<00000FFFC000000000FFFFFC0000
3450−0007FFFFFF8000001FFFFFFFE000003FF807FFF00000FF8001FFFC0001FE00007FFE0003
3451−F800003FFF0003F000003FFF8007FC00001FFF800FFF00001FFFC00FFF80001FFFC01FFF
3452−C0001FFFE01FFFC0001FFFE01FFFC0001FFFE01FFFC0001FFFE01FFFE0001FFFE01FFFC0
3453−001FFFE01FFFC0001FFFE01FFFC0001FFFE00FFFC0001FFFC007FF80001FFFC003FF0000
3454−3FFFC001FC00003FFF80000000003FFF80000000007FFF00000000007FFE00000000007F
3455−FE0000000000FFFC0000000001FFF80000000003FFF00000000007FFC0000000000FFF80
3456−00000000FFFE00000000FFFFF800000000FFFFE000000000FFFFFC00000000FFFFFF8000
3457−00000007FFE00000000001FFF800000000007FFE00000000003FFF00000000001FFF8000
3458−0000000FFFC0000000000FFFE00000000007FFF00000000007FFF00000000007FFF80000
3459−000007FFF80000000003FFFC0000000003FFFC0000000003FFFE0000000003FFFE03E000
3460−0003FFFE0FF8000003FFFE1FFC000003FFFE3FFE000003FFFE7FFF000003FFFEFFFF8000
3461−03FFFEFFFF800003FFFEFFFF800003FFFEFFFF800003FFFCFFFF800003FFFCFFFF800007
3462−FFFCFFFF800007FFF8FFFF000007FFF87FFF000007FFF07FFE00000FFFF03FFC00000FFF
3463−E03FF000001FFFC01FE000003FFF800FF800007FFF0007FF0000FFFE0003FFF007FFFC00
3464−00FFFFFFFFF000007FFFFFFFE000001FFFFFFF80000003FFFFFC000000001FFF80000037
3465−4F7ACD43>I<00000000007C00000000000000FE00000000000000FE00000000000001FE
3466−00000000000003FE00000000000007FE0000000000000FFE0000000000000FFE00000000
3467−00001FFE0000000000003FFE0000000000007FFE0000000000007FFE000000000000FFFE
3468−000000000001FFFE000000000003FFFE000000000003FFFE000000000007FFFE00000000
3469−000FFFFE00000000001FBFFE00000000003F3FFE00000000003E3FFE00000000007C3FFE
3470−0000000000FC3FFE0000000001F83FFE0000000001F03FFE0000000003E03FFE00000000
3471−07E03FFE000000000FC03FFE000000000F803FFE000000001F003FFE000000003F003FFE
3472−000000007E003FFE000000007C003FFE00000000F8003FFE00000001F8003FFE00000003
3473−F0003FFE00000007E0003FFE00000007C0003FFE0000000F80003FFE0000001F80003FFE
3474−0000003F00003FFE0000003E00003FFE0000007C00003FFE000000FC00003FFE000001F8
3475−00003FFE000001F000003FFE000003E000003FFE000007E000003FFE00000FC000003FFE
3476−00001F8000003FFE00001F0000003FFE00003E0000003FFE00007E0000003FFE0000FC00
3477−00003FFE0000FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFF
3478−FFC0FFFFFFFFFFFFFFC0000000007FFE0000000000007FFE0000000000007FFE00000000
3479−00007FFE0000000000007FFE0000000000007FFE0000000000007FFE0000000000007FFE
3480−0000000000007FFE0000000000007FFE0000000000007FFE0000000000007FFE00000000
3481−00007FFE0000000000007FFE0000000000007FFE000000000FFFFFFFFFC000000FFFFFFF
3482−FFC000000FFFFFFFFFC000000FFFFFFFFFC000000FFFFFFFFFC03A4F7CCE43>I<038000
3483−00000E0007E00000007E0007FE000003FE0007FFF0007FFE0007FFFFFFFFFC0007FFFFFF
3484−FFF80007FFFFFFFFF00007FFFFFFFFE00007FFFFFFFFC00007FFFFFFFF800007FFFFFFFF
3485−000007FFFFFFFE000007FFFFFFFC000007FFFFFFF0000007FFFFFFC0000007FFFFFF0000
3486−0007FFFFF800000007E1FF0000000007E0000000000007E0000000000007E00000000000
3487−07E0000000000007E0000000000007E0000000000007E0000000000007E0000000000007
3488−E0000000000007E0000000000007E0000000000007E00FFF00000007E07FFFF0000007E3
3489−FFFFFE000007E7FFFFFF800007FFF807FFC00007FFC001FFE00007FE0000FFF80007FC00
3490−007FFC0007F800003FFC0007F000003FFE0007E000001FFF0003C000001FFF8000000000
3491−1FFF80000000001FFFC0000000000FFFC0000000000FFFE0000000000FFFE0000000000F
3492−FFE0000000000FFFE0000000000FFFF0000000000FFFF0000000000FFFF00FE000000FFF
3493−F01FF000000FFFF03FF800000FFFF07FFC00000FFFF0FFFE00000FFFF0FFFE00000FFFF0
3494−FFFE00000FFFF0FFFE00000FFFF0FFFE00000FFFE0FFFE00000FFFE0FFFE00000FFFE0FF
3495−FC00000FFFE07FF800001FFFC07FF000001FFFC07FE000001FFF803E0000003FFF803F00
3496−00003FFF001F8000007FFE001FC000007FFC000FE00000FFF80007F80001FFF00003FE00
3497−07FFE00001FFC03FFFC00000FFFFFFFF8000003FFFFFFE0000001FFFFFF800000003FFFF
3498−C0000000007FF8000000344F79CD43>I<0000000FFF0000000000FFFFE000000007FFFF
3499−F00000001FFFFFFC0000007FFE03FE000001FFF0007F000003FFC0003F800007FF00001F
3500−80000FFE00007FC0001FFC0000FFC0003FF80001FFE0007FF00003FFE000FFF00007FFE0
3501−01FFE00007FFE001FFE00007FFE003FFC00007FFE007FFC00007FFE007FFC00007FFE00F
3502−FFC00003FFC00FFF800001FF801FFF800000FF001FFF8000007E001FFF80000000003FFF
3503−80000000003FFF80000000003FFF00000000007FFF00000000007FFF00000000007FFF00
3504−080000007FFF01FFF800007FFF07FFFF0000FFFF0FFFFFC000FFFF1FFFFFF000FFFF3F00
3505−7FF800FFFF3C003FFC00FFFF78001FFE00FFFFF0000FFF00FFFFF00007FF80FFFFE00007
3506−FFC0FFFFE00007FFC0FFFFC00007FFE0FFFFC00003FFF0FFFF800003FFF0FFFF800003FF
3507−F8FFFF800003FFF8FFFF800003FFF8FFFF800003FFF8FFFF000003FFFCFFFF000003FFFC
3508−FFFF000003FFFC7FFF000003FFFC7FFF000003FFFC7FFF000003FFFC7FFF000003FFFC7F
3509−FF000003FFFC7FFF000003FFFC3FFF000003FFFC3FFF000003FFFC3FFF000003FFFC3FFF
3510−000003FFFC1FFF000003FFF81FFF800003FFF81FFF800003FFF80FFF800003FFF80FFF80
3511−0003FFF007FF800007FFF007FF800007FFE003FFC00007FFC001FFC00007FFC001FFE000
3512−0FFF8000FFF0000FFF00007FF8001FFE00003FFC007FFC00001FFF01FFF800000FFFFFFF
3513−F0000003FFFFFFC0000000FFFFFF000000003FFFFC0000000007FFC00000364F7ACD43>
3514−I<1F000000000000001F800000000000001FC00000000000001FFF8000000000001FFFFF
3515−FFFFFFFF801FFFFFFFFFFFFF801FFFFFFFFFFFFF801FFFFFFFFFFFFF803FFFFFFFFFFFFF
3516−803FFFFFFFFFFFFF003FFFFFFFFFFFFE003FFFFFFFFFFFFC003FFFFFFFFFFFF8003FFFFF
3517−FFFFFFF8003FFFFFFFFFFFF0003FFFFFFFFFFFE0003FFFFFFFFFFFC0007FFFFFFFFFFF80
3518−007F800000007F00007E00000000FF00007E00000001FE00007C00000003FC00007C0000
3519−0003F800007C00000007F000007C0000000FF000007C0000001FE00000F80000003FC000
3520−00F80000007F800000F80000007F000000F8000000FE00000000000001FE000000000000
3521−03FC00000000000003F800000000000007F00000000000000FF00000000000001FE00000
3522−000000001FE00000000000003FC00000000000003FC00000000000007F80000000000000
3523−FF80000000000000FF80000000000001FF00000000000001FF00000000000003FF000000
3524−00000003FE00000000000007FE00000000000007FE0000000000000FFE0000000000000F
3525−FE0000000000000FFC0000000000001FFC0000000000001FFC0000000000003FFC000000
3526−0000003FFC0000000000003FFC0000000000003FFC0000000000007FFC0000000000007F
3527−F80000000000007FF80000000000007FF8000000000000FFF8000000000000FFF8000000
3528−000000FFF8000000000000FFF8000000000000FFF8000000000001FFF8000000000001FF
3529−F8000000000001FFF8000000000001FFF8000000000001FFF8000000000001FFF8000000
3530−000001FFF8000000000001FFF8000000000001FFF8000000000001FFF8000000000001FF
3531−F8000000000001FFF8000000000000FFF0000000000000FFF00000000000003FC0000000
3532−0000001F8000000000395279D043>I<000007FFC0000000007FFFFC00000003FFFFFF80
3533−00000FFFFFFFE000001FFC01FFF800003FE0003FFC00007F80000FFE0000FF000007FF00
3534−01FE000003FF0003FC000001FF8007FC000001FFC007F8000000FFC00FF8000000FFC00F
3535−F8000000FFE00FF80000007FE00FF80000007FE01FF80000007FE01FFC0000007FE01FFC
3536−0000007FE01FFE0000007FE01FFF0000007FE01FFF800000FFE01FFFE00000FFC01FFFF8
3537−0000FFC01FFFFE0001FF800FFFFF0001FF800FFFFFC003FF000FFFFFF007FE0007FFFFF8
3538−07FC0007FFFFFE1FF80003FFFFFFBFF00001FFFFFFFFE00001FFFFFFFF800000FFFFFFFE
3539−0000007FFFFFFF0000003FFFFFFF8000000FFFFFFFE0000007FFFFFFF0000001FFFFFFFC
3540−000007FFFFFFFE00001FFFFFFFFF00003FFFFFFFFF8000FFE7FFFFFF8001FF81FFFFFFC0
3541−03FF007FFFFFE007FE001FFFFFF00FFC000FFFFFF01FF80003FFFFF01FF80000FFFFF83F
3542−F000007FFFF83FF000001FFFF87FE0000007FFFC7FE0000001FFFC7FE0000000FFFCFFC0
3543−0000007FFCFFC00000003FFCFFC00000003FFCFFC00000001FFCFFC00000001FFCFFC000
3544−00000FFCFFC00000000FFCFFC00000000FF8FFC00000000FF8FFE00000000FF87FE00000
3545−000FF07FF00000001FF07FF00000001FF03FF80000003FE01FF80000003FC01FFC000000
3546−7FC00FFE000000FF8007FF800003FF0003FFE0000FFE0001FFFC00FFFC00007FFFFFFFF0
3547−00003FFFFFFFE000000FFFFFFF80000001FFFFFC000000000FFFC00000364F7ACD43>I<
3548−00000FFF8000000000FFFFF800000003FFFFFE0000000FFFFFFF8000001FFF03FFC00000
3549−7FF800FFE00000FFF0003FF00001FFE0001FF80003FFC0001FFC0007FFC0000FFE000FFF
3550−80000FFF000FFF800007FF001FFF800007FF803FFF800007FF803FFF000007FFC07FFF00
3551−0007FFC07FFF000003FFE07FFF000003FFE07FFF000003FFF0FFFF000003FFF0FFFF0000
3552−03FFF0FFFF000003FFF0FFFF000003FFF8FFFF000003FFF8FFFF000003FFF8FFFF000003
3553−FFF8FFFF000003FFF8FFFF000003FFF8FFFF000003FFFCFFFF000003FFFCFFFF000003FF
3554−FCFFFF000003FFFC7FFF000007FFFC7FFF000007FFFC7FFF000007FFFC3FFF000007FFFC
3555−3FFF000007FFFC3FFF00000FFFFC1FFF80000FFFFC0FFF80001FFFFC0FFF80001FFFFC07
3556−FF80003FFFFC03FFC0003FFFFC01FFE0007BFFFC00FFF000F3FFFC007FF803F3FFFC001F
3557−FFFFE3FFFC000FFFFFC3FFFC0003FFFF83FFF800007FFE03FFF80000004003FFF8000000
3558−0003FFF80000000003FFF80000000003FFF00000000007FFF00000000007FFF000000000
3559−07FFF001F8000007FFE003FC000007FFE007FE000007FFC00FFF000007FFC01FFF80000F
3560−FF801FFF80000FFF801FFF80000FFF001FFF80001FFF001FFF80001FFE001FFF80003FFC
3561−001FFF00003FFC000FFE00007FF8000FFC0000FFF0000FF80001FFE00007F00003FFC000
3562−03FC000FFF800003FF807FFE000001FFFFFFFC0000007FFFFFF00000003FFFFFC0000000
3563−0FFFFE0000000000FFF0000000364F7ACD43>I<00000000001F00000000000000000000
3564−003F80000000000000000000007FC0000000000000000000007FC0000000000000000000
3565−00FFE000000000000000000000FFE000000000000000000000FFE0000000000000000000
3566−01FFF000000000000000000001FFF000000000000000000003FFF8000000000000000000
3567−03FFF800000000000000000003FFF800000000000000000007FFFC000000000000000000
3568−07FFFC00000000000000000007FFFC0000000000000000000FFFFE000000000000000000
3569−0FFFFE0000000000000000001FFFFF0000000000000000001FFFFF000000000000000000
3570−1FFFFF0000000000000000003FFFFF8000000000000000003F7FFF800000000000000000
3571−7F7FFFC000000000000000007E7FFFC000000000000000007E3FFFC00000000000000000
3572−FE3FFFE00000000000000000FC1FFFE00000000000000001FC1FFFF00000000000000001
3573−F81FFFF00000000000000001F80FFFF00000000000000003F80FFFF80000000000000003
3574−F007FFF80000000000000007F007FFFC0000000000000007E007FFFC0000000000000007
3575−E003FFFC000000000000000FE003FFFE000000000000000FC001FFFE000000000000001F
3576−C001FFFF000000000000001F8001FFFF000000000000001F8000FFFF000000000000003F
3577−8000FFFF800000000000003F00007FFF800000000000007F00007FFFC00000000000007E
3578−00007FFFC00000000000007E00003FFFC0000000000000FE00003FFFE0000000000000FC
3579−00001FFFE0000000000001FC00001FFFF0000000000001F800001FFFF0000000000001F8
3580−00000FFFF0000000000003F800000FFFF8000000000003F0000007FFF8000000000007F0
3581−000007FFFC000000000007E0000007FFFC000000000007E0000003FFFC00000000000FFF
3582−FFFFFFFFFE00000000000FFFFFFFFFFFFE00000000001FFFFFFFFFFFFF00000000001FFF
3583−FFFFFFFFFF00000000001FFFFFFFFFFFFF00000000003F80000000FFFF80000000003F00
3584−0000007FFF80000000007F000000007FFFC0000000007F000000007FFFC0000000007E00
3585−0000003FFFC000000000FE000000003FFFE000000000FC000000001FFFE000000001FC00
3586−0000001FFFF000000001FC000000001FFFF000000001F8000000000FFFF000000003F800
3587−0000000FFFF800000003F00000000007FFF800000007F00000000007FFFC00000007F000
3588−00000007FFFC00000007E00000000003FFFC0000000FE00000000003FFFE0000000FC000
3589−00000003FFFE0000001FC00000000001FFFF000000FFFC0000000001FFFF0000FFFFFFF8
3590−00000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE0FFFFFFF8
3591−00000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE05B547BD366>65
3592−D<0000000001FFFC000001C0000000007FFFFFC00003C000000007FFFFFFF80007C00000
3593−003FFFFFFFFE001FC0000000FFFFFFFFFF803FC0000003FFFFE003FFC07FC000000FFFFC
3594−00003FF0FFC000003FFFE000000FF9FFC000007FFF80000003FFFFC00001FFFE00000000
3595−FFFFC00003FFF8000000007FFFC00007FFF0000000003FFFC0000FFFE0000000001FFFC0
3596−001FFFC0000000000FFFC0003FFF800000000007FFC0007FFF000000000003FFC000FFFE
3597−000000000001FFC000FFFE000000000001FFC001FFFC000000000000FFC003FFF8000000
3598−000000FFC003FFF80000000000007FC007FFF00000000000007FC00FFFF0000000000000
3599−3FC00FFFF00000000000003FC01FFFE00000000000001FC01FFFE00000000000001FC01F
3600−FFE00000000000001FC03FFFC00000000000001FC03FFFC00000000000000FC03FFFC000
3601−00000000000FC07FFFC00000000000000FC07FFFC00000000000000FC07FFFC000000000
3602−000000007FFF8000000000000000007FFF800000000000000000FFFF8000000000000000
3603−00FFFF800000000000000000FFFF800000000000000000FFFF800000000000000000FFFF
3604−800000000000000000FFFF800000000000000000FFFF800000000000000000FFFF800000
3605−000000000000FFFF800000000000000000FFFF800000000000000000FFFF800000000000
3606−000000FFFF800000000000000000FFFF800000000000000000FFFF800000000000000000
3607−7FFF8000000000000000007FFF8000000000000000007FFFC000000000000000007FFFC0
3608−00000000000000007FFFC000000000000007C03FFFC000000000000007C03FFFC0000000
3609−00000007C03FFFC000000000000007C01FFFE000000000000007C01FFFE0000000000000
3610−07C01FFFE00000000000000FC00FFFF00000000000000F800FFFF00000000000000F8007
3611−FFF00000000000001F8003FFF80000000000001F8003FFF80000000000001F0001FFFC00
3612−00000000003F0000FFFE0000000000007E0000FFFE0000000000007E00007FFF00000000
3613−0000FC00003FFF800000000001F800001FFFC00000000003F800000FFFE00000000007F0
3614−000007FFF0000000000FE0000003FFFC000000001FC0000001FFFE000000007F80000000
3615−7FFF80000000FF000000003FFFE0000007FE000000000FFFFE00001FF80000000003FFFF
3616−E001FFF00000000000FFFFFFFFFFC000000000003FFFFFFFFF00000000000007FFFFFFFC
3617−000000000000007FFFFFE00000000000000001FFFC00000000525479D261>67
3618−D<FFFFFFFFFFFFFF8000000000FFFFFFFFFFFFFFFC00000000FFFFFFFFFFFFFFFF800000
3619−00FFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFC0000000007FFF000000FFFFF0000
3620−000007FFF0000000FFFFC000000007FFF00000001FFFE000000007FFF000000007FFF800
3621−000007FFF000000001FFFC00000007FFF000000000FFFE00000007FFF0000000007FFF00
3622−000007FFF0000000003FFF80000007FFF0000000001FFFC0000007FFF0000000000FFFC0
3623−000007FFF00000000007FFE0000007FFF00000000003FFF0000007FFF00000000003FFF8
3624−000007FFF00000000001FFF8000007FFF00000000001FFFC000007FFF00000000000FFFC
3625−000007FFF00000000000FFFE000007FFF00000000000FFFE000007FFF000000000007FFF
3626−000007FFF000000000007FFF000007FFF000000000007FFF000007FFF000000000007FFF
3627−800007FFF000000000003FFF800007FFF000000000003FFF800007FFF000000000003FFF
3628−C00007FFF000000000003FFFC00007FFF000000000003FFFC00007FFF000000000003FFF
3629−C00007FFF000000000003FFFC00007FFF000000000003FFFE00007FFF000000000003FFF
3630−E00007FFF000000000003FFFE00007FFF000000000001FFFE00007FFF000000000001FFF
3631−E00007FFF000000000001FFFE00007FFF000000000001FFFE00007FFF000000000001FFF
3632−E00007FFF000000000001FFFE00007FFF000000000001FFFE00007FFF000000000001FFF
3633−E00007FFF000000000001FFFE00007FFF000000000003FFFE00007FFF000000000003FFF
3634−E00007FFF000000000003FFFE00007FFF000000000003FFFC00007FFF000000000003FFF
3635−C00007FFF000000000003FFFC00007FFF000000000003FFFC00007FFF000000000003FFF
3636−C00007FFF000000000003FFF800007FFF000000000003FFF800007FFF000000000007FFF
3637−800007FFF000000000007FFF000007FFF000000000007FFF000007FFF000000000007FFF
3638−000007FFF00000000000FFFE000007FFF00000000000FFFE000007FFF00000000000FFFC
3639−000007FFF00000000001FFFC000007FFF00000000001FFF8000007FFF00000000003FFF0
3640−000007FFF00000000007FFF0000007FFF00000000007FFE0000007FFF0000000000FFFC0
3641−000007FFF0000000001FFF80000007FFF0000000003FFF00000007FFF000000000FFFE00
3642−000007FFF000000001FFFC00000007FFF000000007FFF800000007FFF00000001FFFF000
3643−000007FFF0000000FFFFC000000007FFF000000FFFFF000000FFFFFFFFFFFFFFFFFE0000
3644−00FFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFC0000000FFFFFFFFFFFFFFFC000000
3645−00FFFFFFFFFFFFFF80000000005B527CD167>I<FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFF
3646−FFFFFF80FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFF800007
3647−FFF8000001FFFFC00007FFF80000001FFFC00007FFF800000007FFC00007FFF800000001
3648−FFC00007FFF800000000FFC00007FFF8000000007FC00007FFF8000000003FC00007FFF8
3649−000000001FC00007FFF8000000001FC00007FFF8000000000FE00007FFF8000000000FE0
3650−0007FFF80000000007E00007FFF80000000007E00007FFF80000000007E00007FFF80000
3651−000003E00007FFF80000000003E00007FFF80000000003E00007FFF80000F80003E00007
3652−FFF80000F80003F00007FFF80000F80001F00007FFF80000F80001F00007FFF80000F800
3653−01F00007FFF80000F80001F00007FFF80000F80000000007FFF80001F80000000007FFF8
3654−0001F80000000007FFF80001F80000000007FFF80003F80000000007FFF80007F8000000
3655−0007FFF8000FF80000000007FFF8007FF80000000007FFFFFFFFF80000000007FFFFFFFF
3656−F80000000007FFFFFFFFF80000000007FFFFFFFFF80000000007FFFFFFFFF80000000007
3657−FFF8007FF80000000007FFF8000FF80000000007FFF80007F80000000007FFF80003F800
3658−00000007FFF80001F80000000007FFF80001F80000000007FFF80001F80000000007FFF8
3659−0000F80000000007FFF80000F800003E0007FFF80000F800003E0007FFF80000F800003E
3660−0007FFF80000F800007C0007FFF80000F800007C0007FFF80000F800007C0007FFF80000
3661−0000007C0007FFF800000000007C0007FFF80000000000FC0007FFF80000000000FC0007
3662−FFF80000000000F80007FFF80000000000F80007FFF80000000001F80007FFF800000000
3663−01F80007FFF80000000001F80007FFF80000000003F80007FFF80000000003F00007FFF8
3664−0000000007F00007FFF8000000000FF00007FFF8000000000FF00007FFF8000000001FF0
3665−0007FFF8000000003FF00007FFF8000000007FE00007FFF800000001FFE00007FFF80000
3666−0007FFE00007FFF80000001FFFE00007FFF8000003FFFFE0FFFFFFFFFFFFFFFFFFE0FFFF
3667−FFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFF
3668−FFC04F517CD058>I<FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFF
3669−FFFE00FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFFFE000007FFF8000007FFFF000007FF
3670−F80000007FFF000007FFF80000001FFF000007FFF800000007FF000007FFF800000003FF
3671−000007FFF800000001FF000007FFF800000000FF000007FFF8000000007F000007FFF800
3672−0000003F000007FFF8000000003F800007FFF8000000003F800007FFF8000000001F8000
3673−07FFF8000000001F800007FFF8000000001F800007FFF8000000000F800007FFF8000000
3674−000F800007FFF8000000000F800007FFF8000000000F800007FFF8000000000FC00007FF
3675−F80000F80007C00007FFF80000F80007C00007FFF80000F80007C00007FFF80000F80007
3676−C00007FFF80000F80000000007FFF80000F80000000007FFF80000F80000000007FFF800
3677−01F80000000007FFF80001F80000000007FFF80001F80000000007FFF80003F800000000
3678−07FFF80007F80000000007FFF8000FF80000000007FFF8007FF80000000007FFFFFFFFF8
3679−0000000007FFFFFFFFF80000000007FFFFFFFFF80000000007FFFFFFFFF80000000007FF
3680−FFFFFFF80000000007FFF8007FF80000000007FFF8000FF80000000007FFF80007F80000
3681−000007FFF80003F80000000007FFF80001F80000000007FFF80001F80000000007FFF800
3682−01F80000000007FFF80000F80000000007FFF80000F80000000007FFF80000F800000000
3683−07FFF80000F80000000007FFF80000F80000000007FFF80000F80000000007FFF80000F8
3684−0000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FF
3685−F80000000000000007FFF80000000000000007FFF80000000000000007FFF80000000000
3686−000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800
3687−00000000000007FFF80000000000000007FFF80000000000000007FFF800000000000000
3688−07FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8000000
3689−0000000007FFF8000000000000FFFFFFFFFFF800000000FFFFFFFFFFF800000000FFFFFF
3690−FFFFF800000000FFFFFFFFFFF800000000FFFFFFFFFFF8000000004A517CD055>I<FFFF
3691−FFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC00007FFF800000007
3692−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3693−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3694−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3695−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3696−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3697−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3698−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3699−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3700−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3701−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3702−FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007
3703−FFF800000007FFF800000007FFF800000007FFF800000007FFF80000FFFFFFFFFFC0FFFF
3704−FFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC02A527CD132>73
3705−D<FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF80000
3706−00FFFFFFFFFFF80000000007FFF800000000000007FFF800000000000007FFF800000000
3707−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3708−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3709−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3710−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3711−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3712−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3713−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3714−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3715−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3716−000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000
3717−000007FFF800000000000007FFF800000000000007FFF8000000007C0007FFF800000000
3718−7C0007FFF8000000007C0007FFF8000000007C0007FFF800000000FC0007FFF800000000
3719−F80007FFF800000000F80007FFF800000000F80007FFF800000000F80007FFF800000000
3720−F80007FFF800000001F80007FFF800000001F80007FFF800000001F80007FFF800000003
3721−F80007FFF800000003F80007FFF800000007F80007FFF800000007F00007FFF80000000F
3722−F00007FFF80000000FF00007FFF80000001FF00007FFF80000003FF00007FFF80000007F
3723−F00007FFF8000000FFF00007FFF8000003FFF00007FFF8000007FFF00007FFF800003FFF
3724−F00007FFF80001FFFFF0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFF
3725−E0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFE046527CD151>76 D<FFFFFFFFFFFFFF0000
3726−00FFFFFFFFFFFFFFF80000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFE000FFFFFFFFFF
3727−FFFFFFF0000007FFF000001FFFFC000007FFF0000001FFFF000007FFF00000007FFF8000
3728−07FFF00000003FFFC00007FFF00000000FFFE00007FFF00000000FFFF00007FFF0000000
3729−07FFF00007FFF000000003FFF80007FFF000000003FFFC0007FFF000000003FFFC0007FF
3730−F000000001FFFE0007FFF000000001FFFE0007FFF000000001FFFE0007FFF000000001FF
3731−FE0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000
3732−000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF00
3733−07FFF000000001FFFF0007FFF000000001FFFE0007FFF000000001FFFE0007FFF0000000
3734−01FFFE0007FFF000000001FFFC0007FFF000000003FFFC0007FFF000000003FFFC0007FF
3735−F000000003FFF80007FFF000000007FFF00007FFF00000000FFFE00007FFF00000001FFF
3736−E00007FFF00000003FFFC00007FFF00000007FFF000007FFF0000001FFFE000007FFF000
3737−001FFFFC000007FFFFFFFFFFFFF0000007FFFFFFFFFFFFC0000007FFFFFFFFFFFE000000
3738−07FFFFFFFFFFE000000007FFF80000000000000007FFF80000000000000007FFF8000000
3739−0000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FF
3740−F80000000000000007FFF80000000000000007FFF80000000000000007FFF80000000000
3741−000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800
3742−00000000000007FFF80000000000000007FFF80000000000000007FFF800000000000000
3743−07FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8000000
3744−0000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FF
3745−F80000000000000007FFF80000000000000007FFF80000000000000007FFF80000000000
3746−000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800
3747−0000000000FFFFFFFFFFC000000000FFFFFFFFFFC000000000FFFFFFFFFFC000000000FF
3748−FFFFFFFFC000000000FFFFFFFFFFC00000000050527CD15C>80 D<00000FFF8000070000
3749−00FFFFF8000F000007FFFFFF001F00001FFFFFFFC03F00003FFFFFFFF07F0000FFFC00FF
3750−F8FF0001FFE0000FFDFF0003FF800001FFFF0007FE0000007FFF000FFC0000003FFF000F
3751−F80000000FFF001FF800000007FF001FF000000003FF003FF000000003FF003FE0000000
3752−01FF007FE000000000FF007FE000000000FF007FE0000000007F00FFE0000000007F00FF
3753−E0000000003F00FFE0000000003F00FFF0000000003F00FFF0000000003F00FFF8000000
3754−001F00FFF8000000001F00FFFC000000001F00FFFE000000001F00FFFF000000000000FF
3755−FFC000000000007FFFF000000000007FFFFF00000000007FFFFFF8000000003FFFFFFF80
3756−0000003FFFFFFFFC0000001FFFFFFFFFC000001FFFFFFFFFF000000FFFFFFFFFFC000007
3757−FFFFFFFFFF000003FFFFFFFFFFC00001FFFFFFFFFFE00000FFFFFFFFFFF000007FFFFFFF
3758−FFF800003FFFFFFFFFFC00000FFFFFFFFFFE000003FFFFFFFFFE000000FFFFFFFFFF0000
3759−001FFFFFFFFF80000000FFFFFFFF800000000FFFFFFFC0000000007FFFFFC00000000007
3760−FFFFE00000000000FFFFE000000000003FFFE000000000000FFFF0000000000007FFF000
3761−0000000003FFF0000000000003FFF0780000000001FFF0F80000000000FFF0F800000000
3762−00FFF0F80000000000FFF0F800000000007FF0F800000000007FF0FC00000000007FF0FC
3763−00000000007FF0FC00000000007FE0FE00000000007FE0FE00000000007FE0FF00000000
3764−00FFC0FF0000000000FFC0FF8000000000FFC0FFC000000001FF80FFE000000001FF00FF
3765−F000000003FF00FFFC00000007FE00FFFF0000000FFC00FFFFC000001FF800FFFFF80000
3766−7FF000FF1FFFC003FFE000FE0FFFFFFFFFC000FC03FFFFFFFF0000F8007FFFFFFC0000F0
3767−000FFFFFF00000E000007FFF0000003C5479D24B>83 D<3FFFFFFFFFFFFFFFFFFF803FFF
3768−FFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFF803FFFFFFFFF
3769−FFFFFFFFFF803FFFC0003FFFC0007FFF803FFE00003FFFC00007FF807FF800003FFFC000
3770−01FFC07FE000003FFFC00000FFC07FC000003FFFC000007FC07F8000003FFFC000003FC0
3771−7F0000003FFFC000001FC07F0000003FFFC000001FC07E0000003FFFC000000FC07E0000
3772−003FFFC000000FC07E0000003FFFC000000FC07C0000003FFFC0000007C07C0000003FFF
3773−C0000007C07C0000003FFFC0000007C07C0000003FFFC0000007C07C0000003FFFC00000
3774−07C0FC0000003FFFC0000007E0F80000003FFFC0000003E0F80000003FFFC0000003E0F8
3775−0000003FFFC0000003E0F80000003FFFC0000003E0F80000003FFFC0000003E0F8000000
3776−3FFFC0000003E0000000003FFFC000000000000000003FFFC000000000000000003FFFC0
3777−00000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000
3778−00000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000000000
3779−00003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003F
3780−FFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC000
3781−000000000000003FFFC000000000000000003FFFC000000000000000003FFFC000000000
3782−000000003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000
3783−003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFF
3784−C000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000
3785−0000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000
3786−0000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000000000
3787−3FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0
3788−00000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000
3789−00000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000000000
3790−00003FFFC000000000000000003FFFC000000000000000003FFFC0000000000000FFFFFF
3791−FFFFFFF000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFF
3792−F000000000FFFFFFFFFFFFF0000053517BD05E>I<FFFFFFFFFE0000001FFFFFFEFFFFFF
3793−FFFE0000001FFFFFFEFFFFFFFFFE0000001FFFFFFEFFFFFFFFFE0000001FFFFFFEFFFFFF
3794−FFFE0000001FFFFFFE001FFFF000000000003FFE00001FFFF0000000000007F000000FFF
3795−F0000000000007E000000FFFF800000000000FE0000007FFF800000000000FC0000007FF
3796−FC00000000000FC0000007FFFC00000000001FC0000003FFFE00000000001F80000003FF
3797−FE00000000003F80000001FFFE00000000003F00000001FFFF00000000007F00000000FF
3798−FF00000000007E00000000FFFF80000000007E00000000FFFF8000000000FE000000007F
3799−FFC000000000FC000000007FFFC000000001FC000000003FFFE000000001F8000000003F
3800−FFE000000003F8000000001FFFE000000003F0000000001FFFF000000007F0000000001F
3801−FFF000000007F0000000000FFFF800000007E0000000000FFFF80000000FE00000000007
3802−FFFC0000000FC00000000007FFFC0000001FC00000000003FFFC0000001F800000000003
3803−FFFE0000003F800000000003FFFE0000003F800000000001FFFF0000003F000000000001
3804−FFFF0000007F000000000000FFFF8000007E000000000000FFFF800000FE000000000000
3805−7FFF800000FC0000000000007FFFC00001FC0000000000007FFFC00001FC000000000000
3806−3FFFE00001F80000000000003FFFE00003F80000000000001FFFF00003F0000000000000
3807−1FFFF00007F00000000000000FFFF00007E00000000000000FFFF8000FE0000000000000
3808−0FFFF8000FE000000000000007FFFC000FC000000000000007FFFC001FC0000000000000
3809−03FFFE001F8000000000000003FFFE003F8000000000000001FFFE003F00000000000000
3810−01FFFF007F0000000000000001FFFF007F0000000000000000FFFF807E00000000000000
3811−00FFFF80FE00000000000000007FFFC0FC00000000000000007FFFC1FC00000000000000
3812−003FFFC1F800000000000000003FFFE3F800000000000000001FFFE3F000000000000000
3813−001FFFF3F000000000000000001FFFF7F000000000000000000FFFFFE000000000000000
3814−000FFFFFE0000000000000000007FFFFC0000000000000000007FFFFC000000000000000
3815−0003FFFF80000000000000000003FFFF80000000000000000003FFFF8000000000000000
3816−0001FFFF00000000000000000001FFFF00000000000000000000FFFE0000000000000000
3817−0000FFFE000000000000000000007FFC000000000000000000007FFC0000000000000000
3818−00007FFC000000000000000000003FF8000000000000000000003FF80000000000000000
3819−00001FF0000000000000000000001FF0000000000000000000000FE00000000000000000
3820−000007C000000000005F537DD166>86 D<00007FFF000000000007FFFFF0000000003FFF
3821−FFFE00000000FFFFFFFF80000001FFE00FFFC0000003FE0001FFF0000007FF0000FFF800
3822−0007FF80003FFC00000FFF80003FFE00000FFFC0001FFE00000FFFC0001FFF00000FFFC0
3823−000FFF80000FFFC0000FFF80000FFFC0000FFF800007FF800007FFC00007FF800007FFC0
3824−0003FF000007FFC00001FE000007FFC0000000000007FFC0000000000007FFC000000000
3825−0007FFC0000000000007FFC0000000000007FFC0000000000007FFC0000000007FFFFFC0
3826−0000000FFFFFFFC0000000FFFFFFFFC0000007FFFF87FFC000003FFFF007FFC000007FFF
3827−8007FFC00001FFFC0007FFC00003FFF00007FFC00007FFE00007FFC0000FFFC00007FFC0
3828−001FFF800007FFC0003FFF000007FFC0007FFF000007FFC0007FFE000007FFC0007FFE00
3829−0007FFC000FFFC000007FFC000FFFC000007FFC000FFFC000007FFC000FFFC000007FFC0
3830−00FFFC00000FFFC000FFFC00000FFFC000FFFE00001FFFC0007FFE00001DFFC0007FFE00
3831−003DFFC0003FFF000079FFE0001FFF8000F1FFF8000FFFC003E1FFFFE007FFF81FC0FFFF
3832−F003FFFFFF807FFFF000FFFFFF001FFFF0001FFFFC0007FFE00001FFE0000000003C387C
3833−B641>97 D<003FF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF000
3834−0000000000FFFFF0000000000000FFFFF000000000000003FFF000000000000000FFF000
3835−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3836−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3837−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3838−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3839−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3840−000000000000FFF000000000000000FFF001FFE000000000FFF00FFFFE00000000FFF03F
3841−FFFFC0000000FFF0FFFFFFF0000000FFF3FF01FFF8000000FFF7F8003FFE000000FFFFE0
3842−000FFF000000FFFF800007FF800000FFFF000003FFC00000FFFE000001FFE00000FFFC00
3843−0001FFF00000FFF8000000FFF80000FFF8000000FFF80000FFF80000007FFC0000FFF800
3844−00007FFC0000FFF80000007FFE0000FFF80000007FFE0000FFF80000007FFF0000FFF800
3845−00003FFF0000FFF80000003FFF0000FFF80000003FFF0000FFF80000003FFF8000FFF800
3846−00003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF800
3847−00003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF800
3848−00003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF0000FFF800
3849−00003FFF0000FFF80000003FFF0000FFF80000003FFF0000FFF80000007FFE0000FFF800
3850−00007FFE0000FFF80000007FFE0000FFF80000007FFC0000FFF8000000FFFC0000FFF800
3851−0000FFF80000FFFC000001FFF00000FFFC000001FFF00000FFFE000003FFE00000FFFF00
3852−0007FFC00000FFFF80000FFF800000FFCFC0001FFF000000FF87F0007FFC000000FF03FE
3853−03FFF8000000FE00FFFFFFE0000000FC007FFFFF80000000F8001FFFFC00000000000003
3854−FFC000000041547BD24B>I<000001FFF8000000001FFFFF80000000FFFFFFF0000003FF
3855−FFFFFC00000FFFC00FFE00001FFE0001FF00007FFC0003FF8000FFF00007FF8001FFF000
3856−07FFC003FFE0000FFFC003FFC0000FFFC007FFC0000FFFC00FFF80000FFFC00FFF80000F
3857−FFC01FFF800007FF801FFF000007FF803FFF000003FF003FFF000001FE007FFF00000000
3858−007FFE00000000007FFE00000000007FFE0000000000FFFE0000000000FFFE0000000000
3859−FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FF
3860−FE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE
3861−00000000007FFE00000000007FFF00000000007FFF00000000003FFF00000000003FFF00
3862−000000003FFF00000003E01FFF80000003E01FFF80000007E00FFFC0000007C007FFC000
3863−0007C007FFE000000FC003FFE000001F8001FFF000003F0000FFF800007E00007FFE0000
3864−FC00003FFF0003F800000FFFE01FF0000003FFFFFFE0000000FFFFFF800000003FFFFE00
3865−00000001FFE0000033387CB63C>I<000000000001FF80000000000007FFFF8000000000
3866−0007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000000
3867−00001FFF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
3868−000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
3869−000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
3870−000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
3871−000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
3872−000007FF8000000000000007FF8000000000000007FF8000000001FFE007FF800000001F
3873−FFFC07FF80000000FFFFFF07FF80000003FFFFFFC7FF8000000FFFE03FE7FF8000001FFF
3874−0007F7FF8000007FFC0001FFFF800000FFF80000FFFF800001FFF000003FFF800003FFE0
3875−00001FFF800007FFC000001FFF800007FFC000000FFF80000FFF8000000FFF80001FFF80
3876−00000FFF80001FFF0000000FFF80003FFF0000000FFF80003FFF0000000FFF80003FFF00
3877−00000FFF80007FFE0000000FFF80007FFE0000000FFF80007FFE0000000FFF80007FFE00
3878−00000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE00
3879−00000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE00
3880−00000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE00
3881−00000FFF80007FFE0000000FFF80007FFE0000000FFF80007FFE0000000FFF80003FFF00
3882−00000FFF80003FFF0000000FFF80003FFF0000000FFF80001FFF0000000FFF80001FFF00
3883−00000FFF80000FFF8000000FFF80000FFF8000001FFF800007FFC000003FFF800003FFC0
3884−00003FFF800001FFE000007FFF800000FFF00001FFFF8000007FF80003FFFFE000003FFE
3885−000FEFFFFF80000FFFC07FCFFFFF800007FFFFFF8FFFFF800001FFFFFE0FFFFF8000003F
3886−FFF80FFFFF80000003FFC00FFE000041547CD24B>I<000003FFC0000000003FFFFC0000
3887−0001FFFFFF00000007FFFFFFC000000FFF81FFE000003FFC007FF800007FF8003FFC0000
3888−FFF0001FFE0001FFE0000FFE0003FFC00007FF0007FFC00007FF800FFF800003FF800FFF
3889−800003FFC01FFF800001FFC01FFF000001FFC03FFF000001FFE03FFF000001FFE07FFF00
3890−0000FFE07FFE000000FFE07FFE000000FFF07FFE000000FFF0FFFE000000FFF0FFFE0000
3891−00FFF0FFFE000000FFF0FFFE000000FFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFF
3892−FFF0FFFFFFFFFFFFE0FFFE0000000000FFFE0000000000FFFE0000000000FFFE00000000
3893−00FFFE0000000000FFFE00000000007FFE00000000007FFE00000000007FFF0000000000
3894−3FFF00000000003FFF00000000003FFF00000000E01FFF00000001F01FFF80000003F00F
3895−FF80000003F007FFC0000007E007FFC0000007E003FFE000000FC001FFF000001FC000FF
3896−F800003F80007FFC0000FF00001FFE0003FE00000FFFC03FF8000003FFFFFFF0000000FF
3897−FFFFC00000001FFFFE0000000001FFF0000034387CB63D>I<0000003FFC00000003FFFF
3898−0000000FFFFFC000003FFFFFE00000FFF81FF00001FFC03FF80003FF807FF80007FF00FF
3899−FC000FFE00FFFC001FFC00FFFC001FFC00FFFC003FF800FFFC003FF800FFFC003FF8007F
3900−F8007FF0007FF8007FF0003FF0007FF0000FC0007FF0000000007FF0000000007FF00000
3901−00007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000
3902−00007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000FFFFFFFFE0
3903−00FFFFFFFFE000FFFFFFFFE000FFFFFFFFE000FFFFFFFFE000007FF8000000007FF80000
3904−00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000
3905−00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000
3906−00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000
3907−00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000
3908−00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000
3909−00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000
3910−00007FF8000000007FF8000000007FF8000000007FF8000000007FF80000007FFFFFFE00
3911−007FFFFFFE00007FFFFFFE00007FFFFFFE00007FFFFFFE00002E547CD329>I<00003FFF
3912−0000FF000003FFFFF007FFC0000FFFFFFC1FFFE0003FFFFFFF7FFFE0007FFC0FFFFF9FF0
3913−00FFE001FFF83FF001FFC000FFE03FF003FF80007FF01FF007FF00003FF81FE00FFF0000
3914−3FFC0FC00FFF00003FFC07801FFE00001FFE00001FFE00001FFE00003FFE00001FFF0000
3915−3FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE0000
3916−1FFF00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF00001FFE00001FFE0000
3917−1FFE00001FFE00000FFF00003FFC00000FFF00003FFC000007FF00003FF8000003FF8000
3918−7FF0000001FFC000FFE0000000FFE001FFC0000000FFFC0FFF80000001FFFFFFFF000000
3919−03EFFFFFFC00000003C3FFFFF000000007C03FFF0000000007C000000000000007C00000
3920−000000000FC00000000000000FC00000000000000FC00000000000000FE0000000000000
3921−0FE00000000000000FF80000000000000FFE0000000000000FFFFFFFFF00000007FFFFFF
3922−FFF8000007FFFFFFFFFF000007FFFFFFFFFFC00003FFFFFFFFFFE00001FFFFFFFFFFF000
3923−00FFFFFFFFFFF800007FFFFFFFFFFC00007FFFFFFFFFFE0001FFFFFFFFFFFF0007FFFFFF
3924−FFFFFF000FFE000003FFFF801FF80000003FFF803FF000000007FF807FE000000003FFC0
3925−7FE000000001FFC0FFC000000001FFC0FFC000000000FFC0FFC000000000FFC0FFC00000
3926−0000FFC0FFC000000000FFC0FFC000000000FFC0FFE000000001FFC07FE000000001FF80
3927−7FF000000003FF803FF000000003FF001FF800000007FE000FFE0000001FFC0007FF8000
3928−007FF80003FFE00001FFF00001FFFE001FFFE000007FFFFFFFFF8000000FFFFFFFFC0000
3929−0001FFFFFFE0000000000FFFFC0000003C4F7CB543>I<003FF0000000000000FFFFF000
3930−0000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF000
3931−000000000003FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3932−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3933−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3934−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3935−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3936−000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000
3937−1FFC00000000FFF000FFFFC0000000FFF003FFFFF0000000FFF00FFFFFF8000000FFF01F
3938−E07FFC000000FFF03F001FFE000000FFF07C001FFF000000FFF0F0000FFF000000FFF1E0
3939−000FFF800000FFF3C0000FFF800000FFF7800007FF800000FFF7800007FFC00000FFFF00
3940−0007FFC00000FFFE000007FFC00000FFFE000007FFC00000FFFC000007FFC00000FFFC00
3941−0007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFF8000007FFC00000FFF800
3942−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
3943−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
3944−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
3945−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
3946−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
3947−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
3948−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
3949−0007FFC000FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF8
3950−07FFFFFFC0FFFFFFF807FFFFFFC042537BD24B>I<007F000000FF800003FFE00007FFF0
3951−0007FFF0000FFFF8000FFFF8000FFFF8000FFFF8000FFFF8000FFFF8000FFFF80007FFF0
3952−0007FFF00003FFE00000FF8000007F000000000000000000000000000000000000000000
3953−000000000000000000000000000000000000000000000000000000000000000000003FF0
3954−00FFFFF000FFFFF000FFFFF000FFFFF000FFFFF00001FFF00000FFF00000FFF00000FFF0
3955−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3956−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3957−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3958−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3959−0000FFF00000FFF00000FFF000FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE01B547B
3960−D325>I<003FF00000000000FFFFF00000000000FFFFF00000000000FFFFF00000000000
3961−FFFFF00000000000FFFFF0000000000003FFF0000000000000FFF0000000000000FFF000
3962−0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000
3963−00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000
3964−0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000
3965−00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000
3966−0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00001FFFFF8
3967−00FFF00001FFFFF800FFF00001FFFFF800FFF00001FFFFF800FFF00001FFFFF800FFF000
3968−003FFE0000FFF000001FF00000FFF000003FC00000FFF000007F800000FFF00000FF0000
3969−00FFF00003FE000000FFF00007F8000000FFF0000FF0000000FFF0001FE0000000FFF000
3970−7FC0000000FFF000FF00000000FFF001FE00000000FFF003FC00000000FFF00FF8000000
3971−00FFF01FE000000000FFF03FF000000000FFF07FF800000000FFF1FFF800000000FFF3FF
3972−FC00000000FFF7FFFE00000000FFFFFFFF00000000FFFFFFFF80000000FFFF9FFF800000
3973−00FFFF0FFFC0000000FFFE0FFFE0000000FFF807FFF0000000FFF003FFF0000000FFF001
3974−FFF8000000FFF000FFFC000000FFF000FFFE000000FFF0007FFF000000FFF0003FFF0000
3975−00FFF0001FFF800000FFF0001FFFC00000FFF0000FFFE00000FFF00007FFF00000FFF000
3976−03FFF00000FFF00001FFF80000FFF00001FFFC0000FFF00000FFFE0000FFF000007FFE00
3977−00FFF000003FFF0000FFF000007FFFC0FFFFFFF003FFFFFFFFFFFFF003FFFFFFFFFFFFF0
3978−03FFFFFFFFFFFFF003FFFFFFFFFFFFF003FFFFFF40537CD247>107
3979−D<003FF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF00001FFF00000FFF00000FFF0
3980−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3981−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3982−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3983−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3984−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3985−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3986−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
3987−0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000FFFFFFF0FFFFFFF0FFFFFF
3988−F0FFFFFFF0FFFFFFF01C537BD225>I<003FF0001FFC000000FFE00000FFFFF000FFFFC0
3989−0007FFFE0000FFFFF003FFFFF0001FFFFF8000FFFFF00FFFFFF8007FFFFFC000FFFFF01F
3990−E07FFC00FF03FFE000FFFFF03F001FFE01F800FFF00003FFF07C001FFF03E000FFF80000
3991−FFF0F0000FFF0780007FF80000FFF1E0000FFF8F00007FFC0000FFF3C0000FFF9E00007F
3992−FC0000FFF7800007FFBC00003FFC0000FFF7800007FFFC00003FFE0000FFFF000007FFF8
3993−00003FFE0000FFFE000007FFF000003FFE0000FFFE000007FFF000003FFE0000FFFC0000
3994−07FFE000003FFE0000FFFC000007FFE000003FFE0000FFFC000007FFE000003FFE0000FF
3995−FC000007FFE000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE
3996−0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000
3997−003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007
3998−FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8
3999−000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE00
4000−00FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC00000
4001−3FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FF
4002−C000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF800
4003−0007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000
4004−FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003F
4005−FE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC0
4006−00003FFE00FFFFFFF807FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFEFFFFFFF807
4007−FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFE6736
4008−7BB570>I<003FF0001FFC000000FFFFF000FFFFC00000FFFFF003FFFFF00000FFFFF00F
4009−FFFFF80000FFFFF01FE07FFC0000FFFFF03F001FFE000003FFF07C001FFF000000FFF0F0
4010−000FFF000000FFF1E0000FFF800000FFF3C0000FFF800000FFF7800007FF800000FFF780
4011−0007FFC00000FFFF000007FFC00000FFFE000007FFC00000FFFE000007FFC00000FFFC00
4012−0007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFF800
4013−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
4014−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
4015−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
4016−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
4017−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
4018−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
4019−0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800
4020−0007FFC00000FFF8000007FFC000FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF8
4021−07FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC042367BB54B>I<000001FFE000
4022−000000001FFFFE0000000000FFFFFFC000000003FFFFFFF00000000FFF807FFC0000001F
4023−FC000FFE0000007FF80007FF800000FFF00003FFC00001FFE00001FFE00003FFC00000FF
4024−F00003FF8000007FF00007FF8000007FF8000FFF0000003FFC000FFF0000003FFC001FFF
4025−0000003FFE001FFF0000003FFE003FFE0000001FFF003FFE0000001FFF003FFE0000001F
4026−FF007FFE0000001FFF807FFE0000001FFF807FFE0000001FFF807FFE0000001FFF80FFFE
4027−0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001F
4028−FFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE
4029−0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC07FFE0000001FFF807FFE0000001F
4030−FF807FFE0000001FFF803FFE0000001FFF003FFF0000003FFF003FFF0000003FFF001FFF
4031−0000003FFE001FFF0000003FFE000FFF0000003FFC000FFF8000007FFC0007FF8000007F
4032−F80003FFC00000FFF00001FFE00001FFE00000FFF00003FFC000007FF80007FF8000003F
4033−FE001FFF0000000FFF807FFC00000007FFFFFFF800000000FFFFFFC0000000003FFFFF00
4034−0000000001FFE00000003A387CB643>I<003FF001FFE0000000FFFFF00FFFFE000000FF
4035−FFF03FFFFFC00000FFFFF0FFFFFFF00000FFFFF3FF01FFF80000FFFFF7F8007FFE000003
4036−FFFFE0001FFF000000FFFF80000FFF800000FFFF000007FFC00000FFFE000007FFE00000
4037−FFFC000003FFF00000FFF8000001FFF80000FFF8000001FFF80000FFF8000000FFFC0000
4038−FFF8000000FFFC0000FFF8000000FFFE0000FFF80000007FFE0000FFF80000007FFF0000
4039−FFF80000007FFF0000FFF80000007FFF0000FFF80000007FFF0000FFF80000003FFF8000
4040−FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000
4041−FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000
4042−FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF0000
4043−FFF80000007FFF0000FFF80000007FFF0000FFF80000007FFF0000FFF80000007FFE0000
4044−FFF8000000FFFE0000FFF8000000FFFE0000FFF8000000FFFC0000FFF8000001FFFC0000
4045−FFF8000001FFF80000FFFC000003FFF00000FFFC000003FFF00000FFFE000007FFE00000
4046−FFFF00000FFFC00000FFFF80001FFF800000FFFFC0003FFF000000FFFFF000FFFC000000
4047−FFFBFE07FFF8000000FFF8FFFFFFE0000000FFF87FFFFF80000000FFF81FFFFC00000000
4048−FFF803FFC000000000FFF800000000000000FFF800000000000000FFF800000000000000
4049−FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000
4050−FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000
4051−FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000
4052−FFF800000000000000FFF8000000000000FFFFFFF80000000000FFFFFFF80000000000FF
4053−FFFFF80000000000FFFFFFF80000000000FFFFFFF80000000000414D7BB54B>I<007FE0
4054−03FE00FFFFE00FFF80FFFFE03FFFE0FFFFE07FFFF0FFFFE0FE1FF8FFFFE1F83FFC03FFE3
4055−E03FFE00FFE3C07FFE00FFE7807FFE00FFEF807FFE00FFEF007FFE00FFEE007FFE00FFFE
4056−003FFC00FFFC003FFC00FFFC001FF800FFFC000FF000FFF800000000FFF800000000FFF8
4057−00000000FFF800000000FFF800000000FFF000000000FFF000000000FFF000000000FFF0
4058−00000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0
4059−00000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0
4060−00000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0
4061−00000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0
4062−000000FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFFFFFC00002F367C
4063−B537>114 D<0003FFF00F00003FFFFE1F0000FFFFFFFF0003FFFFFFFF0007FF003FFF00
4064−0FF80007FF001FE00001FF003FC00000FF003F8000007F007F8000007F007F0000003F00
4065−7F0000003F00FF0000001F00FF0000001F00FF8000001F00FF8000001F00FFC000001F00
4066−FFF000000000FFFC00000000FFFFC00000007FFFFF0000007FFFFFF800003FFFFFFF0000
4067−3FFFFFFFC0001FFFFFFFF0000FFFFFFFF80007FFFFFFFC0003FFFFFFFE0000FFFFFFFF00
4068−003FFFFFFF80000FFFFFFFC00000FFFFFFC0000007FFFFE00000003FFFE000000007FFF0
4069−00000001FFF0780000007FF0F80000003FF0F80000001FF0FC0000001FF0FC0000000FF0
4070−FC0000000FF0FE0000000FF0FE0000000FE0FF0000000FE0FF8000001FE0FF8000001FC0
4071−FFC000001FC0FFE000003F80FFF800007F00FFFE0001FE00FFFFC00FFC00FF7FFFFFF800
4072−FC1FFFFFE000F807FFFF8000F000FFF800002C387CB635>I<00003E00000000003E0000
4073−0000003E00000000003E00000000003E00000000003E00000000007E00000000007E0000
4074−0000007E00000000007E0000000000FE0000000000FE0000000001FE0000000001FE0000
4075−000001FE0000000003FE0000000007FE0000000007FE000000000FFE000000001FFE0000
4076−00003FFE00000000FFFE00000001FFFE0000000FFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF
4077−00FFFFFFFFFF00FFFFFFFFFF00003FFE000000003FFE000000003FFE000000003FFE0000
4078−00003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE0000
4079−00003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE0000
4080−00003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE0000
4081−00003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE0007
4082−C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007
4083−C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0001FFE000F80001FFF000F
4084−80001FFF000F80000FFF001F00000FFF801F000007FFC03E000003FFF0FC000001FFFFF8
4085−0000007FFFF00000001FFFE000000003FF80002A4D7ECB34>I<003FF8000001FFC000FF
4086−FFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC000FF
4087−FFF80007FFFFC00003FFF800001FFFC00000FFF8000007FFC00000FFF8000007FFC00000
4088−FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
4089−FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
4090−FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
4091−FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
4092−FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
4093−FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
4094−FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000
4095−FFF8000007FFC00000FFF8000007FFC00000FFF800000FFFC00000FFF800000FFFC00000
4096−FFF800000FFFC00000FFF800001FFFC00000FFF800001FFFC000007FF800003FFFC00000
4097−7FF800003BFFC000007FF800007BFFC000003FFC0000F3FFC000003FFC0001E3FFF00000
4098−1FFE0007C3FFFFC0000FFFC03F83FFFFC00007FFFFFF03FFFFC00001FFFFFE03FFFFC000
4099−007FFFF803FFFFC0000007FFE003FF000042377BB54B>I<FFFFFFF00007FFFFFFFFFFF0
4100−0007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFF01FFF80000007FE0
4101−00FFFC0000003F0000FFFC0000003F00007FFC0000003E00007FFE0000007E00003FFE00
4102−00007C00003FFF000000FC00001FFF000000F800001FFF800001F800000FFF800001F000
4103−000FFFC00001F000000FFFC00003F0000007FFC00003E0000007FFE00007E0000003FFE0
4104−0007C0000003FFF0000FC0000001FFF0000F80000001FFF8001F80000000FFF8001F0000
4105−0000FFFC001F00000000FFFC003F000000007FFE003E000000007FFE007E000000003FFE
4106−007C000000003FFF00FC000000001FFF00F8000000001FFF81F8000000000FFF81F00000
4107−00000FFFC3F0000000000FFFC3F00000000007FFE3E00000000007FFE7E00000000003FF
4108−E7C00000000003FFFFC00000000001FFFF800000000001FFFF800000000000FFFF000000
4109−000000FFFF0000000000007FFE0000000000007FFE0000000000007FFE0000000000003F
4110−FC0000000000003FFC0000000000001FF80000000000001FF80000000000000FF0000000
4111−0000000FF000000000000007E000000000000003C000000040367DB447>I<FFFFFFE07F
4112−FFFFC003FFFFC0FFFFFFE07FFFFFC003FFFFC0FFFFFFE07FFFFFC003FFFFC0FFFFFFE07F
4113−FFFFC003FFFFC0FFFFFFE07FFFFFC003FFFFC001FFF00000FFF000001FF80001FFF80000
4114−7FF0000007E00000FFF800007FF8000007C00000FFF800007FF8000007C00000FFFC0000
4115−3FF800000FC000007FFC00003FFC00000F8000007FFC00003FFC00000F8000007FFE0000
4116−3FFC00001F8000003FFE00007FFE00001F0000003FFF00007FFE00003F0000001FFF0000
4117−7FFF00003E0000001FFF0000FFFF00003E0000001FFF8000FFFF00007E0000000FFF8001
4118−FFFF80007C0000000FFFC001F3FF8000FC00000007FFC001F3FFC000F800000007FFC003
4119−F3FFC000F800000007FFE003E1FFC001F800000003FFE007E1FFE001F000000003FFF007
4120−C0FFE001F000000001FFF007C0FFF003E000000001FFF00FC0FFF003E000000001FFF80F
4121−807FF007E000000000FFF80F807FF807C000000000FFF81F003FF807C000000000FFFC1F
4122−003FF80FC0000000007FFC3F003FFC0F80000000007FFE3E001FFC1F80000000003FFE3E
4123−001FFE1F00000000003FFE7E001FFE1F00000000003FFF7C000FFE3F00000000001FFFFC
4124−000FFF3E00000000001FFFF80007FF7E00000000000FFFF80007FFFC00000000000FFFF8
4125−0007FFFC00000000000FFFF00003FFFC000000000007FFF00003FFF8000000000007FFE0
4126−0001FFF8000000000003FFE00001FFF0000000000003FFE00001FFF0000000000003FFC0
4127−0000FFF0000000000001FFC00000FFE0000000000001FF8000007FE0000000000001FF80
4128−00007FE0000000000000FF8000007FC0000000000000FF0000003FC00000000000007F00
4129−00003F800000000000007F0000003F800000000000003E0000001F000000005A367DB461
4130−>I<7FFFFFF0007FFFFE007FFFFFF0007FFFFE007FFFFFF0007FFFFE007FFFFFF0007FFF
4131−FE007FFFFFF0007FFFFE00007FFE00000FFF0000003FFF000007F80000001FFF800007F0
4132−0000000FFFC0000FE000000007FFC0001FC000000007FFE0003F8000000003FFF0003F00
4133−00000001FFF8007E0000000000FFFC00FC00000000007FFE01FC00000000007FFE03F800
4134−000000003FFF07F000000000001FFF8FE000000000000FFFCFC0000000000007FFFF8000
4135−0000000003FFFF00000000000003FFFF00000000000001FFFE00000000000000FFFC0000
4136−00000000007FFE000000000000003FFF000000000000003FFF000000000000001FFF8000
4137−00000000001FFFC00000000000003FFFE00000000000007FFFF0000000000000FFFFF000
4138−0000000001FDFFF8000000000001F8FFFC000000000003F07FFE000000000007E03FFF00
4139−000000000FE01FFF00000000001FC01FFF80000000003F800FFFC0000000007F0007FFE0
4140−00000000FE0003FFF000000000FC0001FFF800000001F80001FFF800000003F00000FFFC
4141−00000007F000007FFE0000000FE000003FFF0000001FC000001FFF800000FFF000001FFF
4142−8000FFFFFE0001FFFFFFC0FFFFFE0001FFFFFFC0FFFFFE0001FFFFFFC0FFFFFE0001FFFF
4143−FFC0FFFFFE0001FFFFFFC042357EB447>I<FFFFFFF00007FFFFFFFFFFF00007FFFFFFFF
4144−FFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFF00FFF80000007FE000FFFC000000
4145−3F0000FFFC0000003F00007FFE0000003E00007FFE0000007E00003FFE0000007C00003F
4146−FF000000FC00001FFF000000F800001FFF800001F800000FFF800001F000000FFFC00003
4147−F0000007FFC00003E0000007FFE00003E0000007FFE00007E0000003FFF00007C0000003
4148−FFF0000FC0000001FFF8000F80000001FFF8001F80000000FFF8001F00000000FFFC003F
4149−000000007FFC003E000000007FFE007E000000003FFE007C000000003FFF00FC00000000
4150−3FFF00FC000000001FFF80F8000000001FFF81F8000000000FFFC1F0000000000FFFC3F0
4151−0000000007FFC3E00000000007FFE7E00000000003FFE7C00000000003FFFFC000000000
4152−01FFFF800000000001FFFF800000000000FFFF000000000000FFFF000000000000FFFF00
4153−00000000007FFE0000000000007FFE0000000000003FFC0000000000003FFC0000000000
4154−001FF80000000000001FF80000000000000FF00000000000000FF000000000000007E000
4155−000000000007E000000000000007E000000000000007C00000000000000FC00000000000
4156−000F800000000000001F800000000000001F000000000000003F000000001FC0003E0000
4157−00003FE0007E000000007FF0007C00000000FFF800FC00000000FFF800F800000000FFF8
4158−01F800000000FFF801F000000000FFF803F000000000FFF807E0000000007FF00FC00000
4159−00007FE01F80000000003FC07F00000000003F81FE00000000001FFFFC00000000000FFF
4160−F0000000000003FFE0000000000000FF000000000000404D7DB447>I
4161−E /Fr 42 127 df<00000FF8000000007FFE00000001F80780000007E001C000001F8000
4162−E000003F0007E000007E000FF000007E000FF00000FC000FF00000FC000FF00001F8000F
4163−F00001F80007E00001F80001800001F80000000001F80000000001F80000000001F80000
4164−000001F80000000001F80000000001F80000000001F80000000001F80000000001F80003
4165−F000FFFFFFFFF000FFFFFFFFF000FFFFFFFFF00001F8000FF00001F80003F00001F80003
4166−F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003
4167−F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003
4168−F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003
4169−F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003
4170−F00001F80003F00001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FF
4171−FFC02A3B7FBA2E>12 D<03F000FFF000FFF000FFF00007F00003F00003F00003F00003F0
4172−0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
4173−0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
4174−0007F800FFFFC0FFFFC0FFFFC012257EA417>16 D<003C007E007E00FE01FE03FC03F007
4175−E00FC01F801E003C007800F000C0000F0F6FB92A>19 D<03F00003F00003F00003FE0000
4176−3F80001FC0000FE00007E00007E00007E0000FE0001FC000FF80FFFE00FFE000130F757D
4177−25>24 D<0000600000E00001C0000380000700000E00001E00003C0000780000780000F0
4178−0001E00001E00003C00003C00007C0000780000F80000F00000F00001F00001E00001E00
4179−003E00003E00003E00007C00007C00007C00007C00007C00007C0000F80000F80000F800
4180−00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800
4181−00F80000F80000F800007C00007C00007C00007C00007C00007C00003E00003E00003E00
4182−001E00001E00001F00000F00000F00000F800007800007C00003C00003C00001E00001E0
4183−0000F000007800007800003C00001E00000E000007000003800001C00000E00000601352
4184−78BD20>40 D<C00000E000007000003800001C00000E00000F000007800003C00003C000
4185−01E00000F00000F000007800007800007C00003C00003E00001E00001E00001F00000F00
4186−000F00000F80000F80000F800007C00007C00007C00007C00007C00007C00003E00003E0
4187−0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
4188−0003E00003E00003E00003E00007C00007C00007C00007C00007C00007C0000F80000F80
4189−000F80000F00000F00001F00001E00001E00003E00003C00007C0000780000780000F000
4190−00F00001E00003C00003C0000780000F00000E00001C0000380000700000E00000C00000
4191−13527CBD20>I<1C007F00FF80FF80FF80FF80FF807F001C000909798817>46
4192−D<000FF00000007FFE000001FFFF800003E03FE0000F000FF0000E0007F8001C0003FC00
4193−380001FE00300001FE00700000FF00600000FF00FC0000FF00FF00007F80FF80007F80FF
4194−80007F80FF80007F80FF80007F80FF80007F807F00007F801C00007F800000007F800000
4195−00FF00000000FF00000000FF00000001FE00000001FC00000003FC00000003F800000007
4196−F000000007E00000000FE00000001FC00000003F800000003F000000007C00000000F800
4197−000001F000000003E000000007C00000000F800000000F000000001E000180003C000180
4198−007800018000F000038001E000030003C000030007800003000E000007000FFFFFFF001F
4199−FFFFFF003FFFFFFF007FFFFFFE00FFFFFFFE00FFFFFFFE00FFFFFFFE0021387CB72A>50
4200−D<0600000C000780003C0007F003F80007FFFFF80007FFFFF00007FFFFE00007FFFF8000
4201−07FFFF000007FFFC0000067FE00000060000000006000000000600000000060000000006
4202−000000000600000000060000000006000000000600000000060000000006000000000607
4203−F80000063FFE000006780F800007E007E000078003F000070001F800060001F800060000
4204−FC00000000FE00000000FE00000000FF000000007F000000007F000000007F800000007F
4205−800000007F800000007F803E00007F807F00007F80FF80007F80FF80007F80FF80007F80
4206−FF80007F80FF00007F00FE0000FF00E00000FF00600000FE00700000FE00300001FC0038
4207−0001F8001C0003F8001E0007F0000F800FE00007E03F800001FFFF0000007FFC0000001F
4208−E00000213A7CB72A>53 D<0000003800000000000038000000000000380000000000007C
4209−0000000000007C0000000000007C000000000000FE000000000000FE000000000000FE00
4210−0000000001FF000000000001FF000000000001FF0000000000037F8000000000037F8000
4211−000000077FC000000000063FC000000000063FC0000000000E3FE0000000000C1FE00000
4212−00000C1FE0000000001C1FF000000000180FF000000000180FF000000000380FF8000000
4213−003007F8000000003007F8000000007007FC000000006003FC000000006003FC00000000
4214−C003FE00000000C001FE00000000C001FE000000018001FF000000018000FF0000000180
4215−00FF000000030000FF8000000300007F8000000300007F8000000600007FC0000007FFFF
4216−FFC0000007FFFFFFC000000FFFFFFFE000000C00001FE000000C00001FE000001800000F
4217−F000001800000FF000001800000FF0000030000007F8000030000007F8000030000007F8
4218−000060000003FC000060000003FC0000E0000003FC0000E0000001FE0001E0000001FE00
4219−03F0000001FF000FFC000007FF80FFFF8000FFFFFEFFFF8000FFFFFEFFFF8000FFFFFE37
4220−3C7DBB3E>65 D<000001FF80018000000FFFE0038000007FFFF803800001FF807E078000
4221−03FC000F0F80000FF000039F80001FE00001DF80003F800000FF80007F0000007F8000FE
4222−0000003F8001FE0000003F8003FC0000001F8007F80000000F8007F80000000F800FF000
4223−000007800FF000000007801FE000000007801FE000000003803FE000000003803FC00000
4224−0003807FC000000001807FC000000001807FC000000001807F800000000180FF80000000
4225−0000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000000
4226−00FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000
4227−FF800000000000FF8000000000007F8000000000007FC000000001807FC000000001807F
4228−C000000001803FC000000001803FE000000001801FE000000003801FE000000003000FF0
4229−00000003000FF0000000070007F8000000070007F8000000060003FC0000000E0001FE00
4230−00001C0000FE0000001800007F0000003800003F8000007000001FE00000E000000FF000
4231−03C0000003FC000F80000001FF803F000000007FFFFC000000000FFFF00000000001FF80
4232−0000313D7BBA3C>67 D<FFFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC0001FF80000F
4233−FC0000FF000001FC0000FF0000007E0000FF0000003E0000FF0000001E0000FF0000000E
4234−0000FF0000000E0000FF0000000E0000FF000000060000FF000000060000FF0000000600
4235−00FF000000070000FF000000030000FF0000C0030000FF0000C0030000FF0000C0030000
4236−FF0000C0000000FF0000C0000000FF0000C0000000FF0001C0000000FF0001C0000000FF
4237−0003C0000000FF000FC0000000FFFFFFC0000000FFFFFFC0000000FFFFFFC0000000FF00
4238−0FC0000000FF0003C0000000FF0001C0000000FF0001C0000000FF0000C0000000FF0000
4239−C0000000FF0000C0006000FF0000C0006000FF0000C0006000FF0000C000E000FF000000
4240−00C000FF00000000C000FF00000000C000FF00000000C000FF00000001C000FF00000001
4241−C000FF00000001C000FF000000038000FF000000038000FF000000078000FF0000000780
4242−00FF0000000F8000FF0000003F8000FF0000007F8001FF800007FF00FFFFFFFFFFFF00FF
4243−FFFFFFFFFF00FFFFFFFFFFFF0033397DB839>69 D<FFFFFFC0FFFFFFC0FFFFFFC000FFC0
4244−00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80
4245−00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80
4246−00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80
4247−00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80
4248−00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80
4249−00007F8000007F8000007F8000007F800000FFC000FFFFFFC0FFFFFFC0FFFFFFC01A397E
4250−B81E>73 D<FFFFFFE00000FFFFFFE00000FFFFFFE0000001FFC000000000FF0000000000
4251−FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000
4252−FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000
4253−FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000
4254−FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000
4255−FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000
4256−FF0000001800FF0000001800FF0000001800FF0000001800FF0000001800FF0000003800
4257−FF0000003000FF0000003000FF0000003000FF0000007000FF0000007000FF0000007000
4258−FF000000F000FF000000F000FF000001F000FF000003F000FF00000FF000FF00001FE001
4259−FF8000FFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE02D397DB834>76
4260−D<000003FF00000000001FFFE000000000FE01FC00000001F8007E00000007E0001F8000
4261−000FC0000FC000003F800007F000007F000003F80000FE000001FC0001FC000000FE0001
4262−F80000007E0003F80000007F0007F00000003F8007F00000003F800FE00000001FC00FE0
4263−0000001FC01FE00000001FE01FC00000000FE03FC00000000FF03FC00000000FF03FC000
4264−00000FF07FC00000000FF87F8000000007F87F8000000007F87F8000000007F8FF800000
4265−0007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF80000000
4266−07FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007
4267−FCFF8000000007FC7F8000000007F87FC00000000FF87FC00000000FF87FC00000000FF8
4268−3FC00000000FF03FC00000000FF01FE00000001FE01FE00000001FE01FE00000001FE00F
4269−F00000003FC007F00000003F8007F80000007F8003F80000007F0001FC000000FE0001FC
4270−000000FE0000FE000001FC00007F000003F800003F800007F000001FC0000FE0000007E0
4271−001F80000003F8007F00000000FE01FC000000001FFFE00000000003FF000000363D7BBA
4272−41>79 D<FFFFFFFFC000FFFFFFFFF800FFFFFFFFFE0001FF8001FF8000FF00003FC000FF
4273−00000FE000FF000007F000FF000003F800FF000003FC00FF000003FE00FF000001FE00FF
4274−000001FE00FF000001FF00FF000001FF00FF000001FF00FF000001FF00FF000001FF00FF
4275−000001FF00FF000001FF00FF000001FE00FF000001FE00FF000003FC00FF000003FC00FF
4276−000007F800FF000007F000FF00000FE000FF00003FC000FF0001FF0000FFFFFFFC0000FF
4277−FFFFF00000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF
4278−0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF
4279−0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF
4280−0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000001FF
4281−80000000FFFFFF000000FFFFFF000000FFFFFF00000030397DB839>I<3FFFFFFFFFFFE0
4282−3FFFFFFFFFFFE03FFFFFFFFFFFE03FC003FF001FE03E0001FE0003E07C0001FE0001F078
4283−0001FE0000F0700001FE000070700001FE000070700001FE000070600001FE0000306000
4284−01FE000030600001FE000030600001FE000030E00001FE000038C00001FE000018C00001
4285−FE000018C00001FE000018C00001FE000018000001FE000000000001FE000000000001FE
4286−000000000001FE000000000001FE000000000001FE000000000001FE000000000001FE00
4287−0000000001FE000000000001FE000000000001FE000000000001FE000000000001FE0000
4288−00000001FE000000000001FE000000000001FE000000000001FE000000000001FE000000
4289−000001FE000000000001FE000000000001FE000000000001FE000000000001FE00000000
4290−0001FE000000000001FE000000000001FE000000000001FE000000000001FE0000000000
4291−01FE000000000001FE000000000001FE000000000001FE000000000001FE000000000001
4292−FE000000000007FF800000001FFFFFFFE000001FFFFFFFE000001FFFFFFFE00035397DB8
4293−3C>84 D<001FE0000000FFFC000003E03F000007000F80000F8007E0001FC003F0001FE0
4294−03F0001FE001F8001FE001F8001FE000FC000FC000FC00078000FC00000000FC00000000
4295−FC00000000FC00000000FC0000007FFC000007FFFC00003FE0FC0000FE00FC0003F800FC
4296−000FF000FC001FC000FC003FC000FC007F8000FC007F0000FC007F0000FC0CFE0000FC0C
4297−FE0000FC0CFE0000FC0CFE0001FC0CFE0001FC0CFF0003FC0C7F00077C0C7F80063E183F
4298−C01E3E180FE0781FF003FFF00FE0007F8007C026277DA52A>97 D<03F0000000FFF00000
4299−00FFF0000000FFF00000000FF000000003F000000003F000000003F000000003F0000000
4300−03F000000003F000000003F000000003F000000003F000000003F000000003F000000003
4301−F000000003F000000003F000000003F000000003F000000003F01FE00003F07FF80003F1
4302−E03E0003F3801F8003F7000FC003FE0007E003FC0003F003F80001F803F00001F803F000
4303−00FC03F00000FC03F00000FE03F00000FE03F000007E03F000007F03F000007F03F00000
4304−7F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F
4305−03F000007E03F00000FE03F00000FE03F00000FC03F00001FC03F80001F803F80003F003
4306−FC0003F003EE0007E003C6000FC003C7801F000381E07E000300FFF80000001FC000283B
4307−7EB92E>I<0003FC00001FFF80007E03E001F8007003F000F807E001FC0FC003FC0FC003
4308−FC1F8003FC3F8003FC3F0001F87F0000F07F0000007F0000007E000000FE000000FE0000
4309−00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000
4310−007F0000007F0000003F0000063F8000061F80000E1FC0000C0FC0001C07E0003803F000
4311−7001F800E0007C07C0001FFF000007F8001F277DA525>I<0000000FC0000003FFC00000
4312−03FFC0000003FFC00000003FC00000000FC00000000FC00000000FC00000000FC0000000
4313−0FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000F
4314−C00000000FC00000000FC00000000FC00000000FC00003F80FC0001FFF0FC0007E078FC0
4315−00F801EFC003F0007FC007E0003FC00FC0001FC00FC0001FC01F80000FC03F80000FC03F
4316−00000FC07F00000FC07F00000FC07E00000FC0FE00000FC0FE00000FC0FE00000FC0FE00
4317−000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC07E0000
4318−0FC07F00000FC07F00000FC03F00000FC03F00000FC01F80001FC01F80001FC00FC0003F
4319−C007E0007FC003F000EFF001F801CFFF007C078FFF001FFE0FFF0007F80FC0283B7DB92E
4320−>I<0007F800001FFF00007C0FC001F803E003F001F007E001F80FC000F81F80007C1F80
4321−007C3F00007E3F00003E7F00003E7F00003F7E00003FFE00003FFE00003FFE00003FFFFF
4322−FFFFFFFFFFFFFE000000FE000000FE000000FE000000FE0000007E0000007E0000007F00
4323−00007F0000003F0000033F8000031F8000070FC0000607C0000E07E0001C01F0003800F8
4324−0070007E03E0001FFF800003FC0020277EA525>I<00007E000003FF80000FC1E0001F87
4325−E0003F0FF0007E0FF0007E0FF000FC0FF000FC0FF001F803C001F8000001F8000001F800
4326−0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800
4327−0001F80000FFFFFC00FFFFFC00FFFFFC0001F8000001F8000001F8000001F8000001F800
4328−0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800
4329−0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800
4330−0001F8000001F8000001F8000001F8000001F8000001F8000003FC00007FFFF8007FFFF8
4331−007FFFF8001C3B7FBA19>I<00000003F0000FF00FF8003FFC3C3C00F81F707C01F00FE0
4332−7C03E007C07C07C003E0100FC003F0000FC003F0001F8001F8001F8001F8001F8001F800
4333−1F8001F8001F8001F8001F8001F8001F8001F8001F8001F8000FC003F0000FC003F00007
4334−C003E00003E007C00003F00F800003F81F0000073FFC0000060FF000000E000000000E00
4335−0000000E000000000E000000000F000000000F000000000FC000000007FFFFC00007FFFF
4336−F80003FFFFFE0001FFFFFF8003FFFFFFC00F80007FE01F00000FF03E000003F07C000001
4337−F07C000001F8F8000000F8F8000000F8F8000000F8F8000000F8F8000000F8FC000001F8
4338−7C000001F03E000003E03F000007E00F80000F8007E0003F0001FC01FC00007FFFF00000
4339−07FF000026387EA52A>I<03F000000000FFF000000000FFF000000000FFF0000000000F
4340−F00000000003F00000000003F00000000003F00000000003F00000000003F00000000003
4341−F00000000003F00000000003F00000000003F00000000003F00000000003F00000000003
4342−F00000000003F00000000003F00000000003F00000000003F00000000003F00FF0000003
4343−F03FFC000003F0F03F000003F1C01F800003F3800FC00003F7000FC00003FE000FC00003
4344−FC0007E00003FC0007E00003F80007E00003F80007E00003F80007E00003F00007E00003
4345−F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003
4346−F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003
4347−F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003
4348−F00007E00003F00007E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF8029
4349−3A7EB92E>I<0380000FE0001FF0001FF0001FF0001FF0001FF0000FE000038000000000
4350−00000000000000000000000000000000000000000000000000000003F000FFF000FFF000
4351−FFF00007F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000
4352−03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000
4353−03F00003F00003F00003F00003F00003F00007F800FFFFC0FFFFC0FFFFC012387EB717>
4354−I<0001C00007F0000FF8000FF8000FF8000FF8000FF80007F00001C00000000000000000
4355−000000000000000000000000000000000000000000000001F800FFF800FFF800FFF80007
4356−F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001
4357−F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001
4358−F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001
4359−F80001F80001F83C01F87E01F8FF01F0FF03F0FF03F0FF03E0FE07C07C07C03C0F000FFE
4360−0003F800154984B719>I<03F000FFF000FFF000FFF0000FF00003F00003F00003F00003
4361−F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003
4362−F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003
4363−F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003
4364−F00003F00003F00003F00003F00003F00003F00003F00003F00003F00007F800FFFFC0FF
4365−FFC0FFFFC0123A7EB917>108 D<03F00FF0001FE000FFF03FFC007FF800FFF0F03F01E0
4366−7E00FFF1C01F83803F000FF3800FC7001F8003F7000FCE001F8003FE000FDC001F8003FC
4367−0007F8000FC003FC0007F8000FC003F80007F0000FC003F80007F0000FC003F80007F000
4368−0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0
4369−0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000
4370−0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0
4371−0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000
4372−0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC007F8000FF0001FE0FFFF
4373−C1FFFF83FFFFFFFFC1FFFF83FFFFFFFFC1FFFF83FFFF40257EA445>I<03F00FF00000FF
4374−F03FFC0000FFF0F03F0000FFF1C01F80000FF3800FC00003F7000FC00003FE000FC00003
4375−FC0007E00003FC0007E00003F80007E00003F80007E00003F80007E00003F00007E00003
4376−F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003
4377−F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003
4378−F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003
4379−F00007E00003F00007E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF8029
4380−257EA42E>I<0003FE0000000FFF8000003E03E00000F800F80001F0007C0003E0003E00
4381−07C0001F000F80000F801F80000FC01F000007C03F000007E03F000007E07E000003F07E
4382−000003F07E000003F07E000003F0FE000003F8FE000003F8FE000003F8FE000003F8FE00
4383−0003F8FE000003F8FE000003F8FE000003F8FE000003F87E000003F07E000003F07F0000
4384−07F03F000007E03F000007E01F80000FC00F80000F800FC0001F8007E0003F0003F0007E
4385−0000F800F800007E03F000001FFFC0000003FE000025277EA52A>I<03F01FE000FFF07F
4386−F800FFF1E07E00FFF3801F8007F7000FC003FE0007E003FC0003F003F80003F803F00001
4387−F803F00001FC03F00000FC03F00000FE03F00000FE03F00000FE03F000007F03F000007F
4388−03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03
4389−F000007F03F00000FE03F00000FE03F00000FE03F00001FC03F00001FC03F80003F803F8
4390−0003F003FC0007F003FE000FE003F6000FC003F7803F0003F1E07E0003F0FFF80003F01F
4391−C00003F000000003F000000003F000000003F000000003F000000003F000000003F00000
4392−0003F000000003F000000003F000000003F000000007F8000000FFFFC00000FFFFC00000
4393−FFFFC0000028357EA42E>I<0003F800C0001FFE01C0007E0781C000FC01C3C003F000E3
4394−C007F00077C00FE00037C00FC0003FC01FC0001FC03F80001FC03F80000FC07F00000FC0
4395−7F00000FC07F00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE
4396−00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC07F00000FC07F00000FC07F00
4397−000FC03F00000FC03F80001FC01F80001FC01FC0003FC00FC0003FC007E0007FC003F000
4398−EFC001F801CFC0007E078FC0001FFE0FC00007F80FC00000000FC00000000FC00000000F
4399−C00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0
4400−0000000FC00000001FE0000003FFFF000003FFFF000003FFFF28357DA42C>I<07E01F00
4401−FFE07FC0FFE1E3E0FFE387F00FE707F003E607F003EE07F003EC03E003FC008003F80000
4402−03F8000003F8000003F8000003F0000003F0000003F0000003F0000003F0000003F00000
4403−03F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00000
4404−03F0000003F0000003F0000003F0000003F0000007F80000FFFFF000FFFFF000FFFFF000
4405−1C257EA421>I<00FF030003FFE7000F80FF001E003F003C001F0078000F0070000700F0
4406−000700F0000700F0000300F8000300F8000300FC000300FF0000007FE000007FFF00003F
4407−FFE0001FFFF8000FFFFC0003FFFE0000FFFF000007FF8000007F8000001F80C0000FC0C0
4408−0007C0C00007C0E00003C0E00003C0E00003C0F00003C0F0000380F8000780FC000780FC
4409−000F00FF001E00F3C07C00E1FFF000C03F80001A277DA521>I<00180000001800000018
4410−0000001800000018000000380000003800000038000000780000007800000078000000F8
4411−000001F8000003F8000007F800001FFFFF00FFFFFF00FFFFFF0001F8000001F8000001F8
4412−000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8
4413−000001F8000001F8000001F8000001F8000001F8000001F8000001F800C001F800C001F8
4414−00C001F800C001F800C001F800C001F800C001F800C001F800C000FC01C000FC0180007C
4415−0380007E0300003F0700000FFE000001F8001A347FB220>I<03F00007E000FFF001FFE0
4416−00FFF001FFE000FFF001FFE0000FF0001FE00003F00007E00003F00007E00003F00007E0
4417−0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0
4418−0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0
4419−0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0
4420−0003F00007E00003F0000FE00003F0000FE00003F0000FE00003F0001FE00001F0001FE0
4421−0001F8003FE00000F80077F80000FC00E7FF80003F03C7FF80001FFF87FF800003FC07E0
4422−0029267EA42E>I<FFFF803FFEFFFF803FFEFFFF803FFE0FF8000FF007F00007E003F000
4423−03C003F800038001F800030001F800030000FC00060000FC00060000FE000E00007E000C
4424−00007E000C00003F001800003F001800003F803800001F803000001F803000000FC06000
4425−000FC06000000FE060000007E0C0000007E0C0000003F180000003F180000003F1800000
4426−01FB00000001FB00000001FF00000000FE00000000FE000000007C000000007C00000000
4427−7C00000000380000000038000027257EA32C>I<FFFF1FFFE03FFEFFFF1FFFE03FFEFFFF
4428−1FFFE03FFE0FF800FF000FF807F0007E0003E007F0007E0003C003F0003E00018003F000
4429−3E00018001F8003F00030001F8003F00030001F8003F00030000FC003F80060000FC006F
4430−80060000FC006F800600007E00EFC00C00007E00C7C00C00007E00C7C00C00003F01C7E0
4431−1800003F0183E01800003F8183F03800001F8383F03000001F8301F03000001FC301F870
4432−00000FC600F86000000FC600F860000007E600FCC0000007EC007CC0000007EC007CC000
4433−0003FC007F80000003F8003F80000003F8003F80000001F8003F00000001F0001F000000
4434−01F0001F00000000F0001E00000000E0000E0000000060000C000037257EA33C>I<FFFF
4435−807FFF00FFFF807FFF00FFFF807FFF0003FE003FF00001FE001F800000FE001F0000007E
4436−001C0000003F00180000001F80300000001FC0700000000FC0E000000007E0C000000007
4437−F18000000003FB8000000001FF0000000000FE0000000000FE00000000007F0000000000
4438−3F00000000007F80000000007FC000000000CFC000000001C7E00000000383F000000007
4439−03F80000000601F80000000C00FC0000001C007E00000038007F00000078003F000000F0
4440−001F800001F8001FC0000FF8003FF000FFFE00FFFF80FFFE00FFFF80FFFE00FFFF802924
4441−7FA32C>I<FFFF803FFEFFFF803FFEFFFF803FFE0FF8000FF007F00007C003F000038001
4442−F800038001F800030001FC00030000FC00060000FC000600007E000C00007E000C00007F
4443−000C00003F001800003F001800001F803000001F803000001FC07000000FC06000000FC0
4444−60000007E0C0000007E0C0000007F1C0000003F180000003F180000001FB00000001FB00
4445−000001FF00000000FE00000000FE000000007C000000007C000000007C00000000380000
4446−0000380000000030000000003000000000700000000060000000006000000000C0000000
4447−00C000007C01C00000FE01800000FE03800000FE03000000FE06000000FC0E000000701C
4448−00000038380000001FF00000000FC000000027357EA32C>I<01E0004007F800E00FFE01
4449−C01FFF87803C3FFF00700FFE00E003FC004000F0001B0879B62A>126
4450−D E /Fs 13 118 df<000F00003F80003FC0007FE000FFE001FFE003FFE007FFE007FFC0
4451−0FFF801FFE003FF8007FE000FF80007E000038000013106DBA30>19
4452−D<00000003E00000000000000007F00000000000000007F0000000000000000FF8000000
4453−000000000FF8000000000000000FF8000000000000001FFC000000000000001FFC000000
4454−000000003FFE000000000000003FFE000000000000003FFE000000000000007FFF000000
4455−000000007FFF00000000000000FFFF80000000000000FFFF80000000000000FFFF800000
4456−00000001FFFFC0000000000001F3FFC0000000000003F3FFE0000000000003E1FFE00000
4457−00000003E1FFE0000000000007E1FFF0000000000007C0FFF000000000000FC0FFF80000
4458−0000000F807FF800000000000F807FF800000000001F807FFC00000000001F003FFC0000
4459−0000003F003FFE00000000003E001FFE00000000003E001FFE00000000007E001FFF0000
4460−0000007C000FFF0000000000FC000FFF8000000000F80007FF8000000000F80007FF8000
4461−000001F80007FFC000000001F00003FFC000000003FFFFFFFFE000000003FFFFFFFFE000
4462−000003FFFFFFFFE000000007FFFFFFFFF000000007C00000FFF00000000FC00000FFF800
4463−00000F8000007FF80000000F8000007FF80000001F8000007FFC0000001F0000003FFC00
4464−00003F0000003FFE0000003E0000001FFE0000003E0000001FFE0000007E0000001FFF00
4465−00007C0000000FFF000000FE0000000FFF8000FFFFF80007FFFFFF80FFFFF80007FFFFFF
4466−80FFFFF80007FFFFFF80FFFFF80007FFFFFF80413A7DB948>65 D<0007FF000E00003FFF
4467−E01E0000FFFFF83E0003FFFFFE7E0007FC01FFFE000FF0001FFE001FE0000FFE003FC000
4468−03FE003F800001FE007F800000FE007F000000FE007F0000007E00FF0000007E00FF0000
4469−003E00FF0000003E00FF8000003E00FF8000001E00FFC000001E00FFE000001E00FFF000
4470−000000FFFC000000007FFFE00000007FFFFE0000007FFFFFF000003FFFFFFE00003FFFFF
4471−FF80001FFFFFFFC0000FFFFFFFF00007FFFFFFF80003FFFFFFFC0000FFFFFFFE00003FFF
4472−FFFE00000FFFFFFF000001FFFFFF0000000FFFFF800000007FFF800000000FFFC0000000
4473−03FFC000000001FFC000000000FFC0F00000007FC0F00000007FC0F00000007FC0F00000
4474−003FC0F00000003FC0F80000003FC0F80000003F80FC0000003F80FC0000007F80FE0000
4475−007F00FF0000007F00FF800000FE00FFE00001FC00FFF80003FC00FFFF801FF800FCFFFF
4476−FFE000F83FFFFFC000F007FFFE0000E0007FF000002A3B7BB935>83
4477−D<003FFE00000003FFFFE000000FFFFFF800001FF00FFE00003FF003FF00003FF801FF80
4478−003FF800FFC0003FF800FFC0003FF8007FE0003FF8007FE0001FF0007FE0000FE0007FE0
4479−000380007FE0000000007FE0000000007FE00000003FFFE000000FFFFFE000007FFFFFE0
4480−0001FFF87FE00007FF807FE0000FFE007FE0003FF8007FE0003FF0007FE0007FE0007FE0
4481−00FFE0007FE000FFC0007FE000FFC0007FE000FFC0007FE000FFC0007FE000FFC000FFE0
4482−00FFE001FFE0007FE001FFE0003FF007FFF8001FFC1FBFFFC00FFFFE1FFFC003FFF80FFF
4483−C0003FE003FFC02A257DA42E>97 D<00FF00000000FFFF00000000FFFF00000000FFFF00
4484−000000FFFF0000000007FF0000000003FF0000000003FF0000000003FF0000000003FF00
4485−00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
4486−00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF01
4487−FF800003FF0FFFF00003FF3FFFFC0003FFFE03FF0003FFF000FF8003FFE0007FC003FF80
4488−003FE003FF00003FF003FF00001FF803FF00001FF803FF00001FFC03FF00000FFC03FF00
4489−000FFC03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00
4490−000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFC03FF00
4491−000FFC03FF00000FFC03FF00001FF803FF00001FF803FF00001FF003FF80003FF003FFC0
4492−007FE003FFE0007FC003FDF001FF8003F8FC07FE0003F03FFFF80003E00FFFE00003C003
4493−FF00002F3A7EB935>I<0001FFC000000FFFFC00007FFFFF0000FF80FF8003FE00FFC007
4494−FC01FFC00FF801FFC01FF801FFC01FF001FFC03FF001FFC03FF000FF807FE0007F007FE0
4495−001C007FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000
4496−0000FFE0000000FFE0000000FFE00000007FE00000007FE00000007FF00000003FF00000
4497−003FF00001E01FF80001E01FF80003E00FFC0007C007FE00078003FF001F8000FFC07E00
4498−007FFFFC00000FFFF0000001FF800023257DA42A>I<01F00007FC000FFE000FFE001FFF
4499−001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F0000000000000000000000000
4500−0000000000000000000000000000000000FF007FFF007FFF007FFF007FFF0007FF0003FF
4501−0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
4502−0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
4503−0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8153B7DBA1B>105
4504−D<00FE007FE0000FFC0000FFFE01FFFC003FFF8000FFFE07FFFF00FFFFE000FFFE1F81FF
4505−83F03FF000FFFE3C00FF87801FF00007FE7800FFCF001FF80003FEF000FFDE001FF80003
4506−FFE0007FFC000FFC0003FFC0007FF8000FFC0003FFC0007FF8000FFC0003FF80007FF000
4507−0FFC0003FF80007FF0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00
4508−007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC
4509−0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007F
4510−E0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003
4511−FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE000
4512−0FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00
4513−007FE0000FFC00FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFF
4514−F0FFFFFC1FFFFF83FFFFF04C257DA451>109 D<0001FFC00000000FFFF80000007FFFFF
4515−000000FF80FF800003FE003FE00007FC001FF0000FF8000FF8001FF00007FC001FF00007
4516−FC003FF00007FE003FE00003FE007FE00003FF007FE00003FF007FE00003FF00FFE00003
4517−FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003
4518−FF80FFE00003FF80FFE00003FF807FE00003FF007FE00003FF007FE00003FF003FE00003
4519−FE003FF00007FE001FF00007FC001FF00007FC000FF8000FF80007FC001FF00003FE003F
4520−E00001FF80FFC000007FFFFF0000001FFFFC00000001FFC0000029257DA430>111
4521−D<00FE03F000FFFE0FFE00FFFE3FFF00FFFE7C7F80FFFEF8FFC007FEF0FFC003FFE0FFC0
4522−03FFC0FFC003FFC0FFC003FF807F8003FF803F0003FF800C0003FF80000003FF00000003
4523−FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
4524−00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00
4525−000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE0000FFFFFE00
4526−00FFFFFE000022257EA427>114 D<003FF03803FFFEF80FFFFFF81FC00FF83F0003F87E
4527−0001F87C0000F8FC0000F8FC000078FE000078FF000078FF800000FFFC0000FFFFE0007F
4528−FFFC007FFFFF803FFFFFC01FFFFFF00FFFFFF803FFFFF800FFFFFC001FFFFC00007FFE00
4529−0007FEF00001FEF00000FEF80000FEF800007EFC00007EFC00007CFE0000FCFF0000F8FF
4530−8001F8FFF007F0FFFFFFC0F8FFFF00E01FF8001F257DA426>I<000F0000000F0000000F
4531−0000000F0000000F0000001F0000001F0000001F0000001F0000003F0000003F0000007F
4532−000000FF000000FF000001FF000007FF00001FFFFFE0FFFFFFE0FFFFFFE0FFFFFFE003FF
4533−000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF
4534−000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF
4535−007803FF007803FF007803FF007803FF007803FF007803FF007803FF007803FF00F801FF
4536−80F001FF81F000FFC3E0003FFFC0001FFF800003FE001D357EB425>I<00FF00003FC0FF
4537−FF003FFFC0FFFF003FFFC0FFFF003FFFC0FFFF003FFFC007FF0001FFC003FF0000FFC003
4538−FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003
4539−FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003
4540−FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003
4541−FF0000FFC003FF0000FFC003FF0001FFC003FF0001FFC003FF0003FFC003FF0003FFC001
4542−FF0007FFC001FF800FFFE000FFC03EFFFF007FFFFCFFFF001FFFF0FFFF0003FF80FFFF30
4543−257DA435>I E /Ft 7 115 df<0000003FFE0000000003FFFFF00000000FFFFFFE000000
4544−3FFFFFFF800000FFFFFFFF800001FFFFFFFF800003FFE007FF00000FFF0000FF00001FFC
4545−00001F00003FF800000700007FE000000300007FC00000000000FF800000000001FF0000
4546−00000003FF000000000003FE000000000007FC000000000007FC00000000000FF8000000
4547−00000FF800000000001FF000000000001FF000000000003FE000000000003FE000000000
4548−003FE000000000007FC000000000007FC000000000007FC000000000007FC00000000000
4549−7FC00000000000FF800000000000FF800000000000FF800000000000FF800000000000FF
4550−800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF80
4551−0000000000FF800000000000FF800000000000FF8000000000007FC000000000007FC000
4552−000000007FC000000000007FC000000000007FC000000000003FE000000000003FE00000
4553−0000003FE000000000001FF000000000001FF000000000000FF800000000000FF8000000
4554−000007FC000000000007FC000000000003FE000000000003FF000000000001FF00000000
4555−0000FF8000000080007FC000000180007FE000000380003FF800000F80001FFC00001FC0
4556−000FFF00007FC00003FFE003FFC00001FFFFFFFF800000FFFFFFFE0000003FFFFFFC0000
4557−000FFFFFF000000003FFFFC0000000003FFC000032497AC63E>67
4558−D<0000003FFC0000000001FFFFE00000000FFFFFF80000003FFFFFFF000000FFFFFFFFC0
4559−0001FFFFFFFFE00003FFE007FFE00007FF00007FE0001FFC00001FC0003FF8000007C000
4560−3FF0000003C0007FC0000001C000FF80000000C001FF800000000003FF000000000003FE
4561−000000000007FC000000000007FC00000000000FF800000000000FF800000000001FF000
4562−000000001FF000000000003FE000000000003FE000000000003FE000000000007FC00000
4563−0000007FC000000000007FC000000000007FC000000000007FC00000000000FF80000000
4564−0000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000000
4565−00FF800000000000FF800000000000FF800000000000FF800000000000FF800001FFFFF0
4566−FF800001FFFFF0FF800001FFFFF07FC00001FFFFF07FC00001FFFFF07FC00001FFFFF07F
4567−C00000000FF07FC00000000FF03FE00000000FF03FE00000000FF03FE00000000FF01FF0
4568−0000000FF01FF00000000FF00FF80000000FF00FF80000000FF007FC0000000FF007FC00
4569−00000FF003FE0000000FF003FF0000000FF001FF8000000FF000FF8000000FF0007FC000
4570−000FF0003FF000000FF0003FF800000FF0001FFC00000FF00007FF00003FF00003FFE007
4571−FFF00001FFFFFFFFF00000FFFFFFFFE000003FFFFFFF0000000FFFFFFC00000001FFFFE0
4572−000000003FFC000034497AC641>71 D<FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF0FFFFFFFF
4573−FFFFFFF0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF00000003FE0000000
4574−0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F
4575−E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000
4576−0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F
4577−E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000
4578−0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F
4579−E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000
4580−0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F
4581−E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000
4582−0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F
4583−E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000
4584−0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F
4585−E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000
4586−0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F
4587−E00000000000003FE00000000000003FE00000000000003FE00000003C457DC443>84
4588−D<0007FE0000007FFFC00003FFFFE0000FFFFFF8001FFFFFFC001FFFFFFE001FF803FF00
4589−1F8001FF001E0000FF801800007F801000003FC00000003FC00000003FE00000001FE000
4590−00001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000
4591−7FFFE0000FFFFFE0003FFFFFE001FFFFFFE003FFFFFFE00FFFF01FE01FFE001FE03FF800
4592−1FE07FE0001FE07FC0001FE0FF80001FE0FF00001FE0FF00001FE0FF00001FE0FF00001F
4593−E0FF00003FE0FF80003FE07FC0007FE07FE001FFE07FF80FFFE03FFFFFFFE01FFFFFFFE0
4594−1FFFFFDFE00FFFFF1FE003FFF81FE000FF800000232F7CAD2F>97
4595−D<0001FE00000007FFC000001FFFF000007FFFF80000FFFFFC0001FFFFFE0003FF03FF00
4596−07FC00FF000FF8007F800FF0003F801FE0001FC01FE0000FC03FC0000FE03F800007E07F
4597−800007E07F800007E07F000007E07F000003F0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFF
4598−FFFFF0FFFFFFFFF0FFFFFFFFF0FE00000000FE00000000FE00000000FF00000000FF0000
4599−00007F000000007F000000007F800000003F800000003FC00000003FC00000001FE00000
4600−001FF00000100FF800007007FC0001F003FE0007F003FF803FF001FFFFFFF000FFFFFFE0
4601−003FFFFF80001FFFFE000007FFF8000000FFC000242F7DAD2B>101
4602−D<00001FF00000FFFE0001FFFE0007FFFE000FFFFE001FFFFE003FF01E003FC002007F80
4603−00007F000000FE000000FE000001FE000001FE000001FE000001FE000001FE000001FE00
4604−0001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE0000FFFFFF
4605−80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF8001FE000001FE000001FE000001FE00
4606−0001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE00
4607−0001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE00
4608−0001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE00
4609−0001FE000001FE000001FE000001FE000001FE000001FE000001FE00001F467EC51E>I<
4610−00001FFE00FFFE03FFFE07FFFE1FFFFE3FFFFE7FFFFEFFF0FEFF80FFFE00FFFC00FFF800
4611−FFF000FFE000FFC000FFC000FF8000FF8000FF8000FF0000FF0000FF0000FF0000FF0000
4612−FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
4613−FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000182D79AC21>114
4614−D E /Fu 25 118 df<7FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF807FFF
4615−FFFF0021067B9B2C>45 D<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B0B70
4616−8A2C>I<00000007000000000F800000001F800000001F800000003F800000003F000000
4617−007F000000007E00000000FE00000000FC00000001FC00000001F800000003F800000003
4618−F000000003F000000007F000000007E00000000FE00000000FC00000001FC00000001F80
4619−0000003F800000003F000000007F000000007E00000000FE00000000FC00000000FC0000
4620−0001FC00000001F800000003F800000003F000000007F000000007E00000000FE0000000
4621−0FC00000001FC00000001F800000001F800000003F800000003F000000007F000000007E
4622−00000000FE00000000FC00000001FC00000001F800000003F800000003F000000007F000
4623−000007E000000007E00000000FE00000000FC00000001FC00000001F800000003F800000
4624−003F000000007F000000007E00000000FE00000000FC00000000FC00000000F800000000
4625−780000000021417BB92C>I<00070000000F8000000F8000001F8000001F8000003F8000
4626−007F800000FF800001FF800007FF80007FFF8000FFFF8000FFDF8000FF9F80007C1F8000
4627−001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
4628−001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
4629−001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
4630−001F8000001F8000001F8000001F8000001F80007FFFFFE0FFFFFFF0FFFFFFF0FFFFFFF0
4631−7FFFFFE01C3477B32C>49 D<000FF80000007FFF800001FFFFE00007FFFFF0000FFFFFFC
4632−001FF80FFE003FE001FF003F80007F007F00003F807E00001F80FE00001FC0FE00000FC0
4633−FF00000FE0FF000007E0FF000007E0FF000007E07E000007E03C000007E000000007E000
4634−000007E00000000FE00000000FC00000001FC00000001F800000003F800000003F000000
4635−007F00000000FE00000001FC00000003FC00000007F80000000FF00000001FE00000003F
4636−C0000000FF80000001FE00000003FC00000007F80000000FF00000003FE00000007F8000
4637−0000FF00000001FE00000003FC0003C007F80007E01FE00007E03FC00007E07FFFFFFFE0
4638−FFFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFC023347CB32C>I<000007F00000000FF8
4639−0000001FF80000003FF80000003FF80000007EF80000007EF8000000FCF8000001F8F800
4640−0001F8F8000003F0F8000007E0F8000007E0F800000FC0F800001F80F800001F80F80000
4641−3F00F800007E00F800007E00F80000FC00F80001F800F80001F800F80003F000F80003E0
4642−00F80007E000F8000FC000F8000FC000F8001F8000F8003F0000F8003F0000F8007E0000
4643−F800FC0000F800FFFFFFFFFCFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC000000F8
4644−00000000F800000000F800000000F800000000F800000000F800000000F800000000F800
4645−000000F800000000F80000007FFFF00000FFFFF80000FFFFF80000FFFFF800007FFFF027
4646−347EB32C>52 D<00003FC0000001FFF8000007FFFC00001FFFFE00003FFFFF00007FE07F
4647−0000FF003F8001FE007F8003F8007F8007F0007F8007E0007F800FE0003F001FC0001E00
4648−1F800000003F800000003F000000003F000000007F000000007E000000007E03FE00007E
4649−1FFF8000FC7FFFE000FDFFFFF000FFFFFFF800FFFE07FC00FFF001FE00FFC0007F00FF80
4650−003F80FF00001F80FF00001FC0FE00000FC0FE00000FE0FE000007E0FE000007E0FE0000
4651−07E07E000007E07E000007E07E000007E07E000007E03F000007E03F00000FE03F80000F
4652−C01F80001FC01FC0001F800FC0003F800FE0007F0007F801FE0003FE07FC0001FFFFF800
4653−00FFFFF000007FFFE000001FFF80000007FC000023357CB32C>54
4654−D<7800000000FFFFFFFFC0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00003F80
4655−FC00007F00FC0000FE00780000FC00000001FC00000003F800000007F000000007E00000
4656−000FE00000000FC00000001F800000003F800000003F000000007F000000007E00000000
4657−FE00000000FC00000001FC00000001F800000001F800000003F000000003F000000007F0
4658−00000007E000000007E000000007E00000000FC00000000FC00000000FC00000000FC000
4659−00001F800000001F800000001F800000001F800000001F800000003F800000003F000000
4660−003F000000003F000000003F000000003F000000003F000000003F000000003F00000000
4661−3F000000003F000000001E00000023357CB32C>I<0007FC0000003FFF800000FFFFE000
4662−03FFFFF80007FFFFFC000FFC07FE001FF001FF001FC0007F003F80003F803F00001F807F
4663−00001FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC03F00001F803F00
4664−001F801F80003F001FC0007F000FF001FE0003FC07F80001FFFFF000007FFFC0000007FC
4665−0000007FFFC00001FFFFF00003FC07F8000FF001FE001FC0007F001F80003F003F00001F
4666−807E00000FC07E00000FC0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0
4667−FC000007E0FC000007E07E00000FC07E00000FC07F00001FC03F80003F801FC0007F001F
4668−F001FF000FFC07FE0007FFFFFC0003FFFFF80000FFFFE000003FFF80000007FC00002335
4669−7CB32C>I<0007FC0000003FFF000000FFFFC00001FFFFE00003FFFFF00007FC07F8000F
4670−F001FC001FE000FE003F80007E003F80007F007F00003F007E00001F80FE00001F80FC00
4671−001F80FC00000FC0FC00000FC0FC00000FC0FC00000FC0FC00000FE0FC00000FE0FC0000
4672−0FE0FE00000FE07E00000FE07F00001FE03F00001FE03F80003FE01FC0007FE00FF001FF
4673−E007FC0FFFE003FFFFFFE001FFFFF7E000FFFFC7E0003FFF0FE0000FF80FC00000000FC0
4674−0000000FC00000001FC00000001F800000003F800000003F000F00007F001F80007E003F
4675−C000FE003FC001FC003FC003F8003FC007F8003F801FF0001FE07FE0001FFFFFC0000FFF
4676−FF000007FFFE000001FFF80000007FC0000023357CB32C>I<1F003F807FC0FFE0FFE0FF
4677−E0FFE0FFE07FC03F801F0000000000000000000000000000000000000000000000000000
4678−0000001F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B2470A32C>I<00007F80
4679−000003FFE000000FFFF000003FFFF800007FFFFC0000FFC0FE0001FE007F0003F8003F00
4680−07F0001F8007E00FCF800FC03FFF801F807FFFC01F80FFFFC03F01FFFFC03E03F87FC03E
4681−07F03FE07E07E01FE07C0FC00FE07C0F8007E07C0F8007E0FC1F8007E0F81F0003E0F81F
4682−0003E0F81F0003E0F81F0003E0F81F0003E0F81F0003E0F81F0003E0F81F0003E0F81F00
4683−03E0FC1F8007E07C0F8007C07C0F8007C07C0FC00FC07E07E01F803E07F03F803E03F87F
4684−003F01FFFE001F80FFFC001F807FF8000FC03FF00007E00FC00007F00007C003F8000FE0
4685−01FE001FE000FFC0FFE0007FFFFFC0003FFFFF80000FFFFE000003FFF80000007FC00023
4686−337CB22C>64 D<7FFFFF0000FFFFFFC000FFFFFFF000FFFFFFF8007FFFFFFC0007E003FE
4687−0007E000FF0007E0007F8007E0003F8007E0001FC007E0000FE007E0000FE007E00007E0
4688−07E00007F007E00003F007E00003F807E00001F807E00001F807E00001F807E00001F807
4689−E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E0
4690−0000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00001F807E00001F807E000
4691−01F807E00003F807E00003F007E00003F007E00007F007E00007E007E0000FE007E0001F
4692−C007E0003FC007E0007F8007E000FF0007E003FE007FFFFFFC00FFFFFFF800FFFFFFF000
4693−FFFFFFC0007FFFFF000026337EB22C>68 D<01FFF0000007FFFE00001FFFFF80001FFFFF
4694−E0003FFFFFF0003FC01FF8003FC007F8003FC001FC001F8000FC00060000FE000000007E
4695−000000007E000000007E000000FFFE00001FFFFE0000FFFFFE0003FFFFFE000FFFFFFE00
4696−1FFF807E003FF8007E007FC0007E007F00007E00FE00007E00FC00007E00FC00007E00FC
4697−00007E00FC00007E00FE00007E007F0000FE007F8003FE003FE01FFE001FFFFFFFFC0FFF
4698−FFFFFE07FFFFBFFE01FFFE1FFE003FF007FC27247CA32C>97 D<7FF0000000FFF8000000
4699−FFF8000000FFF80000007FF800000001F800000001F800000001F800000001F800000001
4700−F800000001F800000001F800000001F800000001F800000001F800000001F81FE00001F8
4701−FFF80001FBFFFE0001FFFFFF0001FFFFFF8001FFF07FC001FF801FE001FF0007F001FE00
4702−03F801FC0003F801FC0001FC01F80000FC01F80000FC01F80000FE01F800007E01F80000
4703−7E01F800007E01F800007E01F800007E01F800007E01F800007E01F800007E01F80000FE
4704−01FC0000FC01FC0000FC01FC0001F801FE0003F801FF0007F001FF000FF001FF801FE001
4705−FFE07FC001FFFFFF8001FFFFFF0001FBFFFE0001F8FFF80000F03FC00027337FB22C>I<
4706−0003FFE000001FFFF800007FFFFE0001FFFFFE0003FFFFFF0007FE00FF000FF000FF001F
4707−E000FF001FC0007E003F800018003F000000007F000000007E000000007E00000000FC00
4708−000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000
4709−00007E000000007E000000007F000000003F00000F003F80001F801FC0001F801FE0003F
4710−800FF0007F0007FE03FF0003FFFFFE0001FFFFFC00007FFFF800001FFFE0000003FF0000
4711−21247AA32C>I<00000FFE0000001FFF0000001FFF0000001FFF0000000FFF000000003F
4712−000000003F000000003F000000003F000000003F000000003F000000003F000000003F00
4713−0000003F000000003F000007F83F00003FFE3F0000FFFFBF0001FFFFFF0003FFFFFF0007
4714−FC0FFF000FF003FF001FE001FF001FC000FF003F80007F003F00007F007E00003F007E00
4715−003F00FE00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC0000
4716−3F00FC00003F00FC00003F00FE00003F007E00007F007E00007F007F0000FF003F8000FF
4717−003F8001FF001FC003FF000FF007FF0007FC1FFF0003FFFFFFFC01FFFFBFFE00FFFF3FFE
4718−003FFC3FFE000FF01FFC27337DB22C>I<0003FE0000001FFFC000007FFFF00001FFFFF8
4719−0003FFFFFC0007FE03FE000FF800FF001FE0003F801FC0003F803F80001FC03F00000FC0
4720−7F00000FC07E00000FE07E000007E0FC000007E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FF
4721−FFFFFFE0FFFFFFFFC0FC00000000FE000000007E000000007E000000007F000000003F00
4722−0003C03F800007E01FC00007E00FF0000FE007F8003FC007FF00FFC001FFFFFF8000FFFF
4723−FF00003FFFFC00000FFFF0000001FF800023247CA32C>I<00070000001FC000001FC000
4724−003FE000003FE000003FE000001FC000001FC00000070000000000000000000000000000
4725−000000000000000000000000000000007FFFC0007FFFE000FFFFE0007FFFE0007FFFE000
4726−0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
4727−0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
4728−0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0007FFFFFFC
4729−FFFFFFFEFFFFFFFEFFFFFFFE7FFFFFFC1F3479B32C>105 D<7FFFE00000FFFFF00000FF
4730−FFF00000FFFFF000007FFFF000000003F000000003F000000003F000000003F000000003
4731−F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0
4732−00000003F000000003F000000003F000000003F000000003F000000003F000000003F000
4733−000003F000000003F000000003F000000003F000000003F000000003F000000003F00000
4734−0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
4735−03F000000003F000000003F000000003F000000003F000000003F000000003F000000003
4736−F000007FFFFFFF80FFFFFFFFC0FFFFFFFFC0FFFFFFFFC07FFFFFFF8022337BB22C>108
4737−D<0007FC0000001FFF0000007FFFC00001FFFFF00003FFFFF80007FC07FC000FF001FE00
4738−1FE000FF001F80003F003F80003F803F00001F807E00000FC07E00000FC07E00000FC0FC
4739−000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FE00
4740−000FE07E00000FC07E00000FC07F00001FC03F00001F803F80003F801FC0007F001FE000
4741−FF000FF001FE0007FC07FC0003FFFFF80001FFFFF000007FFFC000001FFF00000007FC00
4742−0023247CA32C>111 D<7FF01FE000FFF8FFF800FFFBFFFE00FFFFFFFF007FFFFFFF8001
4743−FFF07FC001FF801FE001FF0007F001FE0003F801FC0003F801FC0001FC01F80000FC01F8
4744−0000FC01F80000FE01F800007E01F800007E01F800007E01F800007E01F800007E01F800
4745−007E01F800007E01F800007E01F80000FE01FC0000FC01FC0000FC01FC0001F801FE0003
4746−F801FF0007F001FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001FBFFFE00
4747−01F8FFF80001F83FC00001F800000001F800000001F800000001F800000001F800000001
4748−F800000001F800000001F800000001F800000001F800000001F800000001F800000001F8
4749−0000007FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFE0000027367FA32C>I<7F
4750−FE003FC0FFFF01FFF0FFFF07FFF8FFFF1FFFFC7FFF3FFFFC003F7FE1FC003FFF01FC003F
4751−FC00F8003FF80070003FF00000003FE00000003FE00000003FC00000003F800000003F80
4752−0000003F800000003F000000003F000000003F000000003F000000003F000000003F0000
4753−00003F000000003F000000003F000000003F000000003F000000003F000000003F000000
4754−003F000000003F0000007FFFFFE000FFFFFFF000FFFFFFF000FFFFFFF0007FFFFFE00026
4755−247EA32C>114 D<001E000000003F000000003F000000003F000000003F000000003F00
4756−0000003F000000003F000000003F000000003F0000007FFFFFFF00FFFFFFFF80FFFFFFFF
4757−80FFFFFFFF807FFFFFFF00003F000000003F000000003F000000003F000000003F000000
4758−003F000000003F000000003F000000003F000000003F000000003F000000003F00000000
4759−3F000000003F000000003F000000003F000000003F000000003F0003C0003F0007E0003F
4760−0007E0003F0007E0003F0007E0003F0007E0003F800FE0001F801FC0001FE07FC0000FFF
4761−FF80000FFFFF000003FFFE000001FFF80000003FE000232E7EAD2C>116
4762−D<7FF003FF8000FFF807FFC000FFF807FFC000FFF807FFC0007FF803FFC00001F8000FC0
4763−0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0
4764−0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0
4765−0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0
4766−0001F8000FC00001F8000FC00001F8001FC00001F8001FC00001F8003FC00001FC007FC0
4767−0000FE03FFC00000FFFFFFFF00007FFFFFFF80003FFFFFFF80001FFFCFFF800003FE07FF
4768−0029247FA32C>I E /Fv 34 125 df<001F00001F80003F80007F80007F8000FF0001FE
4769−0003FC0003F80007F0000FE0000F80001F00003E00003C0000780000E000004000001112
4770−6CC431>19 D<FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC01A067F9721>
4771−45 D<0000000FFE000060000000FFFFC000E0000003FFFFF000E000000FFC01FC01E000
4772−003FC0003E01E00000FF00000F83E00003FC000003C7E00007F8000001E7E0000FF00000
4773−00FFE0001FE00000007FE0003FC00000003FE0007F800000001FE000FF000000000FE001
4774−FE000000000FE001FC0000000007E003FC0000000007E007F80000000003E007F8000000
4775−0003E00FF00000000001E00FF00000000001E01FE00000000000E01FE00000000000E03F
4776−E00000000000E03FE00000000000E03FC00000000000607FC00000000000607FC0000000
4777−0000607FC00000000000607FC0000000000000FF80000000000000FF80000000000000FF
4778−80000000000000FF80000000000000FF80000000000000FF80000000000000FF80000000
4779−000000FF80000000000000FF80000000000000FF80000000000000FF80000000000000FF
4780−80000000000000FF80000000000000FF800000000000007FC00000000000007FC0000000
4781−0000007FC00000000000607FC00000000000603FC00000000000603FE00000000000603F
4782−E00000000000601FE00000000000E01FF00000000000E00FF00000000000C00FF0000000
4783−0000C007F80000000001C007F800000000018003FC00000000038001FC00000000038001
4784−FE00000000070000FF000000000600007F800000000E00003FC00000001C00001FE00000
4785−003800000FF000000078000007F8000000F0000003FC000001E0000000FF000007800000
4786−003FC0001F000000000FFC00FC0000000003FFFFF00000000000FFFFC000000000000FFE
4787−0000003B487BC546>67 D<FFFFFFFFFF00000000FFFFFFFFFFF0000000FFFFFFFFFFFC00
4788−000001FFC00007FF00000000FF8000007FC00000007F8000001FE00000007F80000007F0
4789−0000007F80000003FC0000007F80000001FE0000007F80000000FF0000007F800000007F
4790−0000007F800000003F8000007F800000001FC000007F800000000FE000007F800000000F
4791−E000007F8000000007F000007F8000000007F800007F8000000003F800007F8000000003
4792−FC00007F8000000003FC00007F8000000001FC00007F8000000001FE00007F8000000001
4793−FE00007F8000000001FE00007F8000000001FF00007F8000000000FF00007F8000000000
4794−FF00007F8000000000FF00007F8000000000FF80007F8000000000FF80007F8000000000
4795−FF80007F8000000000FF80007F8000000000FF80007F8000000000FF80007F8000000000
4796−FF80007F8000000000FF80007F8000000000FF80007F8000000000FF80007F8000000000
4797−FF80007F8000000000FF80007F8000000000FF80007F8000000000FF00007F8000000000
4798−FF00007F8000000000FF00007F8000000001FF00007F8000000001FE00007F8000000001
4799−FE00007F8000000001FE00007F8000000001FC00007F8000000003FC00007F8000000003
4800−F800007F8000000007F800007F8000000007F000007F800000000FF000007F800000000F
4801−E000007F800000001FC000007F800000003FC000007F800000003F8000007F800000007F
4802−0000007F80000000FE0000007F80000003FC0000007F80000007F80000007F8000001FE0
4803−000000FF8000007FC0000001FFC00007FF000000FFFFFFFFFFFC000000FFFFFFFFFFF000
4804−0000FFFFFFFFFF0000000041447CC34B>I<FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFF
4805−FFFFF001FFC000007FF0007F8000000FF8007F80000003F8007F80000001F8007F800000
4806−00F8007F8000000078007F8000000038007F8000000038007F800000001C007F80000000
4807−1C007F800000001C007F800000000C007F800000000C007F800000000C007F800000000C
4808−007F800000000E007F8000000006007F80000C0006007F80000C0006007F80000C000000
4809−7F80000C0000007F80000C0000007F80000C0000007F80000C0000007F80001C0000007F
4810−80001C0000007F80003C0000007F80007C0000007F8001FC0000007FFFFFFC0000007FFF
4811−FFFC0000007FFFFFFC0000007F8001FC0000007F80007C0000007F80003C0000007F8000
4812−1C0000007F80001C0000007F80000C0000007F80000C0000007F80000C0000007F80000C
4813−0000007F80000C0000007F80000C0000007F80000C0000007F8000000000007F80000000
4814−00007F8000000000007F8000000000007F8000000000007F8000000000007F8000000000
4815−007F8000000000007F8000000000007F8000000000007F8000000000007F800000000000
4816−7F8000000000007F8000000000007F8000000000007F8000000000007FC00000000001FF
4817−E000000000FFFFFFF8000000FFFFFFF8000000FFFFFFF800000037447CC340>70
4818−D<FFFFFFC003FFFFFFFFFFFFC003FFFFFFFFFFFFC003FFFFFF01FFE0000007FF80007F80
4819−000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE
4820−00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80
4821−000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE
4822−00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80
4823−000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE
4824−00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007FFF
4825−FFFFFFFE00007FFFFFFFFFFE00007FFFFFFFFFFE00007F80000001FE00007F80000001FE
4826−00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80
4827−000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE
4828−00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80
4829−000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE
4830−00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80
4831−000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE
4832−00007F80000001FE0001FFE0000007FF80FFFFFFC003FFFFFFFFFFFFC003FFFFFFFFFFFF
4833−C003FFFFFF40447CC349>72 D<FFFFFFF0FFFFFFF0FFFFFFF000FFF000007FE000003FC0
4834−00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0
4835−00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0
4836−00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0
4837−00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0
4838−00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0
4839−00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0
4840−00003FC000003FC000003FC000007FE00000FFF000FFFFFFF0FFFFFFF0FFFFFFF01C447D
4841−C323>I<FFFFFFF8000000FFFFFFF8000000FFFFFFF800000001FFE000000000007FC000
4842−000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000
4843−0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000
4844−00007F8000000000007F8000000000007F8000000000007F8000000000007F8000000000
4845−007F8000000000007F8000000000007F8000000000007F8000000000007F800000000000
4846−7F8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F
4847−8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F80
4848−00000000007F8000000000007F8000000000007F8000000000007F8000000000007F8000
4849−000000007F8000000000007F8000000030007F8000000030007F8000000030007F800000
4850−0030007F8000000070007F8000000060007F8000000060007F8000000060007F80000000
4851−60007F8000000060007F80000000E0007F80000000E0007F80000000E0007F80000001C0
4852−007F80000001C0007F80000003C0007F80000007C0007F80000007C0007F8000000FC000
4853−7F8000003FC0007F8000007FC0007F800001FFC001FFC0001FFF80FFFFFFFFFFFF80FFFF
4854−FFFFFFFF80FFFFFFFFFFFF8034447CC33D>76 D<FFFFFFFFFC0000FFFFFFFFFFC000FFFF
4855−FFFFFFF80001FFC0000FFC00007F800001FF00007F8000007F80007F8000001FE0007F80
4856−00000FE0007F80000007F0007F80000007F8007F80000003FC007F80000003FC007F8000
4857−0003FE007F80000001FE007F80000001FE007F80000001FF007F80000001FF007F800000
4858−01FF007F80000001FF007F80000001FF007F80000001FF007F80000001FF007F80000001
4859−FE007F80000001FE007F80000003FE007F80000003FC007F80000003FC007F80000007F8
4860−007F80000007F0007F8000000FE0007F8000001FC0007F8000007F80007F800001FE0000
4861−7F80000FFC00007FFFFFFFF000007FFFFFFF8000007F8000000000007F8000000000007F
4862−8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F80
4863−00000000007F8000000000007F8000000000007F8000000000007F8000000000007F8000
4864−000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000
4865−0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000
4866−00007F8000000000007F8000000000007F8000000000007F8000000000007F8000000000
4867−01FFE000000000FFFFFFC0000000FFFFFFC0000000FFFFFFC000000038447CC342>80
4868−D<FFFFFFFFE000000000FFFFFFFFFF00000000FFFFFFFFFFC000000001FFC0003FF80000
4869−00007F800003FC000000007F800000FF000000007F8000007F800000007F8000003FC000
4870−00007F8000001FE00000007F8000000FF00000007F80000007F80000007F80000007F800
4871−00007F80000007FC0000007F80000003FC0000007F80000003FE0000007F80000003FE00
4872−00007F80000003FE0000007F80000003FE0000007F80000003FE0000007F80000003FE00
4873−00007F80000003FE0000007F80000003FC0000007F80000003FC0000007F80000007FC00
4874−00007F80000007F80000007F8000000FF00000007F8000000FF00000007F8000001FE000
4875−00007F8000003FC00000007F8000007F000000007F800001FE000000007F800007F80000
4876−00007F80003FE0000000007FFFFFFF00000000007FFFFFFC00000000007F80007F800000
4877−00007F80000FE0000000007F800007F0000000007F800003FC000000007F800001FE0000
4878−00007F800000FE000000007F800000FF000000007F8000007F800000007F8000007F8000
4879−00007F8000003FC00000007F8000003FC00000007F8000003FC00000007F8000003FC000
4880−00007F8000003FC00000007F8000003FC00000007F8000003FC00000007F8000003FE000
4881−00007F8000003FE00000007F8000003FE00000007F8000003FE00000007F8000003FE000
4882−00007F8000003FE00000007F8000003FE00000007F8000003FE00060007F8000003FF000
4883−60007F8000001FF00060007F8000001FF00060007F8000001FF000E0007F8000000FF800
4884−C001FFE0000007F801C0FFFFFFC00007F80180FFFFFFC00001FC0380FFFFFFC00000FE07
4885−000000000000003FFE0000000000000007F80043467CC348>82 D<FFFFFFC0000FFFFFFF
4886−FFFFC0000FFFFFFFFFFFC0000FFFFF01FFE0000000FFF0007F800000001F80007F800000
4887−000F00007F800000000F00007F800000000600007F800000000600007F80000000060000
4888−7F800000000600007F800000000600007F800000000600007F800000000600007F800000
4889−000600007F800000000600007F800000000600007F800000000600007F80000000060000
4890−7F800000000600007F800000000600007F800000000600007F800000000600007F800000
4891−000600007F800000000600007F800000000600007F800000000600007F80000000060000
4892−7F800000000600007F800000000600007F800000000600007F800000000600007F800000
4893−000600007F800000000600007F800000000600007F800000000600007F80000000060000
4894−7F800000000600007F800000000600007F800000000600007F800000000600007F800000
4895−000600007F800000000600007F800000000600007F800000000600007F80000000060000
4896−7F800000000600007F800000000600007F800000000600007F800000000600007F800000
4897−000E00003FC00000000C00003FC00000000C00003FC00000001C00001FC00000001C0000
4898−1FE00000001800000FE00000003800000FE000000030000007F000000070000007F00000
4899−00E0000003F8000001E0000001FC000001C0000000FE000007800000007F00000F000000
4900−003F80001E000000001FE0007C0000000007FC03F00000000001FFFFE000000000007FFF
4901−80000000000007FC00000040467CC349>85 D<FFFFFF0007FFFFF8000FFFFEFFFFFF0007
4902−FFFFF8000FFFFEFFFFFF0007FFFFF8000FFFFE03FFE000001FFF000000FFF001FF800000
4903−0FFC0000003FC001FF00000007F80000001F0000FF00000007F80000000F0000FF000000
4904−07F80000000E00007F80000003FC0000000E00007F80000003FC0000000C00007F800000
4905−03FC0000000C00003FC0000003FE0000001800003FC0000003FE0000001800003FC00000
4906−03FE0000001800003FE0000006FF0000003800001FE0000006FF0000003000001FE00000
4907−06FF0000003000001FF000000EFF8000007000000FF000000C7F8000006000000FF00000
4908−0C7F8000006000000FF800001C7FC0000060000007F80000183FC00000C0000007F80000
4909−183FC00000C0000007F80000183FE00000C0000003FC0000301FE0000180000003FC0000
4910−301FE0000180000003FC0000301FE0000180000001FE0000600FF0000300000001FE0000
4911−600FF0000300000001FE0000600FF0000300000000FF0000C007F8000600000000FF0000
4912−C007F8000600000000FF0000C007F8000600000000FF8001C007FC000E000000007F8001
4913−8003FC000C000000007F80018003FC000C000000007FC0038003FE000C000000003FC003
4914−0001FE0018000000003FC0030001FE0018000000003FE0030001FF0018000000001FE006
4915−0000FF0030000000001FE0060000FF0030000000001FE0060000FF0030000000000FF00C
4916−00007F8060000000000FF00C00007F8060000000000FF00C00007F80600000000007F818
4917−00003FC0C00000000007F81800003FC0C00000000007F81800003FC0C00000000007FC30
4918−00001FE1C00000000003FC3000001FE1800000000003FC3000001FE1800000000003FE70
4919−00001FF3800000000001FE6000000FF3000000000001FE6000000FF3000000000001FFE0
4920−00000FFB000000000000FFC0000007FE000000000000FFC0000007FE000000000000FFC0
4921−000007FE0000000000007F80000003FC0000000000007F80000003FC0000000000007F80
4922−000003FC0000000000003F00000001F80000000000003F00000001F80000000000003F00
4923−000001F80000000000001E00000000F00000000000001E00000000F00000000000001E00
4924−000000F00000000000001E00000000F00000000000000C00000000600000005F467EC364
4925−>87 D<0007FC000000003FFF80000000F80FE0000003C003F00000070001F800000E0000
4926−FC00000FC0007E00001FE0007F00001FF0003F80001FF0003F80001FF0003F80001FF000
4927−1FC0001FF0001FC0000FE0001FC0000380001FC0000000001FC0000000001FC000000000
4928−1FC0000000001FC00000000FFFC0000001FFFFC000000FFE1FC000003FC01FC00000FF00
4929−1FC00003FC001FC00007F8001FC0000FF0001FC0001FE0001FC0003FC0001FC0007FC000
4930−1FC0007F80001FC0007F80001FC060FF00001FC060FF00001FC060FF00001FC060FF0000
4931−3FC060FF00003FC060FF00003FC060FF80007FC0607F8000EFC0607FC000C7E0C03FC001
4932−C7E0C01FE00783F1C007F81E03FF8001FFFC01FF00001FE0007C002B2E7CAC31>97
4933−D<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC0000000003FC000000
4934−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
4935−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
4936−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
4937−0001FC0000000001FC03FC000001FC0FFF800001FC3C07E00001FC7001F80001FDE0007E
4938−0001FD80003F0001FF80001F8001FF00001FC001FE00000FE001FC000007E001FC000007
4939−F001FC000007F001FC000003F801FC000003F801FC000003FC01FC000003FC01FC000001
4940−FC01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001
4941−FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001
4942−FC01FC000003FC01FC000003FC01FC000003F801FC000003F801FC000007F001FC000007
4943−F001FE00000FE001FE00000FC001FF00001FC001FB00003F8001F380007E0001E1C000FC
4944−0001E0F001F80001C03C07E00001801FFF8000000003FC00002F467DC436>I<00007F80
4945−000003FFF000000FC07C00003F000F0000FC00038001F80001C003F8000FC007F0001FE0
4946−07E0003FE00FE0003FE01FC0003FE01FC0003FE03F80003FE03F80001FC07F800007007F
4947−800000007F800000007F00000000FF00000000FF00000000FF00000000FF00000000FF00
4948−000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000007F0000
4949−00007F800000007F800000003F800000003F800000303FC00000301FC00000700FE00000
4950−600FE00000E007F00000C003F80001C001F800038000FC000700003F001E00001FC07800
4951−0007FFF0000000FF8000242E7DAC2B>I<000000007F000000003FFF000000003FFF0000
4952−00003FFF0000000001FF0000000000FF00000000007F00000000007F00000000007F0000
4953−0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000
4954−0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000
4955−0000007F00000000007F00000000007F00000000007F0000007F807F000003FFF07F0000
4956−0FC07C7F00003F000E7F00007E00077F0000FC0003FF0003F80001FF0007F00000FF0007
4957−E00000FF000FE000007F001FC000007F001FC000007F003F8000007F003F8000007F007F
4958−8000007F007F8000007F007F0000007F00FF0000007F00FF0000007F00FF0000007F00FF
4959−0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF
4960−0000007F00FF0000007F007F0000007F007F8000007F007F8000007F003F8000007F003F
4961−8000007F001FC000007F001FC000007F000FC00000FF000FE00000FF0007F00001FF0003
4962−F00003FF0001F800077F8000FC000E7FC0003F001C7FFE000FC0F87FFE0003FFE07FFE00
4963−007F007F002F467DC436>I<0001FE00000007FFC000001F03F000007E00FC0000FC007E
4964−0001F8003F0003F0003F0007E0001F800FE0001FC00FC0000FC01FC0000FC03F80000FE0
4965−3F800007E03F800007E07F800007F07F000007F07F000007F0FF000007F0FF000007F0FF
4966−000007F0FFFFFFFFF0FFFFFFFFF0FF00000000FF00000000FF00000000FF00000000FF00
4967−000000FF000000007F000000007F000000007F800000007F800000003F800000003F8000
4968−00301FC00000301FC00000700FC00000600FE00000E007F00000C003F00001C001F80003
4969−8000FC000700003E001E00001F80F8000003FFE0000000FF0000242E7DAC2B>I<00000F
4970−E00000007FF8000001F81E000003F03F00000FE07F80001FC0FF80001F80FF80003F80FF
4971−80007F00FF80007F00FF80007F007F0000FE001C0000FE00000000FE00000000FE000000
4972−00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000
4973−FE00000000FE00000000FE00000000FE00000000FE000000FFFFFF8000FFFFFF8000FFFF
4974−FF800000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
4975−000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000
4976−0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000
4977−00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000
4978−FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE
4979−00000001FF8000007FFFFF00007FFFFF00007FFFFF000021467EC51E>I<000000000F80
4980−0001FC007FE0000FFF81F0F0003F07E381F000FC01FF03F001F800FE01F003F0007E01E0
4981−07F0007F000007E0003F00000FE0003F80000FC0001F80001FC0001FC0001FC0001FC000
4982−1FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC000
4983−1FC0001FC0000FC0001F80000FE0003F800007E0003F000007F0007F000003F0007E0000
4984−01F800FC000001FC01F8000003BF07E00000030FFF8000000701FC000000070000000000
4985−0700000000000F00000000000F00000000000F00000000000F800000000007C000000000
4986−07E00000000007FFFFF8000003FFFFFF000003FFFFFFE00001FFFFFFF800007FFFFFFC00
4987−01FFFFFFFE0007C0000FFF000F800000FF003F0000003F803E0000001F807C0000000FC0
4988−7C0000000FC0F800000007C0F800000007C0F800000007C0F800000007C0F800000007C0
4989−FC0000000FC07C0000000F807E0000001F803E0000001F001F0000003E000F8000007C00
4990−07E00001F80001F80007E000007F003F8000001FFFFE00000001FFE000002C427DAC31>
4991−I<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC0000000003FC000000
4992−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
4993−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
4994−0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
4995−0001FC0000000001FC01FE000001FC07FFC00001FC1E07F00001FC3801F80001FC7001FC
4996−0001FCE000FC0001FDC000FE0001FD8000FE0001FF80007F0001FF00007F0001FF00007F
4997−0001FE00007F0001FE00007F0001FE00007F0001FC00007F0001FC00007F0001FC00007F
4998−0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F
4999−0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F

2808 more lines aren’t shown here.

include/Makefile+1−1
@@ -4,7 +4,7 @@ LUA= .. · 3 unmodified lines
44
55 include $(LUA)/config
66
7−SRCS= lua.h lualib.h luadebug.h
7+SRCS= lua.h lualib.h luadebug.h auxlib.h
88
99 all:
1010
include/auxlib.h+30−0
@@ -0,0 +1,30 @@
1+/*
2+** $Id: auxlib.h,v 1.3 1997/04/07 14:48:53 roberto Exp $
3+*/
4+
5+#ifndef auxlib_h
6+#define auxlib_h
7+
8+#include "lua.h"
9+
10+struct luaL_reg {
11+ char *name;
12+ lua_CFunction func;
13+};
14+
15+void luaL_openlib (struct luaL_reg *l, int n);
16+void luaL_arg_check(int cond, int numarg, char *extramsg);
17+char *luaL_check_string (int numArg);
18+char *luaL_opt_string (int numArg, char *def);
19+double luaL_check_number (int numArg);
20+double luaL_opt_number (int numArg, double def);
21+void luaL_verror (char *fmt, ...);
22+
23+
24+
25+/* -- private part (only for Lua modules */
26+
27+int luaI_findstring (char *name, char *list[]);
28+
29+
30+#endif
include/lua.h+74−49
@@ -1,61 +1,50 @@
11 /*
2−** LUA - Linguagem para Usuarios de Aplicacao
3−** Grupo de Tecnologia em Computacao Grafica
4−** TeCGraf - PUC-Rio
5−** $Id: lua.h,v 3.32 1996/11/20 13:49:32 roberto Exp $
2+** LUA - An Extensible Extension Language
3+** TeCGraf: Grupo de Tecnologia em Computacao Grafica, PUC-Rio, Brazil
4+** e-mail: lua@tecgraf.puc-rio.br
5+** $Id: lua.h,v 4.11 1997/06/23 18:27:53 roberto Exp $
66 */
77
88
99 #ifndef lua_h
1010 #define lua_h
1111
12−#define LUA_VERSION "Lua 2.5.1"
13−#define LUA_COPYRIGHT "Copyright (C) 1994-1996 TeCGraf"
12+#define LUA_VERSION "Lua 3.0"
13+#define LUA_COPYRIGHT "Copyright (C) 1994-1997 TeCGraf"
1414 #define LUA_AUTHORS "W. Celes, R. Ierusalimschy & L. H. de Figueiredo"
1515
1616
17−/* Private Part */
18−
19−typedef enum
20−{
21− LUA_T_NIL = -1,
22− LUA_T_NUMBER = -2,
23− LUA_T_STRING = -3,
24− LUA_T_ARRAY = -4,
25− LUA_T_FUNCTION = -5,
26− LUA_T_CFUNCTION= -6,
27− LUA_T_MARK = -7,
28− LUA_T_CMARK = -8,
29− LUA_T_LINE = -9,
30− LUA_T_USERDATA = 0
31−} lua_Type;
32−
33−
34−/* Public Part */
35−
3617 #define LUA_NOOBJECT 0
3718
19+#define LUA_ANYTAG (-1)
20+
3821 typedef void (*lua_CFunction) (void);
3922 typedef unsigned int lua_Object;
4023
41−lua_Object lua_setfallback (char *name, lua_CFunction fallback);
24+lua_Object lua_settagmethod (int tag, char *event); /* In: new method */
25+lua_Object lua_gettagmethod (int tag, char *event);
26+lua_Object lua_seterrormethod (void); /* In: new method */
27+
28+int lua_newtag (void);
29+void lua_settag (int tag); /* In: object */
4230
4331 void lua_error (char *s);
44−int lua_dofile (char *filename);
45−int lua_dostring (char *string);
46−int lua_callfunction (lua_Object function);
47−int lua_call (char *funcname);
32+int lua_dofile (char *filename); /* Out: returns */
33+int lua_dostring (char *string); /* Out: returns */
34+int lua_callfunction (lua_Object f);
35+ /* In: parameters; Out: returns */
4836
4937 void lua_beginblock (void);
5038 void lua_endblock (void);
5139
52−lua_Object lua_getparam (int number);
53−#define lua_getresult(_) lua_getparam(_)
40+lua_Object lua_lua2C (int number);
41+#define lua_getparam(_) lua_lua2C(_)
42+#define lua_getresult(_) lua_lua2C(_)
5443
55−#define lua_isnil(_) (lua_type(_)==LUA_T_NIL)
56−#define lua_istable(_) (lua_type(_)==LUA_T_ARRAY)
57−#define lua_isuserdata(_) (lua_type(_)>=LUA_T_USERDATA)
58−#define lua_iscfunction(_) (lua_type(_)==LUA_T_CFUNCTION)
44+int lua_isnil (lua_Object object);
45+int lua_istable (lua_Object object);
46+int lua_isuserdata (lua_Object object);
47+int lua_iscfunction (lua_Object object);
5948 int lua_isnumber (lua_Object object);
6049 int lua_isstring (lua_Object object);
6150 int lua_isfunction (lua_Object object);
@@ -63,42 +52,73 @@ int lua_isfunction (lua_Object object); · 1 unmodified line
6352 float lua_getnumber (lua_Object object);
6453 char *lua_getstring (lua_Object object);
6554 lua_CFunction lua_getcfunction (lua_Object object);
66−void *lua_getuserdata (lua_Object object);
55+void *lua_getuserdata (lua_Object object);
56+
6757
6858 void lua_pushnil (void);
6959 void lua_pushnumber (float n);
7060 void lua_pushstring (char *s);
7161 void lua_pushcfunction (lua_CFunction fn);
72−void lua_pushusertag (void *u, int tag);
62+void lua_pushusertag (void *u, int tag);
7363 void lua_pushobject (lua_Object object);
7464
65+lua_Object lua_pop (void);
66+
7567 lua_Object lua_getglobal (char *name);
76−void lua_storeglobal (char *name);
68+lua_Object lua_rawgetglobal (char *name);
69+void lua_setglobal (char *name); /* In: value */
70+void lua_rawsetglobal (char *name); /* In: value */
7771
78−void lua_storesubscript (void);
79−lua_Object lua_getsubscript (void);
72+void lua_settable (void); /* In: table, index, value */
73+void lua_rawsettable (void); /* In: table, index, value */
74+lua_Object lua_gettable (void); /* In: table, index */
75+lua_Object lua_rawgettable (void); /* In: table, index */
8076
81−int lua_type (lua_Object object);
77+int lua_tag (lua_Object object);
8278
8379
84−int lua_ref (int lock);
80+int lua_ref (int lock); /* In: value */
8581 lua_Object lua_getref (int ref);
86−void lua_pushref (int ref);
8782 void lua_unref (int ref);
8883
8984 lua_Object lua_createtable (void);
9085
86+long lua_collectgarbage (long limit);
87+
9188
89+/* =============================================================== */
9290 /* some useful macros */
9391
92+#define lua_call(name) lua_callfunction(lua_getglobal(name))
93+
94+#define lua_pushref(ref) lua_pushobject(lua_getref(ref))
95+
9496 #define lua_refobject(o,l) (lua_pushobject(o), lua_ref(l))
9597
96−#define lua_register(n,f) (lua_pushcfunction(f), lua_storeglobal(n))
98+#define lua_register(n,f) (lua_pushcfunction(f), lua_setglobal(n))
99+
100+#define lua_pushuserdata(u) lua_pushusertag(u, 0)
97101
98−#define lua_pushuserdata(u) lua_pushusertag(u, LUA_T_USERDATA)
99102
100103
101−/* for compatibility with old versions. Avoid using these macros */
104+
105+/* ==========================================================================
106+** for compatibility with old versions. Avoid using these macros/functions
107+** If your program does not use any of these, define LUA_COMPAT2_5 to 0
108+*/
109+
110+#ifndef LUA_COMPAT2_5
111+#define LUA_COMPAT2_5 1
112+#endif
113+
114+
115+#if LUA_COMPAT2_5
116+
117+
118+lua_Object lua_setfallback (char *event, lua_CFunction fallback);
119+
120+#define lua_storeglobal lua_setglobal
121+#define lua_type lua_tag
102122
103123 #define lua_lockobject(o) lua_refobject(o,1)
104124 #define lua_lock() lua_ref(1)
@@ -108,9 +128,14 @@ lua_Object lua_createtable (void); · 3 unmodified lines
108128
109129 #define lua_pushliteral(o) lua_pushstring(o)
110130
111−#define lua_getindexed(o,n) (lua_pushobject(o), lua_pushnumber(n), lua_getsubscript())
112−#define lua_getfield(o,f) (lua_pushobject(o), lua_pushliteral(f), lua_getsubscript())
131+#define lua_getindexed(o,n) (lua_pushobject(o), lua_pushnumber(n), lua_gettable())
132+#define lua_getfield(o,f) (lua_pushobject(o), lua_pushstring(f), lua_gettable())
113133
114134 #define lua_copystring(o) (strdup(lua_getstring(o)))
115135
136+#define lua_getsubscript lua_gettable
137+#define lua_storesubscript lua_settable
138+
139+#endif
140+
116141 #endif
include/lualib.h+5−14
@@ -2,7 +2,7 @@ · 1 unmodified line
22 ** Libraries to be used in LUA programs
33 ** Grupo de Tecnologia em Computacao Grafica
44 ** TeCGraf - PUC-Rio
5−** $Id: lualib.h,v 1.10 1996/08/05 20:55:24 roberto Exp $
5+** $Id: lualib.h,v 1.13 1997/03/26 22:23:15 roberto Exp $
66 */
77
88 #ifndef lualib_h
@@ -15,24 +15,15 @@ void strlib_open (void); · 6 unmodified lines
1515 void mathlib_open (void);
1616
1717
18+
1819 /* auxiliar functions (private) */
1920
20−struct lua_reg {
21− char *name;
22− lua_CFunction func;
23−};
24−
25−void luaI_openlib (struct lua_reg *l, int n);
26−void lua_arg_check(int cond, char *funcname);
27−char *lua_check_string (int numArg, char *funcname);
28−char *lua_opt_string (int numArg, char *def, char *funcname);
29−double lua_check_number (int numArg, char *funcname);
30−long lua_opt_number (int numArg, long def, char *funcname);
3121 char *luaI_addchar (int c);
22+void luaI_emptybuff (void);
3223 void luaI_addquoted (char *s);
3324
34−char *item_end (char *p);
35−int singlematch (int c, char *p);
25+char *luaL_item_end (char *p);
26+int luaL_singlematch (int c, char *p);
3627
3728 #endif
3829
src/Makefile+12−6
@@ -4,19 +4,23 @@ LUA= .. · 3 unmodified lines
44
55 include $(LUA)/config
66
7−OBJS= fallback.o\
7+OBJS= auxlib.o\
8+ fallback.o\
89 func.o\
910 hash.o\
1011 inout.o\
1112 lex.o\
12− mem.o\
13+ luamem.o\
1314 opcode.o\
1415 parser.o\
1516 table.o\
1617 tree.o\
17− undump.o
18+ undump.o\
19+ zio.o
1820
19−SRCS= fallback.c\
21+SRCS= auxlib.c\
22+ auxlib.h\
23+ fallback.c\
2024 fallback.h\
2125 func.c\
2226 func.h\
@@ -26,8 +30,8 @@ SRCS= fallback.c\ · 3 unmodified lines
2630 inout.h\
2731 lex.c\
2832 lex.h\
29− mem.c\
30− mem.h\
33+ luamem.c\
34+ luamem.h\
3135 opcode.c\
3236 opcode.h\
3337 parser.c\
@@ -39,6 +43,8 @@ SRCS= fallback.c\ · 5 unmodified lines
3943 types.h\
4044 undump.c\
4145 undump.h\
46+ zio.c\
47+ zio.h\
4248 lua.stx
4349
4450 SLIB= $(LIB)/liblua.a
src/auxlib.c+81−0
@@ -0,0 +1,81 @@
1+char *rcs_auxlib="$Id: auxlib.c,v 1.5 1997/04/14 15:30:03 roberto Exp $";
2+
3+#include <stdio.h>
4+#include <stdarg.h>
5+#include <string.h>
6+
7+#include "lua.h"
8+#include "auxlib.h"
9+#include "luadebug.h"
10+
11+
12+
13+int luaI_findstring (char *name, char *list[])
14+{
15+ int i;
16+ for (i=0; list[i]; i++)
17+ if (strcmp(list[i], name) == 0)
18+ return i;
19+ return -1; /* name not found */
20+}
21+
22+
23+void luaL_arg_check(int cond, int numarg, char *extramsg)
24+{
25+ if (!cond) {
26+ char *funcname;
27+ lua_getobjname(lua_stackedfunction(0), &funcname);
28+ if (funcname == NULL)
29+ funcname = "???";
30+ if (extramsg == NULL)
31+ luaL_verror("bad argument #%d to function `%s'", numarg, funcname);
32+ else
33+ luaL_verror("bad argument #%d to function `%s' (%s)",
34+ numarg, funcname, extramsg);
35+ }
36+}
37+
38+char *luaL_check_string (int numArg)
39+{
40+ lua_Object o = lua_getparam(numArg);
41+ luaL_arg_check(lua_isstring(o), numArg, "string expected");
42+ return lua_getstring(o);
43+}
44+
45+char *luaL_opt_string (int numArg, char *def)
46+{
47+ return (lua_getparam(numArg) == LUA_NOOBJECT) ? def :
48+ luaL_check_string(numArg);
49+}
50+
51+double luaL_check_number (int numArg)
52+{
53+ lua_Object o = lua_getparam(numArg);
54+ luaL_arg_check(lua_isnumber(o), numArg, "number expected");
55+ return lua_getnumber(o);
56+}
57+
58+
59+double luaL_opt_number (int numArg, double def)
60+{
61+ return (lua_getparam(numArg) == LUA_NOOBJECT) ? def :
62+ luaL_check_number(numArg);
63+}
64+
65+void luaL_openlib (struct luaL_reg *l, int n)
66+{
67+ int i;
68+ for (i=0; i<n; i++)
69+ lua_register(l[i].name, l[i].func);
70+}
71+
72+
73+void luaL_verror (char *fmt, ...)
74+{
75+ char buff[1000];
76+ va_list argp;
77+ va_start(argp, fmt);
78+ vsprintf(buff, fmt, argp);
79+ va_end(argp);
80+ lua_error(buff);
81+}
src/auxlib.h+30−0
@@ -0,0 +1,30 @@
1+/*
2+** $Id: auxlib.h,v 1.3 1997/04/07 14:48:53 roberto Exp $
3+*/
4+
5+#ifndef auxlib_h
6+#define auxlib_h
7+
8+#include "lua.h"
9+
10+struct luaL_reg {
11+ char *name;
12+ lua_CFunction func;
13+};
14+
15+void luaL_openlib (struct luaL_reg *l, int n);
16+void luaL_arg_check(int cond, int numarg, char *extramsg);
17+char *luaL_check_string (int numArg);
18+char *luaL_opt_string (int numArg, char *def);
19+double luaL_check_number (int numArg);
20+double luaL_opt_number (int numArg, double def);
21+void luaL_verror (char *fmt, ...);
22+
23+
24+
25+/* -- private part (only for Lua modules */
26+
27+int luaI_findstring (char *name, char *list[]);
28+
29+
30+#endif
src/fallback.c+286−109
@@ -3,130 +3,37 @@ · 2 unmodified lines
33 ** TecCGraf - PUC-Rio
44 */
55
6−char *rcs_fallback="$Id: fallback.c,v 1.25 1996/04/25 14:10:00 roberto Exp $";
6+char *rcs_fallback="$Id: fallback.c,v 2.9 1997/06/23 18:27:53 roberto Exp $";
77
88 #include <stdio.h>
99 #include <string.h>
1010
11−#include "mem.h"
11+#include "auxlib.h"
12+#include "luamem.h"
1213 #include "fallback.h"
1314 #include "opcode.h"
1415 #include "lua.h"
1516 #include "table.h"
17+#include "tree.h"
18+#include "hash.h"
1619
1720
18−static void errorFB (void);
19−static void indexFB (void);
20−static void gettableFB (void);
21−static void arithFB (void);
22−static void concatFB (void);
23−static void orderFB (void);
24−static void GDFB (void);
25−static void funcFB (void);
2621
27−
28−/*
29−** Warning: This list must be in the same order as the #define's
30−*/
31−struct FB luaI_fallBacks[] = {
32−{"error", {LUA_T_CFUNCTION, {errorFB}}, 1, 0},
33−{"index", {LUA_T_CFUNCTION, {indexFB}}, 2, 1},
34−{"gettable", {LUA_T_CFUNCTION, {gettableFB}}, 2, 1},
35−{"arith", {LUA_T_CFUNCTION, {arithFB}}, 3, 1},
36−{"order", {LUA_T_CFUNCTION, {orderFB}}, 3, 1},
37−{"concat", {LUA_T_CFUNCTION, {concatFB}}, 2, 1},
38−{"settable", {LUA_T_CFUNCTION, {gettableFB}}, 3, 0},
39−{"gc", {LUA_T_CFUNCTION, {GDFB}}, 1, 0},
40−{"function", {LUA_T_CFUNCTION, {funcFB}}, -1, -1},
41− /* no fixed number of params or results */
42−{"getglobal", {LUA_T_CFUNCTION, {indexFB}}, 1, 1}
43− /* same default behavior of index FB */
44−};
45−
46−#define N_FB (sizeof(luaI_fallBacks)/sizeof(struct FB))
47−
48−void luaI_setfallback (void)
49−{
50− int i;
51− char *name = lua_getstring(lua_getparam(1));
52− lua_Object func = lua_getparam(2);
53− if (name == NULL || !lua_isfunction(func))
54− lua_error("incorrect argument to function `setfallback'");
55− for (i=0; i<N_FB; i++)
56− {
57− if (strcmp(luaI_fallBacks[i].kind, name) == 0)
58− {
59− luaI_pushobject(&luaI_fallBacks[i].function);
60− luaI_fallBacks[i].function = *luaI_Address(func);
61− return;
62− }
63− }
64− /* name not found */
65− lua_error("incorrect argument to function `setfallback'");
66−}
67−
68−
69−static void errorFB (void)
70−{
71− lua_Object o = lua_getparam(1);
72− if (lua_isstring(o))
73− fprintf (stderr, "lua: %s\n", lua_getstring(o));
74− else
75− fprintf(stderr, "lua: unknown error\n");
76−}
77−
78−
79−static void indexFB (void)
80−{
81− lua_pushnil();
82−}
83−
84−
85−static void gettableFB (void)
86−{
87− lua_error("indexed expression not a table");
88−}
89−
90−
91−static void arithFB (void)
92−{
93− lua_error("unexpected type at conversion to number");
94−}
95−
96−static void concatFB (void)
97−{
98− lua_error("unexpected type at conversion to string");
99−}
100−
101−
102−static void orderFB (void)
103−{
104− lua_error("unexpected type at comparison");
105−}
106−
107−static void GDFB (void) { }
108−
109−static void funcFB (void)
110−{
111− lua_error("call expression not a function");
112−}
113−
114−
115−/*
22+/* -------------------------------------------
11623 ** Reference routines
11724 */
11825
11926 static struct ref {
120− Object o;
27+ TObject o;
12128 enum {LOCK, HOLD, FREE, COLLECTED} status;
12229 } *refArray = NULL;
12330 static int refSize = 0;
12431
125−int luaI_ref (Object *object, int lock)
32+int luaI_ref (TObject *object, int lock)
12633 {
12734 int i;
12835 int oldSize;
129− if (tag(object) == LUA_T_NIL)
36+ if (ttype(object) == LUA_T_NIL)
13037 return -1; /* special ref for nil */
13138 for (i=0; i<refSize; i++)
13239 if (refArray[i].status == FREE)
@@ -151,9 +58,9 @@ void lua_unref (int ref) · 18 unmodified lines
15158 }
15259
15360
154−Object *luaI_getref (int ref)
61+TObject *luaI_getref (int ref)
15562 {
156− static Object nul = {LUA_T_NIL, {0}};
63+ static TObject nul = {LUA_T_NIL, {0}};
15764 if (ref == -1)
15865 return &nul;
15966 if (ref >= 0 && ref < refSize &&
@@ -164,7 +71,7 @@ Object *luaI_getref (int ref) · 4 unmodified lines
16471 }
16572
16673
167−void luaI_travlock (int (*fn)(Object *))
74+void luaI_travlock (int (*fn)(TObject *))
16875 {
16976 int i;
17077 for (i=0; i<refSize; i++)
@@ -181,11 +88,281 @@ void luaI_invalidaterefs (void) · 10 unmodified lines
18188 refArray[i].status = COLLECTED;
18289 }
18390
184−char *luaI_travfallbacks (int (*fn)(Object *))
91+
92+/* -------------------------------------------
93+* Internal Methods
94+*/
95+
96+char *luaI_eventname[] = { /* ORDER IM */
97+ "gettable", "settable", "index", "getglobal", "setglobal", "add",
98+ "sub", "mul", "div", "pow", "unm", "lt", "le", "gt", "ge",
99+ "concat", "gc", "function",
100+ NULL
101+};
102+
103+
104+
105+static int luaI_checkevent (char *name, char *list[])
106+{
107+ int e = luaI_findstring(name, list);
108+ if (e < 0)
109+ luaL_verror("`%s' is not a valid event name", name);
110+ return e;
111+}
112+
113+
114+struct IM *luaI_IMtable = NULL;
115+
116+static int IMtable_size = 0;
117+static int last_tag = LUA_T_NIL; /* ORDER LUA_T */
118+
119+
120+/* events in LUA_T_LINE are all allowed, since this is used as a
121+* 'placeholder' for "default" fallbacks
122+*/
123+static char validevents[NUM_TYPES][IM_N] = { /* ORDER LUA_T, ORDER IM */
124+{1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1}, /* LUA_T_USERDATA */
125+{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, /* LUA_T_LINE */
126+{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* LUA_T_CMARK */
127+{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* LUA_T_MARK */
128+{1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, /* LUA_T_CFUNCTION */
129+{1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, /* LUA_T_FUNCTION */
130+{0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, /* LUA_T_ARRAY */
131+{1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, /* LUA_T_STRING */
132+{1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, /* LUA_T_NUMBER */
133+{1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} /* LUA_T_NIL */
134+};
135+
136+static int validevent (lua_Type t, int e)
137+{ /* ORDER LUA_T */
138+ return (t < LUA_T_NIL) ? 1 : validevents[-t][e];
139+}
140+
141+
142+static void init_entry (int tag)
185143 {
186144 int i;
187− for (i=0; i<N_FB; i++)
188− if (fn(&luaI_fallBacks[i].function))
189− return luaI_fallBacks[i].kind;
145+ for (i=0; i<IM_N; i++)
146+ ttype(luaI_getim(tag, i)) = LUA_T_NIL;
147+}
148+
149+void luaI_initfallbacks (void)
150+{
151+ if (luaI_IMtable == NULL) {
152+ int i;
153+ IMtable_size = NUM_TYPES+10;
154+ luaI_IMtable = newvector(IMtable_size, struct IM);
155+ for (i=LUA_T_NIL; i<=LUA_T_USERDATA; i++)
156+ init_entry(i);
157+ }
158+}
159+
160+int lua_newtag (void)
161+{
162+ --last_tag;
163+ if ((-last_tag) >= IMtable_size) {
164+ luaI_initfallbacks();
165+ IMtable_size = growvector(&luaI_IMtable, IMtable_size,
166+ struct IM, memEM, MAX_INT);
167+ }
168+ init_entry(last_tag);
169+ return last_tag;
170+}
171+
172+
173+static void checktag (int tag)
174+{
175+ if (!(last_tag <= tag && tag <= 0))
176+ luaL_verror("%d is not a valid tag", tag);
177+}
178+
179+void luaI_realtag (int tag)
180+{
181+ if (!(last_tag <= tag && tag < LUA_T_NIL))
182+ luaL_verror("tag %d is not result of `newtag'", tag);
183+}
184+
185+
186+void luaI_settag (int tag, TObject *o)
187+{
188+ luaI_realtag(tag);
189+ switch (ttype(o)) {
190+ case LUA_T_ARRAY:
191+ o->value.a->htag = tag;
192+ break;
193+ case LUA_T_USERDATA:
194+ o->value.ts->tag = tag;
195+ break;
196+ default:
197+ luaL_verror("cannot change the tag of a %s", luaI_typenames[-ttype(o)]);
198+ }
199+}
200+
201+
202+int luaI_efectivetag (TObject *o)
203+{
204+ lua_Type t = ttype(o);
205+ if (t == LUA_T_USERDATA) {
206+ int tag = o->value.ts->tag;
207+ return (tag >= 0) ? LUA_T_USERDATA : tag;
208+ }
209+ else if (t == LUA_T_ARRAY)
210+ return o->value.a->htag;
211+ else return t;
212+}
213+
214+
215+void luaI_gettagmethod (void)
216+{
217+ int t = (int)luaL_check_number(1);
218+ int e = luaI_checkevent(luaL_check_string(2), luaI_eventname);
219+ checktag(t);
220+ if (validevent(t, e))
221+ luaI_pushobject(luaI_getim(t,e));
222+}
223+
224+
225+void luaI_settagmethod (void)
226+{
227+ int t = (int)luaL_check_number(1);
228+ int e = luaI_checkevent(luaL_check_string(2), luaI_eventname);
229+ lua_Object func = lua_getparam(3);
230+ checktag(t);
231+ if (!validevent(t, e))
232+ luaL_verror("cannot change internal method `%s' for tag %d",
233+ luaI_eventname[e], t);
234+ luaL_arg_check(lua_isnil(func) || lua_isfunction(func),
235+ 3, "function expected");
236+ luaI_pushobject(luaI_getim(t,e));
237+ *luaI_getim(t, e) = *luaI_Address(func);
238+}
239+
240+
241+static void stderrorim (void)
242+{
243+ lua_Object s = lua_getparam(1);
244+ if (lua_isstring(s))
245+ fprintf(stderr, "lua: %s\n", lua_getstring(s));
246+}
247+
248+static TObject errorim = {LUA_T_CFUNCTION, {stderrorim}};
249+
250+
251+TObject *luaI_geterrorim (void)
252+{
253+ return &errorim;
254+}
255+
256+void luaI_seterrormethod (void)
257+{
258+ lua_Object func = lua_getparam(1);
259+ luaL_arg_check(lua_isnil(func) || lua_isfunction(func),
260+ 1, "function expected");
261+ luaI_pushobject(&errorim);
262+ errorim = *luaI_Address(func);
263+}
264+
265+char *luaI_travfallbacks (int (*fn)(TObject *))
266+{
267+ int e;
268+ if (fn(&errorim))
269+ return "error";
270+ for (e=IM_GETTABLE; e<=IM_FUNCTION; e++) { /* ORDER IM */
271+ int t;
272+ for (t=0; t>=last_tag; t--)
273+ if (fn(luaI_getim(t,e)))
274+ return luaI_eventname[e];
275+ }
190276 return NULL;
191277 }
278+
279+
280+/*
281+* ===================================================================
282+* compatibility with old fallback system
283+*/
284+#if LUA_COMPAT2_5
285+
286+static void errorFB (void)
287+{
288+ lua_Object o = lua_getparam(1);
289+ if (lua_isstring(o))
290+ fprintf (stderr, "lua: %s\n", lua_getstring(o));
291+ else
292+ fprintf(stderr, "lua: unknown error\n");
293+}
294+
295+
296+static void nilFB (void) { }
297+
298+
299+static void typeFB (void)
300+{
301+ lua_error("unexpected type");
302+}
303+
304+
305+static void fillvalids (IMS e, TObject *func)
306+{
307+ int t;
308+ for (t=LUA_T_NIL; t<=LUA_T_USERDATA; t++)
309+ if (validevent(t, e))
310+ *luaI_getim(t, e) = *func;
311+}
312+
313+
314+void luaI_setfallback (void)
315+{
316+ static char *oldnames [] = {"error", "getglobal", "arith", "order", NULL};
317+ TObject oldfunc;
318+ lua_CFunction replace;
319+ char *name = luaL_check_string(1);
320+ lua_Object func = lua_getparam(2);
321+ luaI_initfallbacks();
322+ luaL_arg_check(lua_isfunction(func), 2, "function expected");
323+ switch (luaI_findstring(name, oldnames)) {
324+ case 0: /* old error fallback */
325+ oldfunc = errorim;
326+ errorim = *luaI_Address(func);
327+ replace = errorFB;
328+ break;
329+ case 1: /* old getglobal fallback */
330+ oldfunc = *luaI_getim(LUA_T_NIL, IM_GETGLOBAL);
331+ *luaI_getim(LUA_T_NIL, IM_GETGLOBAL) = *luaI_Address(func);
332+ replace = nilFB;
333+ break;
334+ case 2: { /* old arith fallback */
335+ int i;
336+ oldfunc = *luaI_getim(LUA_T_NUMBER, IM_POW);
337+ for (i=IM_ADD; i<=IM_UNM; i++) /* ORDER IM */
338+ fillvalids(i, luaI_Address(func));
339+ replace = typeFB;
340+ break;
341+ }
342+ case 3: { /* old order fallback */
343+ int i;
344+ oldfunc = *luaI_getim(LUA_T_LINE, IM_LT);
345+ for (i=IM_LT; i<=IM_GE; i++) /* ORDER IM */
346+ fillvalids(i, luaI_Address(func));
347+ replace = typeFB;
348+ break;
349+ }
350+ default: {
351+ int e;
352+ if ((e = luaI_findstring(name, luaI_eventname)) >= 0) {
353+ oldfunc = *luaI_getim(LUA_T_LINE, e);
354+ fillvalids(e, luaI_Address(func));
355+ replace = (e == IM_GC || e == IM_INDEX) ? nilFB : typeFB;
356+ }
357+ else {
358+ luaL_verror("`%s' is not a valid fallback name", name);
359+ replace = NULL; /* to avoid warnings */
360+ }
361+ }
362+ }
363+ if (oldfunc.ttype != LUA_T_NIL)
364+ luaI_pushobject(&oldfunc);
365+ else
366+ lua_pushcfunction(replace);
367+}
368+#endif
src/fallback.h+50−22
@@ -1,5 +1,5 @@
11 /*
2−** $Id: fallback.h,v 1.13 1996/04/25 14:10:00 roberto Exp $
2+** $Id: fallback.h,v 1.23 1997/04/24 22:59:57 roberto Exp $
33 */
44
55 #ifndef fallback_h
@@ -8,30 +8,58 @@ · 2 unmodified lines
88 #include "lua.h"
99 #include "opcode.h"
1010
11−extern struct FB {
12− char *kind;
13− Object function;
14− int nParams;
15− int nResults;
16−} luaI_fallBacks[];
17−
18−#define FB_ERROR 0
19−#define FB_INDEX 1
20−#define FB_GETTABLE 2
21−#define FB_ARITH 3
22−#define FB_ORDER 4
23−#define FB_CONCAT 5
24−#define FB_SETTABLE 6
25−#define FB_GC 7
26−#define FB_FUNCTION 8
27−#define FB_GETGLOBAL 9
11+/*
12+* WARNING: if you change the order of this enumeration,
13+* grep "ORDER IM"
14+*/
15+typedef enum {
16+ IM_GETTABLE = 0,
17+ IM_SETTABLE,
18+ IM_INDEX,
19+ IM_GETGLOBAL,
20+ IM_SETGLOBAL,
21+ IM_ADD,
22+ IM_SUB,
23+ IM_MUL,
24+ IM_DIV,
25+ IM_POW,
26+ IM_UNM,
27+ IM_LT,
28+ IM_LE,
29+ IM_GT,
30+ IM_GE,
31+ IM_CONCAT,
32+ IM_GC,
33+ IM_FUNCTION
34+} IMS;
35+
36+#define IM_N 18
37+
38+
39+extern struct IM {
40+ TObject int_method[IM_N];
41+} *luaI_IMtable;
42+
43+extern char *luaI_eventname[];
44+
45+#define luaI_getim(tag,event) (&luaI_IMtable[-(tag)].int_method[event])
46+#define luaI_getimbyObj(o,e) (luaI_getim(luaI_efectivetag(o),(e)))
2847
2948 void luaI_setfallback (void);
30−int luaI_ref (Object *object, int lock);
31−Object *luaI_getref (int ref);
32−void luaI_travlock (int (*fn)(Object *));
49+int luaI_ref (TObject *object, int lock);
50+TObject *luaI_getref (int ref);
51+void luaI_travlock (int (*fn)(TObject *));
3352 void luaI_invalidaterefs (void);
34−char *luaI_travfallbacks (int (*fn)(Object *));
53+char *luaI_travfallbacks (int (*fn)(TObject *));
54+
55+void luaI_settag (int tag, TObject *o);
56+void luaI_realtag (int tag);
57+TObject *luaI_geterrorim (void);
58+int luaI_efectivetag (TObject *o);
59+void luaI_settagmethod (void);
60+void luaI_gettagmethod (void);
61+void luaI_seterrormethod (void);
62+void luaI_initfallbacks (void);
3563
3664 #endif
3765
src/func.c+26−16
@@ -2,9 +2,10 @@ · 1 unmodified line
22
33 #include "luadebug.h"
44 #include "table.h"
5−#include "mem.h"
5+#include "luamem.h"
66 #include "func.h"
77 #include "opcode.h"
8+#include "inout.h"
89
910
1011 static TFunc *function_root = NULL;
@@ -23,7 +24,7 @@ void luaI_initTFunc (TFunc *f) · 12 unmodified lines
2324 f->size = 0;
2425 f->code = NULL;
2526 f->lineDefined = 0;
26− f->fileName = NULL;
27+ f->fileName = lua_parsedfile;
2728 f->locvars = NULL;
2829 }
2930
@@ -49,47 +50,56 @@ void luaI_freefunc (TFunc *f) · 19 unmodified lines
4950 luaI_free (f);
5051 }
5152
53+
54+void luaI_funcfree (TFunc *l)
55+{
56+ while (l) {
57+ TFunc *next = l->next;
58+ luaI_freefunc(l);
59+ l = next;
60+ }
61+}
62+
5263 /*
5364 ** Garbage collection function.
54−** This function traverse the function list freeing unindexed functions
5565 */
56−Long luaI_funccollector (void)
66+TFunc *luaI_funccollector (long *acum)
5767 {
5868 TFunc *curr = function_root;
5969 TFunc *prev = NULL;
60− Long counter = 0;
61− while (curr)
62− {
70+ TFunc *frees = NULL;
71+ long counter = 0;
72+ while (curr) {
6373 TFunc *next = curr->next;
64− if (!curr->marked)
65− {
74+ if (!curr->marked) {
6675 if (prev == NULL)
6776 function_root = next;
6877 else
6978 prev->next = next;
70− luaI_freefunc (curr);
79+ curr->next = frees;
80+ frees = curr;
7181 ++counter;
7282 }
73− else
74− {
83+ else {
7584 curr->marked = 0;
7685 prev = curr;
7786 }
7887 curr = next;
7988 }
80− return counter;
89+ *acum += counter;
90+ return frees;
8191 }
8292
8393
8494 void lua_funcinfo (lua_Object func, char **filename, int *linedefined)
8595 {
86− Object *f = luaI_Address(func);
87− if (f->tag == LUA_T_MARK || f->tag == LUA_T_FUNCTION)
96+ TObject *f = luaI_Address(func);
97+ if (f->ttype == LUA_T_MARK || f->ttype == LUA_T_FUNCTION)
8898 {
8999 *filename = f->value.tf->fileName;
90100 *linedefined = f->value.tf->lineDefined;
91101 }
92− else if (f->tag == LUA_T_CMARK || f->tag == LUA_T_CFUNCTION)
102+ else if (f->ttype == LUA_T_CMARK || f->ttype == LUA_T_CFUNCTION)
93103 {
94104 *filename = "(C)";
95105 *linedefined = -1;
src/func.h+3−2
@@ -1,5 +1,5 @@
11 /*
2−** $Id: func.h,v 1.8 1996/03/14 15:54:20 roberto Exp $
2+** $Id: func.h,v 1.9 1997/05/14 18:38:29 roberto Exp $
33 */
44
55 #ifndef func_h
@@ -30,7 +30,8 @@ typedef struct TFunc · 24 unmodified lines
3030 LocVar *locvars;
3131 } TFunc;
3232
33−Long luaI_funccollector (void);
33+TFunc *luaI_funccollector (long *cont);
34+void luaI_funcfree (TFunc *l);
3435 void luaI_insertfunction (TFunc *f);
3536
3637 void luaI_initTFunc (TFunc *f);
src/hash.c+147−134
@@ -3,14 +3,15 @@ · 2 unmodified lines
33 ** hash manager for lua
44 */
55
6−char *rcs_hash="$Id: hash.c,v 2.32 1996/11/18 13:48:44 roberto Exp $";
6+char *rcs_hash="$Id: hash.c,v 2.43 1997/05/14 18:38:29 roberto Exp $";
77
88
9−#include "mem.h"
9+#include "luamem.h"
1010 #include "opcode.h"
1111 #include "hash.h"
1212 #include "table.h"
1313 #include "lua.h"
14+#include "auxlib.h"
1415
1516
1617 #define nhash(t) ((t)->nhash)
@@ -24,13 +25,15 @@ char *rcs_hash="$Id: hash.c,v 2.32 1996/11/18 13:48:44 roberto Exp $"; · 7 unmodified lines
2425
2526 #define REHASH_LIMIT 0.70 /* avoid more than this % full */
2627
28+#define TagDefault LUA_T_ARRAY;
29+
2730
2831 static Hash *listhead = NULL;
2932
3033
3134 /* hash dimensions values */
3235 static Long dimensions[] =
33− {3L, 5L, 7L, 11L, 23L, 47L, 97L, 197L, 397L, 797L, 1597L, 3203L, 6421L,
36+ {5L, 11L, 23L, 47L, 97L, 197L, 397L, 797L, 1597L, 3203L, 6421L,
3437 12853L, 25717L, 51437L, 102811L, 205619L, 411233L, 822433L,
3538 1644817L, 3289613L, 6579211L, 13158023L, MAX_INT};
3639
@@ -46,16 +49,32 @@ int luaI_redimension (int nhash) · 9 unmodified lines
4649 return 0; /* to avoid warnings */
4750 }
4851
49−static int hashindex (Hash *t, Object *ref) /* hash function */
52+
53+int lua_equalObj (TObject *t1, TObject *t2)
54+{
55+ if (ttype(t1) != ttype(t2)) return 0;
56+ switch (ttype(t1))
57+ {
58+ case LUA_T_NIL: return 1;
59+ case LUA_T_NUMBER: return nvalue(t1) == nvalue(t2);
60+ case LUA_T_STRING: case LUA_T_USERDATA: return svalue(t1) == svalue(t2);
61+ case LUA_T_ARRAY: return avalue(t1) == avalue(t2);
62+ case LUA_T_FUNCTION: return t1->value.tf == t2->value.tf;
63+ case LUA_T_CFUNCTION: return fvalue(t1) == fvalue(t2);
64+ default:
65+ lua_error("internal error in `lua_equalObj'");
66+ return 0; /* UNREACHEABLE */
67+ }
68+}
69+
70+
71+static long int hashindex (TObject *ref)
5072 {
5173 long int h;
52− switch (tag(ref)) {
53− case LUA_T_NIL:
54− lua_error ("unexpected type to index table");
55− h = 0; /* UNREACHEABLE */
74+ switch (ttype(ref)) {
5675 case LUA_T_NUMBER:
5776 h = (long int)nvalue(ref); break;
58− case LUA_T_STRING:
77+ case LUA_T_STRING: case LUA_T_USERDATA:
5978 h = tsvalue(ref)->hash; break;
6079 case LUA_T_FUNCTION:
6180 h = (IntPoint)ref->value.tf; break;
@@ -63,38 +82,29 @@ static int hashindex (Hash *t, Object *ref) /* hash function */ · 1 unmodified line
6382 h = (IntPoint)fvalue(ref); break;
6483 case LUA_T_ARRAY:
6584 h = (IntPoint)avalue(ref); break;
66− default: /* user data */
67− h = (IntPoint)uvalue(ref); break;
85+ default:
86+ lua_error ("unexpected type to index table");
87+ h = 0; /* UNREACHEABLE */
6888 }
6989 if (h < 0) h = -h;
70− return h%nhash(t); /* make it a valid index */
90+ return h;
7191 }
7292
73−int lua_equalObj (Object *t1, Object *t2)
93+
94+static int present (Hash *t, TObject *key)
7495 {
75− if (tag(t1) != tag(t2)) return 0;
76− switch (tag(t1))
77− {
78− case LUA_T_NIL: return 1;
79− case LUA_T_NUMBER: return nvalue(t1) == nvalue(t2);
80− case LUA_T_STRING: return svalue(t1) == svalue(t2);
81− case LUA_T_ARRAY: return avalue(t1) == avalue(t2);
82− case LUA_T_FUNCTION: return t1->value.tf == t2->value.tf;
83− case LUA_T_CFUNCTION: return fvalue(t1) == fvalue(t2);
84− default: return uvalue(t1) == uvalue(t2);
96+ long int h = hashindex(key);
97+ int tsize = nhash(t);
98+ int h1 = h%tsize;
99+ TObject *rf = ref(node(t, h1));
100+ if (ttype(rf) != LUA_T_NIL && !lua_equalObj(key, rf)) {
101+ int h2 = h%(tsize-2) + 1;
102+ do {
103+ h1 = (h1+h2)%tsize;
104+ rf = ref(node(t, h1));
105+ } while (ttype(rf) != LUA_T_NIL && !lua_equalObj(key, rf));
85106 }
86−}
87−
88−static int present (Hash *t, Object *ref)
89−{
90− int h = hashindex(t, ref);
91− while (tag(ref(node(t, h))) != LUA_T_NIL)
92− {
93− if (lua_equalObj(ref, ref(node(t, h))))
94− return h;
95− h = (h+1) % nhash(t);
96− }
97− return h;
107+ return h1;
98108 }
99109
100110
@@ -106,7 +116,7 @@ static Node *hashnodecreate (int nhash) · 5 unmodified lines
106116 int i;
107117 Node *v = newvector (nhash, Node);
108118 for (i=0; i<nhash; i++)
109− tag(ref(&v[i])) = LUA_T_NIL;
119+ ttype(ref(&v[i])) = LUA_T_NIL;
110120 return v;
111121 }
112122
@@ -121,6 +131,7 @@ static Hash *hashcreate (int nhash) · 8 unmodified lines
121131 nhash(t) = nhash;
122132 nuse(t) = 0;
123133 markarray(t) = 0;
134+ t->htag = TagDefault;
124135 return t;
125136 }
126137
@@ -146,7 +157,7 @@ void lua_hashmark (Hash *h) · 19 unmodified lines
146157 for (i=0; i<nhash(h); i++)
147158 {
148159 Node *n = node(h,i);
149− if (tag(ref(n)) != LUA_T_NIL)
160+ if (ttype(ref(n)) != LUA_T_NIL)
150161 {
151162 lua_markobject(&n->ref);
152163 lua_markobject(&n->val);
@@ -156,49 +167,50 @@ void lua_hashmark (Hash *h) · 3 unmodified lines
156167 }
157168
158169
159−static void call_fallbacks (void)
170+void luaI_hashcallIM (Hash *l)
160171 {
161− Hash *curr_array;
162− Object t;
163− tag(&t) = LUA_T_ARRAY;
164− for (curr_array = listhead; curr_array; curr_array = curr_array->next)
165− if (markarray(curr_array) != 1)
166− {
167− avalue(&t) = curr_array;
168− luaI_gcFB(&t);
169− }
170− tag(&t) = LUA_T_NIL;
171− luaI_gcFB(&t); /* end of list */
172+ TObject t;
173+ ttype(&t) = LUA_T_ARRAY;
174+ for (; l; l=l->next) {
175+ avalue(&t) = l;
176+ luaI_gcIM(&t);
177+ }
172178 }
173179
174−
175−/*
176−** Garbage collection to arrays
177−** Delete all unmarked arrays.
178−*/
179−Long lua_hashcollector (void)
180+
181+void luaI_hashfree (Hash *frees)
180182 {
181− Hash *curr_array = listhead, *prev = NULL;
182− Long counter = 0;
183− call_fallbacks();
184− while (curr_array != NULL)
185− {
186− Hash *next = curr_array->next;
187− if (markarray(curr_array) != 1)
188− {
189− if (prev == NULL) listhead = next;
190− else prev->next = next;
191− hashdelete(curr_array);
192− ++counter;
183+ while (frees) {
184+ Hash *next = frees->next;
185+ hashdelete(frees);
186+ frees = next;
193187 }
194− else
195− {
196− markarray(curr_array) = 0;
197− prev = curr_array;
188+}
189+
190+
191+Hash *luaI_hashcollector (long *acum)
192+{
193+ Hash *curr_array = listhead, *prev = NULL, *frees = NULL;
194+ long counter = 0;
195+ while (curr_array != NULL) {
196+ Hash *next = curr_array->next;
197+ if (markarray(curr_array) != 1) {
198+ if (prev == NULL)
199+ listhead = next;
200+ else
201+ prev->next = next;
202+ curr_array->next = frees;
203+ frees = curr_array;
204+ ++counter;
205+ }
206+ else {
207+ markarray(curr_array) = 0;
208+ prev = curr_array;
209+ }
210+ curr_array = next;
198211 }
199− curr_array = next;
200− }
201− return counter;
212+ *acum += counter;
213+ return frees;
202214 }
203215
204216
@@ -220,32 +232,45 @@ Hash *lua_createarray (int nhash) · 15 unmodified lines
220232
221233
222234 /*
223−** Re-hash
235+** Rehash:
236+** Check if table has deleted slots. It it has, it does not need to
237+** grow, since rehash will reuse them.
224238 */
239+static int emptyslots (Hash *t)
240+{
241+ int i;
242+ for (i=nhash(t)-1; i>=0; i--) {
243+ Node *n = node(t, i);
244+ if (ttype(ref(n)) != LUA_T_NIL && ttype(val(n)) == LUA_T_NIL)
245+ return 1;
246+ }
247+ return 0;
248+}
249+
225250 static void rehash (Hash *t)
226251 {
227− int i;
228− int nold = nhash(t);
229− Node *vold = nodevector(t);
230− nhash(t) = luaI_redimension(nhash(t));
231− nodevector(t) = hashnodecreate(nhash(t));
232− for (i=0; i<nold; i++)
233− {
234− Node *n = vold+i;
235− if (tag(ref(n)) != LUA_T_NIL && tag(val(n)) != LUA_T_NIL)
236− *node(t, present(t, ref(n))) = *n; /* copy old node to new hahs */
237− }
238− luaI_free(vold);
252+ int nold = nhash(t);
253+ Node *vold = nodevector(t);
254+ int i;
255+ if (!emptyslots(t))
256+ nhash(t) = luaI_redimension(nhash(t));
257+ nodevector(t) = hashnodecreate(nhash(t));
258+ for (i=0; i<nold; i++) {
259+ Node *n = vold+i;
260+ if (ttype(ref(n)) != LUA_T_NIL && ttype(val(n)) != LUA_T_NIL)
261+ *node(t, present(t, ref(n))) = *n; /* copy old node to new hash */
262+ }
263+ luaI_free(vold);
239264 }
240265
241266 /*
242267 ** If the hash node is present, return its pointer, otherwise return
243268 ** null.
244269 */
245−Object *lua_hashget (Hash *t, Object *ref)
270+TObject *lua_hashget (Hash *t, TObject *ref)
246271 {
247272 int h = present(t, ref);
248− if (tag(ref(node(t, h))) != LUA_T_NIL) return val(node(t, h));
273+ if (ttype(ref(node(t, h))) != LUA_T_NIL) return val(node(t, h));
249274 else return NULL;
250275 }
251276
@@ -254,25 +279,19 @@ Object *lua_hashget (Hash *t, Object *ref) · 2 unmodified lines
254279 ** If the hash node is present, return its pointer, otherwise create a new
255280 ** node for the given reference and also return its pointer.
256281 */
257−Object *lua_hashdefine (Hash *t, Object *ref)
282+TObject *lua_hashdefine (Hash *t, TObject *ref)
258283 {
259− int h;
260− Node *n;
261− h = present(t, ref);
262− n = node(t, h);
263− if (tag(ref(n)) == LUA_T_NIL)
264− {
265− nuse(t)++;
266− if ((float)nuse(t) > (float)nhash(t)*REHASH_LIMIT)
267− {
268− rehash(t);
269− h = present(t, ref);
270− n = node(t, h);
284+ Node *n = node(t, present(t, ref));
285+ if (ttype(ref(n)) == LUA_T_NIL) {
286+ nuse(t)++;
287+ if ((float)nuse(t) > (float)nhash(t)*REHASH_LIMIT) {
288+ rehash(t);
289+ n = node(t, present(t, ref));
290+ }
291+ *ref(n) = *ref;
292+ ttype(val(n)) = LUA_T_NIL;
271293 }
272− *ref(n) = *ref;
273− tag(val(n)) = LUA_T_NIL;
274− }
275− return (val(n));
294+ return (val(n));
276295 }
277296
278297
@@ -284,36 +303,30 @@ Object *lua_hashdefine (Hash *t, Object *ref) · 5 unmodified lines
284303 */
285304 static void hashnext (Hash *t, int i)
286305 {
287− if (i >= nhash(t))
288− return;
289− while (tag(ref(node(t,i))) == LUA_T_NIL || tag(val(node(t,i))) == LUA_T_NIL)
290− {
291− if (++i >= nhash(t))
292− return;
293− }
294− luaI_pushobject(ref(node(t,i)));
295− luaI_pushobject(val(node(t,i)));
306+ Node *n;
307+ int tsize = nhash(t);
308+ if (i >= tsize)
309+ return;
310+ n = node(t, i);
311+ while (ttype(ref(n)) == LUA_T_NIL || ttype(val(n)) == LUA_T_NIL) {
312+ if (++i >= tsize)
313+ return;
314+ n = node(t, i);
315+ }
316+ luaI_pushobject(ref(node(t,i)));
317+ luaI_pushobject(val(node(t,i)));
296318 }
297319
298320 void lua_next (void)
299321 {
300− Hash *t;
301− lua_Object o = lua_getparam(1);
302− lua_Object r = lua_getparam(2);
303− if (o == LUA_NOOBJECT || r == LUA_NOOBJECT)
304− lua_error ("too few arguments to function `next'");
305− if (lua_getparam(3) != LUA_NOOBJECT)
306− lua_error ("too many arguments to function `next'");
307− if (!lua_istable(o))
308− lua_error ("first argument of function `next' is not a table");
309− t = avalue(luaI_Address(o));
310− if (lua_isnil(r))
311− {
312− hashnext(t, 0);
313− }
314− else
315− {
316− int h = present (t, luaI_Address(r));
317− hashnext(t, h+1);
318− }
322+ Hash *t;
323+ lua_Object o = lua_getparam(1);
324+ lua_Object r = lua_getparam(2);
325+ luaL_arg_check(lua_istable(o), 1, "table expected");
326+ luaL_arg_check(r != LUA_NOOBJECT, 2, "value expected");
327+ t = avalue(luaI_Address(o));
328+ if (lua_isnil(r))
329+ hashnext(t, 0);
330+ else
331+ hashnext(t, present(t, luaI_Address(r))+1);
319332 }
src/hash.h+17−16
@@ -1,7 +1,7 @@
11 /*
22 ** hash.h
33 ** hash manager for lua
4−** $Id: hash.h,v 2.12 1996/05/06 14:30:27 roberto Exp $
4+** $Id: hash.h,v 2.16 1997/05/14 18:38:29 roberto Exp $
55 */
66
77 #ifndef hash_h
@@ -10,29 +10,30 @@ · 2 unmodified lines
1010 #include "types.h"
1111 #include "opcode.h"
1212
13−typedef struct node
14−{
15− Object ref;
16− Object val;
13+typedef struct node {
14+ TObject ref;
15+ TObject val;
1716 } Node;
1817
19−typedef struct Hash
20−{
21− struct Hash *next;
22− Node *node;
23− int nhash;
24− int nuse;
25− char mark;
18+typedef struct Hash {
19+ struct Hash *next;
20+ Node *node;
21+ int nhash;
22+ int nuse;
23+ int htag;
24+ char mark;
2625 } Hash;
2726
2827
29−int lua_equalObj (Object *t1, Object *t2);
28+int lua_equalObj (TObject *t1, TObject *t2);
3029 int luaI_redimension (int nhash);
3130 Hash *lua_createarray (int nhash);
3231 void lua_hashmark (Hash *h);
33−Long lua_hashcollector (void);
34−Object *lua_hashget (Hash *t, Object *ref);
35−Object *lua_hashdefine (Hash *t, Object *ref);
32+Hash *luaI_hashcollector (long *count);
33+void luaI_hashcallIM (Hash *l);
34+void luaI_hashfree (Hash *frees);
35+TObject *lua_hashget (Hash *t, TObject *ref);
36+TObject *lua_hashdefine (Hash *t, TObject *ref);
3637 void lua_next (void);
3738
3839 #endif
src/inout.c+278−170
@@ -5,18 +5,24 @@ · 4 unmodified lines
55 ** Also provides some predefined lua functions.
66 */
77
8−char *rcs_inout="$Id: inout.c,v 2.43 1996/09/25 12:57:22 roberto Exp $";
8+char *rcs_inout="$Id: inout.c,v 2.69 1997/06/27 22:38:49 roberto Exp $";
99
1010 #include <stdio.h>
1111 #include <string.h>
1212
13+#include "auxlib.h"
14+#include "fallback.h"
15+#include "hash.h"
16+#include "inout.h"
1317 #include "lex.h"
18+#include "lua.h"
19+#include "luamem.h"
20+#include "luamem.h"
1421 #include "opcode.h"
15−#include "inout.h"
1622 #include "table.h"
1723 #include "tree.h"
18−#include "lua.h"
19−#include "mem.h"
24+#include "undump.h"
25+#include "zio.h"
2026
2127
2228 /* Exported variables */
@@ -24,92 +30,93 @@ Word lua_linenumber; · 1 unmodified line
2430 char *lua_parsedfile;
2531
2632
27−static FILE *fp;
28−static char *st;
33+char *luaI_typenames[] = { /* ORDER LUA_T */
34+ "userdata", "line", "cmark", "mark", "function",
35+ "function", "table", "string", "number", "nil",
36+ NULL
37+};
2938
30−/*
31−** Function to get the next character from the input file
32−*/
33−static int fileinput (void)
34−{
35− int c = fgetc(fp);
36− return (c == EOF) ? 0 : c;
37−}
3839
39−/*
40−** Function to get the next character from the input string
41−*/
42−static int stringinput (void)
40+
41+void luaI_setparsedfile (char *name)
4342 {
44− return *st++;
43+ lua_parsedfile = luaI_createfixedstring(name)->str;
4544 }
4645
47−/*
48−** Function to open a file to be input unit.
49−** Return the file.
50−*/
51−FILE *lua_openfile (char *fn)
46+
47+int lua_doFILE (FILE *f, int bin)
5248 {
53− lua_setinput (fileinput);
54− if (fn == NULL)
55− {
56− fp = stdin;
57− fn = "(stdin)";
58− }
59− else
60− fp = fopen (fn, "r");
61− if (fp == NULL)
62− return NULL;
63− lua_parsedfile = luaI_createfixedstring(fn)->str;
64− return fp;
65−}
49+ ZIO z;
50+ luaZ_Fopen(&z, f);
51+ if (bin)
52+ return luaI_undump(&z);
53+ else {
54+ lua_setinput(&z);
55+ return lua_domain();
56+ }
57+}
6658
67−/*
68−** Function to close an opened file
69−*/
70−void lua_closefile (void)
59+
60+int lua_dofile (char *filename)
7161 {
72− if (fp != NULL && fp != stdin)
73− {
74− fclose (fp);
75− fp = NULL;
76− }
77−}
62+ int status;
63+ int c;
64+ FILE *f = (filename == NULL) ? stdin : fopen(filename, "r");
65+ if (f == NULL)
66+ return 2;
67+ luaI_setparsedfile(filename?filename:"(stdin)");
68+ c = fgetc(f);
69+ ungetc(c, f);
70+ if (c == ID_CHUNK) {
71+ f = freopen(filename, "rb", f); /* set binary mode */
72+ status = lua_doFILE(f, 1);
73+ }
74+ else {
75+ if (c == '#')
76+ while ((c=fgetc(f)) != '\n') /* skip first line */;
77+ status = lua_doFILE(f, 0);
78+ }
79+ if (f != stdin)
80+ fclose(f);
81+ return status;
82+}
83+
84+
7885
79−/*
80−** Function to open a string to be input unit
81−*/
8286 #define SIZE_PREF 20 /* size of string prefix to appear in error messages */
83−void lua_openstring (char *s)
84−{
85− char buff[SIZE_PREF+25];
86− lua_setinput(stringinput);
87− st = s;
88− strcpy(buff, "(dostring) >> ");
89− strncat(buff, s, SIZE_PREF);
90− if (strlen(s) > SIZE_PREF) strcat(buff, "...");
91− lua_parsedfile = luaI_createfixedstring(buff)->str;
92−}
9387
94−/*
95−** Function to close an opened string
96−*/
97−void lua_closestring (void)
88+
89+int lua_dobuffer (char *buff, int size)
9890 {
91+ int status;
92+ ZIO z;
93+ luaI_setparsedfile("(buffer)");
94+ luaZ_mopen(&z, buff, size);
95+ status = luaI_undump(&z);
96+ return status;
9997 }
10098
10199
102−static void check_arg (int cond, char *func)
100+int lua_dostring (char *str)
103101 {
104− if (!cond)
105− {
106− char buff[100];
107− sprintf(buff, "incorrect argument to function `%s'", func);
108− lua_error(buff);
109− }
102+ int status;
103+ char buff[SIZE_PREF+25];
104+ char *temp;
105+ ZIO z;
106+ if (str == NULL) return 1;
107+ sprintf(buff, "(dostring) >> %.20s", str);
108+ temp = strchr(buff, '\n');
109+ if (temp) *temp = 0; /* end string after first line */
110+ luaI_setparsedfile(buff);
111+ luaZ_sopen(&z, str);
112+ lua_setinput(&z);
113+ status = lua_domain();
114+ return status;
110115 }
111116
112117
118+
119+
113120 static int passresults (void)
114121 {
115122 int arg = 0;
@@ -118,30 +125,53 @@ static int passresults (void) · 2 unmodified lines
118125 lua_pushobject(obj);
119126 return arg-1;
120127 }
128+
129+
130+static void packresults (void)
131+{
132+ int arg = 0;
133+ lua_Object obj;
134+ lua_Object table = lua_createtable();
135+ while ((obj = lua_getresult(++arg)) != LUA_NOOBJECT) {
136+ lua_pushobject(table);
137+ lua_pushnumber(arg);
138+ lua_pushobject(obj);
139+ lua_rawsettable();
140+ }
141+ lua_pushobject(table);
142+ lua_pushstring("n");
143+ lua_pushnumber(arg-1);
144+ lua_rawsettable();
145+ lua_pushobject(table); /* final result */
146+}
121147
122148 /*
123149 ** Internal function: do a string
124150 */
125−void lua_internaldostring (void)
151+static void lua_internaldostring (void)
126152 {
127− lua_Object obj = lua_getparam (1);
128− if (lua_isstring(obj) && lua_dostring(lua_getstring(obj)) == 0)
153+ lua_Object err = lua_getparam(2);
154+ if (err != LUA_NOOBJECT) { /* set new error method */
155+ luaL_arg_check(lua_isnil(err) || lua_isfunction(err), 2,
156+ "must be a valid error handler");
157+ lua_pushobject(err);
158+ err = lua_seterrormethod();
159+ }
160+ if (lua_dostring(luaL_check_string(1)) == 0)
129161 if (passresults() == 0)
130162 lua_pushuserdata(NULL); /* at least one result to signal no errors */
163+ if (err != LUA_NOOBJECT) { /* restore old error method */
164+ lua_pushobject(err);
165+ lua_seterrormethod();
166+ }
131167 }
132168
133169 /*
134170 ** Internal function: do a file
135171 */
136−void lua_internaldofile (void)
172+static void lua_internaldofile (void)
137173 {
138− lua_Object obj = lua_getparam (1);
139− char *fname = NULL;
140− if (lua_isstring(obj))
141− fname = lua_getstring(obj);
142− else if (obj != LUA_NOOBJECT)
143− lua_error("invalid argument to function `dofile'");
144− /* else fname = NULL */
174+ char *fname = luaL_opt_string(1, NULL);
145175 if (lua_dofile(fname) == 0)
146176 if (passresults() == 0)
147177 lua_pushuserdata(NULL); /* at least one result to signal no errors */
@@ -150,36 +180,28 @@ void lua_internaldofile (void) · 2 unmodified lines
150180
151181 static char *tostring (lua_Object obj)
152182 {
153− char *buff = luaI_buffer(20);
154− if (lua_isstring(obj)) /* get strings and numbers */
155− return lua_getstring(obj);
156− else switch(lua_type(obj))
157− {
158− case LUA_T_FUNCTION:
159− sprintf(buff, "function: %p", (luaI_Address(obj))->value.tf);
160− break;
161− case LUA_T_CFUNCTION:
162− sprintf(buff, "cfunction: %p", lua_getcfunction(obj));
163− break;
164− case LUA_T_ARRAY:
165− sprintf(buff, "table: %p", avalue(luaI_Address(obj)));
166− break;
167− case LUA_T_NIL:
168− sprintf(buff, "nil");
169− break;
170− default:
171− sprintf(buff, "userdata: %p", lua_getuserdata(obj));
172− break;
183+ TObject *o = luaI_Address(obj);
184+ switch (ttype(o)) {
185+ case LUA_T_NUMBER: case LUA_T_STRING:
186+ return lua_getstring(obj);
187+ case LUA_T_ARRAY: case LUA_T_FUNCTION:
188+ case LUA_T_CFUNCTION: case LUA_T_NIL:
189+ return luaI_typenames[-ttype(o)];
190+ case LUA_T_USERDATA: {
191+ char *buff = luaI_buffer(30);
192+ sprintf(buff, "userdata: %p", o->value.ts->u.v);
193+ return buff;
194+ }
195+ default: return "<unknown object>";
173196 }
174− return buff;
175197 }
176198
177−void luaI_tostring (void)
199+static void luaI_tostring (void)
178200 {
179201 lua_pushstring(tostring(lua_getparam(1)));
180202 }
181203
182−void luaI_print (void)
204+static void luaI_print (void)
183205 {
184206 int i = 1;
185207 lua_Object obj;
@@ -187,45 +209,18 @@ void luaI_print (void) · 1 unmodified line
187209 printf("%s\n", tostring(obj));
188210 }
189211
190−/*
191−** Internal function: return an object type.
192−*/
193−void luaI_type (void)
212+static void luaI_type (void)
194213 {
195214 lua_Object o = lua_getparam(1);
196− int t;
197− if (o == LUA_NOOBJECT)
198− lua_error("no parameter to function 'type'");
199− t = lua_type(o);
200− switch (t)
201− {
202− case LUA_T_NIL :
203− lua_pushliteral("nil");
204− break;
205− case LUA_T_NUMBER :
206− lua_pushliteral("number");
207− break;
208− case LUA_T_STRING :
209− lua_pushliteral("string");
210− break;
211− case LUA_T_ARRAY :
212− lua_pushliteral("table");
213− break;
214− case LUA_T_FUNCTION :
215− case LUA_T_CFUNCTION :
216− lua_pushliteral("function");
217− break;
218− default :
219− lua_pushliteral("userdata");
220− break;
221− }
222− lua_pushnumber(t);
215+ luaL_arg_check(o != LUA_NOOBJECT, 1, "no argument");
216+ lua_pushstring(luaI_typenames[-ttype(luaI_Address(o))]);
217+ lua_pushnumber(lua_tag(o));
223218 }
224−
219+
225220 /*
226221 ** Internal function: convert an object to a number
227222 */
228−void lua_obj2number (void)
223+static void lua_obj2number (void)
229224 {
230225 lua_Object o = lua_getparam(1);
231226 if (lua_isnumber(o))
@@ -233,68 +228,181 @@ void lua_obj2number (void) · 1 unmodified line
233228 }
234229
235230
236−void luaI_error (void)
231+static void luaI_error (void)
237232 {
238233 char *s = lua_getstring(lua_getparam(1));
239234 if (s == NULL) s = "(no message)";
240235 lua_error(s);
241236 }
242237
243−void luaI_assert (void)
238+static void luaI_assert (void)
244239 {
245240 lua_Object p = lua_getparam(1);
246241 if (p == LUA_NOOBJECT || lua_isnil(p))
247242 lua_error("assertion failed!");
248243 }
249244
250−void luaI_setglobal (void)
245+static void luaI_setglobal (void)
246+{
247+ lua_Object value = lua_getparam(2);
248+ luaL_arg_check(value != LUA_NOOBJECT, 2, NULL);
249+ lua_pushobject(value);
250+ lua_setglobal(luaL_check_string(1));
251+ lua_pushobject(value); /* return given value */
252+}
253+
254+static void luaI_rawsetglobal (void)
251255 {
252− lua_Object name = lua_getparam(1);
253256 lua_Object value = lua_getparam(2);
254− check_arg(lua_isstring(name), "setglobal");
257+ luaL_arg_check(value != LUA_NOOBJECT, 2, NULL);
255258 lua_pushobject(value);
256− lua_storeglobal(lua_getstring(name));
259+ lua_rawsetglobal(luaL_check_string(1));
257260 lua_pushobject(value); /* return given value */
258261 }
259262
260−void luaI_getglobal (void)
263+static void luaI_getglobal (void)
261264 {
262− lua_Object name = lua_getparam(1);
263− check_arg(lua_isstring(name), "getglobal");
264− lua_pushobject(lua_getglobal(lua_getstring(name)));
265+ lua_pushobject(lua_getglobal(luaL_check_string(1)));
265266 }
266267
267−#define MAXPARAMS 256
268−void luaI_call (void)
268+static void luaI_rawgetglobal (void)
269+{
270+ lua_pushobject(lua_rawgetglobal(luaL_check_string(1)));
271+}
272+
273+static void luatag (void)
274+{
275+ lua_pushnumber(lua_tag(lua_getparam(1)));
276+}
277+
278+
279+static int getnarg (lua_Object table)
280+{
281+ lua_Object temp;
282+ /* temp = table.n */
283+ lua_pushobject(table); lua_pushstring("n"); temp = lua_gettable();
284+ return (lua_isnumber(temp) ? lua_getnumber(temp) : MAX_WORD);
285+}
286+
287+static void luaI_call (void)
269288 {
270289 lua_Object f = lua_getparam(1);
271290 lua_Object arg = lua_getparam(2);
272− lua_Object temp, params[MAXPARAMS];
291+ int withtable = (strcmp(luaL_opt_string(3, ""), "pack") == 0);
273292 int narg, i;
274− check_arg(lua_istable(arg), "call");
275− check_arg(lua_isfunction(f), "call");
276− /* narg = arg.n */
277− lua_pushobject(arg);
278− lua_pushstring("n");
279− temp = lua_getsubscript();
280− narg = lua_isnumber(temp) ? lua_getnumber(temp) : MAXPARAMS+1;
281− /* read arg[1...n] */
293+ luaL_arg_check(lua_isfunction(f), 1, "function expected");
294+ luaL_arg_check(lua_istable(arg), 2, "table expected");
295+ narg = getnarg(arg);
296+ /* push arg[1...n] */
282297 for (i=0; i<narg; i++) {
283− if (i>=MAXPARAMS)
284− lua_error("argument list too long in function `call'");
285− lua_pushobject(arg);
286− lua_pushnumber(i+1);
287− params[i] = lua_getsubscript();
288− if (narg == MAXPARAMS+1 && lua_isnil(params[i])) {
289− narg = i;
298+ lua_Object temp;
299+ /* temp = arg[i+1] */
300+ lua_pushobject(arg); lua_pushnumber(i+1); temp = lua_gettable();
301+ if (narg == MAX_WORD && lua_isnil(temp))
290302 break;
291− }
303+ lua_pushobject(temp);
292304 }
293− /* push parameters and do the call */
294− for (i=0; i<narg; i++)
295− lua_pushobject(params[i]);
296305 if (lua_callfunction(f))
297306 lua_error(NULL);
307+ else if (withtable)
308+ packresults();
298309 else
299310 passresults();
300311 }
312+
313+static void luaIl_settag (void)
314+{
315+ lua_Object o = lua_getparam(1);
316+ luaL_arg_check(lua_istable(o), 1, "table expected");
317+ lua_pushobject(o);
318+ lua_settag(luaL_check_number(2));
319+}
320+
321+static void luaIl_newtag (void)
322+{
323+ lua_pushnumber(lua_newtag());
324+}
325+
326+static void rawgettable (void)
327+{
328+ lua_Object t = lua_getparam(1);
329+ lua_Object i = lua_getparam(2);
330+ luaL_arg_check(t != LUA_NOOBJECT, 1, NULL);
331+ luaL_arg_check(i != LUA_NOOBJECT, 2, NULL);
332+ lua_pushobject(t);
333+ lua_pushobject(i);
334+ lua_pushobject(lua_rawgettable());
335+}
336+
337+static void rawsettable (void)
338+{
339+ lua_Object t = lua_getparam(1);
340+ lua_Object i = lua_getparam(2);
341+ lua_Object v = lua_getparam(3);
342+ luaL_arg_check(t != LUA_NOOBJECT && i != LUA_NOOBJECT && v != LUA_NOOBJECT,
343+ 0, NULL);
344+ lua_pushobject(t);
345+ lua_pushobject(i);
346+ lua_pushobject(v);
347+ lua_rawsettable();
348+}
349+
350+
351+static void luaI_collectgarbage (void)
352+{
353+ lua_pushnumber(lua_collectgarbage(luaL_opt_number(1, 0)));
354+}
355+
356+
357+/*
358+** Internal functions
359+*/
360+static struct {
361+ char *name;
362+ lua_CFunction func;
363+} int_funcs[] = {
364+ {"assert", luaI_assert},
365+ {"call", luaI_call},
366+ {"collectgarbage", luaI_collectgarbage},
367+ {"dofile", lua_internaldofile},
368+ {"dostring", lua_internaldostring},
369+ {"error", luaI_error},
370+ {"getglobal", luaI_getglobal},
371+ {"newtag", luaIl_newtag},
372+ {"next", lua_next},
373+ {"nextvar", luaI_nextvar},
374+ {"print", luaI_print},
375+ {"rawgetglobal", luaI_rawgetglobal},
376+ {"rawgettable", rawgettable},
377+ {"rawsetglobal", luaI_rawsetglobal},
378+ {"rawsettable", rawsettable},
379+ {"seterrormethod", luaI_seterrormethod},
380+#if LUA_COMPAT2_5
381+ {"setfallback", luaI_setfallback},
382+#endif
383+ {"setglobal", luaI_setglobal},
384+ {"settagmethod", luaI_settagmethod},
385+ {"gettagmethod", luaI_gettagmethod},
386+ {"settag", luaIl_settag},
387+ {"tonumber", lua_obj2number},
388+ {"tostring", luaI_tostring},
389+ {"tag", luatag},
390+ {"type", luaI_type}
391+};
392+
393+#define INTFUNCSIZE (sizeof(int_funcs)/sizeof(int_funcs[0]))
394+
395+
396+void luaI_predefine (void)
397+{
398+ int i;
399+ Word n;
400+ for (i=0; i<INTFUNCSIZE; i++) {
401+ n = luaI_findsymbolbyname(int_funcs[i].name);
402+ s_ttype(n) = LUA_T_CFUNCTION; s_fvalue(n) = int_funcs[i].func;
403+ }
404+ n = luaI_findsymbolbyname("_VERSION");
405+ s_ttype(n) = LUA_T_STRING; s_tsvalue(n) = lua_createstring(LUA_VERSION);
406+}
407+
408+
src/inout.h+8−17
@@ -1,5 +1,5 @@
11 /*
2−** $Id: inout.h,v 1.16 1996/05/28 21:07:32 roberto Exp $
2+** $Id: inout.h,v 1.20 1997/06/19 18:04:34 roberto Exp $
33 */
44
55
@@ -14,21 +14,12 @@ extern Word lua_linenumber; · 8 unmodified lines
1414 extern Word lua_debugline;
1515 extern char *lua_parsedfile;
1616
17−FILE *lua_openfile (char *fn);
18−void lua_closefile (void);
19−void lua_openstring (char *s);
20−void lua_closestring (void);
21−
22−void lua_internaldofile (void);
23−void lua_internaldostring (void);
24−void luaI_tostring (void);
25−void luaI_print (void);
26−void luaI_type (void);
27−void lua_obj2number (void);
28−void luaI_error (void);
29−void luaI_assert (void);
30−void luaI_setglobal (void);
31−void luaI_getglobal (void);
32−void luaI_call (void);
17+void luaI_setparsedfile (char *name);
18+
19+void luaI_predefine (void);
20+
21+int lua_dobuffer (char *buff, int size);
22+int lua_doFILE (FILE *f, int bin);
23+
3324
3425 #endif
src/lex.c+174−45
@@ -1,10 +1,11 @@
1−char *rcs_lex = "$Id: lex.c,v 2.39 1996/11/08 19:08:30 roberto Exp $";
1+char *rcs_lex = "$Id: lex.c,v 3.5 1997/06/16 16:50:22 roberto Exp $";
22
33
44 #include <ctype.h>
55 #include <string.h>
66
7−#include "mem.h"
7+#include "auxlib.h"
8+#include "luamem.h"
89 #include "tree.h"
910 #include "table.h"
1011 #include "lex.h"
@@ -12,33 +13,58 @@ char *rcs_lex = "$Id: lex.c,v 2.39 1996/11/08 19:08:30 roberto Exp $"; · 1 unmodified line
1213 #include "luadebug.h"
1314 #include "parser.h"
1415
15−#define MINBUFF 260
16+#define MINBUFF 250
1617
17−#define next() (current = input())
18+static int current; /* look ahead character */
19+static ZIO *lex_z;
20+
21+
22+#define next() (current = zgetc(lex_z))
1823 #define save(x) (yytext[tokensize++] = (x))
1924 #define save_and_next() (save(current), next())
2025
2126
22−static int current; /* look ahead character */
23−static Input input; /* input function */
27+#define MAX_IFS 5
28+
29+/* "ifstate" keeps the state of each nested $if the lexical is dealing with. */
30+
31+static struct {
32+ int elsepart; /* true if its in the $else part */
33+ int condition; /* true if $if condition is true */
34+ int skip; /* true if part must be skiped */
35+} ifstate[MAX_IFS];
36+
37+static int iflevel; /* level of nested $if's */
2438
2539
26−void lua_setinput (Input fn)
40+void lua_setinput (ZIO *z)
2741 {
2842 current = '\n';
2943 lua_linenumber = 0;
30− input = fn;
44+ iflevel = 0;
45+ ifstate[0].skip = 0;
46+ ifstate[0].elsepart = 1; /* to avoid a free $else */
47+ lex_z = z;
3148 }
3249
33−void luaI_syntaxerror (char *s)
50+
51+static void luaI_auxsyntaxerror (char *s)
52+{
53+ luaL_verror("%s;\n> at line %d in file %s",
54+ s, lua_linenumber, lua_parsedfile);
55+}
56+
57+static void luaI_auxsynterrbf (char *s, char *token)
3458 {
35− char msg[256];
36− char *token = luaI_buffer(1);
3759 if (token[0] == 0)
3860 token = "<eof>";
39− sprintf (msg,"%s;\n> last token read: \"%s\" at line %d in file %s",
61+ luaL_verror("%s;\n> last token read: \"%s\" at line %d in file %s",
4062 s, token, lua_linenumber, lua_parsedfile);
41− lua_error (msg);
63+}
64+
65+void luaI_syntaxerror (char *s)
66+{
67+ luaI_auxsynterrbf(s, luaI_buffer(1));
4268 }
4369
4470
@@ -78,26 +104,122 @@ void luaI_addReserved (void) · 33 unmodified lines
78104 }
79105 }
80106
81−static int inclinenumber (int pragma_allowed)
107+
108+/*
109+** Pragma handling
110+*/
111+
112+#define PRAGMASIZE 20
113+
114+static void skipspace (void)
115+{
116+ while (current == ' ' || current == '\t') next();
117+}
118+
119+
120+static int checkcond (char *buff)
121+{
122+ static char *opts[] = {"nil", "1"};
123+ int i = luaI_findstring(buff, opts);
124+ if (i >= 0) return i;
125+ else if (isalpha((unsigned char)buff[0]) || buff[0] == '_')
126+ return luaI_globaldefined(buff);
127+ else {
128+ luaI_auxsynterrbf("invalid $if condition", buff);
129+ return 0; /* to avoid warnings */
130+ }
131+}
132+
133+
134+static void readname (char *buff)
135+{
136+ int i = 0;
137+ skipspace();
138+ while (isalnum((unsigned char)current) || current == '_') {
139+ if (i >= PRAGMASIZE) {
140+ buff[PRAGMASIZE] = 0;
141+ luaI_auxsynterrbf("pragma too long", buff);
142+ }
143+ buff[i++] = current;
144+ next();
145+ }
146+ buff[i] = 0;
147+}
148+
149+
150+static void inclinenumber (void);
151+
152+
153+static void ifskip (void)
154+{
155+ while (ifstate[iflevel].skip) {
156+ if (current == '\n')
157+ inclinenumber();
158+ else if (current == EOZ)
159+ luaI_auxsyntaxerror("input ends inside a $if");
160+ else next();
161+ }
162+}
163+
164+
165+static void inclinenumber (void)
82166 {
167+ static char *pragmas [] =
168+ {"debug", "nodebug", "endinput", "end", "ifnot", "if", "else", NULL};
169+ next(); /* skip '\n' */
83170 ++lua_linenumber;
84− if (pragma_allowed && current == '$') { /* is a pragma? */
85− char *buff = luaI_buffer(MINBUFF+1);
86− int i = 0;
171+ if (current == '$') { /* is a pragma? */
172+ char buff[PRAGMASIZE+1];
173+ int ifnot = 0;
174+ int skip = ifstate[iflevel].skip;
87175 next(); /* skip $ */
88− while (isalnum(current)) {
89− if (i >= MINBUFF) luaI_syntaxerror("pragma too long");
90− buff[i++] = current;
91− next();
176+ readname(buff);
177+ switch (luaI_findstring(buff, pragmas)) {
178+ case 0: /* debug */
179+ if (!skip) lua_debug = 1;
180+ break;
181+ case 1: /* nodebug */
182+ if (!skip) lua_debug = 0;
183+ break;
184+ case 2: /* endinput */
185+ if (!skip) {
186+ current = EOZ;
187+ iflevel = 0; /* to allow $endinput inside a $if */
188+ }
189+ break;
190+ case 3: /* end */
191+ if (iflevel-- == 0)
192+ luaI_auxsyntaxerror("unmatched $endif");
193+ break;
194+ case 4: /* ifnot */
195+ ifnot = 1;
196+ /* go through */
197+ case 5: /* if */
198+ if (iflevel == MAX_IFS-1)
199+ luaI_auxsyntaxerror("too many nested `$ifs'");
200+ readname(buff);
201+ iflevel++;
202+ ifstate[iflevel].elsepart = 0;
203+ ifstate[iflevel].condition = checkcond(buff) ? !ifnot : ifnot;
204+ ifstate[iflevel].skip = skip || !ifstate[iflevel].condition;
205+ break;
206+ case 6: /* else */
207+ if (ifstate[iflevel].elsepart)
208+ luaI_auxsyntaxerror("unmatched $else");
209+ ifstate[iflevel].elsepart = 1;
210+ ifstate[iflevel].skip =
211+ ifstate[iflevel-1].skip || ifstate[iflevel].condition;
212+ break;
213+ default:
214+ luaI_auxsynterrbf("invalid pragma", buff);
92215 }
93− buff[i] = 0;
94− if (strcmp(buff, "debug") == 0)
95− lua_debug = 1;
96− else if (strcmp(buff, "nodebug") == 0)
97− lua_debug = 0;
98− else luaI_syntaxerror("invalid pragma");
216+ skipspace();
217+ if (current == '\n') /* pragma must end with a '\n' ... */
218+ inclinenumber();
219+ else if (current != EOZ) /* or eof */
220+ luaI_auxsyntaxerror("invalid pragma format");
221+ ifskip();
99222 }
100− return lua_linenumber;
101223 }
102224
103225 static int read_long_string (char *yytext, int buffsize)
@@ -110,7 +232,7 @@ static int read_long_string (char *yytext, int buffsize) · 6 unmodified lines
110232 yytext = luaI_buffer(buffsize *= 2);
111233 switch (current)
112234 {
113− case 0:
235+ case EOZ:
114236 save(0);
115237 return WRONGTOKEN;
116238 case '[':
@@ -131,8 +253,8 @@ static int read_long_string (char *yytext, int buffsize) · 14 unmodified lines
131253 }
132254 continue;
133255 case '\n':
134− save_and_next();
135− inclinenumber(0);
256+ save('\n');
257+ inclinenumber();
136258 continue;
137259 default:
138260 save_and_next();
@@ -162,8 +284,8 @@ int luaY_lex (void) · 23 unmodified lines
162284 switch (current)
163285 {
164286 case '\n':
165− next();
166− linelasttoken = inclinenumber(1);
287+ inclinenumber();
288+ linelasttoken = lua_linenumber;
167289 continue;
168290
169291 case ' ': case '\t': case '\r': /* CR: to avoid problems with DOS */
@@ -173,7 +295,7 @@ int luaY_lex (void) · 3 unmodified lines
173295 case '-':
174296 save_and_next();
175297 if (current != '-') return '-';
176− do { next(); } while (current != '\n' && current != 0);
298+ do { next(); } while (current != '\n' && current != EOZ);
177299 continue;
178300
179301 case '[':
@@ -216,7 +338,7 @@ int luaY_lex (void) · 36 unmodified lines
216338 yytext = luaI_buffer(buffsize *= 2);
217339 switch (current)
218340 {
219− case 0:
341+ case EOZ:
220342 case '\n':
221343 save(0);
222344 return WRONGTOKEN;
@@ -227,7 +349,7 @@ int luaY_lex (void) · 4 unmodified lines
227349 case 'n': save('\n'); next(); break;
228350 case 't': save('\t'); next(); break;
229351 case 'r': save('\r'); next(); break;
230− case '\n': save_and_next(); inclinenumber(0); break;
352+ case '\n': save('\n'); inclinenumber(); break;
231353 default : save_and_next(); break;
232354 }
233355 break;
@@ -258,7 +380,9 @@ int luaY_lex (void) · 24 unmodified lines
258380 case '_':
259381 {
260382 TaggedString *ts;
261− do { save_and_next(); } while (isalnum(current) || current == '_');
383+ do {
384+ save_and_next();
385+ } while (isalnum((unsigned char)current) || current == '_');
262386 save(0);
263387 ts = lua_createstring(yytext);
264388 if (ts->marked > 2)
@@ -280,7 +404,7 @@ int luaY_lex (void) · 15 unmodified lines
280404 }
281405 else return CONC; /* .. */
282406 }
283− else if (!isdigit(current)) return '.';
407+ else if (!isdigit((unsigned char)current)) return '.';
284408 /* current is a digit: goes through to number */
285409 a=0.0;
286410 goto fraction;
@@ -291,7 +415,7 @@ int luaY_lex (void) · 4 unmodified lines
291415 do {
292416 a=10.0*a+(current-'0');
293417 save_and_next();
294− } while (isdigit(current));
418+ } while (isdigit((unsigned char)current));
295419 if (current == '.') {
296420 save_and_next();
297421 if (current == '.')
@@ -300,7 +424,7 @@ int luaY_lex (void) · 2 unmodified lines
300424 }
301425 fraction:
302426 { double da=0.1;
303− while (isdigit(current))
427+ while (isdigit((unsigned char)current))
304428 {
305429 a+=(current-'0')*da;
306430 da/=10.0;
@@ -314,11 +438,12 @@ int luaY_lex (void) · 7 unmodified lines
314438 save_and_next();
315439 neg=(current=='-');
316440 if (current == '+' || current == '-') save_and_next();
317− if (!isdigit(current)) { save(0); return WRONGTOKEN; }
441+ if (!isdigit((unsigned char)current)) {
442+ save(0); return WRONGTOKEN; }
318443 do {
319444 e=10.0*e+(current-'0');
320445 save_and_next();
321− } while (isdigit(current));
446+ } while (isdigit((unsigned char)current));
322447 for (ea=neg?0.1:10.0; e>0; e>>=1)
323448 {
324449 if (e & 1) a*=ea;
@@ -330,11 +455,15 @@ int luaY_lex (void) · 5 unmodified lines
330455 return NUMBER;
331456 }
332457
333− default: /* also end of program (0) */
334− {
458+ case EOZ:
459+ save(0);
460+ if (iflevel > 0)
461+ luaI_syntaxerror("missing $endif");
462+ return 0;
463+
464+ default:
335465 save_and_next();
336466 return yytext[0];
337− }
338467 }
339468 }
340469 }
src/lex.h+3−4
@@ -1,16 +1,15 @@
11 /*
22 ** lex.h
33 ** TecCGraf - PUC-Rio
4−** $Id: lex.h,v 1.3 1996/11/08 12:49:35 roberto Exp $
4+** $Id: lex.h,v 1.4 1997/06/16 16:50:22 roberto Exp $
55 */
66
77 #ifndef lex_h
88 #define lex_h
99
10+#include "zio.h"
1011
11−typedef int (*Input) (void);
12−
13−void lua_setinput (Input fn);
12+void lua_setinput (ZIO *z);
1413 void luaI_syntaxerror (char *s);
1514 int luaY_lex (void);
1615 void luaI_addReserved (void);
src/lua.stx+29−34
@@ -1,13 +1,13 @@
11 %{
22
3−char *rcs_luastx = "$Id: lua.stx,v 3.41 1996/11/08 12:49:35 roberto Exp $";
3+char *rcs_luastx = "$Id: lua.stx,v 3.47 1997/06/19 17:46:12 roberto Exp $";
44
55 #include <stdio.h>
66 #include <stdlib.h>
77 #include <string.h>
88
99 #include "luadebug.h"
10−#include "mem.h"
10+#include "luamem.h"
1111 #include "lex.h"
1212 #include "opcode.h"
1313 #include "hash.h"
@@ -50,8 +50,6 @@ static TaggedString *localvar[MAXLOCALS]; /* store local variable names */ · 36 unmodified lines
5050 static int nlocalvar=0; /* number of local variables */
5151
5252 #define MAXFIELDS FIELDS_PER_FLUSH*2
53−static Word fields[MAXFIELDS]; /* fieldnames to be flushed */
54−static int nfields=0;
5553
5654 int lua_debug = 0;
5755
@@ -103,22 +101,11 @@ static void code_word_at (Byte *p, int n) · 45 unmodified lines
103101 memcpy(p, &w, sizeof(Word));
104102 }
105103
106−static void push_field (Word name)
107−{
108− if (nfields < MAXFIELDS)
109− fields[nfields++] = name;
110− else
111− yyerror ("too many fields in nested constructors");
112−}
113−
114104 static void flush_record (int n)
115105 {
116− int i;
117106 if (n == 0) return;
118− code_byte(STORERECORD);
107+ code_byte(STOREMAP);
119108 code_byte(n);
120− for (i=0; i<n; i++)
121− code_word(fields[--nfields]);
122109 }
123110
124111 static void flush_list (int m, int n)
@@ -161,11 +148,22 @@ static void add_varbuffer (Long var) · 36 unmodified lines
161148 yyerror ("variable buffer overflow");
162149 }
163150
151+static void code_string (Word w)
152+{
153+ code_byte(PUSHSTRING);
154+ code_word(w);
155+}
156+
157+static void code_constant (TaggedString *s)
158+{
159+ code_string(luaI_findconstant(s));
160+}
161+
164162 static void code_number (float f)
165163 {
166− Word i = (Word)f;
167− if (f == (float)i) /* f has an (short) integer value */
168− {
164+ Word i;
165+ if (f >= 0 && f <= (float)MAX_WORD && (float)(i=(Word)f) == f) {
166+ /* f has an (short) integer value */
169167 if (i <= 2) code_byte(PUSH0 + i);
170168 else if (i <= 255)
171169 {
@@ -459,7 +457,7 @@ void lua_parse (TFunc *tf) · 287 unmodified lines
459457
460458 %% /* beginning of rules section */
461459
462−chunk : chunklist ret
460+chunk : chunklist ret ;
463461
464462 chunklist : /* empty */
465463 | chunklist stat sc
@@ -477,8 +475,7 @@ function : FUNCTION funcname body · 11 unmodified lines
477475 funcname : var { $$ =$1; init_func(); }
478476 | varexp ':' NAME
479477 {
480− code_byte(PUSHSTRING);
481− code_word(luaI_findconstant($3));
478+ code_constant($3);
482479 $$ = 0; /* indexed variable */
483480 init_func();
484481 add_localvar(luaI_createfixedstring("self"));
@@ -492,7 +489,6 @@ body : '(' parlist ')' block END · 7 unmodified lines
492489 luaI_initTFunc($$);
493490 $$->size = pc;
494491 $$->code = newvector(pc, Byte);
495− $$->fileName = lua_parsedfile;
496492 $$->lineDefined = $2;
497493 memcpy($$->code, basepc, pc*sizeof(Byte));
498494 if (lua_debug)
@@ -540,7 +536,7 @@ stat : IF expr1 THEN PrepJump block PrepJump elsepart END · 41 unmodified lines
540536 lua_codeadjust (0);
541537 }
542538 }
543− | functioncall
539+ | functioncall {;}
544540 | LOCAL localdeclist decinit
545541 { nlocalvar += $2;
546542 adjust_mult_assign($2, $3, 0);
@@ -605,9 +601,8 @@ expr : '(' expr ')' { $$ = $2; } · 58 unmodified lines
605601 | NUMBER { code_number($1); $$ = 0; }
606602 | STRING
607603 {
608− code_byte(PUSHSTRING);
609− code_word($1);
610− $$ = 0;
604+ code_string($1);
605+ $$ = 0;
611606 }
612607 | NIL {code_byte(PUSHNIL); $$ = 0; }
613608 | functioncall { $$ = $1; }
@@ -723,12 +718,13 @@ ffieldlist1 : ffield {$$=1;} · 109 unmodified lines
723718 }
724719 ;
725720
726−ffield : NAME '=' expr1
727− {
728− push_field(luaI_findconstant($1));
729− }
721+ffield : ffieldkey '=' expr1
730722 ;
731723
724+ffieldkey : '[' expr1 ']'
725+ | NAME { code_constant($1); }
726+ ;
727+
732728 lfieldlist : /* empty */ { $$ = 0; }
733729 | lfieldlist1 lastcomma { $$ = $1; }
734730 ;
@@ -762,9 +758,8 @@ var : singlevar { $$ = $1; } · 27 unmodified lines
762758 }
763759 | varexp '.' NAME
764760 {
765− code_byte(PUSHSTRING);
766− code_word(luaI_findconstant($3));
767− $$ = 0; /* indexed variable */
761+ code_constant($3);
762+ $$ = 0; /* indexed variable */
768763 }
769764 ;
770765
src/luac/dump.c+11−19
@@ -3,15 +3,13 @@ · 2 unmodified lines
33 ** thread and save bytecodes to file
44 */
55
6−char* rcs_dump="$Id: dump.c,v 1.17 1996/11/18 11:18:29 lhf Exp $";
6+char* rcs_dump="$Id: dump.c,v 1.20 1997/06/19 14:56:04 lhf Exp $";
77
88 #include <stdio.h>
99 #include <stdlib.h>
1010 #include <string.h>
1111 #include "luac.h"
1212
13−static TFunc* lastF=NULL; /* list of functions seen in code */
14−
1513 static int SawVar(int i, int at)
1614 {
1715 int old=VarLoc(i);
@@ -34,7 +32,7 @@ static void ThreadCode(Byte* code, Byte* end) · 16 unmodified lines
3432 for (i=0; i<lua_nconstant; i++) StrLoc(i)=0;
3533 for (p=code; p!=end;)
3634 {
37− OpCode op=(OpCode)*p;
35+ int op=*p;
3836 int at=p-code+1;
3937 switch (op)
4038 {
@@ -89,6 +87,8 @@ static void ThreadCode(Byte* code, Byte* end) · 48 unmodified lines
8987 case STORELIST0:
9088 case ADJUST:
9189 case RETCODE:
90+ case VARARGS:
91+ case STOREMAP:
9292 p+=2;
9393 break;
9494 case PUSHWORD:
@@ -107,8 +107,11 @@ static void ThreadCode(Byte* code, Byte* end) · 12 unmodified lines
107107 case PUSHFLOAT:
108108 p+=5; /* assumes sizeof(float)==4 */
109109 break;
110− case PUSHSELF:
110+ case PUSHFUNCTION:
111+ p+=sizeof(TFunc*)+1;
112+ break;
111113 case PUSHSTRING:
114+ case PUSHSELF:
112115 {
113116 Word w;
114117 p++;
@@ -117,16 +120,6 @@ static void ThreadCode(Byte* code, Byte* end) · 2 unmodified lines
117120 memcpy(p-2,&w,sizeof(w));
118121 break;
119122 }
120− case PUSHFUNCTION:
121− {
122− TFunc* tf;
123− p++;
124− get_code(tf,p);
125− tf->marked=at;
126− tf->next=NULL; /* TODO: remove? */
127− lastF=lastF->next=tf;
128− break;
129− }
130123 case PUSHGLOBAL:
131124 case STOREGLOBAL:
132125 {
@@ -151,8 +144,8 @@ static void ThreadCode(Byte* code, Byte* end) · 18 unmodified lines
151144 }
152145 break;
153146 }
154− default:
155− fprintf(stderr,"luac: cannot happen: opcode=%d",*p);
147+ default: /* cannot happen */
148+ fprintf(stderr,"luac: bad opcode %d at %d\n",*p,(int)(p-code));
156149 exit(1);
157150 break;
158151 }
@@ -186,7 +179,7 @@ static void DumpString(char* s, FILE* D) · 27 unmodified lines
186179 int n=strlen(s)+1;
187180 if ((Word)n != n)
188181 {
189− fprintf(stderr,"luac: string too long: \"%.32s...\"\n",s);
182+ fprintf(stderr,"luac: string too long (%d bytes): \"%.32s...\"\n",n,s);
190183 exit(1);
191184 }
192185 DumpWord(n,D);
@@ -220,7 +213,6 @@ static void DumpStrings(FILE* D) · 27 unmodified lines
220213
221214 void DumpFunction(TFunc* tf, FILE* D)
222215 {
223− lastF=tf;
224216 ThreadCode(tf->code,tf->code+tf->size);
225217 fputc(ID_FUN,D);
226218 DumpSize(tf->size,D);
src/luac/luac.c+112−27
@@ -1,25 +1,39 @@
11 /*
22 ** luac.c
3−** lua compiler (saves bytecodes to files)
3+** lua compiler (saves bytecodes to files; also list binary files)
44 */
55
6−char* rcs_luac="$Id: luac.c,v 1.18 1996/11/16 20:14:23 lhf Exp $";
6+char* rcs_luac="$Id: luac.c,v 1.23 1997/06/20 20:34:04 lhf Exp $";
77
88 #include <stdio.h>
99 #include <stdlib.h>
1010 #include <string.h>
1111 #include "luac.h"
12+#include "lex.h"
13+#include "zio.h"
1214
1315 static void compile(char* filename);
16+static void undump(char* filename);
1417
1518 static int listing=0; /* list bytecodes? */
1619 static int dumping=1; /* dump bytecodes? */
20+static int undumping=0; /* undump bytecodes? */
1721 static FILE* D; /* output file */
1822
1923 static void usage(void)
2024 {
21− fprintf(stderr,"usage: luac [-dlpv] [-o output] file ...\n");
22− exit(0);
25+ fprintf(stderr,
26+ "usage: luac [-c | -u] [-d] [-l] [-p] [-q] [-v] [-o output] file ...\n"
27+ " -c\tcompile (default)\n"
28+ " -u\tundump\n"
29+ " -d\tgenerate debugging information\n"
30+ " -l\tlist (default for -u)\n"
31+ " -o\toutput file for -c (default \"luac.out\")\n"
32+ " -p\tparse only\n"
33+ " -q\tquiet (default for -c)\n"
34+ " -v\tshow version information\n"
35+ );
36+ exit(1);
2337 }
2438
2539 #define IS(s) (strcmp(argv[i],s)==0)
@@ -34,6 +48,11 @@ int main(int argc, char* argv[]) · 8 unmodified lines
3448 break;
3549 else if (IS("-")) /* use stdin */
3650 break;
51+ else if (IS("-c")) /* compile (and dump) */
52+ {
53+ dumping=1;
54+ undumping=0;
55+ }
3756 else if (IS("-d")) /* debug */
3857 lua_debug=1;
3958 else if (IS("-l")) /* list */
@@ -42,6 +61,14 @@ int main(int argc, char* argv[]) · 2 unmodified lines
4261 d=argv[++i];
4362 else if (IS("-p")) /* parse only (for timing purposes) */
4463 dumping=0;
64+ else if (IS("-q")) /* quiet */
65+ listing=0;
66+ else if (IS("-u")) /* undump */
67+ {
68+ dumping=0;
69+ undumping=1;
70+ listing=1;
71+ }
4572 else if (IS("-v")) /* show version */
4673 printf("%s %s\n(written by %s)\n\n",LUA_VERSION,LUA_COPYRIGHT,LUA_AUTHORS);
4774 else /* unknown option */
@@ -50,56 +77,114 @@ int main(int argc, char* argv[]) · 2 unmodified lines
5077 --i; /* fake new argv[0] */
5178 argc-=i;
5279 argv+=i;
53− if (argc<2) usage();
54− for (i=1; i<argc; i++)
55− if (IS(d))
80+ if (dumping)
81+ {
82+ if (argc<2) usage();
83+ for (i=1; i<argc; i++) /* play safe with output file */
84+ if (IS(d))
85+ {
86+ fprintf(stderr,"luac: will not overwrite input file \"%s\"\n",d);
87+ exit(1);
88+ }
89+ D=fopen(d,"wb"); /* must open in binary mode */
90+ if (D==NULL)
5691 {
57− fprintf(stderr,"luac: will not overwrite input file \"%s\"\n",d);
92+ fprintf(stderr,"luac: cannot open ");
93+ perror(d);
5894 exit(1);
5995 }
60− D=(dumping) ? fopen(d,"wb") : stdout; /* must open in binary mode */
61− if (D==NULL)
96+ for (i=1; i<argc; i++) compile(IS("-")? NULL : argv[i]);
97+ fclose(D);
98+ }
99+ if (undumping)
62100 {
63− fprintf(stderr,"luac: cannot open ");
64− perror(d);
65− exit(1);
101+ if (argc<2)
102+ undump("luac.out");
103+ else
104+ for (i=1; i<argc; i++) undump(IS("-")? NULL : argv[i]);
66105 }
67− for (i=1; i<argc; i++) compile(IS("-")? NULL : argv[i]);
68− fclose(D);
69106 return 0;
70107 }
71108
72−static void do_dump(TFunc* tf) /* only for tf==main */
109+static void do_dump(TFunc* Main)
73110 {
74− if (dumping) DumpHeader(D);
75− while (tf!=NULL)
111+ TFunc* tf;
112+ LinkFunctions(Main);
113+ if (listing)
114+ {
115+ for (tf=Main; tf!=NULL; tf=tf->next) PrintFunction(tf,Main);
116+ }
117+ if (dumping)
76118 {
77− TFunc* nf;
78− if (listing) PrintFunction(tf);
79− if (dumping) DumpFunction(tf,D);
80− nf=tf->next; /* list only built after first main */
119+ DumpHeader(D);
120+ for (tf=Main; tf!=NULL; tf=tf->next) DumpFunction(tf,D);
121+ }
122+ for (tf=Main; tf!=NULL; )
123+ {
124+ TFunc* nf=tf->next;
81125 luaI_freefunc(tf);
82126 tf=nf;
83127 }
84128 }
85129
86−static void do_compile(void)
130+static void do_compile(ZIO* z)
87131 {
88132 TFunc* tf=new(TFunc);
133+ lua_setinput(z);
89134 luaI_initTFunc(tf);
90− tf->fileName = lua_parsedfile;
135+ tf->fileName=lua_parsedfile;
91136 lua_parse(tf);
92137 do_dump(tf);
93138 }
94139
95140 static void compile(char* filename)
96141 {
97− if (lua_openfile(filename)==NULL)
142+ FILE* f= (filename==NULL) ? stdin : fopen(filename, "r");
143+ if (f==NULL)
144+ {
145+ fprintf(stderr,"luac: cannot open ");
146+ perror(filename);
147+ exit(1);
148+ }
149+ else
150+ {
151+ ZIO z;
152+ zFopen(&z,f);
153+ luaI_setparsedfile(filename?filename:"(stdin)");
154+ do_compile(&z);
155+ fclose(f);
156+ }
157+}
158+
159+static void do_undump(ZIO* z)
160+{
161+ TFunc* Main;
162+ while ((Main=luaI_undump1(z)))
163+ {
164+ if (listing)
165+ {
166+ TFunc* tf;
167+ for (tf=Main; tf!=NULL; tf=tf->next)
168+ PrintFunction(tf,Main);
169+ }
170+ luaI_freefunc(Main); /* TODO: free others */
171+ }
172+}
173+
174+static void undump(char* filename)
175+{
176+ FILE* f= (filename==NULL) ? stdin : fopen(filename, "rb");
177+ if (f==NULL)
98178 {
99179 fprintf(stderr,"luac: cannot open ");
100180 perror(filename);
101181 exit(1);
102182 }
103− do_compile();
104− lua_closefile();
183+ else
184+ {
185+ ZIO z;
186+ zFopen(&z,f);
187+ do_undump(&z);
188+ fclose(f);
189+ }
105190 }
src/luac/luac.h+6−5
@@ -1,24 +1,25 @@
11 /*
22 ** luac.h
33 ** definitions for luac compiler
4−** $Id: luac.h,v 1.5 1996/03/08 21:41:47 lhf Exp $
4+** $Id: luac.h,v 1.8 1997/06/19 17:32:08 lhf Exp $
55 */
66
77 #include "inout.h"
8−#include "mem.h"
8+#include "luamem.h"
99 #include "opcode.h"
1010 #include "table.h"
1111 #include "undump.h"
1212
1313 #define VarStr(i) (lua_table[i].varname->str)
14−#define VarLoc(i) (lua_table[i].varname->varindex)
14+#define VarLoc(i) (lua_table[i].varname->u.s.varindex)
1515 #define StrStr(i) (lua_constant[i]->str)
16−#define StrLoc(i) (lua_constant[i]->constindex)
16+#define StrLoc(i) (lua_constant[i]->u.s.constindex)
1717
1818 extern Word lua_ntable;
1919 extern Word lua_nconstant;
2020 extern int lua_debug;
2121
22+void LinkFunctions(TFunc* tf);
23+void PrintFunction(TFunc* tf, TFunc* Main);
2224 void DumpHeader(FILE* D);
2325 void DumpFunction(TFunc* tf, FILE* D);
24−void PrintFunction(TFunc* tf);
src/luac/print.c+213−20
@@ -3,7 +3,7 @@ · 2 unmodified lines
33 ** print bytecodes
44 */
55
6−char* rcs_print="$Id: print.c,v 1.11 1996/11/18 11:24:16 lhf Exp $";
6+char* rcs_print="$Id: print.c,v 1.17 1997/06/25 17:07:28 lhf Exp $";
77
88 #include <stdio.h>
99 #include <stdlib.h>
@@ -11,20 +11,134 @@ char* rcs_print="$Id: print.c,v 1.11 1996/11/18 11:24:16 lhf Exp $"; · 1 unmodified line
1111 #include "luac.h"
1212 #include "print.h"
1313
14−static LocVar* V=NULL;
15−
16−static char* LocStr(int i)
14+void LinkFunctions(TFunc* m)
1715 {
18− if (V==NULL) return ""; else return V[i].varname->str;
16+ static TFunc* lastF; /* list of functions seen in code */
17+ Byte* code=m->code;
18+ Byte* end=code+m->size;
19+ Byte* p;
20+ if (IsMain(m)) lastF=m;
21+ for (p=code; p!=end;)
22+ {
23+ int op=*p;
24+ int at=p-code+1;
25+ switch (op)
26+ {
27+ case PUSHNIL:
28+ case PUSH0:
29+ case PUSH1:
30+ case PUSH2:
31+ case PUSHLOCAL0:
32+ case PUSHLOCAL1:
33+ case PUSHLOCAL2:
34+ case PUSHLOCAL3:
35+ case PUSHLOCAL4:
36+ case PUSHLOCAL5:
37+ case PUSHLOCAL6:
38+ case PUSHLOCAL7:
39+ case PUSHLOCAL8:
40+ case PUSHLOCAL9:
41+ case PUSHINDEXED:
42+ case STORELOCAL0:
43+ case STORELOCAL1:
44+ case STORELOCAL2:
45+ case STORELOCAL3:
46+ case STORELOCAL4:
47+ case STORELOCAL5:
48+ case STORELOCAL6:
49+ case STORELOCAL7:
50+ case STORELOCAL8:
51+ case STORELOCAL9:
52+ case STOREINDEXED0:
53+ case ADJUST0:
54+ case EQOP:
55+ case LTOP:
56+ case LEOP:
57+ case GTOP:
58+ case GEOP:
59+ case ADDOP:
60+ case SUBOP:
61+ case MULTOP:
62+ case DIVOP:
63+ case POWOP:
64+ case CONCOP:
65+ case MINUSOP:
66+ case NOTOP:
67+ case POP:
68+ case RETCODE0:
69+ p++;
70+ break;
71+ case PUSHBYTE:
72+ case PUSHLOCAL:
73+ case STORELOCAL:
74+ case STOREINDEXED:
75+ case STORELIST0:
76+ case ADJUST:
77+ case RETCODE:
78+ case VARARGS:
79+ case STOREMAP:
80+ p+=2;
81+ break;
82+ case PUSHWORD:
83+ case PUSHSTRING:
84+ case PUSHGLOBAL:
85+ case PUSHSELF:
86+ case STOREGLOBAL:
87+ case CREATEARRAY:
88+ case ONTJMP:
89+ case ONFJMP:
90+ case JMP:
91+ case UPJMP:
92+ case IFFJMP:
93+ case IFFUPJMP:
94+ case CALLFUNC:
95+ case SETLINE:
96+ case STORELIST:
97+ p+=3;
98+ break;
99+ case PUSHFLOAT:
100+ p+=5; /* assumes sizeof(float)==4 */
101+ break;
102+ case PUSHFUNCTION:
103+ {
104+ TFunc* tf;
105+ p++;
106+ get_code(tf,p);
107+ tf->marked=at;
108+ tf->next=NULL; /* TODO: remove? */
109+ lastF=lastF->next=tf;
110+ break;
111+ }
112+ case STORERECORD:
113+ {
114+ int n=*++p;
115+ p+=2*n+1;
116+ break;
117+ }
118+ default: /* cannot happen */
119+ fprintf(stderr,"luac: bad opcode %d at %d\n",*p,(int)(p-code));
120+ exit(1);
121+ break;
122+ }
123+ }
19124 }
20125
21−static void PrintCode(Byte* code, Byte* end)
126+#define LocStr(i) luaI_getlocalname(tf,i+1,line)
127+
128+static void PrintCode(TFunc* tf)
22129 {
130+ Byte* code=tf->code;
131+ Byte* end=code+tf->size;
23132 Byte* p;
133+ int line=0;
24134 for (p=code; p!=end;)
25135 {
26− OpCode op=(OpCode)*p;
27− if (op>SETLINE) op=SETLINE+1;
136+ int op=*p;
137+ if (op>=NOPCODES)
138+ {
139+ fprintf(stderr,"luac: bad opcode %d at %d\n",op,(int)(p-code));
140+ exit(1);
141+ }
28142 printf("%6d\t%s",(int)(p-code),OpCodeName[op]);
29143 switch (op)
30144 {
@@ -64,7 +178,7 @@ static void PrintCode(Byte* code, Byte* end) · 33 unmodified lines
64178 case PUSHLOCAL9:
65179 {
66180 int i=op-PUSHLOCAL0;
67− printf("\t%d\t; %s",i,LocStr(i));
181+ if (tf->locvars) printf("\t\t; %s",LocStr(i));
68182 p++;
69183 break;
70184 }
@@ -80,7 +194,7 @@ static void PrintCode(Byte* code, Byte* end) · 9 unmodified lines
80194 case STORELOCAL9:
81195 {
82196 int i=op-STORELOCAL0;
83− printf("\t%d\t; %s",i,LocStr(i));
197+ if (tf->locvars) printf("\t\t; %s",LocStr(i));
84198 p++;
85199 break;
86200 }
@@ -88,7 +202,7 @@ static void PrintCode(Byte* code, Byte* end) · 1 unmodified line
88202 case STORELOCAL:
89203 {
90204 int i=*(p+1);
91− printf("\t%d\t; %s",i,LocStr(i));
205+ if (tf->locvars) printf("\t%d\t; %s",i,LocStr(i));
92206 p+=2;
93207 break;
94208 }
@@ -97,23 +211,40 @@ static void PrintCode(Byte* code, Byte* end) · 2 unmodified lines
97211 case STORELIST0:
98212 case ADJUST:
99213 case RETCODE:
214+ case VARARGS:
215+ case STOREMAP:
100216 printf("\t%d",*(p+1));
101217 p+=2;
102218 break;
103219 case PUSHWORD:
104220 case CREATEARRAY:
221+ case SETLINE:
222+ {
223+ Word w;
224+ p++;
225+ get_word(w,p);
226+ printf("\t%d",w);
227+ if (op==SETLINE) line=w;
228+ break;
229+ }
105230 case ONTJMP:
106231 case ONFJMP:
107232 case JMP:
108− case UPJMP:
109233 case IFFJMP:
234+ { /* suggested by Norman Ramsey <nr@cs.virginia.edu> */
235+ Word w;
236+ p++;
237+ get_word(w,p);
238+ printf("\t%d\t\t; to %d",w,(int)(p-code)+w);
239+ break;
240+ }
241+ case UPJMP:
110242 case IFFUPJMP:
111− case SETLINE:
112− {
243+ { /* suggested by Norman Ramsey <nr@cs.virginia.edu> */
113244 Word w;
114245 p++;
115246 get_word(w,p);
116− printf("\t%d",w);
247+ printf("\t%d\t\t; to %d",w,(int)(p-code)-w);
117248 break;
118249 }
119250 case PUSHFLOAT:
@@ -170,7 +301,8 @@ static void PrintCode(Byte* code, Byte* end) · 50 unmodified lines
170301 break;
171302 }
172303 default:
173− printf("\tcannot happen: opcode=%d",*p);
304+ printf("\tcannot happen: opcode=%d\n",*p);
305+ fprintf(stderr,"luac: bad opcode %d at %d\n",op,(int)(p-code));
174306 exit(1);
175307 break;
176308 }
@@ -178,13 +310,74 @@ static void PrintCode(Byte* code, Byte* end) · 1 unmodified line
178310 }
179311 }
180312
181−void PrintFunction(TFunc* tf)
313+#undef LocStr
314+
315+static void PrintLocals(LocVar* v, int n)
182316 {
317+ int i=0;
318+ if (v==NULL || v->varname==NULL) return;
319+ if (n>0)
320+ {
321+ printf("parameters:");
322+ for (i=0; i<n; v++,i++) printf(" %s[%d@%d]",v->varname->str,i,v->line);
323+ printf("\n");
324+ }
325+ if (v->varname!=NULL)
326+ {
327+ printf("locals:");
328+ for (; v->line>=0; v++)
329+ {
330+ if (v->varname==NULL)
331+#if 0
332+ printf(" %s[%d@%d]","*",--i,v->line);
333+#else
334+ --i;
335+#endif
336+ else
337+ printf(" %s[%d@%d]",v->varname->str,i++,v->line);
338+ }
339+ printf("\n");
340+ }
341+}
342+
343+void PrintFunction(TFunc* tf, TFunc* Main)
344+{
345+ int n=0;
183346 if (IsMain(tf))
184347 printf("\nmain of \"%s\" (%d bytes at %p)\n",tf->fileName,tf->size,tf);
185348 else
186− printf("\nfunction \"%s\":%d (%d bytes at %p); used at main+%d\n",
349+ {
350+ Byte* p;
351+ p=tf->code; /* get number of parameters */
352+ while (*p==SETLINE) p+=3;
353+ if (*p==ADJUST) n=p[1];
354+ p=Main->code+tf->marked+sizeof(TFunc*);
355+ printf("\nfunction ");
356+ switch (*p) /* try to get name */
357+ {
358+ case STOREGLOBAL:
359+ {
360+ Word w;
361+ p++; get_word(w,p); printf("%s defined at ",VarStr(w));
362+ break;
363+ }
364+ case STOREINDEXED0: /* try method definition */
365+ {
366+ if (p[-11]==PUSHGLOBAL && p[-8]==PUSHSTRING)
367+ {
368+ Word w;
369+ Byte* op=p;
370+ int c=(tf->locvars && n>0 && strcmp(tf->locvars->varname->str,"self")==0)
371+ ? ':' : '.';
372+ p=op-11; p++; get_word(w,p); printf("%s%c",VarStr(w),c);
373+ p=op-8; p++; get_word(w,p); printf("%s defined at ",StrStr(w));
374+ }
375+ break;
376+ }
377+ }
378+ printf("\"%s\":%d (%d bytes at %p); used at main+%d\n",
187379 tf->fileName,tf->lineDefined,tf->size,tf,tf->marked);
188− V=tf->locvars;
189− PrintCode(tf->code,tf->code+tf->size);
380+ }
381+ PrintLocals(tf->locvars,n);
382+ PrintCode(tf);
190383 }
src/luac/print.h+6−3
@@ -1,10 +1,10 @@
11 /*
22 ** print.h
33 ** opcode names
4−** $Id: print.h,v 1.1 1996/02/23 19:04:13 lhf Exp $
4+** $Id: print.h,v 1.3 1997/04/14 14:42:50 lhf Exp $
55 */
66
7−static char* OpCodeName[]={ /* attention: same order as enum in opcode.h */
7+static char* OpCodeName[]={ /* ATTENTION: same order as enum in opcode.h */
88 "PUSHNIL",
99 "PUSH0",
1010 "PUSH1",
@@ -72,5 +72,8 @@ static char* OpCodeName[]={ /* attention: same order as enum in opcode.h */ · 61 unmodified lines
7272 "RETCODE0",
7373 "RETCODE",
7474 "SETLINE",
75− ""
75+ "VARARGS",
76+ "STOREMAP"
7677 };
78+
79+#define NOPCODES (sizeof(OpCodeName)/sizeof(OpCodeName[0]))
src/luamem.c+159−0
@@ -0,0 +1,159 @@
1+/*
2+** mem.c
3+** TecCGraf - PUC-Rio
4+*/
5+
6+char *rcs_luamem = "$Id: luamem.c,v 1.16 1997/04/01 21:23:20 roberto Exp $";
7+
8+#include <stdlib.h>
9+
10+#include "luamem.h"
11+#include "lua.h"
12+
13+
14+#define DEBUG 0
15+
16+#if !DEBUG
17+
18+void luaI_free (void *block)
19+{
20+ if (block)
21+ {
22+ *((char *)block) = -1; /* to catch errors */
23+ free(block);
24+ }
25+}
26+
27+
28+void *luaI_realloc (void *oldblock, unsigned long size)
29+{
30+ void *block;
31+ size_t s = (size_t)size;
32+ if (s != size)
33+ lua_error("Allocation Error: Block too big");
34+ block = oldblock ? realloc(oldblock, s) : malloc(s);
35+ if (block == NULL)
36+ lua_error(memEM);
37+ return block;
38+}
39+
40+
41+int luaI_growvector (void **block, unsigned long nelems, int size,
42+ char *errormsg, unsigned long limit)
43+{
44+ if (nelems >= limit)
45+ lua_error(errormsg);
46+ nelems = (nelems == 0) ? 20 : nelems*2;
47+ if (nelems > limit)
48+ nelems = limit;
49+ *block = luaI_realloc(*block, nelems*size);
50+ return (int)nelems;
51+}
52+
53+
54+void* luaI_buffer (unsigned long size)
55+{
56+ static unsigned long buffsize = 0;
57+ static char* buffer = NULL;
58+ if (size > buffsize)
59+ buffer = luaI_realloc(buffer, buffsize=size);
60+ return buffer;
61+}
62+
63+#else
64+/* DEBUG */
65+
66+#include <stdio.h>
67+
68+# define assert(ex) {if (!(ex)){(void)fprintf(stderr, \
69+ "Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);exit(1);}}
70+
71+#define MARK 55
72+
73+static unsigned long numblocks = 0;
74+static unsigned long totalmem = 0;
75+
76+
77+static void message (void)
78+{
79+#define inrange(x,y) ((x) < (((y)*3)/2) && (x) > (((y)*2)/3))
80+ static int count = 0;
81+ static unsigned long lastnumblocks = 0;
82+ static unsigned long lasttotalmem = 0;
83+ if (!inrange(numblocks, lastnumblocks) || !inrange(totalmem, lasttotalmem)
84+ || count++ >= 5000)
85+ {
86+ fprintf(stderr,"blocks = %lu mem = %luK\n", numblocks, totalmem/1000);
87+ count = 0;
88+ lastnumblocks = numblocks;
89+ lasttotalmem = totalmem;
90+ }
91+}
92+
93+
94+void luaI_free (void *block)
95+{
96+ if (block)
97+ {
98+ unsigned long *b = (unsigned long *)block - 1;
99+ unsigned long size = *b;
100+ assert(*(((char *)b)+size+sizeof(unsigned long)) == MARK);
101+ numblocks--;
102+ totalmem -= size;
103+ free(b);
104+ message();
105+ }
106+}
107+
108+
109+void *luaI_realloc (void *oldblock, unsigned long size)
110+{
111+ unsigned long *block;
112+ unsigned long realsize = sizeof(unsigned long)+size+sizeof(char);
113+ if (realsize != (size_t)realsize)
114+ lua_error("Allocation Error: Block too big");
115+ if (oldblock)
116+ {
117+ unsigned long *b = (unsigned long *)oldblock - 1;
118+ unsigned long oldsize = *b;
119+ assert(*(((char *)b)+oldsize+sizeof(unsigned long)) == MARK);
120+ totalmem -= oldsize;
121+ numblocks--;
122+ block = (unsigned long *)realloc(b, realsize);
123+ }
124+ else
125+ block = (unsigned long *)malloc(realsize);
126+ if (block == NULL)
127+ lua_error("not enough memory");
128+ totalmem += size;
129+ numblocks++;
130+ *block = size;
131+ *(((char *)block)+size+sizeof(unsigned long)) = MARK;
132+ message();
133+ return block+1;
134+}
135+
136+
137+int luaI_growvector (void **block, unsigned long nelems, int size,
138+ char *errormsg, unsigned long limit)
139+{
140+ if (nelems >= limit)
141+ lua_error(errormsg);
142+ nelems = (nelems == 0) ? 20 : nelems*2;
143+ if (nelems > limit)
144+ nelems = limit;
145+ *block = luaI_realloc(*block, nelems*size);
146+ return (int)nelems;
147+}
148+
149+
150+void* luaI_buffer (unsigned long size)
151+{
152+ static unsigned long buffsize = 0;
153+ static char* buffer = NULL;
154+ if (size > buffsize)
155+ buffer = luaI_realloc(buffer, buffsize=size);
156+ return buffer;
157+}
158+
159+#endif
src/luamem.hrenamed from src/mem.h+3−3
@@ -1,11 +1,11 @@
11 /*
22 ** mem.c
33 ** memory manager for lua
4−** $Id: mem.h,v 1.8 1996/05/24 14:31:10 roberto Exp $
4+** $Id: luamem.h,v 1.9 1997/03/31 14:10:11 roberto Exp $
55 */
66
7−#ifndef mem_h
8−#define mem_h
7+#ifndef luamem_h
8+#define luamem_h
99
1010 #ifndef NULL
1111 #define NULL 0
src/mem.c+0−58
@@ -1,58 +0,0 @@
1−/*
2−** mem.c
3−** TecCGraf - PUC-Rio
4−*/
5−
6−char *rcs_mem = "$Id: mem.c,v 1.13 1996/05/24 14:31:10 roberto Exp $";
7−
8−#include <stdlib.h>
9−
10−#include "mem.h"
11−#include "lua.h"
12−
13−
14−void luaI_free (void *block)
15−{
16− if (block)
17− {
18− *((int *)block) = -1; /* to catch errors */
19− free(block);
20− }
21−}
22−
23−
24−void *luaI_realloc (void *oldblock, unsigned long size)
25−{
26− void *block;
27− size_t s = (size_t)size;
28− if (s != size)
29− lua_error("Allocation Error: Block too big");
30− block = oldblock ? realloc(oldblock, s) : malloc(s);
31− if (block == NULL)
32− lua_error(memEM);
33− return block;
34−}
35−
36−
37−int luaI_growvector (void **block, unsigned long nelems, int size,
38− char *errormsg, unsigned long limit)
39−{
40− if (nelems >= limit)
41− lua_error(errormsg);
42− nelems = (nelems == 0) ? 20 : nelems*2;
43− if (nelems > limit)
44− nelems = limit;
45− *block = luaI_realloc(*block, nelems*size);
46− return (int)nelems;
47−}
48−
49−
50−void* luaI_buffer (unsigned long size)
51−{
52− static unsigned long buffsize = 0;
53− static char* buffer = NULL;
54− if (size > buffsize)
55− buffer = luaI_realloc(buffer, buffsize=size);
56− return buffer;
57−}
58−
src/opcode.c+517−369
@@ -3,7 +3,7 @@ · 2 unmodified lines
33 ** TecCGraf - PUC-Rio
44 */
55
6−char *rcs_opcode="$Id: opcode.c,v 3.77 1996/11/18 13:48:44 roberto Exp $";
6+char *rcs_opcode="$Id: opcode.c,v 4.15 1997/06/26 21:40:57 roberto Exp $";
77
88 #include <setjmp.h>
99 #include <stdio.h>
@@ -11,17 +11,18 @@ char *rcs_opcode="$Id: opcode.c,v 3.77 1996/11/18 13:48:44 roberto Exp $"; · 1 unmodified line
1111 #include <stdlib.h>
1212
1313 #include "luadebug.h"
14−#include "mem.h"
14+#include "luamem.h"
1515 #include "opcode.h"
1616 #include "hash.h"
1717 #include "inout.h"
1818 #include "table.h"
1919 #include "lua.h"
2020 #include "fallback.h"
21−#include "undump.h"
21+#include "auxlib.h"
22+#include "lex.h"
2223
23−#define tonumber(o) ((tag(o) != LUA_T_NUMBER) && (lua_tonumber(o) != 0))
24−#define tostring(o) ((tag(o) != LUA_T_STRING) && (lua_tostring(o) != 0))
24+#define tonumber(o) ((ttype(o) != LUA_T_NUMBER) && (lua_tonumber(o) != 0))
25+#define tostring(o) ((ttype(o) != LUA_T_STRING) && (lua_tostring(o) != 0))
2526
2627
2728 #define STACK_SIZE 128
@@ -32,14 +33,14 @@ char *rcs_opcode="$Id: opcode.c,v 3.77 1996/11/18 13:48:44 roberto Exp $"; · 4 unmodified lines
3233
3334 typedef int StkId; /* index to stack elements */
3435
35−static Object initial_stack;
36+static TObject initial_stack;
3637
37−static Object *stackLimit = &initial_stack+1;
38−static Object *stack = &initial_stack;
39−static Object *top = &initial_stack;
38+static TObject *stackLimit = &initial_stack+1;
39+static TObject *stack = &initial_stack;
40+static TObject *top = &initial_stack;
4041
4142
42−/* macros to convert from lua_Object to (Object *) and back */
43+/* macros to convert from lua_Object to (TObject *) and back */
4344
4445 #define Address(lo) ((lo)+stack-1)
4546 #define Ref(st) ((st)-stack+1)
@@ -51,13 +52,13 @@ static Object *top = &initial_stack; · 5 unmodified lines
5152 #define incr_top if (++top >= stackLimit) growstack()
5253
5354 struct C_Lua_Stack {
54− StkId base; /* when Lua calls C or C calls Lua, points to */
55− /* the first slot after the last parameter. */
56− int num; /* when Lua calls C, has the number of parameters; */
57− /* when C calls Lua, has the number of results. */
55+ StkId base; /* when Lua calls C or C calls Lua, points to */
56+ /* the first slot after the last parameter. */
57+ StkId lua2C; /* points to first element of "array" lua2C */
58+ int num; /* size of "array" lua2C */
5859 };
5960
60−static struct C_Lua_Stack CLS_current = {0, 0};
61+static struct C_Lua_Stack CLS_current = {0, 0, 0};
6162
6263 static jmp_buf *errorJmp = NULL; /* current error recover point */
6364
@@ -72,7 +73,7 @@ static void do_call (StkId base, int nResults); · 8 unmodified lines
7273
7374
7475
75−Object *luaI_Address (lua_Object o)
76+TObject *luaI_Address (lua_Object o)
7677 {
7778 return Address(o);
7879 }
@@ -84,7 +85,7 @@ Object *luaI_Address (lua_Object o) · 5 unmodified lines
8485 static void lua_initstack (void)
8586 {
8687 Long maxstack = STACK_SIZE;
87− stack = newvector(maxstack, Object);
88+ stack = newvector(maxstack, TObject);
8889 stackLimit = stack+maxstack;
8990 top = stack;
9091 *(top++) = initial_stack;
@@ -105,7 +106,7 @@ static void growstack (void) · 14 unmodified lines
105106 static int limit = STACK_LIMIT;
106107 StkId t = top-stack;
107108 Long stacksize = stackLimit - stack;
108− stacksize = growvector(&stack, stacksize, Object, stackEM, limit+100);
109+ stacksize = growvector(&stack, stacksize, TObject, stackEM, limit+100);
109110 stackLimit = stack+stacksize;
110111 top = stack + t;
111112 if (stacksize >= limit)
@@ -134,16 +135,16 @@ static char *lua_strconc (char *l, char *r) · 22 unmodified lines
134135 ** Convert, if possible, to a number object.
135136 ** Return 0 if success, not 0 if error.
136137 */
137−static int lua_tonumber (Object *obj)
138+static int lua_tonumber (TObject *obj)
138139 {
139140 float t;
140141 char c;
141− if (tag(obj) != LUA_T_STRING)
142+ if (ttype(obj) != LUA_T_STRING)
142143 return 1;
143144 else if (sscanf(svalue(obj), "%f %c",&t, &c) == 1)
144145 {
145146 nvalue(obj) = t;
146− tag(obj) = LUA_T_NUMBER;
147+ ttype(obj) = LUA_T_NUMBER;
147148 return 0;
148149 }
149150 else
@@ -152,39 +153,54 @@ static int lua_tonumber (Object *obj) · 2 unmodified lines
152153
153154
154155 /*
155−** Convert, if possible, to a string tag
156+** Convert, if possible, to a string ttype
156157 ** Return 0 in success or not 0 on error.
157158 */
158−static int lua_tostring (Object *obj)
159+static int lua_tostring (TObject *obj)
159160 {
160− char s[256];
161− if (tag(obj) != LUA_T_NUMBER)
162− return 1;
163− if ((int) nvalue(obj) == nvalue(obj))
164− sprintf (s, "%d", (int) nvalue(obj));
165− else
166− sprintf (s, "%g", nvalue(obj));
167− tsvalue(obj) = lua_createstring(s);
168− tag(obj) = LUA_T_STRING;
169− return 0;
161+ if (ttype(obj) != LUA_T_NUMBER)
162+ return 1;
163+ else {
164+ char s[60];
165+ real f = nvalue(obj);
166+ int i;
167+ if ((real)(-MAX_INT) <= f && f <= (real)MAX_INT && (real)(i=(int)f) == f)
168+ sprintf (s, "%d", i);
169+ else
170+ sprintf (s, "%g", nvalue(obj));
171+ tsvalue(obj) = lua_createstring(s);
172+ ttype(obj) = LUA_T_STRING;
173+ return 0;
174+ }
170175 }
171176
172177
173178 /*
174179 ** Adjust stack. Set top to the given value, pushing NILs if needed.
175180 */
176−static void adjust_top (StkId newtop)
181+static void adjust_top_aux (StkId newtop)
177182 {
178− Object *nt;
183+ TObject *nt;
179184 lua_checkstack(stack+newtop);
180185 nt = stack+newtop; /* warning: previous call may change stack */
181− while (top < nt) tag(top++) = LUA_T_NIL;
182− top = nt; /* top could be bigger than newtop */
186+ while (top < nt) ttype(top++) = LUA_T_NIL;
183187 }
184188
189+
190+#define adjust_top(newtop) { if (newtop <= top-stack) \
191+ top = stack+newtop; \
192+ else adjust_top_aux(newtop); }
193+
185194 #define adjustC(nParams) adjust_top(CLS_current.base+nParams)
186195
187196
197+static void checkCparams (int nParams)
198+{
199+ if (top-stack < CLS_current.base+nParams)
200+ lua_error("API error - wrong number of arguments in C2lua stack");
201+}
202+
203+
188204 /*
189205 ** Open a hole below "nelems" from the top.
190206 */
@@ -197,13 +213,37 @@ static void open_stack (int nelems) · 6 unmodified lines
197213 }
198214
199215
216+static lua_Object put_luaObject (TObject *o)
217+{
218+ open_stack((top-stack)-CLS_current.base);
219+ stack[CLS_current.base++] = *o;
220+ return CLS_current.base; /* this is +1 real position (see Ref) */
221+}
222+
223+
224+static lua_Object put_luaObjectonTop (void)
225+{
226+ open_stack((top-stack)-CLS_current.base);
227+ stack[CLS_current.base++] = *(--top);
228+ return CLS_current.base; /* this is +1 real position (see Ref) */
229+}
230+
231+
232+lua_Object lua_pop (void)
233+{
234+ checkCparams(1);
235+ return put_luaObjectonTop();
236+}
237+
238+
239+
200240 /*
201241 ** call Line hook
202242 */
203243 static void lineHook (int line)
204244 {
205245 struct C_Lua_Stack oldCLS = CLS_current;
206− StkId old_top = CLS_current.base = top-stack;
246+ StkId old_top = CLS_current.lua2C = CLS_current.base = top-stack;
207247 CLS_current.num = 0;
208248 (*lua_linehook)(line);
209249 top = stack+old_top;
@@ -218,13 +258,13 @@ static void lineHook (int line) · 8 unmodified lines
218258 static void callHook (StkId base, lua_Type type, int isreturn)
219259 {
220260 struct C_Lua_Stack oldCLS = CLS_current;
221− StkId old_top = CLS_current.base = top-stack;
261+ StkId old_top = CLS_current.lua2C = CLS_current.base = top-stack;
222262 CLS_current.num = 0;
223263 if (isreturn)
224264 (*lua_callhook)(LUA_NOOBJECT, "(return)", 0);
225265 else
226266 {
227− Object *f = stack+base-1;
267+ TObject *f = stack+base-1;
228268 if (type == LUA_T_MARK)
229269 (*lua_callhook)(Ref(f), f->value.tf->fileName, f->value.tf->lineDefined);
230270 else
@@ -246,6 +286,7 @@ static StkId callC (lua_CFunction func, StkId base) · 15 unmodified lines
246286 StkId firstResult;
247287 CLS_current.num = (top-stack) - base;
248288 /* incorporate parameters on the stack */
289+ CLS_current.lua2C = base;
249290 CLS_current.base = base+CLS_current.num; /* == top-stack */
250291 if (lua_callhook)
251292 callHook(base, LUA_T_CMARK, 0);
@@ -257,15 +298,11 @@ static StkId callC (lua_CFunction func, StkId base) · 5 unmodified lines
257298 return firstResult;
258299 }
259300
260−/*
261−** Call the specified fallback, putting it on the stack below its arguments
262−*/
263−static void callFB (int fb)
301+static void callIM (TObject *f, int nParams, int nResults)
264302 {
265− int nParams = luaI_fallBacks[fb].nParams;
266303 open_stack(nParams);
267− *(top-nParams-1) = luaI_fallBacks[fb].function;
268− do_call((top-stack)-nParams, luaI_fallBacks[fb].nResults);
304+ *(top-nParams-1) = *f;
305+ do_call((top-stack)-nParams, nResults);
269306 }
270307
271308
@@ -278,28 +315,28 @@ static void callFB (int fb) · 6 unmodified lines
278315 static void do_call (StkId base, int nResults)
279316 {
280317 StkId firstResult;
281− Object *func = stack+base-1;
318+ TObject *func = stack+base-1;
282319 int i;
283− if (tag(func) == LUA_T_CFUNCTION)
284− {
285− tag(func) = LUA_T_CMARK;
320+ if (ttype(func) == LUA_T_CFUNCTION) {
321+ ttype(func) = LUA_T_CMARK;
286322 firstResult = callC(fvalue(func), base);
287323 }
288− else if (tag(func) == LUA_T_FUNCTION)
289− {
290− tag(func) = LUA_T_MARK;
324+ else if (ttype(func) == LUA_T_FUNCTION) {
325+ ttype(func) = LUA_T_MARK;
291326 firstResult = lua_execute(func->value.tf->code, base);
292327 }
293− else
294− { /* func is not a function */
295− /* Call the fallback for invalid functions */
328+ else { /* func is not a function */
329+ /* Check the tag method for invalid functions */
330+ TObject *im = luaI_getimbyObj(func, IM_FUNCTION);
331+ if (ttype(im) == LUA_T_NIL)
332+ lua_error("call expression not a function");
296333 open_stack((top-stack)-(base-1));
297− stack[base-1] = luaI_fallBacks[FB_FUNCTION].function;
334+ stack[base-1] = *im;
298335 do_call(base, nResults);
299336 return;
300337 }
301338 /* adjust the number of results */
302− if (nResults != MULT_RET && top - (stack+firstResult) != nResults)
339+ if (nResults != MULT_RET)
303340 adjust_top(firstResult+nResults);
304341 /* move results to base-1 (to erase parameters and function) */
305342 base--;
@@ -316,58 +353,110 @@ static void do_call (StkId base, int nResults) · 10 unmodified lines
316353 */
317354 static void pushsubscript (void)
318355 {
319− if (tag(top-2) != LUA_T_ARRAY)
320− callFB(FB_GETTABLE);
321− else
322− {
323− Object *h = lua_hashget(avalue(top-2), top-1);
324− if (h == NULL || tag(h) == LUA_T_NIL)
325− callFB(FB_INDEX);
326− else
327− {
328− --top;
329− *(top-1) = *h;
356+ TObject *im;
357+ if (ttype(top-2) != LUA_T_ARRAY) /* not a table, get "gettable" method */
358+ im = luaI_getimbyObj(top-2, IM_GETTABLE);
359+ else { /* object is a table... */
360+ int tg = (top-2)->value.a->htag;
361+ im = luaI_getim(tg, IM_GETTABLE);
362+ if (ttype(im) == LUA_T_NIL) { /* and does not have a "gettable" method */
363+ TObject *h = lua_hashget(avalue(top-2), top-1);
364+ if (h != NULL && ttype(h) != LUA_T_NIL) {
365+ --top;
366+ *(top-1) = *h;
367+ }
368+ else if (ttype(im=luaI_getim(tg, IM_INDEX)) != LUA_T_NIL)
369+ callIM(im, 2, 1);
370+ else {
371+ --top;
372+ ttype(top-1) = LUA_T_NIL;
373+ }
374+ return;
330375 }
376+ /* else it has a "gettable" method, go through to next command */
377+ }
378+ /* object is not a table, or it has a "gettable" method */
379+ if (ttype(im) != LUA_T_NIL)
380+ callIM(im, 2, 1);
381+ else
382+ lua_error("indexed expression not a table");
383+}
384+
385+
386+lua_Object lua_rawgettable (void)
387+{
388+ checkCparams(2);
389+ if (ttype(top-2) != LUA_T_ARRAY)
390+ lua_error("indexed expression not a table in raw gettable");
391+ else {
392+ TObject *h = lua_hashget(avalue(top-2), top-1);
393+ --top;
394+ if (h != NULL)
395+ *(top-1) = *h;
396+ else
397+ ttype(top-1) = LUA_T_NIL;
331398 }
399+ return put_luaObjectonTop();
332400 }
333401
334402
335403 /*
336404 ** Function to store indexed based on values at the top
405+** mode = 0: raw store (without internal methods)
406+** mode = 1: normal store (with internal methods)
407+** mode = 2: "deep stack" store (with internal methods)
337408 */
338−static void storesubscript (void)
409+static void storesubscript (TObject *t, int mode)
339410 {
340− if (tag(top-3) != LUA_T_ARRAY)
341− callFB(FB_SETTABLE);
342− else
343− {
344− Object *h = lua_hashdefine (avalue(top-3), top-2);
345− *h = *(top-1);
346− top -= 3;
347− }
411+ TObject *im = (mode == 0) ? NULL : luaI_getimbyObj(t, IM_SETTABLE);
412+ if (ttype(t) == LUA_T_ARRAY && (im == NULL || ttype(im) == LUA_T_NIL)) {
413+ TObject *h = lua_hashdefine(avalue(t), t+1);
414+ *h = *(top-1);
415+ top -= (mode == 2) ? 1 : 3;
416+ }
417+ else { /* object is not a table, and/or has a specific "settable" method */
418+ if (im && ttype(im) != LUA_T_NIL) {
419+ if (mode == 2) {
420+ lua_checkstack(top+2);
421+ *(top+1) = *(top-1);
422+ *(top) = *(t+1);
423+ *(top-1) = *t;
424+ top += 2;
425+ }
426+ callIM(im, 3, 0);
427+ }
428+ else
429+ lua_error("indexed expression not a table");
430+ }
348431 }
349432
350433
351434 static void getglobal (Word n)
352435 {
353− *top = lua_table[n].object;
354− incr_top;
355− if (tag(top-1) == LUA_T_NIL)
356− { /* must call getglobal fallback */
357− tag(top-1) = LUA_T_STRING;
358− tsvalue(top-1) = lua_table[n].varname;
359− callFB(FB_GETGLOBAL);
436+ TObject *value = &lua_table[n].object;
437+ TObject *im = luaI_getimbyObj(value, IM_GETGLOBAL);
438+ if (ttype(im) == LUA_T_NIL) { /* default behavior */
439+ *top = *value;
440+ incr_top;
360441 }
442+ else {
443+ ttype(top) = LUA_T_STRING;
444+ tsvalue(top) = lua_table[n].varname;
445+ incr_top;
446+ *top = *value;
447+ incr_top;
448+ callIM(im, 2, 1);
449+ }
361450 }
362451
363452 /*
364453 ** Traverse all objects on stack
365454 */
366−void lua_travstack (int (*fn)(Object *))
455+void lua_travstack (int (*fn)(TObject *))
367456 {
368− Object *o;
369− for (o = top-1; o >= stack; o--)
370− fn (o);
457+ StkId i;
458+ for (i = (top-1)-stack; i>=0; i--)
459+ fn (stack+i);
371460 }
372461
373462
@@ -377,8 +466,11 @@ void lua_travstack (int (*fn)(Object *)) · 3 unmodified lines
377466
378467 static void lua_message (char *s)
379468 {
380− lua_pushstring(s);
381− callFB(FB_ERROR);
469+ TObject *im = luaI_geterrorim();
470+ if (ttype(im) != LUA_T_NIL) {
471+ lua_pushstring(s);
472+ callIM(im, 1, 0);
473+ }
382474 }
383475
384476 /*
@@ -399,25 +491,25 @@ void lua_error (char *s) · 14 unmodified lines
399491
400492 lua_Function lua_stackedfunction (int level)
401493 {
402− Object *p = top;
403− while (--p >= stack)
404− if (p->tag == LUA_T_MARK || p->tag == LUA_T_CMARK)
494+ StkId i;
495+ for (i = (top-1)-stack; i>=0; i--)
496+ if (stack[i].ttype == LUA_T_MARK || stack[i].ttype == LUA_T_CMARK)
405497 if (level-- == 0)
406− return Ref(p);
498+ return Ref(stack+i);
407499 return LUA_NOOBJECT;
408500 }
409501
410502
411503 int lua_currentline (lua_Function func)
412504 {
413− Object *f = Address(func);
414− return (f+1 < top && (f+1)->tag == LUA_T_LINE) ? (f+1)->value.i : -1;
505+ TObject *f = Address(func);
506+ return (f+1 < top && (f+1)->ttype == LUA_T_LINE) ? (f+1)->value.i : -1;
415507 }
416508
417509
418510 lua_Object lua_getlocal (lua_Function func, int local_number, char **name)
419511 {
420− Object *f = luaI_Address(func);
512+ TObject *f = luaI_Address(func);
421513 *name = luaI_getlocalname(f->value.tf, local_number, lua_currentline(func));
422514 if (*name)
423515 {
@@ -431,9 +523,9 @@ lua_Object lua_getlocal (lua_Function func, int local_number, char **name) · 7 unmodified lines
431523
432524 int lua_setlocal (lua_Function func, int local_number)
433525 {
434− Object *f = Address(func);
526+ TObject *f = Address(func);
435527 char *name = luaI_getlocalname(f->value.tf, local_number, lua_currentline(func));
436− adjustC(1);
528+ checkCparams(1);
437529 --top;
438530 if (name)
439531 {
@@ -446,6 +538,29 @@ int lua_setlocal (lua_Function func, int local_number) · 6 unmodified lines
446538 return 0;
447539 }
448540
541+/*
542+** Call the function at CLS_current.base, and incorporate results on
543+** the Lua2C structure.
544+*/
545+static void do_callinc (int nResults)
546+{
547+ StkId base = CLS_current.base;
548+ do_call(base+1, nResults);
549+ CLS_current.lua2C = base; /* position of the new results */
550+ CLS_current.num = (top-stack) - base; /* number of results */
551+ CLS_current.base = base + CLS_current.num; /* incorporate results on stack */
552+}
553+
554+
555+static void do_unprotectedrun (lua_CFunction f, int nParams, int nResults)
556+{
557+ StkId base = (top-stack)-nParams;
558+ open_stack(nParams);
559+ stack[base].ttype = LUA_T_CFUNCTION;
560+ stack[base].value.f = f;
561+ do_call(base+1, nResults);
562+}
563+
449564
450565 /*
451566 ** Execute a protected call. Assumes that function is at CLS_current.base and
@@ -458,15 +573,11 @@ static int do_protectedrun (int nResults) · 6 unmodified lines
458573 struct C_Lua_Stack oldCLS = CLS_current;
459574 jmp_buf *oldErr = errorJmp;
460575 errorJmp = &myErrorJmp;
461− if (setjmp(myErrorJmp) == 0)
462− {
463− do_call(CLS_current.base+1, nResults);
464− CLS_current.num = (top-stack) - CLS_current.base; /* number of results */
465− CLS_current.base += CLS_current.num; /* incorporate results on the stack */
576+ if (setjmp(myErrorJmp) == 0) {
577+ do_callinc(nResults);
466578 status = 0;
467579 }
468− else
469− { /* an error occurred: restore CLS_current and top */
580+ else { /* an error occurred: restore CLS_current and top */
470581 CLS_current = oldCLS;
471582 top = stack+CLS_current.base;
472583 status = 1;
@@ -479,13 +590,14 @@ int luaI_dorun (TFunc *tf) · 6 unmodified lines
479590 {
480591 int status;
481592 adjustC(1); /* one slot for the pseudo-function */
482− stack[CLS_current.base].tag = LUA_T_FUNCTION;
593+ stack[CLS_current.base].ttype = LUA_T_FUNCTION;
483594 stack[CLS_current.base].value.tf = tf;
484595 status = do_protectedrun(MULT_RET);
485596 return status;
486597 }
487598
488−static int do_protectedmain (void)
599+
600+int lua_domain (void)
489601 {
490602 TFunc tf;
491603 int status;
@@ -493,23 +605,21 @@ static int do_protectedmain (void) · 1 unmodified line
493605 jmp_buf *oldErr = errorJmp;
494606 errorJmp = &myErrorJmp;
495607 luaI_initTFunc(&tf);
496− tf.fileName = lua_parsedfile;
497− if (setjmp(myErrorJmp) == 0)
498− {
608+ if (setjmp(myErrorJmp) == 0) {
499609 lua_parse(&tf);
500− status = luaI_dorun(&tf);
610+ status = 0;
501611 }
502− else
503− {
504− status = 1;
612+ else {
505613 adjustC(0); /* erase extra slot */
614+ status = 1;
506615 }
616+ if (status == 0)
617+ status = luaI_dorun(&tf);
507618 errorJmp = oldErr;
508619 luaI_free(tf.code);
509620 return status;
510621 }
511622
512−
513623 /*
514624 ** Execute the given lua function. Return 0 on success or 1 on error.
515625 */
@@ -526,71 +636,31 @@ int lua_callfunction (lua_Object function) · 10 unmodified lines
526636 }
527637
528638
529−int lua_call (char *funcname)
639+lua_Object lua_gettagmethod (int tag, char *event)
530640 {
531− Word n = luaI_findsymbolbyname(funcname);
532− open_stack((top-stack)-CLS_current.base);
533− stack[CLS_current.base] = s_object(n);
534− return do_protectedrun(MULT_RET);
641+ lua_pushnumber(tag);
642+ lua_pushstring(event);
643+ do_unprotectedrun(luaI_gettagmethod, 2, 1);
644+ return put_luaObjectonTop();
535645 }
536646
537−
538−/*
539−** Open file, generate opcode and execute global statement. Return 0 on
540−** success or non 0 on error.
541−*/
542−int lua_dofile (char *filename)
647+lua_Object lua_settagmethod (int tag, char *event)
543648 {
544− int status;
545− int c;
546− FILE *f = lua_openfile(filename);
547− if (f == NULL)
548− return 2;
549− c = fgetc(f);
550− ungetc(c, f);
551− if (c == ID_CHUNK) {
552− f = freopen(filename, "rb", f); /* set binary mode */
553− status = luaI_undump(f);
554− }
555− else {
556− if (c == '#')
557− while ((c=fgetc(f)) != '\n') /* skip first line */;
558− status = do_protectedmain();
559− }
560− lua_closefile();
561− return status;
649+ TObject newmethod;
650+ checkCparams(1);
651+ newmethod = *(--top);
652+ lua_pushnumber(tag);
653+ lua_pushstring(event);
654+ *top = newmethod; incr_top;
655+ do_unprotectedrun(luaI_settagmethod, 3, 1);
656+ return put_luaObjectonTop();
562657 }
563658
564−/*
565−** Generate opcode stored on string and execute global statement. Return 0 on
566−** success or non 0 on error.
567−*/
568−int lua_dostring (char *str)
659+lua_Object lua_seterrormethod (void)
569660 {
570− int status;
571− if (str == NULL)
572− return 1;
573− lua_openstring(str);
574− status = do_protectedmain();
575− lua_closestring();
576− return status;
577−}
578−
579−
580−/*
581−** API: set a function as a fallback
582−*/
583−lua_Object lua_setfallback (char *name, lua_CFunction fallback)
584−{
585− adjustC(1); /* one slot for the pseudo-function */
586− stack[CLS_current.base].tag = LUA_T_CFUNCTION;
587− stack[CLS_current.base].value.f = luaI_setfallback;
588− lua_pushstring(name);
589− lua_pushcfunction(fallback);
590− if (do_protectedrun(1) == 0)
591− return (Ref(top-1));
592− else
593− return LUA_NOOBJECT;
661+ checkCparams(1);
662+ do_unprotectedrun(luaI_seterrormethod, 1, 1);
663+ return put_luaObjectonTop();
594664 }
595665
596666
@@ -598,12 +668,11 @@ lua_Object lua_setfallback (char *name, lua_CFunction fallback) · 1 unmodified line
598668 ** API: receives on the stack the table and the index.
599669 ** returns the value.
600670 */
601−lua_Object lua_getsubscript (void)
671+lua_Object lua_gettable (void)
602672 {
603− adjustC(2);
673+ checkCparams(2);
604674 pushsubscript();
605− CLS_current.base++; /* incorporate object in the stack */
606− return (Ref(top-1));
675+ return put_luaObjectonTop();
607676 }
608677
609678
@@ -633,13 +702,25 @@ void lua_endblock (void) · 23 unmodified lines
633702 adjustC(0);
634703 }
635704
705+void lua_settag (int tag)
706+{
707+ checkCparams(1);
708+ luaI_settag(tag, --top);
709+}
710+
636711 /*
637712 ** API: receives on the stack the table, the index, and the new value.
638713 */
639−void lua_storesubscript (void)
714+void lua_settable (void)
640715 {
641− adjustC(3);
642− storesubscript();
716+ checkCparams(3);
717+ storesubscript(top-3, 1);
718+}
719+
720+void lua_rawsettable (void)
721+{
722+ checkCparams(3);
723+ storesubscript(top-3, 0);
643724 }
644725
645726 /*
@@ -647,40 +728,59 @@ void lua_storesubscript (void) · 1 unmodified line
647728 */
648729 lua_Object lua_createtable (void)
649730 {
650− adjustC(0);
651− avalue(top) = lua_createarray(0);
652− tag(top) = LUA_T_ARRAY;
653− incr_top;
654− CLS_current.base++; /* incorporate object in the stack */
655− return Ref(top-1);
731+ TObject o;
732+ avalue(&o) = lua_createarray(0);
733+ ttype(&o) = LUA_T_ARRAY;
734+ return put_luaObject(&o);
656735 }
657736
658737 /*
659738 ** Get a parameter, returning the object handle or LUA_NOOBJECT on error.
660739 ** 'number' must be 1 to get the first parameter.
661740 */
662−lua_Object lua_getparam (int number)
741+lua_Object lua_lua2C (int number)
742+{
743+ if (number <= 0 || number > CLS_current.num) return LUA_NOOBJECT;
744+ /* Ref(stack+(CLS_current.lua2C+number-1)) ==
745+ stack+(CLS_current.lua2C+number-1)-stack+1 == */
746+ return CLS_current.lua2C+number;
747+}
748+
749+int lua_isnil (lua_Object o)
750+{
751+ return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_NIL);
752+}
753+
754+int lua_istable (lua_Object o)
755+{
756+ return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_ARRAY);
757+}
758+
759+int lua_isuserdata (lua_Object o)
663760 {
664− if (number <= 0 || number > CLS_current.num) return LUA_NOOBJECT;
665− /* Ref(stack+(CLS_current.base-CLS_current.num+number-1)) ==
666− stack+(CLS_current.base-CLS_current.num+number-1)-stack+1 == */
667− return CLS_current.base-CLS_current.num+number;
761+ return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_USERDATA);
668762 }
669763
670−int lua_isnumber (lua_Object object)
764+int lua_iscfunction (lua_Object o)
671765 {
672− return (object != LUA_NOOBJECT) && (tonumber(Address(object)) == 0);
766+ int t = lua_tag(o);
767+ return (t == LUA_T_CMARK) || (t == LUA_T_CFUNCTION);
673768 }
674769
675−int lua_isstring (lua_Object object)
770+int lua_isnumber (lua_Object o)
676771 {
677− int t = lua_type(object);
772+ return (o!= LUA_NOOBJECT) && (tonumber(Address(o)) == 0);
773+}
774+
775+int lua_isstring (lua_Object o)
776+{
777+ int t = lua_tag(o);
678778 return (t == LUA_T_STRING) || (t == LUA_T_NUMBER);
679779 }
680780
681−int lua_isfunction (lua_Object object)
781+int lua_isfunction (lua_Object o)
682782 {
683− int t = lua_type(object);
783+ int t = lua_tag(o);
684784 return (t == LUA_T_FUNCTION) || (t == LUA_T_CFUNCTION) ||
685785 (t == LUA_T_MARK) || (t == LUA_T_CMARK);
686786 }
@@ -700,57 +800,44 @@ real lua_getnumber (lua_Object object) · 13 unmodified lines
700800 */
701801 char *lua_getstring (lua_Object object)
702802 {
703− if (object == LUA_NOOBJECT) return NULL;
704− if (tostring (Address(object))) return NULL;
705− else return (svalue(Address(object)));
803+ if (object == LUA_NOOBJECT || tostring (Address(object)))
804+ return NULL;
805+ else return (svalue(Address(object)));
706806 }
707807
708−/*
709−** Given an object handle, return its cfuntion pointer. On error, return NULL.
710−*/
711−lua_CFunction lua_getcfunction (lua_Object object)
808+
809+void *lua_getuserdata (lua_Object object)
712810 {
713− if (object == LUA_NOOBJECT || ((tag(Address(object)) != LUA_T_CFUNCTION) &&
714− (tag(Address(object)) != LUA_T_CMARK)))
715− return NULL;
716− else return (fvalue(Address(object)));
811+ if (object == LUA_NOOBJECT || ttype(Address(object)) != LUA_T_USERDATA)
812+ return NULL;
813+ else return tsvalue(Address(object))->u.v;
717814 }
718815
816+
719817 /*
720−** Given an object handle, return its user data. On error, return NULL.
818+** Given an object handle, return its cfuntion pointer. On error, return NULL.
721819 */
722−void *lua_getuserdata (lua_Object object)
820+lua_CFunction lua_getcfunction (lua_Object object)
723821 {
724− if (object == LUA_NOOBJECT || tag(Address(object)) < LUA_T_USERDATA)
822+ if (object == LUA_NOOBJECT || ((ttype(Address(object)) != LUA_T_CFUNCTION) &&
823+ (ttype(Address(object)) != LUA_T_CMARK)))
725824 return NULL;
726− else return (uvalue(Address(object)));
825+ else return (fvalue(Address(object)));
727826 }
728827
729828
730829 lua_Object lua_getref (int ref)
731830 {
732− Object *o = luaI_getref(ref);
831+ TObject *o = luaI_getref(ref);
733832 if (o == NULL)
734833 return LUA_NOOBJECT;
735− adjustC(0);
736− luaI_pushobject(o);
737− CLS_current.base++; /* incorporate object in the stack */
738− return Ref(top-1);
739−}
740−
741−
742−void lua_pushref (int ref)
743−{
744− Object *o = luaI_getref(ref);
745− if (o == NULL)
746− lua_error("access to invalid (possibly garbage collected) reference");
747− luaI_pushobject(o);
834+ return put_luaObject(o);
748835 }
749836
750837
751838 int lua_ref (int lock)
752839 {
753− adjustC(1);
840+ checkCparams(1);
754841 return luaI_ref(--top, lock);
755842 }
756843
@@ -761,20 +848,50 @@ int lua_ref (int lock) · 4 unmodified lines
761848 */
762849 lua_Object lua_getglobal (char *name)
763850 {
764− adjustC(0);
765− getglobal(luaI_findsymbolbyname(name));
766− CLS_current.base++; /* incorporate object in the stack */
767− return Ref(top-1);
851+ getglobal(luaI_findsymbolbyname(name));
852+ return put_luaObjectonTop();
853+}
854+
855+
856+lua_Object lua_rawgetglobal (char *name)
857+{
858+ return put_luaObject(&lua_table[luaI_findsymbolbyname(name)].object);
768859 }
769860
861+
770862 /*
771863 ** Store top of the stack at a global variable array field.
772864 */
773−void lua_storeglobal (char *name)
865+static void setglobal (Word n)
866+{
867+ TObject *oldvalue = &lua_table[n].object;
868+ TObject *im = luaI_getimbyObj(oldvalue, IM_SETGLOBAL);
869+ if (ttype(im) == LUA_T_NIL) /* default behavior */
870+ s_object(n) = *(--top);
871+ else {
872+ TObject newvalue = *(top-1);
873+ ttype(top-1) = LUA_T_STRING;
874+ tsvalue(top-1) = lua_table[n].varname;
875+ *top = *oldvalue;
876+ incr_top;
877+ *top = newvalue;
878+ incr_top;
879+ callIM(im, 3, 0);
880+ }
881+}
882+
883+
884+void lua_setglobal (char *name)
774885 {
775− Word n = luaI_findsymbolbyname(name);
776− adjustC(1);
777− s_object(n) = *(--top);
886+ checkCparams(1);
887+ setglobal(luaI_findsymbolbyname(name));
888+}
889+
890+void lua_rawsetglobal (char *name)
891+{
892+ Word n = luaI_findsymbolbyname(name);
893+ checkCparams(1);
894+ s_object(n) = *(--top);
778895 }
779896
780897 /*
@@ -782,60 +899,59 @@ void lua_storeglobal (char *name) · 1 unmodified line
782899 */
783900 void lua_pushnil (void)
784901 {
785− tag(top) = LUA_T_NIL;
786− incr_top;
902+ ttype(top) = LUA_T_NIL;
903+ incr_top;
787904 }
788905
789906 /*
790−** Push an object (tag=number) to stack.
907+** Push an object (ttype=number) to stack.
791908 */
792909 void lua_pushnumber (real n)
793910 {
794− tag(top) = LUA_T_NUMBER; nvalue(top) = n;
911+ ttype(top) = LUA_T_NUMBER; nvalue(top) = n;
795912 incr_top;
796913 }
797914
798915 /*
799−** Push an object (tag=string) to stack.
916+** Push an object (ttype=string) to stack.
800917 */
801918 void lua_pushstring (char *s)
802919 {
803920 if (s == NULL)
804− tag(top) = LUA_T_NIL;
921+ ttype(top) = LUA_T_NIL;
805922 else
806923 {
807924 tsvalue(top) = lua_createstring(s);
808− tag(top) = LUA_T_STRING;
925+ ttype(top) = LUA_T_STRING;
809926 }
810927 incr_top;
811928 }
812−/*>>>>>>>>>#undef lua_pushliteral
813−void lua_pushliteral(char *s) { lua_pushstring(s); }*/
929+
814930
815931 /*
816−** Push an object (tag=cfunction) to stack.
932+** Push an object (ttype=cfunction) to stack.
817933 */
818934 void lua_pushcfunction (lua_CFunction fn)
819935 {
820− tag(top) = LUA_T_CFUNCTION; fvalue(top) = fn;
936+ ttype(top) = LUA_T_CFUNCTION; fvalue(top) = fn;
821937 incr_top;
822938 }
823939
824−/*
825−** Push an object (tag=userdata) to stack.
826−*/
940+
941+
827942 void lua_pushusertag (void *u, int tag)
828943 {
829− if (tag < LUA_T_USERDATA)
830− lua_error("invalid tag in `lua_pushusertag'");
831− tag(top) = tag; uvalue(top) = u;
832− incr_top;
944+ if (tag < 0 && tag != LUA_ANYTAG)
945+ luaI_realtag(tag); /* error if tag is not valid */
946+ tsvalue(top) = luaI_createudata(u, tag);
947+ ttype(top) = LUA_T_USERDATA;
948+ incr_top;
833949 }
834950
835951 /*
836952 ** Push an object on the stack.
837953 */
838−void luaI_pushobject (Object *o)
954+void luaI_pushobject (TObject *o)
839955 {
840956 *top = *o;
841957 incr_top;
@@ -847,78 +963,102 @@ void luaI_pushobject (Object *o) · 5 unmodified lines
847963 void lua_pushobject (lua_Object o)
848964 {
849965 if (o == LUA_NOOBJECT)
850− lua_error("attempt to push a NOOBJECT");
966+ lua_error("API error - attempt to push a NOOBJECT");
851967 *top = *Address(o);
852− if (tag(top) == LUA_T_MARK) tag(top) = LUA_T_FUNCTION;
853− else if (tag(top) == LUA_T_CMARK) tag(top) = LUA_T_CFUNCTION;
968+ if (ttype(top) == LUA_T_MARK) ttype(top) = LUA_T_FUNCTION;
969+ else if (ttype(top) == LUA_T_CMARK) ttype(top) = LUA_T_CFUNCTION;
854970 incr_top;
855971 }
856972
857−int lua_type (lua_Object o)
973+int lua_tag (lua_Object lo)
858974 {
859− if (o == LUA_NOOBJECT)
860− return LUA_T_NIL;
861− else
862− return tag(Address(o));
975+ if (lo == LUA_NOOBJECT) return LUA_T_NIL;
976+ else {
977+ TObject *o = Address(lo);
978+ lua_Type t = ttype(o);
979+ if (t == LUA_T_USERDATA)
980+ return o->value.ts->tag;
981+ else if (t == LUA_T_ARRAY)
982+ return o->value.a->htag;
983+ else return t;
984+ }
863985 }
864986
865987
866−void luaI_gcFB (Object *o)
988+void luaI_gcIM (TObject *o)
867989 {
868− *top = *o;
869− incr_top;
870− callFB(FB_GC);
990+ TObject *im = luaI_getimbyObj(o, IM_GC);
991+ if (ttype(im) != LUA_T_NIL) {
992+ *top = *o;
993+ incr_top;
994+ callIM(im, 1, 0);
995+ }
996+}
997+
998+
999+static void call_binTM (IMS event, char *msg)
1000+{
1001+ TObject *im = luaI_getimbyObj(top-2, event); /* try first operand */
1002+ if (ttype(im) == LUA_T_NIL) {
1003+ im = luaI_getimbyObj(top-1, event); /* try second operand */
1004+ if (ttype(im) == LUA_T_NIL) {
1005+ im = luaI_getim(0, event); /* try a 'global' i.m. */
1006+ if (ttype(im) == LUA_T_NIL)
1007+ lua_error(msg);
1008+ }
1009+ }
1010+ lua_pushstring(luaI_eventname[event]);
1011+ callIM(im, 3, 1);
8711012 }
8721013
8731014
874−static void call_arith (char *op)
1015+static void call_arith (IMS event)
8751016 {
876− lua_pushstring(op);
877− callFB(FB_ARITH);
1017+ call_binTM(event, "unexpected type at arithmetic operation");
8781018 }
8791019
880−static void comparison (lua_Type tag_less, lua_Type tag_equal,
881− lua_Type tag_great, char *op)
1020+
1021+static void comparison (lua_Type ttype_less, lua_Type ttype_equal,
1022+ lua_Type ttype_great, IMS op)
8821023 {
883− Object *l = top-2;
884− Object *r = top-1;
1024+ TObject *l = top-2;
1025+ TObject *r = top-1;
8851026 int result;
886− if (tag(l) == LUA_T_NUMBER && tag(r) == LUA_T_NUMBER)
1027+ if (ttype(l) == LUA_T_NUMBER && ttype(r) == LUA_T_NUMBER)
8871028 result = (nvalue(l) < nvalue(r)) ? -1 : (nvalue(l) == nvalue(r)) ? 0 : 1;
888− else if (tostring(l) || tostring(r))
889− {
890− lua_pushstring(op);
891− callFB(FB_ORDER);
1029+ else if (ttype(l) == LUA_T_STRING && ttype(r) == LUA_T_STRING)
1030+ result = strcmp(svalue(l), svalue(r));
1031+ else {
1032+ call_binTM(op, "unexpected type at comparison");
8921033 return;
8931034 }
894− else
895− result = strcmp(svalue(l), svalue(r));
8961035 top--;
8971036 nvalue(top-1) = 1;
898− tag(top-1) = (result < 0) ? tag_less : (result == 0) ? tag_equal : tag_great;
1037+ ttype(top-1) = (result < 0) ? ttype_less :
1038+ (result == 0) ? ttype_equal : ttype_great;
8991039 }
9001040
9011041
9021042 static void adjust_varargs (StkId first_extra_arg)
9031043 {
904− Object arg;
905− Object *firstelem = stack+first_extra_arg;
1044+ TObject arg;
1045+ TObject *firstelem = stack+first_extra_arg;
9061046 int nvararg = top-firstelem;
9071047 int i;
9081048 if (nvararg < 0) nvararg = 0;
9091049 avalue(&arg) = lua_createarray(nvararg+1); /* +1 for field 'n' */
910− tag(&arg) = LUA_T_ARRAY;
1050+ ttype(&arg) = LUA_T_ARRAY;
9111051 for (i=0; i<nvararg; i++) {
912− Object index;
913− tag(&index) = LUA_T_NUMBER;
1052+ TObject index;
1053+ ttype(&index) = LUA_T_NUMBER;
9141054 nvalue(&index) = i+1;
9151055 *(lua_hashdefine(avalue(&arg), &index)) = *(firstelem+i);
9161056 }
9171057 /* store counter in field "n" */ {
918− Object index, extra;
919− tag(&index) = LUA_T_STRING;
1058+ TObject index, extra;
1059+ ttype(&index) = LUA_T_STRING;
9201060 tsvalue(&index) = lua_createstring("n");
921− tag(&extra) = LUA_T_NUMBER;
1061+ ttype(&extra) = LUA_T_NUMBER;
9221062 nvalue(&extra) = nvararg;
9231063 *(lua_hashdefine(avalue(&arg), &index)) = extra;
9241064 }
@@ -942,22 +1082,22 @@ static StkId lua_execute (Byte *pc, StkId base) · 17 unmodified lines
9421082 OpCode opcode;
9431083 switch (opcode = (OpCode)*pc++)
9441084 {
945− case PUSHNIL: tag(top) = LUA_T_NIL; incr_top; break;
1085+ case PUSHNIL: ttype(top) = LUA_T_NIL; incr_top; break;
9461086
9471087 case PUSH0: case PUSH1: case PUSH2:
948− tag(top) = LUA_T_NUMBER;
1088+ ttype(top) = LUA_T_NUMBER;
9491089 nvalue(top) = opcode-PUSH0;
9501090 incr_top;
9511091 break;
9521092
9531093 case PUSHBYTE:
954− tag(top) = LUA_T_NUMBER; nvalue(top) = *pc++; incr_top; break;
1094+ ttype(top) = LUA_T_NUMBER; nvalue(top) = *pc++; incr_top; break;
9551095
9561096 case PUSHWORD:
9571097 {
9581098 Word w;
9591099 get_word(w,pc);
960− tag(top) = LUA_T_NUMBER; nvalue(top) = w;
1100+ ttype(top) = LUA_T_NUMBER; nvalue(top) = w;
9611101 incr_top;
9621102 }
9631103 break;
@@ -966,7 +1106,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 2 unmodified lines
9661106 {
9671107 real num;
9681108 get_float(num,pc);
969− tag(top) = LUA_T_NUMBER; nvalue(top) = num;
1109+ ttype(top) = LUA_T_NUMBER; nvalue(top) = num;
9701110 incr_top;
9711111 }
9721112 break;
@@ -975,7 +1115,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 2 unmodified lines
9751115 {
9761116 Word w;
9771117 get_word(w,pc);
978− tag(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
1118+ ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
9791119 incr_top;
9801120 }
9811121 break;
@@ -985,7 +1125,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 3 unmodified lines
9851125 TFunc *f;
9861126 get_code(f,pc);
9871127 luaI_insertfunction(f); /* may take part in GC */
988− top->tag = LUA_T_FUNCTION;
1128+ top->ttype = LUA_T_FUNCTION;
9891129 top->value.tf = f;
9901130 incr_top;
9911131 }
@@ -1013,10 +1153,10 @@ static StkId lua_execute (Byte *pc, StkId base) · 21 unmodified lines
10131153
10141154 case PUSHSELF:
10151155 {
1016− Object receiver = *(top-1);
1156+ TObject receiver = *(top-1);
10171157 Word w;
10181158 get_word(w,pc);
1019− tag(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
1159+ ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
10201160 incr_top;
10211161 pushsubscript();
10221162 *top = receiver;
@@ -1037,47 +1177,32 @@ static StkId lua_execute (Byte *pc, StkId base) · 14 unmodified lines
10371177 {
10381178 Word w;
10391179 get_word(w,pc);
1040− s_object(w) = *(--top);
1180+ setglobal(w);
10411181 }
10421182 break;
10431183
10441184 case STOREINDEXED0:
1045− storesubscript();
1185+ storesubscript(top-3, 1);
10461186 break;
10471187
1048− case STOREINDEXED:
1049− {
1050− int n = *pc++;
1051− if (tag(top-3-n) != LUA_T_ARRAY)
1052− {
1053− lua_checkstack(top+2);
1054− *(top+1) = *(top-1);
1055− *(top) = *(top-2-n);
1056− *(top-1) = *(top-3-n);
1057− top += 2;
1058− callFB(FB_SETTABLE);
1059− }
1060− else
1061− {
1062− Object *h = lua_hashdefine (avalue(top-3-n), top-2-n);
1063− *h = *(top-1);
1064− top--;
1065− }
1188+ case STOREINDEXED: {
1189+ int n = *pc++;
1190+ storesubscript(top-3-n, 2);
1191+ break;
10661192 }
1067− break;
10681193
10691194 case STORELIST0:
10701195 case STORELIST:
10711196 {
10721197 int m, n;
1073− Object *arr;
1198+ TObject *arr;
10741199 if (opcode == STORELIST0) m = 0;
10751200 else m = *(pc++) * FIELDS_PER_FLUSH;
10761201 n = *(pc++);
10771202 arr = top-n-1;
10781203 while (n)
10791204 {
1080− tag(top) = LUA_T_NUMBER; nvalue(top) = n+m;
1205+ ttype(top) = LUA_T_NUMBER; nvalue(top) = n+m;
10811206 *(lua_hashdefine (avalue(arr), top)) = *(top-1);
10821207 top--;
10831208 n--;
@@ -1085,15 +1210,15 @@ static StkId lua_execute (Byte *pc, StkId base) · 1 unmodified line
10851210 }
10861211 break;
10871212
1088− case STORERECORD:
1213+ case STORERECORD: /* opcode obsolete: supersed by STOREMAP */
10891214 {
10901215 int n = *(pc++);
1091− Object *arr = top-n-1;
1216+ TObject *arr = top-n-1;
10921217 while (n)
10931218 {
10941219 Word w;
10951220 get_word(w,pc);
1096− tag(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
1221+ ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
10971222 *(lua_hashdefine (avalue(arr), top)) = *(top-1);
10981223 top--;
10991224 n--;
@@ -1101,13 +1226,25 @@ static StkId lua_execute (Byte *pc, StkId base) · 1 unmodified line
11011226 }
11021227 break;
11031228
1229+ case STOREMAP: {
1230+ int n = *(pc++);
1231+ TObject *arr = top-(2*n)-1;
1232+ while (n--) {
1233+ *(lua_hashdefine (avalue(arr), top-2)) = *(top-1);
1234+ top-=2;
1235+ }
1236+ }
1237+ break;
1238+
11041239 case ADJUST0:
11051240 adjust_top(base);
11061241 break;
11071242
1108− case ADJUST:
1109− adjust_top(base + *(pc++));
1243+ case ADJUST: {
1244+ StkId newtop = base + *(pc++);
1245+ adjust_top(newtop);
11101246 break;
1247+ }
11111248
11121249 case VARARGS:
11131250 adjust_varargs(base + *(pc++));
@@ -1118,7 +1255,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 4 unmodified lines
11181255 Word size;
11191256 get_word(size,pc);
11201257 avalue(top) = lua_createarray(size);
1121− tag(top) = LUA_T_ARRAY;
1258+ ttype(top) = LUA_T_ARRAY;
11221259 incr_top;
11231260 }
11241261 break;
@@ -1127,33 +1264,33 @@ static StkId lua_execute (Byte *pc, StkId base) · 2 unmodified lines
11271264 {
11281265 int res = lua_equalObj(top-2, top-1);
11291266 --top;
1130− tag(top-1) = res ? LUA_T_NUMBER : LUA_T_NIL;
1267+ ttype(top-1) = res ? LUA_T_NUMBER : LUA_T_NIL;
11311268 nvalue(top-1) = 1;
11321269 }
11331270 break;
11341271
11351272 case LTOP:
1136− comparison(LUA_T_NUMBER, LUA_T_NIL, LUA_T_NIL, "lt");
1273+ comparison(LUA_T_NUMBER, LUA_T_NIL, LUA_T_NIL, IM_LT);
11371274 break;
11381275
11391276 case LEOP:
1140− comparison(LUA_T_NUMBER, LUA_T_NUMBER, LUA_T_NIL, "le");
1277+ comparison(LUA_T_NUMBER, LUA_T_NUMBER, LUA_T_NIL, IM_LE);
11411278 break;
11421279
11431280 case GTOP:
1144− comparison(LUA_T_NIL, LUA_T_NIL, LUA_T_NUMBER, "gt");
1281+ comparison(LUA_T_NIL, LUA_T_NIL, LUA_T_NUMBER, IM_GT);
11451282 break;
11461283
11471284 case GEOP:
1148− comparison(LUA_T_NIL, LUA_T_NUMBER, LUA_T_NUMBER, "ge");
1285+ comparison(LUA_T_NIL, LUA_T_NUMBER, LUA_T_NUMBER, IM_GE);
11491286 break;
11501287
11511288 case ADDOP:
11521289 {
1153− Object *l = top-2;
1154− Object *r = top-1;
1290+ TObject *l = top-2;
1291+ TObject *r = top-1;
11551292 if (tonumber(r) || tonumber(l))
1156− call_arith("add");
1293+ call_arith(IM_ADD);
11571294 else
11581295 {
11591296 nvalue(l) += nvalue(r);
@@ -1164,10 +1301,10 @@ static StkId lua_execute (Byte *pc, StkId base) · 4 unmodified lines
11641301
11651302 case SUBOP:
11661303 {
1167− Object *l = top-2;
1168− Object *r = top-1;
1304+ TObject *l = top-2;
1305+ TObject *r = top-1;
11691306 if (tonumber(r) || tonumber(l))
1170− call_arith("sub");
1307+ call_arith(IM_SUB);
11711308 else
11721309 {
11731310 nvalue(l) -= nvalue(r);
@@ -1178,10 +1315,10 @@ static StkId lua_execute (Byte *pc, StkId base) · 4 unmodified lines
11781315
11791316 case MULTOP:
11801317 {
1181− Object *l = top-2;
1182− Object *r = top-1;
1318+ TObject *l = top-2;
1319+ TObject *r = top-1;
11831320 if (tonumber(r) || tonumber(l))
1184− call_arith("mul");
1321+ call_arith(IM_MUL);
11851322 else
11861323 {
11871324 nvalue(l) *= nvalue(r);
@@ -1192,10 +1329,10 @@ static StkId lua_execute (Byte *pc, StkId base) · 4 unmodified lines
11921329
11931330 case DIVOP:
11941331 {
1195− Object *l = top-2;
1196− Object *r = top-1;
1332+ TObject *l = top-2;
1333+ TObject *r = top-1;
11971334 if (tonumber(r) || tonumber(l))
1198− call_arith("div");
1335+ call_arith(IM_DIV);
11991336 else
12001337 {
12011338 nvalue(l) /= nvalue(r);
@@ -1205,36 +1342,34 @@ static StkId lua_execute (Byte *pc, StkId base) · 3 unmodified lines
12051342 break;
12061343
12071344 case POWOP:
1208− call_arith("pow");
1345+ call_arith(IM_POW);
12091346 break;
12101347
1211− case CONCOP:
1212− {
1213− Object *l = top-2;
1214− Object *r = top-1;
1215− if (tostring(r) || tostring(l))
1216− callFB(FB_CONCAT);
1217− else
1218− {
1219− tsvalue(l) = lua_createstring (lua_strconc(svalue(l),svalue(r)));
1220− --top;
1221− }
1348+ case CONCOP: {
1349+ TObject *l = top-2;
1350+ TObject *r = top-1;
1351+ if (tostring(l) || tostring(r))
1352+ call_binTM(IM_CONCAT, "unexpected type for concatenation");
1353+ else {
1354+ tsvalue(l) = lua_createstring(lua_strconc(svalue(l),svalue(r)));
1355+ --top;
1356+ }
12221357 }
12231358 break;
12241359
12251360 case MINUSOP:
12261361 if (tonumber(top-1))
12271362 {
1228− tag(top) = LUA_T_NIL;
1363+ ttype(top) = LUA_T_NIL;
12291364 incr_top;
1230− call_arith("unm");
1365+ call_arith(IM_UNM);
12311366 }
12321367 else
12331368 nvalue(top-1) = - nvalue(top-1);
12341369 break;
12351370
12361371 case NOTOP:
1237− tag(top-1) = (tag(top-1) == LUA_T_NIL) ? LUA_T_NUMBER : LUA_T_NIL;
1372+ ttype(top-1) = (ttype(top-1) == LUA_T_NIL) ? LUA_T_NUMBER : LUA_T_NIL;
12381373 nvalue(top-1) = 1;
12391374 break;
12401375
@@ -1242,15 +1377,15 @@ static StkId lua_execute (Byte *pc, StkId base) · 1 unmodified line
12421377 {
12431378 Word w;
12441379 get_word(w,pc);
1245− if (tag(top-1) != LUA_T_NIL) pc += w;
1380+ if (ttype(top-1) != LUA_T_NIL) pc += w;
12461381 }
12471382 break;
12481383
1249− case ONFJMP:
1384+ case ONFJMP:
12501385 {
12511386 Word w;
12521387 get_word(w,pc);
1253− if (tag(top-1) == LUA_T_NIL) pc += w;
1388+ if (ttype(top-1) == LUA_T_NIL) pc += w;
12541389 }
12551390 break;
12561391
@@ -1275,7 +1410,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 18 unmodified lines
12751410 Word w;
12761411 get_word(w,pc);
12771412 top--;
1278− if (tag(top) == LUA_T_NIL) pc += w;
1413+ if (ttype(top) == LUA_T_NIL) pc += w;
12791414 }
12801415 break;
12811416
@@ -1284,7 +1419,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 2 unmodified lines
12841419 Word w;
12851420 get_word(w,pc);
12861421 top--;
1287− if (tag(top) == LUA_T_NIL) pc -= w;
1422+ if (ttype(top) == LUA_T_NIL) pc -= w;
12881423 }
12891424 break;
12901425
@@ -1309,12 +1444,12 @@ static StkId lua_execute (Byte *pc, StkId base) · 18 unmodified lines
13091444 {
13101445 Word line;
13111446 get_word(line,pc);
1312− if ((stack+base-1)->tag != LUA_T_LINE)
1447+ if ((stack+base-1)->ttype != LUA_T_LINE)
13131448 {
13141449 /* open space for LINE value */
13151450 open_stack((top-stack)-base);
13161451 base++;
1317− (stack+base-1)->tag = LUA_T_LINE;
1452+ (stack+base-1)->ttype = LUA_T_LINE;
13181453 }
13191454 (stack+base-1)->value.i = line;
13201455 if (lua_linehook)
@@ -1328,3 +1463,16 @@ static StkId lua_execute (Byte *pc, StkId base) · 7 unmodified lines
13281463 }
13291464 }
13301465
1466+
1467+#if COMPAT2_5
1468+/*
1469+** API: set a function as a fallback
1470+*/
1471+lua_Object lua_setfallback (char *name, lua_CFunction fallback)
1472+{
1473+ lua_pushstring(name);
1474+ lua_pushcfunction(fallback);
1475+ do_unprotectedrun(luaI_setfallback, 2, 1);
1476+ return put_luaObjectonTop();
1477+}
1478+#endif
src/opcode.h+46−25
@@ -1,6 +1,6 @@
11 /*
22 ** TeCGraf - PUC-Rio
3−** $Id: opcode.h,v 3.24 1996/11/01 12:46:59 roberto Exp $
3+** $Id: opcode.h,v 3.34 1997/06/16 16:50:22 roberto Exp $
44 */
55
66 #ifndef opcode_h
@@ -14,6 +14,28 @@ · 7 unmodified lines
1414
1515 #define FIELDS_PER_FLUSH 40
1616
17+/*
18+* WARNING: if you change the order of this enumeration,
19+* grep "ORDER LUA_T"
20+*/
21+typedef enum
22+{
23+ LUA_T_NIL = -9,
24+ LUA_T_NUMBER = -8,
25+ LUA_T_STRING = -7,
26+ LUA_T_ARRAY = -6, /* array==table */
27+ LUA_T_FUNCTION = -5,
28+ LUA_T_CFUNCTION= -4,
29+ LUA_T_MARK = -3,
30+ LUA_T_CMARK = -2,
31+ LUA_T_LINE = -1,
32+ LUA_T_USERDATA = 0
33+} lua_Type;
34+
35+#define NUM_TYPES 10
36+
37+
38+extern char *luaI_typenames[];
1739
1840 typedef enum {
1941 /* name parm before after side effect
@@ -38,7 +60,7 @@ PUSHLOCAL6,/* - LOC[6] */ · 18 unmodified lines
3860 PUSHLOCAL7,/* - LOC[7] */
3961 PUSHLOCAL8,/* - LOC[8] */
4062 PUSHLOCAL9,/* - LOC[9] */
41−PUSHLOCAL,/* w - LOC[w] */
63+PUSHLOCAL,/* b - LOC[b] */
4264 PUSHGLOBAL,/* w - VAR[w] */
4365 PUSHINDEXED,/* i t t[i] */
4466 PUSHSELF,/* w t t t[STR[w]] */
@@ -52,14 +74,14 @@ STORELOCAL6,/* x - LOC[6]=x */ · 7 unmodified lines
5274 STORELOCAL7,/* x - LOC[7]=x */
5375 STORELOCAL8,/* x - LOC[8]=x */
5476 STORELOCAL9,/* x - LOC[9]=x */
55−STORELOCAL,/* w x - LOC[w]=x */
77+STORELOCAL,/* b x - LOC[b]=x */
5678 STOREGLOBAL,/* w x - VAR[w]=x */
5779 STOREINDEXED0,/* v i t - t[i]=v */
5880 STOREINDEXED,/* b v a_b...a_1 i t a_b...a_1 i t t[i]=v */
59−STORELIST0,/* w v_w...v_1 t - t[i]=v_i */
60−STORELIST,/* w n v_w...v_1 t - t[i+n*FPF]=v_i */
61−STORERECORD,/* n
62− w_n...w_1 v_n...v_1 t - t[STR[w_i]]=v_i */
81+STORELIST0,/* b v_b...v_1 t - t[i]=v_i */
82+STORELIST,/* b c v_b...v_1 t - t[i+c*FPF]=v_i */
83+STORERECORD,/* b
84+ w_b...w_1 v_b...v_1 t - t[STR[w_i]]=v_i */
6385 ADJUST0,/* - - TOP=BASE */
6486 ADJUST,/* b - - TOP=BASE+b */
6587 CREATEARRAY,/* w - newarray(size = w) */
@@ -76,19 +98,19 @@ POWOP,/* y x x^y */ · 10 unmodified lines
7698 CONCOP,/* y x x..y */
7799 MINUSOP,/* x -x */
78100 NOTOP,/* x (x==nil)? 1 : nil */
79−ONTJMP,/* w x - (x!=nil)? PC+=w */
80−ONFJMP,/* w x - (x==nil)? PC+=w */
101+ONTJMP,/* w x - (x!=nil)? PC+=w */
102+ONFJMP,/* w x - (x==nil)? PC+=w */
81103 JMP,/* w - - PC+=w */
82−UPJMP,/* w - - PC-=w */
83−IFFJMP,/* w x - (x==nil)? PC+=w */
104+UPJMP,/* w - - PC-=w */
105+IFFJMP,/* w x - (x==nil)? PC+=w */
84106 IFFUPJMP,/* w x - (x==nil)? PC-=w */
85107 POP,/* x - */
86−CALLFUNC,/* n m v_n...v_1 f r_m...r_1 f(v1,...,v_n) */
108+CALLFUNC,/* b c v_b...v_1 f r_c...r_1 f(v1,...,v_b) */
87109 RETCODE0,
88110 RETCODE,/* b - - */
89111 SETLINE,/* w - - LINE=w */
90−VARARGS/* b v_n...v_1 {v_1...v_n;n=n} */
91−
112+VARARGS,/* b v_b...v_1 {v_1...v_b;n=b} */
113+STOREMAP/* b v_b k_b ...v_1 k_1 t - t[k_i]=v_i */
92114 } OpCode;
93115
94116
@@ -102,29 +124,27 @@ typedef union · 7 unmodified lines
102124 TaggedString *ts;
103125 TFunc *tf;
104126 struct Hash *a;
105− void *u;
106127 int i;
107128 } Value;
108129
109−typedef struct Object
130+typedef struct TObject
110131 {
111− lua_Type tag;
132+ lua_Type ttype;
112133 Value value;
113−} Object;
134+} TObject;
114135
115136
116137 /* Macros to access structure members */
117−#define tag(o) ((o)->tag)
138+#define ttype(o) ((o)->ttype)
118139 #define nvalue(o) ((o)->value.n)
119140 #define svalue(o) ((o)->value.ts->str)
120141 #define tsvalue(o) ((o)->value.ts)
121142 #define avalue(o) ((o)->value.a)
122143 #define fvalue(o) ((o)->value.f)
123−#define uvalue(o) ((o)->value.u)
124144
125145 /* Macros to access symbol table */
126146 #define s_object(i) (lua_table[i].object)
127−#define s_tag(i) (tag(&s_object(i)))
147+#define s_ttype(i) (ttype(&s_object(i)))
128148 #define s_nvalue(i) (nvalue(&s_object(i)))
129149 #define s_svalue(i) (svalue(&s_object(i)))
130150 #define s_tsvalue(i) (tsvalue(&s_object(i)))
@@ -141,10 +161,11 @@ typedef struct Object · 10 unmodified lines
141161 /* Exported functions */
142162 void lua_parse (TFunc *tf); /* from "lua.stx" module */
143163 void luaI_codedebugline (int line); /* from "lua.stx" module */
144−void lua_travstack (int (*fn)(Object *));
145−Object *luaI_Address (lua_Object o);
146−void luaI_pushobject (Object *o);
147−void luaI_gcFB (Object *o);
164+void lua_travstack (int (*fn)(TObject *));
165+TObject *luaI_Address (lua_Object o);
166+void luaI_pushobject (TObject *o);
167+void luaI_gcIM (TObject *o);
148168 int luaI_dorun (TFunc *tf);
169+int lua_domain (void);
149170
150171 #endif
src/parser.c+344−316
@@ -10,14 +10,14 @@ static char luaY_sccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; · 9 unmodified lines
1010 #define YYPREFIX "luaY_"
1111 #line 2 "lua.stx"
1212
13−char *rcs_luastx = "$Id: parser.c,v 1.1 1996/11/21 16:11:40 lhf Exp $";
13+char *rcs_luastx = "$Id: parser.c,v 1.1 1997/06/30 18:59:03 lhf Exp $";
1414
1515 #include <stdio.h>
1616 #include <stdlib.h>
1717 #include <string.h>
1818
1919 #include "luadebug.h"
20−#include "mem.h"
20+#include "luamem.h"
2121 #include "lex.h"
2222 #include "opcode.h"
2323 #include "hash.h"
@@ -60,8 +60,6 @@ static TaggedString *localvar[MAXLOCALS]; /* store local variable names */ · 36 unmodified lines
6060 static int nlocalvar=0; /* number of local variables */
6161
6262 #define MAXFIELDS FIELDS_PER_FLUSH*2
63−static Word fields[MAXFIELDS]; /* fieldnames to be flushed */
64−static int nfields=0;
6563
6664 int lua_debug = 0;
6765
@@ -113,22 +111,11 @@ static void code_word_at (Byte *p, int n) · 45 unmodified lines
113111 memcpy(p, &w, sizeof(Word));
114112 }
115113
116−static void push_field (Word name)
117−{
118− if (nfields < MAXFIELDS)
119− fields[nfields++] = name;
120− else
121− luaY_error ("too many fields in nested constructors");
122−}
123−
124114 static void flush_record (int n)
125115 {
126− int i;
127116 if (n == 0) return;
128− code_byte(STORERECORD);
117+ code_byte(STOREMAP);
129118 code_byte(n);
130− for (i=0; i<n; i++)
131− code_word(fields[--nfields]);
132119 }
133120
134121 static void flush_list (int m, int n)
@@ -171,11 +158,22 @@ static void add_varbuffer (Long var) · 36 unmodified lines
171158 luaY_error ("variable buffer overflow");
172159 }
173160
161+static void code_string (Word w)
162+{
163+ code_byte(PUSHSTRING);
164+ code_word(w);
165+}
166+
167+static void code_constant (TaggedString *s)
168+{
169+ code_string(luaI_findconstant(s));
170+}
171+
174172 static void code_number (float f)
175173 {
176− Word i = (Word)f;
177− if (f == (float)i) /* f has an (short) integer value */
178− {
174+ Word i;
175+ if (f >= 0 && f <= (float)MAX_WORD && (float)(i=(Word)f) == f) {
176+ /* f has an (short) integer value */
179177 if (i <= 2) code_byte(PUSH0 + i);
180178 else if (i <= 255)
181179 {
@@ -418,7 +416,7 @@ void lua_parse (TFunc *tf) · 236 unmodified lines
418416 }
419417
420418
421−#line 414 "lua.stx"
419+#line 412 "lua.stx"
422420 typedef union
423421 {
424422 int vInt;
@@ -429,7 +427,7 @@ typedef union · 4 unmodified lines
429427 TFunc *pFunc;
430428 TaggedString *pTStr;
431429 } YYSTYPE;
432−#line 433 "y.tab.c"
430+#line 431 "y.tab.c"
433431 #define WRONGTOKEN 257
434432 #define NIL 258
435433 #define IF 259
@@ -467,8 +465,9 @@ short luaY_lhs[] = { -1, · 31 unmodified lines
467465 38, 5, 39, 5, 40, 37, 4, 8, 8, 7,
468466 7, 2, 2, 3, 41, 3, 17, 17, 18, 18,
469467 19, 19, 42, 9, 9, 14, 14, 43, 43, 12,
470− 12, 13, 13, 44, 15, 15, 16, 16, 6, 6,
471− 20, 20, 20, 21, 29, 10, 10, 11, 11,
468+ 12, 13, 13, 44, 45, 45, 15, 15, 16, 16,
469+ 6, 6, 20, 20, 20, 21, 29, 10, 10, 11,
470+ 11,
472471 };
473472 short luaY_len[] = { 2,
474473 2, 0, 3, 2, 3, 1, 3, 5, 0, 3,
@@ -479,113 +478,114 @@ short luaY_len[] = { 2, · 4 unmodified lines
479478 0, 5, 0, 5, 0, 4, 2, 1, 3, 3,
480479 1, 0, 1, 1, 0, 4, 0, 1, 1, 3,
481480 1, 1, 0, 3, 2, 0, 2, 0, 1, 0,
482− 2, 1, 3, 3, 0, 2, 1, 3, 1, 3,
483− 1, 4, 3, 1, 1, 1, 3, 0, 2,
481+ 2, 1, 3, 3, 3, 1, 0, 2, 1, 3,
482+ 1, 3, 1, 4, 3, 1, 1, 1, 3, 0,
483+ 2,
484484 };
485485 short luaY_defred[] = { 2,
486− 0, 0, 0, 14, 16, 0, 0, 0, 94, 19,
487− 0, 0, 0, 91, 1, 0, 4, 0, 48, 46,
488− 47, 0, 0, 0, 49, 29, 95, 0, 0, 44,
489− 0, 0, 24, 0, 0, 0, 0, 96, 0, 0,
486+ 0, 0, 0, 14, 16, 0, 0, 0, 96, 19,
487+ 0, 0, 0, 93, 1, 0, 4, 0, 48, 46,
488+ 47, 0, 0, 0, 49, 29, 97, 0, 0, 44,
489+ 0, 0, 24, 0, 0, 0, 0, 98, 0, 0,
490490 0, 0, 0, 0, 0, 57, 61, 12, 3, 0,
491491 0, 0, 0, 0, 0, 28, 28, 28, 0, 0,
492492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
493493 0, 0, 0, 9, 27, 65, 0, 0, 20, 0,
494− 5, 0, 0, 0, 0, 0, 59, 0, 93, 30,
494+ 5, 0, 0, 0, 0, 0, 59, 0, 95, 30,
495495 24, 51, 53, 0, 0, 0, 0, 0, 0, 0,
496− 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
497− 0, 82, 28, 0, 0, 0, 0, 97, 72, 71,
498− 0, 0, 69, 7, 60, 92, 28, 0, 0, 0,
499− 56, 0, 75, 0, 0, 86, 24, 0, 25, 0,
500− 0, 24, 0, 0, 0, 0, 0, 0, 83, 0,
501− 74, 0, 28, 17, 10, 0, 70, 24, 0, 0,
502− 77, 0, 0, 8, 22, 0, 13, 81, 15, 28,
503− 24, 28, 0, 23,
496+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
497+ 0, 0, 82, 0, 28, 0, 0, 0, 0, 99,
498+ 72, 71, 0, 0, 69, 7, 60, 94, 28, 0,
499+ 0, 0, 56, 0, 75, 0, 0, 88, 0, 24,
500+ 0, 25, 0, 0, 24, 0, 0, 0, 0, 85,
501+ 86, 83, 0, 74, 0, 0, 28, 17, 10, 0,
502+ 70, 24, 0, 0, 77, 0, 0, 8, 22, 0,
503+ 13, 81, 15, 28, 24, 28, 0, 23,
504504 };
505505 short luaY_dgoto[] = { 1,
506− 91, 34, 35, 25, 26, 11, 46, 12, 107, 39,
507− 79, 161, 108, 151, 109, 110, 121, 122, 123, 27,
506+ 91, 34, 35, 25, 26, 11, 46, 12, 108, 39,
507+ 79, 165, 109, 154, 110, 111, 123, 124, 125, 27,
508508 14, 41, 81, 2, 15, 16, 49, 17, 28, 73,
509− 115, 37, 160, 32, 33, 74, 30, 128, 129, 31,
510− 116, 134, 133, 112,
509+ 117, 37, 164, 32, 33, 74, 30, 130, 131, 31,
510+ 118, 136, 135, 113, 114,
511511 };
512512 short luaY_sindex[] = { 0,
513− 0, 332, -38, 0, 0, -38, -239, -223, 0, 0,
514− -23, 17, 0, 0, 0, 3, 0, 137, 0, 0,
515− 0, -38, -38, -38, 0, 0, 0, 137, 547, 0,
516− -25, -38, 0, 3, 45, 0, 212, 0, -22, 0,
517− 52, 140, -38, -223, -38, 0, 0, 0, 0, -166,
518− -38, -154, 40, 40, 102, 0, 0, 0, -38, -38,
519− -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
520− -34, 481, -130, 0, 0, 0, -38, -129, 0, -194,
521− 0, -123, 45, 0, -17, 103, 0, 753, 0, 0,
522− 0, 0, 0, -30, -30, -30, -30, -30, -30, 95,
523− 11, 11, 40, 40, 40, 97, 41, 123, 0, 124,
524− 212, 0, 0, -38, -59, -38, 45, 0, 0, 0,
525− 128, 131, 0, 0, 0, 0, 0, -38, -38, -38,
526− 0, -97, 0, 120, -38, 0, 0, 212, 0, 3,
527− 0, 0, -194, -183, 118, 118, 212, 97, 0, -97,
528− 0, 212, 0, 0, 0, -85, 0, 0, -38, -82,
529− 0, 123, -80, 0, 0, 1105, 0, 0, 0, 0,
530− 0, 0, -183, 0,
513+ 0, 288, -34, 0, 0, -34, -238, -223, 0, 0,
514+ -6, 22, 0, 0, 0, 14, 0, 150, 0, 0,
515+ 0, -34, -34, -34, 0, 0, 0, 150, 547, 0,
516+ -46, -34, 0, 14, 34, 0, 212, 0, -5, 0,
517+ 39, 156, -34, -223, -34, 0, 0, 0, 0, -194,
518+ -34, -193, -4, -4, 48, 0, 0, 0, -34, -34,
519+ -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
520+ -38, 481, -173, 0, 0, 0, -34, -146, 0, -234,
521+ 0, -138, 34, 0, -15, 96, 0, 753, 0, 0,
522+ 0, 0, 0, -30, -30, -30, -30, -30, -30, -20,
523+ -12, -12, -4, -4, -4, 0, -34, 16, 95, 0,
524+ 98, 212, 0, 82, 0, -34, 328, -34, 34, 0,
525+ 0, 0, 103, 101, 0, 0, 0, 0, 0, -34,
526+ -34, 1181, 0, -91, 0, 92, -34, 0, -34, 0,
527+ 212, 0, 14, 0, 0, -234, -233, 118, 118, 0,
528+ 0, 0, -91, 0, 212, 212, 0, 0, 0, -105,
529+ 0, 0, -34, -103, 0, 95, -101, 0, 0, 1105,
530+ 0, 0, 0, 0, 0, 0, -233, 0,
531531 };
532532 short luaY_rindex[] = { 0,
533− 0, 191, 69, 0, 0, 173, 0, 0, 0, 0,
534− 0, 69, 150, 0, 0, 146, 0, -36, 0, 0,
535− 0, 69, 69, 69, 0, 0, 0, 1, 0, 0,
536− 0, 69, 0, 47, 461, 436, 0, 0, 197, 130,
537− 0, 0, 69, 0, -33, 0, 0, 0, 0, 0,
538− 69, 0, 24, 59, 1181, 0, 0, 0, 69, 69,
539− 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
540− -50, 0, 0, 0, 0, 0, 69, 0, 0, 152,
541− 0, 0, 311, -21, 0, 0, 0, 0, 0, 0,
533+ 0, 169, 52, 0, 0, 173, 0, 0, 0, 0,
534+ 0, 52, 508, 0, 0, 146, 0, -36, 0, 0,
535+ 0, 52, 52, 52, 0, 0, 0, 1, 0, 0,
536+ 0, 52, 0, 47, 461, 436, 0, 0, 197, 76,
537+ 0, 0, 52, 0, -32, 0, 0, 0, 0, 0,
538+ 52, 0, 24, 59, 1195, 0, 0, 0, 52, 52,
539+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
540+ -27, 0, 0, 0, 0, 0, 52, 0, 0, 129,
541+ 0, 0, 311, 142, 0, 0, 0, 0, 0, 0,
542542 0, 0, 0, 746, 776, 799, 821, 844, 866, 505,
543− 383, 410, 88, 112, 359, 1174, 0, 74, 0, -40,
544− -26, 0, 0, 69, -230, 69, 921, 0, 0, 0,
545− 0, 160, 0, 0, 0, 0, 0, 69, 69, 69,
546− 0, 77, 0, 78, -9, 0, 0, 939, 0, 289,
547− 474, 0, 0, -60, 894, 1137, -16, 0, 0, 89,
548− 0, -10, 0, 0, 0, 0, 0, 0, 69, 0,
549− 0, 74, 0, 0, 0, 0, 0, 0, 0, 0,
550− 0, 0, -60, 0,
543+ 383, 410, 88, 112, 359, 1174, 52, 0, 51, 0,
544+ -40, -10, 0, 0, 0, 52, -153, 52, 921, 0,
545+ 0, 0, 0, 144, 0, 0, 0, 0, 0, 52,
546+ 52, 0, 0, 62, 0, 64, -26, 0, 52, 0,
547+ 939, 0, 682, 474, 0, 0, -77, 894, 1137, 0,
548+ 0, 0, 66, 0, 13, -18, 0, 0, 0, 0,
549+ 0, 0, 52, 0, 0, 51, 0, 0, 0, 0,
550+ 0, 0, 0, 0, 0, 0, -77, 0,
551551 };
552552 short luaY_gindex[] = { 0,
553− -31, 171, 85, -2, 48, 0, 0, 0, 0, 0,
554− 0, 0, 67, 0, 0, 0, 0, 0, 75, 8,
555− 0, 0, 0, 0, 104, 107, -29, 0, 12, -61,
556− 0, 1260, 50, 0, 0, 0, 213, 0, 0, 0,
557− 0, 0, -107, 94,
553+ 53, 147, -23, 3, 134, 0, 0, 0, 0, 0,
554+ 0, 0, 40, 0, 0, 0, 0, 0, 49, 6,
555+ 0, 0, 0, 0, 81, 83, -16, 0, 8, -70,
556+ 0, 1445, 27, 0, 0, 0, 187, 0, 0, 0,
557+ 0, 0, -108, 67, 0,
558558 };
559−#define YYTABLESIZE 1462
560−short luaY_table[] = { 10,
561− 45, 24, 136, 58, 75, 24, 22, 62, 85, 13,
562− 22, 68, 66, 18, 67, 40, 69, 87, 78, 42,
563− 44, 78, 90, 43, 95, 92, 93, 84, 52, 127,
564− 26, 26, 87, 88, 38, 26, 26, 43, 77, 90,
565− 58, 45, 45, 45, 45, 45, 11, 45, 88, 79,
566− 9, 84, 68, 36, 168, 85, 45, 69, 50, 45,
567− 45, 48, 45, 70, 43, 43, 43, 43, 43, 95,
568− 43, 55, 55, 51, 85, 153, 119, 158, 159, 120,
569− 156, 137, 43, 43, 78, 43, 58, 39, 76, 55,
570− 36, 80, 36, 45, 45, 144, 165, 71, 87, 50,
571− 50, 50, 50, 50, 70, 50, 154, 87, 84, 172,
572− 155, 40, 10, 55, 88, 79, 43, 50, 50, 89,
573− 50, 163, 13, 58, 36, 45, 18, 83, 39, 39,
574− 39, 39, 39, 70, 39, 114, 68, 66, 171, 67,
575− 173, 69, 90, 125, 118, 11, 39, 39, 43, 39,
576− 124, 50, 40, 40, 40, 40, 40, 130, 40, 68,
577− 66, 117, 67, 141, 69, 131, 132, 135, 142, 6,
578− 40, 40, 62, 40, 143, 95, 148, 62, 150, 61,
579− 39, 164, 52, 50, 167, 52, 169, 95, 70, 95,
580− 26, 55, 67, 89, 50, 95, 98, 82, 78, 3,
581− 68, 79, 76, 4, 40, 5, 21, 95, 6, 7,
582− 89, 70, 39, 80, 9, 86, 162, 157, 139, 19,
583− 95, 140, 174, 19, 47, 149, 0, 51, 0, 0,
584− 51, 62, 0, 20, 21, 9, 40, 20, 21, 106,
585− 95, 0, 0, 0, 23, 0, 0, 0, 23, 0,
586− 65, 0, 0, 68, 66, 98, 67, 0, 69, 45,
559+#define YYTABLESIZE 1608
560+short luaY_table[] = { 107,
561+ 45, 24, 138, 58, 10, 24, 22, 13, 62, 18,
562+ 22, 68, 66, 40, 67, 42, 69, 75, 78, 83,
563+ 129, 68, 66, 43, 67, 84, 69, 162, 163, 68,
564+ 52, 87, 79, 89, 69, 38, 121, 44, 78, 122,
565+ 58, 45, 45, 45, 45, 45, 11, 45, 89, 84,
566+ 9, 85, 107, 119, 43, 77, 90, 172, 50, 45,
567+ 45, 45, 45, 70, 43, 43, 43, 43, 43, 157,
568+ 43, 90, 48, 70, 160, 51, 71, 76, 80, 87,
569+ 89, 70, 43, 43, 78, 43, 58, 39, 90, 70,
570+ 55, 169, 116, 45, 45, 55, 55, 87, 79, 50,
571+ 50, 50, 50, 50, 176, 50, 84, 26, 26, 92,
572+ 93, 40, 26, 26, 89, 6, 43, 50, 50, 10,
573+ 50, 97, 13, 58, 18, 45, 159, 120, 39, 39,
574+ 39, 39, 39, 97, 39, 126, 127, 90, 134, 36,
575+ 133, 137, 139, 145, 146, 11, 39, 39, 43, 39,
576+ 153, 50, 40, 40, 40, 40, 40, 55, 40, 68,
577+ 66, 168, 67, 171, 69, 173, 97, 140, 26, 67,
578+ 40, 40, 62, 40, 55, 78, 36, 62, 36, 61,
579+ 39, 147, 151, 50, 68, 92, 79, 97, 76, 21,
580+ 80, 86, 166, 158, 161, 52, 100, 142, 47, 143,
581+ 152, 52, 92, 178, 40, 0, 0, 50, 0, 167,
582+ 36, 70, 39, 82, 0, 0, 0, 0, 0, 19,
583+ 0, 0, 0, 19, 0, 0, 175, 0, 177, 0,
584+ 0, 62, 97, 20, 21, 106, 40, 20, 21, 9,
585+ 51, 0, 0, 0, 23, 0, 51, 0, 23, 0,
586+ 65, 144, 0, 68, 66, 100, 67, 0, 69, 45,
587587 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
588− 45, 62, 95, 61, 45, 45, 45, 45, 45, 45,
588+ 45, 62, 0, 61, 45, 45, 45, 45, 45, 45,
589589 45, 45, 43, 43, 43, 43, 43, 43, 43, 43,
590590 43, 43, 43, 43, 0, 55, 0, 43, 43, 43,
591591 43, 43, 43, 43, 43, 70, 0, 11, 11, 0,
@@ -603,25 +603,25 @@ short luaY_table[] = { 10, · 11 unmodified lines
603603 41, 0, 0, 37, 0, 37, 37, 37, 0, 0,
604604 0, 0, 0, 62, 62, 64, 0, 0, 62, 62,
605605 0, 37, 37, 0, 37, 0, 0, 0, 0, 0,
606− 38, 41, 38, 38, 38, 98, 0, 98, 98, 98,
607− 63, 98, 98, 98, 98, 98, 98, 0, 38, 38,
608− 98, 38, 0, 66, 0, 37, 64, 29, 29, 64,
606+ 38, 41, 38, 38, 38, 100, 0, 100, 100, 100,
607+ 63, 100, 100, 100, 100, 100, 100, 0, 38, 38,
608+ 100, 38, 0, 66, 0, 37, 64, 29, 29, 64,
609609 29, 0, 29, 41, 0, 0, 57, 58, 59, 60,
610610 63, 64, 65, 0, 64, 29, 0, 29, 0, 0,
611611 0, 63, 38, 0, 42, 0, 0, 37, 0, 0,
612612 0, 0, 0, 0, 66, 29, 29, 66, 29, 63,
613613 29, 0, 68, 66, 0, 67, 0, 69, 0, 29,
614614 0, 0, 66, 29, 38, 29, 0, 0, 0, 0,
615− 62, 0, 61, 0, 0, 42, 0, 11, 42, 11,
616− 11, 11, 0, 11, 11, 11, 11, 11, 0, 0,
617− 0, 0, 11, 42, 42, 0, 42, 29, 0, 18,
615+ 62, 0, 61, 0, 0, 42, 3, 97, 42, 0,
616+ 4, 91, 5, 97, 0, 6, 7, 8, 0, 0,
617+ 0, 9, 0, 42, 42, 97, 42, 29, 91, 18,
618618 0, 18, 18, 18, 70, 18, 18, 18, 18, 18,
619− 18, 0, 0, 0, 18, 0, 0, 0, 68, 66,
620− 3, 67, 0, 69, 4, 0, 5, 42, 0, 6,
621− 7, 8, 0, 0, 0, 9, 62, 0, 61, 0,
619+ 18, 0, 0, 0, 18, 0, 3, 0, 68, 66,
620+ 4, 67, 5, 69, 0, 6, 7, 42, 97, 0,
621+ 0, 9, 0, 0, 0, 0, 62, 0, 61, 0,
622622 0, 0, 0, 0, 0, 0, 0, 41, 41, 41,
623623 41, 41, 41, 41, 41, 41, 41, 41, 41, 42,
624− 0, 0, 41, 41, 41, 41, 41, 41, 41, 41,
624+ 97, 0, 41, 41, 41, 41, 41, 41, 41, 41,
625625 70, 37, 37, 37, 37, 37, 37, 37, 37, 37,
626626 37, 37, 37, 0, 0, 0, 37, 37, 37, 37,
627627 37, 37, 37, 37, 0, 0, 0, 0, 38, 38,
@@ -632,7 +632,7 @@ short luaY_table[] = { 10, · 4 unmodified lines
632632 29, 29, 29, 29, 29, 29, 29, 0, 0, 0,
633633 0, 63, 63, 0, 0, 0, 63, 63, 0, 0,
634634 0, 0, 66, 0, 66, 66, 66, 0, 66, 66,
635− 66, 66, 66, 66, 113, 31, 0, 66, 29, 29,
635+ 66, 66, 66, 66, 115, 31, 0, 66, 29, 29,
636636 29, 29, 29, 29, 29, 57, 58, 59, 60, 63,
637637 64, 65, 0, 42, 42, 42, 42, 42, 42, 42,
638638 42, 42, 42, 42, 42, 34, 0, 0, 42, 42,
@@ -642,7 +642,7 @@ short luaY_table[] = { 10, · 3 unmodified lines
642642 0, 0, 62, 0, 61, 0, 34, 0, 0, 34,
643643 32, 57, 58, 59, 60, 63, 64, 65, 0, 0,
644644 0, 0, 0, 0, 34, 34, 0, 34, 31, 33,
645− 0, 0, 33, 35, 0, 126, 70, 0, 0, 0,
645+ 0, 0, 33, 35, 0, 128, 70, 0, 0, 0,
646646 0, 0, 0, 0, 0, 0, 0, 33, 33, 0,
647647 33, 32, 0, 0, 32, 36, 0, 0, 34, 0,
648648 31, 0, 0, 0, 0, 0, 0, 0, 0, 32,
@@ -650,12 +650,12 @@ short luaY_table[] = { 10, · 1 unmodified line
650650 0, 33, 0, 52, 0, 0, 0, 0, 0, 0,
651651 34, 0, 35, 35, 0, 35, 36, 0, 0, 36,
652652 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
653− 99, 0, 0, 33, 36, 36, 0, 36, 0, 0,
653+ 101, 0, 0, 33, 36, 36, 0, 36, 0, 0,
654654 0, 0, 0, 0, 52, 0, 35, 52, 28, 0,
655− 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
656− 0, 0, 52, 0, 0, 0, 0, 0, 36, 0,
655+ 11, 0, 11, 11, 11, 32, 11, 11, 11, 11,
656+ 11, 0, 52, 0, 0, 11, 0, 0, 36, 0,
657657 0, 0, 0, 0, 0, 0, 0, 0, 35, 0,
658− 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,
658+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 101,
659659 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
660660 36, 0, 0, 0, 0, 0, 0, 28, 0, 0,
661661 0, 0, 0, 0, 31, 31, 31, 31, 31, 31,
@@ -675,66 +675,80 @@ short luaY_table[] = { 10, · 13 unmodified lines
675675 36, 36, 36, 36, 36, 36, 68, 66, 0, 67,
676676 0, 69, 52, 52, 52, 52, 52, 52, 52, 52,
677677 52, 52, 52, 52, 62, 0, 61, 52, 52, 52,
678− 0, 0, 0, 0, 0, 0, 0, 54, 0, 99,
679− 54, 99, 99, 99, 0, 99, 99, 99, 99, 99,
680− 99, 0, 0, 0, 99, 54, 0, 28, 70, 28,
678+ 0, 0, 0, 0, 0, 0, 0, 54, 0, 101,
679+ 54, 101, 101, 101, 0, 101, 101, 101, 101, 101,
680+ 101, 0, 0, 0, 101, 54, 0, 28, 70, 28,
681681 28, 28, 0, 28, 28, 28, 28, 28, 28, 0,
682− 0, 0, 28, 94, 0, 94, 94, 94, 94, 94,
683− 94, 0, 29, 29, 0, 29, 0, 29, 0, 54,
684− 0, 94, 94, 94, 0, 94, 0, 0, 0, 0,
685− 29, 0, 29, 0, 0, 0, 0, 0, 0, 0,
682+ 0, 0, 28, 96, 0, 96, 96, 96, 96, 96,
683+ 96, 0, 68, 66, 0, 67, 0, 69, 0, 54,
684+ 0, 96, 96, 96, 86, 96, 29, 29, 0, 29,
685+ 62, 29, 61, 0, 0, 0, 0, 0, 0, 0,
686+ 0, 0, 0, 0, 29, 0, 29, 0, 0, 0,
687+ 0, 54, 0, 0, 96, 0, 0, 96, 0, 0,
688+ 0, 0, 0, 150, 70, 0, 0, 0, 0, 0,
689+ 0, 0, 0, 0, 0, 0, 0, 0, 29, 0,
690+ 0, 0, 0, 0, 0, 0, 96, 0, 96, 0,
691+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
686692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
687− 0, 54, 29, 0, 94, 0, 0, 94, 0, 0,
688− 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
689− 0, 53, 54, 0, 0, 0, 0, 0, 0, 0,
690− 0, 72, 0, 0, 0, 0, 94, 0, 94, 0,
691693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
692− 88, 0, 0, 0, 0, 0, 0, 0, 94, 95,
693− 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
694− 111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
695694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
696695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
697− 0, 0, 0, 0, 170, 0, 0, 0, 0, 0,
698− 0, 0, 0, 138, 0, 0, 0, 0, 0, 57,
699− 58, 59, 60, 63, 64, 65, 0, 145, 146, 147,
700− 0, 0, 0, 0, 152, 54, 54, 54, 54, 54,
696+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
697+ 0, 0, 0, 0, 174, 0, 0, 0, 0, 0,
698+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 57,
699+ 58, 59, 60, 63, 64, 65, 0, 0, 0, 0,
700+ 0, 0, 0, 0, 0, 54, 54, 54, 54, 54,
701701 54, 54, 54, 54, 54, 54, 54, 0, 0, 0,
702− 54, 54, 54, 0, 0, 0, 0, 0, 166, 0,
702+ 54, 54, 54, 0, 0, 0, 0, 0, 0, 0,
703+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
704+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
705+ 0, 0, 0, 0, 0, 0, 0, 29, 96, 96,
706+ 96, 96, 96, 96, 96, 57, 58, 59, 60, 63,
707+ 64, 65, 0, 0, 0, 0, 53, 54, 0, 29,
708+ 29, 29, 29, 29, 29, 29, 72, 0, 0, 0,
703709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
710+ 0, 0, 0, 0, 0, 88, 0, 0, 0, 0,
711+ 0, 0, 0, 94, 95, 96, 97, 98, 99, 100,
712+ 101, 102, 103, 104, 105, 112, 0, 0, 0, 0,
704713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
705− 0, 0, 0, 0, 0, 0, 0, 0, 94, 94,
706− 94, 94, 94, 94, 94, 29, 29, 29, 29, 29,
707− 29, 29,
714+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
715+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
716+ 0, 132, 0, 0, 0, 0, 0, 0, 0, 0,
717+ 141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
718+ 0, 0, 0, 0, 148, 149, 0, 0, 0, 0,
719+ 0, 155, 0, 156, 0, 0, 0, 0, 0, 0,
720+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721+ 0, 0, 0, 0, 0, 0, 0, 170,
708722 };
709−short luaY_check[] = { 2,
710− 0, 40, 110, 40, 34, 40, 45, 41, 59, 2,
711− 45, 42, 43, 2, 45, 8, 47, 44, 59, 8,
712− 44, 44, 44, 0, 46, 57, 58, 44, 46, 91,
713− 261, 262, 59, 44, 274, 266, 267, 61, 61, 61,
714− 40, 41, 42, 43, 44, 45, 0, 47, 59, 59,
715− 274, 44, 42, 6, 162, 44, 40, 47, 0, 59,
716− 60, 59, 62, 94, 41, 42, 43, 44, 45, 91,
717− 47, 24, 123, 91, 125, 137, 271, 261, 262, 274,
718− 142, 113, 59, 60, 125, 62, 123, 0, 44, 123,
719− 43, 40, 45, 93, 94, 127, 158, 123, 125, 41,
720− 42, 43, 44, 45, 94, 47, 138, 274, 125, 171,
721− 140, 0, 115, 123, 125, 125, 93, 59, 60, 274,
722− 62, 153, 115, 123, 77, 125, 115, 43, 41, 42,
723− 43, 44, 45, 94, 47, 266, 42, 43, 170, 45,
724− 172, 47, 41, 41, 274, 0, 59, 60, 125, 62,
725− 274, 93, 41, 42, 43, 44, 45, 61, 47, 42,
726− 43, 77, 45, 116, 47, 125, 44, 44, 41, 40,
727− 59, 60, 0, 62, 44, 46, 274, 60, 59, 62,
728− 93, 267, 46, 125, 267, 46, 267, 58, 94, 40,
729− 0, 123, 41, 44, 58, 46, 0, 58, 125, 259,
730− 41, 125, 125, 263, 93, 265, 267, 58, 268, 269,
731− 61, 94, 125, 125, 274, 45, 150, 143, 115, 258,
732− 91, 115, 173, 258, 12, 132, -1, 91, -1, -1,
733− 91, 59, -1, 272, 273, 274, 125, 272, 273, 274,
734− 91, -1, -1, -1, 283, -1, -1, -1, 283, -1,
735− 281, -1, -1, 42, 43, 59, 45, -1, 47, 259,
723+short luaY_check[] = { 91,
724+ 0, 40, 111, 40, 2, 40, 45, 2, 41, 2,
725+ 45, 42, 43, 8, 45, 8, 47, 34, 59, 43,
726+ 91, 42, 43, 0, 45, 44, 47, 261, 262, 42,
727+ 46, 59, 59, 44, 47, 274, 271, 44, 44, 274,
728+ 40, 41, 42, 43, 44, 45, 0, 47, 59, 44,
729+ 274, 44, 91, 77, 61, 61, 44, 166, 0, 59,
730+ 60, 40, 62, 94, 41, 42, 43, 44, 45, 140,
731+ 47, 59, 59, 94, 145, 91, 123, 44, 40, 274,
732+ 274, 94, 59, 60, 125, 62, 123, 0, 41, 94,
733+ 123, 162, 266, 93, 94, 123, 123, 125, 125, 41,
734+ 42, 43, 44, 45, 175, 47, 125, 261, 262, 57,
735+ 58, 0, 266, 267, 125, 40, 93, 59, 60, 117,
736+ 62, 46, 117, 123, 117, 125, 143, 274, 41, 42,
737+ 43, 44, 45, 58, 47, 274, 41, 125, 44, 6,
738+ 125, 44, 61, 41, 44, 0, 59, 60, 125, 62,
739+ 59, 93, 41, 42, 43, 44, 45, 24, 47, 42,
740+ 43, 267, 45, 267, 47, 267, 91, 115, 0, 41,
741+ 59, 60, 0, 62, 123, 125, 43, 60, 45, 62,
742+ 93, 129, 274, 125, 41, 44, 125, 46, 125, 267,
743+ 125, 45, 153, 141, 146, 46, 0, 117, 12, 117,
744+ 134, 46, 61, 177, 93, -1, -1, 58, -1, 157,
745+ 77, 94, 125, 58, -1, -1, -1, -1, -1, 258,
746+ -1, -1, -1, 258, -1, -1, 174, -1, 176, -1,
747+ -1, 59, 91, 272, 273, 274, 125, 272, 273, 274,
748+ 91, -1, -1, -1, 283, -1, 91, -1, 283, -1,
749+ 281, 118, -1, 42, 43, 59, 45, -1, 47, 259,
736750 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
737− 270, 60, 123, 62, 274, 275, 276, 277, 278, 279,
751+ 270, 60, -1, 62, 274, 275, 276, 277, 278, 279,
738752 280, 281, 259, 260, 261, 262, 263, 264, 265, 266,
739753 267, 268, 269, 270, -1, 123, -1, 274, 275, 276,
740754 277, 278, 279, 280, 281, 94, -1, 261, 262, -1,
@@ -761,16 +775,16 @@ short luaY_check[] = { 2, · 20 unmodified lines
761775 -1, -1, -1, -1, 41, 42, 43, 44, 45, 59,
762776 47, -1, 42, 43, -1, 45, -1, 47, -1, 94,
763777 -1, -1, 59, 60, 125, 62, -1, -1, -1, -1,
764− 60, -1, 62, -1, -1, 41, -1, 259, 44, 261,
765− 262, 263, -1, 265, 266, 267, 268, 269, -1, -1,
766− -1, -1, 274, 59, 60, -1, 62, 94, -1, 259,
778+ 60, -1, 62, -1, -1, 41, 259, 40, 44, -1,
779+ 263, 44, 265, 46, -1, 268, 269, 270, -1, -1,
780+ -1, 274, -1, 59, 60, 58, 62, 94, 61, 259,
767781 -1, 261, 262, 263, 94, 265, 266, 267, 268, 269,
768− 270, -1, -1, -1, 274, -1, -1, -1, 42, 43,
769− 259, 45, -1, 47, 263, -1, 265, 93, -1, 268,
770− 269, 270, -1, -1, -1, 274, 60, -1, 62, -1,
782+ 270, -1, -1, -1, 274, -1, 259, -1, 42, 43,
783+ 263, 45, 265, 47, -1, 268, 269, 93, 91, -1,
784+ -1, 274, -1, -1, -1, -1, 60, -1, 62, -1,
771785 -1, -1, -1, -1, -1, -1, -1, 259, 260, 261,
772786 262, 263, 264, 265, 266, 267, 268, 269, 270, 125,
773− -1, -1, 274, 275, 276, 277, 278, 279, 280, 281,
787+ 123, -1, 274, 275, 276, 277, 278, 279, 280, 281,
774788 94, 259, 260, 261, 262, 263, 264, 265, 266, 267,
775789 268, 269, 270, -1, -1, -1, 274, 275, 276, 277,
776790 278, 279, 280, 281, -1, -1, -1, -1, 259, 260,
@@ -801,8 +815,8 @@ short luaY_check[] = { 2, · 24 unmodified lines
801815 -1, -1, -1, 93, -1, -1, -1, -1, -1, -1,
802816 0, -1, -1, 125, 59, 60, -1, 62, -1, -1,
803817 -1, -1, -1, -1, 41, -1, 93, 44, 0, -1,
804− -1, -1, -1, -1, -1, 125, -1, -1, -1, -1,
805− -1, -1, 59, -1, -1, -1, -1, -1, 93, -1,
818+ 259, -1, 261, 262, 263, 125, 265, 266, 267, 268,
819+ 269, -1, 59, -1, -1, 274, -1, -1, 93, -1,
806820 -1, -1, -1, -1, -1, -1, -1, -1, 125, -1,
807821 -1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
808822 -1, -1, -1, -1, -1, -1, 93, -1, -1, -1,
@@ -830,30 +844,44 @@ short luaY_check[] = { 2, · 21 unmodified lines
830844 262, 263, -1, 265, 266, 267, 268, 269, 270, -1,
831845 -1, -1, 274, 40, -1, 42, 43, 44, 45, 46,
832846 47, -1, 42, 43, -1, 45, -1, 47, -1, 93,
833− -1, 58, 59, 60, -1, 62, -1, -1, -1, -1,
834− 60, -1, 62, -1, -1, -1, -1, -1, -1, -1,
847+ -1, 58, 59, 60, 61, 62, 42, 43, -1, 45,
848+ 60, 47, 62, -1, -1, -1, -1, -1, -1, -1,
849+ -1, -1, -1, -1, 60, -1, 62, -1, -1, -1,
850+ -1, 125, -1, -1, 91, -1, -1, 94, -1, -1,
851+ -1, -1, -1, 93, 94, -1, -1, -1, -1, -1,
852+ -1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
853+ -1, -1, -1, -1, -1, -1, 123, -1, 125, -1,
854+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
855+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
835856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
836− -1, 125, 3, -1, 91, -1, -1, 94, -1, -1,
837− -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
838− -1, 22, 23, -1, -1, -1, -1, -1, -1, -1,
839− -1, 32, -1, -1, -1, -1, 123, -1, 125, -1,
840857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
841− 51, -1, -1, -1, -1, -1, -1, -1, 59, 60,
842− 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
843− 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
844858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
845859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
846860 -1, -1, -1, -1, 260, -1, -1, -1, -1, -1,
847− -1, -1, -1, 114, -1, -1, -1, -1, -1, 275,
848− 276, 277, 278, 279, 280, 281, -1, 128, 129, 130,
849− -1, -1, -1, -1, 135, 259, 260, 261, 262, 263,
861+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 275,
862+ 276, 277, 278, 279, 280, 281, -1, -1, -1, -1,
863+ -1, -1, -1, -1, -1, 259, 260, 261, 262, 263,
850864 264, 265, 266, 267, 268, 269, 270, -1, -1, -1,
851− 274, 275, 276, -1, -1, -1, -1, -1, 159, -1,
865+ 274, 275, 276, -1, -1, -1, -1, -1, -1, -1,
852866 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
853867 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
854− -1, -1, -1, -1, -1, -1, -1, -1, 275, 276,
868+ -1, -1, -1, -1, -1, -1, -1, 3, 275, 276,
855869 277, 278, 279, 280, 281, 275, 276, 277, 278, 279,
856− 280, 281,
870+ 280, 281, -1, -1, -1, -1, 22, 23, -1, 275,
871+ 276, 277, 278, 279, 280, 281, 32, -1, -1, -1,
872+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
873+ -1, -1, -1, -1, -1, 51, -1, -1, -1, -1,
874+ -1, -1, -1, 59, 60, 61, 62, 63, 64, 65,
875+ 66, 67, 68, 69, 70, 71, -1, -1, -1, -1,
876+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
877+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
878+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
879+ -1, 107, -1, -1, -1, -1, -1, -1, -1, -1,
880+ 116, -1, -1, -1, -1, -1, -1, -1, -1, -1,
881+ -1, -1, -1, -1, 130, 131, -1, -1, -1, -1,
882+ -1, 137, -1, 139, -1, -1, -1, -1, -1, -1,
883+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
884+ -1, -1, -1, -1, -1, -1, -1, 163,
857885 };
858886 #define YYFINAL 1
859887 #ifndef YYDEBUG
@@ -958,7 +986,9 @@ char *luaY_rule[] = { · 98 unmodified lines
958986 "ffieldlist : ffieldlist1 lastcomma",
959987 "ffieldlist1 : ffield",
960988 "ffieldlist1 : ffieldlist1 ',' ffield",
961−"ffield : NAME '=' expr1",
989+"ffield : ffieldkey '=' expr1",
990+"ffieldkey : '[' expr1 ']'",
991+"ffieldkey : NAME",
962992 "lfieldlist :",
963993 "lfieldlist : lfieldlist1 lastcomma",
964994 "lfieldlist1 : expr1",
@@ -1139,7 +1169,7 @@ luaY_reduce: · 174 unmodified lines
11391169 switch (luaY_n)
11401170 {
11411171 case 5:
1142−#line 470 "lua.stx"
1172+#line 468 "lua.stx"
11431173 {
11441174 code_byte(PUSHFUNCTION);
11451175 code_code(luaY_vsp[0].pFunc);
@@ -1147,28 +1177,26 @@ case 5: · 1 unmodified line
11471177 }
11481178 break;
11491179 case 6:
1150−#line 477 "lua.stx"
1180+#line 475 "lua.stx"
11511181 { luaY_val.vLong =luaY_vsp[0].vLong; init_func(); }
11521182 break;
11531183 case 7:
1154−#line 479 "lua.stx"
1184+#line 477 "lua.stx"
11551185 {
1156− code_byte(PUSHSTRING);
1157− code_word(luaI_findconstant(luaY_vsp[0].pTStr));
1186+ code_constant(luaY_vsp[0].pTStr);
11581187 luaY_val.vLong = 0; /* indexed variable */
11591188 init_func();
11601189 add_localvar(luaI_createfixedstring("self"));
11611190 }
11621191 break;
11631192 case 8:
1164−#line 489 "lua.stx"
1193+#line 486 "lua.stx"
11651194 {
11661195 codereturn();
11671196 luaY_val.pFunc = new(TFunc);
11681197 luaI_initTFunc(luaY_val.pFunc);
11691198 luaY_val.pFunc->size = pc;
11701199 luaY_val.pFunc->code = newvector(pc, Byte);
1171− luaY_val.pFunc->fileName = lua_parsedfile;
11721200 luaY_val.pFunc->lineDefined = luaY_vsp[-3].vInt;
11731201 memcpy(luaY_val.pFunc->code, basepc, pc*sizeof(Byte));
11741202 if (lua_debug)
@@ -1182,15 +1210,15 @@ case 8: · 7 unmodified lines
11821210 }
11831211 break;
11841212 case 13:
1185−#line 516 "lua.stx"
1213+#line 512 "lua.stx"
11861214 { codeIf(luaY_vsp[-4].vLong, luaY_vsp[-2].vLong); }
11871215 break;
11881216 case 14:
1189−#line 518 "lua.stx"
1217+#line 514 "lua.stx"
11901218 {luaY_val.vLong=pc;}
11911219 break;
11921220 case 15:
1193−#line 519 "lua.stx"
1221+#line 515 "lua.stx"
11941222 {
11951223 basepc[luaY_vsp[-3].vLong] = IFFJMP;
11961224 code_word_at(basepc+luaY_vsp[-3].vLong+1, pc - (luaY_vsp[-3].vLong + sizeof(Word)+1));
@@ -1199,18 +1227,18 @@ case 15: · 2 unmodified lines
11991227 }
12001228 break;
12011229 case 16:
1202−#line 526 "lua.stx"
1230+#line 522 "lua.stx"
12031231 {luaY_val.vLong=pc;}
12041232 break;
12051233 case 17:
1206−#line 527 "lua.stx"
1234+#line 523 "lua.stx"
12071235 {
12081236 basepc[luaY_vsp[0].vLong] = IFFUPJMP;
12091237 code_word_at(basepc+luaY_vsp[0].vLong+1, pc - (luaY_vsp[-4].vLong));
12101238 }
12111239 break;
12121240 case 18:
1213−#line 533 "lua.stx"
1241+#line 529 "lua.stx"
12141242 {
12151243 {
12161244 int i;
@@ -1222,22 +1250,26 @@ case 18: · 5 unmodified lines
12221250 }
12231251 }
12241252 break;
1253+case 19:
1254+#line 539 "lua.stx"
1255+{;}
1256+break;
12251257 case 20:
1226−#line 545 "lua.stx"
1258+#line 541 "lua.stx"
12271259 { nlocalvar += luaY_vsp[-1].vInt;
12281260 adjust_mult_assign(luaY_vsp[-1].vInt, luaY_vsp[0].vInt, 0);
12291261 }
12301262 break;
12311263 case 23:
1232−#line 553 "lua.stx"
1264+#line 549 "lua.stx"
12331265 { codeIf(luaY_vsp[-3].vLong, luaY_vsp[-1].vLong); }
12341266 break;
12351267 case 24:
1236−#line 556 "lua.stx"
1268+#line 552 "lua.stx"
12371269 {luaY_val.vInt = nlocalvar;}
12381270 break;
12391271 case 25:
1240−#line 557 "lua.stx"
1272+#line 553 "lua.stx"
12411273 {
12421274 if (nlocalvar != luaY_vsp[-2].vInt)
12431275 {
@@ -1251,14 +1283,14 @@ case 25: · 7 unmodified lines
12511283 }
12521284 break;
12531285 case 27:
1254−#line 572 "lua.stx"
1286+#line 568 "lua.stx"
12551287 {
12561288 adjust_functioncall(luaY_vsp[-1].vLong, MULT_RET);
12571289 codereturn();
12581290 }
12591291 break;
12601292 case 28:
1261−#line 579 "lua.stx"
1293+#line 575 "lua.stx"
12621294 {
12631295 luaY_val.vLong = pc;
12641296 code_byte(0); /* open space */
@@ -1266,103 +1298,102 @@ case 28: · 1 unmodified line
12661298 }
12671299 break;
12681300 case 29:
1269−#line 586 "lua.stx"
1301+#line 582 "lua.stx"
12701302 { adjust_functioncall(luaY_vsp[0].vLong, 1); }
12711303 break;
12721304 case 30:
1273−#line 589 "lua.stx"
1305+#line 585 "lua.stx"
12741306 { luaY_val.vLong = luaY_vsp[-1].vLong; }
12751307 break;
12761308 case 31:
1277−#line 590 "lua.stx"
1309+#line 586 "lua.stx"
12781310 { code_byte(EQOP); luaY_val.vLong = 0; }
12791311 break;
12801312 case 32:
1281−#line 591 "lua.stx"
1313+#line 587 "lua.stx"
12821314 { code_byte(LTOP); luaY_val.vLong = 0; }
12831315 break;
12841316 case 33:
1285−#line 592 "lua.stx"
1317+#line 588 "lua.stx"
12861318 { code_byte(GTOP); luaY_val.vLong = 0; }
12871319 break;
12881320 case 34:
1289−#line 593 "lua.stx"
1321+#line 589 "lua.stx"
12901322 { code_byte(EQOP); code_byte(NOTOP); luaY_val.vLong = 0; }
12911323 break;
12921324 case 35:
1293−#line 594 "lua.stx"
1325+#line 590 "lua.stx"
12941326 { code_byte(LEOP); luaY_val.vLong = 0; }
12951327 break;
12961328 case 36:
1297−#line 595 "lua.stx"
1329+#line 591 "lua.stx"
12981330 { code_byte(GEOP); luaY_val.vLong = 0; }
12991331 break;
13001332 case 37:
1301−#line 596 "lua.stx"
1333+#line 592 "lua.stx"
13021334 { code_byte(ADDOP); luaY_val.vLong = 0; }
13031335 break;
13041336 case 38:
1305−#line 597 "lua.stx"
1337+#line 593 "lua.stx"
13061338 { code_byte(SUBOP); luaY_val.vLong = 0; }
13071339 break;
13081340 case 39:
1309−#line 598 "lua.stx"
1341+#line 594 "lua.stx"
13101342 { code_byte(MULTOP); luaY_val.vLong = 0; }
13111343 break;
13121344 case 40:
1313−#line 599 "lua.stx"
1345+#line 595 "lua.stx"
13141346 { code_byte(DIVOP); luaY_val.vLong = 0; }
13151347 break;
13161348 case 41:
1317−#line 600 "lua.stx"
1349+#line 596 "lua.stx"
13181350 { code_byte(POWOP); luaY_val.vLong = 0; }
13191351 break;
13201352 case 42:
1321−#line 601 "lua.stx"
1353+#line 597 "lua.stx"
13221354 { code_byte(CONCOP); luaY_val.vLong = 0; }
13231355 break;
13241356 case 43:
1325−#line 602 "lua.stx"
1357+#line 598 "lua.stx"
13261358 { code_byte(MINUSOP); luaY_val.vLong = 0;}
13271359 break;
13281360 case 44:
1329−#line 603 "lua.stx"
1361+#line 599 "lua.stx"
13301362 { luaY_val.vLong = 0; }
13311363 break;
13321364 case 45:
1333−#line 604 "lua.stx"
1365+#line 600 "lua.stx"
13341366 { luaY_val.vLong = 0;}
13351367 break;
13361368 case 46:
1337−#line 605 "lua.stx"
1369+#line 601 "lua.stx"
13381370 { code_number(luaY_vsp[0].vFloat); luaY_val.vLong = 0; }
13391371 break;
13401372 case 47:
1341−#line 607 "lua.stx"
1373+#line 603 "lua.stx"
13421374 {
1343− code_byte(PUSHSTRING);
1344− code_word(luaY_vsp[0].vWord);
1345− luaY_val.vLong = 0;
1375+ code_string(luaY_vsp[0].vWord);
1376+ luaY_val.vLong = 0;
13461377 }
13471378 break;
13481379 case 48:
1349−#line 612 "lua.stx"
1380+#line 607 "lua.stx"
13501381 {code_byte(PUSHNIL); luaY_val.vLong = 0; }
13511382 break;
13521383 case 49:
1353−#line 613 "lua.stx"
1384+#line 608 "lua.stx"
13541385 { luaY_val.vLong = luaY_vsp[0].vLong; }
13551386 break;
13561387 case 50:
1357−#line 614 "lua.stx"
1388+#line 609 "lua.stx"
13581389 { code_byte(NOTOP); luaY_val.vLong = 0;}
13591390 break;
13601391 case 51:
1361−#line 615 "lua.stx"
1392+#line 610 "lua.stx"
13621393 {code_byte(POP); }
13631394 break;
13641395 case 52:
1365−#line 616 "lua.stx"
1396+#line 611 "lua.stx"
13661397 {
13671398 basepc[luaY_vsp[-2].vLong] = ONFJMP;
13681399 code_word_at(basepc+luaY_vsp[-2].vLong+1, pc - (luaY_vsp[-2].vLong + sizeof(Word)+1));
@@ -1370,11 +1401,11 @@ case 52: · 1 unmodified line
13701401 }
13711402 break;
13721403 case 53:
1373−#line 621 "lua.stx"
1404+#line 616 "lua.stx"
13741405 {code_byte(POP); }
13751406 break;
13761407 case 54:
1377−#line 622 "lua.stx"
1408+#line 617 "lua.stx"
13781409 {
13791410 basepc[luaY_vsp[-2].vLong] = ONTJMP;
13801411 code_word_at(basepc+luaY_vsp[-2].vLong+1, pc - (luaY_vsp[-2].vLong + sizeof(Word)+1));
@@ -1382,20 +1413,20 @@ case 54: · 1 unmodified line
13821413 }
13831414 break;
13841415 case 55:
1385−#line 630 "lua.stx"
1416+#line 625 "lua.stx"
13861417 {
13871418 code_byte(CREATEARRAY);
13881419 luaY_val.vLong = pc; code_word(0);
13891420 }
13901421 break;
13911422 case 56:
1392−#line 635 "lua.stx"
1423+#line 630 "lua.stx"
13931424 {
13941425 code_word_at(basepc+luaY_vsp[-3].vLong, luaY_vsp[-1].vInt);
13951426 }
13961427 break;
13971428 case 57:
1398−#line 641 "lua.stx"
1429+#line 636 "lua.stx"
13991430 {
14001431 code_byte(CALLFUNC);
14011432 code_byte(luaY_vsp[-1].vInt+luaY_vsp[0].vInt);
@@ -1404,11 +1435,11 @@ case 57: · 2 unmodified lines
14041435 }
14051436 break;
14061437 case 58:
1407−#line 649 "lua.stx"
1438+#line 644 "lua.stx"
14081439 { luaY_val.vInt = 0; }
14091440 break;
14101441 case 59:
1411−#line 651 "lua.stx"
1442+#line 646 "lua.stx"
14121443 {
14131444 code_byte(PUSHSELF);
14141445 code_word(luaI_findconstant(luaY_vsp[0].pTStr));
@@ -1416,31 +1447,31 @@ case 59: · 1 unmodified line
14161447 }
14171448 break;
14181449 case 60:
1419−#line 659 "lua.stx"
1450+#line 654 "lua.stx"
14201451 { luaY_val.vInt = adjust_functioncall(luaY_vsp[-1].vLong, 1); }
14211452 break;
14221453 case 61:
1423−#line 660 "lua.stx"
1454+#line 655 "lua.stx"
14241455 { luaY_val.vInt = 1; }
14251456 break;
14261457 case 62:
1427−#line 663 "lua.stx"
1458+#line 658 "lua.stx"
14281459 { luaY_val.vLong = 0; }
14291460 break;
14301461 case 63:
1431−#line 664 "lua.stx"
1462+#line 659 "lua.stx"
14321463 { luaY_val.vLong = luaY_vsp[0].vLong; }
14331464 break;
14341465 case 64:
1435−#line 667 "lua.stx"
1466+#line 662 "lua.stx"
14361467 { if (luaY_vsp[0].vLong != 0) luaY_val.vLong = luaY_vsp[0].vLong; else luaY_val.vLong = -1; }
14371468 break;
14381469 case 65:
1439−#line 668 "lua.stx"
1470+#line 663 "lua.stx"
14401471 { luaY_val.vLong = adjust_functioncall(luaY_vsp[-1].vLong, 1); }
14411472 break;
14421473 case 66:
1443−#line 669 "lua.stx"
1474+#line 664 "lua.stx"
14441475 {
14451476 if (luaY_vsp[0].vLong == 0) luaY_val.vLong = -(luaY_vsp[-1].vLong + 1); /* -length */
14461477 else
@@ -1451,19 +1482,19 @@ case 66: · 4 unmodified lines
14511482 }
14521483 break;
14531484 case 67:
1454−#line 679 "lua.stx"
1485+#line 674 "lua.stx"
14551486 { luaY_val.vInt = close_parlist(0); }
14561487 break;
14571488 case 68:
1458−#line 680 "lua.stx"
1489+#line 675 "lua.stx"
14591490 { luaY_val.vInt = close_parlist(luaY_vsp[0].vInt); }
14601491 break;
14611492 case 69:
1462−#line 683 "lua.stx"
1493+#line 678 "lua.stx"
14631494 { luaY_val.vInt = luaY_vsp[0].vInt; }
14641495 break;
14651496 case 70:
1466−#line 685 "lua.stx"
1497+#line 680 "lua.stx"
14671498 {
14681499 if (luaY_vsp[-2].vInt)
14691500 lua_error("invalid parameter list");
@@ -1471,113 +1502,110 @@ case 70: · 1 unmodified line
14711502 }
14721503 break;
14731504 case 71:
1474−#line 692 "lua.stx"
1505+#line 687 "lua.stx"
14751506 { add_localvar(luaY_vsp[0].pTStr); luaY_val.vInt = 0; }
14761507 break;
14771508 case 72:
1478−#line 693 "lua.stx"
1509+#line 688 "lua.stx"
14791510 { luaY_val.vInt = 1; }
14801511 break;
14811512 case 73:
1482−#line 697 "lua.stx"
1513+#line 692 "lua.stx"
14831514 { flush_list(luaY_vsp[0].vInt/FIELDS_PER_FLUSH, luaY_vsp[0].vInt%FIELDS_PER_FLUSH); }
14841515 break;
14851516 case 74:
1486−#line 699 "lua.stx"
1517+#line 694 "lua.stx"
14871518 { luaY_val.vInt = luaY_vsp[-2].vInt+luaY_vsp[0].vInt; }
14881519 break;
14891520 case 75:
1490−#line 701 "lua.stx"
1521+#line 696 "lua.stx"
14911522 { luaY_val.vInt = luaY_vsp[-1].vInt; flush_record(luaY_vsp[-1].vInt%FIELDS_PER_FLUSH); }
14921523 break;
14931524 case 76:
1494−#line 705 "lua.stx"
1525+#line 700 "lua.stx"
14951526 { luaY_val.vInt = 0; }
14961527 break;
14971528 case 77:
1498−#line 707 "lua.stx"
1529+#line 702 "lua.stx"
14991530 { luaY_val.vInt = luaY_vsp[0].vInt; flush_record(luaY_vsp[0].vInt%FIELDS_PER_FLUSH); }
15001531 break;
15011532 case 80:
1502−#line 714 "lua.stx"
1533+#line 709 "lua.stx"
15031534 { luaY_val.vInt = 0; }
15041535 break;
15051536 case 81:
1506−#line 715 "lua.stx"
1537+#line 710 "lua.stx"
15071538 { luaY_val.vInt = luaY_vsp[-1].vInt; }
15081539 break;
15091540 case 82:
1510−#line 718 "lua.stx"
1541+#line 713 "lua.stx"
15111542 {luaY_val.vInt=1;}
15121543 break;
15131544 case 83:
1514−#line 720 "lua.stx"
1545+#line 715 "lua.stx"
15151546 {
15161547 luaY_val.vInt=luaY_vsp[-2].vInt+1;
15171548 if (luaY_val.vInt%FIELDS_PER_FLUSH == 0) flush_record(FIELDS_PER_FLUSH);
15181549 }
15191550 break;
1520−case 84:
1521−#line 727 "lua.stx"
1522−{
1523− push_field(luaI_findconstant(luaY_vsp[-2].pTStr));
1524− }
1551+case 86:
1552+#line 725 "lua.stx"
1553+{ code_constant(luaY_vsp[0].pTStr); }
15251554 break;
1526−case 85:
1527−#line 732 "lua.stx"
1555+case 87:
1556+#line 728 "lua.stx"
15281557 { luaY_val.vInt = 0; }
15291558 break;
1530−case 86:
1531−#line 733 "lua.stx"
1559+case 88:
1560+#line 729 "lua.stx"
15321561 { luaY_val.vInt = luaY_vsp[-1].vInt; }
15331562 break;
1534−case 87:
1535−#line 736 "lua.stx"
1563+case 89:
1564+#line 732 "lua.stx"
15361565 {luaY_val.vInt=1;}
15371566 break;
1538−case 88:
1539−#line 738 "lua.stx"
1567+case 90:
1568+#line 734 "lua.stx"
15401569 {
15411570 luaY_val.vInt=luaY_vsp[-2].vInt+1;
15421571 if (luaY_val.vInt%FIELDS_PER_FLUSH == 0)
15431572 flush_list(luaY_val.vInt/FIELDS_PER_FLUSH - 1, FIELDS_PER_FLUSH);
15441573 }
15451574 break;
1546−case 89:
1547−#line 746 "lua.stx"
1575+case 91:
1576+#line 742 "lua.stx"
15481577 {
15491578 nvarbuffer = 0;
15501579 add_varbuffer(luaY_vsp[0].vLong);
15511580 luaY_val.vInt = (luaY_vsp[0].vLong == 0) ? 1 : 0;
15521581 }
15531582 break;
1554−case 90:
1555−#line 752 "lua.stx"
1583+case 92:
1584+#line 748 "lua.stx"
15561585 {
15571586 add_varbuffer(luaY_vsp[0].vLong);
15581587 luaY_val.vInt = (luaY_vsp[0].vLong == 0) ? luaY_vsp[-2].vInt + 1 : luaY_vsp[-2].vInt;
15591588 }
15601589 break;
1561−case 91:
1562−#line 758 "lua.stx"
1590+case 93:
1591+#line 754 "lua.stx"
15631592 { luaY_val.vLong = luaY_vsp[0].vLong; }
15641593 break;
1565−case 92:
1566−#line 760 "lua.stx"
1594+case 94:
1595+#line 756 "lua.stx"
15671596 {
15681597 luaY_val.vLong = 0; /* indexed variable */
15691598 }
15701599 break;
1571−case 93:
1572−#line 764 "lua.stx"
1600+case 95:
1601+#line 760 "lua.stx"
15731602 {
1574− code_byte(PUSHSTRING);
1575− code_word(luaI_findconstant(luaY_vsp[0].pTStr));
1576− luaY_val.vLong = 0; /* indexed variable */
1603+ code_constant(luaY_vsp[0].pTStr);
1604+ luaY_val.vLong = 0; /* indexed variable */
15771605 }
15781606 break;
1579−case 94:
1580−#line 772 "lua.stx"
1607+case 96:
1608+#line 767 "lua.stx"
15811609 {
15821610 int local = lua_localname(luaY_vsp[0].pTStr);
15831611 if (local == -1) /* global var */
@@ -1586,30 +1614,30 @@ case 94: · 2 unmodified lines
15861614 luaY_val.vLong = -(local+1); /* return negative value */
15871615 }
15881616 break;
1589−case 95:
1590−#line 781 "lua.stx"
1617+case 97:
1618+#line 776 "lua.stx"
15911619 { lua_pushvar(luaY_vsp[0].vLong); }
15921620 break;
1593−case 96:
1594−#line 784 "lua.stx"
1621+case 98:
1622+#line 779 "lua.stx"
15951623 {store_localvar(luaY_vsp[0].pTStr, 0); luaY_val.vInt = 1;}
15961624 break;
1597−case 97:
1598−#line 786 "lua.stx"
1625+case 99:
1626+#line 781 "lua.stx"
15991627 {
16001628 store_localvar(luaY_vsp[0].pTStr, luaY_vsp[-2].vInt);
16011629 luaY_val.vInt = luaY_vsp[-2].vInt+1;
16021630 }
16031631 break;
1604−case 98:
1605−#line 792 "lua.stx"
1632+case 100:
1633+#line 787 "lua.stx"
16061634 { luaY_val.vInt = 0; }
16071635 break;
1608−case 99:
1609−#line 793 "lua.stx"
1636+case 101:
1637+#line 788 "lua.stx"
16101638 { luaY_val.vInt = luaY_vsp[0].vLong; }
16111639 break;
1612−#line 1613 "y.tab.c"
1640+#line 1641 "y.tab.c"
16131641 }
16141642 luaY_ssp -= luaY_m;
16151643 luaY_state = *luaY_ssp;
src/table.c+84−96
@@ -3,9 +3,11 @@ · 2 unmodified lines
33 ** Module to control static tables
44 */
55
6−char *rcs_table="$Id: table.c,v 2.58 1996/11/01 12:47:45 roberto Exp $";
6+char *rcs_table="$Id: table.c,v 2.72 1997/06/17 18:09:31 roberto Exp $";
77
8−#include "mem.h"
8+#include "luamem.h"
9+#include "auxlib.h"
10+#include "func.h"
911 #include "opcode.h"
1012 #include "tree.h"
1113 #include "hash.h"
@@ -27,49 +29,14 @@ Word lua_nconstant = 0; · 15 unmodified lines
2729 static Long lua_maxconstant = 0;
2830
2931
30−#define GARBAGE_BLOCK 50
31−
32−static void lua_nextvar (void);
33−
34−/*
35−** Internal functions
36−*/
37−static struct {
38− char *name;
39− lua_CFunction func;
40−} int_funcs[] = {
41− {"assert", luaI_assert},
42− {"call", luaI_call},
43− {"dofile", lua_internaldofile},
44− {"dostring", lua_internaldostring},
45− {"error", luaI_error},
46− {"getglobal", luaI_getglobal},
47− {"next", lua_next},
48− {"nextvar", lua_nextvar},
49− {"print", luaI_print},
50− {"setfallback", luaI_setfallback},
51− {"setglobal", luaI_setglobal},
52− {"tonumber", lua_obj2number},
53− {"tostring", luaI_tostring},
54− {"type", luaI_type}
55−};
56−
57−#define INTFUNCSIZE (sizeof(int_funcs)/sizeof(int_funcs[0]))
32+#define GARBAGE_BLOCK 100
5833
5934
6035 void luaI_initsymbol (void)
6136 {
62− int i;
63− Word n;
6437 lua_maxsymbol = BUFFER_BLOCK;
6538 lua_table = newvector(lua_maxsymbol, Symbol);
66− for (i=0; i<INTFUNCSIZE; i++)
67− {
68− n = luaI_findsymbolbyname(int_funcs[i].name);
69− s_tag(n) = LUA_T_CFUNCTION; s_fvalue(n) = int_funcs[i].func;
70− }
71− n = luaI_findsymbolbyname("_VERSION_");
72− s_tag(n) = LUA_T_STRING; s_tsvalue(n) = lua_createstring(LUA_VERSION);
39+ luaI_predefine();
7340 }
7441
7542
@@ -92,17 +59,17 @@ void luaI_initconstant (void) · 16 unmodified lines
9259 */
9360 Word luaI_findsymbol (TaggedString *t)
9461 {
95− if (t->varindex == NOT_USED)
62+ if (t->u.s.varindex == NOT_USED)
9663 {
9764 if (lua_ntable == lua_maxsymbol)
9865 lua_maxsymbol = growvector(&lua_table, lua_maxsymbol, Symbol,
9966 symbolEM, MAX_WORD);
100− t->varindex = lua_ntable;
67+ t->u.s.varindex = lua_ntable;
10168 lua_table[lua_ntable].varname = t;
102− s_tag(lua_ntable) = LUA_T_NIL;
69+ s_ttype(lua_ntable) = LUA_T_NIL;
10370 lua_ntable++;
10471 }
105− return t->varindex;
72+ return t->u.s.varindex;
10673 }
10774
10875
@@ -118,16 +85,16 @@ Word luaI_findsymbolbyname (char *name) · 9 unmodified lines
11885 */
11986 Word luaI_findconstant (TaggedString *t)
12087 {
121− if (t->constindex == NOT_USED)
88+ if (t->u.s.constindex == NOT_USED)
12289 {
12390 if (lua_nconstant == lua_maxconstant)
12491 lua_maxconstant = growvector(&lua_constant, lua_maxconstant, TaggedString *,
12592 constantEM, MAX_WORD);
126− t->constindex = lua_nconstant;
93+ t->u.s.constindex = lua_nconstant;
12794 lua_constant[lua_nconstant] = t;
12895 lua_nconstant++;
12996 }
130− return t->constindex;
97+ return t->u.s.constindex;
13198 }
13299
133100
@@ -145,10 +112,16 @@ TaggedString *luaI_createfixedstring (char *name) · 11 unmodified lines
145112 }
146113
147114
115+int luaI_globaldefined (char *name)
116+{
117+ return ttype(&lua_table[luaI_findsymbolbyname(name)].object) != LUA_T_NIL;
118+}
119+
120+
148121 /*
149122 ** Traverse symbol table objects
150123 */
151−static char *lua_travsymbol (int (*fn)(Object *))
124+static char *lua_travsymbol (int (*fn)(TObject *))
152125 {
153126 Word i;
154127 for (i=0; i<lua_ntable; i++)
@@ -161,13 +134,14 @@ static char *lua_travsymbol (int (*fn)(Object *)) · 6 unmodified lines
161134 /*
162135 ** Mark an object if it is a string or a unmarked array.
163136 */
164−int lua_markobject (Object *o)
137+int lua_markobject (TObject *o)
165138 {/* if already marked, does not change mark value */
166− if (tag(o) == LUA_T_STRING && !tsvalue(o)->marked)
139+ if (ttype(o) == LUA_T_USERDATA ||
140+ (ttype(o) == LUA_T_STRING && !tsvalue(o)->marked))
167141 tsvalue(o)->marked = 1;
168− else if (tag(o) == LUA_T_ARRAY)
142+ else if (ttype(o) == LUA_T_ARRAY)
169143 lua_hashmark (avalue(o));
170− else if ((o->tag == LUA_T_FUNCTION || o->tag == LUA_T_MARK)
144+ else if ((o->ttype == LUA_T_FUNCTION || o->ttype == LUA_T_MARK)
171145 && !o->value.tf->marked)
172146 o->value.tf->marked = 1;
173147 return 0;
@@ -176,11 +150,11 @@ int lua_markobject (Object *o) · 2 unmodified lines
176150 /*
177151 * returns 0 if the object is going to be (garbage) collected
178152 */
179−int luaI_ismarked (Object *o)
153+int luaI_ismarked (TObject *o)
180154 {
181− switch (o->tag)
155+ switch (o->ttype)
182156 {
183− case LUA_T_STRING:
157+ case LUA_T_STRING: case LUA_T_USERDATA:
184158 return o->value.ts->marked;
185159 case LUA_T_FUNCTION:
186160 return o->value.tf->marked;
@@ -192,76 +166,90 @@ int luaI_ismarked (Object *o) · 5 unmodified lines
192166 }
193167
194168
169+static void call_nilIM (void)
170+{ /* signals end of garbage collection */
171+ TObject t;
172+ ttype(&t) = LUA_T_NIL;
173+ luaI_gcIM(&t); /* end of list */
174+}
175+
195176 /*
196177 ** Garbage collection.
197178 ** Delete all unused strings and arrays.
198179 */
199−Long luaI_collectgarbage (void)
180+static long gc_block = GARBAGE_BLOCK;
181+static long gc_nentity = 0; /* total of strings, arrays, etc */
182+
183+static void markall (void)
200184 {
201− Long recovered = 0;
202185 lua_travstack(lua_markobject); /* mark stack objects */
203186 lua_travsymbol(lua_markobject); /* mark symbol table objects */
204187 luaI_travlock(lua_markobject); /* mark locked objects */
205188 luaI_travfallbacks(lua_markobject); /* mark fallbacks */
189+}
190+
191+
192+long lua_collectgarbage (long limit)
193+{
194+ long recovered = 0;
195+ Hash *freetable;
196+ TaggedString *freestr;
197+ TFunc *freefunc;
198+ markall();
206199 luaI_invalidaterefs();
207− recovered += lua_strcollector();
208− recovered += lua_hashcollector();
209− recovered += luaI_funccollector();
200+ freetable = luaI_hashcollector(&recovered);
201+ freestr = luaI_strcollector(&recovered);
202+ freefunc = luaI_funccollector(&recovered);
203+ gc_nentity -= recovered;
204+ gc_block = (limit == 0) ? 2*(gc_block-recovered) : gc_nentity+limit;
205+ luaI_hashcallIM(freetable);
206+ luaI_strcallIM(freestr);
207+ call_nilIM();
208+ luaI_hashfree(freetable);
209+ luaI_strfree(freestr);
210+ luaI_funcfree(freefunc);
210211 return recovered;
211212 }
212213
214+
213215 void lua_pack (void)
214216 {
215− static unsigned long block = GARBAGE_BLOCK;
216− static unsigned long nentity = 0; /* total of strings, arrays, etc */
217− unsigned long recovered = 0;
218− if (nentity++ < block) return;
219− recovered = luaI_collectgarbage();
220− block = 2*(block-recovered);
221− nentity -= recovered;
217+ if (++gc_nentity >= gc_block)
218+ lua_collectgarbage(0);
222219 }
223220
224221
225222 /*
226223 ** Internal function: return next global variable
227224 */
228−static void lua_nextvar (void)
225+void luaI_nextvar (void)
229226 {
230− Word next;
231− lua_Object o = lua_getparam(1);
232− if (o == LUA_NOOBJECT)
233− lua_error("too few arguments to function `nextvar'");
234− if (lua_getparam(2) != LUA_NOOBJECT)
235− lua_error("too many arguments to function `nextvar'");
236− if (lua_isnil(o))
237− next = 0;
238− else if (!lua_isstring(o))
239− {
240− lua_error("incorrect argument to function `nextvar'");
241− return; /* to avoid warnings */
242− }
243− else
244− next = luaI_findsymbolbyname(lua_getstring(o)) + 1;
245− while (next < lua_ntable && s_tag(next) == LUA_T_NIL) next++;
246− if (next < lua_ntable)
247− {
248− lua_pushstring(lua_table[next].varname->str);
249− luaI_pushobject(&s_object(next));
250− }
227+ Word next;
228+ if (lua_isnil(lua_getparam(1)))
229+ next = 0;
230+ else
231+ next = luaI_findsymbolbyname(luaL_check_string(1)) + 1;
232+ while (next < lua_ntable && s_ttype(next) == LUA_T_NIL)
233+ next++;
234+ if (next < lua_ntable) {
235+ lua_pushstring(lua_table[next].varname->str);
236+ luaI_pushobject(&s_object(next));
237+ }
251238 }
252239
253240
254−static Object *functofind;
255−static int checkfunc (Object *o)
241+static TObject *functofind;
242+static int checkfunc (TObject *o)
256243 {
257− if (o->tag == LUA_T_FUNCTION)
244+ if (o->ttype == LUA_T_FUNCTION)
258245 return
259− ((functofind->tag == LUA_T_FUNCTION || functofind->tag == LUA_T_MARK)
246+ ((functofind->ttype == LUA_T_FUNCTION || functofind->ttype == LUA_T_MARK)
260247 && (functofind->value.tf == o->value.tf));
261− if (o->tag == LUA_T_CFUNCTION)
248+ if (o->ttype == LUA_T_CFUNCTION)
262249 return
263− ((functofind->tag == LUA_T_CFUNCTION || functofind->tag == LUA_T_CMARK)
264− && (functofind->value.f == o->value.f));
250+ ((functofind->ttype == LUA_T_CFUNCTION ||
251+ functofind->ttype == LUA_T_CMARK) &&
252+ (functofind->value.f == o->value.f));
265253 return 0;
266254 }
267255
@@ -270,7 +258,7 @@ char *lua_getobjname (lua_Object o, char **name) · 2 unmodified lines
270258 { /* try to find a name for given function */
271259 functofind = luaI_Address(o);
272260 if ((*name = luaI_travfallbacks(checkfunc)) != NULL)
273− return "fallback";
261+ return "tag-method";
274262 else if ((*name = lua_travsymbol(checkfunc)) != NULL)
275263 return "global";
276264 else return "";
src/table.h+6−5
@@ -1,7 +1,7 @@
11 /*
22 ** Module to control static tables
33 ** TeCGraf - PUC-Rio
4−** $Id: table.h,v 2.21 1996/04/22 18:00:37 roberto Exp $
4+** $Id: table.h,v 2.25 1997/05/26 14:42:36 roberto Exp $
55 */
66
77 #ifndef table_h
@@ -12,7 +12,7 @@ · 4 unmodified lines
1212
1313 typedef struct
1414 {
15− Object object;
15+ TObject object;
1616 TaggedString *varname;
1717 } Symbol;
1818
@@ -28,10 +28,11 @@ Word luaI_findsymbolbyname (char *name); · 9 unmodified lines
2828 Word luaI_findsymbol (TaggedString *t);
2929 Word luaI_findconstant (TaggedString *t);
3030 Word luaI_findconstantbyname (char *name);
31+int luaI_globaldefined (char *name);
32+void luaI_nextvar (void);
3133 TaggedString *luaI_createfixedstring (char *str);
32−int lua_markobject (Object *o);
33−int luaI_ismarked (Object *o);
34−Long luaI_collectgarbage (void);
34+int lua_markobject (TObject *o);
35+int luaI_ismarked (TObject *o);
3536 void lua_pack (void);
3637
3738
src/tree.c+92−26
@@ -3,17 +3,18 @@ · 2 unmodified lines
33 ** TecCGraf - PUC-Rio
44 */
55
6−char *rcs_tree="$Id: tree.c,v 1.20 1996/03/14 15:56:26 roberto Exp $";
6+char *rcs_tree="$Id: tree.c,v 1.28 1997/06/11 14:24:40 roberto Exp $";
77
88
99 #include <string.h>
1010
11−#include "mem.h"
11+#include "luamem.h"
1212 #include "lua.h"
1313 #include "tree.h"
1414 #include "lex.h"
1515 #include "hash.h"
1616 #include "table.h"
17+#include "fallback.h"
1718
1819
1920 #define NUM_HASHS 64
@@ -28,23 +29,43 @@ static int initialized = 0; · 8 unmodified lines
2829
2930 static stringtable string_root[NUM_HASHS];
3031
31−static TaggedString EMPTY = {NOT_USED, NOT_USED, 0, 2, {0}};
32+static TaggedString EMPTY = {LUA_T_STRING, NULL, {{NOT_USED, NOT_USED}},
33+ 0, 2, {0}};
3234
3335
34−static unsigned long hash (char *str)
36+static unsigned long hash (char *s, int tag)
3537 {
36− unsigned long h = 0;
37− while (*str)
38− h = ((h<<5)-h)^(unsigned char)*(str++);
38+ unsigned long h;
39+ if (tag != LUA_T_STRING)
40+ h = (unsigned long)s;
41+ else {
42+ h = 0;
43+ while (*s)
44+ h = ((h<<5)-h)^(unsigned char)*(s++);
45+ }
3946 return h;
4047 }
4148
49+
50+static void luaI_inittree (void)
51+{
52+ int i;
53+ for (i=0; i<NUM_HASHS; i++) {
54+ string_root[i].size = 0;
55+ string_root[i].nuse = 0;
56+ string_root[i].hash = NULL;
57+ }
58+}
59+
60+
4261 static void initialize (void)
4362 {
4463 initialized = 1;
64+ luaI_inittree();
4565 luaI_addReserved();
4666 luaI_initsymbol();
4767 luaI_initconstant();
68+ luaI_initfallbacks();
4869 }
4970
5071
@@ -58,8 +79,7 @@ static void grow (stringtable *tb) · 7 unmodified lines
5879 /* rehash */
5980 tb->nuse = 0;
6081 for (i=0; i<tb->size; i++)
61− if (tb->hash[i] != NULL && tb->hash[i] != &EMPTY)
62− {
82+ if (tb->hash[i] != NULL && tb->hash[i] != &EMPTY) {
6383 int h = tb->hash[i]->hash%newsize;
6484 while (newhash[h])
6585 h = (h+1)%newsize;
@@ -71,10 +91,30 @@ static void grow (stringtable *tb) · 5 unmodified lines
7191 tb->hash = newhash;
7292 }
7393
74−static TaggedString *insert (char *str, stringtable *tb)
94+
95+static TaggedString *newone(char *buff, int tag, unsigned long h)
96+{
97+ TaggedString *ts;
98+ if (tag == LUA_T_STRING) {
99+ ts = (TaggedString *)luaI_malloc(sizeof(TaggedString)+strlen(buff));
100+ strcpy(ts->str, buff);
101+ ts->u.s.varindex = ts->u.s.constindex = NOT_USED;
102+ ts->tag = LUA_T_STRING;
103+ }
104+ else {
105+ ts = (TaggedString *)luaI_malloc(sizeof(TaggedString));
106+ ts->u.v = buff;
107+ ts->tag = tag == LUA_ANYTAG ? 0 : tag;
108+ }
109+ ts->marked = 0;
110+ ts->hash = h;
111+ return ts;
112+}
113+
114+static TaggedString *insert (char *buff, int tag, stringtable *tb)
75115 {
76116 TaggedString *ts;
77− unsigned long h = hash(str);
117+ unsigned long h = hash(buff, tag);
78118 int i;
79119 int j = -1;
80120 if ((Long)tb->nuse*3 >= (Long)tb->size*2)
@@ -84,12 +124,14 @@ static TaggedString *insert (char *str, stringtable *tb) · 3 unmodified lines
84124 grow(tb);
85125 }
86126 i = h%tb->size;
87− while (tb->hash[i])
127+ while ((ts = tb->hash[i]) != NULL)
88128 {
89− if (tb->hash[i] == &EMPTY)
129+ if (ts == &EMPTY)
90130 j = i;
91− else if (strcmp(str, tb->hash[i]->str) == 0)
92− return tb->hash[i];
131+ else if ((ts->tag == LUA_T_STRING) ?
132+ (tag == LUA_T_STRING && (strcmp(buff, ts->str) == 0)) :
133+ ((tag == ts->tag || tag == LUA_ANYTAG) && buff == ts->u.v))
134+ return ts;
93135 i = (i+1)%tb->size;
94136 }
95137 /* not found */
@@ -98,27 +140,49 @@ static TaggedString *insert (char *str, stringtable *tb) · 2 unmodified lines
98140 i = j;
99141 else
100142 tb->nuse++;
101− ts = tb->hash[i] = (TaggedString *)luaI_malloc(sizeof(TaggedString)+strlen(str));
102− strcpy(ts->str, str);
103− ts->marked = 0;
104− ts->hash = h;
105− ts->varindex = ts->constindex = NOT_USED;
143+ ts = tb->hash[i] = newone(buff, tag, h);
106144 return ts;
107145 }
108146
109−TaggedString *lua_createstring (char *str)
147+TaggedString *luaI_createudata (void *udata, int tag)
110148 {
111− return insert(str, &string_root[(unsigned)str[0]%NUM_HASHS]);
149+ return insert(udata, tag, &string_root[(unsigned)udata%NUM_HASHS]);
150+}
151+
152+TaggedString *lua_createstring (char *str)
153+{
154+ return insert(str, LUA_T_STRING, &string_root[(unsigned)str[0]%NUM_HASHS]);
155+}
156+
157+
158+void luaI_strcallIM (TaggedString *l)
159+{
160+ TObject o;
161+ ttype(&o) = LUA_T_USERDATA;
162+ for (; l; l=l->next) {
163+ tsvalue(&o) = l;
164+ luaI_gcIM(&o);
165+ }
166+}
167+
168+
169+void luaI_strfree (TaggedString *l)
170+{
171+ while (l) {
172+ TaggedString *next = l->next;
173+ luaI_free(l);
174+ l = next;
175+ }
112176 }
113177
114178
115179 /*
116180 ** Garbage collection function.
117−** This function traverse the string list freeing unindexed strings
118181 */
119−Long lua_strcollector (void)
182+TaggedString *luaI_strcollector (long *acum)
120183 {
121184 Long counter = 0;
185+ TaggedString *frees = NULL;
122186 int i;
123187 for (i=0; i<NUM_HASHS; i++)
124188 {
@@ -133,13 +197,15 @@ Long lua_strcollector (void) · 8 unmodified lines
133197 t->marked = 0;
134198 else
135199 {
136− luaI_free(t);
200+ t->next = frees;
201+ frees = t;
137202 tb->hash[j] = &EMPTY;
138203 counter++;
139204 }
140205 }
141206 }
142207 }
143− return counter;
208+ *acum += counter;
209+ return frees;
144210 }
145211
src/tree.h+14−4
@@ -1,7 +1,7 @@
11 /*
22 ** tree.h
33 ** TecCGraf - PUC-Rio
4−** $Id: tree.h,v 1.14 1996/02/26 17:07:49 roberto Exp $
4+** $Id: tree.h,v 1.18 1997/06/09 17:28:14 roberto Exp $
55 */
66
77 #ifndef tree_h
@@ -14,8 +14,15 @@ · 6 unmodified lines
1414
1515 typedef struct TaggedString
1616 {
17− Word varindex; /* != NOT_USED if this is a symbol */
18− Word constindex; /* != NOT_USED if this is a constant */
17+ int tag; /* if != LUA_T_STRING, this is a userdata */
18+ struct TaggedString *next;
19+ union {
20+ struct {
21+ Word varindex; /* != NOT_USED if this is a symbol */
22+ Word constindex; /* != NOT_USED if this is a constant */
23+ } s;
24+ void *v; /* if this is a userdata, here is its value */
25+ } u;
1926 unsigned long hash; /* 0 if not initialized */
2027 int marked; /* for garbage collection; never collect (nor change) if > 1 */
2128 char str[1]; /* \0 byte already reserved */
@@ -23,6 +30,9 @@ typedef struct TaggedString · 1 unmodified line
2330
2431
2532 TaggedString *lua_createstring (char *str);
26−Long lua_strcollector (void);
33+TaggedString *luaI_createudata (void *udata, int tag);
34+TaggedString *luaI_strcollector (long *cont);
35+void luaI_strfree (TaggedString *l);
36+void luaI_strcallIM (TaggedString *l);
2737
2838 #endif
src/undump.c+71−74
@@ -3,33 +3,28 @@ · 2 unmodified lines
33 ** load bytecodes from files
44 */
55
6−char* rcs_undump="$Id: undump.c,v 1.21 1996/11/18 11:18:29 lhf Exp $";
6+char* rcs_undump="$Id: undump.c,v 1.24 1997/06/17 18:19:17 roberto Exp $";
77
88 #include <stdio.h>
99 #include <string.h>
10+#include "auxlib.h"
1011 #include "opcode.h"
11−#include "mem.h"
12+#include "luamem.h"
1213 #include "table.h"
1314 #include "undump.h"
15+#include "zio.h"
1416
1517 static int swapword=0;
1618 static int swapfloat=0;
1719 static TFunc* Main=NULL; /* functions in a chunk */
1820 static TFunc* lastF=NULL;
1921
20−static void warn(char* s) /* TODO: remove */
21−{
22−#if 0
23− fprintf(stderr,"undump: %s\n",s);
24−#endif
25−}
26−
2722 static void FixCode(Byte* code, Byte* end) /* swap words */
2823 {
2924 Byte* p;
3025 for (p=code; p!=end;)
3126 {
32− OpCode op=(OpCode)*p;
27+ int op=*p;
3328 switch (op)
3429 {
3530 case PUSHNIL:
@@ -83,6 +78,8 @@ static void FixCode(Byte* code, Byte* end) /* swap words */ · 47 unmodified lines
8378 case STORELIST0:
8479 case ADJUST:
8580 case RETCODE:
81+ case VARARGS:
82+ case STOREMAP:
8683 p+=2;
8784 break;
8885 case STORELIST:
@@ -132,7 +129,8 @@ static void FixCode(Byte* code, Byte* end) /* swap words */ · 43 unmodified lines
132129 break;
133130 }
134131 default:
135− lua_error("corrupt binary file");
132+ luaL_verror("corrupt binary file: bad opcode %d at %d\n",
133+ op,(int)(p-code));
136134 break;
137135 }
138136 }
@@ -150,149 +148,152 @@ static void Unthread(Byte* code, int i, int v) · 11 unmodified lines
150148 }
151149 }
152150
153−static int LoadWord(FILE* D)
151+static int LoadWord(ZIO* Z)
154152 {
155153 Word w;
156− fread(&w,sizeof(w),1,D);
154+ zread(Z,&w,sizeof(w));
157155 if (swapword)
158156 {
159− Byte* p=(Byte*)&w; /* TODO: need union? */
157+ Byte* p=(Byte*)&w;
160158 Byte t;
161159 t=p[0]; p[0]=p[1]; p[1]=t;
162160 }
163161 return w;
164162 }
165163
166−static int LoadSize(FILE* D)
164+static int LoadSize(ZIO* Z)
167165 {
168− Word hi=LoadWord(D);
169− Word lo=LoadWord(D);
166+ Word hi=LoadWord(Z);
167+ Word lo=LoadWord(Z);
170168 int s=(hi<<16)|lo;
171169 if ((Word)s != s) lua_error("code too long");
172170 return s;
173171 }
174172
175−static void* LoadBlock(int size, FILE* D)
173+static void* LoadBlock(int size, ZIO* Z)
176174 {
177175 void* b=luaI_malloc(size);
178− fread(b,size,1,D);
176+ zread(Z,b,size);
179177 return b;
180178 }
181179
182−static char* LoadString(FILE* D)
180+static char* LoadString(ZIO* Z)
183181 {
184− int size=LoadWord(D);
182+ int size=LoadWord(Z);
185183 char *b=luaI_buffer(size);
186− fread(b,size,1,D);
184+ zread(Z,b,size);
187185 return b;
188186 }
189187
190−static char* LoadNewString(FILE* D)
188+static char* LoadNewString(ZIO* Z)
191189 {
192− return LoadBlock(LoadWord(D),D);
190+ return LoadBlock(LoadWord(Z),Z);
193191 }
194192
195−static void LoadFunction(FILE* D)
193+static void LoadFunction(ZIO* Z)
196194 {
197195 TFunc* tf=new(TFunc);
198196 tf->next=NULL;
199197 tf->locvars=NULL;
200− tf->size=LoadSize(D);
201− tf->lineDefined=LoadWord(D);
198+ tf->size=LoadSize(Z);
199+ tf->lineDefined=LoadWord(Z);
202200 if (IsMain(tf)) /* new main */
203201 {
204− tf->fileName=LoadNewString(D);
202+ tf->fileName=LoadNewString(Z);
205203 Main=lastF=tf;
206204 }
207205 else /* fix PUSHFUNCTION */
208206 {
209− tf->marked=LoadWord(D);
207+ tf->marked=LoadWord(Z);
210208 tf->fileName=Main->fileName;
211209 memcpy(Main->code+tf->marked,&tf,sizeof(tf));
212210 lastF=lastF->next=tf;
213211 }
214− tf->code=LoadBlock(tf->size,D);
212+ tf->code=LoadBlock(tf->size,Z);
215213 if (swapword || swapfloat) FixCode(tf->code,tf->code+tf->size);
216214 while (1) /* unthread */
217215 {
218− int c=getc(D);
216+ int c=zgetc(Z);
219217 if (c==ID_VAR) /* global var */
220218 {
221− int i=LoadWord(D);
222− char* s=LoadString(D);
219+ int i=LoadWord(Z);
220+ char* s=LoadString(Z);
223221 int v=luaI_findsymbolbyname(s);
224222 Unthread(tf->code,i,v);
225223 }
226224 else if (c==ID_STR) /* constant string */
227225 {
228− int i=LoadWord(D);
229− char* s=LoadString(D);
226+ int i=LoadWord(Z);
227+ char* s=LoadString(Z);
230228 int v=luaI_findconstantbyname(s);
231229 Unthread(tf->code,i,v);
232230 }
233231 else
234232 {
235− ungetc(c,D);
233+ zungetc(Z);
236234 break;
237235 }
238236 }
239237 }
240238
241−static void LoadSignature(FILE* D)
239+static void LoadSignature(ZIO* Z)
242240 {
243241 char* s=SIGNATURE;
244− while (*s!=0 && getc(D)==*s)
242+ while (*s!=0 && zgetc(Z)==*s)
245243 ++s;
246− if (*s!=0) lua_error("bad signature");
244+ if (*s!=0) lua_error("cannot load binary file: bad signature");
247245 }
248246
249−static void LoadHeader(FILE* D) /* TODO: error handling */
247+static void LoadHeader(ZIO* Z)
250248 {
251249 Word w,tw=TEST_WORD;
252250 float f,tf=TEST_FLOAT;
253251 int version;
254− LoadSignature(D);
255− version=getc(D);
252+ LoadSignature(Z);
253+ version=zgetc(Z);
256254 if (version>0x23) /* after 2.5 */
257255 {
258− int oldsizeofW=getc(D);
259− int oldsizeofF=getc(D);
260− int oldsizeofP=getc(D);
256+ int oldsizeofW=zgetc(Z);
257+ int oldsizeofF=zgetc(Z);
258+ int oldsizeofP=zgetc(Z);
261259 if (oldsizeofW!=2)
262− lua_error("cannot load binary file created on machine with sizeof(Word)!=2");
260+ luaL_verror(
261+ "cannot load binary file created on machine with sizeof(Word)=%d; "
262+ "expected 2",oldsizeofW);
263263 if (oldsizeofF!=4)
264− lua_error("cannot load binary file created on machine with sizeof(float)!=4. not an IEEE machine?");
265− if (oldsizeofP!=sizeof(TFunc*)) /* TODO: pack */
266− lua_error("cannot load binary file: different pointer sizes");
264+ luaL_verror(
265+ "cannot load binary file created on machine with sizeof(float)=%d; "
266+ "expected 4\nnot an IEEE machine?",oldsizeofF);
267+ if (oldsizeofP!=sizeof(TFunc*)) /* TODO: pack? */
268+ luaL_verror(
269+ "cannot load binary file created on machine with sizeof(TFunc*)=%d; "
270+ "expected %d",oldsizeofP,(int)sizeof(TFunc*));
267271 }
268− fread(&w,sizeof(w),1,D); /* test word */
272+ zread(Z,&w,sizeof(w)); /* test word */
269273 if (w!=tw)
270274 {
271275 swapword=1;
272− warn("different byte order");
273276 }
274− fread(&f,sizeof(f),1,D); /* test float */
277+ zread(Z,&f,sizeof(f)); /* test float */
275278 if (f!=tf)
276279 {
277− Byte* p=(Byte*)&f; /* TODO: need union? */
280+ Byte* p=(Byte*)&f;
278281 Byte t;
279282 swapfloat=1;
280283 t=p[0]; p[0]=p[3]; p[3]=t;
281284 t=p[1]; p[1]=p[2]; p[2]=t;
282285 if (f!=tf) /* TODO: try another perm? */
283− lua_error("different float representation");
284− else
285− warn("different byte order in floats");
286+ lua_error("cannot load binary file: unknown float representation");
286287 }
287288 }
288289
289−static void LoadChunk(FILE* D)
290+static void LoadChunk(ZIO* Z)
290291 {
291− LoadHeader(D);
292+ LoadHeader(Z);
292293 while (1)
293294 {
294− int c=getc(D);
295− if (c==ID_FUN) LoadFunction(D); else { ungetc(c,D); break; }
295+ int c=zgetc(Z);
296+ if (c==ID_FUN) LoadFunction(Z); else { zungetc(Z); break; }
296297 }
297298 }
298299
@@ -300,30 +301,26 @@ static void LoadChunk(FILE* D) · 1 unmodified line
300301 ** load one chunk from a file.
301302 ** return list of functions found, headed by main, or NULL at EOF.
302303 */
303−TFunc* luaI_undump1(FILE* D)
304+TFunc* luaI_undump1(ZIO* Z)
304305 {
305− while (1)
306+ int c=zgetc(Z);
307+ if (c==ID_CHUNK)
306308 {
307− int c=getc(D);
308− if (c==ID_CHUNK)
309− {
310− LoadChunk(D);
311− return Main;
312− }
313− else if (c==EOF)
314− return NULL;
315− else
316− lua_error("not a lua binary file");
309+ LoadChunk(Z);
310+ return Main;
317311 }
312+ else if (c!=EOZ)
313+ lua_error("not a lua binary file");
314+ return NULL;
318315 }
319316
320317 /*
321318 ** load and run all chunks in a file
322319 */
323−int luaI_undump(FILE* D)
320+int luaI_undump(ZIO* Z)
324321 {
325322 TFunc* m;
326− while ((m=luaI_undump1(D)))
323+ while ((m=luaI_undump1(Z)))
327324 {
328325 int status=luaI_dorun(m);
329326 luaI_freefunc(m);
src/undump.h+11−4
@@ -1,10 +1,14 @@
11 /*
22 ** undump.h
33 ** definitions for lua decompiler
4−** $Id: undump.h,v 1.3 1996/11/14 11:44:34 lhf Exp $
4+** $Id: undump.h,v 1.6 1997/06/17 18:19:17 roberto Exp $
55 */
66
7+#ifndef undump_h
8+#define undump_h
9+
710 #include "func.h"
11+#include "zio.h"
812
913 #define IsMain(f) (f->lineDefined==0)
1014
@@ -15,9 +19,12 @@ · 4 unmodified lines
1519 #define ID_VAR 'V'
1620 #define ID_STR 'S'
1721 #define SIGNATURE "Lua"
18−#define VERSION 0x25 /* 2.5 */
22+#define VERSION 0x25 /* last format change was in 2.5 */
1923 #define TEST_WORD 0x1234 /* a word for testing byte ordering */
2024 #define TEST_FLOAT 0.123456789e-23 /* a float for testing representation */
2125
22−TFunc* luaI_undump1(FILE* D); /* load one chunk */
23−int luaI_undump(FILE* D); /* load all chunks */
26+
27+TFunc* luaI_undump1(ZIO* Z);
28+int luaI_undump(ZIO* Z); /* load all chunks */
29+
30+#endif
src/zio.c+79−0
@@ -0,0 +1,79 @@
1+/*
2+* zio.c
3+* a generic input stream interface
4+* $Id: zio.c,v 1.2 1997/06/20 19:25:54 roberto Exp $
5+*/
6+
7+#include <stdio.h>
8+#include <stdlib.h>
9+#include <string.h>
10+#include "zio.h"
11+
12+
13+/* ----------------------------------------------------- memory buffers --- */
14+
15+static int zmfilbuf(ZIO* z)
16+{
17+ return EOZ;
18+}
19+
20+ZIO* zmopen(ZIO* z, char* b, int size)
21+{
22+ if (b==NULL) return NULL;
23+ z->n=size;
24+ z->p= (unsigned char *)b;
25+ z->filbuf=zmfilbuf;
26+ z->u=NULL;
27+ return z;
28+}
29+
30+/* ------------------------------------------------------------ strings --- */
31+
32+ZIO* zsopen(ZIO* z, char* s)
33+{
34+ if (s==NULL) return NULL;
35+ return zmopen(z,s,strlen(s));
36+}
37+
38+/* -------------------------------------------------------------- FILEs --- */
39+
40+static int zffilbuf(ZIO* z)
41+{
42+ int n=fread(z->buffer,1,ZBSIZE,z->u);
43+ if (n==0) return EOZ;
44+ z->n=n-1;
45+ z->p=z->buffer;
46+ return *(z->p++);
47+}
48+
49+
50+ZIO* zFopen(ZIO* z, FILE* f)
51+{
52+ if (f==NULL) return NULL;
53+ z->n=0;
54+ z->p=z->buffer;
55+ z->filbuf=zffilbuf;
56+ z->u=f;
57+ return z;
58+}
59+
60+
61+/* --------------------------------------------------------------- read --- */
62+int zread(ZIO *z, void *b, int n)
63+{
64+ while (n) {
65+ int m;
66+ if (z->n == 0) {
67+ if (z->filbuf(z) == EOZ)
68+ return n; /* retorna quantos faltaram ler */
69+ zungetc(z); /* poe o resultado de filbuf no buffer */
70+ }
71+ m = (n <= z->n) ? n : z->n; /* minimo de n e z->n */
72+ memcpy(b, z->p, m);
73+ z->n -= m;
74+ z->p += m;
75+ b = (char *)b + m;
76+ n -= m;
77+ }
78+ return 0;
79+}
src/zio.h+48−0
@@ -0,0 +1,48 @@
1+/*
2+* zio.h
3+* a generic input stream interface
4+* $Id: zio.h,v 1.5 1997/06/20 19:25:54 roberto Exp $
5+*/
6+
7+#ifndef zio_h
8+#define zio_h
9+
10+#include <stdio.h>
11+
12+
13+
14+/* For Lua only */
15+#define zFopen luaZ_Fopen
16+#define zsopen luaZ_sopen
17+#define zmopen luaZ_mopen
18+#define zread luaZ_read
19+
20+#define EOZ (-1) /* end of stream */
21+
22+typedef struct zio ZIO;
23+
24+ZIO* zFopen(ZIO* z, FILE* f); /* open FILEs */
25+ZIO* zsopen(ZIO* z, char* s); /* string */
26+ZIO* zmopen(ZIO* z, char* b, int size); /* memory */
27+
28+int zread(ZIO* z, void* b, int n); /* read next n bytes */
29+
30+#define zgetc(z) (--(z)->n>=0 ? ((int)*(z)->p++): (z)->filbuf(z))
31+#define zungetc(z) (++(z)->n,--(z)->p)
32+
33+
34+
35+/* --------- Private Part ------------------ */
36+
37+#define ZBSIZE 256 /* buffer size */
38+
39+struct zio {
40+ int n; /* bytes still unread */
41+ unsigned char* p; /* current position in buffer */
42+ int (*filbuf)(ZIO* z);
43+ void* u; /* additional data */
44+ unsigned char buffer[ZBSIZE]; /* buffer */
45+};
46+
47+
48+#endif
test/README+3−4
@@ -1,7 +1,6 @@
11 These are simple tests for Lua. Some of them contain useful code.
22 They are meant to be run to make sure Lua is ok and also to be read, to see
33 how Lua programs can look like.
4−In the directory examples/, there is more useful code, such as a library for
5−complex arithmetic (a good example of fallbacks for overloading and redefinition
6−of primitive functions), and a library for PostScript output. Both libraries
7−include simple examples.
4+
5+In the directory examples/, there is more useful code: a library for PostScript
6+output and a database for a fake web site.
test/array.lua+3−3
@@ -2,14 +2,14 @@ $debug · 1 unmodified line
22
33 a = {}
44
5−i=0
5+local i=0
66 while i<10 do
77 a[i] = i*i
88 i=i+1
99 end
1010
11−r,v = next(a,nil)
11+local r,v = next(a,nil)
1212 while r ~= nil do
13− print ("array["..r.."] = "..v)
13+ write ("array[",r,"] = ",v,"\n")
1414 r,v = next(a,r)
1515 end
test/bisect.lua+2−2
@@ -2,7 +2,7 @@ $debug · 1 unmodified line
22 -- bisection method for solving non-linear equations
33
44 function bisect(f,a,b,fa,fb)
5−print(n.." a="..a.." fa="..fa.." b="..b.." fb="..fb)
5+ write(n," a=",a," fa=",fa," b=",b," fb=",fb,"\n")
66 local c=(a+b)/2
77 if abs(a-b)<delta then return c end
88 n=n+1
@@ -15,7 +15,7 @@ function solve(f,a,b) · 6 unmodified lines
1515 delta=1e-6 -- tolerance
1616 n=0
1717 local z=bisect(f,a,b,f(a),f(b))
18− print(format("after %d steps, root is %.10g",n,z))
18+ write(format("after %d steps, root is %.10g\n",n,z))
1919 end
2020
2121 -- our function
test/dump.lua+15−11
@@ -1,17 +1,19 @@
11 -- dump global environment
22
33 function savevar (n,v)
4− if v == nil then return end;
5− if type(v) == "number" then print(n.."="..v) return end
6− if type(v) == "string" then print(n.."='"..v.."'") return end
7− if type(v) == "table" then
4+ if v == nil then return end
5+ if type(v)=="userdata" or type(v)=="function" then return end
6+ -- if type(v)=="userdata" or type(v)=="function" then write("\t-- ") end
7+ write(n,"=")
8+ if type(v) == "string" then write(format("%q",v))
9+ elseif type(v) == "table" then
810 if v.__visited__ ~= nil then
9− print(n .. "=" .. v.__visited__);
11+ write(v.__visited__)
1012 else
11− print(n.."={}")
12− v.__visited__ = n;
13− local r,f;
14− r,f = next(v,nil);
13+ write("{}\n")
14+ v.__visited__ = n
15+ local r,f
16+ r,f = next(v,nil)
1517 while r ~= nil do
1618 if r ~= "__visited__" then
1719 if type(r) == 'string' then
@@ -23,13 +25,15 @@ function savevar (n,v) · 5 unmodified lines
2325 r,f = next(v,r)
2426 end
2527 end
26− end
28+ else write(tostring(v)) end
29+ write("\n")
2730 end
2831
2932 function save ()
33+ print("\n-- global environment")
3034 local n,v = nextvar(nil)
3135 while n ~= nil do
32− savevar(n,v);
36+ savevar(n,v)
3337 n,v = nextvar(n)
3438 end
3539 end
test/examples/complex/complex.lua+0−82
@@ -1,82 +0,0 @@
1−-- complex.lua
2−-- complex arithmetic package for lua
3−-- Luiz Henrique de Figueiredo (lhf@csg.uwaterloo.ca)
4−-- 24 Oct 95
5−$debug
6−
7−Complex={type="package"}
8−
9−function complex(x,y)
10− return { re=x, im=y, type="complex" }
11−end
12−
13−function Complex.conj(x,y)
14− return complex(x.re,-x.im)
15−end
16−
17−function Complex.norm2(x)
18− local n=Complex.mul(x,Complex.conj(x))
19− return n.re
20−end
21−
22−function Complex.abs(x)
23− return sqrt(Complex.norm2(x))
24−end
25−
26−function Complex.add(x,y)
27− return complex(x.re+y.re,x.im+y.im)
28−end
29−
30−function Complex.sub(x,y)
31− return complex(x.re-y.re,x.im-y.im)
32−end
33−
34−function Complex.mul(x,y)
35− return complex(x.re*y.re-x.im*y.im,x.re*y.im+x.im*y.re)
36−end
37−
38−function Complex.div(x,y)
39− local z=x*Complex.conj(y)
40− local t=Complex.norm2(y)
41− z.re=z.re/t
42− z.im=z.im/t
43− return z
44−end
45−
46−function Complex.fallback(x,y,op)
47− if type(x)=="number" then x=complex(x,0) end
48− if type(y)=="number" then y=complex(y,0) end
49− if type(x)=="complex" and type(y)=="complex" then
50− return Complex[op](x,y)
51− else
52− return Complex.oldfallback(x,y)
53− end
54−end
55−
56−function Complex.newtype(x)
57− local t=Complex.oldtype(x)
58− if t=="table" and x.type then return x.type else return t end
59−end
60−
61−function Complex.print(x)
62− if type(x)~="complex" then
63− Complex.oldprint(x)
64− else
65− local s
66− if x.im>=0 then s="+" else s="" end
67− Complex.oldprint(x.re..s..x.im.."I")
68− end
69−end
70−
71−function Complex.newabs(x)
72− if type(x)~="complex" then
73− return Complex.oldabs(x)
74− else
75− return Complex.abs(x)
76− end
77−end
78−
79−Complex.oldfallback=setfallback("arith",Complex.fallback)
80−Complex.oldtype=type type=Complex.newtype
81−Complex.oldprint=print print=Complex.print
82−Complex.oldabs=abs abs=Complex.abs
test/examples/complex/mandel.lua+0−25
@@ -1,25 +0,0 @@
1−dofile("complex.lua")
2−
3−xmin=-2 xmax=2 ymin=-2 ymax=2
4−d=.125
5−
6−function level(x,y)
7− local c=complex(x,y)
8− local l=0
9− local z=c
10− repeat
11− z=z*z+c
12− l=l+1
13− until abs(z)>2 or l>255
14− return l-1
15−end
16−
17−x=xmin
18−while x<xmax do
19− y=ymin
20− while y<ymax do
21− print(level(x,y))
22− y=y+d
23− end
24− x=x+d
25−end
test/examples/www/README+10−0
@@ -0,0 +1,10 @@
1+This directory contains a database for a fake web site.
2+Standard web page for the persons listed in db.lua are
3+creared automatically from template.html with staff.lua.
4+(See http://www.cos.ufrj.br for a real web site was created in this way.)
5+
6+To run, type lua db.lua.
7+
8+This example is meant to show the power of gsub and Lua declarative constructs,
9+which have been combined here into a "mail-merge" application.
10+
test/examples/www/db.lua+46−0
@@ -0,0 +1,46 @@
1+dofile("staff.lua")
2+
3+global{
4+ ROOT='http://www.tecgraf.puc-rio.br',
5+ EMAIL="|LOGIN|@tecgraf.puc-rio.br",
6+ WWW="|ROOT|/~|LOGIN|",
7+ webmast='|ROOT|/webmaster.html',
8+ TECGRAF='<A HREF="http://www.tecgraf.puc-rio.br">TeCGraf</A>',
9+ CS='<A HREF="http://www.inf.puc-rio.br">Computer Science Department</A>',
10+ PUCRIO='<A HREF="http://www.puc-rio.br">PUC-Rio</A>',
11+}
12+
13+staff{
14+DI="inf.puc-rio.br",
15+ LOGIN="roberto",
16+ NAME="Roberto Ierusalimschy",
17+ TITLE="D.Sc., |PUCRIO|, 1990",
18+ POSITION="Associate Professor, |CS|, |PUCRIO|",
19+ AREAS="Programming Languages, Object Oriented Programming",
20+ EMAIL="|LOGIN|@|DI|",
21+ WWW="http://www.|DI|/~|LOGIN|",
22+}
23+
24+staff{
25+PCG="http://www.graphics.cornell.edu",
26+ LOGIN="celes",
27+ NAME="Waldemar Celes",
28+ TITLE="D.Sc., |PUCRIO|, 1995",
29+ POSITION="Postdoctoral Associate at "..
30+'<A HREF="|PCG|">Program of Computer Graphics</A>, '..
31+'<A HREF="http://www.cornell.edu">Cornell University</A>',
32+ WWW="|PCG|/~celes/",
33+ AREAS="Image segmentation and 3D reconstruction; "
34+.."Physical simulation and educational software;"
35+.."Geometric modeling and topological data structures;"
36+.."Extension languages and customizable applications"
37+}
38+
39+staff{
40+ LOGIN="lhf",
41+ NAME="Luiz Henrique de Figueiredo",
42+ TITLE='D.Sc., <A HREF="http://www.impa.br">IMPA</A>, 1992',
43+ POSITION='Visiting Research fellow at <A HREF="http://www.lncc.br">LNCC</A>; Consultant at |TECGRAF|',
44+ AREAS="Geometric modeling; Software tools",
45+ WWW="http://www2.lncc.br/~lhf/",
46+}
test/examples/www/staff.lua+37−0
@@ -0,0 +1,37 @@
1+$debug
2+
3+readfrom("template.html")
4+TEMPLATE=read(".*")
5+readfrom()
6+
7+PAT="|(%a%a*)|"
8+
9+GLOBAL={
10+ DATE=date("%d/%m/%Y %T"),
11+}
12+
13+function get(i)
14+ if LOCAL[i] then return LOCAL[i]
15+ elseif GLOBAL[i] then return GLOBAL[i]
16+ else return "<BLINK>?"..i.."?</BLINK>" end
17+end
18+
19+function global(t)
20+ local i,v=next(t,nil)
21+ while i do
22+ GLOBAL[i]=v
23+ i,v=next(t,i)
24+ end
25+end
26+
27+function staff(t)
28+ LOCAL=t
29+ if t.AREAS then t.AREAS=gsub(t.AREAS,"[;,] *","\n<LI>") end
30+ local p,n=TEMPLATE
31+ if t.WWW=="" then p=gsub(p,'<A HREF="|WWW|">|NAME|</A>',"|NAME|") end
32+ repeat p,n=gsub(p,PAT,get) until n==0
33+ write(t.LOGIN,"\n")
34+ writeto(t.LOGIN..".html")
35+ write(p)
36+ writeto()
37+end
test/examples/www/template.html+29−0
@@ -0,0 +1,29 @@
1+<HTML>
2+<HEAD>
3+<TITLE>
4+Imaginary web site:Staff:|LOGIN|
5+</TITLE>
6+</HEAD>
7+
8+<BODY>
9+<H1><A HREF="|WWW|">|NAME|</A></H1>
10+<A HREF="mailto:|EMAIL|">|EMAIL|</A>
11+<P>
12+
13+|POSITION|<BR>
14+|TITLE|<P>
15+
16+<H2>Research areas</H2>
17+<UL>
18+<LI>|AREAS|
19+</UL>
20+<P>
21+
22+<HR>
23+Last update in |DATE| by
24+<A HREF="|webmast|">websmaster</A>.
25+<P>
26+
27+</BODY>
28+
29+</HTML>
test/hello.lua+1−1
@@ -1,3 +1,3 @@
11 -- the first program in every language
22
3−print("hello world, from Lua!")
3+write("hello world, from Lua!\n")
test/loop.lua+0−6
@@ -1,6 +0,0 @@
1−$debug
2−i=0
3−repeat
4− print(i)
5− i=i+1
6−until i>10
test/lua+1−0
@@ -0,0 +1 @@
1+../bin/lua
test/luac+1−0
@@ -0,0 +1 @@
1+../bin/luac
test/sort.lua+1−1
@@ -28,7 +28,7 @@ function selectionsort(a,n) · 27 unmodified lines
2828 end
2929
3030 function show(m,x)
31− write(m.."\n\t")
31+ write(m,"\n\t")
3232 local i=0
3333 while x[i] do
3434 write(x[i])
test/split.lua+0−18
@@ -1,18 +0,0 @@
1−function split (s)
2− local n = 1
3− local f = strfind(s,"/")
4− while f do
5− n = n+f
6− f = strfind(strsub(s,n),"/")
7− end
8− return strsub(s,1,n-1), strsub(s,n)
9−end
10−
11−
12−function test(s)
13− local path, filename = split(s)
14− print(s .. "=[".. path.."]+["..filename.."]")
15−end
16−
17−test("a:/lua/obj/lua.c")
18−test("lua.lib")
test/type.lua+0−37
@@ -1,37 +0,0 @@
1−$debug
2−
3−function check (object, class)
4− local v = next(object,nil);
5− while v ~= nil do
6− if class[v] == nil then
7− print("unknown field: " .. v)
8− elseif type(object[v]) ~= class[v].type then
9− print("wrong type for field " .. v)
10− end
11− v = next(object,v);
12− end
13− v = next(class,nil);
14− while v ~= nil do
15− if object[v] == nil then
16− if class[v].default ~= nil then
17− object[v] = class[v].default
18− else
19− print("field "..v.." not initialized")
20− end
21− end
22− v = next(class,v);
23− end
24−end
25−
26−typeblock = {x = {default = 0, type = "number"},
27− y = {default = 0, type = "number"},
28− name = {type = "string"}
29− }
30−
31−function block(t) check(t,typeblock) end
32−
33−block{ x = 7, name = "3"}
34−block{ x = "7", name = "3"}
35−block{ x = 7, name = 3}
36−block{ x = 7}
37−block{ x = 7, name = "3", bogus=3.14}