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