]> andersk Git - splint.git/blob - src/cgrammar.c.der
Modified the doc/Makefile.am so that the man page is install under make install.
[splint.git] / src / cgrammar.c.der
1 /*
2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER:  Change bison.reset too.
4 */
5
6 /*@-allmacros@*/
7 /*@+boolint@*/
8 /*@+charint@*/
9 /*@-macroparams@*/
10 /*@-macroundef@*/
11 /*@-unreachable@*/
12 /*@-macrospec@*/
13 /*@-varuse@*/
14 /*@+ignorequals@*/
15 /*@-macrostmt@*/
16 /*@-noeffect@*/
17 /*@-shadow@*/
18 /*@-exitarg@*/
19 /*@-macroredef@*/
20 /*@-uniondef@*/
21 /*@-compdef@*/
22 /*@-matchfields@*/
23 /*@-exportlocal@*/
24 /*@-evalorderuncon@*/
25 /*@-exportheader@*/
26 /*@-typeuse@*/
27 /*@-redecl@*/
28 /*@-redef@*/
29 /*@-noparams@*/
30 /*@-ansireserved@*/
31 /*@-fielduse@*/
32 /*@-ifblock@*/
33 /*@-elseifcomplete@*/
34 /*@-whileblock@*/
35 /*@-forblock@*/
36 /*@-branchstate@*/
37 /*@-readonlytrans@*/
38 /*@-namechecks@*/
39 /*@-usedef@*/
40 /*@-systemunrecog@*/
41 /*@-dependenttrans@*/
42 /*@-unqualifiedtrans@*/
43 /*@-nullassign@*/
44 /*@-nullpass@*/
45 /*@-nullptrarith*/
46 /*@-usereleased@*/
47 /*@-declundef@*/
48
49 /*drl added 11/27/2001*/
50 /*@-bounds@*/
51 /* < end of bison.head > */
52
53
54 /*  A Bison parser, made from cgrammar.y
55     by GNU Bison version 1.28  */
56
57 #define YYBISON 1  /* Identify Bison output.  */
58
59 #define BADTOK  257
60 #define SKIPTOK 258
61 #define CTOK_ELIPSIS    259
62 #define CASE    260
63 #define DEFAULT 261
64 #define CIF     262
65 #define CELSE   263
66 #define SWITCH  264
67 #define WHILE   265
68 #define DO      266
69 #define CFOR    267
70 #define GOTO    268
71 #define CONTINUE        269
72 #define BREAK   270
73 #define RETURN  271
74 #define TSEMI   272
75 #define TLBRACE 273
76 #define TRBRACE 274
77 #define TCOMMA  275
78 #define TCOLON  276
79 #define TASSIGN 277
80 #define TLPAREN 278
81 #define TRPAREN 279
82 #define TLSQBR  280
83 #define TRSQBR  281
84 #define TDOT    282
85 #define TAMPERSAND      283
86 #define TEXCL   284
87 #define TTILDE  285
88 #define TMINUS  286
89 #define TPLUS   287
90 #define TMULT   288
91 #define TDIV    289
92 #define TPERCENT        290
93 #define TLT     291
94 #define TGT     292
95 #define TCIRC   293
96 #define TBAR    294
97 #define TQUEST  295
98 #define CSIZEOF 296
99 #define CALIGNOF        297
100 #define ARROW_OP        298
101 #define CTYPEDEF        299
102 #define COFFSETOF       300
103 #define INC_OP  301
104 #define DEC_OP  302
105 #define LEFT_OP 303
106 #define RIGHT_OP        304
107 #define LE_OP   305
108 #define GE_OP   306
109 #define EQ_OP   307
110 #define NE_OP   308
111 #define AND_OP  309
112 #define OR_OP   310
113 #define MUL_ASSIGN      311
114 #define DIV_ASSIGN      312
115 #define MOD_ASSIGN      313
116 #define ADD_ASSIGN      314
117 #define SUB_ASSIGN      315
118 #define LEFT_ASSIGN     316
119 #define RIGHT_ASSIGN    317
120 #define AND_ASSIGN      318
121 #define XOR_ASSIGN      319
122 #define OR_ASSIGN       320
123 #define CSTRUCT 321
124 #define CUNION  322
125 #define CENUM   323
126 #define VA_ARG  324
127 #define VA_DCL  325
128 #define QWARN   326
129 #define QGLOBALS        327
130 #define QMODIFIES       328
131 #define QNOMODS 329
132 #define QCONSTANT       330
133 #define QFUNCTION       331
134 #define QITER   332
135 #define QDEFINES        333
136 #define QUSES   334
137 #define QALLOCATES      335
138 #define QSETS   336
139 #define QRELEASES       337
140 #define QPRECLAUSE      338
141 #define QPOSTCLAUSE     339
142 #define QINVARIANT      340
143 #define QALT    341
144 #define QUNDEF  342
145 #define QKILLED 343
146 #define QENDMACRO       344
147 #define LLMACRO 345
148 #define LLMACROITER     346
149 #define LLMACROEND      347
150 #define TENDMACRO       348
151 #define QSWITCHBREAK    349
152 #define QLOOPBREAK      350
153 #define QINNERBREAK     351
154 #define QSAFEBREAK      352
155 #define QINNERCONTINUE  353
156 #define QFALLTHROUGH    354
157 #define QLINTNOTREACHED 355
158 #define QLINTFALLTHROUGH        356
159 #define QLINTFALLTHRU   357
160 #define QARGSUSED       358
161 #define QPRINTFLIKE     359
162 #define QLINTPRINTFLIKE 360
163 #define QSCANFLIKE      361
164 #define QMESSAGELIKE    362
165 #define QNOTREACHED     363
166 #define QCONST  364
167 #define QVOLATILE       365
168 #define QINLINE 366
169 #define QEXTENSION      367
170 #define QEXTERN 368
171 #define QSTATIC 369
172 #define QAUTO   370
173 #define QREGISTER       371
174 #define QOUT    372
175 #define QIN     373
176 #define QYIELD  374
177 #define QONLY   375
178 #define QTEMP   376
179 #define QSHARED 377
180 #define QREF    378
181 #define QUNIQUE 379
182 #define QCHECKED        380
183 #define QUNCHECKED      381
184 #define QCHECKEDSTRICT  382
185 #define QCHECKMOD       383
186 #define QKEEP   384
187 #define QKEPT   385
188 #define QPARTIAL        386
189 #define QSPECIAL        387
190 #define QOWNED  388
191 #define QDEPENDENT      389
192 #define QRETURNED       390
193 #define QEXPOSED        391
194 #define QNULL   392
195 #define QOBSERVER       393
196 #define QISNULL 394
197 #define QEXITS  395
198 #define QMAYEXIT        396
199 #define QNEVEREXIT      397
200 #define QTRUEEXIT       398
201 #define QFALSEEXIT      399
202 #define QLONG   400
203 #define QSIGNED 401
204 #define QUNSIGNED       402
205 #define QSHORT  403
206 #define QUNUSED 404
207 #define QSEF    405
208 #define QNOTNULL        406
209 #define QRELNULL        407
210 #define QABSTRACT       408
211 #define QCONCRETE       409
212 #define QMUTABLE        410
213 #define QIMMUTABLE      411
214 #define QTRUENULL       412
215 #define QFALSENULL      413
216 #define QEXTERNAL       414
217 #define QREFCOUNTED     415
218 #define QREFS   416
219 #define QNEWREF 417
220 #define QTEMPREF        418
221 #define QKILLREF        419
222 #define QRELDEF 420
223 #define CGCHAR  421
224 #define CBOOL   422
225 #define CINT    423
226 #define CGFLOAT 424
227 #define CDOUBLE 425
228 #define CVOID   426
229 #define QANYTYPE        427
230 #define QINTEGRALTYPE   428
231 #define QUNSIGNEDINTEGRALTYPE   429
232 #define QSIGNEDINTEGRALTYPE     430
233 #define QNULLTERMINATED 431
234 #define QSETBUFFERSIZE  432
235 #define QSETSTRINGLENGTH        433
236 #define QMAXSET 434
237 #define QMAXREAD        435
238 #define QTESTINRANGE    436
239 #define TCAND   437
240 #define IDENTIFIER      438
241 #define NEW_IDENTIFIER  439
242 #define TYPE_NAME_OR_ID 440
243 #define CANNOTATION     441
244 #define CCONSTANT       442
245 #define ITER_NAME       443
246 #define ITER_ENDNAME    444
247 #define TYPE_NAME       445
248 #define METASTATE_NAME  446
249
250
251 /*
252 **
253 ** cgrammar.y
254 **
255 ** Yacc/Bison grammar for extended ANSI C used by Splint.
256 **
257 ** original grammar by Nate Osgood ---
258 **    hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
259 **
260 ** changes for Splint --- handle typedef names correctly
261 ** fix struct/union parsing bug (empty struct is accepted)
262 ** add productions to handle macros --- require
263 ** error correction --- main source of conflicts in grammar.
264 ** need to process initializations sequentially, L->R
265 **
266 ** production names are cryptic, so more productions fit on one line
267 **
268 ** conflicts:  87 shift/reduce, 18 reduce/reduce
269 ** most of these are due to handling macros
270 ** a few are due to handling type expressions
271 */
272
273 /*@=allmacros@*/
274
275 extern int yylex ();
276 extern void swallowMacro (void);
277 extern void yyerror (char *);
278
279 # include "splintMacros.nf"
280 # include "basic.h"
281 # include "cscanner.h"
282 # include "cgrammar.h"
283 # include "exprChecks.h"
284
285 /*@-allmacros@*/
286 /*@-matchfields@*/
287
288 # define SHOWCSYM FALSE
289
290 /*
291 ** This is necessary, or else when the bison-generated code #include's malloc.h,
292 ** there will be a parse error.
293 **
294 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
295 ** in bison-generated files under Win32.
296 */
297
298 # ifdef WIN32
299 # undef malloc
300 # undef calloc
301 # undef realloc
302 # endif
303
304
305 typedef union
306 {
307   lltok tok;
308   int count;
309   qual typequal;
310   qualList tquallist;
311   ctype ctyp;
312   /*@dependent@*/ sRef sr;
313   /*@only@*/ sRef osr;
314
315   /*@only@*/ functionClauseList funcclauselist;
316   /*@only@*/ functionClause funcclause;  
317   /*@only@*/ flagSpec flagspec;
318   /*@only@*/ globalsClause globsclause;
319   /*@only@*/ modifiesClause modsclause;
320   /*@only@*/ warnClause warnclause;
321   /*@only@*/ stateClause stateclause;
322
323   /*@only@*/ functionConstraint fcnconstraint; 
324
325   /*@only@*/ metaStateConstraint msconstraint;
326   /*@only@*/ metaStateSpecifier msspec;
327   /*@only@*/ metaStateExpression msexpr;
328   /*@observer@*/ metaStateInfo msinfo;
329
330   /*@only@*/ sRefList srlist;
331   /*@only@*/ globSet globset;
332   /*@only@*/ qtype qtyp;
333   /*@only@*/ cstring cname;
334   /*@observer@*/ annotationInfo annotation;
335   /*@only@*/ idDecl ntyp;
336   /*@only@*/ idDeclList ntyplist;
337   /*@only@*/ uentryList flist;
338   /*@owned@*/ uentryList entrylist;
339   /*@observer@*/ /*@dependent@*/ uentry entry;
340   /*@only@*/ uentry oentry;
341   /*@only@*/ exprNode expr;
342   /*@only@*/ enumNameList enumnamelist;
343   /*@only@*/ exprNodeList exprlist;
344   /*@only@*/ sRefSet srset; 
345   /*@only@*/ cstringList cstringlist;
346
347   /*drl
348     added 1/19/2001
349   */
350   constraint con;
351   constraintList conL;
352   constraintExpr conE;
353   /* drl */  
354 } YYSTYPE;
355 #ifndef YYDEBUG
356 #define YYDEBUG 1
357 #endif
358
359 #include <stdio.h>
360
361 #ifndef __cplusplus
362 #ifndef __STDC__
363 #define const
364 #endif
365 #endif
366
367
368
369 #define YYFINAL         1210
370 #define YYFLAG          -32768
371 #define YYNTBASE        193
372
373 #define YYTRANSLATE(x) ((unsigned)(x) <= 446 ? yytranslate[x] : 454)
374
375 static const short yytranslate[] = {     0,
376      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
377      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
378      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
379      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
380      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
381      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
382      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
383      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
384      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
385      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
386      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
387      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
388      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
389      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
390      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
391      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
392      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
393      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
394      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
395      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
396      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
397      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
398      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
399      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
400      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
401      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
402      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
403     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
404     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
405     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
406     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
407     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
408     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
409     77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
410     87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
411     97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
412    107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
413    117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
414    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
415    137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
416    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
417    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
418    167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
419    177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
420    187,   188,   189,   190,   191,   192
421 };
422
423 #if YYDEBUG != 0
424 static const short yyprhs[] = {     0,
425      0,     1,     3,     5,     8,    11,    13,    15,    17,    19,
426     21,    23,    25,    34,    46,    47,    53,    55,    59,    61,
427     64,    66,    73,    77,    84,    85,    92,    93,   101,   103,
428    110,   114,   121,   122,   129,   130,   138,   139,   140,   151,
429    155,   159,   163,   166,   168,   172,   173,   178,   179,   184,
430    186,   190,   192,   194,   196,   200,   202,   206,   208,   210,
431    212,   214,   216,   218,   223,   229,   231,   233,   235,   237,
432    241,   246,   249,   253,   257,   261,   263,   265,   267,   268,
433    271,   272,   275,   277,   279,   281,   283,   285,   287,   289,
434    291,   293,   295,   297,   299,   302,   303,   308,   310,   313,
435    314,   318,   320,   324,   326,   328,   329,   332,   336,   339,
436    341,   345,   348,   349,   352,   354,   356,   358,   360,   362,
437    364,   366,   368,   370,   372,   374,   376,   378,   380,   382,
438    384,   388,   389,   393,   394,   395,   400,   403,   406,   408,
439    410,   412,   416,   421,   424,   428,   432,   436,   438,   440,
440    442,   446,   448,   450,   454,   459,   462,   466,   470,   474,
441    475,   477,   479,   483,   485,   487,   489,   493,   495,   497,
442    499,   504,   508,   513,   520,   526,   532,   535,   538,   540,
443    544,   546,   549,   552,   555,   558,   561,   564,   567,   570,
444    572,   574,   578,   580,   590,   591,   595,   600,   603,   608,
445    611,   613,   618,   620,   624,   628,   632,   634,   638,   642,
446    644,   648,   652,   654,   658,   662,   666,   670,   672,   676,
447    680,   682,   686,   688,   692,   694,   698,   700,   701,   706,
448    708,   709,   714,   716,   717,   718,   726,   728,   732,   736,
449    740,   744,   748,   752,   756,   760,   764,   768,   772,   774,
450    778,   779,   781,   783,   785,   787,   789,   793,   794,   804,
451    805,   817,   820,   821,   828,   829,   838,   843,   848,   849,
452    850,   853,   855,   860,   861,   866,   868,   872,   877,   880,
453    883,   886,   888,   891,   895,   898,   900,   904,   906,   908,
454    910,   912,   914,   917,   918,   925,   928,   931,   932,   939,
455    940,   946,   948,   950,   952,   954,   956,   958,   960,   962,
456    964,   966,   968,   970,   972,   974,   976,   978,   980,   982,
457    984,   986,   988,   990,   992,   994,   996,   998,  1000,  1002,
458   1004,  1006,  1008,  1010,  1012,  1014,  1016,  1018,  1020,  1022,
459   1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,  1042,
460   1044,  1046,  1048,  1050,  1053,  1056,  1059,  1062,  1065,  1068,
461   1071,  1074,  1077,  1080,  1083,  1086,  1089,  1092,  1095,  1098,
462   1101,  1104,  1107,  1110,  1113,  1116,  1119,  1122,  1125,  1129,
463   1131,  1136,  1138,  1142,  1145,  1148,  1151,  1152,  1154,  1155,
464   1156,  1157,  1170,  1171,  1172,  1184,  1191,  1198,  1199,  1200,
465   1211,  1212,  1213,  1224,  1230,  1236,  1241,  1246,  1247,  1249,
466   1251,  1254,  1260,  1264,  1267,  1272,  1274,  1278,  1283,  1290,
467   1291,  1300,  1305,  1307,  1311,  1314,  1316,  1321,  1323,  1325,
468   1328,  1331,  1333,  1336,  1338,  1341,  1343,  1345,  1347,  1350,
469   1352,  1355,  1358,  1362,  1364,  1368,  1370,  1374,  1376,  1378,
470   1382,  1383,  1386,  1387,  1392,  1397,  1399,  1401,  1404,  1406,
471   1408,  1411,  1412,  1414,  1420,  1423,  1427,  1431,  1436,  1440,
472   1445,  1450,  1456,  1458,  1460,  1462,  1464,  1466,  1468,  1470,
473   1472,  1474,  1476,  1478,  1480,  1483,  1486,  1494,  1501,  1504,
474   1505,  1506,  1517,  1518,  1525,  1527,  1529,  1531,  1533,  1536,
475   1538,  1540,  1542,  1544,  1546,  1548,  1550,  1554,  1556,  1557,
476   1561,  1564,  1567,  1569,  1571,  1573,  1575,  1577,  1579,  1581,
477   1583,  1585,  1587,  1591,  1593,  1595,  1598,  1601,  1602,  1605,
478   1606,  1611,  1612,  1619,  1620,  1624,  1625,  1631,  1635,  1638,
479   1642,  1643,  1644,  1645,  1646,  1647,  1649,  1652,  1655,  1659,
480   1662,  1666,  1670,  1675,  1678,  1681,  1685,  1689,  1694,  1696,
481   1699,  1701,  1704,  1706,  1709,  1711,  1714,  1716,  1719,  1721,
482   1726,  1729,  1730,  1736,  1737,  1744,  1749,  1754,  1755,  1756,
483   1767,  1769,  1770,  1775,  1777,  1779,  1781,  1783,  1785,  1788,
484   1790,  1794,  1796,  1801,  1805,  1810,  1817,  1823,  1829,  1832,
485   1835,  1837,  1840,  1843,  1846,  1849,  1852,  1855,  1858,  1861,
486   1863,  1865,  1870,  1872,  1876,  1880,  1884,  1886,  1890,  1894,
487   1896,  1900,  1904,  1906,  1910,  1914,  1918,  1922,  1924,  1928,
488   1932,  1934,  1938,  1940,  1944,  1946,  1950,  1952,  1956,  1958,
489   1962,  1964,  1965,  1966,  1974,  1976,  1980,  1984,  1988,  1992,
490   1996,  2000,  2004,  2008,  2012,  2016,  2020,  2022,  2023,  2025,
491   2028,  2036,  2039,  2042,  2050,  2057,  2060,  2064,  2067,  2071,
492   2074,  2078,  2082,  2086,  2090,  2093,  2097,  2098,  2100,  2102,
493   2104,  2106,  2108,  2110,  2112,  2114
494 };
495
496 static const short yyrhs[] = {    -1,
497    194,     0,   195,     0,   194,   195,     0,   256,   450,     0,
498    196,     0,   197,     0,   207,     0,   210,     0,   293,     0,
499     18,     0,     1,     0,    76,   334,   348,   358,   348,   450,
500    301,    90,     0,    76,   334,   348,   358,   348,    23,   301,
501    306,   305,   450,    90,     0,     0,    77,   198,   199,   450,
502     90,     0,   200,     0,   334,   348,   200,     0,   204,     0,
503    362,   204,     0,   452,     0,   301,    24,   348,   358,   301,
504     25,     0,   201,    26,    27,     0,   201,    26,   301,   292,
505     27,   348,     0,     0,   201,   302,    24,    25,   202,   228,
506      0,     0,   201,   302,    24,   359,    25,   203,   228,     0,
507    452,     0,   301,    24,   348,   200,   301,    25,     0,   204,
508     26,    27,     0,   204,    26,   301,   292,    27,   348,     0,
509      0,   204,   302,    24,    25,   205,   229,     0,     0,   204,
510    302,    24,   359,    25,   206,   229,     0,     0,     0,    78,
511    452,    24,   359,    25,   208,   229,   209,   450,    90,     0,
512     91,   389,    94,     0,    92,   375,    94,     0,    93,   376,
513     94,     0,    91,    94,     0,   251,     0,   213,    23,   216,
514      0,     0,   225,   214,    22,   217,     0,     0,     5,   215,
515     22,   217,     0,   213,     0,   213,    40,   216,     0,   192,
516      0,   183,     0,    55,     0,   220,   218,   219,     0,   220,
517      0,   223,   222,   223,     0,   180,     0,   181,     0,    52,
518      0,    51,     0,    53,     0,   224,     0,   226,    24,   223,
519     25,     0,    24,   223,   227,   223,    25,     0,   225,     0,
520    188,     0,   451,     0,   185,     0,   225,    26,    27,     0,
521    225,    26,   188,    27,     0,    34,   225,     0,    24,   225,
522     25,     0,   225,    28,   452,     0,   225,    44,   452,     0,
523    221,     0,    33,     0,    32,     0,     0,   230,   228,     0,
524      0,   231,   229,     0,   232,     0,   236,     0,   235,     0,
525    312,     0,   315,     0,   242,     0,   233,     0,   237,     0,
526    235,     0,   313,     0,   317,     0,   243,     0,   233,    90,
527      0,     0,    73,   234,   244,   450,     0,    75,     0,   237,
528     90,     0,     0,    74,   238,   257,     0,   240,     0,   240,
529     40,   239,     0,   185,     0,   242,     0,     0,   243,    90,
530      0,    72,   239,   426,     0,    72,   239,     0,   245,     0,
531    244,    21,   245,     0,   246,   247,     0,     0,   248,   246,
532      0,   451,     0,   185,     0,   293,     0,    88,     0,    89,
533      0,   118,     0,   119,     0,   132,     0,    79,     0,    80,
534      0,    81,     0,    82,     0,    83,     0,    84,     0,    85,
535      0,   358,     0,   334,   348,   358,     0,     0,    19,   253,
536    406,     0,     0,     0,   254,   410,   255,   399,     0,   211,
537    252,     0,   260,   450,     0,   450,     0,   451,     0,   185,
538      0,   258,    26,    27,     0,   258,    26,   259,    27,     0,
539     34,   258,     0,    24,   258,    25,     0,   258,    28,   452,
540      0,   258,    44,   452,     0,   258,     0,   426,     0,   258,
541      0,   260,    21,   258,     0,   451,     0,   185,     0,   261,
542     26,    27,     0,   261,    26,   259,    27,     0,    34,   261,
543      0,    24,   261,    25,     0,   261,    28,   452,     0,   261,
544     44,   452,     0,     0,   263,     0,   261,     0,   263,    21,
545    261,     0,   451,     0,   185,     0,   426,     0,    24,   290,
546     25,     0,   186,     0,   113,     0,   264,     0,   265,    26,
547    290,    27,     0,   265,    24,    25,     0,   265,    24,   266,
548     25,     0,    70,    24,   289,    21,   370,    25,     0,   265,
549    348,    28,   452,   301,     0,   265,   348,    44,   452,   301,
550      0,   265,    47,     0,   265,    48,     0,   289,     0,   266,
551     21,   289,     0,   265,     0,    47,   267,     0,    48,   267,
552      0,    29,   273,     0,    34,   273,     0,    33,   273,     0,
553     32,   273,     0,    31,   273,     0,    30,   273,     0,   270,
554      0,   269,     0,   268,    28,   452,     0,   452,     0,    46,
555    301,    24,   370,   348,    21,   268,    25,   301,     0,     0,
556    301,   271,   272,     0,    42,    24,   370,    25,     0,    42,
557    267,     0,    43,    24,   370,    25,     0,    43,   267,     0,
558    267,     0,    24,   370,    25,   273,     0,   273,     0,   274,
559     34,   273,     0,   274,    35,   273,     0,   274,    36,   273,
560      0,   274,     0,   275,    33,   274,     0,   275,    32,   274,
561      0,   275,     0,   276,    49,   275,     0,   276,    50,   275,
562      0,   276,     0,   277,    37,   276,     0,   277,    38,   276,
563      0,   277,    51,   276,     0,   277,    52,   276,     0,   277,
564      0,   278,    53,   277,     0,   278,    54,   277,     0,   278,
565      0,   279,    29,   278,     0,   279,     0,   280,    39,   279,
566      0,   280,     0,   281,    40,   280,     0,   281,     0,     0,
567    282,    55,   283,   281,     0,   282,     0,     0,   284,    56,
568    285,   282,     0,   284,     0,     0,     0,   284,    41,   287,
569    290,    22,   288,   286,     0,   286,     0,   267,    23,   289,
570      0,   267,    57,   289,     0,   267,    58,   289,     0,   267,
571     59,   289,     0,   267,    60,   289,     0,   267,    61,   289,
572      0,   267,    62,   289,     0,   267,    63,   289,     0,   267,
573     64,   289,     0,   267,    65,   289,     0,   267,    66,   289,
574      0,   289,     0,   290,    21,   289,     0,     0,   290,     0,
575    286,     0,   294,     0,    71,     0,   299,     0,   334,   301,
576     18,     0,     0,   334,   348,   358,   348,   295,   301,   305,
577     18,   301,     0,     0,   334,   348,   358,   348,    23,   296,
578    301,   306,   305,    18,   301,     0,   358,   348,     0,     0,
579    358,   348,    23,   298,   301,   306,     0,     0,    45,   334,
580    300,   348,   303,   301,   241,    18,     0,    45,   334,   301,
581     18,     0,    45,   303,   301,    18,     0,     0,     0,   304,
582    301,     0,   297,     0,   303,    21,   348,   297,     0,     0,
583    305,    21,   348,   297,     0,   289,     0,    19,   310,    20,
584      0,    19,   310,    21,    20,     0,   307,   306,     0,   308,
585     23,     0,   452,    22,     0,   309,     0,   308,   309,     0,
586     26,   292,    27,     0,    28,   452,     0,   306,     0,   310,
587     21,   306,     0,   114,     0,   112,     0,   115,     0,   116,
588      0,   117,     0,   313,    90,     0,     0,   249,   348,   314,
589    263,   450,   301,     0,   317,    90,     0,   250,   348,     0,
590      0,   316,   323,   318,   262,   450,   301,     0,     0,   316,
591    319,   320,   450,   301,     0,   219,     0,   212,     0,   141,
592      0,   142,     0,   144,     0,   145,     0,   143,     0,   126,
593      0,   129,     0,   127,     0,   128,     0,   134,     0,   135,
594      0,   120,     0,   122,     0,   121,     0,   130,     0,   131,
595      0,   123,     0,   125,     0,   138,     0,   140,     0,   153,
596      0,   152,     0,   137,     0,   139,     0,   177,     0,   187,
597      0,   136,     0,   151,     0,   150,     0,   160,     0,   158,
598      0,   159,     0,   154,     0,   155,     0,   156,     0,   157,
599      0,   161,     0,   162,     0,   165,     0,   166,     0,   163,
600      0,   164,     0,   149,     0,   146,     0,   147,     0,   148,
601      0,   118,     0,   119,     0,   132,     0,   133,     0,   110,
602    301,     0,   111,   301,     0,   330,   301,     0,   323,   301,
603      0,   321,   301,     0,   324,   301,     0,   322,   301,     0,
604    326,   301,     0,   325,   301,     0,   327,   301,     0,   328,
605    301,     0,   167,   348,     0,   169,   348,     0,   168,   348,
606      0,   170,   348,     0,   171,   348,     0,   172,   348,     0,
607    173,   348,     0,   174,   348,     0,   175,   348,     0,   176,
608    348,     0,   453,   348,     0,   339,   348,     0,   353,   348,
609      0,   329,   348,     0,   301,   334,   301,     0,   336,     0,
610    336,    87,   335,    90,     0,   370,     0,   370,    21,   335,
611      0,   311,   337,     0,   331,   337,     0,   332,   337,     0,
612      0,   334,     0,     0,     0,     0,   348,    67,   452,   301,
613     19,   340,   403,   349,   404,   341,    20,   338,     0,     0,
614      0,   348,    68,   452,   301,    19,   342,   403,   349,   404,
615    343,    20,     0,   348,    67,   452,   301,    19,    20,     0,
616    348,    68,   452,   301,    19,    20,     0,     0,     0,   348,
617     67,   301,    19,   344,   403,   349,   404,   345,    20,     0,
618      0,     0,   348,    68,   301,    19,   346,   403,   349,   404,
619    347,    20,     0,   348,    67,   301,    19,    20,     0,   348,
620     68,   301,    19,    20,     0,   348,    67,   452,   348,     0,
621    348,    68,   452,   348,     0,     0,   350,     0,   210,     0,
622    349,   350,     0,   334,   348,   351,   301,    18,     0,   334,
623    301,    18,     0,   352,   348,     0,   351,    21,   352,   348,
624      0,   358,     0,    22,   301,   292,     0,   358,    22,   301,
625    292,     0,   348,    69,    19,   355,    20,   301,     0,     0,
626    348,    69,   452,    19,   354,   355,    20,   301,     0,   348,
627     69,   452,   301,     0,   356,     0,   355,    21,   356,     0,
628    355,    21,     0,   452,     0,   452,    23,   301,   292,     0,
629    201,     0,   372,     0,   362,   191,     0,   362,   357,     0,
630    201,     0,   362,   201,     0,   365,     0,   348,   363,     0,
631    110,     0,   111,     0,   360,     0,   361,   360,     0,    34,
632      0,    34,   361,     0,    34,   362,     0,    34,   361,   362,
633      0,   364,     0,   364,    21,     5,     0,   452,     0,   364,
634     21,   452,     0,     5,     0,   366,     0,   366,    21,     5,
635      0,     0,   367,   369,     0,     0,   366,    21,   368,   369,
636      0,   301,   334,   357,   301,     0,   452,     0,   333,     0,
637    333,   371,     0,   362,     0,   373,     0,   362,   373,     0,
638      0,   373,     0,   301,    24,   348,   371,    25,     0,    26,
639     27,     0,    26,   292,    27,     0,   373,    26,    27,     0,
640    373,    26,   292,    27,     0,   301,    24,    25,     0,   301,
641     24,   365,    25,     0,   373,   301,    24,    25,     0,   373,
642    301,    24,   365,    25,     0,   391,     0,   393,     0,   396,
643      0,   399,     0,   412,     0,   415,     0,   447,     0,   420,
644      0,   449,     0,   377,     0,   375,     0,   384,     0,   377,
645    384,     0,   419,   377,     0,   446,   390,    11,    24,   290,
646     25,    18,     0,   446,   390,    11,    24,   290,    25,     0,
647    379,   384,     0,     0,     0,    13,    24,   291,    18,   291,
648     18,   380,   291,   381,    25,     0,     0,   189,   401,    24,
649    383,   423,    25,     0,   190,     0,   391,     0,   393,     0,
650    396,     0,   387,   410,     0,   387,     0,   388,     0,   412,
651      0,   385,     0,   378,     0,   382,     0,   449,     0,    24,
652    384,    25,     0,     1,     0,     0,   414,   386,   384,     0,
653    401,    19,     0,   405,    20,     0,   390,     0,   409,     0,
654    391,     0,   393,     0,   396,     0,   400,     0,   413,     0,
655    415,     0,   420,     0,   448,     0,    24,   390,    25,     0,
656    449,     0,     1,     0,   452,    22,     0,   109,   374,     0,
657      0,   100,   392,     0,     0,     6,   292,   394,    22,     0,
658      0,   100,   392,     6,   292,   395,    22,     0,     0,     7,
659    397,    22,     0,     0,   100,   392,     7,   398,    22,     0,
660     24,   399,    25,     0,   401,   407,     0,   401,   408,   402,
661      0,     0,     0,     0,     0,     0,    20,     0,   109,    20,
662      0,   411,    20,     0,   411,   109,    20,     0,   410,    20,
663      0,   410,   109,    20,     0,   410,   411,    20,     0,   410,
664    411,   109,    20,     0,    19,   406,     0,    19,    20,     0,
665     19,   409,    20,     0,    19,   410,    20,     0,    19,   410,
666    411,    20,     0,   390,     0,   409,   390,     0,   293,     0,
667    410,   293,     0,   374,     0,   411,   374,     0,    18,     0,
668    290,    18,     0,    18,     0,   290,    18,     0,   290,     0,
669      8,    24,   290,    25,     0,   414,   374,     0,     0,   414,
670    374,     9,   416,   374,     0,     0,    10,    24,   290,   417,
671     25,   374,     0,    11,    24,   290,    25,     0,    11,    24,
672    290,    25,     0,     0,     0,   189,   421,   401,    24,   422,
673    423,    25,   399,   445,   402,     0,   425,     0,     0,   423,
674    424,    21,   425,     0,   444,     0,   451,     0,   186,     0,
675    185,     0,   188,     0,   426,   188,     0,   426,     0,    24,
676    290,    25,     0,   427,     0,   265,    26,   290,    27,     0,
677    265,    24,    25,     0,   265,    24,   266,    25,     0,    70,
678     24,   289,    21,   370,    25,     0,   265,   348,    28,   452,
679    301,     0,   265,   348,    44,   452,   301,     0,   265,    47,
680      0,   265,    48,     0,   428,     0,    47,   267,     0,    48,
681    267,     0,    29,   273,     0,    34,   273,     0,    33,   273,
682      0,    32,   273,     0,    31,   273,     0,    30,   273,     0,
683    270,     0,   429,     0,    24,   370,    25,   273,     0,   430,
684      0,   274,    34,   273,     0,   274,    35,   273,     0,   274,
685     36,   273,     0,   431,     0,   275,    33,   274,     0,   275,
686     32,   274,     0,   432,     0,   276,    49,   275,     0,   276,
687     50,   275,     0,   433,     0,   277,    37,   276,     0,   277,
688     38,   276,     0,   277,    51,   276,     0,   277,    52,   276,
689      0,   434,     0,   278,    53,   277,     0,   278,    54,   277,
690      0,   435,     0,   279,    29,   278,     0,   436,     0,   280,
691     39,   279,     0,   437,     0,   281,    40,   280,     0,   438,
692      0,   282,    55,   281,     0,   439,     0,   284,    56,   282,
693      0,   440,     0,     0,     0,   284,    41,   442,   290,    22,
694    443,   286,     0,   441,     0,   267,    23,   289,     0,   267,
695     57,   289,     0,   267,    58,   289,     0,   267,    59,   289,
696      0,   267,    60,   289,     0,   267,    61,   289,     0,   267,
697     62,   289,     0,   267,    63,   289,     0,   267,    64,   289,
698      0,   267,    65,   289,     0,   267,    66,   289,     0,   190,
699      0,     0,    12,     0,   418,   374,     0,   446,   374,    11,
700     24,   290,    25,    18,     0,   379,   374,     0,   418,   390,
701      0,   446,   390,    11,    24,   290,    25,    18,     0,   446,
702    390,    11,    24,   290,    25,     0,   379,   390,     0,    14,
703    452,    18,     0,    15,    18,     0,    99,    15,    18,     0,
704     16,    18,     0,    95,    16,    18,     0,    96,    16,    18,
705      0,    97,    16,    18,     0,    98,    16,    18,     0,    17,
706     18,     0,    17,   290,    18,     0,     0,    18,     0,   184,
707      0,   185,     0,   189,     0,   190,     0,   451,     0,   186,
708      0,   191,     0,   186,     0
709 };
710
711 #endif
712
713 #if YYDEBUG != 0
714 static const short yyrline[] = { 0,
715    324,   325,   328,   329,   332,   333,   334,   335,   336,   337,
716    338,   339,   342,   344,   348,   348,   355,   361,   365,   366,
717    370,   371,   373,   375,   390,   393,   403,   406,   414,   415,
718    417,   419,   435,   438,   446,   449,   457,   459,   459,   463,
719    464,   465,   466,   469,   472,   476,   476,   479,   479,   484,
720    485,   488,   493,   494,   497,   498,   501,   506,   507,   510,
721    511,   512,   515,   516,   517,   522,   523,   526,   528,   530,
722    532,   541,   543,   545,   547,   563,   567,   568,   575,   576,
723    584,   586,   590,   591,   592,   593,   594,   595,   598,   599,
724    600,   601,   602,   603,   606,   609,   610,   617,   620,   623,
725    629,   637,   639,   643,   646,   647,   650,   653,   659,   663,
726    664,   667,   670,   671,   674,   675,   676,   679,   680,   681,
727    682,   683,   686,   687,   688,   689,   690,   693,   694,   697,
728    703,   707,   709,   713,   714,   716,   723,   733,   734,   737,
729    738,   739,   740,   741,   742,   743,   744,   748,   749,   753,
730    754,   757,   759,   761,   762,   763,   764,   765,   767,   771,
731    772,   775,   779,   791,   792,   793,   794,   795,   796,   799,
732    800,   801,   802,   803,   804,   805,   806,   807,   810,   811,
733    814,   815,   816,   817,   818,   819,   820,   821,   822,   823,
734    824,   827,   828,   831,   835,   836,   839,   840,   841,   842,
735    845,   846,   850,   851,   852,   853,   856,   857,   858,   861,
736    862,   863,   866,   867,   868,   869,   870,   873,   874,   875,
737    878,   879,   882,   883,   887,   888,   891,   892,   897,   903,
738    904,   910,   916,   917,   917,   919,   922,   923,   924,   925,
739    926,   927,   928,   929,   930,   931,   932,   933,   936,   937,
740    940,   941,   944,   949,   950,   951,   954,   968,   973,   979,
741    981,   987,   992,   992,   996,   997,   999,  1000,  1003,  1006,
742   1009,  1012,  1013,  1016,  1017,  1020,  1021,  1022,  1023,  1030,
743   1031,  1035,  1036,  1039,  1040,  1043,  1045,  1054,  1055,  1056,
744   1057,  1058,  1061,  1064,  1070,  1079,  1082,  1085,  1092,  1099,
745   1105,  1130,  1131,  1134,  1135,  1136,  1137,  1138,  1141,  1142,
746   1143,  1144,  1147,  1148,  1149,  1150,  1151,  1152,  1153,  1154,
747   1155,  1156,  1157,  1158,  1159,  1160,  1161,  1162,  1163,  1167,
748   1168,  1171,  1172,  1175,  1176,  1179,  1180,  1181,  1182,  1185,
749   1186,  1187,  1188,  1189,  1190,  1193,  1194,  1195,  1196,  1199,
750   1200,  1201,  1202,  1205,  1206,  1207,  1208,  1209,  1210,  1211,
751   1212,  1213,  1214,  1215,  1222,  1223,  1224,  1225,  1226,  1227,
752   1228,  1229,  1230,  1231,  1232,  1233,  1234,  1235,  1238,  1242,
753   1243,  1247,  1248,  1252,  1253,  1254,  1257,  1258,  1262,  1269,
754   1271,  1273,  1274,  1276,  1278,  1279,  1281,  1283,  1285,  1287,
755   1288,  1289,  1292,  1293,  1295,  1297,  1298,  1301,  1304,  1305,
756   1306,  1309,  1311,  1315,  1317,  1321,  1322,  1323,  1327,  1329,
757   1329,  1331,  1334,  1336,  1338,  1341,  1346,  1353,  1354,  1355,
758   1362,  1366,  1367,  1371,  1372,  1375,  1376,  1379,  1380,  1383,
759   1384,  1385,  1386,  1389,  1390,  1393,  1394,  1397,  1398,  1399,
760   1402,  1402,  1403,  1404,  1407,  1419,  1435,  1436,  1439,  1440,
761   1441,  1444,  1445,  1448,  1450,  1451,  1453,  1454,  1456,  1458,
762   1460,  1462,  1468,  1469,  1470,  1471,  1472,  1473,  1474,  1475,
763   1476,  1480,  1483,  1486,  1487,  1491,  1493,  1495,  1497,  1501,
764   1502,  1504,  1508,  1510,  1512,  1515,  1516,  1517,  1518,  1519,
765   1520,  1521,  1522,  1523,  1524,  1525,  1526,  1527,  1530,  1531,
766   1536,  1539,  1542,  1543,  1546,  1547,  1548,  1549,  1550,  1551,
767   1552,  1553,  1554,  1555,  1556,  1559,  1560,  1567,  1568,  1574,
768   1575,  1576,  1577,  1580,  1581,  1582,  1583,  1586,  1587,  1591,
769   1594,  1597,  1600,  1603,  1606,  1609,  1610,  1611,  1612,  1614,
770   1615,  1617,  1619,  1625,  1629,  1631,  1633,  1635,  1639,  1640,
771   1643,  1644,  1647,  1648,  1651,  1652,  1655,  1656,  1657,  1660,
772   1673,  1678,  1679,  1683,  1684,  1687,  1692,  1695,  1696,  1697,
773   1705,  1706,  1706,  1710,  1711,  1712,  1723,  1730,  1731,  1734,
774   1735,  1738,  1739,  1740,  1741,  1742,  1744,  1745,  1746,  1747,
775   1750,  1751,  1752,  1753,  1754,  1755,  1756,  1757,  1758,  1759,
776   1762,  1763,  1766,  1767,  1768,  1769,  1772,  1773,  1774,  1777,
777   1778,  1779,  1782,  1783,  1784,  1785,  1786,  1789,  1790,  1791,
778   1794,  1795,  1798,  1799,  1803,  1804,  1807,  1808,  1811,  1812,
779   1815,  1816,  1817,  1818,  1821,  1822,  1823,  1824,  1825,  1826,
780   1827,  1828,  1829,  1830,  1831,  1832,  1835,  1836,  1839,  1842,
781   1844,  1846,  1850,  1851,  1853,  1855,  1858,  1859,  1860,  1862,
782   1863,  1864,  1865,  1866,  1867,  1868,  1871,  1872,  1875,  1878,
783   1879,  1880,  1881,  1882,  1885,  1886
784 };
785 #endif
786
787
788 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
789
790 static const char * const yytname[] = {   "$","error","$undefined.","BADTOK",
791 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
792 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
793 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
794 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
795 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
796 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
797 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
798 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
799 "VA_ARG","VA_DCL","QWARN","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION",
800 "QITER","QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
801 "QINVARIANT","QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND",
802 "TENDMACRO","QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE",
803 "QFALLTHROUGH","QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED",
804 "QPRINTFLIKE","QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST",
805 "QVOLATILE","QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT",
806 "QIN","QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
807 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
808 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
809 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
810 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
811 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
812 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
813 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
814 "QSETBUFFERSIZE","QSETSTRINGLENGTH","QMAXSET","QMAXREAD","QTESTINRANGE","TCAND",
815 "IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CANNOTATION","CCONSTANT","ITER_NAME",
816 "ITER_ENDNAME","TYPE_NAME","METASTATE_NAME","file","externalDefs","externalDef",
817 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
818 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
819 "metaStateConstraint","metaStateSpecifier","@8","@9","metaStateExpression","metaStateName",
820 "constraintSeperator","BufConstraintList","BufConstraint","bufferModifier","relationalOp",
821 "BufConstraintExpr","BufConstraintTerm","BufConstraintSrefExpr","BufUnaryOp",
822 "BufBinaryOp","functionClauses","functionClausesPlain","functionClause","functionClausePlain",
823 "globalsClause","globalsClausePlain","@10","nomodsClause","modifiesClause","modifiesClausePlain",
824 "@11","flagSpec","flagId","optWarnClause","warnClause","warnClausePlain","globIdList",
825 "globIdListExpr","optGlobQuals","globId","globQual","stateTag","conditionTag",
826 "fcnDefHdrAux","fcnBody","@12","@13","@14","fcnDef","locModifies","modListExpr",
827 "mExpr","modList","specClauseListExpr","optSpecClauseList","specClauseList",
828 "primaryExpr","postfixExpr","argumentExprList","unaryExpr","fieldDesignator",
829 "offsetofExpr","sizeofExpr","@15","sizeofExprAux","castExpr","timesExpr","plusExpr",
830 "shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr",
831 "andExpr","@16","orExpr","@17","conditionalExpr","@18","@19","assignExpr","expr",
832 "optExpr","constantExpr","initializer","instanceDecl","@20","@21","namedInitializer",
833 "@22","typeDecl","@23","IsType","PushType","namedInitializerList","namedInitializerListAux",
834 "optDeclarators","init","designation","designatorList","designator","initList",
835 "storageSpecifier","stateClause","stateClausePlain","@24","conditionClause",
836 "startConditionClause","conditionClausePlain","@25","@26","functionConstraint",
837 "exitsQualifier","checkQualifier","stateQualifier","paramQualifier","visibilityQualifier",
838 "returnQualifier","typedefQualifier","refcountQualifier","typeModifier","definedQualifier",
839 "typeQualifier","typeSpecifier","completeType","completeTypeSpecifier","altType",
840 "completeTypeSpecifierAux","optCompleteType","optStructInvariant","suSpc","@27",
841 "@28","@29","@30","@31","@32","@33","@34","NotType","structDeclList","structDecl",
842 "structNamedDeclList","structNamedDecl","enumSpc","@35","enumeratorList","enumerator",
843 "optNamedDecl","namedDecl","genericParamList","innerMods","innerModsList","pointers",
844 "paramIdList","idList","paramTypeList","paramList","@36","@37","paramDecl","typeExpression",
845 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","iterBody","endBody",
846 "iterDefStmtList","iterDefIterationStmt","forPred","@38","@39","partialIterStmt",
847 "@40","iterDefStmt","iterSelectionStmt","@41","openScope","closeScope","macroBody",
848 "stmtErr","labeledStmt","optExtraFallThroughs","caseStmt","@42","@43","defaultStmt",
849 "@44","@45","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
850 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
851 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","stmtList",
852 "expressionStmt","expressionStmtErr","ifPred","selectionStmt","@46","@47","whilePred",
853 "iterWhilePred","iterStmt","@48","@49","iterArgList","@50","iterArgExpr","cconstantExpr",
854 "primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr",
855 "plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr",
856 "xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
857 "@51","@52","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
858 "jumpStmt","optSemi","id","newId","typeName", NULL
859 };
860 #endif
861
862 static const short yyr1[] = {     0,
863    193,   193,   194,   194,   195,   195,   195,   195,   195,   195,
864    195,   195,   196,   196,   198,   197,   199,   199,   200,   200,
865    201,   201,   201,   201,   202,   201,   203,   201,   204,   204,
866    204,   204,   205,   204,   206,   204,   208,   209,   207,   210,
867    210,   210,   210,   211,   212,   214,   213,   215,   213,   216,
868    216,   217,   218,   218,   219,   219,   220,   221,   221,   222,
869    222,   222,   223,   223,   223,   224,   224,   225,   225,   225,
870    225,   225,   225,   225,   225,   226,   227,   227,   228,   228,
871    229,   229,   230,   230,   230,   230,   230,   230,   231,   231,
872    231,   231,   231,   231,   232,   234,   233,   235,   236,   238,
873    237,   239,   239,   240,   241,   241,   242,   243,   243,   244,
874    244,   245,   246,   246,   247,   247,   247,   248,   248,   248,
875    248,   248,   249,   249,   249,   249,   249,   250,   250,   251,
876    251,   253,   252,   254,   255,   252,   256,   257,   257,   258,
877    258,   258,   258,   258,   258,   258,   258,   259,   259,   260,
878    260,   261,   261,   261,   261,   261,   261,   261,   261,   262,
879    262,   263,   263,   264,   264,   264,   264,   264,   264,   265,
880    265,   265,   265,   265,   265,   265,   265,   265,   266,   266,
881    267,   267,   267,   267,   267,   267,   267,   267,   267,   267,
882    267,   268,   268,   269,   271,   270,   272,   272,   272,   272,
883    273,   273,   274,   274,   274,   274,   275,   275,   275,   276,
884    276,   276,   277,   277,   277,   277,   277,   278,   278,   278,
885    279,   279,   280,   280,   281,   281,   282,   283,   282,   284,
886    285,   284,   286,   287,   288,   286,   289,   289,   289,   289,
887    289,   289,   289,   289,   289,   289,   289,   289,   290,   290,
888    291,   291,   292,   293,   293,   293,   294,   295,   294,   296,
889    294,   297,   298,   297,   300,   299,   299,   299,   301,   302,
890    303,   304,   304,   305,   305,   306,   306,   306,   306,   307,
891    307,   308,   308,   309,   309,   310,   310,   311,   311,   311,
892    311,   311,   312,   314,   313,   315,   316,   318,   317,   319,
893    317,   320,   320,   321,   321,   321,   321,   321,   322,   322,
894    322,   322,   323,   323,   323,   323,   323,   323,   323,   323,
895    323,   323,   323,   323,   323,   323,   323,   323,   323,   324,
896    324,   325,   325,   326,   326,   327,   327,   327,   327,   328,
897    328,   328,   328,   328,   328,   329,   329,   329,   329,   330,
898    330,   330,   330,   331,   331,   331,   331,   331,   331,   331,
899    331,   331,   331,   331,   332,   332,   332,   332,   332,   332,
900    332,   332,   332,   332,   332,   332,   332,   332,   333,   334,
901    334,   335,   335,   336,   336,   336,   337,   337,   338,   340,
902    341,   339,   342,   343,   339,   339,   339,   344,   345,   339,
903    346,   347,   339,   339,   339,   339,   339,   348,   349,   349,
904    349,   350,   350,   351,   351,   352,   352,   352,   353,   354,
905    353,   353,   355,   355,   355,   356,   356,   357,   357,   357,
906    357,   358,   358,   359,   359,   360,   360,   361,   361,   362,
907    362,   362,   362,   363,   363,   364,   364,   365,   365,   365,
908    367,   366,   368,   366,   369,   369,   370,   370,   371,   371,
909    371,   372,   372,   373,   373,   373,   373,   373,   373,   373,
910    373,   373,   374,   374,   374,   374,   374,   374,   374,   374,
911    374,   375,   376,   377,   377,   378,   378,   378,   378,   380,
912    381,   379,   383,   382,   382,   384,   384,   384,   384,   384,
913    384,   384,   384,   384,   384,   384,   384,   384,   386,   385,
914    387,   388,   389,   389,   390,   390,   390,   390,   390,   390,
915    390,   390,   390,   390,   390,   391,   391,   392,   392,   394,
916    393,   395,   393,   397,   396,   398,   396,   399,   399,   400,
917    401,   402,   403,   404,   405,   406,   406,   406,   406,   406,
918    406,   406,   406,   407,   408,   408,   408,   408,   409,   409,
919    410,   410,   411,   411,   412,   412,   413,   413,   413,   414,
920    415,   416,   415,   417,   415,   418,   419,   421,   422,   420,
921    423,   424,   423,   425,   425,   425,   425,   426,   426,   427,
922    427,   428,   428,   428,   428,   428,   428,   428,   428,   428,
923    429,   429,   429,   429,   429,   429,   429,   429,   429,   429,
924    430,   430,   431,   431,   431,   431,   432,   432,   432,   433,
925    433,   433,   434,   434,   434,   434,   434,   435,   435,   435,
926    436,   436,   437,   437,   438,   438,   439,   439,   440,   440,
927    441,   442,   443,   441,   444,   444,   444,   444,   444,   444,
928    444,   444,   444,   444,   444,   444,   445,   445,   446,   447,
929    447,   447,   448,   448,   448,   448,   449,   449,   449,   449,
930    449,   449,   449,   449,   449,   449,   450,   450,   451,   452,
931    452,   452,   452,   452,   453,   453
932 };
933
934 static const short yyr2[] = {     0,
935      0,     1,     1,     2,     2,     1,     1,     1,     1,     1,
936      1,     1,     8,    11,     0,     5,     1,     3,     1,     2,
937      1,     6,     3,     6,     0,     6,     0,     7,     1,     6,
938      3,     6,     0,     6,     0,     7,     0,     0,    10,     3,
939      3,     3,     2,     1,     3,     0,     4,     0,     4,     1,
940      3,     1,     1,     1,     3,     1,     3,     1,     1,     1,
941      1,     1,     1,     4,     5,     1,     1,     1,     1,     3,
942      4,     2,     3,     3,     3,     1,     1,     1,     0,     2,
943      0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
944      1,     1,     1,     1,     2,     0,     4,     1,     2,     0,
945      3,     1,     3,     1,     1,     0,     2,     3,     2,     1,
946      3,     2,     0,     2,     1,     1,     1,     1,     1,     1,
947      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
948      3,     0,     3,     0,     0,     4,     2,     2,     1,     1,
949      1,     3,     4,     2,     3,     3,     3,     1,     1,     1,
950      3,     1,     1,     3,     4,     2,     3,     3,     3,     0,
951      1,     1,     3,     1,     1,     1,     3,     1,     1,     1,
952      4,     3,     4,     6,     5,     5,     2,     2,     1,     3,
953      1,     2,     2,     2,     2,     2,     2,     2,     2,     1,
954      1,     3,     1,     9,     0,     3,     4,     2,     4,     2,
955      1,     4,     1,     3,     3,     3,     1,     3,     3,     1,
956      3,     3,     1,     3,     3,     3,     3,     1,     3,     3,
957      1,     3,     1,     3,     1,     3,     1,     0,     4,     1,
958      0,     4,     1,     0,     0,     7,     1,     3,     3,     3,
959      3,     3,     3,     3,     3,     3,     3,     3,     1,     3,
960      0,     1,     1,     1,     1,     1,     3,     0,     9,     0,
961     11,     2,     0,     6,     0,     8,     4,     4,     0,     0,
962      2,     1,     4,     0,     4,     1,     3,     4,     2,     2,
963      2,     1,     2,     3,     2,     1,     3,     1,     1,     1,
964      1,     1,     2,     0,     6,     2,     2,     0,     6,     0,
965      5,     1,     1,     1,     1,     1,     1,     1,     1,     1,
966      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
967      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
968      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
969      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
970      1,     1,     1,     2,     2,     2,     2,     2,     2,     2,
971      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
972      2,     2,     2,     2,     2,     2,     2,     2,     3,     1,
973      4,     1,     3,     2,     2,     2,     0,     1,     0,     0,
974      0,    12,     0,     0,    11,     6,     6,     0,     0,    10,
975      0,     0,    10,     5,     5,     4,     4,     0,     1,     1,
976      2,     5,     3,     2,     4,     1,     3,     4,     6,     0,
977      8,     4,     1,     3,     2,     1,     4,     1,     1,     2,
978      2,     1,     2,     1,     2,     1,     1,     1,     2,     1,
979      2,     2,     3,     1,     3,     1,     3,     1,     1,     3,
980      0,     2,     0,     4,     4,     1,     1,     2,     1,     1,
981      2,     0,     1,     5,     2,     3,     3,     4,     3,     4,
982      4,     5,     1,     1,     1,     1,     1,     1,     1,     1,
983      1,     1,     1,     1,     2,     2,     7,     6,     2,     0,
984      0,    10,     0,     6,     1,     1,     1,     1,     2,     1,
985      1,     1,     1,     1,     1,     1,     3,     1,     0,     3,
986      2,     2,     1,     1,     1,     1,     1,     1,     1,     1,
987      1,     1,     3,     1,     1,     2,     2,     0,     2,     0,
988      4,     0,     6,     0,     3,     0,     5,     3,     2,     3,
989      0,     0,     0,     0,     0,     1,     2,     2,     3,     2,
990      3,     3,     4,     2,     2,     3,     3,     4,     1,     2,
991      1,     2,     1,     2,     1,     2,     1,     2,     1,     4,
992      2,     0,     5,     0,     6,     4,     4,     0,     0,    10,
993      1,     0,     4,     1,     1,     1,     1,     1,     2,     1,
994      3,     1,     4,     3,     4,     6,     5,     5,     2,     2,
995      1,     2,     2,     2,     2,     2,     2,     2,     2,     1,
996      1,     4,     1,     3,     3,     3,     1,     3,     3,     1,
997      3,     3,     1,     3,     3,     3,     3,     1,     3,     3,
998      1,     3,     1,     3,     1,     3,     1,     3,     1,     3,
999      1,     0,     0,     7,     1,     3,     3,     3,     3,     3,
1000      3,     3,     3,     3,     3,     3,     1,     0,     1,     2,
1001      7,     2,     2,     7,     6,     2,     3,     2,     3,     2,
1002      3,     3,     3,     3,     2,     3,     0,     1,     1,     1,
1003      1,     1,     1,     1,     1,     1
1004 };
1005
1006 static const short yydefact[] = {     0,
1007     12,    11,   440,   408,   255,   408,    15,     0,     0,     0,
1008      0,   269,   269,   289,   288,   290,   291,   292,   350,   351,
1009    315,   317,   316,   320,   321,   309,   311,   312,   310,   318,
1010    319,   352,   353,   313,   314,   330,   326,   322,   327,   323,
1011    304,   305,   308,   306,   307,   347,   348,   349,   346,   332,
1012    331,   325,   324,   336,   337,   338,   339,   334,   335,   333,
1013    340,   341,   344,   345,   342,   343,   408,   408,   408,   408,
1014    408,   408,   408,   408,   408,   408,   328,   679,   680,   684,
1015    329,   681,   682,   685,     0,     3,     6,     7,   432,     8,
1016      9,   134,    44,   677,    10,   254,   256,     0,   387,   269,
1017    269,   269,   269,   269,   269,   269,   269,   408,   269,   387,
1018    387,   408,   380,   408,     0,   408,   130,   269,   683,    21,
1019    408,   436,   437,   438,   441,   442,   272,   269,   269,   265,
1020    408,   686,   408,   408,   684,     0,   525,   269,   534,     0,
1021      0,     0,   659,     0,     0,     0,     0,   269,   567,     0,
1022    269,   269,   269,   269,   269,   269,   269,   269,   269,     0,
1023     43,     0,     0,     0,     0,     0,   528,   269,   169,   165,
1024    168,   588,   578,   170,   181,   201,   191,   190,   203,   207,
1025    210,   213,   218,   221,   223,   225,   227,   230,   233,   237,
1026    249,   569,   195,     0,     0,   559,   515,   516,   517,   518,
1027      0,     0,   519,   269,   520,     0,   521,   166,     0,   522,
1028    524,   164,     0,   508,     0,   565,     0,   541,   495,     0,
1029      0,     0,   504,     0,   505,   484,   503,   500,   501,   496,
1030    497,   498,     0,     0,   502,   509,     0,     0,   506,   483,
1031      0,   354,   355,   365,   367,   366,   368,   369,   370,   371,
1032    372,   373,   374,     4,   269,     0,   132,   137,   408,   678,
1033      5,   408,   388,   384,   358,   360,   357,   359,   362,   361,
1034    363,   364,   378,   356,   385,   386,     0,   269,   269,   376,
1035    269,   269,     0,   377,   433,   375,   439,   443,   408,     0,
1036    271,   408,     0,   262,   269,   677,    17,    19,     0,   408,
1037    269,    29,   451,   269,   165,   168,   201,   253,   530,   164,
1038      0,   269,   269,   269,   269,     0,   668,   670,   675,     0,
1039      0,   408,   457,     0,     0,   184,   189,   188,   187,   186,
1040    185,     0,   269,   182,   183,   269,     0,     0,     0,     0,
1041      0,   528,     0,   269,   527,   269,   473,   474,   475,   476,
1042      0,   477,   478,   269,   480,   269,   479,   481,   541,   269,
1043    269,   177,   178,     0,   269,   269,   269,   269,   269,   269,
1044    269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1045    269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1046    269,   228,   234,   231,   568,   269,     0,   666,    40,     0,
1047    542,   560,   571,   663,   589,     0,   526,   269,     0,     0,
1048      0,   566,    41,   485,   489,   561,   408,   499,   511,   512,
1049      0,     0,     0,    42,    23,   269,   451,   408,   408,   269,
1050    257,   131,   408,     0,   382,     0,   408,     0,   408,     0,
1051    269,   269,   268,   269,   267,   263,   408,     0,   269,     0,
1052    408,   269,    20,   448,     0,     0,   434,   449,   269,     0,
1053      0,   535,     0,   574,     0,   252,     0,   667,   676,   167,
1054    269,   269,     0,   459,   458,   460,   269,   523,   269,     0,
1055    671,   672,   673,   674,   669,   529,   269,   536,     0,   662,
1056    408,   539,   660,     0,     0,   172,     0,   179,     0,     0,
1057      0,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1058    247,   248,   204,   205,   206,   209,   208,   211,   212,   214,
1059    215,   216,   217,   219,   220,   222,   224,   226,   269,   269,
1060    269,   250,   269,   269,   196,   555,   168,   559,     0,   408,
1061    540,   572,     0,     0,   507,   493,   269,   562,   510,     0,
1062      0,    25,     0,   546,   269,   563,   133,   408,   269,   541,
1063    269,   258,   381,   269,   398,     0,   406,   401,     0,   407,
1064      0,   423,   426,   420,   422,   273,   269,   269,   677,    16,
1065     31,   269,   451,   269,    18,   435,   444,   446,    37,   453,
1066    408,   452,   456,   531,   570,     0,   576,   269,   379,   465,
1067      0,   451,   461,   269,     0,   202,   408,   269,   532,     0,
1068    538,   554,     0,   579,   269,   173,   171,   269,   269,   229,
1069      0,   232,   269,   198,   269,   200,   556,   557,   269,   269,
1070    269,   577,   269,   408,   269,   408,    79,    27,   547,   550,
1071    269,   269,   548,   269,   564,   541,   136,     0,   260,   269,
1072    383,   404,   543,   390,   405,   543,   393,   269,   425,   269,
1073      0,   106,   269,   269,   269,     0,    33,     0,   269,     0,
1074     81,   450,   269,   462,   269,     0,   466,   469,   269,     0,
1075    467,     0,   451,     0,     0,     0,   537,   269,   269,   180,
1076    175,   176,   235,     0,     0,   558,   573,     0,   269,   269,
1077    269,   269,   269,   269,   269,   269,   269,     0,   165,   168,
1078    181,   201,   190,   207,   210,   213,   218,   221,   223,   225,
1079    227,   230,     0,   582,   581,   166,   592,   601,   611,   613,
1080    617,   620,   623,   628,   631,   633,   635,   637,   639,   641,
1081    645,   584,   164,     0,    24,     0,    96,   100,    98,   123,
1082    124,   125,   126,   127,   128,   129,    26,    79,    83,     0,
1083     85,    84,     0,    88,     0,   408,   408,    86,     0,    87,
1084    300,     0,    79,   551,   552,   269,   549,    22,   269,   274,
1085    408,   396,   543,   408,   397,   543,   419,   424,   269,     0,
1086      0,   105,   269,   269,     0,   276,   264,   269,     0,   282,
1087      0,   269,     0,   408,    81,    35,     0,   445,   447,    38,
1088     81,    89,    91,    90,    94,    92,    93,   454,   428,     0,
1089    269,   462,   429,   463,   575,   490,     0,   470,   468,   471,
1090      0,     0,   174,   533,     0,   582,   269,   197,   199,   665,
1091      0,     0,   184,   189,   188,   187,   186,   185,   182,   183,
1092    269,   269,   269,   177,   178,     0,   269,   269,   269,   269,
1093    269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1094    269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1095    269,   269,   269,   228,   642,   231,   494,     0,   488,   104,
1096    109,   102,   113,   677,    80,    95,    99,   107,   294,   297,
1097    293,     0,   298,   296,    28,   553,   269,     0,   410,   408,
1098    408,   409,   408,   408,   408,   427,   269,   266,   286,     0,
1099      0,   285,   279,   280,   283,   281,   274,    13,    32,    34,
1100     81,    30,   677,    82,   451,   455,   430,   431,   269,   464,
1101    472,     0,   193,     0,   541,   236,   664,   167,   269,     0,
1102    172,     0,     0,     0,     0,   646,   647,   648,   649,   650,
1103    651,   652,   653,   654,   655,   656,   204,   205,   206,   209,
1104    208,   211,   212,   214,   215,   216,   217,   219,   220,   222,
1105    224,   226,   638,   269,   640,   269,   487,   108,     0,   118,
1106    119,   120,   121,   122,   677,   110,   408,   113,     0,     0,
1107    141,   101,   150,   677,   139,   140,     0,    48,     0,     0,
1108     58,    59,    69,    67,   303,     0,   302,    56,    76,     0,
1109     63,    66,     0,   677,    68,   160,   274,   269,   408,     0,
1110    269,   411,   399,   408,   402,   408,   421,   277,   269,   284,
1111    677,    36,     0,   269,   491,   269,     0,   661,   658,   202,
1112    269,   173,   171,   269,   269,     0,   583,   103,   113,    97,
1113    116,   112,   117,   115,   114,     0,   144,     0,     0,     0,
1114      0,   138,     0,     0,   153,   162,   677,   152,     0,     0,
1115     66,     0,    72,     0,    54,    53,     0,    61,    60,    62,
1116      0,     0,     0,     0,     0,     0,   269,   677,   161,     0,
1117    259,   269,   413,   269,   269,   408,   416,     0,   391,     0,
1118    394,   278,   287,     0,    39,   269,     0,   194,   192,   657,
1119    542,     0,   175,   176,   643,   111,   145,   142,   148,     0,
1120    149,   146,   147,   151,     0,   156,     0,     0,     0,     0,
1121    269,     0,    78,    77,     0,    73,     0,    50,    45,    46,
1122     55,    66,    57,    70,     0,    74,    75,     0,     0,   301,
1123    269,   269,   275,   269,   269,     0,   414,   269,   400,     0,
1124    403,     0,    14,   492,   580,   174,   269,   143,   157,   154,
1125      0,   158,   159,   163,   295,    52,    49,     0,     0,    71,
1126     47,    64,   299,   261,   417,   408,   412,   269,   389,   395,
1127    644,   155,    65,    51,   415,   418,   392,     0,     0,     0
1128 };
1129
1130 static const short yydefgoto[] = {  1208,
1131     85,    86,    87,    88,   134,   296,   297,    89,   637,   773,
1132    298,   805,   931,    90,   671,   933,   909,    92,  1015,  1148,
1133   1095,  1079,  1149,  1187,  1087,  1017,  1018,  1019,  1091,  1020,
1134   1021,  1152,  1023,  1145,   757,   810,   758,   811,   759,   812,
1135    893,   813,   762,   814,   894,   891,   892,   791,   764,   765,
1136    995,   996,   997,  1062,   998,   766,   767,    93,   258,   428,
1137    259,   560,    94,  1002,  1129,  1130,  1004,  1076,  1098,  1077,
1138    174,   175,   497,   176,   942,   177,   178,   397,   535,   179,
1139    180,   181,   182,   183,   184,   185,   186,   187,   188,   529,
1140    189,   531,   190,   530,   837,   191,   220,   467,   309,   416,
1141     96,   650,   779,   127,   578,    97,   292,   193,   256,   128,
1142    129,   908,   797,   798,   799,   800,   920,    99,   768,   816,
1143   1007,   770,   771,   817,  1026,   902,  1024,   100,   101,   102,
1144    103,   104,   105,   106,   107,   108,   109,   110,   111,   323,
1145    417,   434,   113,   264,  1207,   114,   783,  1170,   786,  1172,
1146    653,  1108,   656,  1110,   115,   911,   912,  1105,  1106,   116,
1147    661,   571,   572,   821,   131,   456,   124,   125,   118,   586,
1148    587,   457,   458,   459,   673,   592,   324,   827,   823,   476,
1149    345,   221,   241,   222,   223,   346,   939,  1117,   225,   633,
1150    226,   227,   421,   228,   229,   195,   402,   347,   343,   348,
1151    461,   686,   349,   311,   610,   350,   200,   351,   541,   781,
1152   1033,   234,   557,   492,   401,   202,   558,   559,   352,   203,
1153    204,   353,   630,   596,   354,   237,   355,   359,   689,   724,
1154    888,   725,   208,   727,   728,   729,   730,   731,   732,   733,
1155    734,   735,   736,   737,   738,   739,   740,   741,   984,  1177,
1156    742,  1121,   356,   357,   210,   358,   261,   310,   213,   121
1157 };
1158
1159 static const short yypact[] = {  2153,
1160 -32768,-32768,    37,  5269,-32768,  6398,-32768,   493,  3112,  3409,
1161   3409,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1162 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1163 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1164 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1165 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1166 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1167 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   450,
1168 -32768,-32768,-32768,-32768,  2352,-32768,-32768,-32768,   364,-32768,
1169 -32768,    54,-32768,    86,-32768,-32768,-32768,   131,  6233,-32768,
1170 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  6233,
1171   6233,   169,   113,-32768,   828,-32768,-32768,   493,-32768,-32768,
1172 -32768,-32768,-32768,-32768,    37,-32768,-32768,   184,-32768,   169,
1173 -32768,-32768,-32768,  5269,-32768,   209,-32768,  5499,-32768,   216,
1174    225,   234,-32768,   245,   493,   262,   320,   852,-32768,  2730,
1175   5499,  5499,  5499,  5499,  5499,  5499,-32768,  5524,  5524,   324,
1176 -32768,   345,   356,   362,   404,   419,   350,  4685,-32768,   436,
1177    445,-32768,   460,-32768,   681,   677,-32768,-32768,-32768,  1030,
1178    132,   261,   554,   354,   461,   463,   470,   491,   100,-32768,
1179 -32768,   337,-32768,  3535,   457,   462,-32768,-32768,-32768,-32768,
1180    559,  3156,-32768,  4685,-32768,  3535,-32768,   397,  3535,-32768,
1181 -32768,   571,   599,-32768,   575,-32768,  2921,   460,   615,   458,
1182    555,  3305,-32768,  3409,-32768,-32768,-32768,  5856,-32768,-32768,
1183 -32768,-32768,   661,   670,-32768,-32768,  3409,  3535,-32768,-32768,
1184    591,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1185 -32768,-32768,-32768,-32768,   706,   738,-32768,-32768,  6122,-32768,
1186 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1187 -32768,-32768,-32768,-32768,-32768,-32768,   752,   532,-32768,-32768,
1188    493,   493,   391,-32768,   364,-32768,-32768,-32768,-32768,   757,
1189 -32768,-32768,   766,   722,   532,    86,-32768,   403,   784,-32768,
1190    493,-32768,    41,  5499,-32768,-32768,-32768,-32768,-32768,-32768,
1191    788,  5499,  5499,  5499,  1753,   801,-32768,-32768,-32768,   601,
1192    782,  5723,   283,   808,   850,-32768,-32768,-32768,-32768,-32768,
1193 -32768,   879,  5499,-32768,-32768,  5499,   891,   917,   933,   965,
1194    970,   350,   665,  5126,-32768,  4685,-32768,-32768,-32768,-32768,
1195    983,-32768,-32768,  4685,-32768,  4685,-32768,-32768,-32768,  1275,
1196   5499,-32768,-32768,    66,  5499,  5499,  5499,  5499,  5499,  5499,
1197   5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,
1198   5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,
1199   5499,-32768,-32768,-32768,-32768,  5499,   479,-32768,-32768,  2539,
1200 -32768,-32768,   999,-32768,-32768,  1024,-32768,  5499,   966,  1026,
1201   1034,-32768,-32768,-32768,-32768,-32768,   169,  5856,-32768,-32768,
1202   3409,  1972,  1056,-32768,-32768,  5499,   309,  3639,  4767,   532,
1203 -32768,   515,  6398,   990,  1077,  1087,  1095,  1098,  1095,   493,
1204   1099,   532,-32768,   532,-32768,-32768,-32768,  1031,  1093,  1100,
1205 -32768,   532,   403,-32768,   493,  1107,-32768,  1112,   493,   272,
1206   1113,-32768,   295,  1115,   439,  1115,  1116,-32768,-32768,-32768,
1207 -32768,  5437,  1118,   415,-32768,   688,  5499,-32768,-32768,  1122,
1208 -32768,-32768,-32768,-32768,-32768,-32768,  5499,-32768,  1119,-32768,
1209   3639,-32768,-32768,  1135,  1123,-32768,   471,-32768,    60,   493,
1210    493,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1211 -32768,-32768,-32768,-32768,-32768,  1030,  1030,   132,   132,   261,
1212    261,   261,   261,   554,   554,   354,   461,   463,  5499,  5499,
1213   5499,-32768,  5556,  5611,-32768,-32768,  5115,-32768,  3349,  3825,
1214 -32768,-32768,  1125,   548,-32768,-32768,   532,-32768,-32768,  1127,
1215   1129,-32768,  1132,-32768,  4197,-32768,-32768,  4011,  4241,  1130,
1216 -32768,  1136,-32768,-32768,  1141,  1143,-32768,  1144,  1148,-32768,
1217    699,-32768,  1146,-32768,-32768,-32768,   184,-32768,    82,-32768,
1218 -32768,  5499,   342,   532,-32768,-32768,  1147,-32768,-32768,  1166,
1219   6398,-32768,-32768,-32768,-32768,  1149,-32768,  1753,-32768,-32768,
1220   1150,   519,   688,  5448,  1151,-32768,-32768,-32768,-32768,  1154,
1221 -32768,-32768,  1155,-32768,  5499,-32768,-32768,-32768,-32768,   470,
1222    733,   491,  5499,-32768,  5499,-32768,-32768,-32768,  4345,  4685,
1223   5499,-32768,  5644,-32768,  5499,-32768,   896,-32768,-32768,-32768,
1224   4389,  4493,-32768,  4537,-32768,  1130,-32768,  1153,-32768,-32768,
1225 -32768,-32768,-32768,  1160,-32768,-32768,  1161,-32768,   493,-32768,
1226    493,  1101,  5034,-32768,-32768,  1156,-32768,  1159,-32768,   466,
1227    896,-32768,   493,   740,  4685,  1168,-32768,-32768,   148,  1163,
1228 -32768,  1164,    78,  1171,  1169,  1173,-32768,  5499,  5644,-32768,
1229 -32768,-32768,-32768,  1172,  1174,-32768,-32768,   577,  5499,  5499,
1230   5499,  5499,  5499,  5499,  5499,  5524,  5524,  1176,   800,   827,
1231    977,   882,   844,  1091,   759,   777,   798,   804,  1193,  1184,
1232   1158,  1138,   263,  1199,-32768,    53,-32768,-32768,-32768,-32768,
1233 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1234 -32768,-32768,   853,   867,-32768,  1040,-32768,-32768,-32768,-32768,
1235 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   896,-32768,  1137,
1236 -32768,-32768,  1139,-32768,  1140,-32768,-32768,-32768,  1162,-32768,
1237   1538,  1165,   896,-32768,-32768,  4641,-32768,-32768,-32768,-32768,
1238   6320,-32768,-32768,  6320,-32768,-32768,-32768,-32768,  5499,   846,
1239   1208,-32768,  5034,  5499,   493,-32768,-32768,  5034,   620,-32768,
1240   1206,  5034,  1170,-32768,   896,-32768,  1209,-32768,-32768,-32768,
1241    896,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   364,  1207,
1242 -32768,   727,-32768,   688,-32768,-32768,  1210,-32768,-32768,-32768,
1243   1211,   493,-32768,-32768,   902,  1212,  5499,-32768,-32768,  1215,
1244    913,  1213,   931,   932,   995,   997,   998,  1027,  1028,  1029,
1245   5499,  5468,  5499,  1035,  1036,   195,  5499,  5499,  5499,  5499,
1246   5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,
1247   5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,  5499,
1248   5499,  5499,  5499,  5499,-32768,  5499,-32768,  1218,  1222,-32768,
1249   1053,  1203,   576,   155,-32768,-32768,-32768,-32768,-32768,-32768,
1250 -32768,   289,-32768,-32768,-32768,-32768,  5034,   639,-32768,   169,
1251   4845,-32768,  6320,  4845,  6320,-32768,-32768,-32768,-32768,   894,
1252   1219,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1253    896,-32768,    86,-32768,   411,-32768,-32768,-32768,  5479,-32768,
1254 -32768,   735,-32768,  1227,  1130,-32768,-32768,  1038,  5499,  1228,
1255   1051,  1054,   110,   493,   493,-32768,-32768,-32768,-32768,-32768,
1256 -32768,-32768,-32768,-32768,-32768,-32768,  1064,  1065,  1067,   885,
1257    938,   822,   839,    71,   142,   539,   582,    91,   731,    55,
1258    817,   101,   470,  5499,   491,  5644,-32768,   397,  1040,-32768,
1259 -32768,-32768,-32768,-32768,   768,-32768,  5989,   576,   218,   218,
1260 -32768,-32768,   107,   859,-32768,-32768,   319,-32768,   518,   432,
1261 -32768,-32768,-32768,-32768,-32768,  1225,-32768,     3,-32768,  1078,
1262 -32768,   640,  1226,    86,-32768,   319,-32768,-32768,-32768,  1236,
1263    507,-32768,-32768,  4845,-32768,  4845,-32768,-32768,  5009,-32768,
1264    869,-32768,  1175,   747,-32768,-32768,   493,-32768,  1066,  1074,
1265 -32768,  1076,  1079,-32768,-32768,  1008,-32768,-32768,   576,-32768,
1266 -32768,-32768,-32768,-32768,-32768,   437,   107,   810,   493,   493,
1267    218,-32768,   319,   319,-32768,   373,   946,-32768,  1240,  1010,
1268    721,   432,   535,    83,-32768,-32768,   518,-32768,-32768,-32768,
1269    518,    28,   493,   493,  1241,   518,-32768,    86,  1243,   964,
1270 -32768,   532,-32768,-32768,  1246,-32768,  1247,  1248,-32768,  1250,
1271 -32768,-32768,-32768,  1183,-32768,   229,  1249,-32768,-32768,-32768,
1272 -32768,  1252,  1082,  1084,-32768,-32768,-32768,-32768,   107,  1253,
1273    397,-32768,-32768,   107,   762,   373,   829,   493,   493,   319,
1274 -32768,  1092,-32768,-32768,   518,-32768,   721,  1239,-32768,   535,
1275 -32768,   535,-32768,-32768,  1255,-32768,-32768,  1092,  1258,-32768,
1276 -32768,-32768,-32768,  5499,   507,  1267,-32768,-32768,-32768,  1266,
1277 -32768,  1270,-32768,-32768,-32768,  1090,  5499,-32768,-32768,-32768,
1278   1260,-32768,-32768,   373,-32768,-32768,-32768,  1271,    83,-32768,
1279 -32768,-32768,-32768,-32768,-32768,-32768,-32768,  5499,-32768,-32768,
1280 -32768,-32768,-32768,-32768,-32768,-32768,-32768,  1291,  1297,-32768
1281 };
1282
1283 static const short yypgoto[] = {-32768,
1284 -32768,  1230,-32768,-32768,-32768,-32768,  -400,  -112,-32768,-32768,
1285   1009,-32768,-32768,-32768,-32768,-32768,    59,-32768,-32768,   396,
1286 -32768,-32768,   122,   154,-32768,   226,-32768,-32768,-32768,  -942,
1287 -32768,  -848,-32768,-32768,  -409,  -716,-32768,-32768,-32768,  -580,
1288 -32768,  -544,-32768,  -512,-32768,   327,-32768,-32768,   655,  -639,
1289 -32768,   259,   326,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1290 -32768,-32768,-32768,-32768,  -876,   188,-32768,  -960,-32768,   300,
1291 -32768,  -592,   475,  1263,-32768,-32768,  -591,-32768,-32768,   -90,
1292   -363,  -362,  -361,  -360,  -368,  -359,  -358,  -514,  -481,-32768,
1293   -588,-32768,  -136,-32768,-32768,   836,   174,  -564,  -397,    14,
1294 -32768,-32768,-32768,  -435,-32768,-32768,-32768,   711,  -242,   884,
1295 -32768,  -857,  -754,-32768,-32768,   533,-32768,-32768,-32768,  -507,
1296 -32768,-32768,-32768,  -335,-32768,-32768,-32768,-32768,-32768,   560,
1297 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1298     47,   769,-32768,   967,-32768,-32768,-32768,-32768,-32768,-32768,
1299 -32768,-32768,-32768,-32768,  1145,  -744,  -652,-32768,   170,-32768,
1300 -32768,   676,   679,   517,     1,  -384,  1221,-32768,     2,-32768,
1301 -32768,  -572,-32768,-32768,-32768,   667,  -266,  1021,-32768,  -462,
1302    129,  1336,-32768,  1111,-32768,   187,-32768,-32768,-32768,-32768,
1303   -145,-32768,-32768,-32768,-32768,-32768,   168,  1283,  1007,  1292,
1304 -32768,-32768,  1332,-32768,-32768,  -341,-32768,    26,   230,  -565,
1305   -846,-32768,   861,-32768,-32768,   950,  -190,  -456,   128,-32768,
1306    149,    51,-32768,-32768,    97,-32768,   106,-32768,-32768,   664,
1307 -32768,   368,  -607,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1308 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1309 -32768,-32768,  1389,-32768,-32768,  1626,  -247,     0,   449,-32768
1310 };
1311
1312
1313 #define YYLAST          6589
1314
1315
1316 static const short yytable[] = {   119,
1317    117,   308,   489,   119,   126,   285,   576,   119,   212,   212,
1318    212,   603,   435,    95,   620,   516,   517,  1003,   518,   519,
1319    526,   520,   521,   522,   523,   726,   524,   525,   551,   680,
1320    527,   815,   528,   676,   201,   233,   233,   418,   919,   914,
1321    711,   713,   553,   923,   723,   454,   112,   927,   448,   622,
1322    130,   585,   133,  1022,  1154,   450,   760,  1085,    91,   205,
1323    326,   327,   328,   329,   330,   331,  1080,  1035,   429,  1041,
1324      3,   410,   257,  -590,   601,  -632,   414,  -590,   415,  -632,
1325    396,   726,   454,   629,   119,   117,   617,  1008,   930,   609,
1326    784,  -624,   761,   500,   934,  -624,   711,   713,    95,   260,
1327    723,   642,   830,   260,   664,   206,  1082,   387,   388,   501,
1328    831,  -629,  1135,  1136,   207,  -629,  1010,   119,   721,   381,
1329    382,  -636,  1066,  1067,   763,  -636,   288,   383,   384,   769,
1330    396,   112,  1068,   119,  1069,   301,  1053,   235,   235,   390,
1331    393,   385,   386,    91,   119,   263,   122,   123,  1153,   212,
1332   1070,   722,  1027,  1159,   262,   394,   263,   263,   236,   236,
1333   1081,  1083,  -625,   379,   380,   815,  -625,   212,  1034,  1100,
1334   1036,   815,   260,   472,   721,   201,   196,   760,   999,  1184,
1335    300,     3,   192,   669,   666,  1086,  -269,  1109,  1000,  1111,
1336    381,   382,   760,   212,  1134,   194,   224,   224,   668,   279,
1337    205,   212,  1188,   212,   289,   212,   682,   722,   212,   540,
1338    450,   824,   607,   761,  1042,  1155,   212,   913,   647,   201,
1339    915,   212,   954,   212,  -408,  -408,  -408,   201,   761,  -408,
1340   -408,   201,   303,  1147,   201,  1150,   212,   212,   955,   312,
1341    405,   999,   233,   411,   205,   763,   206,   233,   313,   233,
1342    769,  1000,   205,  -459,   472,   207,   205,   314,  1032,   205,
1343    763,  1032,   233,   201,   718,   769,    78,  1013,   315,   714,
1344    715,   716,   717,   719,   720,   549,   414,   119,   432,   317,
1345    119,   119,   119,   988,  1113,   513,   514,   515,   205,   308,
1346    206,   815,   396,  1008,   119,   447,   470,   435,   206,   207,
1347    119,   772,   206,   885,   489,   206,  -269,   207,   472,   381,
1348    382,   207,  1009,   454,   207,   396,     3,   325,   886,   595,
1349    718,   320,  1010,   321,   474,   714,   715,   716,   717,   719,
1350    720,   665,   403,   552,   206,   308,   194,   318,    78,  1001,
1351   1150,   685,  1073,   207,   235,   212,   454,   336,   895,   235,
1352    308,   235,  1074,   212,   395,   212,   694,   396,   695,   824,
1353    337,   398,   680,   905,   235,   236,   667,   192,   471,   983,
1354    236,   338,   236,   404,  1045,   192,   406,   339,   726,   192,
1355    194,  1032,   192,  1032,   495,   236,   606,  -270,   194,   255,
1356    409,   916,   194,   711,   713,   194,   921,   723,  1137,   212,
1357   1138,    78,  1001,   224,   985,   423,   387,   388,   224,   440,
1358    224,   192,    78,    79,   135,   454,  1139,    82,    83,   340,
1359    212,   212,   772,   224,   194,   201,  -270,   212,   449,   119,
1360    561,   548,   842,   341,  -408,   678,  -408,   772,  -269,   119,
1361    472,   119,   548,   119,  -408,   308,   233,   233,   120,   342,
1362    205,   119,   120,   301,   119,  1082,   136,  -680,   119,   396,
1363   1131,  1127,  1068,   597,  1069,  1010,  -684,   308,  1011,  1012,
1364    808,   721,    78,  1013,   490,   412,  1014,   460,   396,   471,
1365   1070,  -681,   493,  -686,   494,   463,   464,   465,   466,   389,
1366    212,   615,  -408,  -408,  -408,   616,   206,  -408,  -408,   119,
1367    119,   390,    78,  1075,   722,   207,   460,   970,   971,   391,
1368    972,   973,   980,   974,   975,   976,   977,   460,   978,   979,
1369    533,   534,   981,   454,   982,  -408,  -408,  -408,  1104,  1131,
1370   -408,  -408,  -408,   120,   499,  -408,  -686,  -408,   212,   212,
1371      3,  1009,  -408,   678,  -408,   392,   119,   634,   235,   235,
1372    399,  1010,  -408,   548,   212,  -513,   556,   212,   212,  -626,
1373   1092,   819,  1093,  -626,   201,     3,   120,   538,   396,   236,
1374    236,   548,   632,   192,    78,    79,   135,   400,  1094,    82,
1375     83,   544,   302,   119,   405,   301,   194,   381,   382,   205,
1376    383,   384,  -683,   316,  -408,  -408,  -408,   396,   408,  -408,
1377   -408,   840,  -627,  1049,   385,   386,  -627,   224,   224,   843,
1378    844,   845,   846,   847,   848,    78,  1013,   718,   469,   556,
1379    407,   396,   714,   715,   716,   717,   719,   720,   212,   212,
1380    381,   382,   743,  -686,  -686,   206,  -682,   674,  -686,  -686,
1381    212,   212,   924,   212,   207,   794,  1005,   795,   413,    78,
1382     79,   135,   308,   603,    82,    83,  1028,   308,   119,  1029,
1383    119,   -46,   212,   990,   991,  1092,  1163,  1093,   556,   119,
1384    487,   488,   119,   119,   212,   822,    78,    79,   135,   419,
1385    474,    82,    83,  1094,   424,  1043,   556,   645,   743,   420,
1386     78,    79,   135,   992,   993,    82,    83,  1011,  1012,   365,
1387    946,    78,  1013,   621,   360,  1014,   361,   994,  -408,   819,
1388     98,  -269,   192,   604,    98,    78,    79,   135,   658,   659,
1389     82,    83,   242,   243,  -408,   194,   120,   362,   363,   437,
1390    439,   441,   425,   366,   367,   368,   369,   370,   371,   372,
1391    373,   374,   375,   120,   446,  1146,  1092,  1060,  1093,   302,
1392   -269,  -630,   472,   396,   693,  -630,  1072,   645,   697,  1046,
1393      3,   427,  1047,  -269,  1094,   472,  1195,   383,   384,   431,
1394    645,   466,   472,     3,   443,   212,  1097,   967,   968,   969,
1395      3,   385,   386,   445,  1122,   260,  1179,  1137,  1059,  1138,
1396    871,   872,   212,  1114,   119,    98,   460,   212,   460,   395,
1397   1206,   212,   396,   825,   698,  1139,   470,   451,   744,   462,
1398    265,   266,   267,   268,   269,   270,   271,   272,   468,   274,
1399   -587,   119,   277,   822,  -587,   873,   874,   910,    98,  1141,
1400    910,   119,   477,   999,   875,   876,  1128,  -634,   290,   291,
1401    293,  -634,  -621,  1000,   299,   389,  -621,  -586,   877,   878,
1402   1161,  -586,   999,   379,   380,  1180,   879,   880,  1050,  -622,
1403    322,   835,  1000,  -622,  -610,   917,   659,   332,  -610,   319,
1404    379,   380,   841,  -585,   478,   304,   260,  -585,   120,  1071,
1405    151,   152,   153,   154,   155,   156,   260,   396,   573,  1029,
1406    120,   889,   120,  1006,   281,   282,   283,   157,   158,   159,
1407    302,  1025,   479,   588,   857,  -619,   212,   593,   481,  -619,
1408     78,    79,   135,  1038,  1039,    82,    83,   937,   376,   377,
1409    378,   160,   396,    78,    79,   135,   944,   322,    82,    83,
1410     78,    79,   135,   396,   482,    82,    83,   948,   858,   859,
1411    860,   861,   862,   863,   864,   865,   866,   867,   618,   619,
1412    483,  -604,  -609,   119,   119,  -604,  -609,   910,  -618,   910,
1413    910,   910,  -618,   260,   169,   426,  1140,   746,   747,   748,
1414    749,   376,   377,   378,   750,   751,   752,   753,   754,   755,
1415    756,  1162,   484,   412,  1029,   743,   396,   485,    98,   433,
1416    470,   436,   438,    78,  1001,   120,  1064,   172,  1006,  1006,
1417    852,   491,   853,   285,  -408,    98,  1078,   542,  1025,  1025,
1418   1063,   299,    78,  1001,   322,  -608,   172,  -607,  -606,  -608,
1419   -408,  -607,  -606,   854,   855,  1078,   953,   308,   396,  1125,
1420    119,  1107,   302,   473,   543,    78,   305,   306,   212,   172,
1421   1201,  1143,  1144,   119,   561,  1116,   119,  -605,  -602,  -603,
1422    545,  -605,  -602,  -603,   322,  -599,  -600,   546,  -591,  -599,
1423   -600,   308,  -591,   376,   377,   378,   550,  1006,   119,   119,
1424   1006,  -594,  1078,  1078,   615,  -594,   275,   276,  1052,   563,
1425    910,  1025,   910,  1025,  -614,  -615,  1025,  -616,  -614,  -615,
1426   1025,  -616,   119,   119,  -612,  1025,  -595,   564,  -612,  -593,
1427   -595,   119,  -597,  -593,  -598,   565,  -597,   573,  -598,   573,
1428   -596,   801,   466,  -269,  -596,   119,   568,   574,   809,   581,
1429    580,   593,   120,   583,   868,   869,   870,   277,  1088,  1089,
1430   1090,   589,   590,   598,   594,   396,  1006,   119,   119,  1078,
1431     98,   602,   608,   611,  1025,   613,   614,   566,   631,   569,
1432    635,   575,    98,   646,    98,   636,   638,  1056,   649,   582,
1433    652,   654,   299,   655,   119,  1107,   657,   670,   660,   591,
1434    672,   480,   746,   675,   683,   687,   677,   778,   688,   782,
1435    785,   599,   804,   806,   473,   826,   605,   828,  1025,   433,
1436    829,   832,   884,   833,   834,   498,   838,   883,   839,   851,
1437    502,   503,   504,   505,   506,   507,   508,   509,   510,   511,
1438    512,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1439    253,   881,   882,   887,   890,   918,   896,   926,   897,   898,
1440    935,   532,   947,   932,   940,   941,   945,   949,   986,   987,
1441    172,   801,   989,   922,  1048,  1040,   801,  1084,  1051,  1096,
1442    801,   901,   273,  1103,   904,  1120,   278,    98,   280,   928,
1443    284,  1142,  1158,  1140,  1115,   286,  1165,  1169,  1168,  1171,
1444    120,   648,  1173,  1174,   433,   294,  1176,   295,  1189,  1178,
1445    943,  1190,  1192,  1186,  1197,  1199,  1202,   662,   663,  1200,
1446   1209,   197,   230,   230,   299,  1203,  1210,  1016,   304,   496,
1447    198,   231,   231,   151,   152,   153,   154,   155,   156,   453,
1448   1204,  1191,  1151,   605,   254,  1058,   792,  1126,   433,   364,
1449    157,   158,   159,  1065,  1181,  1099,   952,   577,   691,   692,
1450    903,   925,   651,   322,  1196,   322,   790,   788,   938,   818,
1451    199,   232,   232,   475,   160,   287,   240,   422,   486,   539,
1452   1175,   612,   836,  1057,     0,   801,     0,     0,     0,     0,
1453    780,     0,     0,     0,     0,     0,     0,     0,   787,     0,
1454    789,     0,     0,     0,   802,   803,     0,     0,     0,   807,
1455      0,     0,     0,   591,   820,     0,     0,   169,     0,   473,
1456      0,     0,     0,     0,     0,     0,     0,   209,   238,   238,
1457    307,     0,  1054,  1055,     0,     0,   430,     0,     0,   322,
1458      0,     0,     0,   307,   307,   307,   307,   307,   307,     0,
1459    334,   335,     0,     0,     0,     0,     0,     0,     0,     0,
1460      0,     0,   197,   442,     0,     0,   444,     0,     0,     0,
1461      0,   198,     0,     0,   452,     0,     0,   455,     0,     0,
1462    690,     0,     0,     0,     0,     0,     0,     0,    78,   305,
1463    306,     0,   172,     0,     0,     0,     0,     0,     0,     0,
1464      0,     0,     0,     0,     0,     0,   197,     0,     0,   120,
1465      0,   199,     0,     0,   197,   198,     0,   801,   197,   907,
1466      0,   197,   120,   198,     0,  1119,     0,   198,   796,   230,
1467    198,     0,     0,     0,   230,     0,   230,     0,   231,     0,
1468      0,     0,     0,   231,     0,   231,     0,  1132,  1133,   230,
1469    197,     0,     0,     0,     0,   199,     0,     0,   231,   198,
1470      0,   936,   820,   199,   605,     0,     0,   199,   209,     0,
1471    199,  1156,  1157,     0,     0,     0,     0,     0,   232,     0,
1472    120,     0,     0,   232,     0,   232,     0,     0,     0,     0,
1473      0,   547,     0,     0,   120,     0,     0,     0,   232,   199,
1474      0,   455,     0,     0,     0,     0,   562,     0,     0,     0,
1475      0,   567,   209,   570,     0,     0,  1182,  1183,     0,     0,
1476    209,   579,     0,     0,   209,   584,     0,   209,     0,     0,
1477      0,     0,     0,     0,     0,   238,     0,     0,     0,     0,
1478    238,     0,   238,   120,     0,     0,     0,     0,     0,     0,
1479   1030,     0,     0,     0,     0,   238,   209,  1037,   796,     0,
1480      0,     0,     0,   796,   211,   239,   239,   796,   307,   307,
1481    307,   307,   307,   307,   307,   307,   307,   307,   307,   307,
1482    307,   307,   307,   307,     0,     0,     0,    21,    22,    23,
1483     24,     0,    25,     0,     0,     0,     0,    30,    31,     0,
1484      0,    34,    35,     0,    37,    38,    39,    40,     0,     0,
1485      0,     0,   197,     0,     0,     0,   950,   498,   307,    52,
1486     53,   198,   956,   957,   958,   959,   960,   961,   962,   963,
1487    964,   965,   966,   230,   230,     0,     0,     0,     0,     0,
1488      0,     0,   231,   231,    77,     0,     0,     0,     0,     0,
1489      0,     0,     0,     0,    81,     0,     0,   455,     0,     0,
1490      0,   199,     0,     0,   307,     0,     0,     0,  1101,   307,
1491      0,    98,   796,     0,     0,     0,   679,     0,     0,   307,
1492      0,   684,   232,   232,   820,     0,  1118,     0,     0,     0,
1493      0,   433,     0,     0,  1123,  1124,     0,     0,     0,     0,
1494   -251,     0,     0,     0,     0,   211,   304,     0,   562,     0,
1495    745,   151,   152,   153,   154,   155,   156,     0,   209,     0,
1496      0,   307,     0,   307,     0,   624,   626,     0,   157,   158,
1497    159,     0,     0,     0,     0,     0,     0,  1160,     0,   238,
1498    238,     0,    98,     0,  1164,  1166,     0,     0,     0,   211,
1499      0,   197,   160,     0,     0,     0,   820,   211,     0,     0,
1500    198,   211,     0,     0,   211,     0,     0,     0,     0,     0,
1501      0,     0,   239,     0,   307,     0,     0,   239,     0,   239,
1502      0,  1185,     0,     0,     0,   856,     0,     0,     0,     0,
1503      0,     0,   239,   211,     0,   169,   307,     0,     0,     0,
1504    199,  1193,  1194,     0,   796,    98,     0,     0,  1198,     0,
1505      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506      0,     0,     0,     0,     0,   712,     0,     0,     0,     0,
1507      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1508    899,   900,     0,     0,     0,     0,     0,     0,     0,     0,
1509      0,     0,     0,     0,     0,     0,     0,   209,     0,     0,
1510      0,     0,     0,     0,     0,     0,    78,   305,   306,     0,
1511    172,     0,     0,     0,     0,     0,     0,     0,   929,     0,
1512      0,   712,     0,     0,     0,     0,     0,     0,     0,     0,
1513      0,     0,   307,   307,   307,   307,   307,   307,   849,   850,
1514      0,     0,   214,     0,     0,     0,     0,   138,   139,   140,
1515      0,     0,   215,   143,   144,   145,   146,   147,   148,   216,
1516   -486,  -486,     0,     0,     0,   217,  -486,     0,     0,     0,
1517    151,   152,   153,   154,   155,   156,     0,     0,     0,     0,
1518      0,     0,     0,  -269,  -269,     0,     0,   157,   158,   159,
1519      0,     0,     0,     0,     0,   211,     0,     0,     0,     0,
1520      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1521      0,   160,     0,     0,     0,     0,   239,   239,     0,     0,
1522      0,   307,     0,     0,  1031,     0,   307,     0,     0,     0,
1523      0,     0,     0,     0,     0,  -486,   162,   163,   164,   165,
1524    166,   167,     0,     0,     0,     0,     0,     0,     0,  1044,
1525    168,     0,     0,     0,   169,     0,     0,     0,     0,     0,
1526      0,     0,     0,     0,     0,     0,     0,     0,     0,   307,
1527      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1528      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1529      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1530    307,   307,   307,   307,   307,   307,   307,   307,   307,   307,
1531    307,   307,   307,   307,   307,   307,   307,     0,   307,     0,
1532      0,     0,    -1,     1,     0,    78,   170,   171,     0,   172,
1533    218,   219,     0,     0,   211,     0,     0,     0,     0,     0,
1534      2,     0,     0,  1102,     0,     0,  -269,     0,     0,     0,
1535      0,     0,     0,     0,     0,     0,     3,     0,     0,     0,
1536      0,     0,     0,     0,     0,     0,     0,     4,     0,     0,
1537      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1538      0,   307,     0,     0,     0,     0,     0,     0,     0,  -408,
1539   -408,  -408,     0,     5,     0,     0,     0,     0,     6,     7,
1540      8,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1541      0,     0,     0,     9,    10,    11,     0,     0,   712,     0,
1542   1167,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1543      0,     0,    12,    13,    14,     0,    15,    16,    17,    18,
1544     19,    20,    21,    22,    23,    24,     0,    25,    26,    27,
1545     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1546     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1547     48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1548     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1549     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1550      0,     0,     0,     0,     0,     0,    78,    79,    80,    81,
1551   1205,    82,    83,    84,     0,     0,     0,     0,     0,     0,
1552      0,    -2,     1,     0,     0,     0,     0,     0,     0,     0,
1553      0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1554      0,     0,     0,     0,     0,  -269,     0,     0,     0,     0,
1555      0,     0,     0,     0,     0,     3,     0,     0,     0,     0,
1556      0,     0,     0,     0,     0,     0,     4,     0,     0,     0,
1557      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1558      0,     0,     0,     0,     0,     0,     0,     0,  -408,  -408,
1559   -408,     0,     5,     0,     0,     0,   307,     6,     7,     8,
1560      0,     0,     0,     0,     0,     0,     0,     0,     0,   307,
1561      0,     0,     9,    10,    11,     0,     0,     0,     0,     0,
1562      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1563    307,    12,    13,    14,     0,    15,    16,    17,    18,    19,
1564     20,    21,    22,    23,    24,     0,    25,    26,    27,    28,
1565     29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1566     39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1567     49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1568     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1569     69,    70,    71,    72,    73,    74,    75,    76,    77,     0,
1570      0,     0,     0,     0,     0,    78,    79,    80,    81,   137,
1571     82,    83,    84,     0,   138,   139,   140,     0,   141,   142,
1572    143,   144,   145,   146,   147,   148,   149,  -541,   536,     0,
1573      0,     0,   150,     0,     0,     0,     0,   151,   152,   153,
1574    154,   155,   156,     0,     0,     0,     0,     0,     0,     0,
1575   -269,  -269,     0,     4,   157,   158,   159,     0,     0,     0,
1576      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1577      0,     0,     0,     0,     0,  -408,  -408,  -408,   160,     5,
1578      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1579      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1580      0,     0,     0,   162,   163,   164,   165,   166,   167,     0,
1581      0,     0,     0,     0,     0,     0,     0,   168,    12,    13,
1582     14,   169,    15,    16,    17,    18,    19,    20,    21,    22,
1583     23,    24,     0,    25,    26,    27,    28,    29,    30,    31,
1584     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1585     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1586     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1587     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1588     72,    73,    74,    75,    76,    77,     0,     0,     0,     0,
1589      0,     0,    78,   170,   537,    81,   172,   173,    83,    84,
1590    137,     0,     0,     0,     0,   138,   139,   140,     0,   141,
1591    142,   143,   144,   145,   146,   147,   148,   149,  -541,     0,
1592      0,     0,     0,   150,     0,     0,     0,     0,   151,   152,
1593    153,   154,   155,   156,     0,     0,     0,     0,     0,     0,
1594      0,  -269,  -269,     0,     0,   157,   158,   159,     0,     0,
1595      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1596      0,     0,     0,     0,     0,     0,  -269,  -269,  -269,   160,
1597      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1598      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1599      0,     0,     0,     0,   162,   163,   164,   165,   166,   167,
1600      0,     0,     0,     0,     0,     0,     0,     0,   168,  -269,
1601   -269,  -269,   169,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
1602   -269,  -269,  -269,     0,  -269,  -269,  -269,  -269,  -269,  -269,
1603   -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
1604   -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
1605   -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
1606   -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
1607   -269,  -269,  -269,  -269,  -269,  -269,  -269,     0,     0,     0,
1608      0,     0,     0,    78,   170,   171,  -269,   172,   173,    83,
1609   -269,   214,     0,     0,     0,     0,   138,   139,   140,     0,
1610      0,   215,   143,   144,   145,   146,   147,   148,   216,  -541,
1611   -545,     0,     0,     0,   217,     0,     0,     0,     0,   151,
1612    152,   153,   154,   155,   156,     0,     0,     0,     0,     0,
1613      0,     0,  -269,  -269,     0,     0,   157,   158,   159,     0,
1614      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1615      0,     0,     0,     0,     0,     0,     0,  -269,  -269,  -269,
1616    160,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1617      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1618      0,     0,     0,     0,     0,   162,   163,   164,   165,   166,
1619    167,     0,     0,     0,     0,     0,     0,     0,     0,   168,
1620   -269,  -269,  -269,   169,  -269,  -269,  -269,  -269,  -269,  -269,
1621   -269,  -269,  -269,  -269,     0,  -269,  -269,  -269,  -269,  -269,
1622   -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
1623   -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
1624   -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
1625   -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
1626   -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,     0,     0,
1627      0,     0,     0,     0,    78,   170,   171,  -269,   172,   218,
1628    219,  -269,   137,     0,     0,     0,     0,   138,   139,   140,
1629      0,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1630   -541,     0,     0,     0,     0,   150,     0,     0,     0,     0,
1631    151,   152,   153,   154,   155,   156,     0,     0,     0,     0,
1632      0,     0,     0,  -269,  -269,     0,   137,   157,   158,   159,
1633      0,   138,   139,   140,     0,   141,   142,   143,   144,   145,
1634    146,   147,   148,   149,  -541,     0,     0,     0,     0,   150,
1635      0,   160,     0,     0,   151,   152,   153,   154,   155,   156,
1636      0,     0,     0,     0,     0,     0,     0,  -269,  -269,     0,
1637      0,   157,   158,   159,     0,   161,   162,   163,   164,   165,
1638    166,   167,     0,     0,     0,     0,     0,     0,     0,     0,
1639    168,     0,     0,     0,   169,   160,     0,     0,     0,     0,
1640      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1641      0,     0,     0,     0,     0,     0,     0,     0,     0,  -514,
1642    162,   163,   164,   165,   166,   167,     0,     0,     0,     0,
1643      0,     0,     0,     0,   168,     0,     0,     0,   169,     0,
1644      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1645      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1646      0,     0,     0,     0,     0,    78,   170,   171,     0,   172,
1647    173,    83,     0,     0,     0,   214,     0,     0,     0,     0,
1648    138,   139,   140,     0,     0,   215,   143,   144,   145,   146,
1649    147,   148,   216,  -541,  -545,     0,     0,     0,   217,     0,
1650      0,     0,     0,   151,   152,   153,   154,   155,   156,    78,
1651    170,   171,     0,   172,   173,    83,  -269,  -269,     0,   137,
1652    157,   158,   159,     0,   138,   139,   140,     0,   141,   142,
1653    143,   144,   145,   146,   147,   148,   149,  -541,   627,     0,
1654      0,     0,   150,     0,   160,     0,     0,   151,   152,   153,
1655    154,   155,   156,     0,     0,     0,     0,     0,     0,     0,
1656   -269,  -269,     0,     0,   157,   158,   159,     0,  -482,   162,
1657    163,   164,   165,   166,   167,     0,     0,     0,     0,   214,
1658      0,     0,     0,   168,   138,   139,   140,   169,   160,   215,
1659    143,   144,   145,   146,   147,   148,   216,  -541,  -545,     0,
1660      0,     0,   217,     0,     0,     0,     0,   151,   152,   153,
1661    154,   155,   156,   162,   163,   164,   165,   166,   167,     0,
1662   -269,  -269,     0,     0,   157,   158,   159,   168,     0,     0,
1663      0,   169,     0,     0,     0,     0,     0,     0,     0,     0,
1664      0,     0,     0,     0,     0,     0,     0,     0,   160,     0,
1665      0,     0,     0,     0,     0,     0,     0,     0,    78,   170,
1666    171,     0,   172,   218,   219,     0,     0,     0,     0,     0,
1667      0,     0,     0,   162,   163,   164,   165,   166,   167,     0,
1668      0,     0,     0,     0,     0,     0,     0,   168,     0,     0,
1669      0,   169,     0,     0,     0,     0,     0,     0,     0,     0,
1670      0,     0,    78,   170,   171,   137,   172,   173,    83,     0,
1671    138,   139,   140,     0,   141,   142,   143,   144,   145,   146,
1672    147,   148,   149,  -541,     0,     0,     0,     0,   150,     0,
1673      0,     0,     0,   151,   152,   153,   154,   155,   156,     0,
1674      0,     0,     0,     0,     0,     0,  -269,  -269,     0,     0,
1675    157,   158,   159,     0,     0,     0,     0,     0,     0,     0,
1676      0,     0,    78,   170,   171,     0,   172,   218,   219,     0,
1677      0,     0,     0,     0,   160,     0,     0,     0,     0,     0,
1678      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1679      0,     0,     0,     0,     0,     0,     0,     0,     0,   162,
1680    163,   164,   165,   166,   167,     0,     0,     0,     0,     0,
1681      0,     0,     0,   168,   138,   139,   140,   169,   141,   142,
1682    143,   144,   145,   146,   147,   148,   216,  -541,   554,     0,
1683      0,     0,   344,     0,     0,     0,     0,   151,   152,   153,
1684    154,   155,   156,     0,     0,     0,     0,     0,     0,     0,
1685   -269,  -269,     0,     4,   157,   158,   159,     0,     0,     0,
1686      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1687      0,     0,     0,     0,     0,     0,     0,     0,   160,     5,
1688      0,     0,     0,     0,     0,     0,     0,     0,    78,   170,
1689    171,     0,   172,   173,    83,     0,     0,     0,     0,     0,
1690      0,     0,     0,   162,   163,   164,   165,   166,   167,     0,
1691      0,     0,     0,     0,     0,     0,     0,   555,    12,    13,
1692     14,   169,    15,    16,    17,    18,    19,    20,    21,    22,
1693     23,    24,     0,    25,    26,    27,    28,    29,    30,    31,
1694     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1695     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1696     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1697     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1698     72,    73,    74,    75,    76,    77,     0,     0,     0,     0,
1699      0,     0,    78,   170,   537,    81,   172,   173,    83,    84,
1700    138,   139,   140,     0,   141,   142,   143,   144,   145,   146,
1701    147,   148,   216,  -541,   628,     0,     0,     0,   344,     0,
1702      0,     0,     0,   151,   152,   153,   154,   155,   156,     0,
1703      0,     0,     0,     0,     0,     0,  -269,  -269,     0,     4,
1704    157,   158,   159,     0,     0,     0,     0,     0,     0,     0,
1705      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1706      0,     0,     0,     0,   160,     5,     0,     0,     0,     0,
1707      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1708      0,     0,     0,     0,     0,     0,     0,     0,     0,   162,
1709    163,   164,   165,   166,   167,     0,     0,     0,     0,     0,
1710      0,     0,     0,   168,    12,    13,    14,   169,    15,    16,
1711     17,    18,    19,    20,    21,    22,    23,    24,     0,    25,
1712     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1713     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1714     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1715     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1716     66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1717     76,    77,     0,     0,     0,     0,     0,     0,    78,   170,
1718    537,    81,   172,   173,    83,    84,   138,   139,   140,     0,
1719    141,   142,   143,   144,   145,   146,   147,   148,   216,  -541,
1720    640,     0,     0,     0,   344,     0,     0,     0,     0,   151,
1721    152,   153,   154,   155,   156,     0,     0,     0,     0,     0,
1722      0,     0,  -269,  -269,     0,     4,   157,   158,   159,     0,
1723      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1724      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1725    160,     5,     0,     0,     0,     0,     0,     0,     0,     0,
1726      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1727      0,     0,     0,     0,     0,   162,   163,   164,   165,   166,
1728    167,     0,     0,     0,     0,     0,     0,     0,     0,   641,
1729     12,    13,    14,   169,    15,    16,    17,    18,    19,    20,
1730     21,    22,    23,    24,     0,    25,    26,    27,    28,    29,
1731     30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1732     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1733     50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1734     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1735     70,    71,    72,    73,    74,    75,    76,    77,     0,     0,
1736      0,     0,     0,     0,    78,   170,   537,    81,   172,   173,
1737     83,    84,   138,   139,   140,     0,   141,   142,   143,   144,
1738    145,   146,   147,   148,   216,  -541,   639,     0,     0,     0,
1739    344,     0,     0,     0,     0,   151,   152,   153,   154,   155,
1740    156,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1741      0,     0,   157,   158,   159,     0,   138,   139,   140,     0,
1742    141,   142,   143,   144,   145,   146,   147,   148,   216,  -541,
1743    643,     0,     0,     0,   344,     0,   160,     0,     0,   151,
1744    152,   153,   154,   155,   156,     0,     0,     0,     0,     0,
1745      0,     0,     0,     0,     0,     0,   157,   158,   159,     0,
1746      0,   162,   163,   164,   165,   166,   167,     0,     0,     0,
1747      0,     0,     0,     0,     0,   168,     0,     0,     0,   169,
1748    160,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1749      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1750      0,     0,     0,     0,     0,   162,   163,   164,   165,   166,
1751    167,     0,     0,     0,     0,     0,     0,     0,     0,   644,
1752    138,   139,   140,   169,   141,   142,   143,   144,   145,   146,
1753    147,   148,   216,  -541,   696,     0,     0,     0,   344,     0,
1754      0,     0,     0,   151,   152,   153,   154,   155,   156,     0,
1755     78,   170,   171,     0,   172,   173,    83,     0,     0,     0,
1756    157,   158,   159,     0,   138,   139,   140,     0,   141,   142,
1757    143,   144,   145,   146,   147,   148,   216,  -541,   774,     0,
1758      0,     0,   344,     0,   160,     0,     0,   151,   152,   153,
1759    154,   155,   156,     0,    78,   170,   171,     0,   172,   173,
1760     83,     0,     0,     0,   157,   158,   159,     0,     0,   162,
1761    163,   164,   165,   166,   167,     0,     0,     0,     0,     0,
1762      0,     0,     0,   168,     0,     0,     0,   169,   160,     0,
1763      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765      0,     0,     0,   162,   163,   164,   165,   166,   167,     0,
1766      0,     0,     0,     0,     0,     0,     0,   168,   138,   139,
1767    140,   169,   141,   142,   143,   144,   145,   146,   147,   148,
1768    216,  -541,   775,     0,     0,     0,   344,     0,     0,     0,
1769      0,   151,   152,   153,   154,   155,   156,     0,    78,   170,
1770    171,     0,   172,   173,    83,     0,     0,     0,   157,   158,
1771    159,     0,   138,   139,   140,     0,   141,   142,   143,   144,
1772    145,   146,   147,   148,   216,  -541,   777,     0,     0,     0,
1773    344,     0,   160,     0,     0,   151,   152,   153,   154,   155,
1774    156,     0,    78,   170,   171,     0,   172,   173,    83,     0,
1775      0,     0,   157,   158,   159,     0,     0,   162,   163,   164,
1776    165,   166,   167,     0,     0,     0,     0,     0,     0,     0,
1777      0,   776,     0,     0,     0,   169,   160,     0,     0,     0,
1778      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780      0,   162,   163,   164,   165,   166,   167,     0,     0,     0,
1781      0,     0,     0,     0,     0,   168,   138,   139,   140,   169,
1782    141,   142,   143,   144,   145,   146,   147,   148,   216,  -541,
1783    906,     0,     0,     0,   344,     0,     0,     0,     0,   151,
1784    152,   153,   154,   155,   156,     0,    78,   170,   171,     0,
1785    172,   173,    83,     0,     0,     0,   157,   158,   159,     0,
1786    138,   139,   140,     0,   141,   142,   143,   144,   145,   146,
1787    147,   148,   216,  -541,     0,     0,     0,     0,   344,     0,
1788    160,     0,     0,   151,   152,   153,   154,   155,   156,     0,
1789     78,   170,   171,     0,   172,   173,    83,     0,     0,     0,
1790    157,   158,   159,     0,     0,   162,   163,   164,   165,   166,
1791    167,     0,     0,     0,     0,     0,     0,     0,     0,   168,
1792      0,     0,     0,   169,   160,     0,     0,     0,     0,     0,
1793      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1794      0,     0,     0,     0,     0,     0,     0,     0,     0,   162,
1795    163,   164,   165,   166,   167,  -135,     0,     0,     0,     0,
1796   -135,     0,     0,   168,     0,     0,     0,   169,     0,     0,
1797      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1798      0,     4,     0,     0,     0,     0,     0,     0,     0,     0,
1799      0,     0,     0,     0,    78,   170,   171,     0,   172,   173,
1800     83,     0,     0,     0,     0,     0,     0,     5,     0,     0,
1801      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1802      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1803      0,     0,     0,     0,  -544,     0,     0,     0,    78,   170,
1804    171,     0,   172,   173,    83,     0,    12,    13,    14,     0,
1805     15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1806      0,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1807     34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1808     44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1809     54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1810     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1811     74,    75,    76,    77,     0,     0,     0,     0,     0,     0,
1812      0,     0,   132,    81,    12,    13,    14,    84,    15,    16,
1813     17,    18,    19,    20,    21,    22,    23,    24,     0,    25,
1814     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1815     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1816     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1817     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1818     66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1819     76,    77,     0,     0,     0,     0,     0,   793,  1112,     0,
1820    132,    81,   304,     0,   794,    84,   795,   151,   152,   153,
1821    154,   155,   156,     0,     0,     0,     0,     0,     0,     0,
1822      0,     0,   793,     0,   157,   158,   159,   304,     0,   794,
1823      0,   795,   151,   152,   153,   154,   155,   156,     0,     0,
1824      0,     0,     0,     0,     0,     0,     0,     0,   160,   157,
1825    158,   159,     0,     0,     0,     0,     0,     0,     0,     0,
1826      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1827      0,     0,     0,   160,     0,     0,     0,     0,     0,     0,
1828      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1829      0,   169,     0,     0,     0,     0,     0,     0,     0,     0,
1830      0,     0,     0,     0,     0,     0,  -684,     0,     0,     0,
1831      0,     0,     0,     0,  -541,     0,   169,     0,     0,   344,
1832      0,     0,     0,     0,   151,   152,   153,   154,   155,   156,
1833      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1834      0,   157,   158,   159,     0,     0,     0,     0,     0,     0,
1835      0,  -686,  -686,  -686,     0,     0,     0,     0,     0,     0,
1836      0,     0,    78,   170,   171,   160,   172,    82,    83,     0,
1837      0,  -686,     0,     0,     0,     0,     0,     0,     0,     0,
1838      0,     0,     0,     0,     0,     0,     0,    78,   170,   171,
1839      0,   172,    82,    83,  -686,  -686,  -686,     0,  -686,  -686,
1840   -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,   169,  -686,
1841   -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
1842   -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
1843   -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
1844   -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
1845   -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
1846   -686,  -686,  -269,     0,     0,     0,     0,     0,     0,     0,
1847      0,  -686,     3,     0,     0,  -686,     0,     0,     0,    78,
1848    305,   306,     0,   172,     0,     0,     0,     0,     0,     0,
1849      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1850      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1851      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1852      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1853      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1854      0,     0,     0,     0,     0,     0,     0,     0,    12,    13,
1855     14,     0,    15,    16,    17,    18,    19,    20,    21,    22,
1856     23,    24,     0,    25,    26,    27,    28,    29,    30,    31,
1857     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1858     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1859     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1860     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1861     72,    73,    74,    75,    76,    77,     0,     0,     0,     0,
1862      0,     0,    78,    79,    80,    81,     0,    82,    83,    84,
1863    304,     0,     0,   600,     0,   151,   152,   153,   154,   155,
1864    156,   304,     0,     0,   681,     0,   151,   152,   153,   154,
1865    155,   156,   157,   158,   159,     0,     0,     0,     0,     0,
1866      0,   304,   951,   157,   158,   159,   151,   152,   153,   154,
1867    155,   156,   304,  -251,     0,     0,   160,   151,   152,   153,
1868    154,   155,   156,   157,   158,   159,     0,   160,     0,     0,
1869      0,     0,   304,     0,   157,   158,   159,   151,   152,   153,
1870    154,   155,   156,     0,     0,     0,     0,   160,     0,     0,
1871      0,     0,     0,     0,   157,   158,   159,   333,   160,   169,
1872      0,     0,   151,   152,   153,   154,   155,   156,     0,     0,
1873    169,     0,     0,     0,     0,     0,     0,     0,   160,   157,
1874    158,   159,     0,     0,     0,     0,     0,     0,     0,   623,
1875    169,     0,     0,     0,   151,   152,   153,   154,   155,   156,
1876      0,   169,     0,   160,     0,     0,     0,     0,     0,     0,
1877      0,   157,   158,   159,     0,     0,     0,     0,     0,     0,
1878      0,   169,     0,     0,     0,     0,     0,     0,     0,     0,
1879     78,   305,   306,     0,   172,   160,     0,     0,     0,     0,
1880      0,    78,   305,   306,   625,   172,   169,     0,     0,   151,
1881    152,   153,   154,   155,   156,     0,     0,     0,     0,     0,
1882      0,    78,   305,   306,     0,   172,   157,   158,   159,     0,
1883      0,     0,    78,   305,   306,     0,   172,   699,   169,     0,
1884      0,     0,   700,   701,   702,   703,   704,   705,     0,     0,
1885    160,     0,    78,   305,   306,     0,   172,     0,     0,   157,
1886    706,   707,     0,     0,     0,     0,     0,     0,     0,     0,
1887      0,     0,     0,     0,     0,     0,     0,    78,   305,   306,
1888      0,   172,     0,   708,     0,     0,     0,     0,     0,     0,
1889      0,     0,     0,   169,     0,     0,     0,     0,     0,     0,
1890      0,     0,     0,     0,     0,     0,     0,     0,     0,    78,
1891    305,   306,     0,   172,     0,     0,     0,     0,     0,     0,
1892      0,     0,     0,     0,     0,     0,   169,     0,     0,     0,
1893      0,     0,     0,     0,  -195,  -195,     0,     0,     0,     0,
1894      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1895      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1896      0,     0,     0,     0,    78,   305,   306,     0,   172,     0,
1897      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1898      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1899      0,     0,     0,     0,     0,     0,     0,    78,   709,   710,
1900      0,   172,    12,    13,    14,     0,    15,    16,    17,    18,
1901     19,    20,    21,    22,    23,    24,     0,    25,    26,    27,
1902     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1903     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1904     48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1905     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1906     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1907      4,     0,     0,     0,     0,     0,     0,     0,   132,    81,
1908      0,     0,     0,    84,     0,     0,     0,     0,     0,     0,
1909      0,     0,  -408,  -408,  -408,     0,     5,     0,     0,     0,
1910      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1911      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1912      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1913      0,     0,     0,     0,     0,    12,    13,    14,     0,    15,
1914     16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1915     25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1916     35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1917     45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1918     55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1919     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1920     75,    76,    77,     4,     0,     0,     0,     0,     0,     0,
1921      0,   132,    81,     0,     0,     0,    84,     0,     0,     0,
1922      0,     0,     0,     0,     0,     0,     0,     0,     0,     5,
1923      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1924      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1925      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1926      0,     0,     0,     0,     0,     0,     0,     0,    12,    13,
1927     14,     0,    15,    16,    17,    18,    19,    20,    21,    22,
1928     23,    24,     0,    25,    26,    27,    28,    29,    30,    31,
1929     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1930     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1931     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1932     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1933     72,    73,    74,    75,    76,    77,     4,     0,     0,     0,
1934      0,     0,    78,  1061,   132,    81,     0,     0,     0,    84,
1935      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1936      0,     0,     5,     0,     0,     0,     0,     0,     0,     0,
1937      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1938      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1939      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1940      0,    12,    13,    14,     0,    15,    16,    17,    18,    19,
1941     20,    21,    22,    23,    24,     0,    25,    26,    27,    28,
1942     29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1943     39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1944     49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1945     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1946     69,    70,    71,    72,    73,    74,    75,    76,    77,  -408,
1947   -408,  -408,     0,     0,     0,     0,     0,   132,    81,     0,
1948      0,     0,    84,     0,     0,     0,     0,     0,     0,     0,
1949      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1950      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1951      0,     0,    12,    13,    14,     0,    15,    16,    17,    18,
1952     19,    20,    21,    22,    23,    24,     0,    25,    26,    27,
1953     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1954     38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1955     48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1956     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1957     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1958      9,    10,    11,     0,     0,     0,     0,     0,   132,    81,
1959      0,     0,     0,    84,     0,     0,     0,     0,     0,    12,
1960     13,    14,     0,    15,    16,    17,    18,    19,    20,    21,
1961     22,    23,    24,     0,    25,    26,    27,    28,    29,    30,
1962     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1963     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1964     51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1965     61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1966     71,    72,    73,    74,    75,    76,    77,     0,     0,     0,
1967      0,     0,     0,     0,     0,   132,    81,    12,    13,    14,
1968     84,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1969     24,     0,    25,    26,    27,    28,    29,    30,    31,    32,
1970     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1971     43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1972     53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1973     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1974     73,    74,    75,    76,    77,     0,     0,     0,     0,     0,
1975      0,     0,     0,   132,    81,     0,     0,     0,    84
1976 };
1977
1978 static const short yycheck[] = {     0,
1979      0,   138,   344,     4,     3,   118,   442,     8,     9,    10,
1980     11,   474,   279,     0,   529,   379,   380,   894,   381,   382,
1981    389,   383,   384,   385,   386,   633,   387,   388,   426,   602,
1982    390,   671,   391,   598,     9,    10,    11,   228,   793,   784,
1983    633,   633,   427,   798,   633,     5,     0,   802,   296,   531,
1984      4,   452,     6,   902,    27,   298,   637,    55,     0,     9,
1985    151,   152,   153,   154,   155,   156,  1009,   914,   259,   927,
1986     34,   217,    19,    21,   472,    21,   222,    25,   224,    25,
1987     21,   689,     5,   540,    85,    85,    27,     5,   805,   487,
1988    656,    21,   637,    28,   811,    25,   689,   689,    85,    18,
1989    689,   558,    25,    18,    23,     9,    24,    53,    54,    44,
1990    683,    21,  1073,  1074,     9,    25,    34,   118,   633,    49,
1991     50,    21,   999,  1000,   637,    25,   125,    37,    38,   637,
1992     21,    85,    26,   134,    28,   134,    27,    10,    11,    39,
1993     41,    51,    52,    85,   145,    99,   110,   111,  1091,   150,
1994     44,   633,   907,  1096,    24,    56,   110,   111,    10,    11,
1995   1009,  1010,    21,    32,    33,   805,    25,   168,   913,  1027,
1996    915,   811,    18,    26,   689,   150,     9,   758,    24,  1140,
1997    134,    34,     9,   584,   582,   183,    18,  1034,    34,  1036,
1998     49,    50,   773,   194,  1071,     9,    10,    11,   583,    87,
1999    150,   202,  1145,   204,    21,   206,   604,   689,   209,   400,
2000    453,   674,   479,   758,   931,   188,   217,   783,   560,   194,
2001    786,   222,    28,   224,   184,   185,   186,   202,   773,   189,
2002    190,   206,    24,  1082,   209,  1084,   237,   238,    44,    24,
2003    188,    24,   217,   218,   194,   758,   150,   222,    24,   224,
2004    758,    34,   202,    25,    26,   150,   206,    24,   911,   209,
2005    773,   914,   237,   238,   633,   773,   184,   185,    24,   633,
2006    633,   633,   633,   633,   633,   421,   422,   278,   278,    18,
2007    281,   282,   283,   891,  1039,   376,   377,   378,   238,   426,
2008    194,   931,    21,     5,   295,   295,    25,   564,   202,   194,
2009    301,   637,   206,    41,   646,   209,    24,   202,    26,    49,
2010     50,   206,    24,     5,   209,    21,    34,   150,    56,    25,
2011    689,   148,    34,   150,   323,   689,   689,   689,   689,   689,
2012    689,   579,   204,    25,   238,   472,   150,    18,   184,   185,
2013   1189,   608,    24,   238,   217,   346,     5,    24,   758,   222,
2014    487,   224,    34,   354,    18,   356,   623,    21,   625,   822,
2015     16,   194,   935,   773,   237,   217,    25,   194,   322,   884,
2016    222,    16,   224,   206,   939,   202,   209,    16,   986,   206,
2017    194,  1034,   209,  1036,   359,   237,   477,    24,   202,    26,
2018    217,   789,   206,   986,   986,   209,   794,   986,    26,   400,
2019     28,   184,   185,   217,   886,   238,    53,    54,   222,    19,
2020    224,   238,   184,   185,   186,     5,    44,   189,   190,    16,
2021    421,   422,   758,   237,   238,   400,    24,   428,    26,   430,
2022    430,   418,   699,    15,    24,    25,    26,   773,    24,   440,
2023     26,   442,   429,   444,    34,   582,   421,   422,     0,   100,
2024    400,   452,     4,   452,   455,    24,     8,    22,   459,    21,
2025   1068,    25,    26,    25,    28,    34,    22,   604,   180,   181,
2026      5,   986,   184,   185,   346,    18,   188,   304,    21,   433,
2027     44,    22,   354,    34,   356,   312,   313,   314,   315,    29,
2028    491,    21,   184,   185,   186,    25,   400,   189,   190,   500,
2029    501,    39,   184,   185,   986,   400,   333,   871,   872,    40,
2030    873,   874,   881,   875,   876,   877,   878,   344,   879,   880,
2031     42,    43,   882,     5,   883,   184,   185,   186,    22,  1137,
2032    189,   190,    18,    85,   361,    21,    87,    23,   539,   540,
2033     34,    24,    24,    25,    26,    55,   547,   547,   421,   422,
2034     94,    34,    34,   540,   555,    94,   428,   558,   559,    21,
2035     26,   674,    28,    25,   539,    34,   118,   400,    21,   421,
2036    422,   558,    25,   400,   184,   185,   186,    19,    44,   189,
2037    190,   408,   134,   584,   188,   584,   400,    49,    50,   539,
2038     37,    38,    22,   145,   184,   185,   186,    21,    24,   189,
2039    190,    25,    21,   945,    51,    52,    25,   421,   422,   700,
2040    701,   702,   703,   704,   705,   184,   185,   986,    18,   491,
2041     22,    21,   986,   986,   986,   986,   986,   986,   629,   630,
2042     49,    50,   633,   184,   185,   539,    22,   591,   189,   190,
2043    641,   642,    23,   644,   539,    26,   894,    28,    94,   184,
2044    185,   186,   789,  1116,   189,   190,    18,   794,   659,    21,
2045    661,    22,   663,    88,    89,    26,  1102,    28,   540,   670,
2046      6,     7,   673,   674,   675,   674,   184,   185,   186,    19,
2047    679,   189,   190,    44,    94,   933,   558,   559,   689,    20,
2048    184,   185,   186,   118,   119,   189,   190,   180,   181,    23,
2049    837,   184,   185,   530,    24,   188,    26,   132,    28,   822,
2050      0,    24,   539,    26,     4,   184,   185,   186,    20,    21,
2051    189,   190,    12,    13,    44,   539,   278,    47,    48,   281,
2052    282,   283,    27,    57,    58,    59,    60,    61,    62,    63,
2053     64,    65,    66,   295,    23,    25,    26,   995,    28,   301,
2054     24,    21,    26,    21,    22,    25,  1004,   629,   630,    25,
2055     34,    24,    28,    24,    44,    26,  1164,    37,    38,    18,
2056    642,   598,    26,    34,    18,   776,  1024,   868,   869,   870,
2057     34,    51,    52,    18,  1051,    18,    25,    26,    21,    28,
2058     32,    33,   793,  1041,   795,    85,   623,   798,   625,    18,
2059   1198,   802,    21,   675,   631,    44,    25,    24,   635,    22,
2060    100,   101,   102,   103,   104,   105,   106,   107,    18,   109,
2061     21,   822,   112,   822,    25,    49,    50,   781,   118,  1077,
2062    784,   832,    25,    24,    37,    38,    27,    21,   128,   129,
2063    130,    25,    21,    34,   134,    29,    25,    21,    51,    52,
2064   1098,    25,    24,    32,    33,    27,    53,    54,   949,    21,
2065    150,   688,    34,    25,    21,    20,    21,   157,    25,    18,
2066     32,    33,   699,    21,    25,    24,    18,    25,   430,    21,
2067     29,    30,    31,    32,    33,    34,    18,    21,   440,    21,
2068    442,    25,   444,   894,    67,    68,    69,    46,    47,    48,
2069    452,   902,    24,   455,    23,    21,   907,   459,    18,    25,
2070    184,   185,   186,    20,    21,   189,   190,   191,    34,    35,
2071     36,    70,    21,   184,   185,   186,    25,   217,   189,   190,
2072    184,   185,   186,    21,    18,   189,   190,    25,    57,    58,
2073     59,    60,    61,    62,    63,    64,    65,    66,   500,   501,
2074     18,    21,    21,   954,   955,    25,    25,   911,    21,   913,
2075    914,   915,    25,    18,   113,   255,    21,    72,    73,    74,
2076     75,    34,    35,    36,    79,    80,    81,    82,    83,    84,
2077     85,    18,    18,    18,    21,   986,    21,    18,   278,   279,
2078     25,   281,   282,   184,   185,   547,   997,   188,   999,  1000,
2079     24,    19,    26,  1116,    28,   295,  1007,     9,  1009,  1010,
2080    997,   301,   184,   185,   304,    21,   188,    21,    21,    25,
2081     44,    25,    25,    47,    48,  1026,   853,  1164,    21,    22,
2082   1031,  1031,   584,   323,    11,   184,   185,   186,  1039,   188,
2083   1177,    32,    33,  1044,  1044,  1044,  1047,    21,    21,    21,
2084     25,    25,    25,    25,   344,    21,    21,    24,    21,    25,
2085     25,  1198,    25,    34,    35,    36,    11,  1068,  1069,  1070,
2086   1071,    21,  1073,  1074,    21,    25,   110,   111,    25,    90,
2087   1034,  1082,  1036,  1084,    21,    21,  1087,    21,    25,    25,
2088   1091,    25,  1093,  1094,    21,  1096,    21,    21,    25,    21,
2089     25,  1102,    21,    25,    21,    19,    25,   659,    25,   661,
2090     21,   663,   939,    19,    25,  1116,    19,    19,   670,    27,
2091     90,   673,   674,    24,    34,    35,    36,   417,    51,    52,
2092     53,    25,    21,    18,    22,    21,  1137,  1138,  1139,  1140,
2093    430,    24,    21,    25,  1145,    11,    24,   437,    24,   439,
2094     24,   441,   442,    24,   444,    27,    25,   984,    23,   449,
2095     20,    19,   452,    20,  1165,  1165,    19,    21,    23,   459,
2096      5,   336,    72,    25,    24,    22,    27,    25,    24,    20,
2097     20,   471,    27,    25,   474,    18,   476,    25,  1189,   479,
2098     27,    21,    55,    25,    22,   360,    25,    40,    25,    24,
2099    365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
2100    375,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2101     76,    29,    39,    25,   185,    18,    90,    22,    90,    90,
2102     24,   396,    18,    25,    25,    25,    25,    25,    21,    18,
2103    188,   793,    40,   795,    18,    27,   798,    23,    21,    24,
2104    802,    90,   108,    18,    90,   190,   112,   547,   114,    90,
2105    116,    22,    22,    21,    90,   121,    21,    20,    22,    20,
2106    822,   561,    90,    25,   564,   131,    25,   133,    40,    27,
2107    832,    27,    25,   192,    18,    20,    27,   577,   578,    20,
2108      0,     9,    10,    11,   584,    25,     0,   902,    24,    25,
2109      9,    10,    11,    29,    30,    31,    32,    33,    34,   301,
2110   1189,  1158,  1087,   603,    85,   989,   662,  1059,   608,   175,
2111     46,    47,    48,   998,  1137,  1026,   852,   444,   618,   619,
2112    771,   799,   564,   623,  1165,   625,   661,   659,   822,   673,
2113      9,    10,    11,   323,    70,   125,    11,   237,   342,   400,
2114   1121,   491,   689,   986,    -1,   907,    -1,    -1,    -1,    -1,
2115    650,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   658,    -1,
2116    660,    -1,    -1,    -1,   664,   665,    -1,    -1,    -1,   669,
2117     -1,    -1,    -1,   673,   674,    -1,    -1,   113,    -1,   679,
2118     -1,    -1,    -1,    -1,    -1,    -1,    -1,     9,    10,    11,
2119    138,    -1,   954,   955,    -1,    -1,   262,    -1,    -1,   699,
2120     -1,    -1,    -1,   151,   152,   153,   154,   155,   156,    -1,
2121    158,   159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2122     -1,    -1,   150,   289,    -1,    -1,   292,    -1,    -1,    -1,
2123     -1,   150,    -1,    -1,   300,    -1,    -1,   303,    -1,    -1,
2124    615,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,
2125    186,    -1,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2126     -1,    -1,    -1,    -1,    -1,    -1,   194,    -1,    -1,  1031,
2127     -1,   150,    -1,    -1,   202,   194,    -1,  1039,   206,   779,
2128     -1,   209,  1044,   202,    -1,  1047,    -1,   206,   663,   217,
2129    209,    -1,    -1,    -1,   222,    -1,   224,    -1,   217,    -1,
2130     -1,    -1,    -1,   222,    -1,   224,    -1,  1069,  1070,   237,
2131    238,    -1,    -1,    -1,    -1,   194,    -1,    -1,   237,   238,
2132     -1,   821,   822,   202,   824,    -1,    -1,   206,   150,    -1,
2133    209,  1093,  1094,    -1,    -1,    -1,    -1,    -1,   217,    -1,
2134   1102,    -1,    -1,   222,    -1,   224,    -1,    -1,    -1,    -1,
2135     -1,   417,    -1,    -1,  1116,    -1,    -1,    -1,   237,   238,
2136     -1,   427,    -1,    -1,    -1,    -1,   432,    -1,    -1,    -1,
2137     -1,   437,   194,   439,    -1,    -1,  1138,  1139,    -1,    -1,
2138    202,   447,    -1,    -1,   206,   451,    -1,   209,    -1,    -1,
2139     -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,    -1,
2140    222,    -1,   224,  1165,    -1,    -1,    -1,    -1,    -1,    -1,
2141    910,    -1,    -1,    -1,    -1,   237,   238,   917,   793,    -1,
2142     -1,    -1,    -1,   798,     9,    10,    11,   802,   376,   377,
2143    378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
2144    388,   389,   390,   391,    -1,    -1,    -1,   120,   121,   122,
2145    123,    -1,   125,    -1,    -1,    -1,    -1,   130,   131,    -1,
2146     -1,   134,   135,    -1,   137,   138,   139,   140,    -1,    -1,
2147     -1,    -1,   400,    -1,    -1,    -1,   851,   852,   426,   152,
2148    153,   400,   857,   858,   859,   860,   861,   862,   863,   864,
2149    865,   866,   867,   421,   422,    -1,    -1,    -1,    -1,    -1,
2150     -1,    -1,   421,   422,   177,    -1,    -1,    -1,    -1,    -1,
2151     -1,    -1,    -1,    -1,   187,    -1,    -1,   583,    -1,    -1,
2152     -1,   400,    -1,    -1,   472,    -1,    -1,    -1,  1028,   477,
2153     -1,  1031,   907,    -1,    -1,    -1,   602,    -1,    -1,   487,
2154     -1,   607,   421,   422,  1044,    -1,  1046,    -1,    -1,    -1,
2155     -1,  1051,    -1,    -1,  1054,  1055,    -1,    -1,    -1,    -1,
2156     18,    -1,    -1,    -1,    -1,   150,    24,    -1,   634,    -1,
2157    636,    29,    30,    31,    32,    33,    34,    -1,   400,    -1,
2158     -1,   529,    -1,   531,    -1,   533,   534,    -1,    46,    47,
2159     48,    -1,    -1,    -1,    -1,    -1,    -1,  1097,    -1,   421,
2160    422,    -1,  1102,    -1,  1104,  1105,    -1,    -1,    -1,   194,
2161     -1,   539,    70,    -1,    -1,    -1,  1116,   202,    -1,    -1,
2162    539,   206,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,
2163     -1,    -1,   217,    -1,   582,    -1,    -1,   222,    -1,   224,
2164     -1,  1141,    -1,    -1,    -1,   711,    -1,    -1,    -1,    -1,
2165     -1,    -1,   237,   238,    -1,   113,   604,    -1,    -1,    -1,
2166    539,  1161,  1162,    -1,  1039,  1165,    -1,    -1,  1168,    -1,
2167     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2168     -1,    -1,    -1,    -1,    -1,   633,    -1,    -1,    -1,    -1,
2169     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2170    766,   767,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2171     -1,    -1,    -1,    -1,    -1,    -1,    -1,   539,    -1,    -1,
2172     -1,    -1,    -1,    -1,    -1,    -1,   184,   185,   186,    -1,
2173    188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   804,    -1,
2174     -1,   689,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2175     -1,    -1,   700,   701,   702,   703,   704,   705,   706,   707,
2176     -1,    -1,     1,    -1,    -1,    -1,    -1,     6,     7,     8,
2177     -1,    -1,    11,    12,    13,    14,    15,    16,    17,    18,
2178     19,    20,    -1,    -1,    -1,    24,    25,    -1,    -1,    -1,
2179     29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
2180     -1,    -1,    -1,    42,    43,    -1,    -1,    46,    47,    48,
2181     -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,    -1,    -1,
2182     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2183     -1,    70,    -1,    -1,    -1,    -1,   421,   422,    -1,    -1,
2184     -1,   789,    -1,    -1,   910,    -1,   794,    -1,    -1,    -1,
2185     -1,    -1,    -1,    -1,    -1,    94,    95,    96,    97,    98,
2186     99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   935,
2187    109,    -1,    -1,    -1,   113,    -1,    -1,    -1,    -1,    -1,
2188     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   837,
2189     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2190     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2191     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2192    868,   869,   870,   871,   872,   873,   874,   875,   876,   877,
2193    878,   879,   880,   881,   882,   883,   884,    -1,   886,    -1,
2194     -1,    -1,     0,     1,    -1,   184,   185,   186,    -1,   188,
2195    189,   190,    -1,    -1,   539,    -1,    -1,    -1,    -1,    -1,
2196     18,    -1,    -1,  1029,    -1,    -1,    24,    -1,    -1,    -1,
2197     -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
2198     -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,
2199     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2200     -1,   949,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
2201     68,    69,    -1,    71,    -1,    -1,    -1,    -1,    76,    77,
2202     78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2203     -1,    -1,    -1,    91,    92,    93,    -1,    -1,   986,    -1,
2204   1106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2205     -1,    -1,   110,   111,   112,    -1,   114,   115,   116,   117,
2206    118,   119,   120,   121,   122,   123,    -1,   125,   126,   127,
2207    128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2208    138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2209    148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2210    158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2211    168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2212     -1,    -1,    -1,    -1,    -1,    -1,   184,   185,   186,   187,
2213   1196,   189,   190,   191,    -1,    -1,    -1,    -1,    -1,    -1,
2214     -1,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2215     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,
2216     -1,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
2217     -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,
2218     -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,
2219     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2220     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
2221     69,    -1,    71,    -1,    -1,    -1,  1164,    76,    77,    78,
2222     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1177,
2223     -1,    -1,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,
2224     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2225   1198,   110,   111,   112,    -1,   114,   115,   116,   117,   118,
2226    119,   120,   121,   122,   123,    -1,   125,   126,   127,   128,
2227    129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2228    139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2229    149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2230    159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2231    169,   170,   171,   172,   173,   174,   175,   176,   177,    -1,
2232     -1,    -1,    -1,    -1,    -1,   184,   185,   186,   187,     1,
2233    189,   190,   191,    -1,     6,     7,     8,    -1,    10,    11,
2234     12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2235     -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
2236     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2237     42,    43,    -1,    45,    46,    47,    48,    -1,    -1,    -1,
2238     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2239     -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,
2240     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2241     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2242     -1,    -1,    -1,    95,    96,    97,    98,    99,   100,    -1,
2243     -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2244    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2245    122,   123,    -1,   125,   126,   127,   128,   129,   130,   131,
2246    132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2247    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2248    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2249    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2250    172,   173,   174,   175,   176,   177,    -1,    -1,    -1,    -1,
2251     -1,    -1,   184,   185,   186,   187,   188,   189,   190,   191,
2252      1,    -1,    -1,    -1,    -1,     6,     7,     8,    -1,    10,
2253     11,    12,    13,    14,    15,    16,    17,    18,    19,    -1,
2254     -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,
2255     31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
2256     -1,    42,    43,    -1,    -1,    46,    47,    48,    -1,    -1,
2257     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2258     -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
2259     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2260     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2261     -1,    -1,    -1,    -1,    95,    96,    97,    98,    99,   100,
2262     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,   110,
2263    111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2264    121,   122,   123,    -1,   125,   126,   127,   128,   129,   130,
2265    131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2266    141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2267    151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2268    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2269    171,   172,   173,   174,   175,   176,   177,    -1,    -1,    -1,
2270     -1,    -1,    -1,   184,   185,   186,   187,   188,   189,   190,
2271    191,     1,    -1,    -1,    -1,    -1,     6,     7,     8,    -1,
2272     -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2273     20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
2274     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
2275     -1,    -1,    42,    43,    -1,    -1,    46,    47,    48,    -1,
2276     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2277     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,
2278     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2279     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2280     -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,    99,
2281    100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
2282    110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2283    120,   121,   122,   123,    -1,   125,   126,   127,   128,   129,
2284    130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2285    140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2286    150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2287    160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2288    170,   171,   172,   173,   174,   175,   176,   177,    -1,    -1,
2289     -1,    -1,    -1,    -1,   184,   185,   186,   187,   188,   189,
2290    190,   191,     1,    -1,    -1,    -1,    -1,     6,     7,     8,
2291     -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2292     19,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
2293     29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
2294     -1,    -1,    -1,    42,    43,    -1,     1,    46,    47,    48,
2295     -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
2296     15,    16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,
2297     -1,    70,    -1,    -1,    29,    30,    31,    32,    33,    34,
2298     -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
2299     -1,    46,    47,    48,    -1,    94,    95,    96,    97,    98,
2300     99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2301    109,    -1,    -1,    -1,   113,    70,    -1,    -1,    -1,    -1,
2302     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2303     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
2304     95,    96,    97,    98,    99,   100,    -1,    -1,    -1,    -1,
2305     -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,
2306     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2307     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2308     -1,    -1,    -1,    -1,    -1,   184,   185,   186,    -1,   188,
2309    189,   190,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
2310      6,     7,     8,    -1,    -1,    11,    12,    13,    14,    15,
2311     16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
2312     -1,    -1,    -1,    29,    30,    31,    32,    33,    34,   184,
2313    185,   186,    -1,   188,   189,   190,    42,    43,    -1,     1,
2314     46,    47,    48,    -1,     6,     7,     8,    -1,    10,    11,
2315     12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2316     -1,    -1,    24,    -1,    70,    -1,    -1,    29,    30,    31,
2317     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2318     42,    43,    -1,    -1,    46,    47,    48,    -1,    94,    95,
2319     96,    97,    98,    99,   100,    -1,    -1,    -1,    -1,     1,
2320     -1,    -1,    -1,   109,     6,     7,     8,   113,    70,    11,
2321     12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2322     -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
2323     32,    33,    34,    95,    96,    97,    98,    99,   100,    -1,
2324     42,    43,    -1,    -1,    46,    47,    48,   109,    -1,    -1,
2325     -1,   113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2326     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
2327     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,
2328    186,    -1,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
2329     -1,    -1,    -1,    95,    96,    97,    98,    99,   100,    -1,
2330     -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2331     -1,   113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2332     -1,    -1,   184,   185,   186,     1,   188,   189,   190,    -1,
2333      6,     7,     8,    -1,    10,    11,    12,    13,    14,    15,
2334     16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,    -1,
2335     -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
2336     -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
2337     46,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2338     -1,    -1,   184,   185,   186,    -1,   188,   189,   190,    -1,
2339     -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
2340     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2341     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,
2342     96,    97,    98,    99,   100,    -1,    -1,    -1,    -1,    -1,
2343     -1,    -1,    -1,   109,     6,     7,     8,   113,    10,    11,
2344     12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2345     -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
2346     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2347     42,    43,    -1,    45,    46,    47,    48,    -1,    -1,    -1,
2348     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2349     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,
2350     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,
2351    186,    -1,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
2352     -1,    -1,    -1,    95,    96,    97,    98,    99,   100,    -1,
2353     -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2354    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2355    122,   123,    -1,   125,   126,   127,   128,   129,   130,   131,
2356    132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2357    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2358    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2359    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2360    172,   173,   174,   175,   176,   177,    -1,    -1,    -1,    -1,
2361     -1,    -1,   184,   185,   186,   187,   188,   189,   190,   191,
2362      6,     7,     8,    -1,    10,    11,    12,    13,    14,    15,
2363     16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
2364     -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
2365     -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    45,
2366     46,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2367     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2368     -1,    -1,    -1,    -1,    70,    71,    -1,    -1,    -1,    -1,
2369     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2370     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,
2371     96,    97,    98,    99,   100,    -1,    -1,    -1,    -1,    -1,
2372     -1,    -1,    -1,   109,   110,   111,   112,   113,   114,   115,
2373    116,   117,   118,   119,   120,   121,   122,   123,    -1,   125,
2374    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2375    136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2376    146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2377    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2378    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2379    176,   177,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,
2380    186,   187,   188,   189,   190,   191,     6,     7,     8,    -1,
2381     10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2382     20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
2383     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
2384     -1,    -1,    42,    43,    -1,    45,    46,    47,    48,    -1,
2385     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2386     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2387     70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2388     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2389     -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,    99,
2390    100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
2391    110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2392    120,   121,   122,   123,    -1,   125,   126,   127,   128,   129,
2393    130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2394    140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2395    150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2396    160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2397    170,   171,   172,   173,   174,   175,   176,   177,    -1,    -1,
2398     -1,    -1,    -1,    -1,   184,   185,   186,   187,   188,   189,
2399    190,   191,     6,     7,     8,    -1,    10,    11,    12,    13,
2400     14,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
2401     24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
2402     34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2403     -1,    -1,    46,    47,    48,    -1,     6,     7,     8,    -1,
2404     10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2405     20,    -1,    -1,    -1,    24,    -1,    70,    -1,    -1,    29,
2406     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
2407     -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,    -1,
2408     -1,    95,    96,    97,    98,    99,   100,    -1,    -1,    -1,
2409     -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
2410     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2411     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2412     -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,    99,
2413    100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
2414      6,     7,     8,   113,    10,    11,    12,    13,    14,    15,
2415     16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
2416     -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
2417    184,   185,   186,    -1,   188,   189,   190,    -1,    -1,    -1,
2418     46,    47,    48,    -1,     6,     7,     8,    -1,    10,    11,
2419     12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2420     -1,    -1,    24,    -1,    70,    -1,    -1,    29,    30,    31,
2421     32,    33,    34,    -1,   184,   185,   186,    -1,   188,   189,
2422    190,    -1,    -1,    -1,    46,    47,    48,    -1,    -1,    95,
2423     96,    97,    98,    99,   100,    -1,    -1,    -1,    -1,    -1,
2424     -1,    -1,    -1,   109,    -1,    -1,    -1,   113,    70,    -1,
2425     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2426     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2427     -1,    -1,    -1,    95,    96,    97,    98,    99,   100,    -1,
2428     -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,     6,     7,
2429      8,   113,    10,    11,    12,    13,    14,    15,    16,    17,
2430     18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,
2431     -1,    29,    30,    31,    32,    33,    34,    -1,   184,   185,
2432    186,    -1,   188,   189,   190,    -1,    -1,    -1,    46,    47,
2433     48,    -1,     6,     7,     8,    -1,    10,    11,    12,    13,
2434     14,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
2435     24,    -1,    70,    -1,    -1,    29,    30,    31,    32,    33,
2436     34,    -1,   184,   185,   186,    -1,   188,   189,   190,    -1,
2437     -1,    -1,    46,    47,    48,    -1,    -1,    95,    96,    97,
2438     98,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2439     -1,   109,    -1,    -1,    -1,   113,    70,    -1,    -1,    -1,
2440     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2441     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2442     -1,    95,    96,    97,    98,    99,   100,    -1,    -1,    -1,
2443     -1,    -1,    -1,    -1,    -1,   109,     6,     7,     8,   113,
2444     10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2445     20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
2446     30,    31,    32,    33,    34,    -1,   184,   185,   186,    -1,
2447    188,   189,   190,    -1,    -1,    -1,    46,    47,    48,    -1,
2448      6,     7,     8,    -1,    10,    11,    12,    13,    14,    15,
2449     16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,    -1,
2450     70,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
2451    184,   185,   186,    -1,   188,   189,   190,    -1,    -1,    -1,
2452     46,    47,    48,    -1,    -1,    95,    96,    97,    98,    99,
2453    100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
2454     -1,    -1,    -1,   113,    70,    -1,    -1,    -1,    -1,    -1,
2455     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2456     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,
2457     96,    97,    98,    99,   100,    19,    -1,    -1,    -1,    -1,
2458     24,    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,
2459     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2460     -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2461     -1,    -1,    -1,    -1,   184,   185,   186,    -1,   188,   189,
2462    190,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,
2463     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2464     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2465     -1,    -1,    -1,    -1,    20,    -1,    -1,    -1,   184,   185,
2466    186,    -1,   188,   189,   190,    -1,   110,   111,   112,    -1,
2467    114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2468     -1,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2469    134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2470    144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2471    154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2472    164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2473    174,   175,   176,   177,    -1,    -1,    -1,    -1,    -1,    -1,
2474     -1,    -1,   186,   187,   110,   111,   112,   191,   114,   115,
2475    116,   117,   118,   119,   120,   121,   122,   123,    -1,   125,
2476    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2477    136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2478    146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2479    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2480    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2481    176,   177,    -1,    -1,    -1,    -1,    -1,    19,    20,    -1,
2482    186,   187,    24,    -1,    26,   191,    28,    29,    30,    31,
2483     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2484     -1,    -1,    19,    -1,    46,    47,    48,    24,    -1,    26,
2485     -1,    28,    29,    30,    31,    32,    33,    34,    -1,    -1,
2486     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    46,
2487     47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2488     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2489     -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
2490     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2491     -1,   113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2492     -1,    -1,    -1,    -1,    -1,    -1,    22,    -1,    -1,    -1,
2493     -1,    -1,    -1,    -1,    19,    -1,   113,    -1,    -1,    24,
2494     -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
2495     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2496     -1,    46,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,
2497     -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
2498     -1,    -1,   184,   185,   186,    70,   188,   189,   190,    -1,
2499     -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2500     -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,   186,
2501     -1,   188,   189,   190,   110,   111,   112,    -1,   114,   115,
2502    116,   117,   118,   119,   120,   121,   122,   123,   113,   125,
2503    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2504    136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2505    146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2506    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2507    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2508    176,   177,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2509     -1,   187,    34,    -1,    -1,   191,    -1,    -1,    -1,   184,
2510    185,   186,    -1,   188,    -1,    -1,    -1,    -1,    -1,    -1,
2511     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2512     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2513     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2514     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2515     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2516     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2517    112,    -1,   114,   115,   116,   117,   118,   119,   120,   121,
2518    122,   123,    -1,   125,   126,   127,   128,   129,   130,   131,
2519    132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2520    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2521    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2522    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2523    172,   173,   174,   175,   176,   177,    -1,    -1,    -1,    -1,
2524     -1,    -1,   184,   185,   186,   187,    -1,   189,   190,   191,
2525     24,    -1,    -1,    27,    -1,    29,    30,    31,    32,    33,
2526     34,    24,    -1,    -1,    27,    -1,    29,    30,    31,    32,
2527     33,    34,    46,    47,    48,    -1,    -1,    -1,    -1,    -1,
2528     -1,    24,    25,    46,    47,    48,    29,    30,    31,    32,
2529     33,    34,    24,    25,    -1,    -1,    70,    29,    30,    31,
2530     32,    33,    34,    46,    47,    48,    -1,    70,    -1,    -1,
2531     -1,    -1,    24,    -1,    46,    47,    48,    29,    30,    31,
2532     32,    33,    34,    -1,    -1,    -1,    -1,    70,    -1,    -1,
2533     -1,    -1,    -1,    -1,    46,    47,    48,    24,    70,   113,
2534     -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
2535    113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    46,
2536     47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,
2537    113,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
2538     -1,   113,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
2539     -1,    46,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,
2540     -1,   113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2541    184,   185,   186,    -1,   188,    70,    -1,    -1,    -1,    -1,
2542     -1,   184,   185,   186,    24,   188,   113,    -1,    -1,    29,
2543     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
2544     -1,   184,   185,   186,    -1,   188,    46,    47,    48,    -1,
2545     -1,    -1,   184,   185,   186,    -1,   188,    24,   113,    -1,
2546     -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
2547     70,    -1,   184,   185,   186,    -1,   188,    -1,    -1,    46,
2548     47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2549     -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,   186,
2550     -1,   188,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
2551     -1,    -1,    -1,   113,    -1,    -1,    -1,    -1,    -1,    -1,
2552     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,
2553    185,   186,    -1,   188,    -1,    -1,    -1,    -1,    -1,    -1,
2554     -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,
2555     -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
2556     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2557     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2558     -1,    -1,    -1,    -1,   184,   185,   186,    -1,   188,    -1,
2559     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2560     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2561     -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,   185,   186,
2562     -1,   188,   110,   111,   112,    -1,   114,   115,   116,   117,
2563    118,   119,   120,   121,   122,   123,    -1,   125,   126,   127,
2564    128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2565    138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2566    148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2567    158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2568    168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2569     45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   186,   187,
2570     -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,    -1,
2571     -1,    -1,    67,    68,    69,    -1,    71,    -1,    -1,    -1,
2572     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2573     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2574     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2575     -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,   114,
2576    115,   116,   117,   118,   119,   120,   121,   122,   123,    -1,
2577    125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2578    135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2579    145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2580    155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2581    165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2582    175,   176,   177,    45,    -1,    -1,    -1,    -1,    -1,    -1,
2583     -1,   186,   187,    -1,    -1,    -1,   191,    -1,    -1,    -1,
2584     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
2585     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2586     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2587     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2588     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2589    112,    -1,   114,   115,   116,   117,   118,   119,   120,   121,
2590    122,   123,    -1,   125,   126,   127,   128,   129,   130,   131,
2591    132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2592    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2593    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2594    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2595    172,   173,   174,   175,   176,   177,    45,    -1,    -1,    -1,
2596     -1,    -1,   184,   185,   186,   187,    -1,    -1,    -1,   191,
2597     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2598     -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2599     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2600     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2601     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2602     -1,   110,   111,   112,    -1,   114,   115,   116,   117,   118,
2603    119,   120,   121,   122,   123,    -1,   125,   126,   127,   128,
2604    129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2605    139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2606    149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2607    159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2608    169,   170,   171,   172,   173,   174,   175,   176,   177,    67,
2609     68,    69,    -1,    -1,    -1,    -1,    -1,   186,   187,    -1,
2610     -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2611     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2612     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2613     -1,    -1,   110,   111,   112,    -1,   114,   115,   116,   117,
2614    118,   119,   120,   121,   122,   123,    -1,   125,   126,   127,
2615    128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2616    138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2617    148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2618    158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2619    168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2620     91,    92,    93,    -1,    -1,    -1,    -1,    -1,   186,   187,
2621     -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,   110,
2622    111,   112,    -1,   114,   115,   116,   117,   118,   119,   120,
2623    121,   122,   123,    -1,   125,   126,   127,   128,   129,   130,
2624    131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2625    141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2626    151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2627    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2628    171,   172,   173,   174,   175,   176,   177,    -1,    -1,    -1,
2629     -1,    -1,    -1,    -1,    -1,   186,   187,   110,   111,   112,
2630    191,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2631    123,    -1,   125,   126,   127,   128,   129,   130,   131,   132,
2632    133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2633    143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2634    153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2635    163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2636    173,   174,   175,   176,   177,    -1,    -1,    -1,    -1,    -1,
2637     -1,    -1,    -1,   186,   187,    -1,    -1,    -1,   191
2638 };
2639 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
2640
2641 /* This file comes from bison-1.28.  */
2642
2643 /* Skeleton output parser for bison,
2644    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2645
2646    This program is free software; you can redistribute it and/or modify
2647    it under the terms of the GNU General Public License as published by
2648    the Free Software Foundation; either version 2, or (at your option)
2649    any later version.
2650
2651    This program is distributed in the hope that it will be useful,
2652    but WITHOUT ANY WARRANTY; without even the implied warranty of
2653    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2654    GNU General Public License for more details.
2655
2656    You should have received a copy of the GNU General Public License
2657    along with this program; if not, write to the Free Software
2658    Foundation, Inc., 59 Temple Place - Suite 330,
2659    Boston, MA 02111-1307, USA.  */
2660
2661 /* As a special exception, when this file is copied by Bison into a
2662    Bison output file, you may use that output file without restriction.
2663    This special exception was added by the Free Software Foundation
2664    in version 1.24 of Bison.  */
2665
2666 /* This is the parser code that is written into each bison parser
2667   when the %semantic_parser declaration is not specified in the grammar.
2668   It was written by Richard Stallman by simplifying the hairy parser
2669   used when %semantic_parser is specified.  */
2670
2671 #ifndef YYSTACK_USE_ALLOCA
2672 #ifdef alloca
2673 #define YYSTACK_USE_ALLOCA
2674 #else /* alloca not defined */
2675 #ifdef __GNUC__
2676 #define YYSTACK_USE_ALLOCA
2677 #define alloca __builtin_alloca
2678 #else /* not GNU C.  */
2679 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2680 #define YYSTACK_USE_ALLOCA
2681 #include <alloca.h>
2682 #else /* not sparc */
2683 /* We think this test detects Watcom and Microsoft C.  */
2684 /* This used to test MSDOS, but that is a bad idea
2685    since that symbol is in the user namespace.  */
2686 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2687 #if 0 /* No need for malloc.h, which pollutes the namespace;
2688          instead, just don't use alloca.  */
2689 #include <malloc.h>
2690 #endif
2691 #else /* not MSDOS, or __TURBOC__ */
2692 #if defined(_AIX)
2693 /* I don't know what this was needed for, but it pollutes the namespace.
2694    So I turned it off.   rms, 2 May 1997.  */
2695 /* #include <malloc.h>  */
2696  #pragma alloca
2697 #define YYSTACK_USE_ALLOCA
2698 #else /* not MSDOS, or __TURBOC__, or _AIX */
2699 #if 0
2700 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2701                  and on HPUX 10.  Eventually we can turn this on.  */
2702 #define YYSTACK_USE_ALLOCA
2703 #define alloca __builtin_alloca
2704 #endif /* __hpux */
2705 #endif
2706 #endif /* not _AIX */
2707 #endif /* not MSDOS, or __TURBOC__ */
2708 #endif /* not sparc */
2709 #endif /* not GNU C */
2710 #endif /* alloca not defined */
2711 #endif /* YYSTACK_USE_ALLOCA not defined */
2712
2713 #ifdef YYSTACK_USE_ALLOCA
2714 #define YYSTACK_ALLOC alloca
2715 #else
2716 #define YYSTACK_ALLOC malloc
2717 #endif
2718
2719 /* Note: there must be only one dollar sign in this file.
2720    It is replaced by the list of actions, each action
2721    as one case of the switch.  */
2722
2723 #define yyerrok         (yyerrstatus = 0)
2724 #define yyclearin       (yychar = YYEMPTY)
2725 #define YYEMPTY         -2
2726 #define YYEOF           0
2727 #define YYACCEPT        goto yyacceptlab
2728 #define YYABORT         goto yyabortlab
2729 #define YYERROR         goto yyerrlab1
2730 /* Like YYERROR except do call yyerror.
2731    This remains here temporarily to ease the
2732    transition to the new meaning of YYERROR, for GCC.
2733    Once GCC version 2 has supplanted version 1, this can go.  */
2734 #define YYFAIL          goto yyerrlab
2735 #define YYRECOVERING()  (!!yyerrstatus)
2736 #define YYBACKUP(token, value) \
2737 do                                                              \
2738   if (yychar == YYEMPTY && yylen == 1)                          \
2739     { yychar = (token), yylval = (value);                       \
2740       yychar1 = YYTRANSLATE (yychar);                           \
2741       YYPOPSTACK;                                               \
2742       goto yybackup;                                            \
2743     }                                                           \
2744   else                                                          \
2745     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
2746 while (0)
2747
2748 #define YYTERROR        1
2749 #define YYERRCODE       256
2750
2751 #ifndef YYPURE
2752 #define YYLEX           yylex()
2753 #endif
2754
2755 #ifdef YYPURE
2756 #ifdef YYLSP_NEEDED
2757 #ifdef YYLEX_PARAM
2758 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
2759 #else
2760 #define YYLEX           yylex(&yylval, &yylloc)
2761 #endif
2762 #else /* not YYLSP_NEEDED */
2763 #ifdef YYLEX_PARAM
2764 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
2765 #else
2766 #define YYLEX           yylex(&yylval)
2767 #endif
2768 #endif /* not YYLSP_NEEDED */
2769 #endif
2770
2771 /* If nonreentrant, generate the variables here */
2772
2773 #ifndef YYPURE
2774
2775 int     yychar;                 /*  the lookahead symbol                */
2776 YYSTYPE yylval;                 /*  the semantic value of the           */
2777                                 /*  lookahead symbol                    */
2778
2779 #ifdef YYLSP_NEEDED
2780 YYLTYPE yylloc;                 /*  location data for the lookahead     */
2781                                 /*  symbol                              */
2782 #endif
2783
2784 int yynerrs;                    /*  number of parse errors so far       */
2785 #endif  /* not YYPURE */
2786
2787 #if YYDEBUG != 0
2788 int yydebug;                    /*  nonzero means print parse trace     */
2789 /* Since this is uninitialized, it does not stop multiple parsers
2790    from coexisting.  */
2791 #endif
2792
2793 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
2794
2795 #ifndef YYINITDEPTH
2796 #define YYINITDEPTH 200
2797 #endif
2798
2799 /*  YYMAXDEPTH is the maximum size the stacks can grow to
2800     (effective only if the built-in stack extension method is used).  */
2801
2802 #if YYMAXDEPTH == 0
2803 #undef YYMAXDEPTH
2804 #endif
2805
2806 #ifndef YYMAXDEPTH
2807 #define YYMAXDEPTH 10000
2808 #endif
2809 \f
2810 /* Define __yy_memcpy.  Note that the size argument
2811    should be passed with type unsigned int, because that is what the non-GCC
2812    definitions require.  With GCC, __builtin_memcpy takes an arg
2813    of type size_t, but it can handle unsigned int.  */
2814
2815 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
2816 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
2817 #else                           /* not GNU C or C++ */
2818 #ifndef __cplusplus
2819
2820 /* This is the most reliable way to avoid incompatibilities
2821    in available built-in functions on various systems.  */
2822 static void
2823 __yy_memcpy (to, from, count)
2824      char *to;
2825      char *from;
2826      unsigned int count;
2827 {
2828   register char *f = from;
2829   register char *t = to;
2830   register int i = count;
2831
2832   while (i-- > 0)
2833     *t++ = *f++;
2834 }
2835
2836 #else /* __cplusplus */
2837
2838 /* This is the most reliable way to avoid incompatibilities
2839    in available built-in functions on various systems.  */
2840 static void
2841 __yy_memcpy (char *to, char *from, unsigned int count)
2842 {
2843   register char *t = to;
2844   register char *f = from;
2845   register int i = count;
2846
2847   while (i-- > 0)
2848     *t++ = *f++;
2849 }
2850
2851 #endif
2852 #endif
2853 \f
2854
2855
2856 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2857    into yyparse.  The argument should have type void *.
2858    It should actually point to an object.
2859    Grammar actions can access the variable by casting it
2860    to the proper pointer type.  */
2861
2862 #ifdef YYPARSE_PARAM
2863 #ifdef __cplusplus
2864 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2865 #define YYPARSE_PARAM_DECL
2866 #else /* not __cplusplus */
2867 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2868 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2869 #endif /* not __cplusplus */
2870 #else /* not YYPARSE_PARAM */
2871 #define YYPARSE_PARAM_ARG
2872 #define YYPARSE_PARAM_DECL
2873 #endif /* not YYPARSE_PARAM */
2874
2875 /* Prevent warning if -Wstrict-prototypes.  */
2876 #ifdef __GNUC__
2877 #ifdef YYPARSE_PARAM
2878 int yyparse (void *);
2879 #else
2880 int yyparse (void);
2881 #endif
2882 #endif
2883
2884 int
2885 yyparse(YYPARSE_PARAM_ARG)
2886      YYPARSE_PARAM_DECL
2887 {
2888   register int yystate;
2889   register int yyn;
2890   register short *yyssp;
2891   register YYSTYPE *yyvsp;
2892   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
2893   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
2894
2895   short yyssa[YYINITDEPTH];     /*  the state stack                     */
2896   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
2897
2898   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
2899   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
2900
2901 #ifdef YYLSP_NEEDED
2902   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
2903   YYLTYPE *yyls = yylsa;
2904   YYLTYPE *yylsp;
2905
2906 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
2907 #else
2908 #define YYPOPSTACK   (yyvsp--, yyssp--)
2909 #endif
2910
2911   int yystacksize = YYINITDEPTH;
2912   int yyfree_stacks = 0;
2913
2914 #ifdef YYPURE
2915   int yychar;
2916   YYSTYPE yylval;
2917   int yynerrs;
2918 #ifdef YYLSP_NEEDED
2919   YYLTYPE yylloc;
2920 #endif
2921 #endif
2922
2923   YYSTYPE yyval;                /*  the variable used to return         */
2924                                 /*  semantic values from the action     */
2925                                 /*  routines                            */
2926
2927   int yylen;
2928
2929 #if YYDEBUG != 0
2930   if (yydebug)
2931     fprintf(stderr, "Starting parse\n");
2932 #endif
2933
2934   yystate = 0;
2935   yyerrstatus = 0;
2936   yynerrs = 0;
2937   yychar = YYEMPTY;             /* Cause a token to be read.  */
2938
2939   /* Initialize stack pointers.
2940      Waste one element of value and location stack
2941      so that they stay on the same level as the state stack.
2942      The wasted elements are never initialized.  */
2943
2944   yyssp = yyss - 1;
2945   yyvsp = yyvs;
2946 #ifdef YYLSP_NEEDED
2947   yylsp = yyls;
2948 #endif
2949
2950 /* Push a new state, which is found in  yystate  .  */
2951 /* In all cases, when you get here, the value and location stacks
2952    have just been pushed. so pushing a state here evens the stacks.  */
2953 yynewstate:
2954
2955   *++yyssp = yystate;
2956
2957   if (yyssp >= yyss + yystacksize - 1)
2958     {
2959       /* Give user a chance to reallocate the stack */
2960       /* Use copies of these so that the &'s don't force the real ones into memory. */
2961       YYSTYPE *yyvs1 = yyvs;
2962       short *yyss1 = yyss;
2963 #ifdef YYLSP_NEEDED
2964       YYLTYPE *yyls1 = yyls;
2965 #endif
2966
2967       /* Get the current used size of the three stacks, in elements.  */
2968       int size = yyssp - yyss + 1;
2969
2970 #ifdef yyoverflow
2971       /* Each stack pointer address is followed by the size of
2972          the data in use in that stack, in bytes.  */
2973 #ifdef YYLSP_NEEDED
2974       /* This used to be a conditional around just the two extra args,
2975          but that might be undefined if yyoverflow is a macro.  */
2976       yyoverflow("parser stack overflow",
2977                  &yyss1, size * sizeof (*yyssp),
2978                  &yyvs1, size * sizeof (*yyvsp),
2979                  &yyls1, size * sizeof (*yylsp),
2980                  &yystacksize);
2981 #else
2982       yyoverflow("parser stack overflow",
2983                  &yyss1, size * sizeof (*yyssp),
2984                  &yyvs1, size * sizeof (*yyvsp),
2985                  &yystacksize);
2986 #endif
2987
2988       yyss = yyss1; yyvs = yyvs1;
2989 #ifdef YYLSP_NEEDED
2990       yyls = yyls1;
2991 #endif
2992 #else /* no yyoverflow */
2993       /* Extend the stack our own way.  */
2994       if (yystacksize >= YYMAXDEPTH)
2995         {
2996           yyerror("parser stack overflow");
2997           if (yyfree_stacks)
2998             {
2999               free (yyss);
3000               free (yyvs);
3001 #ifdef YYLSP_NEEDED
3002               free (yyls);
3003 #endif
3004             }
3005           return 2;
3006         }
3007       yystacksize *= 2;
3008       if (yystacksize > YYMAXDEPTH)
3009         yystacksize = YYMAXDEPTH;
3010 #ifndef YYSTACK_USE_ALLOCA
3011       yyfree_stacks = 1;
3012 #endif
3013       yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
3014       __yy_memcpy ((char *)yyss, (char *)yyss1,
3015                    size * (unsigned int) sizeof (*yyssp));
3016       yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
3017       __yy_memcpy ((char *)yyvs, (char *)yyvs1,
3018                    size * (unsigned int) sizeof (*yyvsp));
3019 #ifdef YYLSP_NEEDED
3020       yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
3021       __yy_memcpy ((char *)yyls, (char *)yyls1,
3022                    size * (unsigned int) sizeof (*yylsp));
3023 #endif
3024 #endif /* no yyoverflow */
3025
3026       yyssp = yyss + size - 1;
3027       yyvsp = yyvs + size - 1;
3028 #ifdef YYLSP_NEEDED
3029       yylsp = yyls + size - 1;
3030 #endif
3031
3032 #if YYDEBUG != 0
3033       if (yydebug)
3034         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3035 #endif
3036
3037       if (yyssp >= yyss + yystacksize - 1)
3038         YYABORT;
3039     }
3040
3041 #if YYDEBUG != 0
3042   if (yydebug)
3043     fprintf(stderr, "Entering state %d\n", yystate);
3044 #endif
3045
3046   goto yybackup;
3047  yybackup:
3048
3049 /* Do appropriate processing given the current state.  */
3050 /* Read a lookahead token if we need one and don't already have one.  */
3051 /* yyresume: */
3052
3053   /* First try to decide what to do without reference to lookahead token.  */
3054
3055   yyn = yypact[yystate];
3056   if (yyn == YYFLAG)
3057     goto yydefault;
3058
3059   /* Not known => get a lookahead token if don't already have one.  */
3060
3061   /* yychar is either YYEMPTY or YYEOF
3062      or a valid token in external form.  */
3063
3064   if (yychar == YYEMPTY)
3065     {
3066 #if YYDEBUG != 0
3067       if (yydebug)
3068         fprintf(stderr, "Reading a token: ");
3069 #endif
3070       yychar = YYLEX;
3071     }
3072
3073   /* Convert token to internal form (in yychar1) for indexing tables with */
3074
3075   if (yychar <= 0)              /* This means end of input. */
3076     {
3077       yychar1 = 0;
3078       yychar = YYEOF;           /* Don't call YYLEX any more */
3079
3080 #if YYDEBUG != 0
3081       if (yydebug)
3082         fprintf(stderr, "Now at end of input.\n");
3083 #endif
3084     }
3085   else
3086     {
3087       yychar1 = YYTRANSLATE(yychar);
3088
3089 #if YYDEBUG != 0
3090       if (yydebug)
3091         {
3092           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3093           /* Give the individual parser a way to print the precise meaning
3094              of a token, for further debugging info.  */
3095 #ifdef YYPRINT
3096           YYPRINT (stderr, yychar, yylval);
3097 #endif
3098           fprintf (stderr, ")\n");
3099         }
3100 #endif
3101     }
3102
3103   yyn += yychar1;
3104   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3105     goto yydefault;
3106
3107   yyn = yytable[yyn];
3108
3109   /* yyn is what to do for this token type in this state.
3110      Negative => reduce, -yyn is rule number.
3111      Positive => shift, yyn is new state.
3112        New state is final state => don't bother to shift,
3113        just return success.
3114      0, or most negative number => error.  */
3115
3116   if (yyn < 0)
3117     {
3118       if (yyn == YYFLAG)
3119         goto yyerrlab;
3120       yyn = -yyn;
3121       goto yyreduce;
3122     }
3123   else if (yyn == 0)
3124     goto yyerrlab;
3125
3126   if (yyn == YYFINAL)
3127     YYACCEPT;
3128
3129   /* Shift the lookahead token.  */
3130
3131 #if YYDEBUG != 0
3132   if (yydebug)
3133     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3134 #endif
3135
3136   /* Discard the token being shifted unless it is eof.  */
3137   if (yychar != YYEOF)
3138     yychar = YYEMPTY;
3139
3140   *++yyvsp = yylval;
3141 #ifdef YYLSP_NEEDED
3142   *++yylsp = yylloc;
3143 #endif
3144
3145   /* count tokens shifted since error; after three, turn off error status.  */
3146   if (yyerrstatus) yyerrstatus--;
3147
3148   yystate = yyn;
3149   goto yynewstate;
3150
3151 /* Do the default action for the current state.  */
3152 yydefault:
3153
3154   yyn = yydefact[yystate];
3155   if (yyn == 0)
3156     goto yyerrlab;
3157
3158 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
3159 yyreduce:
3160   yylen = yyr2[yyn];
3161   if (yylen > 0)
3162     yyval = yyvsp[1-yylen]; /* implement default value of the action */
3163
3164 #if YYDEBUG != 0
3165   if (yydebug)
3166     {
3167       int i;
3168
3169       fprintf (stderr, "Reducing via rule %d (line %d), ",
3170                yyn, yyrline[yyn]);
3171
3172       /* Print the symbols being reduced, and their result.  */
3173       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3174         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3175       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3176     }
3177 #endif
3178
3179
3180   switch (yyn) {
3181
3182 case 3:
3183 { context_checkGlobalScope (); ;
3184     break;}
3185 case 4:
3186 { context_checkGlobalScope (); ;
3187     break;}
3188 case 5:
3189 { uentry_clearDecl (); ;
3190     break;}
3191 case 6:
3192 { uentry_clearDecl (); ;
3193     break;}
3194 case 7:
3195 { uentry_clearDecl (); ;
3196     break;}
3197 case 8:
3198 { uentry_clearDecl (); ;
3199     break;}
3200 case 9:
3201 { uentry_clearDecl (); ;
3202     break;}
3203 case 10:
3204 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3205     break;}
3206 case 11:
3207 { uentry_clearDecl (); /* evans 2002-02-08: okay to have a null statement */ ;
3208     break;}
3209 case 12:
3210 { uentry_clearDecl (); ;
3211     break;}
3212 case 13:
3213 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3214     break;}
3215 case 14:
3216 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3217     break;}
3218 case 15:
3219 { context_enterFunctionHeader (); ;
3220     break;}
3221 case 16:
3222
3223      declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); 
3224      context_exitFunctionHeader (); 
3225    ;
3226     break;}
3227 case 17:
3228
3229      qtype qint = qtype_create (ctype_int);
3230      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3231      qtype_free (qint);
3232    ;
3233     break;}
3234 case 18:
3235 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3236     break;}
3237 case 20:
3238 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3239     break;}
3240 case 21:
3241 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3242     break;}
3243 case 22:
3244 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3245     break;}
3246 case 23:
3247 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3248     break;}
3249 case 24:
3250 {
3251      exprNode_findValue (yyvsp[-2].expr);
3252      idDecl_notExpectingFunction (yyvsp[-5].ntyp);
3253
3254      if (exprNode_hasValue (yyvsp[-2].expr)) 
3255        {
3256          yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeInnerFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), 
3257                                                                   exprNode_getLongValue (yyvsp[-2].expr)));
3258        } 
3259      else
3260        {
3261          yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-5].ntyp))); 
3262        }
3263    ;
3264     break;}
3265 case 25:
3266 { setCurrentParams (uentryList_missingParams); ;
3267     break;}
3268 case 26:
3269 { /* need to support globals and modifies here! */
3270      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
3271                                     uentryList_makeMissingParams ());
3272      
3273      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3274      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3275      context_popLoc ();
3276      /*drl 7/25/01 added*/
3277      setImplictfcnConstraints();
3278    ;
3279     break;}
3280 case 27:
3281 { setCurrentParams (yyvsp[-1].entrylist); ;
3282     break;}
3283 case 28:
3284 { setImplictfcnConstraints ();
3285      clearCurrentParams ();
3286      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3287      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3288      context_popLoc (); 
3289    ;
3290     break;}
3291 case 29:
3292 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3293     break;}
3294 case 30:
3295 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3296     break;}
3297 case 31:
3298 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3299     break;}
3300 case 32:
3301
3302      int value;
3303
3304      if (exprNode_hasValue (yyvsp[-2].expr) 
3305          && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3306        {
3307          value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3308        }
3309      else
3310        {
3311          value = 0;
3312        }
3313
3314      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3315    ;
3316     break;}
3317 case 33:
3318 { setCurrentParams (uentryList_missingParams); ;
3319     break;}
3320 case 34:
3321 {
3322      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
3323                                     uentryList_makeMissingParams ());
3324      
3325      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3326      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3327      context_popLoc (); 
3328    ;
3329     break;}
3330 case 35:
3331 { setCurrentParams (yyvsp[-1].entrylist); ;
3332     break;}
3333 case 36:
3334
3335      clearCurrentParams ();
3336      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3337      idDecl_addClauses (yyval.ntyp, yyvsp[0].funcclauselist);
3338      context_popLoc (); 
3339    ;
3340     break;}
3341 case 37:
3342 { setCurrentParams (yyvsp[-1].entrylist); ;
3343     break;}
3344 case 38:
3345 { clearCurrentParams (); ;
3346     break;}
3347 case 39:
3348 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3349     break;}
3350 case 40:
3351 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3352     break;}
3353 case 41:
3354 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3355     break;}
3356 case 42:
3357 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3358     break;}
3359 case 43:
3360 { exprChecks_checkEmptyMacroBody (); ;
3361     break;}
3362 case 44:
3363 { clabstract_declareFunction (yyvsp[0].ntyp); ;
3364     break;}
3365 case 45:
3366 { yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3367     break;}
3368 case 46:
3369 { cscanner_expectingMetaStateName (); ;
3370     break;}
3371 case 47:
3372 { cscanner_clearExpectingMetaStateName ();
3373       yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
3374     break;}
3375 case 48:
3376 { cscanner_expectingMetaStateName (); ;
3377     break;}
3378 case 49:
3379 { cscanner_clearExpectingMetaStateName ();
3380       yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
3381     break;}
3382 case 50:
3383 { yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
3384     break;}
3385 case 51:
3386 { yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
3387     break;}
3388 case 55:
3389 { yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
3390     break;}
3391 case 56:
3392 { yyval.conL = constraintList_single (yyvsp[0].con); ;
3393     break;}
3394 case 57:
3395 {
3396  yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
3397  DPRINTF(("Done BufConstraint1\n")); ;
3398     break;}
3399 case 64:
3400 {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE);  DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
3401     break;}
3402 case 65:
3403 {
3404    DPRINTF( ("Got BufConstraintExpr BINary Op ") );
3405    yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
3406     break;}
3407 case 66:
3408 { yyval.conE =  constraintExpr_makeTermsRef (yyvsp[0].sr);;
3409     break;}
3410 case 67:
3411 { yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
3412     break;}
3413 case 68:
3414 { /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
3415     break;}
3416 case 69:
3417 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3418     break;}
3419 case 70:
3420 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3421     break;}
3422 case 71:
3423 {
3424     /*
3425     char *t; int c; 
3426     t =  cstring_toCharsSafe (exprNode_unparse($3)); 
3427     c = atoi( t );
3428     */
3429     yyval.sr = sRef_makeArrayFetchKnown (yyvsp[-3].sr, exprNode_getLongValue (yyvsp[-1].expr));
3430   ;
3431     break;}
3432 case 72:
3433 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3434     break;}
3435 case 73:
3436 { yyval.sr = yyvsp[-1].sr; ;
3437     break;}
3438 case 74:
3439 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3440     break;}
3441 case 75:
3442 { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3443     break;}
3444 case 79:
3445 { yyval.funcclauselist = functionClauseList_new (); ;
3446     break;}
3447 case 80:
3448 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3449     break;}
3450 case 81:
3451 { yyval.funcclauselist = functionClauseList_new (); ;
3452     break;}
3453 case 82:
3454 { yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
3455     break;}
3456 case 83:
3457 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3458     break;}
3459 case 84:
3460 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3461     break;}
3462 case 85:
3463 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3464     break;}
3465 case 86:
3466 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3467     break;}
3468 case 87:
3469 { yyval.funcclause = yyvsp[0].funcclause; ;
3470     break;}
3471 case 88:
3472 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3473     break;}
3474 case 89:
3475 { yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
3476     break;}
3477 case 90:
3478 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3479     break;}
3480 case 91:
3481 { yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
3482     break;}
3483 case 92:
3484 { yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
3485     break;}
3486 case 93:
3487 { yyval.funcclause = yyvsp[0].funcclause; ;
3488     break;}
3489 case 94:
3490 { yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
3491     break;}
3492 case 95:
3493 { yyval.globsclause = yyvsp[-1].globsclause; ;
3494     break;}
3495 case 96:
3496 { setProcessingGlobalsList (); ;
3497     break;}
3498 case 97:
3499
3500      unsetProcessingGlobals (); 
3501      yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset); 
3502    ;
3503     break;}
3504 case 98:
3505 { yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
3506     break;}
3507 case 99:
3508 { yyval.modsclause = yyvsp[-1].modsclause; ;
3509     break;}
3510 case 100:
3511 {
3512      context_setProtectVars (); enterParamsTemp (); 
3513      sRef_setGlobalScopeSafe (); 
3514    ;
3515     break;}
3516 case 101:
3517
3518      exitParamsTemp ();
3519      sRef_clearGlobalScopeSafe (); 
3520      context_releaseVars ();
3521      yyval.modsclause = modifiesClause_create (yyvsp[-2].tok, yyvsp[0].srset);
3522    ;
3523     break;}
3524 case 102:
3525 { yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
3526     break;}
3527 case 103:
3528 { yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
3529     break;}
3530 case 106:
3531 { yyval.warnclause = warnClause_undefined; ;
3532     break;}
3533 case 107:
3534 { yyval.warnclause = yyvsp[-1].warnclause; ;
3535     break;}
3536 case 108:
3537 {      
3538      llassert (exprNode_knownStringValue (yyvsp[0].expr));
3539      yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr)))); 
3540      exprNode_free (yyvsp[0].expr);
3541    ;
3542     break;}
3543 case 109:
3544 { yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
3545     break;}
3546 case 110:
3547 { yyval.globset = globSet_single (yyvsp[0].sr); ;
3548     break;}
3549 case 111:
3550 { yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
3551     break;}
3552 case 112:
3553 { yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3554     break;}
3555 case 113:
3556 { yyval.tquallist = qualList_undefined; ;
3557     break;}
3558 case 114:
3559 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3560     break;}
3561 case 115:
3562 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3563     break;}
3564 case 116:
3565 { yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
3566     break;}
3567 case 117:
3568 { yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
3569     break;}
3570 case 118:
3571 { yyval.typequal = qual_createUndef (); ;
3572     break;}
3573 case 119:
3574 { yyval.typequal = qual_createKilled (); ;
3575     break;}
3576 case 120:
3577 { yyval.typequal = qual_createOut (); ;
3578     break;}
3579 case 121:
3580 { yyval.typequal = qual_createIn (); ;
3581     break;}
3582 case 122:
3583 { yyval.typequal = qual_createPartial (); ;
3584     break;}
3585 case 130:
3586
3587      qtype qint = qtype_create (ctype_int);
3588      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3589      qtype_free (qint);
3590    ;
3591     break;}
3592 case 131:
3593 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3594     break;}
3595 case 132:
3596 { checkDoneParams (); context_enterInnerContext (); ;
3597     break;}
3598 case 133:
3599 {  
3600      exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; 
3601      context_exitInner (yyvsp[0].expr); 
3602    ;
3603     break;}
3604 case 134:
3605 { context_enterOldStyleScope (); ;
3606     break;}
3607 case 135:
3608 { oldStyleDoneParams (); context_enterInnerContext (); ;
3609     break;}
3610 case 136:
3611 {
3612      exprNode_checkFunctionBody (yyvsp[0].expr); 
3613      yyval.expr = yyvsp[0].expr; /* oldstyle */ 
3614      context_exitInner (yyvsp[0].expr);
3615    ;
3616     break;}
3617 case 137:
3618
3619      context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); 
3620      exprNode_checkFunction (context_getHeader (),  yyvsp[0].expr); 
3621      /* DRL 8 8 2000 */
3622      
3623      context_exitFunction ();
3624    ;
3625     break;}
3626 case 138:
3627 { yyval.srset = yyvsp[-1].srset; ;
3628     break;}
3629 case 139:
3630 { yyval.srset = sRefSet_new (); ;
3631     break;}
3632 case 140:
3633 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3634     break;}
3635 case 141:
3636 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3637     break;}
3638 case 142:
3639 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3640     break;}
3641 case 143:
3642 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3643     break;}
3644 case 144:
3645 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3646     break;}
3647 case 145:
3648 { yyval.sr = yyvsp[-1].sr; ;
3649     break;}
3650 case 146:
3651 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3652     break;}
3653 case 147:
3654 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3655     break;}
3656 case 148:
3657 { yyval.sr = yyvsp[0].sr; ;
3658     break;}
3659 case 149:
3660 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3661     break;}
3662 case 150:
3663 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3664     break;}
3665 case 151:
3666 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3667     break;}
3668 case 152:
3669 { yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
3670     break;}
3671 case 153:
3672 { yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
3673     break;}
3674 case 154:
3675 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3676     break;}
3677 case 155:
3678 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3679     break;}
3680 case 156:
3681 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3682     break;}
3683 case 157:
3684 { yyval.sr = yyvsp[-1].sr; ;
3685     break;}
3686 case 158:
3687 { cstring_markOwned (yyvsp[0].cname);
3688                                             yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3689     break;}
3690 case 159:
3691 { cstring_markOwned (yyvsp[0].cname);
3692                                             yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3693     break;}
3694 case 160:
3695 { yyval.srset = sRefSet_undefined ;
3696     break;}
3697 case 162:
3698 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } 
3699       else { yyval.srset = sRefSet_undefined; } 
3700     ;
3701     break;}
3702 case 163:
3703 { if (sRef_isValid (yyvsp[0].sr))
3704         {
3705           yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); 
3706         }
3707       else
3708         {
3709           yyval.srset = yyvsp[-2].srset;
3710         }
3711     ;
3712     break;}
3713 case 164:
3714 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3715     break;}
3716 case 165:
3717 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3718     break;}
3719 case 167:
3720 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3721     break;}
3722 case 168:
3723 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3724     break;}
3725 case 169:
3726 { yyval.expr = exprNode_makeError (); ;
3727     break;}
3728 case 171:
3729 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3730     break;}
3731 case 172:
3732 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3733     break;}
3734 case 173:
3735 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
3736     break;}
3737 case 174:
3738 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3739     break;}
3740 case 175:
3741 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3742     break;}
3743 case 176:
3744 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
3745     break;}
3746 case 177:
3747 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3748     break;}
3749 case 178:
3750 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3751     break;}
3752 case 179:
3753 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
3754     break;}
3755 case 180:
3756 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
3757     break;}
3758 case 182:
3759 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3760     break;}
3761 case 183:
3762 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3763     break;}
3764 case 184:
3765 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3766     break;}
3767 case 185:
3768 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3769     break;}
3770 case 186:
3771 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3772     break;}
3773 case 187:
3774 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3775     break;}
3776 case 188:
3777 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3778     break;}
3779 case 189:
3780 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3781     break;}
3782 case 190:
3783 { yyval.expr = yyvsp[0].expr; ;
3784     break;}
3785 case 191:
3786 { yyval.expr = yyvsp[0].expr; ;
3787     break;}
3788 case 192:
3789 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3790     break;}
3791 case 193:
3792 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3793     break;}
3794 case 194:
3795 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3796     break;}
3797 case 195:
3798 { context_setProtectVars (); ;
3799     break;}
3800 case 196:
3801 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3802     break;}
3803 case 197:
3804 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3805     break;}
3806 case 198:
3807 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3808     break;}
3809 case 199:
3810 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3811     break;}
3812 case 200:
3813 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3814     break;}
3815 case 202:
3816 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3817     break;}
3818 case 204:
3819 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3820     break;}
3821 case 205:
3822 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3823     break;}
3824 case 206:
3825 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3826     break;}
3827 case 208:
3828 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3829     break;}
3830 case 209:
3831 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3832     break;}
3833 case 211:
3834 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3835     break;}
3836 case 212:
3837 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3838     break;}
3839 case 214:
3840 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3841     break;}
3842 case 215:
3843 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3844     break;}
3845 case 216:
3846 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3847     break;}
3848 case 217:
3849 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3850     break;}
3851 case 219:
3852 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3853     break;}
3854 case 220:
3855 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3856     break;}
3857 case 222:
3858 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3859     break;}
3860 case 224:
3861 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3862     break;}
3863 case 226:
3864 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3865     break;}
3866 case 228:
3867 { exprNode_produceGuards (yyvsp[-1].expr); 
3868      context_enterAndClause (yyvsp[-1].expr); 
3869    ;
3870     break;}
3871 case 229:
3872
3873      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
3874      context_exitAndClause (yyval.expr, yyvsp[0].expr);
3875    ;
3876     break;}
3877 case 231:
3878
3879      exprNode_produceGuards (yyvsp[-1].expr);
3880      context_enterOrClause (yyvsp[-1].expr); 
3881    ;
3882     break;}
3883 case 232:
3884
3885      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
3886      context_exitOrClause (yyval.expr, yyvsp[0].expr);
3887    ;
3888     break;}
3889 case 234:
3890 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3891     break;}
3892 case 235:
3893 { context_enterFalseClause (yyvsp[-4].expr); ;
3894     break;}
3895 case 236:
3896 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3897     break;}
3898 case 238:
3899 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3900     break;}
3901 case 239:
3902 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3903     break;}
3904 case 240:
3905 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3906     break;}
3907 case 241:
3908 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3909     break;}
3910 case 242:
3911 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3912     break;}
3913 case 243:
3914 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3915     break;}
3916 case 244:
3917 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3918     break;}
3919 case 245:
3920 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3921     break;}
3922 case 246:
3923 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3924     break;}
3925 case 247:
3926 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3927     break;}
3928 case 248:
3929 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3930     break;}
3931 case 250:
3932 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3933     break;}
3934 case 251:
3935 { yyval.expr = exprNode_undefined; ;
3936     break;}
3937 case 254:
3938 { yyval.expr = yyvsp[0].expr; ;
3939     break;}
3940 case 255:
3941 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3942     break;}
3943 case 256:
3944 { yyval.expr = exprNode_makeError (); ;
3945     break;}
3946 case 257:
3947 { yyval.expr = exprNode_makeError (); ;
3948     break;}
3949 case 258:
3950 {
3951      setProcessingVars (yyvsp[-3].qtyp); 
3952      processNamedDecl (yyvsp[-1].ntyp); 
3953    ;
3954     break;}
3955 case 259:
3956
3957      unsetProcessingVars (); 
3958      yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp); 
3959      DPRINTF (("Empty initialization: %s", exprNode_unparse (yyval.expr)));
3960    ;
3961     break;}
3962 case 260:
3963 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
3964     break;}
3965 case 261:
3966 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); 
3967      unsetProcessingVars ();
3968    ;
3969     break;}
3970 case 262:
3971
3972      processNamedDecl (yyvsp[-1].ntyp); 
3973      yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
3974    ;
3975     break;}
3976 case 263:
3977 { processNamedDecl (yyvsp[-2].ntyp); ;
3978     break;}
3979 case 264:
3980 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3981     break;}
3982 case 265:
3983 { setProcessingTypedef (yyvsp[0].qtyp); ;
3984     break;}
3985 case 266:
3986 { clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
3987     break;}
3988 case 267:
3989 { /* in the ANSI grammar, semantics unclear */ ;
3990     break;}
3991 case 268:
3992 { /* in the ANSI grammar, semantics unclear */ ;
3993     break;}
3994 case 269:
3995 { g_expectingTypeName = TRUE; ;
3996     break;}
3997 case 270:
3998 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3999     break;}
4000 case 271:
4001 { yyval.exprlist = yyvsp[-1].exprlist; ;
4002     break;}
4003 case 272:
4004 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4005     break;}
4006 case 273:
4007 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4008     break;}
4009 case 274:
4010 { yyval.expr = exprNode_makeError (); ;
4011     break;}
4012 case 275:
4013 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
4014     break;}
4015 case 277:
4016 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
4017     break;}
4018 case 278:
4019 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
4020     break;}
4021 case 279:
4022 { yyval.expr = exprNode_undefined; ;
4023     break;}
4024 case 280:
4025 { yyval.expr = yyvsp[-1].expr; ;
4026     break;}
4027 case 281:
4028 { yyval.expr = exprNode_undefined; 
4029                                      /* gcc extension, obsolete since 2.5 */ ;
4030     break;}
4031 case 282:
4032 { yyval.expr = exprNode_undefined; ;
4033     break;}
4034 case 283:
4035 { yyval.expr = exprNode_undefined; ;
4036     break;}
4037 case 284:
4038 { yyval.expr = exprNode_undefined; ;
4039     break;}
4040 case 285:
4041 { yyval.expr = exprNode_undefined; ;
4042     break;}
4043 case 286:
4044 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4045     break;}
4046 case 287:
4047 { yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
4048     break;}
4049 case 288:
4050 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
4051     break;}
4052 case 289:
4053 { yyval.typequal = qual_createInline (); ;
4054     break;}
4055 case 290:
4056 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
4057     break;}
4058 case 291:
4059 { yyval.typequal = qual_createAuto (); ;
4060     break;}
4061 case 292:
4062 { yyval.typequal = qual_createRegister (); ;
4063     break;}
4064 case 293:
4065 { yyval.stateclause = yyvsp[-1].stateclause; ;
4066     break;}
4067 case 294:
4068 {
4069      context_setProtectVars (); 
4070      enterParamsTemp (); 
4071      sRef_setGlobalScopeSafe (); 
4072    ;
4073     break;}
4074 case 295:
4075
4076      exitParamsTemp ();
4077      sRef_clearGlobalScopeSafe (); 
4078      context_releaseVars ();
4079      yyval.stateclause = stateClause_createPlain (yyvsp[-5].tok, yyvsp[-2].srset);
4080    ;
4081     break;}
4082 case 296:
4083 { yyval.funcclause = yyvsp[-1].funcclause; ;
4084     break;}
4085 case 297:
4086 { yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
4087     break;}
4088 case 298:
4089 {
4090      context_exitFunctionHeader ();
4091      context_setProtectVars (); 
4092      enterParamsTemp (); 
4093      sRef_setGlobalScopeSafe (); 
4094    ;
4095     break;}
4096 case 299:
4097
4098      exitParamsTemp ();
4099      sRef_clearGlobalScopeSafe (); 
4100      context_releaseVars ();
4101      yyval.funcclause = functionClause_createState (stateClause_create (yyvsp[-5].tok, yyvsp[-4].typequal, yyvsp[-2].srset));
4102    ;
4103     break;}
4104 case 300:
4105 {
4106      context_setProtectVars (); 
4107      enterParamsTemp (); 
4108      sRef_setGlobalScopeSafe (); 
4109    ;
4110     break;}
4111 case 301:
4112 {
4113      context_exitFunctionHeader ();
4114      exitParamsTemp ();
4115      sRef_clearGlobalScopeSafe (); 
4116      context_releaseVars ();
4117      DPRINTF (("done optGlobBufConstraintsAux\n"));
4118
4119      if (lltok_isEnsures (yyvsp[-4].tok)) 
4120        {
4121          yyval.funcclause = functionClause_createEnsures (yyvsp[-2].fcnconstraint);
4122        }
4123      else if (lltok_isRequires (yyvsp[-4].tok))
4124        {
4125          yyval.funcclause = functionClause_createRequires (yyvsp[-2].fcnconstraint);
4126        }
4127      else
4128        {
4129          BADBRANCH;
4130        }
4131
4132      DPRINTF (("FunctionclauseS: %s", functionClause_unparse (yyval.funcclause)));
4133    ;
4134     break;}
4135 case 302:
4136 { yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
4137     break;}
4138 case 303:
4139 { yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
4140     break;}
4141 case 304:
4142 { yyval.typequal = qual_createExits (); ;
4143     break;}
4144 case 305:
4145 { yyval.typequal = qual_createMayExit (); ;
4146     break;}
4147 case 306:
4148 { yyval.typequal = qual_createTrueExit (); ;
4149     break;}
4150 case 307:
4151 { yyval.typequal = qual_createFalseExit (); ;
4152     break;}
4153 case 308:
4154 { yyval.typequal = qual_createNeverExit (); ;
4155     break;}
4156 case 309:
4157 { yyval.typequal = qual_createChecked (); ;
4158     break;}
4159 case 310:
4160 { yyval.typequal = qual_createCheckMod (); ;
4161     break;}
4162 case 311:
4163 { yyval.typequal = qual_createUnchecked (); ;
4164     break;}
4165 case 312:
4166 { yyval.typequal = qual_createCheckedStrict (); ;
4167     break;}
4168 case 313:
4169 { yyval.typequal = qual_createOwned (); ;
4170     break;}
4171 case 314:
4172 { yyval.typequal = qual_createDependent (); ;
4173     break;}
4174 case 315:
4175 { yyval.typequal = qual_createYield (); ;
4176     break;}
4177 case 316:
4178 { yyval.typequal = qual_createTemp (); ;
4179     break;}
4180 case 317:
4181 { yyval.typequal = qual_createOnly (); ;
4182     break;}
4183 case 318:
4184 { yyval.typequal = qual_createKeep (); ;
4185     break;}
4186 case 319:
4187 { yyval.typequal = qual_createKept (); ;
4188     break;}
4189 case 320:
4190 { yyval.typequal = qual_createShared (); ;
4191     break;}
4192 case 321:
4193 { yyval.typequal = qual_createUnique (); ;
4194     break;}
4195 case 322:
4196 { yyval.typequal = qual_createNull (); ;
4197     break;}
4198 case 323:
4199 { yyval.typequal = qual_createIsNull (); ;
4200     break;}
4201 case 324:
4202 { yyval.typequal = qual_createRelNull (); ;
4203     break;}
4204 case 325:
4205 { yyval.typequal = qual_createNotNull (); ;
4206     break;}
4207 case 326:
4208 { yyval.typequal = qual_createExposed (); ;
4209     break;}
4210 case 327:
4211 { yyval.typequal = qual_createObserver (); ;
4212     break;}
4213 case 328:
4214 { yyval.typequal = qual_createNullTerminated (); ;
4215     break;}
4216 case 329:
4217 { yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
4218     break;}
4219 case 330:
4220 { yyval.typequal = qual_createReturned (); ;
4221     break;}
4222 case 331:
4223 { yyval.typequal = qual_createSef (); ;
4224     break;}
4225 case 332:
4226 { yyval.typequal = qual_createUnused (); ;
4227     break;}
4228 case 333:
4229 { yyval.typequal = qual_createExternal (); ;
4230     break;}
4231 case 334:
4232 { yyval.typequal = qual_createTrueNull (); ;
4233     break;}
4234 case 335:
4235 { yyval.typequal = qual_createFalseNull (); ;
4236     break;}
4237 case 336:
4238 { yyval.typequal = qual_createAbstract (); ;
4239     break;}
4240 case 337:
4241 { yyval.typequal = qual_createConcrete (); ;
4242     break;}
4243 case 338:
4244 { yyval.typequal = qual_createMutable (); ;
4245     break;}
4246 case 339:
4247 { yyval.typequal = qual_createImmutable (); ;
4248     break;}
4249 case 340:
4250 { yyval.typequal = qual_createRefCounted (); ;
4251     break;}
4252 case 341:
4253 { yyval.typequal = qual_createRefs (); ;
4254     break;}
4255 case 342:
4256 { yyval.typequal = qual_createKillRef (); ;
4257     break;}
4258 case 343:
4259 { yyval.typequal = qual_createRelDef (); ;
4260     break;}
4261 case 344:
4262 { yyval.typequal = qual_createNewRef (); ;
4263     break;}
4264 case 345:
4265 { yyval.typequal = qual_createTempRef (); ;
4266     break;}
4267 case 346:
4268 { yyval.typequal = qual_createShort (); ;
4269     break;}
4270 case 347:
4271 { yyval.typequal = qual_createLong (); ;
4272     break;}
4273 case 348:
4274 { yyval.typequal = qual_createSigned (); ;
4275     break;}
4276 case 349:
4277 { yyval.typequal = qual_createUnsigned (); ;
4278     break;}
4279 case 350:
4280 { yyval.typequal = qual_createOut (); ;
4281     break;}
4282 case 351:
4283 { yyval.typequal = qual_createIn (); ;
4284     break;}
4285 case 352:
4286 { yyval.typequal = qual_createPartial (); ;
4287     break;}
4288 case 353:
4289 { yyval.typequal = qual_createSpecial (); ;
4290     break;}
4291 case 354:
4292 { yyval.typequal = qual_createConst (); ;
4293     break;}
4294 case 355:
4295 { yyval.typequal = qual_createVolatile (); ;
4296     break;}
4297 case 356:
4298 { yyval.typequal = yyvsp[-1].typequal; ;
4299     break;}
4300 case 357:
4301 { yyval.typequal = yyvsp[-1].typequal; ;
4302     break;}
4303 case 358:
4304 { yyval.typequal = yyvsp[-1].typequal; ;
4305     break;}
4306 case 359:
4307 { yyval.typequal = yyvsp[-1].typequal; ;
4308     break;}
4309 case 360:
4310 { yyval.typequal = yyvsp[-1].typequal; ;
4311     break;}
4312 case 361:
4313 { yyval.typequal = yyvsp[-1].typequal; ;
4314     break;}
4315 case 362:
4316 { yyval.typequal = yyvsp[-1].typequal; ;
4317     break;}
4318 case 363:
4319 { yyval.typequal = yyvsp[-1].typequal; ;
4320     break;}
4321 case 364:
4322 { yyval.typequal = yyvsp[-1].typequal; ;
4323     break;}
4324 case 371:
4325 { yyval.ctyp = ctype_unknown; ;
4326     break;}
4327 case 372:
4328 { yyval.ctyp = ctype_anyintegral; ;
4329     break;}
4330 case 373:
4331 { yyval.ctyp = ctype_unsignedintegral; ;
4332     break;}
4333 case 374:
4334 { yyval.ctyp = ctype_signedintegral; ;
4335     break;}
4336 case 378:
4337 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4338     break;}
4339 case 379:
4340 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4341     break;}
4342 case 380:
4343 { yyval.qtyp = yyvsp[0].qtyp; ;
4344     break;}
4345 case 381:
4346 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4347     break;}
4348 case 383:
4349 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4350     break;}
4351 case 384:
4352 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4353     break;}
4354 case 385:
4355 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4356     break;}
4357 case 386:
4358 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4359     break;}
4360 case 387:
4361 { yyval.qtyp = qtype_unknown (); ;
4362     break;}
4363 case 388:
4364 { yyval.qtyp = yyvsp[0].qtyp; ;
4365     break;}
4366 case 389:
4367 { yyval.conL = constraintList_undefined; ;
4368     break;}
4369 case 390:
4370 { sRef_setGlobalScopeSafe (); ;
4371     break;}
4372 case 391:
4373 { sRef_clearGlobalScopeSafe (); ;
4374     break;}
4375 case 392:
4376 { {ctype ct; ct = declareStruct (yyvsp[-9].cname, yyvsp[-4].flist); /* setGlobalStructInfo(ct, $12);*/ yyval.ctyp = ct;} ;
4377     break;}
4378 case 393:
4379 { sRef_setGlobalScopeSafe (); ;
4380     break;}
4381 case 394:
4382 { sRef_clearGlobalScopeSafe (); ;
4383     break;}
4384 case 395:
4385 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4386     break;}
4387 case 396:
4388 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4389     break;}
4390 case 397:
4391 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4392     break;}
4393 case 398:
4394 { sRef_setGlobalScopeSafe (); ;
4395     break;}
4396 case 399:
4397 { sRef_clearGlobalScopeSafe (); ;
4398     break;}
4399 case 400:
4400 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4401     break;}
4402 case 401:
4403 { sRef_setGlobalScopeSafe (); ;
4404     break;}
4405 case 402:
4406 { sRef_clearGlobalScopeSafe (); ;
4407     break;}
4408 case 403:
4409 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4410     break;}
4411 case 404:
4412 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4413     break;}
4414 case 405:
4415 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4416     break;}
4417 case 406:
4418 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4419     break;}
4420 case 407:
4421 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4422     break;}
4423 case 408:
4424 { g_expectingTypeName = FALSE; ;
4425     break;}
4426 case 410:
4427 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4428     break;}
4429 case 411:
4430 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4431     break;}
4432 case 412:
4433 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4434     break;}
4435 case 413:
4436 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4437     break;}
4438 case 414:
4439 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4440     break;}
4441 case 415:
4442 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4443     break;}
4444 case 416:
4445 { yyval.ntyp = yyvsp[0].ntyp; ;
4446     break;}
4447 case 417:
4448 { yyval.ntyp = idDecl_undefined; ;
4449     break;}
4450 case 418:
4451 { yyval.ntyp = yyvsp[-3].ntyp; ;
4452     break;}
4453 case 419:
4454 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4455     break;}
4456 case 420:
4457 { context_pushLoc (); ;
4458     break;}
4459 case 421:
4460 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4461     break;}
4462 case 422:
4463 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4464     break;}
4465 case 423:
4466 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4467     break;}
4468 case 424:
4469 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4470     break;}
4471 case 426:
4472 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4473      usymtab_supGlobalEntry (ue);
4474      yyval.cname = yyvsp[0].cname;
4475    ;
4476     break;}
4477 case 427:
4478 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4479      usymtab_supGlobalEntry (ue);
4480      yyval.cname = yyvsp[-3].cname; 
4481    ;
4482     break;}
4483 case 429:
4484 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4485     break;}
4486 case 430:
4487
4488      qtype qt = qtype_unknown ();
4489
4490      qtype_adjustPointers (yyvsp[-1].count, qt);
4491      yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4492    ;
4493     break;}
4494 case 431:
4495 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4496     break;}
4497 case 433:
4498 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4499     break;}
4500 case 434:
4501 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4502     break;}
4503 case 435:
4504 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4505     break;}
4506 case 436:
4507 { /* ignored for now */; ;
4508     break;}
4509 case 437:
4510 { ; ;
4511     break;}
4512 case 438:
4513 { ; ;
4514     break;}
4515 case 439:
4516 { ; ;
4517     break;}
4518 case 440:
4519 { yyval.count = 1; ;
4520     break;}
4521 case 441:
4522 { yyval.count = 1; ;
4523     break;}
4524 case 442:
4525 { yyval.count = 1 + yyvsp[0].count; ;
4526     break;}
4527 case 443:
4528 { yyval.count = 1 + yyvsp[0].count; ;
4529     break;}
4530 case 445:
4531 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4532     break;}
4533 case 446:
4534 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4535     break;}
4536 case 447:
4537 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4538     break;}
4539 case 448:
4540 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4541     break;}
4542 case 450:
4543 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4544     break;}
4545 case 451:
4546 { storeLoc (); ;
4547     break;}
4548 case 452:
4549 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4550     break;}
4551 case 453:
4552 { storeLoc (); ;
4553     break;}
4554 case 454:
4555 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4556     break;}
4557 case 455:
4558
4559      if (isFlipOldStyle ()) 
4560        { 
4561          llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)")); 
4562        }
4563      else 
4564        { 
4565          setNewStyle (); 
4566        }
4567      yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); 
4568    ;
4569     break;}
4570 case 456:
4571
4572      idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4573
4574      if (isNewStyle ()) 
4575        {
4576          llparseerror (message ("Inconsistent function parameter syntax: %q",
4577                                 idDecl_unparse (tparam))); 
4578        }
4579
4580      setFlipOldStyle ();
4581      yyval.oentry = makeCurrentParam (tparam);
4582      idDecl_free (tparam);
4583    ;
4584     break;}
4585 case 458:
4586 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4587     break;}
4588 case 459:
4589 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4590     break;}
4591 case 461:
4592 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4593     break;}
4594 case 462:
4595 { yyval.ctyp = ctype_unknown; ;
4596     break;}
4597 case 464:
4598 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4599     break;}
4600 case 465:
4601 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4602     break;}
4603 case 466:
4604 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
4605     break;}
4606 case 467:
4607 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4608     break;}
4609 case 468:
4610 { yyval.ctyp = ctype_makeInnerFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
4611     break;}
4612 case 469:
4613 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4614     break;}
4615 case 470:
4616 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4617     break;}
4618 case 471:
4619 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4620     break;}
4621 case 472:
4622 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4623     break;}
4624 case 482:
4625 { yyval.expr = yyvsp[0].expr; ;
4626     break;}
4627 case 485:
4628 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4629     break;}
4630 case 486:
4631 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4632     break;}
4633 case 487:
4634 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4635     break;}
4636 case 488:
4637 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4638     break;}
4639 case 489:
4640 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4641     break;}
4642 case 490:
4643 { context_setProtectVars (); ;
4644     break;}
4645 case 491:
4646 { context_sizeofReleaseVars (); ;
4647     break;}
4648 case 492:
4649 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); 
4650      context_enterForClause (yyvsp[-5].expr); ;
4651     break;}
4652 case 493:
4653 { setProcessingIterVars (yyvsp[-2].entry); ;
4654     break;}
4655 case 494:
4656 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
4657     break;}
4658 case 495:
4659 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4660     break;}
4661 case 499:
4662 { yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
4663     break;}
4664 case 507:
4665 { yyval.expr = yyvsp[-1].expr; ;
4666     break;}
4667 case 508:
4668 { yyval.expr = exprNode_makeError (); ;
4669     break;}
4670 case 509:
4671 { exprNode_checkIfPred (yyvsp[0].expr); ;
4672     break;}
4673 case 510:
4674 { /* don't: context_exitTrueClause ($1, $2); */
4675      yyval.expr = exprNode_if (yyvsp[-2].expr, yyvsp[0].expr); 
4676    ;
4677     break;}
4678 case 511:
4679 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4680     break;}
4681 case 512:
4682 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4683     break;}
4684 case 523:
4685 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4686     break;}
4687 case 525:
4688 { yyval.expr = exprNode_makeError (); ;
4689     break;}
4690 case 526:
4691 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
4692     break;}
4693 case 527:
4694 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4695     break;}
4696 case 528:
4697 { ; ;
4698     break;}
4699 case 529:
4700 { ; ;
4701     break;}
4702 case 530:
4703 { context_enterCaseClause (yyvsp[0].expr); ;
4704     break;}
4705 case 531:
4706 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4707     break;}
4708 case 532:
4709 { context_enterCaseClause (yyvsp[0].expr); ;
4710     break;}
4711 case 533:
4712 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4713     break;}
4714 case 534:
4715 { context_enterCaseClause (exprNode_undefined); ;
4716     break;}
4717 case 535:
4718 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4719     break;}
4720 case 536:
4721 { context_enterCaseClause (exprNode_undefined); ;
4722     break;}
4723 case 537:
4724 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4725     break;}
4726 case 538:
4727 { yyval.expr = yyvsp[-1].expr; ;
4728     break;}
4729 case 539:
4730 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4731     break;}
4732 case 540:
4733 { yyval.expr = yyvsp[-1].expr; ;
4734     break;}
4735 case 541:
4736 { context_enterInnerContext (); ;
4737     break;}
4738 case 542:
4739 { context_exitInnerPlain (); ;
4740     break;}
4741 case 543:
4742 { context_enterStructInnerContext (); ;
4743     break;}
4744 case 544:
4745 { context_exitStructInnerContext (); ;
4746     break;}
4747 case 545:
4748 { context_exitInnerSafe (); ;
4749     break;}
4750 case 546:
4751 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4752     break;}
4753 case 547:
4754 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4755     break;}
4756 case 548:
4757 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4758     break;}
4759 case 549:
4760 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4761     break;}
4762 case 550:
4763 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4764     break;}
4765 case 551:
4766 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4767     break;}
4768 case 552:
4769 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4770     break;}
4771 case 553:
4772 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), 
4773                                                         lltok_getLoc (yyvsp[-1].tok))); 
4774    ;
4775     break;}
4776 case 554:
4777 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4778     break;}
4779 case 555:
4780 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4781     break;}
4782 case 556:
4783 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4784     break;}
4785 case 557:
4786 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4787     break;}
4788 case 558:
4789 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4790     break;}
4791 case 560:
4792 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4793     break;}
4794 case 561:
4795 { yyval.expr = yyvsp[0].expr; ;
4796     break;}
4797 case 562:
4798 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4799     break;}
4800 case 563:
4801 { yyval.expr = yyvsp[0].expr; ;
4802     break;}
4803 case 564:
4804 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4805     break;}
4806 case 565:
4807 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4808     break;}
4809 case 566:
4810 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4811     break;}
4812 case 567:
4813 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4814     break;}
4815 case 568:
4816 { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
4817     break;}
4818 case 569:
4819 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4820     break;}
4821 case 570:
4822
4823      exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); 
4824      exprNode_checkIfPred (yyvsp[-1].expr);
4825      yyval.expr = yyvsp[-1].expr;
4826    ;
4827     break;}
4828 case 571:
4829
4830      context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4831      yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); 
4832    ;
4833     break;}
4834 case 572:
4835 { context_enterFalseClause (yyvsp[-2].expr); ;
4836     break;}
4837 case 573:
4838 {
4839      context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4840      yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); 
4841    ;
4842     break;}
4843 case 574:
4844 { context_enterSwitch (yyvsp[0].expr); ;
4845     break;}
4846 case 575:
4847 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4848     break;}
4849 case 576:
4850 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4851     break;}
4852 case 577:
4853 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4854     break;}
4855 case 578:
4856 { context_enterIterClause (); ;
4857     break;}
4858 case 579:
4859 { setProcessingIterVars (yyvsp[-3].entry); ;
4860     break;}
4861 case 580:
4862
4863      yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry); 
4864
4865    ;
4866     break;}
4867 case 581:
4868 { yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
4869     break;}
4870 case 582:
4871 { nextIterParam (); ;
4872     break;}
4873 case 583:
4874 { yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
4875     break;}
4876 case 584:
4877 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4878     break;}
4879 case 585:
4880 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4881     break;}
4882 case 586:
4883 { uentry ue = coerceIterId (yyvsp[0].cname);
4884
4885                       if (uentry_isValid (ue)) 
4886                         {
4887                           yyval.expr = exprNode_iterId (ue);
4888                         }
4889                       else
4890                         {
4891                           yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4892                         }
4893                     ;
4894     break;}
4895 case 587:
4896 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4897     break;}
4898 case 589:
4899 { yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
4900     break;}
4901 case 591:
4902 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4903     break;}
4904 case 593:
4905 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4906     break;}
4907 case 594:
4908 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4909     break;}
4910 case 595:
4911 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
4912     break;}
4913 case 596:
4914 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4915     break;}
4916 case 597:
4917 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4918     break;}
4919 case 598:
4920 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
4921     break;}
4922 case 599:
4923 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4924     break;}
4925 case 600:
4926 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4927     break;}
4928 case 602:
4929 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4930     break;}
4931 case 603:
4932 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4933     break;}
4934 case 604:
4935 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4936     break;}
4937 case 605:
4938 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4939     break;}
4940 case 606:
4941 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4942     break;}
4943 case 607:
4944 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4945     break;}
4946 case 608:
4947 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4948     break;}
4949 case 609:
4950 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4951     break;}
4952 case 610:
4953 { yyval.expr = yyvsp[0].expr; ;
4954     break;}
4955 case 612:
4956 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4957     break;}
4958 case 614:
4959 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4960     break;}
4961 case 615:
4962 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4963     break;}
4964 case 616:
4965 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4966     break;}
4967 case 618:
4968 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4969     break;}
4970 case 619:
4971 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4972     break;}
4973 case 621:
4974 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4975     break;}
4976 case 622:
4977 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4978     break;}
4979 case 624:
4980 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4981     break;}
4982 case 625:
4983 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4984     break;}
4985 case 626:
4986 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4987     break;}
4988 case 627:
4989 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4990     break;}
4991 case 629:
4992 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4993     break;}
4994 case 630:
4995 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4996     break;}
4997 case 632:
4998 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4999     break;}
5000 case 634:
5001 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5002     break;}
5003 case 636:
5004 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5005     break;}
5006 case 638:
5007 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5008     break;}
5009 case 640:
5010 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5011     break;}
5012 case 642:
5013 { context_enterTrueClause (yyvsp[-1].expr); ;
5014     break;}
5015 case 643:
5016 { context_enterFalseClause (yyvsp[-4].expr); ;
5017     break;}
5018 case 644:
5019 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5020     break;}
5021 case 646:
5022 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5023     break;}
5024 case 647:
5025 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5026     break;}
5027 case 648:
5028 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5029     break;}
5030 case 649:
5031 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5032     break;}
5033 case 650:
5034 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5035     break;}
5036 case 651:
5037 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5038     break;}
5039 case 652:
5040 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5041     break;}
5042 case 653:
5043 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5044     break;}
5045 case 654:
5046 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5047     break;}
5048 case 655:
5049 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5050     break;}
5051 case 656:
5052 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5053     break;}
5054 case 657:
5055 { yyval.entry = yyvsp[0].entry; ;
5056     break;}
5057 case 658:
5058 { yyval.entry = uentry_undefined; ;
5059     break;}
5060 case 659:
5061 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5062     break;}
5063 case 660:
5064 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5065     break;}
5066 case 661:
5067 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5068     break;}
5069 case 662:
5070 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5071     break;}
5072 case 663:
5073 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5074     break;}
5075 case 664:
5076 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
5077     break;}
5078 case 665:
5079 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5080     break;}
5081 case 666:
5082 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5083     break;}
5084 case 667:
5085 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5086     break;}
5087 case 668:
5088 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5089     break;}
5090 case 669:
5091 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5092     break;}
5093 case 670:
5094 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5095     break;}
5096 case 671:
5097 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5098     break;}
5099 case 672:
5100 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5101     break;}
5102 case 673:
5103 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5104     break;}
5105 case 674:
5106 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5107     break;}
5108 case 675:
5109 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5110     break;}
5111 case 676:
5112 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5113     break;}
5114 case 678:
5115 { ; ;
5116     break;}
5117 case 681:
5118 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5119     break;}
5120 case 682:
5121 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5122     break;}
5123 case 683:
5124 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
5125     break;}
5126 case 684:
5127 { yyval.cname = yyvsp[0].cname; ;
5128     break;}
5129 case 686:
5130 { yyval.ctyp = ctype_unknown; ;
5131     break;}
5132 }
5133    /* the action file gets copied in in place of this dollarsign */
5134
5135 \f
5136   yyvsp -= yylen;
5137   yyssp -= yylen;
5138 #ifdef YYLSP_NEEDED
5139   yylsp -= yylen;
5140 #endif
5141
5142 #if YYDEBUG != 0
5143   if (yydebug)
5144     {
5145       short *ssp1 = yyss - 1;
5146       fprintf (stderr, "state stack now");
5147       while (ssp1 != yyssp)
5148         fprintf (stderr, " %d", *++ssp1);
5149       fprintf (stderr, "\n");
5150     }
5151 #endif
5152
5153   *++yyvsp = yyval;
5154
5155 #ifdef YYLSP_NEEDED
5156   yylsp++;
5157   if (yylen == 0)
5158     {
5159       yylsp->first_line = yylloc.first_line;
5160       yylsp->first_column = yylloc.first_column;
5161       yylsp->last_line = (yylsp-1)->last_line;
5162       yylsp->last_column = (yylsp-1)->last_column;
5163       yylsp->text = 0;
5164     }
5165   else
5166     {
5167       yylsp->last_line = (yylsp+yylen-1)->last_line;
5168       yylsp->last_column = (yylsp+yylen-1)->last_column;
5169     }
5170 #endif
5171
5172   /* Now "shift" the result of the reduction.
5173      Determine what state that goes to,
5174      based on the state we popped back to
5175      and the rule number reduced by.  */
5176
5177   yyn = yyr1[yyn];
5178
5179   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5180   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5181     yystate = yytable[yystate];
5182   else
5183     yystate = yydefgoto[yyn - YYNTBASE];
5184
5185   goto yynewstate;
5186
5187 yyerrlab:   /* here on detecting error */
5188
5189   if (! yyerrstatus)
5190     /* If not already recovering from an error, report this error.  */
5191     {
5192       ++yynerrs;
5193
5194 #ifdef YYERROR_VERBOSE
5195       yyn = yypact[yystate];
5196
5197       if (yyn > YYFLAG && yyn < YYLAST)
5198         {
5199           int size = 0;
5200           char *msg;
5201           int x, count;
5202
5203           count = 0;
5204           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
5205           for (x = (yyn < 0 ? -yyn : 0);
5206                x < (sizeof(yytname) / sizeof(char *)); x++)
5207             if (yycheck[x + yyn] == x)
5208               size += strlen(yytname[x]) + 15, count++;
5209           msg = (char *) malloc(size + 15);
5210           if (msg != 0)
5211             {
5212               strcpy(msg, "parse error");
5213
5214               if (count < 5)
5215                 {
5216                   count = 0;
5217                   for (x = (yyn < 0 ? -yyn : 0);
5218                        x < (sizeof(yytname) / sizeof(char *)); x++)
5219                     if (yycheck[x + yyn] == x)
5220                       {
5221                         strcat(msg, count == 0 ? ", expecting `" : " or `");
5222                         strcat(msg, yytname[x]);
5223                         strcat(msg, "'");
5224                         count++;
5225                       }
5226                 }
5227               yyerror(msg);
5228               free(msg);
5229             }
5230           else
5231             yyerror ("parse error; also virtual memory exceeded");
5232         }
5233       else
5234 #endif /* YYERROR_VERBOSE */
5235         yyerror("parse error");
5236     }
5237
5238   goto yyerrlab1;
5239 yyerrlab1:   /* here on error raised explicitly by an action */
5240
5241   if (yyerrstatus == 3)
5242     {
5243       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
5244
5245       /* return failure if at end of input */
5246       if (yychar == YYEOF)
5247         YYABORT;
5248
5249 #if YYDEBUG != 0
5250       if (yydebug)
5251         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5252 #endif
5253
5254       yychar = YYEMPTY;
5255     }
5256
5257   /* Else will try to reuse lookahead token
5258      after shifting the error token.  */
5259
5260   yyerrstatus = 3;              /* Each real token shifted decrements this */
5261
5262   goto yyerrhandle;
5263
5264 yyerrdefault:  /* current state does not do anything special for the error token. */
5265
5266 #if 0
5267   /* This is wrong; only states that explicitly want error tokens
5268      should shift them.  */
5269   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
5270   if (yyn) goto yydefault;
5271 #endif
5272
5273 yyerrpop:   /* pop the current state because it cannot handle the error token */
5274
5275   if (yyssp == yyss) YYABORT;
5276   yyvsp--;
5277   yystate = *--yyssp;
5278 #ifdef YYLSP_NEEDED
5279   yylsp--;
5280 #endif
5281
5282 #if YYDEBUG != 0
5283   if (yydebug)
5284     {
5285       short *ssp1 = yyss - 1;
5286       fprintf (stderr, "Error: state stack now");
5287       while (ssp1 != yyssp)
5288         fprintf (stderr, " %d", *++ssp1);
5289       fprintf (stderr, "\n");
5290     }
5291 #endif
5292
5293 yyerrhandle:
5294
5295   yyn = yypact[yystate];
5296   if (yyn == YYFLAG)
5297     goto yyerrdefault;
5298
5299   yyn += YYTERROR;
5300   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5301     goto yyerrdefault;
5302
5303   yyn = yytable[yyn];
5304   if (yyn < 0)
5305     {
5306       if (yyn == YYFLAG)
5307         goto yyerrpop;
5308       yyn = -yyn;
5309       goto yyreduce;
5310     }
5311   else if (yyn == 0)
5312     goto yyerrpop;
5313
5314   if (yyn == YYFINAL)
5315     YYACCEPT;
5316
5317 #if YYDEBUG != 0
5318   if (yydebug)
5319     fprintf(stderr, "Shifting error token, ");
5320 #endif
5321
5322   *++yyvsp = yylval;
5323 #ifdef YYLSP_NEEDED
5324   *++yylsp = yylloc;
5325 #endif
5326
5327   yystate = yyn;
5328   goto yynewstate;
5329
5330  yyacceptlab:
5331   /* YYACCEPT comes here.  */
5332   if (yyfree_stacks)
5333     {
5334       free (yyss);
5335       free (yyvs);
5336 #ifdef YYLSP_NEEDED
5337       free (yyls);
5338 #endif
5339     }
5340   return 0;
5341
5342  yyabortlab:
5343   /* YYABORT comes here.  */
5344   if (yyfree_stacks)
5345     {
5346       free (yyss);
5347       free (yyvs);
5348 #ifdef YYLSP_NEEDED
5349       free (yyls);
5350 #endif
5351     }
5352   return 1;
5353 }
5354
5355
5356 /*@-redecl@*/ /*@-namechecks@*/
5357 extern char *yytext;
5358 /*@=redecl@*/ /*@=namechecks@*/
5359
5360 # include "bison.reset"
5361
5362 void yyerror (/*@unused@*/ char *s) 
5363 {
5364   static bool givehint = FALSE;
5365
5366   if (context_inIterDef ())
5367     {
5368       llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s", 
5369                                     context_inFunctionName ()));
5370     }
5371   else if (context_inIterEnd ())
5372     {
5373       llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s", 
5374                                     context_inFunctionName ()));
5375     }
5376   else if (context_inMacro ())
5377     {
5378       llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s", 
5379                                     context_inFunctionName ()));
5380       
5381       if (context_inUnknownMacro ())
5382         {
5383           if (!givehint)
5384             {
5385               llhint (cstring_makeLiteral 
5386                      ("Precede macro definition with /*@notfunction@*/ "
5387                       "to suppress checking and force expansion"));
5388               givehint = TRUE;
5389             }
5390         }
5391
5392       swallowMacro ();
5393       context_exitAllClausesQuiet ();
5394     }
5395   else
5396     {
5397       llparseerror (cstring_undefined);
5398     }
5399 }
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412 /*
5413 ** Resets all flags in bison.head
5414 */
5415
5416
5417 /*@=allmacros@*/
5418 /*@=boolint@*/
5419 /*@=charint@*/
5420 /*@=macroparams@*/
5421 /*@=macroundef@*/
5422 /*@=unreachable@*/
5423 /*@=macrospec@*/
5424 /*@=varuse@*/
5425 /*@=ignorequals@*/
5426 /*@=macrostmt@*/
5427 /*@=noeffect@*/
5428 /*@=shadow@*/
5429 /*@=exitarg@*/
5430 /*@=macroredef@*/
5431 /*@=uniondef@*/
5432 /*@=compdef@*/
5433 /*@=matchfields@*/
5434 /*@=exportlocal@*/
5435 /*@=evalorderuncon@*/
5436 /*@=exportheader@*/
5437 /*@=typeuse@*/
5438 /*@=redecl@*/
5439 /*@=redef@*/
5440 /*@=noparams@*/
5441 /*@=ansireserved@*/
5442 /*@=fielduse@*/
5443 /*@=ifblock@*/
5444 /*@=elseifcomplete@*/
5445 /*@=whileblock@*/
5446 /*@=forblock@*/
5447 /*@=branchstate@*/
5448 /*@=readonlytrans@*/
5449 /*@=namechecks@*/
5450 /*@=usedef@*/
5451 /*@=systemunrecog@*/
5452 /*@=dependenttrans@*/
5453 /*@=unqualifiedtrans@*/
5454 /*@=declundef@*/
5455
5456
5457 /*drl added 11/27/2001*/
5458 /*@=bounds@*/
This page took 6.870046 seconds and 5 git commands to generate.