basic support for builtins
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.1. */
2
3 /* Skeleton implementation for Bison GLR parsers in C
4
5 Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C GLR parser skeleton written by Paul Hilfinger. */
34
35 /* Identify Bison output. */
36 #define YYBISON 1
37
38 /* Bison version. */
39 #define YYBISON_VERSION "3.1"
40
41 /* Skeleton name. */
42 #define YYSKELETON_NAME "glr.c"
43
44 /* Pure parsers. */
45 #define YYPURE 1
46
47
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
50
51 #include "php_psi_stdinc.h"
52
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
54
55
56 /* Substitute the variable and function names. */
57 #define yyparse psi_parser_proc_parse
58 #define yylex psi_parser_proc_lex
59 #define yyerror psi_parser_proc_error
60 #define yydebug psi_parser_proc_debug
61
62
63 /* First part of user declarations. */
64
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
66
67 # ifndef YY_NULLPTR
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
70 # else
71 # define YY_NULLPTR 0
72 # endif
73 # endif
74
75 #include "parser_proc.h"
76
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
81 #else
82 # define YYERROR_VERBOSE 1
83 #endif
84
85 /* Default (constant) value used for initialization for null
86 right-hand sides. Unlike the standard yacc.c template, here we set
87 the default value of $$ to a zeroed-out value. Since the default
88 value is undefined, this behavior is technically correct. */
89 static YYSTYPE yyval_default;
90
91 /* Copy the second part of user declarations. */
92
93 #line 94 "src/parser_proc.c" /* glr.c:263 */
94 /* Unqualified %code blocks. */
95 #line 5 "src/parser_proc_grammar.y" /* glr.c:264 */
96
97 #include <assert.h>
98 #include <stdarg.h>
99
100 #include "plist.h"
101 #include "parser.h"
102
103 #define YYDEBUG 1
104 #define PSI_PARSER_PROC_DEBUG 1
105
106 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
107 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
108
109 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
110 {
111 assert(strct);
112 if (!P->structs) {
113 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
114 }
115 P->structs = psi_plist_add(P->structs, &strct);
116 }
117 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
118 {
119 assert(u);
120 if (!P->unions) {
121 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
122 }
123 P->unions = psi_plist_add(P->unions, &u);
124 }
125 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
126 {
127 assert(e);
128 if (!P->enums) {
129 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
130 }
131 P->enums = psi_plist_add(P->enums, &e);
132 }
133 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
134 {
135 assert(def);
136 if (!P->types) {
137 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
138 }
139 P->types = psi_plist_add(P->types, &def);
140 }
141 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
142 assert(cnst);
143 if (!P->consts) {
144 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
145 }
146 P->consts = psi_plist_add(P->consts, &cnst);
147
148 }
149 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
150 assert(decl);
151
152 if (psi_decl_is_blacklisted(decl->func->var->name->val)) {
153 psi_decl_free(&decl);
154 return;
155 }
156
157 if (!P->decls) {
158 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
159 }
160 P->decls = psi_plist_add(P->decls, &decl);
161 }
162 static inline void psi_parser_proc_add_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
163 assert(list);
164 if (!P->vars) {
165 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
166 }
167 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
168 free(list);
169 }
170 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
171 assert(impl);
172 if (!P->impls) {
173 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
174 }
175 P->impls = psi_plist_add(P->impls, &impl);
176 }
177
178 /* end code */
179
180 #line 181 "src/parser_proc.c" /* glr.c:264 */
181
182 #include <stdio.h>
183 #include <stdlib.h>
184 #include <string.h>
185
186 #ifndef YY_
187 # if defined YYENABLE_NLS && YYENABLE_NLS
188 # if ENABLE_NLS
189 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
190 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
191 # endif
192 # endif
193 # ifndef YY_
194 # define YY_(Msgid) Msgid
195 # endif
196 #endif
197
198 #ifndef YYFREE
199 # define YYFREE free
200 #endif
201 #ifndef YYMALLOC
202 # define YYMALLOC malloc
203 #endif
204 #ifndef YYREALLOC
205 # define YYREALLOC realloc
206 #endif
207
208 #define YYSIZEMAX ((size_t) -1)
209
210 #ifdef __cplusplus
211 typedef bool yybool;
212 #else
213 typedef unsigned char yybool;
214 #endif
215 #define yytrue 1
216 #define yyfalse 0
217
218 #ifndef YYSETJMP
219 # include <setjmp.h>
220 # define YYJMP_BUF jmp_buf
221 # define YYSETJMP(Env) setjmp (Env)
222 /* Pacify clang. */
223 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
224 #endif
225
226 #ifndef YY_ATTRIBUTE
227 # if (defined __GNUC__ \
228 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
229 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
230 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
231 # else
232 # define YY_ATTRIBUTE(Spec) /* empty */
233 # endif
234 #endif
235
236 #ifndef YY_ATTRIBUTE_PURE
237 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
238 #endif
239
240 #ifndef YY_ATTRIBUTE_UNUSED
241 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
242 #endif
243
244 #if !defined _Noreturn \
245 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
246 # if defined _MSC_VER && 1200 <= _MSC_VER
247 # define _Noreturn __declspec (noreturn)
248 # else
249 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
250 # endif
251 #endif
252
253 /* Suppress unused-variable warnings by "using" E. */
254 #if ! defined lint || defined __GNUC__
255 # define YYUSE(E) ((void) (E))
256 #else
257 # define YYUSE(E) /* empty */
258 #endif
259
260 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
261 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
262 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
263 _Pragma ("GCC diagnostic push") \
264 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
265 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
266 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
267 _Pragma ("GCC diagnostic pop")
268 #else
269 # define YY_INITIAL_VALUE(Value) Value
270 #endif
271 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
272 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
273 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
274 #endif
275 #ifndef YY_INITIAL_VALUE
276 # define YY_INITIAL_VALUE(Value) /* Nothing. */
277 #endif
278
279
280 #ifndef YYASSERT
281 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
282 #endif
283
284 /* YYFINAL -- State number of the termination state. */
285 #define YYFINAL 166
286 /* YYLAST -- Last index in YYTABLE. */
287 #define YYLAST 8213
288
289 /* YYNTOKENS -- Number of terminals. */
290 #define YYNTOKENS 140
291 /* YYNNTS -- Number of nonterminals. */
292 #define YYNNTS 142
293 /* YYNRULES -- Number of rules. */
294 #define YYNRULES 637
295 /* YYNRULES -- Number of states. */
296 #define YYNSTATES 950
297 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
298 #define YYMAXRHS 16
299 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
300 accessed by $0, $-1, etc., in any rule. */
301 #define YYMAXLEFT 0
302
303 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
304 #define YYUNDEFTOK 2
305 #define YYMAXUTOK 394
306
307 #define YYTRANSLATE(YYX) \
308 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
309
310 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
311 static const unsigned char yytranslate[] =
312 {
313 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
315 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
339 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
340 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
341 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
342 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
343 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
344 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
345 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
346 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
347 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
348 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
349 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
350 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
351 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
352 135, 136, 137, 138, 139
353 };
354
355 #if YYDEBUG
356 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
357 static const unsigned short yyrline[] =
358 {
359 0, 408, 408, 408, 408, 408, 408, 408, 408, 408,
360 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
361 409, 409, 409, 409, 410, 410, 410, 410, 410, 410,
362 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
363 410, 410, 410, 410, 410, 410, 411, 411, 411, 411,
364 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
365 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
366 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
367 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
368 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
369 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
370 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
371 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
372 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
373 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
374 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
375 411, 411, 411, 411, 412, 412, 412, 412, 412, 412,
376 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
377 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
378 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
379 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
380 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
381 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
382 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
383 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
384 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
385 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
386 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
387 416, 417, 420, 421, 424, 425, 426, 427, 433, 437,
388 440, 443, 446, 452, 455, 458, 461, 464, 470, 476,
389 479, 485, 508, 512, 516, 521, 525, 529, 533, 540,
390 541, 545, 546, 550, 551, 552, 556, 557, 561, 562,
391 566, 567, 568, 572, 573, 577, 582, 587, 592, 601,
392 604, 607, 608, 614, 619, 627, 630, 634, 638, 645,
393 649, 653, 657, 662, 673, 684, 689, 694, 698, 704,
394 715, 718, 722, 730, 734, 740, 744, 751, 755, 759,
395 766, 767, 768, 772, 786, 792, 795, 801, 804, 810,
396 811, 819, 830, 839, 851, 852, 856, 866, 875, 887,
397 888, 891, 897, 898, 902, 906, 910, 915, 920, 928,
398 929, 930, 933, 939, 942, 945, 951, 952, 956, 959,
399 962, 968, 971, 974, 982, 994, 997, 1000, 1003, 1010,
400 1013, 1023, 1026, 1029, 1032, 1033, 1034, 1038, 1041, 1044,
401 1055, 1062, 1072, 1075, 1081, 1084, 1091, 1127, 1130, 1136,
402 1139, 1145, 1151, 1152, 1153, 1154, 1155, 1156, 1160, 1164,
403 1165, 1169, 1170, 1174, 1175, 1182, 1183, 1187, 1194, 1205,
404 1212, 1220, 1244, 1273, 1280, 1291, 1337, 1378, 1393, 1396,
405 1399, 1405, 1408, 1414, 1429, 1432, 1461, 1469, 1497, 1502,
406 1510, 1520, 1530, 1533, 1537, 1543, 1557, 1574, 1577, 1583,
407 1590, 1597, 1605, 1616, 1623, 1626, 1632, 1637, 1645, 1649,
408 1653, 1657, 1661, 1665, 1672, 1676, 1680, 1684, 1688, 1692,
409 1698, 1702, 1709, 1712, 1724, 1728, 1732, 1739, 1752, 1765,
410 1778, 1781, 1788, 1789, 1793, 1796, 1799, 1802, 1808, 1812,
411 1819, 1822, 1825, 1840, 1841, 1842, 1843, 1847, 1850, 1856,
412 1857, 1863, 1866, 1872, 1873, 1877, 1878, 1888, 1891, 1898,
413 1903, 1908, 1918, 1921, 1927, 1930, 1936, 1943, 1950, 1957,
414 1958, 1962, 1963, 1964, 1965, 1966, 1970, 1971, 1972, 1973,
415 1977, 1980, 1986, 1989, 1992, 1995, 1998, 2004, 2008, 2016,
416 2017, 2021, 2028, 2031, 2034, 2037, 2041, 2044, 2050, 2054,
417 2062, 2069, 2074, 2082, 2090, 2091, 2092, 2093, 2094, 2095,
418 2096, 2097, 2098, 2099, 2103, 2106, 2112, 2115, 2121, 2122,
419 2126, 2129, 2135, 2138, 2144, 2151, 2155, 2162, 2165, 2168,
420 2174, 2181, 2184, 2187, 2194, 2199, 2207, 2208, 2209, 2210,
421 2211, 2212, 2213, 2214, 2218, 2221, 2227, 2230, 2236, 2243,
422 2244, 2248, 2255, 2258, 2264, 2272, 2275, 2281
423 };
424 #endif
425
426 #if YYDEBUG || YYERROR_VERBOSE || 1
427 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
428 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
429 static const char *const yytname[] =
430 {
431 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
432 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
433 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
434 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
435 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
436 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
437 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
438 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
439 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
440 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
441 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
442 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
443 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
444 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
445 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
446 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
447 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
448 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
449 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
450 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
451 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
452 "$accept", "binary_op_token", "unary_op_token", "name_token",
453 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
454 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
455 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
456 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_macro_decl",
457 "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_decl_tokens",
458 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
459 "cpp_macro_call_arg_list", "constant", "impl_def_val",
460 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
461 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
462 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
463 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
464 "decl_int_type", "int_signed_types", "signed_short_types",
465 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
466 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
467 "ignored_decl", "ignored_decl_qualifiers", "ignored_decl_body",
468 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
469 "decl_func_body", "decl_functor_body", "decl_anon_functor_body",
470 "decl_functor", "decl_anon_functor", "decl_func", "decl_args",
471 "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var", "decl_union",
472 "decl_struct", "decl_struct_args", "struct_args_block", "struct_args",
473 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
474 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
475 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
476 "struct_name", "optional_name", "optional_comma", "decl_layout",
477 "align_and_size", "array_size", "array_qualifier_token", "indirection",
478 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
479 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
480 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
481 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
482 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
483 "let_callback", "let_func", "let_func_token", "let_func_exps",
484 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
485 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
486 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
487 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
488 "byref", YY_NULLPTR
489 };
490 #endif
491
492 #define YYPACT_NINF -731
493 #define YYTABLE_NINF -636
494
495 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
496 STATE-NUM. */
497 static const short yypact[] =
498 {
499 529, -731, -731, -731, -731, -731, 128, -731, -731, -731,
500 582, -731, -731, -731, 555, 722, 7975, 7975, 7975, 348,
501 77, -23, 80, -731, 281, -731, 132, 529, -731, -731,
502 -731, -731, -731, 7120, 109, -731, -731, -731, -731, 409,
503 161, -731, -731, -731, -731, 493, 26, -731, -731, 30,
504 96, 126, -731, -731, -731, -731, 125, -731, 142, -731,
505 -731, -731, 7975, 7975, 7975, -731, -731, -731, 145, -731,
506 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
507 -731, 861, -731, -731, -731, -731, 151, 987, 987, 33,
508 -731, 987, 6894, 7975, 7975, 1728, 154, -731, -731, -731,
509 165, 7975, 164, 164, -731, -731, -731, -731, -731, -731,
510 1353, -731, -731, -731, -731, -731, -731, -731, -731, -731,
511 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
512 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
513 -731, 114, -731, -731, 114, 181, -731, -731, -731, -731,
514 -731, -731, 201, 192, -731, 214, -731, 218, -731, 234,
515 -731, 1841, 722, 138, -731, 26, -731, -731, 46, 224,
516 -731, -731, 232, 7975, 17, -731, -731, -731, 261, -731,
517 101, -731, -731, -731, 507, -731, 233, 244, 248, 1954,
518 1954, 7975, 230, -731, -731, -731, 7459, 26, -731, 1693,
519 -731, -731, -731, -731, -731, -731, -731, -731, 1806, 1919,
520 2032, 2145, -731, 2258, 2371, -731, -731, -731, 2484, -731,
521 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
522 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
523 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
524 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
525 -731, 2597, 2710, 2823, 2936, 3049, -731, -731, -731, -731,
526 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
527 -731, 3162, -731, 3275, 3388, 3501, 3614, 3727, 3840, -731,
528 3953, -731, -731, 4066, 4179, 4292, 4405, 4518, 4631, 4744,
529 4857, 4970, 5083, 5196, 5309, 5422, 5535, 5648, 5761, -731,
530 -731, -731, -731, -731, -731, -731, 5874, 987, -731, -731,
531 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
532 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
533 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
534 -731, -731, -731, -731, -731, -731, -731, -731, -731, 987,
535 -731, -731, -731, -731, -731, -731, -731, 116, 6894, -731,
536 -731, -731, -731, 7572, 6894, 250, 8076, -731, 111, -731,
537 169, -731, -731, -731, -731, 245, 247, 247, 91, 91,
538 6103, 256, -731, 230, 252, 266, -731, 268, -731, -731,
539 -731, 1467, -731, 255, 224, -731, -731, -731, -731, -731,
540 301, -731, -731, 1239, -731, 283, -731, 52, 7120, -731,
541 279, 173, 284, -731, -731, 175, 277, 286, -731, 7459,
542 6555, 7459, 7975, 7459, -731, -731, 129, -731, -731, -731,
543 -731, -731, 6781, -731, 287, -731, 7975, 299, -731, 317,
544 8076, 307, -731, -731, -731, -731, 755, 331, -731, 7108,
545 7975, -731, -731, 1580, -731, -731, -731, -731, -731, -731,
546 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
547 -731, -731, 6894, 6894, 323, 1420, 7459, 7459, -731, -731,
548 -731, -731, 153, -731, -731, -731, -731, -731, 5990, 6781,
549 325, -731, 307, -731, 8100, -731, -731, 6103, 179, 427,
550 -731, -731, -731, -731, -731, -731, 8052, 320, 7685, -731,
551 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
552 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
553 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
554 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
555 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
556 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
557 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
558 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
559 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
560 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
561 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
562 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
563 1113, -731, 76, 56, 1954, 224, 308, 493, 224, 309,
564 6781, 7975, 338, 346, 356, 8100, 351, 357, -731, 360,
565 369, 354, 363, 122, -731, 370, 376, -731, -731, -731,
566 769, 7459, -731, 7744, -731, 255, 375, -731, -731, -731,
567 378, -731, 8076, 379, 388, 7676, -731, 398, 1728, 389,
568 -731, -731, 7007, 229, 7975, 164, 164, -731, -731, 36,
569 38, 47, 7225, -731, -731, 6781, 6781, 394, -731, -731,
570 -731, -731, -731, 391, 186, -731, 80, -731, -731, -731,
571 -731, -731, 255, 180, -731, -731, -731, 255, -731, 196,
572 -731, 399, -731, -731, 403, 8100, -731, -731, 6216, -731,
573 6555, -731, 7459, -731, 80, 7459, -731, 7975, 7857, -731,
574 -731, -731, -731, -731, 405, 393, -731, -731, -731, -731,
575 6894, 6894, 411, -731, 71, 412, -731, 389, 247, 247,
576 6781, -731, 7838, -731, -731, 641, 413, 641, 407, 7975,
577 1954, -731, 7233, 224, 392, 224, 224, 158, 350, 238,
578 431, 8100, -731, -731, -731, -731, 434, 6668, -731, 433,
579 7459, 219, -731, 436, 287, 440, 987, 7916, 8076, 8124,
580 449, 441, 443, 7346, 446, 412, 7459, 7459, -731, 6781,
581 -731, 641, -731, 80, 6103, 448, 452, -731, -731, 453,
582 -731, -731, 431, -731, -731, -731, 7857, -731, 455, 6781,
583 80, -731, 6329, 456, 460, -731, 395, -731, -731, -731,
584 462, 458, 471, 389, 472, -731, -731, 474, 8148, -731,
585 48, -731, 476, 484, 224, 488, 80, 7563, 489, 491,
586 -731, 492, -731, -731, 61, -731, 495, 494, -731, 7346,
587 -731, 506, 1954, 500, -731, 445, 511, 6781, 6216, 512,
588 -731, 6555, -731, -731, 515, 519, 523, 389, -731, 516,
589 520, 1954, 276, 6442, 7442, 346, -731, -731, -731, 518,
590 6668, -731, -731, 522, 521, -731, 526, 524, 530, 534,
591 535, 528, -731, -731, 6216, -731, 542, -731, 641, 537,
592 224, 80, 538, 6555, -731, 539, -731, 1954, -731, 541,
593 -731, -731, -731, 543, 6442, 224, 548, -731, 549, -731
594 };
595
596 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
597 Performed when YYTABLE does not specify something else to do. Zero
598 means the default is an error. */
599 static const unsigned short yydefact[] =
600 {
601 280, 401, 398, 402, 396, 397, 399, 393, 394, 392,
602 391, 383, 285, 284, 0, 0, 0, 0, 510, 382,
603 0, 432, 635, 286, 0, 436, 0, 281, 282, 288,
604 287, 289, 293, 527, 0, 379, 385, 384, 390, 405,
605 417, 389, 290, 291, 292, 0, 422, 443, 445, 446,
606 0, 0, 457, 295, 294, 296, 0, 297, 0, 400,
607 395, 391, 0, 0, 0, 382, 437, 444, 427, 299,
608 310, 307, 309, 311, 312, 323, 320, 321, 318, 324,
609 319, 0, 322, 313, 314, 315, 0, 335, 335, 0,
610 303, 0, 0, 510, 510, 0, 0, 365, 370, 466,
611 369, 0, 518, 518, 33, 34, 35, 36, 37, 623,
612 584, 24, 42, 41, 40, 38, 39, 32, 31, 25,
613 29, 28, 26, 27, 43, 592, 591, 589, 587, 588,
614 590, 586, 585, 593, 30, 621, 619, 618, 620, 617,
615 616, 386, 44, 45, 387, 388, 507, 551, 552, 553,
616 554, 555, 0, 0, 548, 0, 433, 0, 637, 0,
617 636, 391, 0, 0, 434, 422, 1, 283, 533, 520,
618 381, 467, 0, 528, 529, 531, 380, 407, 411, 409,
619 413, 406, 403, 418, 405, 404, 0, 0, 0, 458,
620 458, 0, 0, 386, 387, 388, 0, 422, 71, 46,
621 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
622 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
623 67, 68, 69, 70, 161, 162, 72, 73, 74, 75,
624 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
625 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
626 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
627 111, 109, 110, 108, 106, 107, 112, 113, 114, 115,
628 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
629 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
630 163, 136, 137, 138, 139, 140, 141, 142, 143, 144,
631 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
632 155, 159, 156, 157, 158, 160, 0, 335, 305, 300,
633 46, 55, 56, 57, 58, 60, 61, 65, 109, 110,
634 108, 106, 107, 127, 129, 130, 131, 132, 133, 134,
635 163, 138, 139, 140, 141, 142, 143, 144, 145, 146,
636 147, 148, 149, 150, 151, 152, 153, 337, 308, 336,
637 301, 316, 317, 302, 304, 345, 346, 0, 0, 22,
638 23, 20, 21, 0, 0, 348, 306, 347, 386, 509,
639 387, 508, 366, 363, 371, 0, 0, 0, 0, 0,
640 0, 0, 298, 0, 0, 0, 435, 0, 536, 535,
641 534, 523, 469, 527, 520, 530, 532, 412, 408, 414,
642 415, 410, 419, 0, 431, 0, 420, 392, 527, 463,
643 0, 0, 460, 461, 464, 0, 486, 512, 484, 0,
644 635, 0, 0, 0, 629, 630, 0, 560, 563, 562,
645 564, 565, 0, 566, 428, 429, 0, 0, 424, 0,
646 327, 328, 325, 338, 506, 505, 0, 0, 501, 0,
647 0, 343, 340, 350, 2, 3, 4, 5, 6, 7,
648 8, 9, 10, 11, 13, 12, 14, 15, 16, 17,
649 18, 19, 0, 0, 0, 0, 0, 0, 472, 471,
650 473, 470, 497, 361, 362, 495, 494, 496, 0, 0,
651 0, 357, 359, 498, 358, 488, 499, 0, 0, 0,
652 364, 421, 497, 525, 526, 524, 0, 0, 0, 528,
653 468, 416, 189, 164, 165, 166, 167, 168, 169, 170,
654 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
655 181, 182, 183, 184, 185, 186, 187, 188, 277, 278,
656 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
657 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
658 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
659 220, 221, 227, 225, 226, 224, 222, 223, 228, 229,
660 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
661 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
662 250, 251, 279, 252, 253, 254, 255, 256, 257, 258,
663 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
664 269, 270, 271, 275, 272, 273, 274, 276, 441, 442,
665 0, 439, 0, 520, 458, 520, 0, 0, 520, 0,
666 0, 513, 0, 0, 0, 612, 0, 0, 611, 45,
667 0, 0, 0, 0, 632, 0, 0, 606, 537, 561,
668 0, 0, 426, 329, 425, 527, 0, 502, 504, 339,
669 0, 352, 353, 0, 351, 0, 341, 0, 0, 514,
670 374, 367, 375, 0, 376, 518, 518, 373, 372, 623,
671 24, 0, 0, 492, 356, 0, 0, 0, 538, 557,
672 558, 559, 556, 0, 0, 542, 635, 547, 549, 550,
673 522, 521, 527, 0, 438, 440, 423, 527, 465, 0,
674 449, 0, 462, 447, 0, 487, 485, 483, 0, 567,
675 635, 610, 0, 546, 635, 0, 631, 0, 607, 604,
676 628, 430, 330, 333, 0, 331, 503, 500, 344, 349,
677 0, 0, 0, 368, 0, 477, 474, 514, 0, 0,
678 0, 490, 0, 491, 355, 0, 0, 0, 544, 0,
679 458, 455, 0, 520, 0, 520, 520, 497, 0, 31,
680 30, 573, 578, 574, 576, 577, 44, 0, 613, 624,
681 0, 0, 633, 623, 609, 0, 335, 0, 354, 342,
682 0, 515, 0, 514, 0, 477, 378, 377, 489, 0,
683 539, 0, 543, 635, 0, 0, 0, 456, 453, 0,
684 450, 448, 0, 575, 598, 584, 607, 599, 0, 0,
685 635, 579, 635, 0, 0, 634, 0, 326, 332, 334,
686 0, 0, 0, 514, 478, 481, 475, 0, 493, 540,
687 0, 545, 0, 0, 520, 0, 635, 0, 594, 0,
688 626, 625, 614, 568, 0, 519, 0, 0, 479, 514,
689 476, 0, 458, 0, 454, 0, 0, 0, 0, 0,
690 615, 635, 622, 605, 0, 0, 0, 514, 482, 0,
691 0, 458, 0, 600, 0, 498, 596, 571, 569, 595,
692 0, 583, 627, 0, 0, 480, 0, 0, 0, 0,
693 0, 601, 602, 580, 0, 570, 0, 516, 0, 0,
694 520, 635, 0, 635, 597, 0, 541, 458, 451, 0,
695 581, 603, 517, 0, 600, 520, 0, 452, 0, 582
696 };
697
698 /* YYPGOTO[NTERM-NUM]. */
699 static const short yypgoto[] =
700 {
701 -731, -351, -73, -11, -47, -731, -731, -731, 547, -731,
702 -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
703 -731, -731, -86, -731, -281, -731, -731, -731, -476, -731,
704 -731, 421, -118, 41, -104, -179, -19, -5, -731, -731,
705 -731, 554, -731, -731, 416, -731, -731, -731, -731, -76,
706 -261, -731, -731, -181, -731, -731, 410, -731, -45, 573,
707 39, -3, 50, -731, -731, -731, -731, -182, -731, -44,
708 3, -33, -731, -731, 213, -349, -731, -210, -731, 9,
709 -731, -41, -369, -731, -66, -731, 150, -731, -446, -444,
710 166, -731, -709, -87, -380, -731, -375, -29, -731, 459,
711 -731, -731, 586, -731, -158, -683, -730, -731, -731, 620,
712 -731, 249, -373, -731, -283, -696, 220, -145, -731, -731,
713 -692, -731, -731, -254, -284, -731, -731, -731, -175, -731,
714 -408, -410, -413, -731, -731, -731, -731, -731, -731, -83,
715 -21, -698
716 };
717
718 /* YYDEFGOTO[NTERM-NUM]. */
719 static const short yydefgoto[] =
720 {
721 -1, 706, 499, 169, 357, 638, 26, 27, 28, 29,
722 30, 86, 87, 88, 89, 363, 90, 91, 92, 318,
723 754, 755, 358, 359, 376, 683, 684, 31, 500, 501,
724 32, 96, 689, 690, 691, 33, 34, 35, 36, 37,
725 38, 39, 40, 41, 182, 408, 411, 185, 42, 188,
726 502, 43, 197, 804, 44, 45, 639, 640, 641, 46,
727 47, 48, 99, 419, 50, 420, 51, 421, 422, 423,
728 424, 503, 53, 54, 489, 490, 693, 814, 854, 101,
729 427, 428, 655, 505, 506, 676, 458, 56, 102, 103,
730 146, 652, 765, 386, 402, 517, 172, 446, 174, 175,
731 400, 57, 58, 714, 715, 656, 716, 153, 717, 718,
732 719, 436, 437, 438, 906, 907, 908, 793, 794, 795,
733 142, 889, 909, 838, 920, 921, 439, 666, 805, 440,
734 922, 658, 143, 843, 871, 441, 442, 443, 663, 664,
735 660, 160
736 };
737
738 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
739 positive, shift that token. If negative, reduce the rule whose
740 number is the opposite. If YYTABLE_NINF, syntax error. */
741 static const short yytable[] =
742 {
743 171, 159, 360, 52, 173, 141, 144, 145, 425, 55,
744 418, 418, 98, 68, 170, 444, 387, 659, 100, 374,
745 659, 504, 657, 667, 520, 483, 377, 52, 518, 176,
746 52, 707, 516, 778, 317, 450, 55, 486, 487, 695,
747 797, 696, 792, 643, 364, 820, 796, 823, 52, 67,
748 49, 193, 194, 195, 388, 451, 97, 389, 815, 361,
749 49, -446, -466, 669, -466, -392, 168, -391, 22, -392,
750 316, -24, 743, 670, 49, 398, 11, 49, 109, 892,
751 770, 375, 378, 380, 186, -392, -392, 459, 727, 397,
752 384, 859, 98, 462, 401, 49, 811, 837, 100, 483,
753 156, 841, 674, 155, 855, 796, 812, 409, 483, 726,
754 410, 483, 881, 1, 2, 3, 4, 5, 6, 7,
755 8, 447, 488, -392, 158, -391, 9, 485, 189, 702,
756 703, 61, 166, 399, 65, 669, 382, 59, 504, 60,
757 778, 405, 454, 455, 878, -518, -386, -511, 456, 385,
758 -518, 187, 362, 746, 642, -446, 747, 868, 190, 98,
759 457, 191, 404, 445, 52, 100, 668, 183, 4, 5,
760 898, 135, 136, 137, 138, 139, 140, -457, 192, 196,
761 426, 319, 682, 886, -360, 383, -360, -360, 915, -497,
762 910, -497, -497, 62, 63, 64, 796, -457, 936, 385,
763 67, 685, 686, 97, -387, -511, 645, 646, 648, 649,
764 837, 49, 780, 781, 925, 391, 708, -511, 796, 776,
765 777, 429, 430, 431, 432, 433, 910, 434, 435, 783,
766 784, 452, 796, 1, 2, 3, 4, 5, 6, 7,
767 8, 390, 695, 374, 696, 392, 9, 695, 939, 696,
768 377, 61, 845, 671, 393, 834, 835, 394, 11, 379,
769 381, 396, 401, 728, 403, 730, 766, 407, 733, 413,
770 836, 429, 430, 431, 432, 433, 415, 434, 435, 416,
771 484, 735, 463, 485, 509, 1, 2, 3, 4, 5,
772 6, 7, 8, 834, 835, 374, 507, 510, 9, 511,
773 756, 374, 377, 161, 168, 375, 692, 521, 377, 448,
774 11, 644, 453, 93, 94, 18, 65, 650, 647, 701,
775 651, 671, 429, 430, 431, 432, 433, 659, 434, 435,
776 672, 483, 798, 674, 483, 483, 772, 773, 125, 126,
777 127, 128, 129, 130, 131, 132, 133, 779, 861, 673,
778 688, 147, 782, 678, 148, 687, 704, 375, 149, 721,
779 150, 151, 461, 375, 162, 62, 63, 64, 65, 791,
780 163, 152, 731, 734, 519, 737, 125, 126, 127, 128,
781 129, 130, 131, 132, 133, 171, 738, 739, 741, 173,
782 374, 740, 742, 743, 744, 745, 653, 377, 661, 170,
783 665, 818, 748, 828, 164, 830, 831, 749, 757, 374,
784 374, 758, 759, 177, 178, 179, 377, 377, 180, 816,
785 817, 662, 760, 762, 764, 774, 775, 807, 791, 659,
786 147, 181, 785, 148, 870, 404, 786, 149, 806, 150,
787 151, 709, 710, 711, 712, 810, 813, 824, 821, 680,
788 858, 675, 375, 697, 698, 504, 829, 483, 483, 832,
789 713, 894, 729, 839, 893, 418, 840, 842, 418, -608,
790 867, 375, 375, 846, 850, 852, 851, 856, 659, 808,
791 809, 862, 98, 912, 884, 863, 864, 866, 100, 872,
792 659, 873, 874, 876, 694, 875, 877, 1, 2, 3,
793 4, 5, 6, 7, 8, 880, 879, 723, 882, 692,
794 9, 177, 178, 179, 692, 61, 180, 883, 904, 791,
795 659, 885, 11, 888, 890, 941, 891, 895, 896, 181,
796 899, 659, 901, 1, 2, 3, 4, 5, 6, 7,
797 8, 791, 902, 903, 913, 911, 9, 742, 914, 916,
798 938, 10, 924, 917, 927, 791, 926, 929, 11, 12,
799 13, 928, 933, 930, 801, 947, 931, 935, 932, 937,
800 14, 940, 942, 944, 167, 767, 945, 62, 63, 64,
801 65, 948, 949, 395, 763, 69, 1, 2, 3, 4,
802 5, 6, 7, 8, 184, 725, 414, 165, 826, 9,
803 412, 418, 491, 732, 61, 857, 677, 157, 768, 769,
804 736, 11, 15, 16, 17, 18, 19, 20, 21, 822,
805 22, 70, 71, 72, 73, 74, 75, 76, 77, 78,
806 79, 80, 81, 406, 82, 83, 84, 85, 751, 154,
807 426, 934, 508, 833, 147, 23, 519, 148, 919, 654,
808 24, 149, 25, 150, 151, 709, 710, 711, 712, 171,
809 946, 865, 753, 173, 802, 0, 62, 63, 64, 65,
810 0, 0, 0, 170, 0, 0, 0, 0, 0, 0,
811 0, 0, 170, 384, 0, 98, 0, 374, 374, 0,
812 98, 100, 0, 519, 377, 377, 100, 694, 519, 0,
813 900, 0, 694, 418, 0, 66, 0, 0, 0, 799,
814 0, 0, 445, 0, 0, 445, 0, 0, 0, 918,
815 847, 0, 418, 800, 0, 0, 1, 2, 3, 4,
816 5, 6, 7, 8, 0, 0, 662, 0, 0, 9,
817 0, 0, 0, 0, 61, 0, 0, 0, 0, 375,
818 375, 11, 0, 0, 0, 943, 0, 0, 418, 1,
819 2, 3, 4, 5, 6, 7, 8, 844, 825, 0,
820 0, 723, 9, 0, 0, 0, 0, 61, 0, 0,
821 853, 454, 455, 697, 698, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 849, 0, 0, 457,
823 750, 0, 860, 445, 0, 0, 93, 94, 18, 65,
824 0, 464, 465, 466, 467, 468, 469, 470, 471, 472,
825 473, 474, 475, 476, 477, 478, 479, 480, 481, 0,
826 0, 0, 0, 0, 705, 0, 0, 0, 0, 62,
827 63, 64, 0, 95, 0, 0, 897, 0, 0, 0,
828 0, 0, 0, 0, 0, 905, 0, 0, 0, 0,
829 0, 198, 0, 0, 199, 200, 201, 202, 203, 204,
830 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
831 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
832 225, 905, 226, 227, 228, 229, 230, 231, 232, 233,
833 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
834 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
835 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
836 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
837 274, 0, 275, 0, 276, 277, 278, 279, 280, 281,
838 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
839 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
840 302, 303, 304, 305, 306, 307, 308, 309, 0, 0,
841 310, 0, 311, 312, 313, 314, 315, 198, 0, 0,
842 320, 200, 201, 202, 203, 204, 205, 206, 207, 321,
843 322, 323, 324, 212, 325, 326, 215, 216, 217, 327,
844 219, 220, 221, 222, 223, 224, 225, 0, 226, 227,
845 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
846 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
847 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
848 258, 259, 260, 328, 329, 330, 331, 332, 266, 267,
849 268, 269, 270, 271, 272, 273, 274, 0, 275, 0,
850 276, 277, 278, 279, 280, 333, 282, 334, 335, 336,
851 337, 338, 339, 289, 340, 291, 292, 341, 342, 343,
852 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
853 354, 355, 356, 309, 0, 0, 310, 0, 311, 312,
854 313, 314, 315, 522, 0, 0, 523, 524, 525, 526,
855 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
856 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
857 547, 548, 549, 0, 550, 551, 552, 553, 554, 413,
858 724, 555, 556, 557, 558, 559, 560, 561, 562, 563,
859 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
860 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
861 584, 585, 586, 587, 588, 589, 590, 591, 592, 593,
862 594, 595, 596, 0, 597, 0, 598, 599, 600, 601,
863 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
864 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
865 622, 623, 624, 625, 626, 627, 628, 629, 630, 631,
866 0, 0, 632, 0, 633, 634, 635, 636, 637, 522,
867 0, 0, 523, 524, 525, 526, 527, 528, 529, 530,
868 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
869 541, 542, 543, 544, 545, 546, 547, 548, 549, 0,
870 550, 551, 552, 553, 554, 413, 0, 555, 556, 557,
871 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
872 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
873 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
874 588, 589, 590, 591, 592, 593, 594, 595, 596, 0,
875 597, 0, 598, 599, 600, 601, 602, 603, 604, 605,
876 606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
877 616, 617, 618, 619, 620, 621, 622, 623, 624, 625,
878 626, 627, 628, 629, 630, 631, -584, 0, 632, 0,
879 633, 634, 635, 636, 637, -584, -584, -584, -584, 0,
880 -584, -584, 0, 0, 0, -584, 0, 0, 0, 0,
881 0, 0, -584, -584, -584, -584, -584, -584, -584, -584,
882 -584, -584, -584, -584, 0, -584, -584, -584, -584, -584,
883 -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
884 -584, -584, -584, 0, 0, 0, 0, 0, -584, -584,
885 -584, -584, -584, -584, 1, 2, 3, 4, 5, 6,
886 7, 8, 0, 0, 0, 0, 0, 9, 0, 0,
887 -584, -584, 61, -584, -584, -584, -584, -584, -584, 11,
888 -584, 0, 0, -584, -584, -584, -584, -584, -584, -584,
889 -584, -584, -584, -584, -584, -584, -584, -584, -584, 0,
890 104, 0, 0, 0, 0, 0, 0, 0, -584, 105,
891 106, 107, 108, 0, 109, 110, 512, 0, 0, 111,
892 495, 0, 496, 0, 497, 367, 513, 0, 0, 498,
893 0, 0, 0, 0, 93, 94, 18, 65, 0, 0,
894 0, 0, 0, 0, 369, 370, 168, 0, 0, 0,
895 0, 0, 0, 0, 0, 0, 0, 371, 372, 0,
896 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
897 0, 688, 0, 0, 0, 0, 0, 0, 0, 0,
898 0, 0, 0, 0, 514, 117, 0, 118, 119, 120,
899 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
900 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
901 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
902 0, 515, 105, 106, 107, 108, 0, 109, 110, 0,
903 0, 0, 111, 0, 0, 365, 0, 366, 367, 0,
904 0, 0, 368, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 369, 370, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
907 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
908 116, 0, 0, 0, 0, 0, 0, 0, 373, 0,
909 0, 0, 0, 0, 0, 0, 0, 0, 117, 0,
910 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
911 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
912 135, 136, 137, 138, 139, 140, -33, 0, 0, 681,
913 0, 0, 0, 0, 0, -33, -33, -33, -33, 0,
914 -33, -33, 0, 0, 0, -33, 0, 0, -33, -33,
915 -33, -33, 0, 0, 0, -33, 0, 0, 0, 0,
916 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
917 -33, -33, 0, 0, 0, 9, 0, 0, 0, 0,
918 61, 0, 0, -33, -33, 0, 0, 11, 0, -33,
919 -33, -33, -33, -33, 0, 0, 0, 0, 0, 0,
920 0, -33, 0, 0, 0, 0, 0, 0, 0, 0,
921 0, -33, 0, -33, -33, -33, -33, -33, -33, 0,
922 -33, 0, 0, -33, -33, -33, -33, -33, -33, -33,
923 -33, -33, -33, -33, -33, -33, -33, -33, -33, -34,
924 0, -33, 93, 94, 18, 65, 0, 0, -34, -34,
925 -34, -34, 0, -34, -34, 0, 0, 0, -34, 0,
926 0, -34, -34, -34, -34, 0, 0, 0, -34, 0,
927 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
928 6, 7, 8, -34, -34, 0, 0, 0, 9, 0,
929 0, 0, 0, 61, 0, 0, -34, -34, 0, 0,
930 11, 0, -34, -34, -34, -34, -34, 0, 0, 0,
931 0, 0, 0, 0, -34, 0, 0, 0, 0, 0,
932 0, 0, 0, 0, -34, 0, -34, -34, -34, -34,
933 -34, -34, 0, -34, 0, 0, -34, -34, -34, -34,
934 -34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
935 -34, -34, -35, 0, -34, 62, 63, 64, 65, 0,
936 0, -35, -35, -35, -35, 0, -35, -35, 0, 0,
937 0, -35, 0, 0, -35, -35, -35, -35, 0, 0,
938 0, -35, 0, 0, 0, 0, 0, 0, 1, 2,
939 3, 4, 5, 6, 7, 8, -35, -35, 0, 0,
940 0, 417, 0, 0, 0, 0, 61, 0, 0, -35,
941 -35, 0, 0, 11, 0, -35, -35, -35, -35, -35,
942 0, 0, 0, 0, 0, 0, 0, -35, 0, 0,
943 0, 0, 0, 0, 0, 0, 0, -35, 0, -35,
944 -35, -35, -35, -35, -35, 0, -35, 0, 0, -35,
945 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
946 -35, -35, -35, -35, -35, -36, 0, -35, 62, 63,
947 64, 65, 0, 0, -36, -36, -36, -36, 0, -36,
948 -36, 0, 0, 0, -36, 0, 0, -36, -36, -36,
949 -36, 0, 0, 0, -36, 0, 0, 0, 0, 0,
950 0, 0, 0, 0, 0, 0, 0, 0, 0, -36,
951 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
952 0, 0, -36, -36, 0, 0, 0, 0, -36, -36,
953 -36, -36, -36, 0, 0, 0, 0, 0, 0, 0,
954 -36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
955 -36, 0, -36, -36, -36, -36, -36, -36, 0, -36,
956 0, 0, -36, -36, -36, -36, -36, -36, -36, -36,
957 -36, -36, -36, -36, -36, -36, -36, -36, -37, 0,
958 -36, 0, 0, 0, 0, 0, 0, -37, -37, -37,
959 -37, 0, -37, -37, 0, 0, 0, -37, 0, 0,
960 -37, -37, -37, -37, 0, 0, 0, -37, 0, 0,
961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
962 0, 0, -37, -37, 0, 0, 0, 0, 0, 0,
963 0, 0, 0, 0, 0, -37, -37, 0, 0, 0,
964 0, -37, -37, -37, -37, -37, 0, 0, 0, 0,
965 0, 0, 0, -37, 0, 0, 0, 0, 0, 0,
966 0, 0, 0, -37, 0, -37, -37, -37, -37, -37,
967 -37, 0, -37, 0, 0, -37, -37, -37, -37, -37,
968 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
969 -37, -60, 0, -37, 0, 0, 0, 0, 0, 0,
970 -60, -60, -60, -60, 0, -60, -60, 0, 0, 0,
971 -60, 0, 0, -60, -60, -60, -60, 0, 0, 0,
972 -60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
973 0, 0, 0, 0, 0, -60, -60, 0, 0, 0,
974 0, 0, 0, 0, 0, 0, 0, 0, -60, -60,
975 0, 0, 0, 0, -60, -60, -60, -60, -60, 0,
976 0, 0, 0, 0, 0, 0, -60, 0, 0, 0,
977 0, 0, 0, 0, 0, 0, -60, 0, -60, -60,
978 -60, -60, -60, -60, 0, -60, 0, 0, -60, -60,
979 -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
980 -60, -60, -60, -60, -61, 0, -623, 0, 0, 0,
981 0, 0, 0, -61, -61, -61, -61, 0, -61, -61,
982 0, 0, 0, -61, 0, 0, -61, -61, -61, -61,
983 0, 0, 0, -61, 0, 0, 0, 0, 0, 0,
984 0, 0, 0, 0, 0, 0, 0, 0, -61, -61,
985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
986 0, -61, -61, 0, 0, 0, 0, -61, -61, -61,
987 -61, -61, 0, 0, 0, 0, 0, 0, 0, -61,
988 0, 0, 0, 0, 0, 0, 0, 0, 0, -61,
989 0, -61, -61, -61, -61, -61, -61, 0, -61, 0,
990 0, -61, -61, -61, -61, -61, -61, -61, -61, -61,
991 -61, -61, -61, -61, -61, -61, -61, -24, 0, -584,
992 0, 0, 0, 0, 0, 0, -24, -24, -24, -24,
993 0, -24, -24, 0, 0, 0, -24, 0, 0, -24,
994 -24, -24, -24, 0, 0, 0, -24, 0, 0, 0,
995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
996 0, -24, -24, 0, 0, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, -24, -24, 0, 0, 0, 0,
998 -24, -24, -24, -24, -24, 0, 0, 0, 0, 0,
999 0, 0, -24, 0, 0, 0, 0, 0, 0, 0,
1000 0, 0, -24, 0, -24, -24, -24, -24, -24, -24,
1001 0, -24, 0, 0, -24, -24, -24, -24, -24, -24,
1002 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
1003 -42, 0, -24, 0, 0, 0, 0, 0, 0, -42,
1004 -42, -42, -42, 0, -42, -42, 0, 0, 0, -42,
1005 0, 0, -42, -42, -42, -42, 0, 0, 0, -42,
1006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 0, 0, -42, -42, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 0, -42, -42, 0,
1009 0, 0, 0, -42, -42, -42, -42, -42, 0, 0,
1010 0, 0, 0, 0, 0, -42, 0, 0, 0, 0,
1011 0, 0, 0, 0, 0, -42, 0, -42, -42, -42,
1012 -42, -42, -42, 0, -42, 0, 0, -42, -42, -42,
1013 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1014 -42, -42, -42, -41, 0, -42, 0, 0, 0, 0,
1015 0, 0, -41, -41, -41, -41, 0, -41, -41, 0,
1016 0, 0, -41, 0, 0, -41, -41, -41, -41, 0,
1017 0, 0, -41, 0, 0, 0, 0, 0, 0, 0,
1018 0, 0, 0, 0, 0, 0, 0, -41, -41, 0,
1019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1020 -41, -41, 0, 0, 0, 0, -41, -41, -41, -41,
1021 -41, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1022 0, 0, 0, 0, 0, 0, 0, 0, -41, 0,
1023 -41, -41, -41, -41, -41, -41, 0, -41, 0, 0,
1024 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1025 -41, -41, -41, -41, -41, -41, -40, 0, -41, 0,
1026 0, 0, 0, 0, 0, -40, -40, -40, -40, 0,
1027 -40, -40, 0, 0, 0, -40, 0, 0, -40, -40,
1028 -40, -40, 0, 0, 0, -40, 0, 0, 0, 0,
1029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1030 -40, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, -40, -40, 0, 0, 0, 0, -40,
1032 -40, -40, -40, -40, 0, 0, 0, 0, 0, 0,
1033 0, -40, 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, -40, 0, -40, -40, -40, -40, -40, -40, 0,
1035 -40, 0, 0, -40, -40, -40, -40, -40, -40, -40,
1036 -40, -40, -40, -40, -40, -40, -40, -40, -40, -38,
1037 0, -40, 0, 0, 0, 0, 0, 0, -38, -38,
1038 -38, -38, 0, -38, -38, 0, 0, 0, -38, 0,
1039 0, -38, -38, -38, -38, 0, 0, 0, -38, 0,
1040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1041 0, 0, 0, -38, -38, 0, 0, 0, 0, 0,
1042 0, 0, 0, 0, 0, 0, -38, -38, 0, 0,
1043 0, 0, -38, -38, -38, -38, -38, 0, 0, 0,
1044 0, 0, 0, 0, -38, 0, 0, 0, 0, 0,
1045 0, 0, 0, 0, -38, 0, -38, -38, -38, -38,
1046 -38, -38, 0, -38, 0, 0, -38, -38, -38, -38,
1047 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
1048 -38, -38, -39, 0, -38, 0, 0, 0, 0, 0,
1049 0, -39, -39, -39, -39, 0, -39, -39, 0, 0,
1050 0, -39, 0, 0, -39, -39, -39, -39, 0, 0,
1051 0, -39, 0, 0, 0, 0, 0, 0, 0, 0,
1052 0, 0, 0, 0, 0, 0, -39, -39, 0, 0,
1053 0, 0, 0, 0, 0, 0, 0, 0, 0, -39,
1054 -39, 0, 0, 0, 0, -39, -39, -39, -39, -39,
1055 0, 0, 0, 0, 0, 0, 0, -39, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, -39, 0, -39,
1057 -39, -39, -39, -39, -39, 0, -39, 0, 0, -39,
1058 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1059 -39, -39, -39, -39, -39, -32, 0, -39, 0, 0,
1060 0, 0, 0, 0, -32, -32, -32, -32, 0, -32,
1061 -32, 0, 0, 0, -32, 0, 0, -32, -32, -32,
1062 -32, 0, 0, 0, -32, 0, 0, 0, 0, 0,
1063 0, 0, 0, 0, 0, 0, 0, 0, 0, -32,
1064 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1065 0, 0, -32, -32, 0, 0, 0, 0, -32, -32,
1066 -32, -32, -32, 0, 0, 0, 0, 0, 0, 0,
1067 -32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1068 -32, 0, -32, -32, -32, -32, -32, -32, 0, -32,
1069 0, 0, -32, -32, -32, -32, -32, -32, -32, -32,
1070 -32, -32, -32, -32, -32, -32, -32, -32, -31, 0,
1071 -32, 0, 0, 0, 0, 0, 0, -31, -31, -31,
1072 -31, 0, -31, -31, 0, 0, 0, -31, 0, 0,
1073 -31, -31, -31, -31, 0, 0, 0, -31, 0, 0,
1074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, -31, -31, 0, 0, 0, 0, 0, 0,
1076 0, 0, 0, 0, 0, -31, -31, 0, 0, 0,
1077 0, -31, -31, -31, -31, -31, 0, 0, 0, 0,
1078 0, 0, 0, -31, 0, 0, 0, 0, 0, 0,
1079 0, 0, 0, -31, 0, -31, -31, -31, -31, -31,
1080 -31, 0, -31, 0, 0, -31, -31, -31, -31, -31,
1081 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
1082 -31, -25, 0, -31, 0, 0, 0, 0, 0, 0,
1083 -25, -25, -25, -25, 0, -25, -25, 0, 0, 0,
1084 -25, 0, 0, -25, -25, -25, -25, 0, 0, 0,
1085 -25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, 0, 0, -25, -25, 0, 0, 0,
1087 0, 0, 0, 0, 0, 0, 0, 0, -25, -25,
1088 0, 0, 0, 0, -25, -25, -25, -25, -25, 0,
1089 0, 0, 0, 0, 0, 0, -25, 0, 0, 0,
1090 0, 0, 0, 0, 0, 0, -25, 0, -25, -25,
1091 -25, -25, -25, -25, 0, -25, 0, 0, -25, -25,
1092 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1093 -25, -25, -25, -25, -29, 0, -25, 0, 0, 0,
1094 0, 0, 0, -29, -29, -29, -29, 0, -29, -29,
1095 0, 0, 0, -29, 0, 0, -29, -29, -29, -29,
1096 0, 0, 0, -29, 0, 0, 0, 0, 0, 0,
1097 0, 0, 0, 0, 0, 0, 0, 0, -29, -29,
1098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1099 0, -29, -29, 0, 0, 0, 0, -29, -29, -29,
1100 -29, -29, 0, 0, 0, 0, 0, 0, 0, -29,
1101 0, 0, 0, 0, 0, 0, 0, 0, 0, -29,
1102 0, -29, -29, -29, -29, -29, -29, 0, -29, 0,
1103 0, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1104 -29, -29, -29, -29, -29, -29, -29, -28, 0, -29,
1105 0, 0, 0, 0, 0, 0, -28, -28, -28, -28,
1106 0, -28, -28, 0, 0, 0, -28, 0, 0, -28,
1107 -28, -28, -28, 0, 0, 0, -28, 0, 0, 0,
1108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1109 0, -28, -28, 0, 0, 0, 0, 0, 0, 0,
1110 0, 0, 0, 0, -28, -28, 0, 0, 0, 0,
1111 -28, -28, -28, -28, -28, 0, 0, 0, 0, 0,
1112 0, 0, -28, 0, 0, 0, 0, 0, 0, 0,
1113 0, 0, -28, 0, -28, -28, -28, -28, -28, -28,
1114 0, -28, 0, 0, -28, -28, -28, -28, -28, -28,
1115 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
1116 -26, 0, -28, 0, 0, 0, 0, 0, 0, -26,
1117 -26, -26, -26, 0, -26, -26, 0, 0, 0, -26,
1118 0, 0, -26, -26, -26, -26, 0, 0, 0, -26,
1119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1120 0, 0, 0, 0, -26, -26, 0, 0, 0, 0,
1121 0, 0, 0, 0, 0, 0, 0, -26, -26, 0,
1122 0, 0, 0, -26, -26, -26, -26, -26, 0, 0,
1123 0, 0, 0, 0, 0, -26, 0, 0, 0, 0,
1124 0, 0, 0, 0, 0, -26, 0, -26, -26, -26,
1125 -26, -26, -26, 0, -26, 0, 0, -26, -26, -26,
1126 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
1127 -26, -26, -26, -27, 0, -26, 0, 0, 0, 0,
1128 0, 0, -27, -27, -27, -27, 0, -27, -27, 0,
1129 0, 0, -27, 0, 0, -27, -27, -27, -27, 0,
1130 0, 0, -27, 0, 0, 0, 0, 0, 0, 0,
1131 0, 0, 0, 0, 0, 0, 0, -27, -27, 0,
1132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1133 -27, -27, 0, 0, 0, 0, -27, -27, -27, -27,
1134 -27, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1135 0, 0, 0, 0, 0, 0, 0, 0, -27, 0,
1136 -27, -27, -27, -27, -27, -27, 0, -27, 0, 0,
1137 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
1138 -27, -27, -27, -27, -27, -27, -43, 0, -27, 0,
1139 0, 0, 0, 0, 0, -43, -43, -43, -43, 0,
1140 -43, -43, 0, 0, 0, -43, 0, 0, -43, -43,
1141 -43, -43, 0, 0, 0, -43, 0, 0, 0, 0,
1142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1143 -43, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, -43, -43, 0, 0, 0, 0, -43,
1145 -43, -43, -43, -43, 0, 0, 0, 0, 0, 0,
1146 0, -43, 0, 0, 0, 0, 0, 0, 0, 0,
1147 0, -43, 0, -43, -43, -43, -43, -43, -43, 0,
1148 -43, 0, 0, -43, -43, -43, -43, -43, -43, -43,
1149 -43, -43, -43, -43, -43, -43, -43, -43, -43, -138,
1150 0, -43, 0, 0, 0, 0, 0, 0, -138, -138,
1151 -138, -138, 0, -138, -138, 0, 0, 0, -138, 0,
1152 0, -138, -138, -138, -138, 0, 0, 0, -138, 0,
1153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, -138, -138, 0, 0, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, -138, -138, 0, 0,
1156 0, 0, -138, -138, -138, -138, -138, 0, 0, 0,
1157 0, 0, 0, 0, -138, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, -138, 0, -138, -138, -138, -138,
1159 -138, -138, 0, -138, 0, 0, -138, -138, -138, -138,
1160 -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1161 -138, -138, -139, 0, -592, 0, 0, 0, 0, 0,
1162 0, -139, -139, -139, -139, 0, -139, -139, 0, 0,
1163 0, -139, 0, 0, -139, -139, -139, -139, 0, 0,
1164 0, -139, 0, 0, 0, 0, 0, 0, 0, 0,
1165 0, 0, 0, 0, 0, 0, -139, -139, 0, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0, 0, -139,
1167 -139, 0, 0, 0, 0, -139, -139, -139, -139, -139,
1168 0, 0, 0, 0, 0, 0, 0, -139, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, -139, 0, -139,
1170 -139, -139, -139, -139, -139, 0, -139, 0, 0, -139,
1171 -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1172 -139, -139, -139, -139, -139, -140, 0, -591, 0, 0,
1173 0, 0, 0, 0, -140, -140, -140, -140, 0, -140,
1174 -140, 0, 0, 0, -140, 0, 0, -140, -140, -140,
1175 -140, 0, 0, 0, -140, 0, 0, 0, 0, 0,
1176 0, 0, 0, 0, 0, 0, 0, 0, 0, -140,
1177 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, -140, -140, 0, 0, 0, 0, -140, -140,
1179 -140, -140, -140, 0, 0, 0, 0, 0, 0, 0,
1180 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1181 -140, 0, -140, -140, -140, -140, -140, -140, 0, -140,
1182 0, 0, -140, -140, -140, -140, -140, -140, -140, -140,
1183 -140, -140, -140, -140, -140, -140, -140, -140, -141, 0,
1184 -589, 0, 0, 0, 0, 0, 0, -141, -141, -141,
1185 -141, 0, -141, -141, 0, 0, 0, -141, 0, 0,
1186 -141, -141, -141, -141, 0, 0, 0, -141, 0, 0,
1187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, -141, -141, 0, 0, 0, 0, 0, 0,
1189 0, 0, 0, 0, 0, -141, -141, 0, 0, 0,
1190 0, -141, -141, -141, -141, -141, 0, 0, 0, 0,
1191 0, 0, 0, -141, 0, 0, 0, 0, 0, 0,
1192 0, 0, 0, -141, 0, -141, -141, -141, -141, -141,
1193 -141, 0, -141, 0, 0, -141, -141, -141, -141, -141,
1194 -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1195 -141, -142, 0, -587, 0, 0, 0, 0, 0, 0,
1196 -142, -142, -142, -142, 0, -142, -142, 0, 0, 0,
1197 -142, 0, 0, -142, -142, -142, -142, 0, 0, 0,
1198 -142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, -142, -142, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, -142, -142,
1201 0, 0, 0, 0, -142, -142, -142, -142, -142, 0,
1202 0, 0, 0, 0, 0, 0, -142, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, -142, 0, -142, -142,
1204 -142, -142, -142, -142, 0, -142, 0, 0, -142, -142,
1205 -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1206 -142, -142, -142, -142, -143, 0, -588, 0, 0, 0,
1207 0, 0, 0, -143, -143, -143, -143, 0, -143, -143,
1208 0, 0, 0, -143, 0, 0, -143, -143, -143, -143,
1209 0, 0, 0, -143, 0, 0, 0, 0, 0, 0,
1210 0, 0, 0, 0, 0, 0, 0, 0, -143, -143,
1211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, -143, -143, 0, 0, 0, 0, -143, -143, -143,
1213 -143, -143, 0, 0, 0, 0, 0, 0, 0, -143,
1214 0, 0, 0, 0, 0, 0, 0, 0, 0, -143,
1215 0, -143, -143, -143, -143, -143, -143, 0, -143, 0,
1216 0, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1217 -143, -143, -143, -143, -143, -143, -143, -144, 0, -590,
1218 0, 0, 0, 0, 0, 0, -144, -144, -144, -144,
1219 0, -144, -144, 0, 0, 0, -144, 0, 0, -144,
1220 -144, -144, -144, 0, 0, 0, -144, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, -144, -144, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, -144, -144, 0, 0, 0, 0,
1224 -144, -144, -144, -144, -144, 0, 0, 0, 0, 0,
1225 0, 0, -144, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, -144, 0, -144, -144, -144, -144, -144, -144,
1227 0, -144, 0, 0, -144, -144, -144, -144, -144, -144,
1228 -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1229 -145, 0, -586, 0, 0, 0, 0, 0, 0, -145,
1230 -145, -145, -145, 0, -145, -145, 0, 0, 0, -145,
1231 0, 0, -145, -145, -145, -145, 0, 0, 0, -145,
1232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, -145, -145, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, -145, -145, 0,
1235 0, 0, 0, -145, -145, -145, -145, -145, 0, 0,
1236 0, 0, 0, 0, 0, -145, 0, 0, 0, 0,
1237 0, 0, 0, 0, 0, -145, 0, -145, -145, -145,
1238 -145, -145, -145, 0, -145, 0, 0, -145, -145, -145,
1239 -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1240 -145, -145, -145, -146, 0, -585, 0, 0, 0, 0,
1241 0, 0, -146, -146, -146, -146, 0, -146, -146, 0,
1242 0, 0, -146, 0, 0, -146, -146, -146, -146, 0,
1243 0, 0, -146, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, -146, -146, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 -146, -146, 0, 0, 0, 0, -146, -146, -146, -146,
1247 -146, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, -146, 0,
1249 -146, -146, -146, -146, -146, -146, 0, -146, 0, 0,
1250 -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1251 -146, -146, -146, -146, -146, -146, -30, 0, -593, 0,
1252 0, 0, 0, 0, 0, -30, -30, -30, -30, 0,
1253 -30, -30, 0, 0, 0, -30, 0, 0, -30, -30,
1254 -30, -30, 0, 0, 0, -30, 0, 0, 0, 0,
1255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1256 -30, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1257 0, 0, 0, -30, -30, 0, 0, 0, 0, -30,
1258 -30, -30, -30, -30, 0, 0, 0, 0, 0, 0,
1259 0, -30, 0, 0, 0, 0, 0, 0, 0, 0,
1260 0, -30, 0, -30, -30, -30, -30, -30, -30, 0,
1261 -30, 0, 0, -30, -30, -30, -30, -30, -30, -30,
1262 -30, -30, -30, -30, -30, -30, -30, -30, -30, -148,
1263 0, -30, 0, 0, 0, 0, 0, 0, -148, -148,
1264 -148, -148, 0, -148, -148, 0, 0, 0, -148, 0,
1265 0, -148, -148, -148, -148, 0, 0, 0, -148, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, -148, -148, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 0, -148, -148, 0, 0,
1269 0, 0, -148, -148, -148, -148, -148, 0, 0, 0,
1270 0, 0, 0, 0, -148, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, -148, 0, -148, -148, -148, -148,
1272 -148, -148, 0, -148, 0, 0, -148, -148, -148, -148,
1273 -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1274 -148, -148, -149, 0, -621, 0, 0, 0, 0, 0,
1275 0, -149, -149, -149, -149, 0, -149, -149, 0, 0,
1276 0, -149, 0, 0, -149, -149, -149, -149, 0, 0,
1277 0, -149, 0, 0, 0, 0, 0, 0, 0, 0,
1278 0, 0, 0, 0, 0, 0, -149, -149, 0, 0,
1279 0, 0, 0, 0, 0, 0, 0, 0, 0, -149,
1280 -149, 0, 0, 0, 0, -149, -149, -149, -149, -149,
1281 0, 0, 0, 0, 0, 0, 0, -149, 0, 0,
1282 0, 0, 0, 0, 0, 0, 0, -149, 0, -149,
1283 -149, -149, -149, -149, -149, 0, -149, 0, 0, -149,
1284 -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1285 -149, -149, -149, -149, -149, -150, 0, -619, 0, 0,
1286 0, 0, 0, 0, -150, -150, -150, -150, 0, -150,
1287 -150, 0, 0, 0, -150, 0, 0, -150, -150, -150,
1288 -150, 0, 0, 0, -150, 0, 0, 0, 0, 0,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, -150,
1290 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, -150, -150, 0, 0, 0, 0, -150, -150,
1292 -150, -150, -150, 0, 0, 0, 0, 0, 0, 0,
1293 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1294 -150, 0, -150, -150, -150, -150, -150, -150, 0, -150,
1295 0, 0, -150, -150, -150, -150, -150, -150, -150, -150,
1296 -150, -150, -150, -150, -150, -150, -150, -150, -151, 0,
1297 -618, 0, 0, 0, 0, 0, 0, -151, -151, -151,
1298 -151, 0, -151, -151, 0, 0, 0, -151, 0, 0,
1299 -151, -151, -151, -151, 0, 0, 0, -151, 0, 0,
1300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1301 0, 0, -151, -151, 0, 0, 0, 0, 0, 0,
1302 0, 0, 0, 0, 0, -151, -151, 0, 0, 0,
1303 0, -151, -151, -151, -151, -151, 0, 0, 0, 0,
1304 0, 0, 0, -151, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, -151, 0, -151, -151, -151, -151, -151,
1306 -151, 0, -151, 0, 0, -151, -151, -151, -151, -151,
1307 -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1308 -151, -152, 0, -620, 0, 0, 0, 0, 0, 0,
1309 -152, -152, -152, -152, 0, -152, -152, 0, 0, 0,
1310 -152, 0, 0, -152, -152, -152, -152, 0, 0, 0,
1311 -152, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 0, 0, -152, -152, 0, 0, 0,
1313 0, 0, 0, 0, 0, 0, 0, 0, -152, -152,
1314 0, 0, 0, 0, -152, -152, -152, -152, -152, 0,
1315 0, 0, 0, 0, 0, 0, -152, 0, 0, 0,
1316 0, 0, 0, 0, 0, 0, -152, 0, -152, -152,
1317 -152, -152, -152, -152, 0, -152, 0, 0, -152, -152,
1318 -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1319 -152, -152, -152, -152, -153, 0, -617, 0, 0, 0,
1320 0, 0, 0, -153, -153, -153, -153, 0, -153, -153,
1321 0, 0, 0, -153, 0, 0, -153, -153, -153, -153,
1322 0, 0, 0, -153, 0, 0, 0, 0, 0, 0,
1323 0, 0, 0, 0, 0, 0, 0, 0, -153, -153,
1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1325 0, -153, -153, 0, 0, 0, 0, -153, -153, -153,
1326 -153, -153, 0, 0, 0, 0, 0, 0, 0, -153,
1327 0, 0, 0, 0, 0, 0, 0, 0, 0, -153,
1328 0, -153, -153, -153, -153, -153, -153, 0, -153, 0,
1329 0, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1330 -153, -153, -153, -153, -153, -153, -153, 104, 0, -616,
1331 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1332 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1333 448, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1335 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1336 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1337 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1338 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1339 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1340 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1341 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1342 0, 0, 449, 104, 1, 2, 3, 4, 5, 6,
1343 7, 8, 105, 106, 107, 108, 0, 699, 110, 512,
1344 0, 0, 700, 495, 0, 496, 0, 497, 367, 11,
1345 0, 0, 498, 0, 0, 0, 0, 0, 0, 0,
1346 0, 0, 0, 0, 0, 0, 0, 369, 370, 168,
1347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1348 371, 372, 0, 0, 0, 0, 112, 113, 114, 115,
1349 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1350 0, 0, 0, 0, 62, 63, 64, 65, 117, 0,
1351 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1352 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1353 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1354 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1355 109, 110, 492, 493, 494, 111, 495, 0, 496, 448,
1356 497, 367, 0, 0, 0, 498, 0, 0, 0, 0,
1357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1358 369, 370, 168, 0, 0, 0, 0, 0, 0, 0,
1359 0, 0, 0, 371, 372, 0, 0, 0, 0, 112,
1360 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1363 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1364 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1365 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1366 107, 108, 0, 109, 110, 787, 0, 0, 111, 495,
1367 0, 496, 0, 497, 367, 0, 0, 0, 498, 0,
1368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1369 158, 0, 0, 369, 370, 168, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 371, 372, 0, 0,
1371 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 0, 117, 788, 789, 119, 120, 121,
1374 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1375 129, 130, 131, 132, 133, 790, 135, 136, 137, 138,
1376 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1377 0, 105, 106, 107, 108, 0, 109, 110, 512, 0,
1378 0, 111, 495, 0, 496, 0, 497, 367, 0, 0,
1379 0, 498, 0, 0, 0, 0, 0, 0, 0, 0,
1380 0, 0, 0, 158, 0, 0, 369, 370, 168, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 0, 371,
1382 372, 0, 0, 869, 0, 112, 113, 114, 115, 116,
1383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 0, 117, 0, 118,
1385 119, 120, 121, 122, 123, 0, 124, 0, 0, 125,
1386 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1387 136, 137, 138, 139, 140, 104, 0, 0, 0, 0,
1388 0, 0, 0, 0, 105, 106, 107, 108, 0, 109,
1389 110, 512, 0, 0, 111, 495, -635, 496, 0, 497,
1390 367, 0, 0, 0, 498, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 158, 0, 0, 369,
1392 370, 168, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 371, 372, 0, 0, 0, 0, 112, 113,
1394 114, 115, 116, 0, 0, 0, 0, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1396 117, 0, 118, 119, 120, 121, 122, 123, 0, 124,
1397 0, 0, 125, 126, 127, 128, 129, 130, 131, 132,
1398 133, 134, 135, 136, 137, 138, 139, 140, 104, 0,
1399 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1400 108, 0, 109, 110, 512, 0, 0, 111, 495, 0,
1401 496, 0, 497, 367, 0, 0, 0, 498, 0, 0,
1402 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
1403 0, 0, 369, 370, 168, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 371, 372, 0, 0, 0,
1405 0, 112, 113, 114, 115, 116, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1408 123, 0, 124, 0, 0, 125, 126, 127, 128, 129,
1409 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1410 140, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1411 105, 106, 107, 108, 0, 109, 110, 787, 0, 0,
1412 111, 495, 0, 496, 0, 497, 367, 0, 0, 0,
1413 498, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1414 0, 0, 0, 0, 0, 369, 370, 168, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 371, 372,
1416 0, 0, 0, 0, 112, 113, 114, 115, 116, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1418 0, 0, 0, 0, 0, 0, 117, 788, 789, 119,
1419 120, 121, 122, 123, 0, 124, 0, 0, 125, 126,
1420 127, 128, 129, 130, 131, 132, 133, 790, 135, 136,
1421 137, 138, 139, 140, 104, 0, 0, 0, 0, 0,
1422 0, 0, 0, 105, 106, 107, 108, 0, 109, 110,
1423 512, 0, 0, 111, 495, 0, 496, 0, 497, 367,
1424 0, 0, 0, 498, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 369, 370,
1426 168, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 371, 372, 0, 0, 0, 0, 112, 113, 114,
1428 115, 116, 0, 0, 0, 0, 0, 0, 0, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
1430 0, 118, 119, 120, 121, 122, 123, 0, 124, 0,
1431 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1432 134, 135, 136, 137, 138, 139, 140, 104, 0, 0,
1433 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1434 0, 109, 110, 0, 0, 0, 111, 0, 0, 365,
1435 0, 366, 367, 0, 0, 0, 368, 0, 0, 0,
1436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437 0, 369, 370, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 371, 372, 0, 0, 0, 0,
1439 112, 113, 114, 115, 116, 0, 0, 0, 0, 0,
1440 0, 0, 373, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 117, 0, 118, 119, 120, 121, 122, 123,
1442 0, 124, 0, 0, 125, 126, 127, 128, 129, 130,
1443 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1444 104, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1445 106, 107, 108, 0, 109, 110, 0, 0, 0, 111,
1446 0, 0, 0, 0, 0, 0, 11, 0, 0, -527,
1447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 168, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 112, 113, 114, 115, 116, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 65, 117, 0, 118, 119, 120,
1453 121, 122, 123, 0, 124, 0, 0, 125, 126, 127,
1454 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1455 138, 139, 140, 104, 0, 0, 0, 0, 0, 0,
1456 0, 0, 105, 106, 107, 108, 0, 109, 110, 0,
1457 0, 679, 111, 0, 0, 0, 0, 0, 0, 11,
1458 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1459 474, 475, 476, 477, 478, 479, 480, 481, 0, 168,
1460 0, 0, 0, 482, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 0, 112, 113, 114, 115,
1462 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 65, 117, 0,
1464 118, 119, 120, 121, 122, 123, 0, 124, 0, 0,
1465 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1466 135, 136, 137, 138, 139, 140, 104, 0, 0, 0,
1467 0, 0, 0, 0, 0, 105, 106, 107, 108, 0,
1468 109, 110, 0, 0, 0, 111, 0, 0, 771, 0,
1469 0, 0, 0, 0, 0, 722, 827, 464, 465, 466,
1470 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
1471 477, 478, 479, 480, 481, 0, 0, 0, 0, 0,
1472 705, 0, 0, 0, 0, 0, 0, 0, 0, 112,
1473 113, 114, 115, 116, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 117, 0, 118, 119, 120, 121, 122, 123, 0,
1476 124, 0, 0, 125, 126, 127, 128, 129, 130, 131,
1477 132, 133, 134, 135, 136, 137, 138, 139, 140, 104,
1478 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1479 107, 108, 0, 109, 110, 0, 0, 0, 111, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 764, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 168, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 112, 113, 114, 115, 116, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 117, 0, 118, 119, 120, 121,
1487 122, 123, 0, 124, 0, 0, 125, 126, 127, 128,
1488 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1489 139, 140, 104, 0, 0, 0, 0, 0, 0, 0,
1490 0, 105, 106, 107, 108, 923, 109, 110, 0, 0,
1491 0, 111, 0, 0, 464, 465, 466, 467, 468, 469,
1492 470, 471, 472,