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