OSDN Git Service

* parse.y (primary): Use notype_unqualified_id instead of IDENTIFIER
[pf3gnuchains/gcc-fork.git] / gcc / cp / parse.c
1
2 /*  A Bison parser, made from parse.y
3  by  GNU Bison version 1.25
4   */
5
6 #define YYBISON 1  /* Identify Bison output.  */
7
8 #define IDENTIFIER      258
9 #define TYPENAME        259
10 #define SELFNAME        260
11 #define PFUNCNAME       261
12 #define SCSPEC  262
13 #define TYPESPEC        263
14 #define CV_QUALIFIER    264
15 #define CONSTANT        265
16 #define STRING  266
17 #define ELLIPSIS        267
18 #define SIZEOF  268
19 #define ENUM    269
20 #define IF      270
21 #define ELSE    271
22 #define WHILE   272
23 #define DO      273
24 #define FOR     274
25 #define SWITCH  275
26 #define CASE    276
27 #define DEFAULT 277
28 #define BREAK   278
29 #define CONTINUE        279
30 #define RETURN  280
31 #define GOTO    281
32 #define ASM_KEYWORD     282
33 #define TYPEOF  283
34 #define ALIGNOF 284
35 #define SIGOF   285
36 #define ATTRIBUTE       286
37 #define EXTENSION       287
38 #define LABEL   288
39 #define REALPART        289
40 #define IMAGPART        290
41 #define AGGR    291
42 #define VISSPEC 292
43 #define DELETE  293
44 #define NEW     294
45 #define THIS    295
46 #define OPERATOR        296
47 #define CXX_TRUE        297
48 #define CXX_FALSE       298
49 #define NAMESPACE       299
50 #define TYPENAME_KEYWORD        300
51 #define USING   301
52 #define LEFT_RIGHT      302
53 #define TEMPLATE        303
54 #define TYPEID  304
55 #define DYNAMIC_CAST    305
56 #define STATIC_CAST     306
57 #define REINTERPRET_CAST        307
58 #define CONST_CAST      308
59 #define SCOPE   309
60 #define EMPTY   310
61 #define PTYPENAME       311
62 #define NSNAME  312
63 #define THROW   313
64 #define ASSIGN  314
65 #define OROR    315
66 #define ANDAND  316
67 #define MIN_MAX 317
68 #define EQCOMPARE       318
69 #define ARITHCOMPARE    319
70 #define LSHIFT  320
71 #define RSHIFT  321
72 #define POINTSAT_STAR   322
73 #define DOT_STAR        323
74 #define UNARY   324
75 #define PLUSPLUS        325
76 #define MINUSMINUS      326
77 #define HYPERUNARY      327
78 #define PAREN_STAR_PAREN        328
79 #define POINTSAT        329
80 #define TRY     330
81 #define CATCH   331
82 #define PRE_PARSED_FUNCTION_DECL        332
83 #define EXTERN_LANG_STRING      333
84 #define ALL     334
85 #define PRE_PARSED_CLASS_DECL   335
86 #define DEFARG  336
87 #define DEFARG_MARKER   337
88 #define TYPENAME_DEFN   338
89 #define IDENTIFIER_DEFN 339
90 #define PTYPENAME_DEFN  340
91 #define END_OF_LINE     341
92 #define END_OF_SAVED_INPUT      342
93
94 #line 29 "parse.y"
95
96 /* Cause the `yydebug' variable to be defined.  */
97 #define YYDEBUG 1
98
99 #include "config.h"
100
101 #include "system.h"
102
103 #include "tree.h"
104 #include "input.h"
105 #include "flags.h"
106 #include "lex.h"
107 #include "cp-tree.h"
108 #include "output.h"
109 #include "except.h"
110 #include "toplev.h"
111
112 /* Since parsers are distinct for each language, put the language string
113    definition here.  (fnf) */
114 char *language_string = "GNU C++";
115
116 extern tree void_list_node;
117 extern struct obstack permanent_obstack;
118
119 extern int end_of_file;
120
121 /* Like YYERROR but do call yyerror.  */
122 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
123
124 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
125 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
126
127 /* Contains the statement keyword (if/while/do) to include in an
128    error message if the user supplies an empty conditional expression.  */
129 static char *cond_stmt_keyword;
130
131 static tree empty_parms PROTO((void));
132
133 /* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
134 int have_extern_spec;
135 int used_extern_spec;
136
137 /* Cons up an empty parameter list.  */
138 #ifdef __GNUC__
139 __inline
140 #endif
141 static tree
142 empty_parms ()
143 {
144   tree parms;
145
146   if (strict_prototype
147       || current_class_type != NULL)
148     parms = void_list_node;
149   else
150     parms = NULL_TREE;
151   return parms;
152 }
153
154
155 #line 92 "parse.y"
156 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
157 #line 282 "parse.y"
158
159 /* List of types and structure classes of the current declaration.  */
160 static tree current_declspecs;
161
162 /* List of prefix attributes in effect.
163    Prefix attributes are parsed by the reserved_declspecs and declmods
164    rules.  They create a list that contains *both* declspecs and attrs.  */
165 /* ??? It is not clear yet that all cases where an attribute can now appear in
166    a declspec list have been updated.  */
167 static tree prefix_attributes;
168
169 /* When defining an aggregate, this is the most recent one being defined.  */
170 static tree current_aggr;
171
172 /* Tell yyparse how to print a token's value, if yydebug is set.  */
173
174 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
175 extern void yyprint                     PROTO((FILE *, int, YYSTYPE));
176 extern tree combine_strings             PROTO((tree));
177
178 static int
179 parse_decl(declarator, specs_attrs, attributes, initialized, decl)
180   tree declarator;
181   tree specs_attrs;
182   tree attributes;
183   int initialized;
184   tree* decl;
185 {
186   int  sm;
187
188   split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
189   if (current_declspecs
190       && TREE_CODE (current_declspecs) != TREE_LIST)
191     current_declspecs = get_decl_list (current_declspecs);
192   if (have_extern_spec && !used_extern_spec)
193     {
194       current_declspecs = decl_tree_cons (NULL_TREE, 
195                                           get_identifier ("extern"), 
196                                           current_declspecs);
197       used_extern_spec = 1;
198     }
199   sm = suspend_momentary ();
200   *decl = start_decl (declarator, current_declspecs, initialized,
201                       attributes, prefix_attributes);
202   return sm;
203 }
204 #include <stdio.h>
205
206 #ifndef __cplusplus
207 #ifndef __STDC__
208 #define const
209 #endif
210 #endif
211
212
213
214 #define YYFINAL         1577
215 #define YYFLAG          -32768
216 #define YYNTBASE        112
217
218 #define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 392)
219
220 static const char yytranslate[] = {     0,
221      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
222      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
223      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
224      2,     2,   110,     2,     2,     2,    82,    70,     2,    93,
225    108,    80,    78,    59,    79,    92,    81,     2,     2,     2,
226      2,     2,     2,     2,     2,     2,     2,    62,    60,    74,
227     64,    75,    65,     2,     2,     2,     2,     2,     2,     2,
228      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
229      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
230     94,     2,   111,    69,     2,     2,     2,     2,     2,     2,
231      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
232      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
233      2,     2,    58,    68,   109,    88,     2,     2,     2,     2,
234      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
235      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
236      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
237      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
238      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
239      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
240      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
241      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
242      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
243      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
244      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
245      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
246      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
247      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
248     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
249     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
250     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
251     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
252     56,    57,    61,    63,    66,    67,    71,    72,    73,    76,
253     77,    83,    84,    85,    86,    87,    89,    90,    91,    95,
254     96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
255    106,   107
256 };
257
258 #if YYDEBUG != 0
259 static const short yyprhs[] = {     0,
260      0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
261     17,    19,    20,    23,    26,    28,    30,    36,    41,    47,
262     52,    53,    60,    61,    67,    69,    72,    74,    77,    78,
263     85,    88,    92,    96,   100,   104,   109,   110,   116,   119,
264    123,   125,   127,   130,   133,   135,   138,   139,   145,   149,
265    151,   155,   157,   158,   161,   164,   168,   170,   174,   176,
266    180,   182,   186,   189,   192,   195,   199,   203,   206,   209,
267    212,   215,   218,   220,   222,   224,   225,   227,   230,   231,
268    233,   238,   242,   246,   247,   256,   262,   263,   273,   280,
269    281,   290,   296,   297,   307,   314,   317,   320,   322,   325,
270    327,   334,   339,   346,   351,   354,   356,   359,   362,   364,
271    367,   369,   372,   375,   380,   383,   387,   388,   389,   391,
272    395,   398,   402,   404,   409,   412,   417,   420,   425,   428,
273    430,   432,   434,   436,   438,   440,   442,   444,   446,   448,
274    450,   451,   458,   459,   466,   467,   473,   474,   480,   481,
275    489,   490,   498,   499,   506,   507,   514,   515,   516,   521,
276    526,   528,   533,   535,   537,   538,   540,   542,   546,   548,
277    550,   552,   554,   556,   558,   560,   562,   564,   566,   568,
278    572,   574,   578,   579,   581,   583,   584,   592,   594,   596,
279    600,   605,   609,   610,   614,   616,   620,   624,   628,   632,
280    634,   636,   638,   641,   644,   647,   650,   653,   656,   659,
281    664,   667,   672,   675,   679,   683,   688,   694,   701,   708,
282    716,   719,   724,   730,   733,   736,   738,   739,   744,   749,
283    753,   755,   759,   762,   766,   771,   773,   776,   782,   784,
284    788,   792,   796,   800,   804,   808,   812,   816,   820,   824,
285    828,   832,   836,   840,   844,   848,   852,   856,   860,   866,
286    870,   874,   876,   879,   883,   885,   887,   889,   891,   893,
287    894,   900,   906,   912,   918,   924,   926,   928,   930,   932,
288    935,   938,   942,   947,   952,   954,   956,   958,   962,   964,
289    966,   968,   970,   974,   978,   982,   983,   988,   993,   996,
290   1001,  1004,  1009,  1012,  1015,  1017,  1022,  1024,  1032,  1040,
291   1048,  1056,  1061,  1066,  1069,  1072,  1075,  1077,  1082,  1085,
292   1088,  1094,  1098,  1101,  1104,  1110,  1114,  1120,  1124,  1129,
293   1136,  1139,  1141,  1144,  1146,  1149,  1151,  1153,  1155,  1158,
294   1159,  1162,  1165,  1169,  1173,  1177,  1180,  1183,  1186,  1188,
295   1190,  1192,  1195,  1198,  1201,  1204,  1206,  1208,  1210,  1212,
296   1215,  1218,  1222,  1226,  1230,  1235,  1237,  1240,  1243,  1246,
297   1248,  1250,  1252,  1255,  1258,  1261,  1263,  1265,  1268,  1271,
298   1275,  1277,  1280,  1282,  1284,  1286,  1291,  1296,  1301,  1306,
299   1308,  1310,  1312,  1314,  1318,  1320,  1324,  1326,  1330,  1331,
300   1336,  1337,  1344,  1348,  1349,  1354,  1356,  1360,  1364,  1365,
301   1370,  1374,  1375,  1377,  1379,  1382,  1389,  1391,  1395,  1396,
302   1398,  1403,  1410,  1415,  1417,  1419,  1421,  1423,  1425,  1429,
303   1430,  1433,  1435,  1438,  1442,  1447,  1449,  1451,  1455,  1460,
304   1464,  1470,  1472,  1477,  1481,  1485,  1486,  1490,  1494,  1498,
305   1499,  1502,  1505,  1506,  1514,  1519,  1520,  1527,  1531,  1534,
306   1537,  1540,  1541,  1542,  1552,  1554,  1555,  1557,  1558,  1560,
307   1562,  1565,  1568,  1571,  1574,  1577,  1580,  1583,  1587,  1592,
308   1596,  1599,  1603,  1604,  1606,  1610,  1613,  1616,  1618,  1620,
309   1621,  1624,  1628,  1630,  1635,  1637,  1641,  1643,  1645,  1650,
310   1655,  1658,  1661,  1665,  1669,  1671,  1672,  1674,  1677,  1682,
311   1686,  1688,  1691,  1694,  1697,  1700,  1703,  1706,  1709,  1711,
312   1714,  1717,  1721,  1724,  1727,  1732,  1737,  1740,  1742,  1748,
313   1753,  1755,  1756,  1758,  1762,  1763,  1765,  1769,  1771,  1773,
314   1775,  1777,  1782,  1787,  1792,  1797,  1802,  1806,  1811,  1816,
315   1821,  1826,  1830,  1832,  1836,  1838,  1842,  1845,  1847,  1855,
316   1856,  1859,  1861,  1864,  1865,  1868,  1873,  1878,  1881,  1886,
317   1890,  1894,  1897,  1900,  1904,  1906,  1908,  1911,  1913,  1915,
318   1918,  1921,  1926,  1931,  1935,  1939,  1942,  1944,  1948,  1952,
319   1955,  1958,  1962,  1964,  1968,  1972,  1975,  1978,  1982,  1984,
320   1989,  1993,  1998,  2002,  2004,  2007,  2010,  2013,  2016,  2019,
321   2021,  2024,  2029,  2034,  2037,  2039,  2041,  2043,  2045,  2048,
322   2053,  2056,  2059,  2062,  2065,  2067,  2070,  2073,  2076,  2079,
323   2083,  2085,  2088,  2092,  2097,  2100,  2103,  2106,  2109,  2112,
324   2115,  2120,  2123,  2125,  2128,  2131,  2135,  2137,  2141,  2144,
325   2148,  2151,  2154,  2158,  2160,  2164,  2169,  2173,  2176,  2179,
326   2181,  2185,  2188,  2191,  2193,  2196,  2200,  2202,  2206,  2208,
327   2215,  2220,  2225,  2229,  2235,  2239,  2243,  2247,  2250,  2252,
328   2254,  2257,  2260,  2263,  2264,  2266,  2268,  2271,  2275,  2277,
329   2280,  2281,  2285,  2286,  2287,  2293,  2295,  2296,  2299,  2301,
330   2303,  2305,  2308,  2309,  2314,  2316,  2317,  2318,  2324,  2325,
331   2326,  2334,  2335,  2336,  2337,  2338,  2351,  2352,  2353,  2361,
332   2362,  2368,  2369,  2377,  2378,  2383,  2386,  2389,  2392,  2396,
333   2403,  2412,  2423,  2436,  2441,  2445,  2448,  2451,  2453,  2455,
334   2457,  2459,  2461,  2462,  2463,  2470,  2471,  2472,  2478,  2480,
335   2483,  2484,  2485,  2491,  2493,  2495,  2499,  2503,  2506,  2509,
336   2512,  2515,  2518,  2520,  2523,  2524,  2526,  2527,  2529,  2531,
337   2532,  2534,  2536,  2540,  2545,  2547,  2551,  2552,  2554,  2556,
338   2558,  2561,  2564,  2567,  2569,  2572,  2575,  2576,  2580,  2582,
339   2584,  2586,  2589,  2592,  2595,  2600,  2603,  2606,  2609,  2612,
340   2615,  2618,  2620,  2623,  2625,  2628,  2630,  2632,  2633,  2634,
341   2636,  2637,  2642,  2645,  2647,  2649,  2653,  2654,  2658,  2662,
342   2666,  2668,  2671,  2674,  2677,  2680,  2683,  2686,  2689,  2692,
343   2695,  2698,  2701,  2704,  2707,  2710,  2713,  2716,  2719,  2722,
344   2725,  2728,  2731,  2734,  2737,  2741,  2744,  2747,  2750,  2753,
345   2757,  2760,  2763,  2768,  2773,  2777
346 };
347
348 static const short yyrhs[] = {    -1,
349    113,     0,     0,   114,   120,     0,   113,   120,     0,   113,
350      0,     0,     0,     0,    32,     0,    27,     0,     0,   121,
351    122,     0,   146,   145,     0,   142,     0,   141,     0,   119,
352     93,   214,   108,    60,     0,   133,    58,   115,   109,     0,
353    133,   116,   146,   117,   145,     0,   133,   116,   142,   117,
354      0,     0,    44,   161,    58,   123,   115,   109,     0,     0,
355     44,    58,   124,   115,   109,     0,   125,     0,   127,    60,
356      0,   129,     0,   118,   122,     0,     0,    44,   161,    64,
357    126,   132,    60,     0,    46,   306,     0,    46,   320,   306,
358      0,    46,   320,   205,     0,    46,   131,   161,     0,    46,
359    320,   161,     0,    46,   320,   131,   161,     0,     0,    46,
360     44,   130,   132,    60,     0,    57,    54,     0,   131,    57,
361     54,     0,   205,     0,   306,     0,   320,   306,     0,   320,
362    205,     0,    98,     0,   133,    98,     0,     0,    48,    74,
363    135,   136,    75,     0,    48,    74,    75,     0,   140,     0,
364    136,    59,   140,     0,   161,     0,     0,   263,   137,     0,
365     45,   137,     0,   134,   263,   137,     0,   138,     0,   138,
366     64,   220,     0,   383,     0,   383,    64,   200,     0,   139,
367      0,   139,    64,   180,     0,   134,   122,     0,   134,     1,
368      0,   231,    60,     0,   224,   230,    60,     0,   221,   229,
369     60,     0,   224,    60,     0,   164,    60,     0,   221,    60,
370      0,     1,    60,     0,     1,   109,     0,    60,     0,   215,
371      0,   157,     0,     0,   156,     0,   156,    60,     0,     0,
372    107,     0,   152,   144,   143,   330,     0,   152,   144,   354,
373      0,   152,   144,     1,     0,     0,   311,     5,    93,   148,
374    374,   108,   293,   386,     0,   311,     5,    47,   293,   386,
375      0,     0,   320,   311,     5,    93,   149,   374,   108,   293,
376    386,     0,   320,   311,     5,    47,   293,   386,     0,     0,
377    311,   176,    93,   150,   374,   108,   293,   386,     0,   311,
378    176,    47,   293,   386,     0,     0,   320,   311,   176,    93,
379    151,   374,   108,   293,   386,     0,   320,   311,   176,    47,
380    293,   386,     0,   221,   218,     0,   224,   303,     0,   303,
381      0,   224,   147,     0,   147,     0,     5,    93,   374,   108,
382    293,   386,     0,     5,    47,   293,   386,     0,   176,    93,
383    374,   108,   293,   386,     0,   176,    47,   293,   386,     0,
384    224,   153,     0,   153,     0,   221,   218,     0,   224,   303,
385      0,   303,     0,   224,   147,     0,   147,     0,    25,     3,
386      0,   155,   248,     0,   155,    93,   192,   108,     0,   155,
387     47,     0,    62,   158,   159,     0,     0,     0,   160,     0,
388    159,    59,   160,     0,   159,     1,     0,    93,   192,   108,
389      0,    47,     0,   162,    93,   192,   108,     0,   162,    47,
390      0,   299,    93,   192,   108,     0,   299,    47,     0,   313,
391     93,   192,   108,     0,   313,    47,     0,     3,     0,     4,
392      0,     5,     0,    56,     0,    57,     0,     3,     0,    56,
393      0,    57,     0,   104,     0,   103,     0,   105,     0,     0,
394     48,   173,   227,    60,   165,   174,     0,     0,    48,   173,
395    221,   218,   166,   174,     0,     0,    48,   173,   303,   167,
396    174,     0,     0,    48,   173,   147,   168,   174,     0,     0,
397      7,    48,   173,   227,    60,   169,   174,     0,     0,     7,
398     48,   173,   221,   218,   170,   174,     0,     0,     7,    48,
399    173,   303,   171,   174,     0,     0,     7,    48,   173,   147,
400    172,   174,     0,     0,     0,    56,    74,   178,   177,     0,
401      4,    74,   178,   177,     0,   176,     0,     5,    74,   178,
402    177,     0,    75,     0,    77,     0,     0,   179,     0,   180,
403      0,   179,    59,   180,     0,   220,     0,    56,     0,   200,
404      0,    79,     0,    78,     0,    86,     0,    87,     0,   110,
405      0,   191,     0,   200,     0,    47,     0,    93,   182,   108,
406      0,    47,     0,    93,   186,   108,     0,     0,   186,     0,
407      1,     0,     0,   364,   218,   232,   241,    64,   187,   249,
408      0,   182,     0,   109,     0,   327,   325,   109,     0,   327,
409    325,     1,   109,     0,   327,     1,   109,     0,     0,    58,
410    190,   188,     0,   339,     0,   200,    59,   200,     0,   200,
411     59,     1,     0,   191,    59,   200,     0,   191,    59,     1,
412      0,   200,     0,   191,     0,   209,     0,   118,   199,     0,
413     80,   199,     0,    70,   199,     0,    88,   199,     0,   181,
414    199,     0,    67,   161,     0,    13,   193,     0,    13,    93,
415    220,   108,     0,    29,   193,     0,    29,    93,   220,   108,
416      0,   211,   292,     0,   211,   292,   197,     0,   211,   196,
417    292,     0,   211,   196,   292,   197,     0,   211,    93,   195,
418    220,   194,     0,   211,    93,   195,   220,   194,   197,     0,
419    211,   196,    93,   195,   220,   194,     0,   211,   196,    93,
420    195,   220,   194,   197,     0,   212,   199,     0,   212,    94,
421    111,   199,     0,   212,    94,   182,   111,   199,     0,    34,
422    199,     0,    35,   199,     0,   108,     0,     0,    93,   195,
423    192,   108,     0,    58,   195,   192,   109,     0,    93,   192,
424    108,     0,    47,     0,    93,   227,   108,     0,    64,   249,
425      0,    93,   220,   108,     0,   198,    93,   220,   108,     0,
426    193,     0,   198,   193,     0,   198,    58,   250,   261,   109,
427      0,   199,     0,   200,    83,   200,     0,   200,    84,   200,
428      0,   200,    78,   200,     0,   200,    79,   200,     0,   200,
429     80,   200,     0,   200,    81,   200,     0,   200,    82,   200,
430      0,   200,    76,   200,     0,   200,    77,   200,     0,   200,
431     73,   200,     0,   200,    74,   200,     0,   200,    75,   200,
432      0,   200,    72,   200,     0,   200,    71,   200,     0,   200,
433     70,   200,     0,   200,    68,   200,     0,   200,    69,   200,
434      0,   200,    67,   200,     0,   200,    66,   200,     0,   200,
435     65,   369,    62,   200,     0,   200,    64,   200,     0,   200,
436     63,   200,     0,    61,     0,    61,   200,     0,    88,   384,
437    161,     0,   203,     0,   391,     0,     3,     0,    56,     0,
438     57,     0,     0,     6,    74,   202,   178,   177,     0,   391,
439     74,   202,   178,   177,     0,    48,   161,    74,   178,   177,
440      0,    48,     6,    74,   178,   177,     0,    48,   391,    74,
441    178,   177,     0,   201,     0,     4,     0,     5,     0,   201,
442      0,    80,   206,     0,    70,   206,     0,    93,   206,   108,
443      0,     3,    74,   178,   177,     0,    57,    74,   179,   177,
444      0,   305,     0,   201,     0,   207,     0,    93,   206,   108,
445      0,   201,     0,    10,     0,   213,     0,   214,     0,    93,
446    182,   108,     0,    93,   206,   108,     0,    93,     1,   108,
447      0,     0,    93,   210,   331,   108,     0,   201,    93,   192,
448    108,     0,   201,    47,     0,   209,    93,   192,   108,     0,
449    209,    47,     0,   209,    94,   182,   111,     0,   209,    86,
450      0,   209,    87,     0,    40,     0,     9,    93,   192,   108,
451      0,   309,     0,    50,    74,   220,    75,    93,   182,   108,
452      0,    51,    74,   220,    75,    93,   182,   108,     0,    52,
453     74,   220,    75,    93,   182,   108,     0,    53,    74,   220,
454     75,    93,   182,   108,     0,    49,    93,   182,   108,     0,
455     49,    93,   220,   108,     0,   320,     3,     0,   320,   203,
456      0,   320,   391,     0,   308,     0,   308,    93,   192,   108,
457      0,   308,    47,     0,   216,   204,     0,   216,   204,    93,
458    192,   108,     0,   216,   204,    47,     0,   216,   205,     0,
459    216,   308,     0,   216,   205,    93,   192,   108,     0,   216,
460    205,    47,     0,   216,   308,    93,   192,   108,     0,   216,
461    308,    47,     0,   216,    88,     8,    47,     0,   216,     8,
462     54,    88,     8,    47,     0,   216,     1,     0,    39,     0,
463    320,    39,     0,    38,     0,   320,   212,     0,    42,     0,
464     43,     0,    11,     0,   214,    11,     0,     0,   209,    92,
465      0,   209,    91,     0,   227,   229,    60,     0,   221,   229,
466     60,     0,   224,   230,    60,     0,   221,    60,     0,   224,
467     60,     0,   118,   217,     0,   298,     0,   303,     0,    47,
468      0,   219,    47,     0,   225,   323,     0,   294,   323,     0,
469    227,   323,     0,   225,     0,   294,     0,   225,     0,   222,
470      0,   224,   227,     0,   227,   223,     0,   227,   226,   223,
471      0,   224,   227,   223,     0,   224,   227,   226,     0,   224,
472    227,   226,   223,     0,     7,     0,   223,   228,     0,   223,
473      7,     0,   223,   242,     0,   242,     0,   294,     0,     7,
474      0,   224,     9,     0,   224,     7,     0,   224,   242,     0,
475    242,     0,   227,     0,   294,   227,     0,   227,   226,     0,
476    294,   227,   226,     0,   228,     0,   226,   228,     0,   256,
477      0,     8,     0,   300,     0,    28,    93,   182,   108,     0,
478     28,    93,   220,   108,     0,    30,    93,   182,   108,     0,
479     30,    93,   220,   108,     0,     8,     0,     9,     0,   256,
480      0,   237,     0,   229,    59,   233,     0,   238,     0,   230,
481     59,   233,     0,   239,     0,   231,    59,   233,     0,     0,
482    119,    93,   214,   108,     0,     0,   218,   232,   241,    64,
483    234,   249,     0,   218,   232,   241,     0,     0,   241,    64,
484    236,   249,     0,   241,     0,   218,   232,   235,     0,   303,
485    232,   235,     0,     0,   303,   232,   240,   235,     0,   147,
486    232,   241,     0,     0,   242,     0,   243,     0,   242,   243,
487      0,    31,    93,    93,   244,   108,   108,     0,   245,     0,
488    244,    59,   245,     0,     0,   246,     0,   246,    93,     3,
489    108,     0,   246,    93,     3,    59,   192,   108,     0,   246,
490     93,   192,   108,     0,   161,     0,     7,     0,     8,     0,
491      9,     0,   161,     0,   247,    59,   161,     0,     0,    64,
492    249,     0,   200,     0,    58,   109,     0,    58,   250,   109,
493      0,    58,   250,    59,   109,     0,     1,     0,   249,     0,
494    250,    59,   249,     0,    94,   200,   111,   249,     0,   161,
495     62,   249,     0,   250,    59,   161,    62,   249,     0,    97,
496      0,   251,   144,   143,   330,     0,   251,   144,   354,     0,
497    251,   144,     1,     0,     0,   253,   252,   145,     0,   102,
498    200,   107,     0,   102,     1,   107,     0,     0,   255,   254,
499      0,   255,     1,     0,     0,    14,   161,    58,   257,   290,
500    262,   109,     0,    14,   161,    58,   109,     0,     0,    14,
501     58,   258,   290,   262,   109,     0,    14,    58,   109,     0,
502     14,   161,     0,    14,   318,     0,    45,   313,     0,     0,
503      0,   270,   276,   278,   109,   241,   259,   255,   260,   253,
504      0,   270,     0,     0,    59,     0,     0,    59,     0,    36,
505      0,   263,     7,     0,   263,     8,     0,   263,     9,     0,
506    263,    36,     0,   263,   242,     0,   263,   161,     0,   263,
507    163,     0,   263,   311,   161,     0,   263,   320,   311,   161,
508      0,   263,   320,   161,     0,   263,   175,     0,   263,   311,
509    175,     0,     0,   264,     0,   265,   267,   271,     0,   266,
510    271,     0,   263,    58,     0,   269,     0,   268,     0,     0,
511     62,   384,     0,    62,   384,   272,     0,   273,     0,   272,
512     59,   384,   273,     0,   274,     0,   275,   384,   274,     0,
513    313,     0,   299,     0,    30,    93,   182,   108,     0,    30,
514     93,   220,   108,     0,    37,   384,     0,     7,   384,     0,
515    275,    37,   384,     0,   275,     7,   384,     0,    58,     0,
516      0,   277,     0,   277,   279,     0,   278,    37,    62,   279,
517      0,   278,    37,    62,     0,   280,     0,   279,   280,     0,
518    281,    60,     0,   281,   109,     0,   154,    62,     0,   154,
519     95,     0,   154,    25,     0,   154,    58,     0,    60,     0,
520    118,   280,     0,   134,   280,     0,   134,   221,    60,     0,
521    221,   282,     0,   224,   283,     0,   303,   232,   241,   248,
522      0,   147,   232,   241,   248,     0,    62,   200,     0,     1,
523      0,   224,   153,   232,   241,   248,     0,   153,   232,   241,
524    248,     0,   127,     0,     0,   284,     0,   282,    59,   285,
525      0,     0,   287,     0,   283,    59,   289,     0,   286,     0,
526    287,     0,   288,     0,   289,     0,   298,   232,   241,   248,
527      0,     4,    62,   200,   241,     0,   303,   232,   241,   248,
528      0,   147,   232,   241,   248,     0,     3,    62,   200,   241,
529      0,    62,   200,   241,     0,   298,   232,   241,   248,     0,
530      4,    62,   200,   241,     0,   303,   232,   241,   248,     0,
531      3,    62,   200,   241,     0,    62,   200,   241,     0,   291,
532      0,   290,    59,   291,     0,   161,     0,   161,    64,   200,
533      0,   364,   321,     0,   364,     0,    93,   195,   220,   194,
534     94,   182,   111,     0,     0,   293,     9,     0,     9,     0,
535    294,     9,     0,     0,   295,   182,     0,   295,    93,   192,
536    108,     0,   295,    93,   374,   108,     0,   295,    47,     0,
537    295,    93,     1,   108,     0,    80,   294,   298,     0,    70,
538    294,   298,     0,    80,   298,     0,    70,   298,     0,   319,
539    293,   298,     0,   302,     0,   310,     0,   320,   310,     0,
540    299,     0,   301,     0,   320,   301,     0,   311,   310,     0,
541    302,   297,   293,   386,     0,   302,    94,   296,   111,     0,
542    302,    94,   111,     0,    93,   298,   108,     0,   311,   310,
543      0,   310,     0,    80,   294,   303,     0,    70,   294,   303,
544      0,    80,   303,     0,    70,   303,     0,   319,   293,   303,
545      0,   208,     0,    80,   294,   303,     0,    70,   294,   303,
546      0,    80,   304,     0,    70,   304,     0,   319,   293,   303,
547      0,   305,     0,   208,   297,   293,   386,     0,    93,   304,
548    108,     0,   208,    94,   296,   111,     0,   208,    94,   111,
549      0,   307,     0,   311,   207,     0,   311,   205,     0,   311,
550    204,     0,   311,   201,     0,   311,   204,     0,   307,     0,
551    320,   307,     0,   227,    93,   192,   108,     0,   227,    93,
552    206,   108,     0,   227,   219,     0,     4,     0,     5,     0,
553    175,     0,   312,     0,   311,   312,     0,   311,    48,   317,
554     54,     0,     4,    54,     0,     5,    54,     0,    57,    54,
555      0,   175,    54,     0,   314,     0,   320,   314,     0,   315,
556    161,     0,   315,   175,     0,   315,   317,     0,   315,    48,
557    317,     0,   316,     0,   315,   316,     0,   315,   317,    54,
558      0,   315,    48,   317,    54,     0,     4,    54,     0,     5,
559     54,     0,   175,    54,     0,    56,    54,     0,     3,    54,
560      0,    57,    54,     0,   161,    74,   178,   177,     0,   320,
561    310,     0,   301,     0,   320,   301,     0,   311,    80,     0,
562    320,   311,    80,     0,    54,     0,    80,   293,   321,     0,
563     80,   293,     0,    70,   293,   321,     0,    70,   293,     0,
564    319,   293,     0,   319,   293,   321,     0,   322,     0,    94,
565    182,   111,     0,   322,    94,   296,   111,     0,    80,   294,
566    323,     0,    80,   323,     0,    80,   294,     0,    80,     0,
567     70,   294,   323,     0,    70,   323,     0,    70,   294,     0,
568     70,     0,   319,   293,     0,   319,   293,   323,     0,   324,
569      0,    93,   323,   108,     0,    90,     0,   324,    93,   374,
570    108,   293,   386,     0,   324,    47,   293,   386,     0,   324,
571     94,   296,   111,     0,   324,    94,   111,     0,    93,   375,
572    108,   293,   386,     0,   198,   293,   386,     0,   219,   293,
573    386,     0,    94,   296,   111,     0,    94,   111,     0,   338,
574      0,   326,     0,   325,   338,     0,   325,   326,     0,     1,
575     60,     0,     0,   328,     0,   329,     0,   328,   329,     0,
576     33,   247,    60,     0,   331,     0,     1,   331,     0,     0,
577     58,   332,   188,     0,     0,     0,    15,   334,   184,   335,
578    336,     0,   331,     0,     0,   337,   339,     0,   331,     0,
579    339,     0,   217,     0,   182,    60,     0,     0,   333,    16,
580    340,   336,     0,   333,     0,     0,     0,    17,   341,   184,
581    342,   189,     0,     0,     0,    18,   343,   336,    17,   344,
582    183,    60,     0,     0,     0,     0,     0,    19,   345,    93,
583    367,   346,   185,    60,   347,   369,   108,   348,   189,     0,
584      0,     0,    20,   349,    93,   186,   108,   350,   336,     0,
585      0,    21,   200,    62,   351,   338,     0,     0,    21,   200,
586     12,   200,    62,   352,   338,     0,     0,    22,    62,   353,
587    338,     0,    23,    60,     0,    24,    60,     0,    25,    60,
588      0,    25,   182,    60,     0,   119,   368,    93,   214,   108,
589     60,     0,   119,   368,    93,   214,    62,   370,   108,    60,
590      0,   119,   368,    93,   214,    62,   370,    62,   370,   108,
591     60,     0,   119,   368,    93,   214,    62,   370,    62,   370,
592     62,   373,   108,    60,     0,    26,    80,   182,    60,     0,
593     26,   161,    60,     0,   366,   338,     0,   366,   109,     0,
594     60,     0,   357,     0,   129,     0,   128,     0,   125,     0,
595      0,     0,    95,   355,   143,   331,   356,   360,     0,     0,
596      0,    95,   358,   331,   359,   360,     0,   361,     0,   360,
597    361,     0,     0,     0,    96,   362,   365,   363,   331,     0,
598    225,     0,   294,     0,    93,    12,   108,     0,    93,   383,
599    108,     0,     3,    62,     0,    56,    62,     0,     4,    62,
600      0,     5,    62,     0,   369,    60,     0,   217,     0,    58,
601    188,     0,     0,     9,     0,     0,   182,     0,     1,     0,
602      0,   371,     0,   372,     0,   371,    59,   372,     0,    11,
603     93,   182,   108,     0,    11,     0,   373,    59,    11,     0,
604      0,   375,     0,   220,     0,   379,     0,   380,    12,     0,
605    379,    12,     0,   220,    12,     0,    12,     0,   379,    62,
606      0,   220,    62,     0,     0,    64,   377,   378,     0,   101,
607      0,   249,     0,   381,     0,   383,   376,     0,   380,   382,
608      0,   380,   385,     0,   380,   385,    64,   249,     0,   379,
609     59,     0,   220,    59,     0,   222,   218,     0,   225,   218,
610      0,   227,   218,     0,   222,   323,     0,   222,     0,   224,
611    303,     0,   383,     0,   383,   376,     0,   381,     0,   220,
612      0,     0,     0,   303,     0,     0,    61,    93,   388,   108,
613      0,    61,    47,     0,   220,     0,   387,     0,   388,    59,
614    387,     0,     0,    80,   293,   389,     0,    70,   293,   389,
615      0,   319,   293,   389,     0,    41,     0,   390,    80,     0,
616    390,    81,     0,   390,    82,     0,   390,    78,     0,   390,
617     79,     0,   390,    70,     0,   390,    68,     0,   390,    69,
618      0,   390,    88,     0,   390,    59,     0,   390,    73,     0,
619    390,    74,     0,   390,    75,     0,   390,    72,     0,   390,
620     63,     0,   390,    64,     0,   390,    76,     0,   390,    77,
621      0,   390,    86,     0,   390,    87,     0,   390,    67,     0,
622    390,    66,     0,   390,   110,     0,   390,    65,    62,     0,
623    390,    71,     0,   390,    91,     0,   390,    83,     0,   390,
624     47,     0,   390,    94,   111,     0,   390,    39,     0,   390,
625     38,     0,   390,    39,    94,   111,     0,   390,    38,    94,
626    111,     0,   390,   364,   389,     0,   390,     1,     0
627 };
628
629 #endif
630
631 #if YYDEBUG != 0
632 static const short yyrline[] = { 0,
633    331,   333,   341,   344,   345,   349,   351,   354,   359,   363,
634    369,   373,   376,   380,   383,   385,   387,   390,   392,   395,
635    398,   400,   402,   404,   406,   407,   409,   410,   414,   417,
636    426,   429,   431,   435,   438,   440,   444,   447,   459,   466,
637    474,   476,   477,   479,   483,   486,   492,   495,   497,   502,
638    505,   509,   512,   515,   518,   522,   527,   537,   539,   541,
639    543,   545,   558,   567,   577,   579,   581,   585,   587,   588,
640    595,   596,   597,   600,   603,   607,   609,   610,   613,   615,
641    618,   621,   623,   627,   630,   632,   636,   638,   640,   644,
642    646,   648,   652,   654,   656,   662,   666,   669,   672,   675,
643    680,   683,   685,   687,   693,   703,   705,   708,   711,   713,
644    716,   720,   729,   732,   734,   738,   751,   771,   774,   776,
645    777,   780,   787,   793,   795,   797,   799,   801,   804,   809,
646    811,   812,   813,   814,   817,   819,   820,   823,   825,   826,
647    829,   834,   834,   838,   838,   841,   841,   844,   844,   848,
648    848,   853,   853,   856,   856,   859,   861,   864,   871,   878,
649    884,   887,   896,   898,   906,   909,   912,   915,   919,   922,
650    924,   927,   930,   932,   934,   936,   940,   943,   946,   951,
651    955,   960,   964,   967,   968,   972,   991,   998,  1001,  1003,
652   1004,  1005,  1008,  1012,  1013,  1017,  1021,  1024,  1026,  1030,
653   1033,  1036,  1040,  1043,  1045,  1047,  1049,  1052,  1056,  1058,
654   1060,  1062,  1068,  1071,  1074,  1077,  1089,  1094,  1098,  1102,
655   1107,  1109,  1113,  1117,  1119,  1128,  1132,  1135,  1138,  1143,
656   1146,  1148,  1156,  1169,  1174,  1180,  1182,  1184,  1197,  1200,
657   1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,  1218,  1220,
658   1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,  1238,  1240,
659   1244,  1246,  1248,  1265,  1268,  1269,  1270,  1271,  1272,  1275,
660   1278,  1281,  1285,  1288,  1290,  1295,  1297,  1298,  1301,  1303,
661   1305,  1307,  1311,  1314,  1318,  1320,  1321,  1322,  1326,  1334,
662   1335,  1336,  1344,  1346,  1349,  1351,  1361,  1366,  1368,  1370,
663   1372,  1374,  1376,  1378,  1381,  1383,  1427,  1428,  1432,  1436,
664   1440,  1444,  1446,  1450,  1452,  1454,  1462,  1464,  1466,  1468,
665   1472,  1474,  1476,  1478,  1483,  1485,  1487,  1489,  1492,  1494,
666   1496,  1540,  1543,  1547,  1550,  1554,  1557,  1562,  1564,  1568,
667   1581,  1584,  1591,  1598,  1603,  1605,  1610,  1612,  1619,  1621,
668   1625,  1629,  1635,  1639,  1642,  1645,  1648,  1658,  1660,  1663,
669   1667,  1670,  1673,  1676,  1679,  1685,  1691,  1693,  1698,  1700,
670   1709,  1712,  1714,  1717,  1723,  1725,  1735,  1739,  1742,  1745,
671   1750,  1753,  1761,  1763,  1765,  1767,  1770,  1773,  1788,  1807,
672   1810,  1812,  1815,  1817,  1820,  1822,  1825,  1827,  1830,  1833,
673   1837,  1843,  1844,  1856,  1863,  1866,  1872,  1876,  1881,  1887,
674   1888,  1896,  1899,  1903,  1906,  1910,  1915,  1918,  1922,  1925,
675   1927,  1929,  1931,  1938,  1940,  1941,  1942,  1946,  1949,  1953,
676   1956,  1962,  1964,  1967,  1970,  1973,  1979,  1982,  1985,  1987,
677   1989,  1993,  1999,  2007,  2009,  2013,  2015,  2020,  2023,  2026,
678   2028,  2030,  2034,  2038,  2043,  2047,  2050,  2055,  2059,  2062,
679   2065,  2069,  2081,  2083,  2086,  2106,  2108,  2111,  2113,  2118,
680   2120,  2122,  2124,  2126,  2128,  2132,  2137,  2142,  2148,  2153,
681   2158,  2160,  2164,  2169,  2172,  2179,  2207,  2213,  2215,  2218,
682   2221,  2223,  2227,  2229,  2233,  2259,  2288,  2291,  2292,  2313,
683   2336,  2338,  2342,  2353,  2367,  2372,  2379,  2382,  2390,  2401,
684   2410,  2414,  2429,  2432,  2437,  2439,  2441,  2443,  2445,  2447,
685   2450,  2452,  2456,  2462,  2464,  2467,  2470,  2472,  2483,  2488,
686   2491,  2496,  2499,  2500,  2511,  2514,  2515,  2526,  2528,  2531,
687   2533,  2536,  2543,  2551,  2558,  2564,  2570,  2578,  2582,  2587,
688   2591,  2594,  2603,  2605,  2609,  2612,  2617,  2621,  2627,  2638,
689   2641,  2645,  2649,  2657,  2662,  2668,  2671,  2673,  2675,  2681,
690   2684,  2686,  2688,  2690,  2694,  2697,  2715,  2725,  2727,  2728,
691   2732,  2737,  2740,  2742,  2744,  2746,  2750,  2756,  2759,  2761,
692   2763,  2765,  2769,  2772,  2775,  2777,  2779,  2781,  2785,  2788,
693   2791,  2793,  2795,  2797,  2809,  2820,  2824,  2829,  2833,  2838,
694   2840,  2844,  2847,  2849,  2853,  2855,  2856,  2859,  2861,  2863,
695   2869,  2884,  2890,  2896,  2910,  2912,  2916,  2930,  2932,  2934,
696   2938,  2944,  2957,  2959,  2963,  2976,  2982,  2984,  2985,  2986,
697   2994,  2999,  3008,  3009,  3013,  3016,  3022,  3028,  3031,  3033,
698   3035,  3037,  3041,  3045,  3049,  3052,  3057,  3060,  3062,  3064,
699   3066,  3068,  3070,  3072,  3074,  3078,  3082,  3086,  3090,  3091,
700   3093,  3095,  3097,  3099,  3101,  3103,  3105,  3107,  3115,  3117,
701   3118,  3119,  3122,  3128,  3130,  3135,  3137,  3140,  3154,  3157,
702   3160,  3164,  3167,  3174,  3176,  3179,  3181,  3183,  3186,  3189,
703   3192,  3195,  3197,  3200,  3204,  3206,  3212,  3214,  3215,  3217,
704   3222,  3224,  3226,  3228,  3230,  3233,  3234,  3236,  3239,  3240,
705   3243,  3243,  3246,  3246,  3249,  3249,  3251,  3253,  3255,  3257,
706   3263,  3269,  3272,  3275,  3281,  3283,  3285,  3289,  3291,  3292,
707   3293,  3295,  3298,  3305,  3310,  3318,  3322,  3324,  3327,  3329,
708   3332,  3336,  3338,  3341,  3343,  3346,  3363,  3369,  3377,  3379,
709   3381,  3385,  3388,  3389,  3397,  3401,  3405,  3408,  3409,  3415,
710   3418,  3421,  3423,  3427,  3432,  3435,  3445,  3450,  3451,  3458,
711   3461,  3464,  3466,  3469,  3471,  3481,  3495,  3499,  3502,  3504,
712   3508,  3512,  3515,  3518,  3520,  3524,  3526,  3533,  3540,  3543,
713   3546,  3550,  3554,  3560,  3564,  3569,  3571,  3574,  3579,  3585,
714   3596,  3599,  3601,  3605,  3610,  3612,  3619,  3622,  3624,  3626,
715   3632,  3637,  3640,  3642,  3644,  3646,  3648,  3650,  3652,  3654,
716   3656,  3658,  3660,  3662,  3664,  3666,  3668,  3670,  3672,  3674,
717   3676,  3678,  3680,  3682,  3684,  3686,  3688,  3690,  3692,  3694,
718   3696,  3698,  3700,  3702,  3705,  3707
719 };
720 #endif
721
722
723 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
724
725 static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
726 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
727 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
728 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF",
729 "SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","AGGR","VISSPEC",
730 "DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE","TYPENAME_KEYWORD",
731 "USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST","REINTERPRET_CAST",
732 "CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','","';'","THROW",
733 "':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE",
734 "ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","POINTSAT_STAR",
735 "DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY","PAREN_STAR_PAREN",
736 "POINTSAT","'.'","'('","'['","TRY","CATCH","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING",
737 "ALL","PRE_PARSED_CLASS_DECL","DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN",
738 "PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'",
739 "program","extdefs","@1","extdefs_opt",".hush_warning",".warning_ok","extension",
740 "asm_keyword","lang_extdef","@2","extdef","@3","@4","namespace_alias","@5","using_decl",
741 "namespace_using_decl","using_directive","@6","namespace_qualifier","any_id",
742 "extern_lang_string","template_header","@7","template_parm_list","maybe_identifier",
743 "template_type_parm","template_template_parm","template_parm","template_def",
744 "datadef","ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef",
745 "constructor_declarator","@8","@9","@10","@11","fn.def1","component_constructor_declarator",
746 "fn.def2","return_id","return_init","base_init",".set_base_init","member_init_list",
747 "member_init","identifier","notype_identifier","identifier_defn","explicit_instantiation",
748 "@12","@13","@14","@15","@16","@17","@18","@19","begin_explicit_instantiation",
749 "end_explicit_instantiation","template_type","self_template_type","template_close_bracket",
750 "template_arg_list_opt","template_arg_list","template_arg","unop","expr","paren_expr_or_null",
751 "paren_cond_or_null","xcond","condition","@20","compstmtend","already_scoped_stmt",
752 "@21","nontrivial_exprlist","nonnull_exprlist","unary_expr",".finish_new_placement",
753 ".begin_new_placement","new_placement","new_initializer","regcast_or_absdcl",
754 "cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id",
755 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
756 "primary","@22","new","delete","boolean.literal","string","nodecls","object",
757 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
758 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
759 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
760 "initdcl","@23","initdcl0_innards","@24","initdcl0","notype_initdcl0","nomods_initdcl0",
761 "@25","maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
762 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
763 "pending_inlines","defarg_again","pending_defargs","structsp","@26","@27","@28",
764 "@29","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
765 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
766 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
767 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
768 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
769 "component_decl_1","components","notype_components","component_declarator0",
770 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
771 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
772 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
773 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
774 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
775 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
776 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
777 "typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type",
778 "complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator",
779 "absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
780 "label_decls","label_decl","compstmt_or_error","compstmt","@30","simple_if",
781 "@31","@32","implicitly_scoped_stmt","@33","stmt","simple_stmt","@34","@35",
782 "@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","function_try_block",
783 "@48","@49","try_block","@50","@51","handler_seq","handler","@52","@53","type_specifier_seq",
784 "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
785 "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
786 "complex_parmlist","defarg","@54","defarg1","parms","parms_comma","named_parm",
787 "full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
788 "ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
789 };
790 #endif
791
792 static const short yyr1[] = {     0,
793    112,   112,   114,   113,   113,   115,   115,   116,   117,   118,
794    119,   121,   120,   122,   122,   122,   122,   122,   122,   122,
795    123,   122,   124,   122,   122,   122,   122,   122,   126,   125,
796    127,   127,   127,   128,   128,   128,   130,   129,   131,   131,
797    132,   132,   132,   132,   133,   133,   135,   134,   134,   136,
798    136,   137,   137,   138,   138,   139,   140,   140,   140,   140,
799    140,   140,   141,   141,   142,   142,   142,   142,   142,   142,
800    142,   142,   142,   143,   143,   144,   144,   144,   145,   145,
801    146,   146,   146,   148,   147,   147,   149,   147,   147,   150,
802    147,   147,   151,   147,   147,   152,   152,   152,   152,   152,
803    153,   153,   153,   153,   154,   154,   154,   154,   154,   154,
804    154,   155,   156,   156,   156,   157,   158,   159,   159,   159,
805    159,   160,   160,   160,   160,   160,   160,   160,   160,   161,
806    161,   161,   161,   161,   162,   162,   162,   163,   163,   163,
807    165,   164,   166,   164,   167,   164,   168,   164,   169,   164,
808    170,   164,   171,   164,   172,   164,   173,   174,   175,   175,
809    175,   176,   177,   177,   178,   178,   179,   179,   180,   180,
810    180,   181,   181,   181,   181,   181,   182,   182,   183,   183,
811    184,   184,   185,   185,   185,   187,   186,   186,   188,   188,
812    188,   188,   190,   189,   189,   191,   191,   191,   191,   192,
813    192,   193,   193,   193,   193,   193,   193,   193,   193,   193,
814    193,   193,   193,   193,   193,   193,   193,   193,   193,   193,
815    193,   193,   193,   193,   193,   194,   195,   196,   196,   197,
816    197,   197,   197,   198,   198,   199,   199,   199,   200,   200,
817    200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
818    200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
819    200,   200,   200,   201,   201,   201,   201,   201,   201,   202,
820    203,   203,   204,   204,   204,   205,   205,   205,   206,   206,
821    206,   206,   207,   207,   208,   208,   208,   208,   209,   209,
822    209,   209,   209,   209,   209,   210,   209,   209,   209,   209,
823    209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
824    209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
825    209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
826    209,   211,   211,   212,   212,   213,   213,   214,   214,   215,
827    216,   216,   217,   217,   217,   217,   217,   217,   218,   218,
828    219,   219,   220,   220,   220,   220,   220,   221,   221,   222,
829    222,   222,   222,   222,   222,   223,   223,   223,   223,   223,
830    224,   224,   224,   224,   224,   224,   225,   225,   225,   225,
831    226,   226,   227,   227,   227,   227,   227,   227,   227,   228,
832    228,   228,   229,   229,   230,   230,   231,   231,   232,   232,
833    234,   233,   233,   236,   235,   235,   237,   238,   240,   239,
834    239,   241,   241,   242,   242,   243,   244,   244,   245,   245,
835    245,   245,   245,   246,   246,   246,   246,   247,   247,   248,
836    248,   249,   249,   249,   249,   249,   250,   250,   250,   250,
837    250,   251,   252,   252,   252,   253,   253,   254,   254,   255,
838    255,   255,   257,   256,   256,   258,   256,   256,   256,   256,
839    256,   259,   260,   256,   256,   261,   261,   262,   262,   263,
840    263,   263,   263,   263,   263,   264,   265,   266,   266,   266,
841    266,   266,   267,   268,   268,   268,   269,   270,   270,   271,
842    271,   271,   272,   272,   273,   273,   274,   274,   274,   274,
843    275,   275,   275,   275,   276,   277,   278,   278,   278,   278,
844    279,   279,   280,   280,   280,   280,   280,   280,   280,   280,
845    280,   280,   281,   281,   281,   281,   281,   281,   281,   281,
846    281,   282,   282,   282,   283,   283,   283,   284,   284,   285,
847    285,   286,   286,   287,   287,   287,   287,   288,   288,   289,
848    289,   289,   290,   290,   291,   291,   292,   292,   292,   293,
849    293,   294,   294,   295,   296,   297,   297,   297,   297,   298,
850    298,   298,   298,   298,   298,   299,   299,   300,   300,   300,
851    301,   302,   302,   302,   302,   302,   302,   303,   303,   303,
852    303,   303,   303,   304,   304,   304,   304,   304,   304,   305,
853    305,   305,   305,   305,   305,   306,   306,   307,   307,   308,
854    308,   309,   309,   309,   310,   310,   310,   311,   311,   311,
855    312,   312,   312,   312,   313,   313,   314,   314,   314,   314,
856    315,   315,   315,   315,   316,   316,   316,   316,   316,   316,
857    317,   318,   318,   318,   319,   319,   320,   321,   321,   321,
858    321,   321,   321,   321,   322,   322,   323,   323,   323,   323,
859    323,   323,   323,   323,   323,   323,   323,   324,   324,   324,
860    324,   324,   324,   324,   324,   324,   324,   324,   325,   325,
861    325,   325,   326,   327,   327,   328,   328,   329,   330,   330,
862    332,   331,   334,   335,   333,   336,   337,   336,   338,   338,
863    339,   339,   340,   339,   339,   341,   342,   339,   343,   344,
864    339,   345,   346,   347,   348,   339,   349,   350,   339,   351,
865    339,   352,   339,   353,   339,   339,   339,   339,   339,   339,
866    339,   339,   339,   339,   339,   339,   339,   339,   339,   339,
867    339,   339,   355,   356,   354,   358,   359,   357,   360,   360,
868    362,   363,   361,   364,   364,   365,   365,   366,   366,   366,
869    366,   367,   367,   367,   368,   368,   369,   369,   369,   370,
870    370,   371,   371,   372,   373,   373,   374,   374,   374,   375,
871    375,   375,   375,   375,   375,   375,   377,   376,   378,   378,
872    379,   379,   379,   379,   379,   380,   380,   381,   381,   381,
873    381,   381,   381,   382,   382,   383,   383,   384,   385,   385,
874    386,   386,   386,   387,   388,   388,   389,   389,   389,   389,
875    390,   391,   391,   391,   391,   391,   391,   391,   391,   391,
876    391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
877    391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
878    391,   391,   391,   391,   391,   391
879 };
880
881 static const short yyr2[] = {     0,
882      0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
883      1,     0,     2,     2,     1,     1,     5,     4,     5,     4,
884      0,     6,     0,     5,     1,     2,     1,     2,     0,     6,
885      2,     3,     3,     3,     3,     4,     0,     5,     2,     3,
886      1,     1,     2,     2,     1,     2,     0,     5,     3,     1,
887      3,     1,     0,     2,     2,     3,     1,     3,     1,     3,
888      1,     3,     2,     2,     2,     3,     3,     2,     2,     2,
889      2,     2,     1,     1,     1,     0,     1,     2,     0,     1,
890      4,     3,     3,     0,     8,     5,     0,     9,     6,     0,
891      8,     5,     0,     9,     6,     2,     2,     1,     2,     1,
892      6,     4,     6,     4,     2,     1,     2,     2,     1,     2,
893      1,     2,     2,     4,     2,     3,     0,     0,     1,     3,
894      2,     3,     1,     4,     2,     4,     2,     4,     2,     1,
895      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
896      0,     6,     0,     6,     0,     5,     0,     5,     0,     7,
897      0,     7,     0,     6,     0,     6,     0,     0,     4,     4,
898      1,     4,     1,     1,     0,     1,     1,     3,     1,     1,
899      1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
900      1,     3,     0,     1,     1,     0,     7,     1,     1,     3,
901      4,     3,     0,     3,     1,     3,     3,     3,     3,     1,
902      1,     1,     2,     2,     2,     2,     2,     2,     2,     4,
903      2,     4,     2,     3,     3,     4,     5,     6,     6,     7,
904      2,     4,     5,     2,     2,     1,     0,     4,     4,     3,
905      1,     3,     2,     3,     4,     1,     2,     5,     1,     3,
906      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
907      3,     3,     3,     3,     3,     3,     3,     3,     5,     3,
908      3,     1,     2,     3,     1,     1,     1,     1,     1,     0,
909      5,     5,     5,     5,     5,     1,     1,     1,     1,     2,
910      2,     3,     4,     4,     1,     1,     1,     3,     1,     1,
911      1,     1,     3,     3,     3,     0,     4,     4,     2,     4,
912      2,     4,     2,     2,     1,     4,     1,     7,     7,     7,
913      7,     4,     4,     2,     2,     2,     1,     4,     2,     2,
914      5,     3,     2,     2,     5,     3,     5,     3,     4,     6,
915      2,     1,     2,     1,     2,     1,     1,     1,     2,     0,
916      2,     2,     3,     3,     3,     2,     2,     2,     1,     1,
917      1,     2,     2,     2,     2,     1,     1,     1,     1,     2,
918      2,     3,     3,     3,     4,     1,     2,     2,     2,     1,
919      1,     1,     2,     2,     2,     1,     1,     2,     2,     3,
920      1,     2,     1,     1,     1,     4,     4,     4,     4,     1,
921      1,     1,     1,     3,     1,     3,     1,     3,     0,     4,
922      0,     6,     3,     0,     4,     1,     3,     3,     0,     4,
923      3,     0,     1,     1,     2,     6,     1,     3,     0,     1,
924      4,     6,     4,     1,     1,     1,     1,     1,     3,     0,
925      2,     1,     2,     3,     4,     1,     1,     3,     4,     3,
926      5,     1,     4,     3,     3,     0,     3,     3,     3,     0,
927      2,     2,     0,     7,     4,     0,     6,     3,     2,     2,
928      2,     0,     0,     9,     1,     0,     1,     0,     1,     1,
929      2,     2,     2,     2,     2,     2,     2,     3,     4,     3,
930      2,     3,     0,     1,     3,     2,     2,     1,     1,     0,
931      2,     3,     1,     4,     1,     3,     1,     1,     4,     4,
932      2,     2,     3,     3,     1,     0,     1,     2,     4,     3,
933      1,     2,     2,     2,     2,     2,     2,     2,     1,     2,
934      2,     3,     2,     2,     4,     4,     2,     1,     5,     4,
935      1,     0,     1,     3,     0,     1,     3,     1,     1,     1,
936      1,     4,     4,     4,     4,     4,     3,     4,     4,     4,
937      4,     3,     1,     3,     1,     3,     2,     1,     7,     0,
938      2,     1,     2,     0,     2,     4,     4,     2,     4,     3,
939      3,     2,     2,     3,     1,     1,     2,     1,     1,     2,
940      2,     4,     4,     3,     3,     2,     1,     3,     3,     2,
941      2,     3,     1,     3,     3,     2,     2,     3,     1,     4,
942      3,     4,     3,     1,     2,     2,     2,     2,     2,     1,
943      2,     4,     4,     2,     1,     1,     1,     1,     2,     4,
944      2,     2,     2,     2,     1,     2,     2,     2,     2,     3,
945      1,     2,     3,     4,     2,     2,     2,     2,     2,     2,
946      4,     2,     1,     2,     2,     3,     1,     3,     2,     3,
947      2,     2,     3,     1,     3,     4,     3,     2,     2,     1,
948      3,     2,     2,     1,     2,     3,     1,     3,     1,     6,
949      4,     4,     3,     5,     3,     3,     3,     2,     1,     1,
950      2,     2,     2,     0,     1,     1,     2,     3,     1,     2,
951      0,     3,     0,     0,     5,     1,     0,     2,     1,     1,
952      1,     2,     0,     4,     1,     0,     0,     5,     0,     0,
953      7,     0,     0,     0,     0,    12,     0,     0,     7,     0,
954      5,     0,     7,     0,     4,     2,     2,     2,     3,     6,
955      8,    10,    12,     4,     3,     2,     2,     1,     1,     1,
956      1,     1,     0,     0,     6,     0,     0,     5,     1,     2,
957      0,     0,     5,     1,     1,     3,     3,     2,     2,     2,
958      2,     2,     1,     2,     0,     1,     0,     1,     1,     0,
959      1,     1,     3,     4,     1,     3,     0,     1,     1,     1,
960      2,     2,     2,     1,     2,     2,     0,     3,     1,     1,
961      1,     2,     2,     2,     4,     2,     2,     2,     2,     2,
962      2,     1,     2,     1,     2,     1,     1,     0,     0,     1,
963      0,     4,     2,     1,     1,     3,     0,     3,     3,     3,
964      1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
965      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966      2,     2,     2,     2,     3,     2,     2,     2,     2,     3,
967      2,     2,     4,     4,     3,     2
968 };
969
970 static const short yydefact[] = {     3,
971     12,    12,     5,     0,     4,     0,   267,   615,   616,     0,
972    372,   384,   562,     0,    11,     0,     0,     0,    10,   470,
973    821,     0,     0,     0,   157,   647,   268,   269,    73,     0,
974      0,   808,     0,    45,     0,     0,    13,    25,     0,    27,
975      8,     0,    16,    15,    79,   100,    76,     0,   617,   161,
976    286,   265,   287,   593,     0,   359,     0,   358,   377,     0,
977    397,   376,   414,   383,     0,   484,   483,   490,   489,   488,
978    465,   371,   578,   385,   579,    98,   285,   604,   576,     0,
979    618,   560,     0,     0,   266,    71,    72,   165,   621,   165,
980    622,   165,   270,   157,   130,   131,   132,   133,   134,   456,
981    459,     0,   643,     0,   460,     0,     0,     0,     0,   131,
982    132,   133,   134,    23,     0,     0,     0,     0,     0,     0,
983      0,   461,   625,     0,   631,     0,     0,     0,    37,     0,
984      0,    31,     0,     0,    47,     0,   165,   623,     0,     0,
985    591,     0,     0,     0,   590,     0,     0,     0,     0,   286,
986      0,   564,     0,   285,   560,    28,     0,    26,     3,    46,
987      0,    64,    63,    80,    14,     0,   412,     0,     0,   430,
988     77,    69,   624,   564,     0,   560,    70,     0,     0,     0,
989     96,     0,   393,   349,   575,   350,   587,     0,   560,   374,
990    373,    68,    99,   360,     0,   395,   375,    97,   366,   390,
991    391,   361,   379,   381,   370,   392,     0,    65,   415,   471,
992    472,   473,   474,   487,   139,   138,   140,   476,   477,   481,
993    475,     0,     0,   490,   808,   486,   505,   506,   563,   378,
994      0,   409,   616,     0,   645,   161,   608,   609,   605,   581,
995    619,     0,   580,   577,     0,   856,   852,   851,   849,   831,
996    836,   837,     0,   843,   842,   828,   829,   827,   846,   835,
997    832,   833,   834,   838,   839,   825,   826,   822,   823,   824,
998    848,   840,   841,   830,   847,     0,   844,   754,   377,   755,
999    817,   270,   267,   562,   290,   338,     0,     0,     0,     0,
1000    334,   332,   305,   336,   337,     0,     0,     0,     0,     0,
1001    268,   269,   262,     0,     0,   173,   172,     0,   174,   175,
1002      0,     0,   176,     0,     0,   166,   167,     0,   236,     0,
1003    239,   171,   289,   202,     0,     0,   291,   292,     0,   169,
1004    356,   377,   357,   610,   317,   307,     0,     0,     0,     0,
1005    165,     0,   458,     0,   453,     0,   644,   642,     0,   177,
1006    178,     0,     0,     0,   419,     3,    21,    29,   639,   635,
1007    636,   638,   640,   637,   130,   131,   132,     0,   133,   134,
1008    627,   628,   632,   629,   626,     0,   277,   278,   276,   607,
1009    606,    33,    32,    49,     0,   372,   147,     0,     0,   377,
1010    145,     0,     0,   589,     0,   588,   264,   281,     0,   597,
1011    280,     0,   596,     0,   288,   601,     0,     0,    12,     0,
1012    157,     9,     9,     0,   411,   413,   112,    83,   117,   743,
1013      0,    75,    74,    82,   115,     0,     0,   113,    78,   603,
1014      0,     0,   568,     0,   811,     0,   573,     0,   572,     0,
1015      0,     0,     0,   560,   412,     0,    67,   564,   560,   586,
1016      0,   363,   364,     0,    66,   412,   368,   367,   369,   362,
1017    382,   399,   398,   478,   482,   480,     0,   485,   491,     0,
1018      0,   380,   412,   560,    84,     0,     0,     0,     0,   560,
1019     90,   561,   592,   616,   646,   161,     0,     0,   845,   850,
1020    379,   560,   560,     0,   560,   855,   165,     0,     0,     0,
1021    209,     0,     0,   211,   224,   225,     0,     0,     0,     0,
1022      0,   263,   208,   205,   204,   206,     0,     0,     0,     0,
1023      0,   289,     0,     0,     0,   203,   163,   164,   283,     0,
1024    207,     0,     0,   237,     0,     0,     0,     0,     0,     0,
1025      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1026      0,     0,     0,     0,     0,     0,   299,     0,   301,   303,
1027    304,   342,   341,     0,     0,   227,   227,     0,   213,   558,
1028      0,   221,   339,   331,     0,     0,   808,   320,   323,   324,
1029      0,     0,   351,   664,   660,   669,     0,   564,   560,   560,
1030    560,   353,   667,     0,   614,   355,     0,     0,   354,   319,
1031      0,   314,   333,   315,   335,   611,     0,   316,   160,   162,
1032      0,   155,     0,   377,   153,   555,   468,   553,   455,     0,
1033      0,   386,     0,     0,   387,   388,   389,   425,   426,   427,
1034    424,     0,   417,   420,     0,     3,     0,   630,   165,   633,
1035      0,    41,    42,     0,    53,     0,     0,     0,    57,    61,
1036     50,   807,   802,     0,   356,   377,    53,   357,   806,    59,
1037    158,   143,   141,   158,   159,   284,   595,   594,   288,   598,
1038      0,    18,    20,    79,     0,   118,   340,     0,   691,    81,
1039    689,   436,     0,   432,   431,   201,     0,   200,   565,   602,
1040      0,   784,     0,   779,   377,     0,   778,   780,   809,   791,
1041      0,     0,   600,   571,   570,     0,     0,   585,     0,   407,
1042    406,   394,   584,     0,   811,   574,   365,   396,   408,   412,
1043    479,   615,   616,   808,     0,   808,   617,   492,   493,   495,
1044    808,   498,   497,     0,   528,   616,     0,   519,     0,     0,
1045    531,     0,   111,   106,     0,   161,   532,   535,     0,   511,
1046      0,   109,     0,   412,   410,   811,   777,   165,   165,   620,
1047    165,   811,   777,   560,    87,   560,    93,   854,   853,   817,
1048    817,   817,     0,     0,     0,     0,   614,     0,     0,     0,
1049      0,   377,     0,     0,     0,   295,     0,   293,   294,     0,
1050    234,   168,   267,   615,   616,   268,   269,     0,     0,   437,
1051    466,     0,   261,   260,   769,   768,     0,   258,   257,   255,
1052    256,   254,   253,   252,   249,   250,   251,   247,   248,   242,
1053    243,   244,   245,   246,   240,   241,     0,     0,     0,     0,
1054      0,   227,   215,   231,     0,     0,   214,   560,   560,     0,
1055    560,   557,   654,     0,     0,     0,     0,     0,   322,     0,
1056    326,     0,   328,     0,   663,   662,   659,   658,   807,     0,
1057      0,   678,     0,     0,   811,   352,   811,   665,   560,   777,
1058    564,   664,   660,     0,     0,   560,     0,     0,     0,     0,
1059      0,   271,   158,   151,   149,   158,     0,   469,     0,   468,
1060    199,   198,   197,   196,   419,     0,     0,    24,     0,     0,
1061    634,     0,    38,    44,    43,    55,    52,    53,     0,    48,
1062      0,     0,   664,   660,     0,   798,   560,   801,   803,     0,
1063    799,   800,    54,   476,     0,   148,   158,   158,   146,    17,
1064     19,   400,   135,   123,   136,   137,     0,   116,   119,     0,
1065      0,     0,     0,   690,   684,   433,     0,   114,   569,   566,
1066    783,   797,   786,     0,   567,   782,   796,   785,   781,   810,
1067    793,   804,   794,   787,   792,   813,     0,   404,   583,   582,
1068    403,   502,     0,   501,   808,   808,   808,     0,   560,   777,
1069    527,   520,   532,   521,   412,   412,   517,   518,   515,   516,
1070    560,   777,   267,   615,     0,   399,   107,   523,   533,   538,
1071    539,   399,   399,     0,     0,   399,   105,   524,   536,   399,
1072    512,   513,   514,   412,     0,   462,    86,     0,     0,     0,
1073      0,    92,     0,   811,   777,   811,   777,   819,   818,   820,
1074    272,   306,   210,   212,   312,   313,     0,     0,     0,     0,
1075    294,   297,     0,     0,     0,     0,   235,     0,   298,   300,
1076    302,     0,     0,     0,     0,   216,   233,     0,     0,   651,
1077    649,     0,   652,   564,   222,     0,     0,   165,   329,     0,
1078      0,     0,   661,   657,   668,   560,   677,   675,   676,   666,
1079    811,     0,   673,     0,   612,   613,     0,   318,   156,   158,
1080    158,   154,   556,   554,   457,     0,   418,   416,   267,     0,
1081     22,    30,   641,    56,    51,    58,    62,   663,   659,   664,
1082    660,     0,   576,     0,   560,   665,    60,   144,   142,     0,
1083    121,     0,   125,     0,   127,     0,   129,     0,   744,     0,
1084    189,   692,     0,   685,   686,     0,   434,   664,   660,     0,
1085    289,     0,   610,   805,     0,     0,   814,   815,     0,     0,
1086    401,     0,     0,     0,   504,   503,   496,   811,     0,   522,
1087    430,   430,   811,     0,     0,     0,   412,   412,     0,   412,
1088    412,     0,   412,     0,   430,     0,   450,   560,   274,   273,
1089    275,   560,    89,     0,    95,     0,     0,     0,     0,     0,
1090      0,   440,     0,   438,   238,   259,   229,   228,   226,   217,
1091      0,   230,   232,   650,   648,   655,   653,     0,   223,     0,
1092      0,   321,   325,   327,   811,   671,   560,   672,   152,   150,
1093    454,     0,   421,   423,   663,   659,   581,   665,   122,   120,
1094      0,     0,     0,     0,   428,     0,     0,   267,   615,   616,
1095    693,   706,   709,   712,   717,     0,     0,     0,     0,     0,
1096      0,     0,     0,   268,   738,   746,     0,   765,   742,   741,
1097    740,     0,   701,     0,     0,   377,     0,   680,   699,   705,
1098    679,   700,   739,     0,   687,   435,     0,   613,   795,   789,
1099    790,   788,     0,   812,   405,     0,   499,   500,   494,   102,
1100    560,   526,   530,   104,   560,   412,   412,   547,   430,   267,
1101    615,     0,   534,   540,   541,   399,   399,   430,   430,     0,
1102    430,   537,   525,     0,   811,   811,   560,   560,     0,     0,
1103      0,     0,   439,     0,     0,   218,   219,   656,   330,   273,
1104    674,   811,     0,   124,   126,   128,   751,   745,   749,     0,
1105    688,   683,   192,   758,   760,   761,     0,     0,   697,     0,
1106      0,     0,   724,   726,   727,   728,     0,     0,     0,     0,
1107      0,     0,     0,   759,     0,   348,   766,     0,   702,   346,
1108    399,     0,   347,     0,   399,     0,     0,     0,   190,   682,
1109    681,   703,   737,   736,   294,   816,   402,   811,   811,   546,
1110    543,   545,     0,     0,   412,   412,   412,   542,   544,   529,
1111    452,     0,   451,   446,    85,    91,   811,   811,   308,   309,
1112    310,   311,   441,     0,   220,   670,   422,     0,   750,   429,
1113    181,     0,   694,   707,   696,     0,     0,     0,     0,     0,
1114    720,     0,   729,     0,   735,    39,   134,    34,   134,     0,
1115     35,   747,     0,   344,   345,     0,     0,     0,   343,   191,
1116    697,   101,   103,   412,   412,   552,   430,   430,     0,     0,
1117    464,    88,    94,   559,     0,   752,   188,     0,   377,     0,
1118    697,     0,   710,   698,   684,   763,   713,     0,     0,     0,
1119      0,   725,   734,    40,    36,     0,     0,   704,   551,   549,
1120    548,   550,   449,   448,   442,    76,    79,     0,     0,     0,
1121    182,   399,   695,   193,   708,   195,     0,   764,     0,   762,
1122    718,   722,   721,   748,   770,     0,     0,   447,   756,   757,
1123    753,   412,   684,   179,     0,     0,   185,     0,   184,   697,
1124      0,     0,     0,   771,   772,   730,   445,     0,   444,     0,
1125    194,     0,   711,   714,   719,   723,     0,   770,     0,     0,
1126    443,   186,   180,     0,     0,     0,   731,   773,     0,     0,
1127    774,     0,     0,   187,   715,   775,     0,   732,     0,     0,
1128      0,   716,   776,   733,     0,     0,     0
1129 };
1130
1131 static const short yydefgoto[] = {  1575,
1132    409,     2,   410,   161,   673,   314,   166,     3,     4,    37,
1133    636,   356,  1259,   637,   741,  1260,  1261,   376,  1362,   641,
1134     41,   742,   385,   648,   906,   649,   650,   651,    43,    44,
1135    421,   169,   165,    45,   743,   757,  1025,   763,  1027,    47,
1136    744,   745,   170,   171,   422,   676,   938,   939,   616,   940,
1137    219,    48,   928,   927,   664,   661,  1091,  1090,   886,   883,
1138    136,   926,    49,    50,   529,   315,   316,   317,   318,  1262,
1139   1526,  1423,  1528,  1468,  1559,  1132,  1505,  1523,   350,   875,
1140    319,  1200,   830,   568,   837,   320,   321,   351,   323,   341,
1141     52,   238,   642,   398,    53,    54,   324,   524,   325,   326,
1142    327,   328,   423,   329,  1263,   462,   590,   330,  1264,    56,
1143    202,   654,   331,   203,   502,   204,   182,   195,    60,   445,
1144    463,  1286,   710,  1150,   183,   196,    61,   473,   711,    62,
1145     63,   632,   633,   634,  1236,   428,   800,   801,  1496,  1497,
1146   1461,  1403,  1314,    64,   620,   344,  1177,  1404,  1046,   889,
1147     65,    66,    67,    68,   224,    69,    70,    71,   226,   728,
1148    729,   730,   731,   228,   470,   471,   749,   750,   751,   998,
1149   1008,   999,  1303,  1000,  1001,  1304,  1305,   617,   618,   569,
1150    865,   333,   431,   432,   176,   184,    73,    74,    75,   185,
1151    186,   153,    77,   132,   334,   335,   336,    79,   337,    81,
1152    733,   123,   124,   125,   478,   105,    82,   338,   842,   843,
1153    860,   593,  1267,  1268,  1133,  1134,  1135,   680,  1269,   945,
1154   1270,  1347,  1471,  1426,  1427,  1271,  1272,  1451,  1348,  1472,
1155   1349,  1507,  1350,  1509,  1554,  1569,  1351,  1530,  1481,  1531,
1156   1432,   424,   677,  1234,  1273,  1365,  1486,  1338,  1339,  1418,
1157   1500,  1470,  1466,  1274,  1477,  1368,   807,  1533,  1534,  1535,
1158   1567,   696,   697,   965,  1146,  1282,   698,   699,   700,   961,
1159    701,   146,   963,   703,  1148,  1149,   496,    84,    85
1160 };
1161
1162 static const short yypact[] = {   134,
1163    138,-32768,-32768, 10213,-32768,    87,    69,    82,   169,   173,
1164    105,-32768,-32768,  1068,-32768,   201,   238,   256,-32768,-32768,
1165 -32768,  1293,  1461,   421,   293,-32768,   317,   214,-32768,  2334,
1166   2334,-32768,  5172,-32768, 10213,   313,-32768,-32768,   349,-32768,
1167    241, 10291,-32768,-32768,   312,   809,   431,   386,   407,-32768,
1168 -32768,-32768,-32768,   339,  1633,-32768,  3469,-32768,  1297,   170,
1169 -32768,   443,-32768,-32768,  1544,-32768,-32768,   438,-32768,-32768,
1170    460,  3228,-32768,-32768,-32768,   872,-32768,-32768,-32768,   221,
1171 -32768,-32768,   351,  7512,   465,-32768,-32768,  9107,-32768,  9107,
1172 -32768,  9107,-32768,-32768,-32768,    82,   169,   317,   508,   458,
1173    524,   407,-32768,  1030,-32768,   351,  9193,  9193,   499,-32768,
1174 -32768,-32768,-32768,-32768,   552,   571,   304,   416,   461,   597,
1175    616,-32768,-32768,  1666,-32768,   393,    82,   169,-32768,   317,
1176    508,-32768,  1186,  2003,   589,  5290,  9107,-32768,  9107,  2912,
1177 -32768,   432,   372,  2912,-32768,  1195,  3728,  3728,  5172,   565,
1178    593,   626,   606,   629,-32768,-32768,   754,-32768,   660,-32768,
1179   5465,    87,-32768,-32768,-32768,   679,   443,   793,   109,   420,
1180    757,-32768,-32768,   709,   181,-32768,-32768,  3984,  3984,  5406,
1181    872,   798,-32768,-32768,   401,-32768,-32768,   683,-32768,-32768,
1182 -32768,-32768,-32768,  1297,   892,-32768,   443,   872,-32768,-32768,
1183 -32768,  1892,  1297,-32768,   443,-32768,  5525,-32768,-32768,-32768,
1184 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   407,
1185    443,  1759,  1334,   438,-32768,-32768,-32768,-32768,-32768,  1119,
1186    351,-32768,   484,  1604,-32768,   324,-32768,-32768,-32768,-32768,
1187 -32768,  4485,-32768,-32768,   383,-32768,   739,   760,-32768,-32768,
1188 -32768,-32768,   786,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1189 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1190 -32768,-32768,-32768,-32768,-32768,   750,-32768,-32768,  1119,  3228,
1191    601,-32768,-32768,   774,-32768,-32768,  9801,  9887,  9973,  9973,
1192 -32768,-32768,-32768,-32768,-32768,   787,   814,   839,   849,   854,
1193    776,   508,  9279,  1195,  9973,-32768,-32768,  9973,-32768,-32768,
1194   9973,  6990,-32768,  9973,   801,   880,-32768,  9973,-32768,  9365,
1195 -32768, 10451,   434,   893,  2242,  9451,-32768,   934,  3012,-32768,
1196   2460,  2092, 10456,-32768,   450,-32768,  1693,  2029,   801,   801,
1197   9107,  5290,-32768,  1195,   838,  1195,-32768,-32768,   856,   898,
1198  10579,   860,   862,   887,  1392,   660,-32768,-32768,-32768,-32768,
1199 -32768,-32768,-32768,-32768,   571,   304,   416,  1195,   461,   597,
1200    923,   616,-32768,   912,-32768,   868,    82,   169,-32768,-32768,
1201 -32768,-32768,-32768,-32768,  3169,-32768,-32768,  5525,  5741,  2492,
1202 -32768,   801,   532,-32768,   704,-32768,-32768,-32768,  2912,-32768,
1203 -32768,  2912,-32768,   904,-32768,-32768,  4485,    90,   913,   922,
1204 -32768,-32768,-32768,   754,-32768,   443,-32768,-32768,-32768,-32768,
1205    126,-32768,-32768,-32768,-32768,  7081,  9279,-32768,-32768,-32768,
1206   9279,   925,-32768,  6344,   119,  4762,-32768,  4762,-32768,  4825,
1207   4825,  5406,   939,-32768,   443,  5525,-32768,   928,-32768,-32768,
1208   4882,  1892,  1297,  5525,-32768,   443,-32768,-32768,   443,  1892,
1209 -32768,  1015,-32768,-32768,   407,-32768,  1759,-32768,  2120,  4745,
1210     86,  1119,   443,-32768,-32768,   984,   985,  1006,   988,-32768,
1211 -32768,-32768,-32768,   628,-32768,   462,   952,   954,-32768,-32768,
1212   1119,-32768,-32768,   858,-32768,-32768,  9107,  9279,   774,  6990,
1213 -32768,   500,  6990,-32768,-32768,-32768,  9193,  3383,  3383,  3383,
1214   3383, 10624,-32768,-32768,-32768,-32768,   959, 10059, 10059,  6990,
1215    960,   141,   966,  1018,   969,-32768,-32768,-32768,-32768,  9107,
1216 -32768,  6620,  6990,-32768,  9279,  9279,  7172,  9279,  9279,  9279,
1217   9279,  9279,  9279,  9279,  9279,  9279,  9279,  9279,  9279,  9279,
1218   9279,  9279,  9279,  9279,  9279,  9279,-32768,  9279,-32768,-32768,
1219 -32768,-32768,-32768,  9279,  9279,-32768,-32768,  1166,   478,   785,
1220   7872,-32768,-32768,-32768,  1025,  1604,  1074,   531,   570,   573,
1221   2750,   372,-32768,   364,   364,-32768,  4645,   973,   992,  1043,
1222 -32768,-32768,   417,  8562,   286,-32768,   878,   351,-32768,-32768,
1223   9279,-32768,-32768,-32768,-32768,-32768,   203,   465,-32768,-32768,
1224    801,-32768,  5525,  2527,-32768,  1027,  1035,-32768,-32768,  1195,
1225    923,-32768,  7604,  7695,-32768,-32768,-32768,-32768,-32768,-32768,
1226 -32768,    93,-32768,  1007,   994,   660,   868,  1053,  9107,-32768,
1227   1050,-32768,-32768,  2003,  1805,   293,  1079,   271,  1052,  1054,
1228 -32768,-32768,  3481,  5642,  3481,  2856,  1544,  4426,-32768,  1059,
1229 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1009,-32768,
1230   1070,-32768,-32768,   312,   103,   146,  1072,  1018,-32768,-32768,
1231 -32768,-32768,  6526, 10624,-32768,   898,  1024, 10579,-32768,-32768,
1232   1029,-32768,  1033,   196,  3588,  1036,-32768,   255,  4371,  1071,
1233   1083,   583,-32768,-32768,-32768,  4762,  4762,-32768,  4882,-32768,
1234   1084,-32768,-32768,  1032,   119,-32768,  1892,-32768,-32768,   443,
1235 -32768,   304,   416,-32768,  1057,-32768,   616,  1092,-32768,-32768,
1236    132,-32768,-32768,  1406,-32768,   756,  1041,-32768,  9279,  3079,
1237 -32768,  3079,   211,   211,   223,   612,  2852, 10350,  7940,-32768,
1238    191,   211,  1090,   443,-32768,   119,  3758,  9107,  9107,-32768,
1239   9107,   119,  3758,-32768,-32768,-32768,-32768,-32768,-32768,   541,
1240    541,   541,   801,  1065,  1073,  9543,  1043,  1075,  1080,  1087,
1241   1101,  5039,  1103,  1104,  1107,-32768,  1089,-32768,-32768,  1093,
1242 -32768,-32768,  1096,   290,   702,    68,   653,  9279,  1125,-32768,
1243   1144,  1100, 10624, 10624,-32768,-32768,  1147,  5820,  5841,  3806,
1244   4535, 10548,  5233,  2578,  2745,  2745,  2745,  2316,  2316,  1232,
1245   1232,   891,   891,   891,-32768,-32768,  1105,  1108,  1106,  9279,
1246   9193,-32768,   478,-32768,  7081,  9279,-32768,-32768,-32768,  9279,
1247 -32768,-32768,  1121,  9973,  1110,  1131,  1154,  1182,-32768,  9279,
1248 -32768,  9279,-32768,  9279,  1911,-32768,  1911,-32768,   101,  1122,
1249   1124,-32768,  1126,  3383,   119,-32768,   119,  2439,-32768,  3758,
1250   1127,  8746,  8746,  6156,  1132,  9365,  1136,  1789,  2029,  1000,
1251   1138,-32768,-32768,-32768,-32768,-32768,  9279,  1195,  1130,  1035,
1252 -32768, 10624,-32768, 10624,  1392,  1140,  9629,-32768,  1148,  1173,
1253 -32768,   801,-32768,-32768,-32768,-32768,-32768,  2156,  3169,-32768,
1254   3383,  9107,  2235,  2235,  4164,-32768,-32768,-32768,-32768,   683,
1255 -32768,-32768,-32768,   800,  9279,-32768,-32768,-32768,-32768,-32768,
1256 -32768,-32768,   571,-32768,   461,   597,  9279,  1176,-32768,   618,
1257    620,   625,  1018,-32768,   108,-32768,    65,-32768,-32768,-32768,
1258 -32768,-32768,-32768,  8654,-32768,-32768,-32768,-32768,-32768,-32768,
1259 -32768,  1083,  1192,-32768,-32768,-32768,  3383,-32768,-32768,-32768,
1260   1196,-32768,  9193,-32768,-32768,-32768,-32768,   623,-32768,  3758,
1261  10624,-32768,  1795,-32768,   443,   443,-32768,-32768,-32768,-32768,
1262 -32768,  3758,   310,   733,  9279,  1015,-32768,  1205,-32768,-32768,
1263 -32768,   365,   494,   221,   372,   561,   211,  1206,-32768,   794,
1264 -32768,-32768,-32768,   443,  8010,-32768,-32768,  1159,   801,   801,
1265    801,-32768,  1160,   119,  3758,   119,  3758,-32768,-32768,-32768,
1266 -32768,-32768,-32768,-32768,-32768,-32768,  1178,  1179,  1180,  1184,
1267   1009,-32768,  4078,  7081,  6714,  1169,-32768,  9279,-32768,-32768,
1268 -32768,  1175,  1167,  1174,  3383,-32768,-32768,  1183,   199,   724,
1269    724,  1188,   724,-32768,-32768,  9973,  1278,  9107,-32768,  1185,
1270   1193,  1199,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1271    119,  1202,-32768,  1189,-32768,-32768,  1822,-32768,-32768,-32768,
1272 -32768,-32768, 10624,-32768,-32768,  1194,-32768,-32768,   228,  1210,
1273 -32768,-32768,-32768,-32768,-32768,-32768,-32768,  2361,  2361,  2593,
1274   2593,  4164,-32768,   683,-32768,  3892, 10451,-32768,-32768,  1211,
1275 -32768,   146,-32768,  9279,-32768,  9279,-32768,  9279,-32768,  1195,
1276 -32768,-32768,  6063,  1261,-32768,  6805,-32768,  8838,  8838,  6250,
1277     79,  1214,    84,-32768,  7081,  6896,-32768,-32768,   251,  7081,
1278 -32768,  1215,  1216,  2120,-32768,-32768,-32768,   119,  1227,-32768,
1279   1272,  1272,   119,  1235,  9279,  9279, 10512,   443,  5131,   443,
1280    443,  1013,   443,  5192,  1272,  8080,-32768,-32768,-32768,  1286,
1281 -32768,-32768,-32768,  1236,-32768,  1237,  9279,  9279,  9279,  9279,
1282   7081,-32768,  1284,-32768,-32768, 10624,-32768,-32768,-32768,   408,
1283   1174,-32768,-32768,-32768,-32768,-32768,-32768,  1242,-32768,  1300,
1284    801,-32768,-32768,-32768,   119,-32768,-32768,-32768,-32768,-32768,
1285 -32768,  9279,-32768,-32768,  2361,  2361,-32768,  3892,-32768,-32768,
1286   1246,  1247,  1248,  1263,-32768,   902,   210,  1299,   823,   940,
1287 -32768,-32768,-32768,-32768,-32768,  9279,  1303,  1302,  1325,  8930,
1288    209,  1195,   678,   572,-32768,-32768,  9021,  1384,-32768,-32768,
1289 -32768,  1342,-32768,  4628, 10418,  4264,  5946,-32768,-32768,  1378,
1290 -32768,-32768,-32768,  8173,-32768,-32768,  1295,   510,-32768,-32768,
1291 -32768,-32768,  3383,-32768,-32768,  7081,-32768,-32768,-32768,-32768,
1292 -32768,-32768,-32768,-32768,-32768, 10512, 10512,-32768,  1272,   772,
1293    953,  9279,-32768,-32768,-32768,  1015,  1015,  1272,  1272,   628,
1294   1272,-32768,-32768,  5775,   119,   119,-32768,-32768,  1296,  1305,
1295   1306,  1307,-32768,  7081,  9279,-32768,   408,-32768,-32768,-32768,
1296 -32768,   119,  1309,-32768,-32768,-32768,-32768,  1263,-32768,  1195,
1297 -32768,-32768,-32768,-32768,-32768,-32768,   637,   637,  1018,  1315,
1298   1326, 10490,-32768,-32768,-32768,-32768,  1360,  9279,  1366,  1363,
1299   1376,  1565,  1628,-32768,  1018,-32768,-32768,  1338,-32768,-32768,
1300   1015,   931,-32768,   950,  1015,  9715,   990,   305,-32768,-32768,
1301 -32768,-32768,-32768,-32768,   281,-32768,-32768,   119,   119,-32768,
1302 -32768,-32768,  9279,  9279, 10512,   443,   443,-32768,-32768,-32768,
1303 -32768,  7786,-32768,-32768,-32768,-32768,   119,   119,-32768,-32768,
1304 -32768,-32768,-32768,  1321,-32768,-32768,-32768,  1340,-32768,-32768,
1305 -32768,  9193,-32768,-32768,-32768,  1417,  8469,  6435,  9193,  9279,
1306 -32768,  8281,-32768,  1375,-32768,-32768,  1385,-32768,  1376,  1565,
1307 -32768,-32768,   754,-32768,-32768, 10145, 10145,  7263,-32768,-32768,
1308   1018,-32768,-32768, 10512, 10512,-32768,  1272,  1272,  1331, 10534,
1309   1345,-32768,-32768,-32768,  5377,-32768,-32768,  1335,   540,  5525,
1310   1018,  8375,-32768,-32768,   108,-32768,-32768,  1393,  1350, 10602,
1311   8281,-32768,-32768,-32768,-32768,  1263,    78,-32768,-32768,-32768,
1312 -32768,-32768,-32768,-32768,-32768,   431,   312,  1351,  1361,  1018,
1313 -32768,  1015,-32768,-32768,-32768,-32768,   695,-32768,  7354,-32768,
1314 -32768,-32768,-32768,  1263,  1459,  1411,   121,-32768,-32768,-32768,
1315 -32768,   443,   108,-32768,  9279,  1412,-32768,  1413,-32768,  1018,
1316   8281,  1383,   586,  1420,-32768,-32768,-32768,   126,-32768,  1416,
1317 -32768,  1381,-32768,-32768,-32768,-32768,  9279,  1459,  1422,  1459,
1318 -32768,-32768,-32768,  7445,  1387,   700,-32768,-32768,  7081,  1389,
1319 -32768,  1472,  1426,-32768,-32768,-32768,   307,-32768,  8375,  1480,
1320   1438,-32768,-32768,-32768,  1499,  1504,-32768
1321 };
1322
1323 static const short yypgoto[] = {-32768,
1324   1508,-32768,  -295,-32768,  1097,    60,    13,  1510,-32768,   648,
1325 -32768,-32768,   441,-32768,   610,-32768,   744,-32768,   150,   883,
1326 -32768,    10,-32768,-32768,  -603,-32768,-32768,   613,-32768,  1365,
1327   -670,    32,  -652,  1368,    58,-32768,-32768,-32768,-32768,-32768,
1328    782,-32768,-32768,-32768,-32768,-32768,-32768,   409,  1562,-32768,
1329 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1330   1439,  -604,  4957,   -23,  -321,   -55,  1395,  -490,-32768,   384,
1331 -32768,   187,-32768, -1312,-32768, -1211,   -33,-32768,  2477,   395,
1332   -191,   337,  -526,-32768,  -799,  3250,  1671,   828,  3310,  1260,
1333   -311,   -56,   -84,  1172,   -77,   664,-32768,-32768,-32768,  -314,
1334 -32768,  -153,-32768,-32768, -1178,   -54,  -312,   129,     1,  1327,
1335   -128,     9,    74,  -188,    -4,  -156,  -354,   278,-32768,    23,
1336    328,-32768,  -308,-32768,-32768,-32768,-32768,-32768,    -8,  2574,
1337     -6,-32768,   650,-32768,-32768, -1055,  -353,   867,-32768,-32768,
1338 -32768,-32768,-32768,   -48,-32768,-32768,-32768,-32768,-32768,   666,
1339   -356,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1330,-32768,
1340    403,   580,-32768,-32768,-32768,-32768,   545,  -659,-32768,-32768,
1341 -32768,-32768,-32768,-32768,   813,-32768,   389,   944,   693,   998,
1342   1979,    28,    33,  -420,  1400,  2267,  -444,-32768,     2,-32768,
1343   4528,  -138,   965,  -104,  3895,  1259,-32768,  4460,  1611,  1374,
1344     -2,  -103,-32768,  1466,   -57,-32768,  4290,  2553,  -262,-32768,
1345   3001,-32768,-32768,   325,-32768,-32768,   459,    57,  -419,-32768,
1346 -32768,-32768,-32768, -1290,-32768, -1149, -1306,-32768,-32768,-32768,
1347 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1348 -32768,    89,-32768,-32768,-32768,-32768,-32768,   113, -1262,-32768,
1349 -32768,   -45,-32768,-32768,-32768,-32768, -1334,    55,-32768,    61,
1350 -32768,  -665,  -561,   654,-32768,-32768,-32768,-32768,  -377,-32768,
1351   -373,  -151,-32768,  1017,   329,-32768,   124,-32768,  -219
1352 };
1353
1354
1355 #define YYLAST          10708
1356
1357
1358 static const short yytable[] = {    59,
1359    181,   681,   239,   408,    55,   453,   943,   659,   400,   403,
1360    206,   660,    57,    42,   479,   103,    36,   609,   610,   595,
1361    122,   931,   375,   605,   732,   861,   604,   714,   657,   383,
1362     59,    72,   861,  1056,   339,    55,   340,    59,   281,   792,
1363    831,   472,    55,    57,    42,   458,   461,    36,   381,   382,
1364     57,    42,   194,   923,    36,   209,   236,   140,   144,   929,
1365    635,    46,    72,    35,   239,   452,   374,   230,   167,    72,
1366    665,   666,   685,   469,   460,  1419,   380,    58,  1366,   279,
1367    982,   392,   984,   332,   243,   332,   175,   332,   573,  1011,
1368    491,  1018,    46,  1478,    35,   501,   504,  1023,   232,    46,
1369    573,    35,   332,   332,   790,  1292,  1293,   347,    58,   418,
1370    239,   280,   951,   573,   193,    58,  1479,  1381,   608,  1313,
1371   1474,  1537,   753,  1136,  1384,   557,   678,   482,   534,  -133,
1372   -604,   390,   332,    -1,   332,    89,   388,    -2,   976,  1515,
1373   1130,   137,    88,   491,   389,   206,    86,   719,   933,   722,
1374    723,   895,    94,   206,   206,    90,    59,   278,   415,   952,
1375   1488,    55,   953,    72,   755,  1506,  -340,   863,   977,    57,
1376    419,   558,  -286,  1137,   399,   402,  -604,  -604,  -340,   702,
1377   1503,   206,   419,   679,   175,  1516,  -279,   557,    72,   777,
1378    209,  -604,   934,   387,   754,    87,  1529,   671,   209,    26,
1379    896,   935,   936,   420,  1082,   436,   438,   951,   791,    58,
1380    932,    95,   110,   111,   209,   420,  1131,   175,    46,  1560,
1381    456,   486,    91,     7,     8,   233,    10,   433,   207,   208,
1382    206,   941,   243,   558,    58,   352,   354,    15,   937,  1545,
1383    291,  -399,    92,  1392,   579,   583,    93,   987,  -279,  1476,
1384   1012,  1419,  1398,  1399,   952,  1400,    26,   953,   944,  -807,
1385    675,    21,  1506,  1508,   112,   113,   956,   138,   234,  1342,
1386   -399,   643,   578,   434,  -399,   230,    27,    28,  1089,   570,
1387    988,  1092,  1482,   206,   989,   611,  1222,   139,  1358,   882,
1388    908,   776,   605,   107,  -560,   458,   461,  -560,   159,  1013,
1389    235,   400,   403,   458,  1104,  1055,  1203,   332,    32,  1283,
1390    638,  1541,   861,   957,  1159,   461,   958,   990,  1343,  -399,
1391    279,   659,  1118,  1119,   717,   962,  1164,  -288,   230,   909,
1392    108,  1513,   866,   662,   461,  1223,   332,   614,   160,   243,
1393    899,   206,   613,    89,  -560,   910,  -560,  -560,   109,  -560,
1394    389,  -131,   280,   861,     8,     9,   479,   360,  1284,  1184,
1395   -560,  1186,  -560,    90,  1342,  1570,   135,   127,   128,    72,
1396    480,  1165,    13,  -288,  -288,   127,   128,    90,  -560,  -560,
1397    656,  1546,   595,    88,   194,  -564,     8,   484,  -282,  -349,
1398    137,    15,   861,  -560,   647,   116,   117,   118,   278,   612,
1399   1326,  1491,  1492,   206,   206,   157,   130,   131,   158,   209,
1400    583,   206,   658,  1450,  1571,    58,   481,    26,   164,   130,
1401    131,  1107,  -349,   206,   127,   128,  -349,   130,   131,   695,
1402    346,  -564,   174,   584,     7,   127,   128,    10,   130,   131,
1403    525,   773,   206,   585,    38,   172,   746,  -564,   119,   120,
1404   1084,  1031,   209,   586,   834,   168,   587,   588,   655,  -349,
1405    173,   658,   485,   869,   129,    59,   425,   706,   707,   361,
1406    747,   835,    21,    18,    26,    38,   130,   131,   748,   234,
1407    557,  1057,    38,   426,   720,  1219,  1220,    27,    28,    92,
1408    349,   353,   332,  -564,   448,   332,   600,    72,   332,   225,
1409    836,  1325,   332,   782,   782,   782,   782,   655,   766,   870,
1410    871,   235,   427,   652,   362,   332,  1011,   227,  -350,    32,
1411     15,  -288,   570,  1129,   834,   332,   558,  1415,   332,   740,
1412    474,   659,   643,   732,   137,   660,  -288,    91,   282,   905,
1413   -288,   835,   601,    58,   127,   128,   583,   200,   201,   482,
1414    861,  -350,   657,    14,   767,  -350,  -288,    92,   884,   904,
1415    458,   138,   694,   279,   605,   206,   343,   604,  -288,  -288,
1416    836,  -288,   972,  -288,   974,    20,   475,   849,   861,   978,
1417   1103,   345,   656,   902,    23,  -110,   583,    15,  -350,   695,
1418    530,   355,   776,   491,    26,   280,   130,   131,   916,   243,
1419    921,   922,  -288,  -288,   127,   128,   527,   206,   528,   357,
1420    492,   855,   857,    39,   658,   358,   851,  -288,  -110,   853,
1421    493,   658,  -110,   850,   359,   116,   722,   723,   775,   966,
1422    375,   778,   776,  1364,   332,   780,   781,   783,   784,   785,
1423    922,   278,   122,  1208,    39,   137,   206,  1548,   525,   194,
1424    363,    39,   725,   230,    26,  -110,   130,   131,   991,   608,
1425    655,   802,   852,   384,  1123,   854,  1125,   655,   206,   364,
1426    492,  1127,  -279,   942,   764,   967,    26,   941,   119,   120,
1427    493,    91,   156,  1421,   534,     7,     8,     9,    10,   163,
1428   1192,  1194,   997,  1549,   656,   521,   152,  1179,  1180,  1181,
1429    405,    92,  1019,  1020,   992,  1021,   138,   127,   128,   732,
1430   1124,   971,  1126,   406,  -134,   859,   746,  1128,   746,   174,
1431    765,   129,   859,    21,   746,   746,   658,   127,   128,  1422,
1432    234,    26,   482,   206,  1361,    59,  -599,    59,    27,    28,
1433    747,  1524,   983,   194,    59,  1016,   777,    40,   748,   747,
1434    748,   346,   656,   332,   332,    91,   332,   748,   656,   130,
1435    131,  1562,   235,  -132,   286,   985,   986,    72,    -7,    72,
1436     32,   414,   655,   712,  1014,    92,    72,    26,    40,   130,
1437    131,   718,  1194,   485,   658,    40,    89,  1525,   127,   128,
1438    658,  1279,  1281,   838,  1166,   417,  1285,  1204,  1205,   740,
1439   1207,   740,   979,   839,   996,  1006,    90,  1563,   740,    91,
1440    152,   152,   152,    58,   689,    58,   429,   840,  -108,   430,
1441     15,   687,    58,  1154,  1155,  1156,   332,   652,   693,    92,
1442    655,  1059,   487,  1393,  -170,    15,   655,  1323,    26,  -399,
1443    130,   131,   239,   152,  1518,    88,  1538,   489,   980,   137,
1444   -170,  -108,  -170,   488,   838,  -108,   446,   447,   -52,   782,
1445    490,   127,   128,   -52,   839,   656,   498,  -399,  -399,   695,
1446    283,   377,   378,    10,   -52,   527,    89,   528,   840,   507,
1447    243,     8,     9,   521,  1345,   694,   521,   508,  -108,  1330,
1448    779,   694,   774,  1028,  1029,  1030,    90,   658,    15,   855,
1449    857,   658,  -399,   521,   656,   346,   782,   332,    21,  1372,
1450    656,  1377,   509,   130,   131,   322,   521,   322,   647,   322,
1451    806,    26,   510,    27,   302,   346,   239,   511,   997,  1425,
1452   -399,  -399,  1387,   130,   131,  -399,   658,   235,   530,   559,
1453   1108,  1109,   658,   655,   573,  1442,   619,   655,   829,   695,
1454    454,   455,   827,   777,   845,    32,   623,   235,   828,  1054,
1455   1340,  1341,   782,   622,   322,   640,   322,   625,   332,   626,
1456   1413,   400,   403,   555,   556,   656,  1161,  1162,   560,   561,
1457    236,   658,   655,   562,   563,   564,   565,   656,   655,   446,
1458   1444,   746,   802,    91,   627,   881,   639,   154,   694,   400,
1459    403,  1346,   859,     8,     9,  1175,    89,   658,   454,  1445,
1460     59,   669,  1211,    92,  1394,   747,   127,  1310,  1168,   658,
1461    656,    -6,   656,   748,  1170,  1171,    90,   655,  1168,  1173,
1462    672,  1425,  1171,     8,     9,   690,   239,   652,   713,  1106,
1463    996,    15,    72,   859,   127,   128,   708,   346,   446,  1449,
1464    782,  1425,   658,   655,   658,   130,   131,   758,   759,   760,
1465    346,   761,   768,   332,   769,   655,   786,   788,   130,   131,
1466     95,    96,    97,   789,   740,   679,   791,   346,   846,   485,
1467   1521,   848,   859,   862,   864,   130,   131,   659,    58,   866,
1468    887,  1499,   485,   888,    26,  1147,   130,   131,   655,   897,
1469    655,  1153,   898,   152,   152,   152,   901,   656,   694,   903,
1470   1425,   154,   154,   154,    20,   911,  -282,   912,   681,   942,
1471    694,    26,   925,    98,    99,   100,   200,   201,  1266,   930,
1472    512,   948,    14,   419,  -806,   695,   949,  1225,  1226,   658,
1473    950,  1265,   969,   955,   154,  1258,   964,   968,   486,   973,
1474    975,  1015,   746,   694,    20,   694,   777,  -130,  1298,  1299,
1475     72,  1308,  1309,    23,  1311,  1225,  1226,   658,   322,     8,
1476      9,    59,  1032,    12,    13,  1037,   747,  1038,  1039,    14,
1477   1033,  1040,  1034,  1201,   748,   655,  1044,  1035,   283,   377,
1478    378,    10,  1257,    16,  1036,    17,  1041,    95,   110,   111,
1479   1042,    20,  1045,    72,   151,  1564,    58,  1047,  1048,  1371,
1480     23,  1371,  1049,   655,  1064,  1050,  1051,   206,  1067,    26,
1481   1066,   130,   131,  1062,  1052,  1053,    21,  1068,  1069,  1075,
1482   1058,  1076,  1102,   234,  1122,   740,  1077,  1083,  1095,  1085,
1483    859,    27,   302,  1086,  1070,  1088,  1071,  1098,  1072,    58,
1484    112,   113,  1266,   684,   688,  1145,  1101,   521,   832,  1151,
1485    194,   688,  1266,  1169,  1174,  1265,  1178,  1182,   859,  1266,
1486   1187,  1188,  1189,    32,  1198,  1265,  1190,  1195,   782,  1258,
1487    491,  1199,  1265,  1197,    72,  1210,  1258,  1390,  1391,  1487,
1488   1202,  1100,  1212,  1130,    72,    95,   110,   111,  1206,  1218,
1489   1213,    72,  1221,   199,   200,   201,  1214,   400,   403,  1217,
1490     14,   552,   553,   554,   555,   556,  1257,  1224,  1229,   401,
1491    404,  1278,  1287,  1288,   322,   688,  1257,    18,  1396,  1397,
1492     58,  1120,    20,  1257,  1291,   426,    95,    96,    97,  -641,
1493     58,    23,  1295,  1317,  1318,  1324,  1329,    58,   112,   113,
1494    114,   151,  1328,  1334,  1335,  1336,  1152,   322,  1337,   684,
1495   1344,  1354,   803,   804,  1353,   808,   809,   810,   811,   812,
1496    813,   814,   815,   816,   817,   818,   819,   820,   821,   822,
1497    823,   824,   825,   826,  1355,   688,  1456,  1457,  1458,    98,
1498     99,   688,  1367,  1382,    95,   110,   111,   456,   628,   629,
1499    630,  1369,  1385,  1409,   154,   154,   154,  1428,   116,   722,
1500    723,  1147,  1410,  1411,  1412,  1502,  1417,  1469,  1429,  1433,
1501    206,   688,  1266,  1266,  1469,  1435,   358,  1266,   688,  1436,
1502   1443,  1464,  1465,  1473,  1483,  1265,  1265,  1493,  1484,  1258,
1503   1265,  1495,  1501,   332,  1258,  1489,  1490,   112,   113,   280,
1504    892,   894,  1510,   241,    72,    72,   280,  1511,  1519,    72,
1505    656,   119,   120,   116,   117,   118,   322,  1266,  1520,  1532,
1506   1536,  1543,  1544,   706,   707,  1547,  1266,   241,  1550,  1552,
1507   1265,  1557,  1566,   523,  1258,  1568,  1257,  1257,  1553,  1265,
1508   1573,  1257,   658,  1258,  1561,   278,  1565,  1574,  1576,    72,
1509     58,    58,   278,  1577,  1469,    58,   241,     1,    72,   674,
1510    684,     5,  1440,  1540,    26,   241,   119,   120,  1231,   900,
1511   1232,  1105,  1233,   521,  1522,   412,  1266,  1517,   413,  1007,
1512   1230,  1257,   342,   393,  1424,  1572,   280,  1327,   655,  1265,
1513   1257,   497,  1374,  1258,  1097,    58,    95,    96,    97,   947,
1514    210,   211,   212,   468,    58,  1096,  1289,  1157,    72,  1176,
1515   1009,   241,  1312,   890,  1266,   833,   981,    95,   110,   111,
1516   1319,  1320,  1321,  1322,    18,   101,   525,  1265,   152,   213,
1517   1094,  1258,   278,   115,   449,   322,   322,   580,   322,   373,
1518   1257,  1380,  1275,   652,  1551,   241,    72,    26,  1514,    98,
1519     99,   214,  1556,   688,    58,  1539,    95,   110,   111,   476,
1520   1558,  1386,   401,   404,    80,  1144,  1333,   152,   241,     0,
1521    112,  1437,     0,     0,   104,  1043,   218,     0,  1257,     0,
1522     95,   110,   111,  1357,   133,     7,     8,     9,    10,     0,
1523    142,   142,    58,   142,    21,    80,   215,   216,   217,     0,
1524      0,     0,    80,     0,     0,     0,     0,   688,   688,   112,
1525    113,     0,   684,   688,     0,   188,     0,    80,   365,   366,
1526    367,   523,     0,    21,   523,   222,     0,   688,     0,   688,
1527      0,   688,   104,   112,  1439,   371,    26,     0,    27,    28,
1528    401,   787,   177,   245,   104,   283,     8,     9,    10,     0,
1529      0,     0,   178,     0,   523,     0,     0,   397,  1414,     0,
1530    241,   653,   179,   368,  1093,     0,   104,     0,     0,     0,
1531     32,   369,   370,     0,   688,   180,     0,     0,     0,     0,
1532      0,   970,     0,    21,     0,     0,     0,     0,     0,   322,
1533    234,  1434,     0,     0,   133,     0,    80,     0,    27,   302,
1534    142,     0,  1117,   395,   142,     0,     0,   142,   142,   142,
1535    653,    95,    96,    97,   688,   877,     0,     0,   241,     0,
1536      0,    80,  1017,   152,   152,   152,     0,     0,  1022,     0,
1537     32,   688,     0,   464,   466,     0,     0,     0,   188,   188,
1538    188,   283,     8,     9,    10,   477,     0,   993,   994,     9,
1539     10,   152,   152,   152,     0,  1467,   346,   365,   366,   367,
1540      0,   806,  1467,     0,    98,    99,     0,   188,     0,     0,
1541      0,     0,  1167,     0,   283,     8,     9,    10,     0,    21,
1542      0,   521,     0,   467,     0,    21,   234,     0,     0,     0,
1543    241,   104,     0,     0,    27,   302,     0,     0,    26,     0,
1544     27,    28,   142,     0,  1160,     0,   995,     0,    26,     0,
1545    369,   370,    21,     0,   178,   513,     0,   241,   235,   234,
1546      0,   684,   684,     0,   179,  1196,    32,    27,   302,   154,
1547      0,  1078,    32,  1079,     0,     0,     0,   180,     0,     0,
1548    104,   494,  1467,     0,     0,   322,     0,     0,   457,   200,
1549    201,   485,     0,     0,     0,    14,     0,   621,  1542,    32,
1550      0,     0,     0,   653,   127,   128,   631,     0,   154,   229,
1551    653,     0,    18,     0,     0,     0,     0,    20,     0,   621,
1552   1555,     0,     0,     0,     0,   104,    23,   806,     0,   581,
1553      0,   494,   494,   597,     0,     0,     0,   877,     0,     0,
1554      0,   688,    80,   688,   241,   688,     0,   583,     0,   505,
1555    506,     0,     0,   684,    26,     0,   130,   131,     0,     0,
1556    241,     0,   684,   684,     0,   514,     0,   684,   515,     0,
1557    584,   516,     0,     0,   526,     0,   133,     0,   531,     0,
1558    585,     0,  1296,  1297,     0,   104,   572,     0,   188,   104,
1559    586,     0,     0,   587,   588,   283,   377,   378,    10,   142,
1560      0,     0,   142,     0,     0,     0,     0,   142,   684,     0,
1561      0,     0,     0,     0,     0,   653,     0,     0,   721,     0,
1562      0,   602,     8,     9,    10,     0,     0,     0,     0,   152,
1563   1183,     0,  1185,    21,   401,   787,   188,     0,   188,   688,
1564    188,   188,   188,     0,     0,     0,   188,     0,    27,   302,
1565    242,   188,     0,     0,   188,     0,   291,   603,     0,    21,
1566      0,     0,     0,  1352,   154,   154,   154,     0,     0,     0,
1567     80,     0,    26,   653,   130,   131,   151,     0,     0,   653,
1568     32,     0,     0,   799,     0,   127,   128,  1216,     0,   200,
1569    201,     0,   154,   154,   154,    14,     0,     0,     0,   152,
1570    152,   152,     0,   684,     0,     0,     0,     0,   104,   104,
1571    104,   104,   116,   722,   723,  1142,   724,    20,     0,  1395,
1572      0,     0,     0,   407,     0,     0,    23,   847,   583,     0,
1573      0,     0,     0,     0,     0,    26,     0,   130,   131,   725,
1574      0,   684,     0,     0,   435,     0,   726,     0,    95,   110,
1575    111,   584,   210,   211,   212,     0,     0,   451,     0,     0,
1576      0,   585,     0,    26,  1290,   119,   120,     0,   104,  1294,
1577    494,   586,     0,     0,   594,   588,    18,     0,   514,   515,
1578      0,   213,   581,     0,   494,   494,   653,   597,     0,     0,
1579    653,     0,     0,   688,   878,     0,   907,     0,   880,     0,
1580      0,   112,   113,     0,     0,     0,     0,     0,   924,     0,
1581   1454,  1455,     0,   188,     0,     0,     0,     0,     0,  1460,
1582      0,  1331,     0,     0,     0,   653,     0,     7,     8,     9,
1583     10,   653,     0,    13,   799,     8,     9,   133,     0,    12,
1584     13,   241,     0,   241,   133,    14,     0,  1480,     0,     0,
1585      0,     0,     0,   188,   920,   188,   188,   222,   597,    16,
1586      0,    17,     0,     0,     0,    21,     0,    20,     0,     0,
1587    653,   583,   401,   404,     0,     0,    23,     0,    26,     0,
1588     27,    28,     0,   241,     0,    26,     0,   130,   131,   566,
1589      0,     0,     0,     0,   913,   188,   653,     0,     0,   920,
1590    401,  1277,     0,     0,   914,     0,   188,   188,   653,   188,
1591      0,     0,    32,     0,   586,     0,     0,   915,   588,     0,
1592      0,  1405,  1406,     0,   567,     0,     7,   127,   128,    10,
1593    154,     0,    13,     0,     0,     0,     0,   133,  1416,     0,
1594     80,   653,    80,   653,     0,     0,     0,  1004,    80,    80,
1595      0,     0,     0,     7,     8,     9,    10,   104,     0,   229,
1596      0,     0,     0,   104,    21,     0,     0,   241,     0,     0,
1597    494,   494,   494,     0,     0,     0,   684,    26,     0,    27,
1598     28,     0,   494,   550,   551,   552,   553,   554,   555,   556,
1599      0,    21,     0,    30,  1452,  1453,     0,   583,     0,     0,
1600    154,   154,   154,    31,    26,     0,    27,    28,     0,     0,
1601      0,    32,   709,  1462,  1463,     0,    33,   715,     0,     0,
1602    913,     0,     0,     0,     0,     0,     0,     0,   653,     0,
1603    914,     0,   127,   128,   437,   439,   443,   482,    32,     0,
1604    586,     0,   756,   915,   588,     0,   631,     0,   762,     0,
1605    241,     0,     0,   127,   128,   494,   653,   494,     0,   907,
1606    770,   771,     0,   772,   104,     0,     0,     0,   494,     0,
1607    104,     0,   878,   878,   878,   583,     0,   241,     0,  1087,
1608      0,     0,    26,     0,   130,   131,     0,     0,   199,   200,
1609    201,     0,     0,     0,     0,    14,   583,     0,   584,     0,
1610      0,     0,     0,    26,  1065,   130,   131,     0,   585,   104,
1611      0,   104,    18,   188,   188,  1114,     0,    20,   586,   584,
1612      0,   587,   588,   199,   200,   201,    23,     0,     0,   585,
1613     14,     0,   514,   515,     0,   241,     0,  1142,     0,   586,
1614      0,   663,   587,   588,     0,     0,    83,    18,     0,     0,
1615      0,     0,    20,     0,  1114,     0,   106,     0,   867,   868,
1616      0,    23,     0,   867,     0,   126,   134,   104,     0,     0,
1617      0,     0,   143,   143,     0,   143,   885,    83,     0,     0,
1618    104,     0,     0,  1004,    83,     7,     8,     9,    10,     0,
1619      0,    13,   104,     0,     0,     0,  1193,   143,     0,    83,
1620      0,     0,     0,     0,     0,  1172,     0,   223,   401,  1277,
1621      0,     0,     0,     0,   231,    80,     0,     0,     0,     0,
1622    197,     0,   205,    21,     0,   104,   231,   104,   221,   583,
1623      0,     0,     0,     0,     0,     0,    26,     0,    27,    28,
1624    545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1625    555,   556,  1110,     0,     0,   104,     0,     0,     0,     0,
1626    494,   494,  1111,   494,     0,     0,     0,     0,     0,     0,
1627     32,     0,   586,     0,     0,  1112,   588,     0,    83,     0,
1628      0,  1235,   143,     0,     0,     0,   143,  1193,     0,   143,
1629    143,   143,   704,     0,   705,     0,   437,   439,   443,     0,
1630      0,     0,     0,    83,     0,     0,     0,   716,   188,   188,
1631    188,   188,  1114,     0,     0,     0,   188,     0,     0,     0,
1632    143,   143,   143,     0,     0,     0,  1209,     0,     0,     0,
1633    416,     0,  1024,     0,  1026,     0,     0,     0,  1114,  1114,
1634   1114,     0,   283,   127,   128,    10,     0,     0,     0,   143,
1635      0,     0,     0,     0,     0,     0,     0,   205,     0,     0,
1636      0,     0,     0,     0,     0,   459,   205,     0,     0,   188,
1637      0,     0,     0,     0,   142,     0,    80,     0,     0,     0,
1638     21,   653,     0,     0,   143,     0,     0,   234,     0,     0,
1639      0,     0,     0,     0,     0,    27,   302,     0,   514,   515,
1640      0,     0,  1359,  1360,     0,     0,  1060,  1061,     0,  1063,
1641    548,   549,   550,   551,   552,   553,   554,   555,   556,     0,
1642      0,     0,   231,   143,     0,   188,   188,    32,   188,     0,
1643      0,     0,     0,     0,     0,     0,     0,  1081,     0,     0,
1644      0,     0,     0,     0,   993,   994,     9,    10,     7,     8,
1645      9,    10,   199,   200,   201,     0,     0,     0,     0,    14,
1646      0,     0,     0,     0,   188,   920,   188,   231,     0,     0,
1647      0,   582,     0,   143,   143,   598,    18,     0,     0,     0,
1648    607,    20,    21,   104,    83,  1116,    21,     0,     0,     0,
1649     23,  1420,   583,   686,     0,    26,     0,    27,    28,    26,
1650    686,    27,    28,   995,     7,   127,   128,    10,     0,     0,
1651    229,   178,     0,  1438,  1441,   913,     0,   526,   644,     0,
1652      0,   179,     0,     0,     0,   914,     0,   231,     0,    32,
1653    143,   231,     0,    32,   180,   586,     0,     0,   915,   588,
1654      0,   143,    21,     0,   143,     0,     0,  1158,     0,   143,
1655      0,     0,   197,   205,     0,    26,     0,    27,    28,  1163,
1656      0,     0,   704,   705,   686,   716,     0,     0,     0,     0,
1657      0,    30,     0,     0,     0,     0,  1114,     0,   143,     0,
1658    143,    31,   143,   143,   143,     0,     0,     0,   143,    32,
1659      0,  1485,     0,   143,    33,     0,   143,     0,     0,     0,
1660      0,     0,   574,  1002,   283,   377,   378,    10,   416,   575,
1661      0,   734,    83,     0,     0,   459,   205,     0,     0,   416,
1662      0,     0,     0,   459,   686,     0,     0,     0,     0,     0,
1663    686,     0,     0,     0,     0,     0,   416,     0,     0,     0,
1664      0,     0,    21,     0,  1215,     0,  1114,  1114,  1114,   576,
1665    231,   231,   231,   231,     0,    26,     0,    27,   302,     0,
1666    686,     0,     0,     0,     0,   104,     0,   686,     0,   735,
1667    188,     7,     8,   736,    10,   386,    12,    13,     0,     0,
1668      0,     0,    14,  1228,     0,     0,     0,     0,     0,   577,
1669      0,     0,     0,     0,     0,     0,    16,     0,    17,    18,
1670     19,     0,     0,     0,    20,     0,   514,   515,     0,    21,
1671    231,     0,   143,    23,   737,     0,   646,     0,     0,     0,
1672      0,     0,    26,     0,    27,    28,   143,   143,   738,   598,
1673    739,     0,     0,     0,     0,     0,   879,     0,    30,     0,
1674      0,     0,     0,     0,     0,     0,  1315,     0,    31,   607,
1675   1316,     0,     0,     0,     0,   143,    32,     0,     0,     0,
1676      0,    33,     8,     9,     0,   386,    12,    13,     0,   437,
1677    439,   443,    14,     0,     0,     0,     0,   205,     0,   644,
1678      0,     0,     0,     0,     0,  1332,    16,   126,    17,    18,
1679      0,     0,     0,     0,    20,   143,   598,   143,   143,   223,
1680    598,     0,     0,   645,     0,     0,   646,     0,     0,     0,
1681    443,     0,    26,     0,   130,   131,     0,   197,   734,   205,
1682    221,     8,     9,     0,     0,    12,   229,     0,     0,     0,
1683      0,    14,     0,     0,     0,     0,     0,   143,     0,  1002,
1684      0,   598,   686,     0,     0,    16,     0,    17,   143,   143,
1685      0,   143,     0,    20,     0,     0,     0,     0,   205,  1388,
1686      0,     0,    23,  1389,     0,     0,     0,     0,     0,     0,
1687      0,    26,     0,   130,   131,     0,     0,     0,     0,   134,
1688    459,     0,    83,   416,    83,  1407,  1408,     0,     0,  1005,
1689     83,    83,     0,     0,     0,     0,   686,   686,     0,   231,
1690      0,     0,   686,    51,     0,   231,     0,     0,     0,     0,
1691      0,   197,   143,   143,   143,     0,   686,   416,   686,     0,
1692    686,   592,   596,   599,   143,     0,     0,     0,     0,    51,
1693     51,     0,   150,     0,    51,     0,     0,     0,     0,     0,
1694      0,    51,     0,     0,     0,     0,     0,     0,     0,     0,
1695      0,     0,     0,     0,    51,     0,    51,     0,     0,     0,
1696      0,     0,     0,   686,   704,   705,   437,   439,   443,     0,
1697      0,     0,   716,     0,     0,     0,     8,     9,     0,   237,
1698     12,    13,     0,     0,     0,     0,    14,     0,     0,     0,
1699      0,     0,     0,     0,   437,   439,   443,   143,     0,   143,
1700     16,     0,    17,   686,     0,     0,   231,     0,    20,     0,
1701    143,     0,   231,     0,   879,   879,   879,    23,     0,     0,
1702    686,   607,     0,     0,     0,  1306,    26,     0,   130,   131,
1703      0,     0,   379,   379,     0,    51,     0,     0,     0,    51,
1704      0,   237,     0,    51,     0,     0,   150,   150,   150,     0,
1705      0,   231,     0,   231,     0,   143,   143,   598,     0,     0,
1706     51,     7,     8,     9,    10,   190,    12,   191,     0,     0,
1707      0,   221,    14,     7,     8,     9,    10,    51,    51,   150,
1708      0,   704,   705,     0,   716,     0,    16,   237,    17,    18,
1709      0,     0,     0,     0,    20,     0,   879,     0,     0,    21,
1710      0,     0,     0,    23,     0,     0,    51,     0,     0,   231,
1711      0,    21,    26,     0,    27,    28,     0,   583,   192,     0,
1712    734,     0,   231,     0,    26,  1005,    27,    28,    30,     0,
1713      0,     0,     0,     0,   231,     0,     0,     0,    31,     0,
1714    913,    51,     0,     0,     0,     0,    32,     0,   416,   416,
1715    914,    33,     0,     0,     0,     0,     0,    83,    32,     0,
1716    586,     0,     0,   915,   588,     0,     0,   231,     0,   231,
1717    589,   589,   589,     0,   856,   858,     0,   416,     0,     0,
1718      7,     8,     9,    10,   199,   200,   201,     0,     0,     0,
1719    686,    14,   686,     0,   686,     0,     0,   231,     0,     0,
1720      0,     0,   143,   143,     0,   143,     0,     0,    18,     0,
1721      0,   522,     0,    20,     0,     0,     0,     0,    21,     0,
1722      0,     0,    23,     0,   583,     0,     0,     0,   379,     0,
1723      0,    26,   443,    27,    28,     0,   237,     0,     0,     0,
1724      0,    51,     0,   918,     0,   592,   596,   913,   599,     0,
1725    143,   143,   143,   143,   598,     0,     0,   914,   143,     0,
1726      0,     0,     0,     0,   734,    32,     0,   586,     0,     0,
1727    954,   588,     0,     0,     0,   379,     0,     0,     0,     0,
1728    879,   879,   879,     0,     0,   596,     0,    51,   686,     0,
1729      0,     0,     0,     0,     0,     0,   734,     0,    51,     0,
1730      0,    51,   437,   439,   443,     0,    51,     0,     0,     0,
1731      0,   143,     0,     0,     0,     0,   143,     0,    83,     0,
1732      7,   127,   128,    10,     0,     0,    13,     0,     0,     0,
1733    416,   416,     0,   416,   416,    51,   416,    51,     0,   150,
1734    150,   150,     0,     0,     0,    51,     0,     0,     0,     0,
1735     51,     8,     9,    51,   386,    12,    13,     0,    21,   692,
1736      0,    14,     0,     0,     0,     0,     0,   143,   143,    51,
1737    143,    26,   596,    27,    28,    16,     0,    17,    18,     0,
1738      0,     0,     0,    20,     0,     0,     0,   147,     0,     0,
1739      0,     0,    23,     0,     0,  1363,     0,   148,     0,   522,
1740      0,    26,   522,   130,   131,    32,   143,   598,   143,     0,
1741    149,     0,     0,     0,     0,     0,     0,   522,   522,   522,
1742      0,     0,     0,   589,   589,   231,   589,     0,   197,   205,
1743      0,     0,   522,   876,     0,     0,     0,     0,     0,     0,
1744      0,     0,   686,     0,     0,  1073,     0,  1074,     0,     0,
1745      0,     0,     0,     0,     0,     0,     0,     0,  1080,   416,
1746    416,     0,   856,   858,   541,   542,   543,   544,   545,   546,
1747    547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
1748    237,     0,     0,     0,     7,     8,     9,    10,    78,     0,
1749    482,     0,   589,   522,   589,   589,     0,   589,     0,     0,
1750      0,     0,     0,   856,   858,     0,     0,     0,     0,     0,
1751      0,     0,    51,     0,    78,    78,     0,    78,   879,    78,
1752      0,     0,    21,     0,     0,     0,    78,     0,   583,     0,
1753      0,     0,     0,     0,   589,    26,   379,    27,    28,    78,
1754      0,    78,     0,   379,     0,     0,     0,     0,     0,     0,
1755      0,   913,    51,    51,    51,    51,     0,     0,   416,   416,
1756    416,   914,     0,     0,     0,     0,     0,     0,     0,    32,
1757      0,   586,     0,     0,   915,   588,     7,     8,     9,    10,
1758      0,     0,    13,     0,     0,     0,     0,     0,   879,   879,
1759    879,     0,     0,     0,    51,     0,     0,     0,    51,     0,
1760      0,     0,     0,     0,     0,    51,    51,   231,    51,     0,
1761      0,     0,   143,     0,    21,     0,     0,   416,   416,     0,
1762     78,   589,     0,     0,    78,     0,     0,    26,    78,    27,
1763     28,    78,    78,    78,     0,     0,     0,     0,     0,    51,
1764      0,    51,     0,   178,     0,    78,    51,    51,    51,     0,
1765      0,     0,     0,   179,     0,     0,     0,     0,     0,     0,
1766      0,    32,    78,    78,    78,     0,   180,     0,     0,     0,
1767      0,     0,     0,     0,     0,   522,     0,     0,     0,     0,
1768      0,     0,     0,     0,     0,   416,     0,     0,     0,     0,
1769      0,    78,     0,     0,   589,     0,   589,     0,  1073,  1074,
1770    856,   858,     0,     0,     0,     0,  1080,   589,     0,     0,
1771      0,   876,   876,   876,     0,     0,     0,     0,     0,     0,
1772      0,     0,     0,     0,     0,     0,    78,     0,   856,   858,
1773    535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1774    545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1775    555,   556,   589,   589,   589,     0,     7,     8,     9,    10,
1776    386,    12,    13,     0,     0,   692,     0,    14,     0,     0,
1777      0,   522,   522,   522,     0,     0,     0,   237,  1191,     0,
1778      0,    16,     0,    17,    18,     0,     0,     0,     0,    20,
1779      0,     0,     0,   876,    21,     0,     0,     0,    23,     0,
1780    583,     0,     0,     0,     0,     0,     0,    26,     0,    27,
1781     28,     0,    51,    51,   150,  1073,  1074,     0,  1080,   237,
1782      0,     0,   606,  1110,     0,     0,    78,     0,     0,     0,
1783      0,     0,     0,  1111,     0,     0,     0,     0,     0,     0,
1784      0,    32,     0,   586,     0,     0,  1112,   588,     0,     0,
1785      0,     0,     0,  1141,     0,     0,     7,     8,     9,    10,
1786    199,   200,   201,     0,     0,     0,     0,    14,     0,     0,
1787      0,     0,    78,     0,     0,     0,     0,     0,     0,     0,
1788      0,     0,    51,    78,    18,     0,    78,     0,     0,    20,
1789      0,    78,     0,     0,    21,     0,     0,     0,    23,     0,
1790    583,     0,     0,   237,     0,     0,     0,    26,     0,    27,
1791     28,     0,   155,     0,    51,     0,     0,     0,     0,     0,
1792     78,     0,    78,   178,    78,    78,    78,     0,     0,     0,
1793     78,     0,     0,   179,   189,    78,     0,     0,    78,     0,
1794      0,    32,     0,     0,     0,     0,  1376,   589,   589,   589,
1795    589,   589,     0,     0,    78,   589,     0,     0,     0,     0,
1796      0,     0,     0,     7,     8,     9,    10,   386,    12,    13,
1797      0,     0,   959,     0,    14,     0,     0,   876,   876,   876,
1798      0,     0,     0,     0,     0,     0,   237,     0,    16,     0,
1799     17,    18,     0,     0,     0,     0,    20,     0,     0,     0,
1800      0,    21,     0,     0,     0,    23,     0,    51,    51,   150,
1801    150,   150,     0,   237,    26,    51,    27,    28,  -371,     8,
1802      9,  -371,  -371,    12,   229,     0,   155,   155,   155,    14,
1803     30,     0,     0,     0,     0,     0,     0,  1141,  1141,  1141,
1804     31,     0,     0,    16,     0,    17,  -371,     0,    32,     0,
1805      0,    20,     0,    33,     0,     0,  -371,   189,   189,   444,
1806     23,     0,   583,     0,   589,   589,   606,   589,    51,    26,
1807      0,   130,   131,    51,     0,    51,     0,     7,   127,   128,
1808     10,     0,     0,   482,     0,   584,   189,     0,     0,     0,
1809      0,     0,     0,     0,     0,   585,     0,    78,     0,     0,
1810      0,     0,     0,  -371,   187,   586,     0,     0,   587,   588,
1811      0,     0,     0,     0,     0,    21,     0,     0,     0,     0,
1812      0,    76,     0,     0,    51,    51,     0,    51,    26,   240,
1813     27,    28,   244,     0,     0,     0,     0,    78,    78,    78,
1814     78,     0,     0,     0,    30,     0,     0,   141,   145,     0,
1815      0,     0,    76,   240,    31,   348,     0,     0,     0,    76,
1816    495,     0,    32,    51,    51,    51,     0,    33,     0,     0,
1817      0,     0,     0,     0,   198,     0,     0,     0,     0,    78,
1818      0,     0,     0,    78,     0,     0,     0,     0,     0,     0,
1819     78,    78,     0,    78,   542,   543,   544,   545,   546,   547,
1820    548,   549,   550,   551,   552,   553,   554,   555,   556,     0,
1821    591,   591,   591,     0,     0,     0,     0,     0,     0,     0,
1822      7,     8,     9,    10,    78,     0,    78,   187,   187,   187,
1823      0,    78,    78,    78,     0,     0,     0,   450,     8,     9,
1824      0,   386,    12,    13,     0,     0,   692,     0,    14,     0,
1825      0,     0,     0,   391,     0,     0,   187,   394,    21,     0,
1826      0,   396,    16,     0,    17,    18,     0,   189,     0,     0,
1827     20,    26,     0,    27,    28,  1141,     0,  1370,    76,    23,
1828    244,   583,     0,     0,     0,     0,     0,   178,    26,     0,
1829    130,   131,     0,     0,   240,   141,   145,   179,     0,     0,
1830      0,     0,     0,     0,   584,    32,     0,     0,     0,     0,
1831    180,     0,     0,     0,   585,   189,     0,   189,     0,   444,
1832    444,   444,     0,     0,   586,   189,     0,   587,   588,     0,
1833    189,     0,     0,   189,     0,   735,     0,     7,     8,   736,
1834     10,   386,    12,    13,     0,  1141,  1141,  1141,    14,     0,
1835      0,     0,     0,     0,     7,     8,     9,    10,     0,   483,
1836    229,     0,    16,   606,    17,    18,    19,     0,     0,    51,
1837     20,  -507,     0,     0,     0,    21,     0,     0,     0,    23,
1838    737,     0,   646,     0,     0,     0,   240,   244,    26,     0,
1839     27,    28,    21,     0,   738,     0,   739,    78,    78,    78,
1840      0,     0,     0,     0,    30,    26,     0,    27,    28,     0,
1841      0,     0,     0,     0,    31,     0,     0,     7,     8,     9,
1842     10,   178,    32,    13,     0,     0,     0,    33,     0,     0,
1843      0,   179,     0,     0,     0,     0,     0,   187,  1143,    32,
1844      0,     0,     0,  -507,   180,     0,     0,     0,     0,   841,
1845      0,     0,     0,     0,     0,    21,     0,     0,     0,   615,
1846      0,     0,     0,   591,   591,     0,   591,    78,    26,     0,
1847     27,    28,     0,   591,     7,     8,     9,    10,     0,     0,
1848    482,     0,     0,     0,   440,   187,     0,   187,     0,   187,
1849    187,   187,   189,     0,   441,   187,     0,     0,     0,    78,
1850    187,     0,    32,   187,     0,     0,     0,   442,     0,     0,
1851      0,     0,    21,     0,     0,     0,   667,     0,     0,   668,
1852      0,     0,     0,     0,   670,    26,     0,    27,    28,     0,
1853      0,     0,   917,     0,   917,   917,     0,   591,     0,     0,
1854      0,   178,     0,     0,     0,     0,     0,     0,     0,     0,
1855      0,   179,     0,   394,     0,   396,     0,     0,     0,    32,
1856    102,     0,     0,     0,   180,     0,     0,     0,   483,   121,
1857    102,     0,     0,     0,   917,     0,   102,   102,     0,   102,
1858      0,     0,     0,     0,     0,   189,   189,   752,   189,     0,
1859      0,     0,    78,    78,    78,    78,    78,     0,     0,     0,
1860     78,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1861      0,   220,     0,     0,     0,     0,     0,     0,     0,     0,
1862      0,     0,  1143,  1143,  1143,     0,   189,     0,     0,     0,
1863      0,     0,   127,   128,     0,     0,   200,   201,     0,     0,
1864      0,     0,    14,     0,     0,     0,   240,   244,     0,   495,
1865    495,   495,     0,    78,     0,     0,     0,     0,    78,     0,
1866     78,   591,   187,     0,    20,     0,     0,     0,     0,     0,
1867    372,     0,   121,    23,     0,   583,     0,     0,     0,   102,
1868    102,     0,    26,     0,   130,   131,   102,     0,   102,   102,
1869    102,     0,     0,   102,   102,   102,     0,     0,   584,     0,
1870      0,     0,   187,     0,   187,   187,     0,     0,   585,    78,
1871     78,     0,    78,     0,     0,     0,     0,     0,   586,     0,
1872      0,   587,   588,  1300,  1301,     9,    10,     0,     0,     0,
1873      0,     0,     0,     0,   591,     0,   591,     0,     0,     0,
1874      0,     0,     0,     0,   187,     0,     0,   591,    78,    78,
1875     78,   591,   591,   591,     0,   187,   187,     0,   187,     0,
1876      0,    21,     0,     0,     7,   127,   128,    10,   465,   102,
1877      0,   919,     0,     0,    26,     0,    27,    28,     0,     0,
1878      0,     0,  1302,   244,  1300,   127,   128,    10,   102,     0,
1879    178,     0,   917,   917,  1115,     0,   187,     0,     0,     0,
1880    179,     0,    21,     0,     0,     0,     0,     0,    32,     0,
1881      0,     0,     0,   180,     0,    26,   960,    27,    28,     0,
1882      0,     0,    21,   667,   668,     0,   670,   102,     0,     0,
1883      0,   147,     0,  1115,     0,    26,     0,    27,    28,     0,
1884      0,   148,     0,  1302,     0,     0,     0,     0,     0,    32,
1885      0,    30,     0,     0,   149,     0,     0,   752,     0,   752,
1886   1143,    31,   189,     0,  1003,  1010,   752,     0,     0,    32,
1887      0,     0,     0,     0,    33,   102,     0,   102,   102,     0,
1888      0,     0,     7,     8,     9,    10,   386,    12,    13,     0,
1889      0,     0,     0,    14,   544,   545,   546,   547,   548,   549,
1890    550,   551,   552,   553,   554,   555,   556,    16,     0,    17,
1891     18,     0,     0,     0,     0,    20,     0,     0,     0,     0,
1892     21,     0,   102,     0,    23,     0,     0,   240,   244,   240,
1893   1143,  1143,  1143,    26,     0,    27,    28,     0,     0,   841,
1894    841,   102,   841,     0,     0,   102,     0,     0,   102,    30,
1895      0,     0,     0,   102,    78,     0,     0,     0,     0,    31,
1896      0,     0,   187,   187,  1113,     0,     0,    32,     0,   240,
1897      8,     9,    33,   386,    12,    13,     0,     0,  1498,     0,
1898     14,     0,     0,     0,     0,     0,     0,   917,   917,  1115,
1899   1115,  1115,     0,     0,    16,   917,    17,    18,     7,     8,
1900      9,    10,    20,  1113,     0,     0,     0,     0,     0,     0,
1901      0,    23,     0,   102,     0,   727,     0,  1115,  1115,  1115,
1902     26,     0,   130,   131,     0,     0,     0,     0,     0,     0,
1903    141,   145,   187,     0,     0,     0,    21,     0,     0,     0,
1904    102,     0,     0,     0,     0,     0,     0,     0,   189,    26,
1905      0,    27,    28,   450,     0,     6,     0,     7,     8,     9,
1906     10,    11,    12,    13,     0,   440,     0,     0,    14,     0,
1907      0,     0,     0,     0,     0,   441,     0,     0,     0,     0,
1908      0,     0,    16,    32,    17,    18,     0,     0,   442,     0,
1909     20,     0,     0,     0,     0,    21,     0,     0,     0,    23,
1910   1003,     0,   411,     0,   917,   917,     0,   917,    26,     0,
1911     27,    28,     0,     0,    29,     0,   102,     7,     8,     9,
1912     10,     0,     0,     0,    30,     0,     0,   102,   102,     0,
1913    102,   102,   752,     0,    31,     0,   240,     0,     0,     0,
1914      0,     0,    32,   189,     0,   189,     0,    33,     0,     0,
1915      0,     0,     0,     0,     0,    21,     0,   187,   187,   187,
1916    187,  1113,     0,  1227,     0,   187,     0,     0,    26,     0,
1917     27,    28,     0,     0,     0,     0,     0,     0,     0,     0,
1918      0,     0,     0,   102,   178,     0,     0,  1113,  1113,  1113,
1919    102,   121,     0,     0,   179,     0,     0,     0,     0,     0,
1920      0,     0,    32,   220,     0,     0,     0,   180,     0,     0,
1921      0,     0,     0,     0,     0,     0,     0,     0,   187,     0,
1922      0,     0,   727,     0,     0,   394,   396,     0,     0,     0,
1923      0,     0,     0,   483,     7,     8,     9,    10,   190,    12,
1924    191,     0,     0,     0,     0,    14,     0,     0,     0,     0,
1925      0,     0,     0,     0,     0,   444,     0,     0,     0,    16,
1926      0,    17,    18,     0,     0,     0,     0,    20,     0,     0,
1927      0,     0,    21,     0,   187,   187,    23,   187,     0,     0,
1928    727,     0,     0,   102,     0,    26,  1307,    27,    28,     0,
1929      0,  1307,     0,   752,     0,     0,     0,     0,     0,     0,
1930      0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
1931      0,    31,     0,   187,     0,   187,   102,   102,   102,    32,
1932      0,     0,     0,     0,    33,   444,   444,   444,   102,     0,
1933      0,     0,     0,     0,     8,     9,     0,   190,    12,   191,
1934      0,     0,   667,   668,    14,   670,     0,     0,     0,   189,
1935      0,     0,     0,     0,     0,     0,     0,     0,    16,     0,
1936     17,    18,     0,     0,     0,  1401,    20,  -463,  -463,  -463,
1937   -463,  -463,  -463,  -463,     0,    23,  -463,     0,  -463,     0,
1938      0,     0,  1375,     0,    26,     0,   130,   131,     0,  -463,
1939      0,  -463,     0,     0,     0,  -463,     0,     0,     0,     0,
1940   -463,   102,     0,   102,     0,  -463,     0,     0,     0,  -463,
1941      0,  -463,     0,     0,   102,     0,     0,     0,  -463,     0,
1942   -463,  -463,  -463,  -463,  -463,  1113,  -463,  -463,  -463,  -463,
1943   -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,
1944   -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,  -463,     0,
1945   -463,  -463,  -463,     0,  -463,  -463,  -463,  -463,  -463,  -463,
1946      0,  -463,     0,     0,     0,     0,  1402,     0,     0,     0,
1947      0,  -463,  -463,  -463,     0,  -463,   539,   540,   541,   542,
1948    543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
1949    553,   554,   555,   556,     0,  1113,  1113,  1113,   540,   541,
1950    542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
1951    552,   553,   554,   555,   556,     0,     0,     0,     0,   187,
1952      0,     0,     0,     0,   727,     0,     0,     0,     0,     0,
1953      0,     0,     0,     0,     0,     0,  1378,     0,  1238,  1239,
1954   1240,    10,   386,    12,   284,   285,   286,     0,   287,    14,
1955   1241,   102,  1242,  1243,  1244,  1245,  1246,  1247,  1248,  1249,
1956   1250,  1251,    15,    16,   288,    17,    18,    19,     0,   289,
1957    290,    20,     0,   291,   292,   293,    21,   294,   295,  1252,
1958     23,  1253,     0,     0,   296,   297,   298,   299,   300,    26,
1959      0,  1254,   302,   679,     0,  1255,   303,     0,     0,     0,
1960      0,     0,   304,     0,     0,   305,   102,   102,     0,   102,
1961      0,     0,     0,   306,   307,   308,     0,     0,     0,     0,
1962      0,   309,   310,   311,     0,     0,     0,     0,   312,     0,
1963   1256,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1964      0,     0,     0,     0,  1379,   313,     0,     0,     0,     0,
1965      0,     0,     0,  1237,     0,  1238,  1239,  1240,    10,   386,
1966     12,   284,   285,   286,     0,   287,    14,  1241,   727,  1242,
1967   1243,  1244,  1245,  1246,  1247,  1248,  1249,  1250,  1251,    15,
1968     16,   288,    17,    18,    19,     0,   289,   290,    20,     0,
1969    291,   292,   293,    21,   294,   295,  1252,    23,  1253,     0,
1970    727,   296,   297,   298,   299,   300,    26,     0,  1254,   302,
1971    679,     0,  1255,   303,     0,     0,     0,     0,   102,   304,
1972    102,     0,   305,     0,     0,     0,     0,     0,     0,     0,
1973    306,   307,   308,     0,     0,     0,     0,     0,   309,   310,
1974    311,     0,     0,     0,     0,   312,   517,  1256,   283,     8,
1975      9,    10,   386,    12,   284,   285,   286,   692,   287,    14,
1976      0,     0,   313,     0,     0,     0,     0,     0,     0,     0,
1977      0,     0,     0,    16,   288,    17,    18,    19,     0,   289,
1978    290,    20,     0,   291,   292,   293,    21,   294,   295,     0,
1979     23,     0,   583,     0,   296,   297,   298,   299,   300,    26,
1980      0,    27,   302,  -296,     0,     0,   303,     0,     0,     0,
1981      0,     0,   304,     0,     0,   872,     0,     0,     0,     0,
1982      0,     0,     0,   306,   307,   873,     0,     0,     0,     0,
1983      0,   309,   310,   311,     0,   586,     0,     0,   874,   588,
1984    517,     0,     7,     8,     9,    10,   386,    12,   284,   285,
1985    286,   692,   287,    14,     0,   313,     0,     0,     0,     0,
1986      0,     0,     0,     0,     0,     0,     0,    16,   288,    17,
1987     18,    19,     0,   289,   290,    20,     0,   291,   292,   293,
1988     21,   294,   295,     0,    23,     0,   583,     0,   296,   297,
1989    298,   299,   300,    26,     0,    27,    28,  -296,     0,     0,
1990    303,     0,     0,     0,     0,     0,   304,     0,     0,  1138,
1991      0,     0,     0,     0,     0,     0,     0,   306,   307,  1139,
1992      0,     0,     0,     0,     0,   309,   310,   311,     0,   586,
1993      0,     0,  1140,   588,   691,     0,   283,     8,     9,    10,
1994    386,    12,   284,   285,   286,   692,   287,    14,     0,   313,
1995      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1996      0,    16,   288,    17,    18,    19,     0,   289,   290,    20,
1997      0,   291,   292,   293,    21,   294,   295,     0,    23,     0,
1998      0,     0,   296,   297,   298,   299,   300,    26,     0,    27,
1999    302,     0,     0,     0,   303,     0,     0,     0,     0,     0,
2000    304,     0,     0,   305,     0,     0,     0,     0,     0,     0,
2001      0,   306,   307,   308,     0,     0,     0,     0,     0,   309,
2002    310,   311,     0,     0,     0,   805,   312,   283,     8,     9,
2003     10,   386,    12,   284,   285,   286,     0,   287,    14,     0,
2004      0,  -777,     0,   313,     0,     0,     0,     0,     0,     0,
2005      0,     0,    16,   288,    17,    18,    19,     0,   289,   290,
2006     20,     0,   291,   292,   293,    21,   294,   295,     0,    23,
2007      0,     0,     0,   296,   297,   298,   299,   300,    26,     0,
2008     27,   302,  1475,     0,  -767,   303,     0,     0,     0,     0,
2009      0,   304,     0,     0,   305,     0,     0,     0,     0,     0,
2010      0,     0,   306,   307,   308,     0,     0,     0,     0,     0,
2011    309,   310,   311,     0,     0,     0,   682,   312,   793,   794,
2012    795,    10,     0,    12,   499,   285,   286,     0,   287,    14,
2013      0,     0,     0,     0,   313,     0,     0,     0,     0,     0,
2014      0,     0,     0,    16,   288,    17,     0,    19,     0,   289,
2015    290,    20,     0,   291,   292,   293,    21,   294,   295,     0,
2016     23,     0,     0,     0,   296,   297,   298,   299,   300,    26,
2017      0,   796,   797,   683,     0,     0,   303,     0,     0,     0,
2018      0,     0,   304,     0,     0,   305,     0,     0,     0,     0,
2019      0,     0,     0,   306,   307,   308,     0,     0,     0,     0,
2020      0,   309,   310,   311,     0,     0,     0,     0,   312,   798,
2021    682,     0,   793,   794,   795,    10,     0,    12,   499,   285,
2022    286,     0,   287,    14,   946,   313,     0,     0,     0,     0,
2023      0,     0,     0,     0,     0,     0,     0,    16,   288,    17,
2024      0,    19,     0,   289,   290,    20,     0,   291,   292,   293,
2025     21,   294,   295,     0,    23,     0,     0,     0,   296,   297,
2026    298,   299,   300,    26,     0,   796,   797,   683,     0,     0,
2027    303,     0,     0,     0,     0,     0,   304,     0,     0,   305,
2028      0,     0,     0,     0,     0,     0,     0,   306,   307,   308,
2029      0,     0,     0,     0,     0,   309,   310,   311,     0,     0,
2030      0,     0,   312,   798,   682,     0,   793,   794,   795,    10,
2031      0,    12,   499,   285,   286,     0,   287,    14,     0,   313,
2032      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2033      0,    16,   288,    17,     0,    19,     0,   289,   290,    20,
2034      0,   291,   292,   293,    21,   294,   295,     0,    23,     0,
2035      0,     0,   296,   297,   298,   299,   300,    26,     0,   796,
2036    797,   683,     0,     0,   303,     0,     0,     0,     0,     0,
2037    304,     0,     0,   305,     0,     0,     0,     0,     0,     0,
2038      0,   306,   307,   308,     0,     0,     0,     0,     0,   309,
2039    310,   311,     0,     0,     0,   682,   312,   793,   794,   795,
2040     10,     0,    12,   499,   285,   286,     0,   287,    14,     0,
2041      0,     0,  -467,   313,     0,     0,     0,     0,     0,     0,
2042      0,     0,    16,   288,    17,     0,    19,     0,   289,   290,
2043     20,     0,   291,   292,   293,    21,   294,   295,     0,    23,
2044      0,     0,     0,   296,   297,   298,   299,   300,    26,     0,
2045    796,   797,   683,     0,     0,   303,     0,     0,     0,     0,
2046      0,   304,     0,     0,   305,     0,     0,     0,     0,     0,
2047      0,     0,   306,   307,   308,     0,     0,     0,     0,     0,
2048    309,   310,   311,     0,     0,     0,   682,   312,   283,     8,
2049      9,    10,     0,    12,   499,   285,   286,     0,   287,    14,
2050      0,     0,     0,  1276,   313,     0,     0,     0,     0,     0,
2051      0,     0,     0,    16,   288,    17,     0,    19,     0,   289,
2052    290,    20,     0,   291,   292,   293,    21,   294,   295,     0,
2053     23,     0,     0,     0,   296,   297,   298,   299,   300,    26,
2054      0,    27,   302,   683,     0,     0,   303,     0,     0,     0,
2055      0,     0,   304,     0,     0,   305,     0,     0,     0,     0,
2056      0,     0,     0,   306,   307,   308,     0,     0,     0,     0,
2057      0,   309,   310,   311,     0,     0,     0,     0,   312,     0,
2058    517,     0,   283,     8,     9,    10,  1280,    12,   284,   285,
2059    286,     0,   287,    14,     0,   313,     0,     0,     0,     0,
2060      0,     0,     0,     0,     0,     0,     0,    16,   288,    17,
2061      0,    19,     0,   289,   290,    20,     0,   291,   292,   293,
2062     21,   294,   295,     0,    23,     0,     0,     0,   296,   297,
2063    298,   299,   300,    26,     0,    27,   302,  -296,     0,     0,
2064    303,     0,     0,     0,     0,     0,   304,     0,     0,   518,
2065      0,     0,     0,     0,     0,     0,     0,   306,   307,   519,
2066      0,     0,     0,     0,     0,   309,   310,   311,     0,     0,
2067      0,   682,   520,   283,     8,     9,    10,     0,    12,   499,
2068    285,   286,     0,   287,    14,     0,     0,     0,     0,   313,
2069      0,     0,     0,     0,     0,     0,     0,     0,    16,   288,
2070     17,     0,    19,     0,   289,   290,    20,     0,   291,   292,
2071    293,    21,   294,   295,     0,    23,     0,     0,     0,   296,
2072    297,   298,   299,   300,    26,     0,    27,   302,   683,     0,
2073      0,   303,     0,     0,     0,     0,     0,   304,     0,     0,
2074    305,     0,     0,     0,     0,     0,     0,     0,   306,   307,
2075    308,     0,     0,     0,     0,     0,   309,   310,   311,     0,
2076      0,     0,   805,   312,   283,     8,     9,    10,     0,    12,
2077    499,   285,   286,     0,   287,    14,     0,     0,     0,     0,
2078    313,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2079    288,    17,     0,    19,     0,   289,   290,    20,     0,   291,
2080    292,   293,    21,   294,   295,     0,    23,     0,     0,     0,
2081    296,   297,   298,   299,   300,    26,     0,    27,   302,     0,
2082      0,     0,   303,  -767,     0,     0,     0,     0,   304,     0,
2083      0,   305,     0,     0,     0,     0,     0,     0,     0,   306,
2084    307,   308,     0,     0,     0,     0,     0,   309,   310,   311,
2085      0,     0,     0,   517,   312,     7,     8,     9,    10,     0,
2086     12,   284,   285,   286,     0,   287,    14,     0,     0,     0,
2087      0,   313,     0,     0,     0,     0,     0,     0,     0,     0,
2088     16,   288,    17,     0,    19,     0,   289,   290,    20,     0,
2089    291,   292,   293,    21,   294,   295,     0,    23,     0,     0,
2090      0,   296,   297,   298,   299,   300,    26,     0,    27,    28,
2091   -296,     0,     0,   303,     0,     0,     0,     0,     0,   304,
2092      0,     0,  1446,     0,     0,     0,     0,     0,     0,     0,
2093    306,   307,  1447,     0,     0,     0,     0,     0,   309,   310,
2094    311,     0,     0,     0,  1527,  1448,   283,     8,     9,    10,
2095      0,    12,   284,   285,   286,     0,   287,    14,     0,     0,
2096      0,     0,   313,     0,     0,     0,     0,     0,     0,     0,
2097      0,    16,   288,    17,     0,    19,     0,   289,   290,    20,
2098      0,   291,   292,   293,    21,   294,   295,     0,    23,     0,
2099      0,     0,   296,   297,   298,   299,   300,    26,     0,    27,
2100    302,     0,     0,  -183,   303,     0,     0,     0,     0,     0,
2101    304,     0,     0,   305,     0,     0,     0,     0,     0,     0,
2102      0,   306,   307,   308,     0,     0,     0,     0,     0,   309,
2103    310,   311,     0,     0,     0,   805,   312,   283,     8,     9,
2104     10,     0,    12,   499,   285,   286,     0,   287,    14,     0,
2105      0,     0,     0,   313,     0,     0,     0,     0,     0,     0,
2106      0,     0,    16,   288,    17,     0,    19,     0,   289,   290,
2107     20,     0,   291,   292,   293,    21,   294,   295,     0,    23,
2108      0,     0,     0,   296,   297,   298,   299,   300,    26,     0,
2109     27,   302,     0,     0,     0,   303,     0,     0,     0,     0,
2110      0,   304,   246,     0,   305,     8,     9,     0,     0,    12,
2111     13,     0,   306,   307,   308,    14,     0,     0,     0,     0,
2112    309,   310,   311,     0,     0,     0,     0,   312,     0,    16,
2113      0,    17,     0,     0,     0,     0,     0,    20,     0,   247,
2114    248,     0,  -767,     0,   313,     0,    23,     0,   249,     0,
2115      0,     0,     0,     0,     0,    26,     0,   130,   131,     0,
2116    250,     0,     0,     0,   251,   252,   253,   254,   255,   256,
2117    257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2118    267,   268,   269,   270,   271,     0,     0,   272,   273,   274,
2119      0,     0,   275,     0,   891,   276,   283,     8,     9,    10,
2120      0,    12,   499,   285,   286,     0,   287,    14,     0,     0,
2121      0,   277,     0,     0,     0,     0,     0,     0,     0,     0,
2122      0,    16,   288,    17,     0,    19,     0,   289,   290,    20,
2123      0,   291,   292,   293,    21,   294,   295,     0,    23,     0,
2124      0,     0,   296,   297,   298,   299,   300,    26,     0,    27,
2125    302,     0,     0,     0,   303,     0,     0,     0,     0,     0,
2126    304,     0,     0,   305,     0,     0,     0,     0,     0,     0,
2127      0,   306,   307,   308,     0,     0,     0,     0,     0,   309,
2128    310,   311,     0,     0,     0,   893,   312,   283,     8,     9,
2129     10,     0,    12,   499,   285,   286,     0,   287,    14,     0,
2130      0,     0,     0,   313,     0,     0,     0,     0,     0,     0,
2131      0,     0,    16,   288,    17,     0,    19,     0,   289,   290,
2132     20,     0,   291,   292,   293,    21,   294,   295,     0,    23,
2133      0,     0,     0,   296,   297,   298,   299,   300,    26,     0,
2134     27,   302,     0,     0,     0,   303,     0,     0,     0,     0,
2135      0,   304,     0,     0,   305,     0,     0,     0,     0,     0,
2136      0,     0,   306,   307,   308,     0,     0,     0,     0,     0,
2137    309,   310,   311,     0,     0,     0,  1459,   312,   283,     8,
2138      9,    10,     0,    12,   499,   285,   286,     0,   287,    14,
2139      0,     0,     0,     0,   313,     0,     0,     0,     0,     0,
2140      0,     0,     0,    16,   288,    17,     0,    19,     0,   289,
2141    290,    20,     0,   291,   292,   293,    21,   294,   295,     0,
2142     23,     0,     0,     0,   296,   297,   298,   299,   300,    26,
2143      0,    27,   302,     0,     0,     0,   303,     0,     0,     0,
2144      0,     0,   304,     0,     0,   305,     0,     0,     0,     0,
2145      0,     0,     0,   306,   307,   308,     0,     0,     0,     0,
2146      0,   309,   310,   311,   283,     8,     9,    10,   312,    12,
2147    499,   285,   286,     0,   287,    14,     0,     0,     0,     0,
2148      0,     0,     0,     0,     0,   313,     0,     0,     0,    16,
2149    288,    17,     0,    19,     0,   289,   290,    20,     0,   291,
2150    292,   293,    21,   294,   295,     0,    23,     0,     0,     0,
2151    296,   297,   298,   299,   300,    26,     0,    27,   302,     0,
2152      0,     0,   303,     0,     0,     0,     0,     0,   304,     0,
2153    735,   305,     7,     8,   736,    10,   386,    12,    13,   306,
2154    307,   308,     0,    14,     0,     0,     0,   309,   310,   311,
2155      0,     0,     0,     0,   312,     0,     0,    16,     0,    17,
2156     18,    19,     0,     0,     0,    20,  -508,     0,     0,     0,
2157     21,   313,   844,     0,    23,   737,     0,   646,     0,     0,
2158      0,     0,     0,    26,     0,    27,    28,     0,     0,   738,
2159      0,   739,     0,     0,     0,     0,     0,     0,     0,    30,
2160    735,     0,     7,     8,   736,    10,   386,    12,    13,    31,
2161      0,     0,     0,    14,     0,     0,     0,    32,     0,     0,
2162      0,     0,    33,     0,     0,     0,     0,    16,     0,    17,
2163     18,    19,     0,     0,     0,    20,  -510,     0,  -508,     0,
2164     21,     0,     0,     0,    23,   737,     0,   646,     0,     0,
2165      0,     0,     0,    26,     0,    27,    28,     0,     0,   738,
2166      0,   739,     0,     0,     0,     0,     0,     0,     0,    30,
2167    735,     0,     7,     8,   736,    10,   386,    12,    13,    31,
2168      0,     0,     0,    14,     0,     0,     0,    32,     0,     0,
2169      0,     0,    33,     0,     0,     0,     0,    16,     0,    17,
2170     18,    19,     0,     0,     0,    20,  -509,     0,  -510,     0,
2171     21,     0,     0,     0,    23,   737,     0,   646,     0,     0,
2172      0,     0,     0,    26,     0,    27,    28,     0,     0,   738,
2173      0,   739,     0,     0,     0,     0,     0,     0,     0,    30,
2174      0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
2175      0,     0,     0,     0,     0,     0,     0,    32,     0,     0,
2176      0,     0,    33,     0,     0,  1238,  1239,  1240,    10,   386,
2177     12,   284,   285,   286,     0,   287,    14,  1241,  -509,  1242,
2178   1243,  1244,  1245,  1246,  1247,  1248,  1249,  1250,  1251,    15,
2179     16,   288,    17,    18,    19,     0,   289,   290,    20,     0,
2180    291,   292,   293,    21,   294,   295,  1252,    23,  1253,     0,
2181      0,   296,   297,   298,   299,   300,    26,     0,  1254,   302,
2182    679,     0,  1255,   303,     0,     0,     0,     0,     0,   304,
2183      0,     0,   305,     0,     0,     0,     0,     0,     0,     0,
2184    306,   307,   308,     0,     0,     0,     0,     0,   309,   310,
2185    311,     0,     0,     0,     0,   312,     0,  1256,     0,     0,
2186      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2187      0,  1383,   313,  1238,  1239,  1240,    10,   386,    12,   284,
2188    285,   286,     0,   287,    14,  1241,     0,  1242,  1243,  1244,
2189   1245,  1246,  1247,  1248,  1249,  1250,  1251,    15,    16,   288,
2190     17,    18,    19,     0,   289,   290,    20,     0,   291,   292,
2191    293,    21,   294,   295,  1252,    23,  1253,     0,     0,   296,
2192    297,   298,   299,   300,    26,     0,  1254,   302,   679,     0,
2193   1255,   303,     0,     0,     0,     0,     0,   304,     0,     0,
2194    305,     0,     0,     0,     0,     0,     0,     0,   306,   307,
2195    308,     0,     0,     0,     0,     0,   309,   310,   311,     0,
2196      0,     0,     0,   312,     0,  1256,     0,  1238,  1239,  1240,
2197     10,   386,    12,   284,   285,   286,     0,   287,    14,  1241,
2198    313,  1242,  1243,  1244,  1245,  1246,  1247,  1248,  1249,  1250,
2199   1251,    15,    16,   288,    17,    18,    19,     0,   289,   290,
2200     20,     0,   291,   292,   293,    21,   294,   295,  1252,    23,
2201   1253,     0,     0,   296,   297,   298,   299,   300,    26,     0,
2202   1254,   302,  1504,     0,  1255,   303,     0,     0,     0,     0,
2203      0,   304,     0,     0,   305,     0,     0,     0,     0,     0,
2204      0,     0,   306,   307,   308,     0,     0,     0,     0,     0,
2205    309,   310,   311,     0,     0,     0,     0,   312,     0,  1256,
2206      0,  1238,  1239,  1240,    10,   386,    12,   284,   285,   286,
2207      0,   287,    14,  1241,   313,  1242,  1243,  1244,  1245,  1246,
2208   1247,  1248,  1249,  1250,  1251,    15,    16,   288,    17,    18,
2209     19,     0,   289,   290,    20,     0,   291,   292,   293,    21,
2210    294,   295,  1252,    23,  1253,     0,     0,   296,   297,   298,
2211    299,   300,    26,     0,  1254,   302,     0,     0,  1255,   303,
2212      0,     0,     0,     0,     0,   304,     0,     0,   305,     0,
2213      0,     0,     0,     0,     0,     0,   306,   307,   308,     0,
2214      0,     0,     0,     0,   309,   310,   311,     0,     0,     0,
2215      0,   312,     0,  1256,   283,     8,     9,    10,   386,    12,
2216    284,   285,   286,   692,   287,    14,     0,     0,   313,     0,
2217      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2218    288,    17,    18,    19,     0,   289,   290,    20,     0,   291,
2219    292,   293,    21,   294,   295,     0,    23,     0,   583,     0,
2220    296,   297,   298,   299,   300,    26,     0,    27,   302,     0,
2221      0,     0,   303,     0,     0,     0,     0,     0,   304,     0,
2222      0,   872,     0,     0,     0,     0,     0,     0,     0,   306,
2223    307,   873,     0,     0,     0,     0,     0,   309,   310,   311,
2224      0,   586,     0,     0,   874,   588,     7,     8,     9,    10,
2225    386,    12,   284,   285,   286,   692,   287,    14,     0,     0,
2226      0,   313,     0,     0,     0,     0,     0,     0,     0,     0,
2227      0,    16,   288,    17,    18,    19,     0,   289,   290,    20,
2228      0,   291,   292,   293,    21,   294,   295,     0,    23,     0,
2229    583,     0,   296,   297,   298,   299,   300,    26,     0,    27,
2230     28,     0,     0,     0,   303,     0,     0,     0,     0,     0,
2231    304,     0,     0,  1138,     0,     0,     0,     0,     0,     0,
2232      0,   306,   307,  1139,     0,     0,     0,     0,     0,   309,
2233    310,   311,     0,   586,     0,     0,  1140,   588,   283,     8,
2234      9,    10,     0,    12,   284,   285,   286,     0,   287,    14,
2235      0,     0,     0,   313,     0,     0,     0,     0,     0,     0,
2236      0,     0,     0,    16,   288,    17,     0,    19,     0,   289,
2237    290,    20,     0,   291,   292,   293,    21,   294,   295,     0,
2238     23,     0,   583,     0,   296,   297,   298,   299,   300,    26,
2239      0,    27,   302,     0,     0,     0,     0,     0,     0,     0,
2240      0,     0,   304,     0,     0,   872,     0,     0,     0,     0,
2241      0,     0,     0,   306,   307,   873,     0,     0,     0,     0,
2242      0,   309,   310,   311,     0,   586,     0,     0,   874,   588,
2243      7,     8,     9,    10,     0,    12,   284,   285,   286,     0,
2244    287,    14,     0,     0,     0,   313,     0,     0,     0,     0,
2245      0,     0,     0,     0,     0,    16,   288,    17,     0,    19,
2246      0,   289,   290,    20,     0,   291,   292,   293,    21,   294,
2247    295,     0,    23,     0,   583,     0,   296,   297,   298,   299,
2248    300,    26,     0,    27,    28,     0,     0,     0,     0,     0,
2249      0,     0,     0,     0,   304,     0,     0,  1138,     0,     0,
2250      0,     0,     0,     0,     0,   306,   307,  1139,     0,     0,
2251      0,     0,     0,   309,   310,   311,     0,   586,     0,     0,
2252   1140,   588,   283,     8,     9,    10,     0,    12,   499,   285,
2253    286,     0,   287,    14,     0,     0,     0,   313,     0,     0,
2254      0,     0,     0,     0,     0,     0,     0,    16,   288,    17,
2255      0,    19,     0,   289,   290,    20,     0,   291,   292,   293,
2256     21,   294,   295,     0,    23,     0,     0,     0,   296,   297,
2257    298,   299,   300,    26,     0,    27,   302,     0,     0,  1356,
2258    303,     0,     0,     0,     0,     0,   304,     0,     0,   305,
2259      0,     0,     0,     0,     0,     0,     0,   306,   307,   308,
2260      0,     0,     0,     0,     0,   309,   310,   311,     0,     0,
2261      0,     0,   312,   283,     8,     9,    10,   386,    12,   284,
2262    285,   286,     0,   287,    14,     0,     0,     0,     0,   313,
2263      0,     0,     0,     0,     0,     0,     0,     0,    16,   288,
2264     17,    18,    19,     0,   289,   290,    20,     0,   291,   292,
2265    293,    21,   294,   295,     0,    23,     0,     0,     0,   296,
2266    297,   298,   299,   300,    26,     0,    27,   302,     0,     0,
2267      0,     0,     0,     0,     0,     0,     0,   304,     0,     0,
2268    305,     0,     0,     0,     0,     0,     0,     0,   306,   307,
2269    308,     0,     0,     0,     0,     0,   309,   310,   311,   283,
2270      8,     9,    10,   312,    12,   284,   285,   286,     0,   287,
2271     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2272    313,     0,     0,     0,    16,   288,    17,     0,    19,     0,
2273    289,   290,    20,     0,   291,   292,   293,    21,   294,   295,
2274      0,    23,     0,     0,     0,   296,   297,   298,   299,   300,
2275     26,     0,   301,   302,     0,     0,     0,   303,     0,     0,
2276      0,     0,     0,   304,     0,     0,   305,     0,     0,     0,
2277      0,     0,     0,     0,   306,   307,   308,     0,     0,     0,
2278      0,     0,   309,   310,   311,   283,     8,     9,    10,   312,
2279     12,   284,   285,   286,     0,   287,    14,     0,     0,     0,
2280      0,     0,     0,     0,     0,     0,   313,     0,     0,     0,
2281     16,   288,    17,     0,    19,     0,   289,   290,    20,     0,
2282    291,   292,   293,    21,   294,   295,     0,    23,     0,     0,
2283      0,   296,   297,   298,   299,   300,    26,     0,    27,   302,
2284      0,     0,     0,   303,     0,     0,     0,     0,     0,   304,
2285      0,     0,   305,     0,     0,     0,     0,     0,     0,     0,
2286    306,   307,   308,     0,     0,     0,     0,     0,   309,   310,
2287    311,   283,     8,     9,    10,   312,    12,   499,   285,   286,
2288      0,   287,    14,     0,     0,     0,     0,     0,     0,     0,
2289      0,     0,   313,     0,     0,     0,    16,   288,    17,     0,
2290     19,     0,   289,   290,    20,     0,   291,   292,   293,    21,
2291    294,   295,     0,    23,     0,     0,     0,   296,   297,   298,
2292    299,   300,    26,     0,    27,   302,     0,     0,     0,   303,
2293      0,     0,     0,     0,     0,   304,     0,     0,   305,     0,
2294      0,     0,     0,     0,     0,     0,   306,   307,   308,     0,
2295      0,     0,     0,     0,   309,   310,   311,   283,     8,     9,
2296     10,   312,    12,   499,   285,   286,     0,   287,    14,     0,
2297      0,     0,     0,     0,     0,     0,     0,     0,   313,     0,
2298      0,     0,    16,   288,    17,     0,    19,     0,   289,   290,
2299     20,     0,   291,   292,   293,    21,   294,   295,     0,    23,
2300      0,     0,     0,   296,   297,   298,   299,   300,    26,     0,
2301     27,   302,   532,     0,     0,     0,     0,     0,     0,     0,
2302      0,   304,     0,     0,   305,     0,     0,     0,     0,     0,
2303      0,     0,   306,   307,   308,     0,     0,     0,     0,     0,
2304    309,   310,   311,   283,     8,     9,    10,   533,    12,   499,
2305    285,   286,     0,   287,    14,     0,     0,     0,     0,     0,
2306      0,     0,     0,     0,   313,     0,     0,     0,    16,   288,
2307     17,     0,    19,     0,   289,   290,    20,     0,   291,   292,
2308    293,    21,   294,   295,     0,    23,     0,     0,     0,   296,
2309    297,   298,   299,   300,    26,     0,    27,   302,     0,     0,
2310      0,     0,     0,     0,     0,     0,     0,   304,     0,     0,
2311    305,     0,     0,     0,     0,     0,     0,     0,   306,   307,
2312    308,     0,     0,     0,     0,     0,   309,   310,   311,     0,
2313      0,     0,     0,   312,   571,   283,     8,     9,    10,     0,
2314     12,   499,   285,   286,     0,   287,    14,     0,     0,     0,
2315    313,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2316     16,   288,    17,     0,    19,     0,   289,   290,    20,     0,
2317    291,   292,   293,    21,   294,   295,     0,    23,     0,     0,
2318      0,   296,   297,   298,   299,   300,    26,     0,    27,   302,
2319      0,     0,     0,   303,     0,     0,     0,     0,     0,   304,
2320      0,     0,   518,     0,     0,     0,     0,     0,     0,     0,
2321    306,   307,   519,     0,     0,     0,     0,     0,   309,   310,
2322    311,  1099,     8,     9,    10,   520,    12,   499,   285,   286,
2323      0,   287,    14,     0,     0,     0,     0,     0,     0,     0,
2324      0,     0,   313,     0,     0,     0,    16,   288,    17,     0,
2325     19,     0,   289,   290,    20,     0,   291,   292,   293,    21,
2326    294,   295,     0,    23,     0,     0,     0,   296,   297,   298,
2327    299,   300,    26,     0,    27,   302,     0,     0,     0,   303,
2328      0,     0,     0,     0,     0,   304,     0,     0,   305,     0,
2329      0,     0,     0,     0,     0,     0,   306,   307,   308,     0,
2330      0,     0,     0,     0,   309,   310,   311,     7,     8,     9,
2331     10,   312,    12,   499,   285,   286,     0,   287,    14,     0,
2332      0,     0,     0,     0,     0,     0,     0,     0,   313,     0,
2333      0,     0,    16,   288,    17,     0,    19,     0,   289,   290,
2334     20,     0,   291,   292,   293,    21,   294,   295,     0,    23,
2335      0,     0,     0,   296,   297,   298,   299,   300,    26,     0,
2336     27,    28,     0,     0,     0,   303,     0,     0,     0,     0,
2337      0,   304,     0,     0,  1446,     0,     0,     0,     0,     0,
2338      0,     0,   306,   307,  1447,     0,     0,     0,     0,     0,
2339    309,   310,   311,   283,     8,     9,    10,  1448,    12,   499,
2340    285,   286,     0,   287,    14,     0,     0,     0,     0,     0,
2341      0,     0,     0,     0,   313,     0,     0,     0,    16,   288,
2342     17,     0,    19,     0,   289,   290,    20,     0,   291,   292,
2343    293,    21,   294,   295,     0,    23,     0,     0,     0,   296,
2344    297,   298,   299,   300,    26,     0,    27,   302,     0,     0,
2345      0,     0,     0,     0,     0,     0,     0,   304,     0,     0,
2346    305,     0,     0,     0,     0,     0,     0,     0,   306,   307,
2347    308,     0,     0,     0,     0,     0,   309,   310,   311,   283,
2348      8,     9,    10,   500,    12,   499,   285,   286,     0,   287,
2349     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2350    313,     0,     0,     0,    16,   288,    17,     0,    19,     0,
2351    289,   290,    20,     0,   291,   292,   293,    21,   294,   295,
2352      0,    23,     0,     0,     0,   296,   297,   298,   299,   300,
2353     26,     0,    27,   302,     0,     0,     0,     0,     0,     0,
2354      0,     0,     0,   304,     0,     0,   305,     0,     0,     0,
2355      0,     0,     0,     0,   306,   307,   308,     0,     0,     0,
2356      0,     0,   309,   310,   311,   283,     8,     9,    10,   503,
2357     12,   499,   285,   286,     0,   287,    14,     0,     0,     0,
2358      0,     0,     0,     0,     0,     0,   313,     0,     0,     0,
2359     16,   288,    17,     0,    19,     0,   289,   290,    20,     0,
2360    291,   292,   293,    21,   294,   295,     0,    23,     0,     0,
2361      0,   296,   297,   298,   299,   300,    26,     0,    27,   302,
2362      0,     0,     0,     0,     0,     0,     0,     0,     0,   304,
2363      0,     0,   305,     0,     0,     0,     0,     0,     0,     0,
2364    306,   307,   308,     0,     0,     0,     0,     0,   309,   310,
2365    311,   283,     8,     9,    10,   312,    12,   499,   285,   286,
2366      0,   287,    14,     0,     0,     0,     0,     0,     0,     0,
2367      0,     0,   313,     0,     0,     0,    16,   288,    17,     0,
2368     19,     0,   289,   290,    20,     0,   291,   292,   293,    21,
2369    294,   295,     0,    23,     0,     0,     0,   296,   297,   298,
2370    299,   300,    26,     0,    27,   302,     0,     0,     0,     0,
2371      0,     0,     0,     0,     0,   304,     0,     0,   518,     0,
2372      0,     0,     0,     0,     0,     0,   306,   307,   519,     0,
2373      0,     0,     0,     0,   309,   310,   311,     7,     8,     9,
2374     10,   520,    12,   284,   285,   286,     0,   287,    14,     0,
2375      0,     0,     0,     0,     0,     0,     0,     0,   313,     0,
2376      0,     0,    16,   288,    17,     0,    19,     0,   289,   290,
2377     20,     0,   291,   292,   293,    21,   294,   295,     0,    23,
2378      0,     0,     0,   296,   297,   298,   299,   300,    26,     0,
2379     27,    28,     0,     0,     0,     0,     0,     0,     0,     0,
2380      0,   304,     0,     6,  1446,     7,     8,     9,    10,    11,
2381     12,    13,   306,   307,  1447,     0,    14,     0,     0,     0,
2382    309,   310,   311,     0,     0,     0,     0,  1448,     0,    15,
2383     16,     0,    17,    18,    19,     0,     0,     0,    20,     0,
2384      0,     0,     0,    21,   313,     0,    22,    23,    24,     0,
2385     25,     0,     0,     0,     0,     0,    26,     0,    27,    28,
2386      0,     0,    29,     0,     0,     0,     0,     0,     0,     0,
2387      0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
2388      0,   162,    31,     7,     8,     9,    10,    11,    12,    13,
2389     32,     0,     0,     0,    14,    33,     0,     0,     0,     0,
2390     34,     0,     0,     0,     0,     0,     0,    15,    16,     0,
2391     17,    18,    19,     0,     0,     0,    20,     0,     0,     0,
2392      0,    21,     0,     0,    22,    23,    24,     0,    25,     0,
2393      0,     0,     0,     0,    26,     0,    27,    28,     0,     0,
2394     29,     0,   993,     8,   736,    10,   190,    12,   191,     0,
2395     30,     0,     0,    14,     0,     0,     0,     0,     0,     0,
2396     31,     0,     0,     0,     0,     0,     0,    16,    32,    17,
2397     18,     0,     0,    33,     0,    20,     0,     0,    34,     0,
2398     21,     0,     0,     0,    23,     0,     0,     0,     0,     0,
2399      0,     0,     0,    26,     0,    27,    28,     0,     0,     0,
2400      0,   995,     0,     0,     0,     0,     0,     0,     0,    30,
2401      7,     8,     9,    10,   190,    12,   191,     0,     0,    31,
2402      0,    14,     0,     0,     0,     0,     0,    32,     0,     0,
2403      0,     0,    33,     0,     0,    16,     0,    17,    18,     0,
2404      0,     0,     0,    20,     0,     0,     0,     0,    21,     8,
2405      9,     0,    23,    12,   229,     0,     0,     0,     0,    14,
2406      0,    26,     0,    27,    28,     0,     0,  1373,     0,     0,
2407      0,     0,     0,    16,     0,    17,     0,    30,     0,     0,
2408      0,    20,     0,     0,     0,     0,     0,    31,     0,     0,
2409     23,  1430,   583,     0,     0,    32,     0,     0,     0,    26,
2410     33,   130,   131,   535,   536,   537,   538,   539,   540,   541,
2411    542,   543,   544,   545,   546,   584,   548,   549,   550,   551,
2412    552,   553,   554,   555,   556,   585,     0,     0,     0,     0,
2413      0,     0,    18,     0,     0,   586,     0,     0,   587,   588,
2414      0,  1431,   535,   536,   537,   538,   539,   540,   541,   542,
2415    543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
2416    553,   554,   555,   556,   535,   536,   537,   538,   539,   540,
2417    541,   542,   543,   544,   545,   546,   547,   548,   549,   550,
2418    551,   552,   553,   554,   555,   556,   535,   536,   537,   538,
2419    539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
2420    549,   550,   551,   552,   553,   554,   555,   556,   543,   544,
2421    545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
2422    555,   556,     0,     0,     0,     0,     0,   624,     0,     0,
2423   1494,   535,   536,   537,   538,   539,   540,   541,   542,   543,
2424    544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
2425    554,   555,   556,  1512,   535,   536,   537,   538,   539,   540,
2426    541,   542,   543,   544,   545,   546,   547,   548,   549,   550,
2427    551,   552,   553,   554,   555,   556,   535,   536,   537,   538,
2428    539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
2429    549,   550,   551,   552,   553,   554,   555,   556
2430 };
2431
2432 static const short yycheck[] = {     4,
2433     55,   421,    80,   157,     4,   194,   677,   385,   147,   148,
2434     59,   385,     4,     4,   234,    14,     4,   339,   340,   332,
2435     23,   674,   126,   338,   469,   587,   338,   448,   385,   134,
2436     35,     4,   594,   833,    90,    35,    92,    42,    84,   530,
2437    567,   230,    42,    35,    35,   202,   203,    35,   133,   134,
2438     42,    42,    57,   657,    42,    62,    80,    30,    31,   664,
2439    356,     4,    35,     4,   142,   194,   124,    72,    46,    42,
2440    392,   393,   426,   225,   203,  1338,   133,     4,  1257,    84,
2441    740,   137,   742,    88,    83,    90,    54,    92,    11,   749,
2442    279,   757,    35,  1428,    35,   287,   288,   763,    76,    42,
2443     11,    42,   107,   108,   524,  1161,  1162,   106,    35,     1,
2444    188,    84,    12,    11,    57,    42,  1429,  1267,   338,  1175,
2445   1427,     1,    37,    59,  1274,    47,     1,     9,   320,    62,
2446     47,   136,   137,     0,   139,    54,   136,     0,     7,    62,
2447     33,    74,    74,   332,   136,   194,    60,   456,     3,     4,
2448      5,    59,    48,   202,   203,    74,   161,    84,   167,    59,
2449   1451,   161,    62,   136,   473,  1472,    58,   588,    37,   161,
2450     62,    93,    94,   109,   147,   148,    93,    94,    58,    61,
2451   1471,   230,    62,    58,   152,   108,   108,    47,   161,   502,
2452    197,   108,    47,   136,   109,   109,  1509,   108,   205,    54,
2453    108,    56,    57,    95,   870,   178,   179,    12,   108,   136,
2454    108,     3,     4,     5,   221,    95,   109,   185,   161,  1554,
2455    198,   245,    54,     3,     4,     5,     6,    47,    59,    60,
2456    279,   676,   231,    93,   161,   107,   108,    27,    93,  1530,
2457     38,    31,    74,  1299,   329,    47,    74,    25,   108,  1428,
2458     60,  1514,  1308,  1309,    59,  1311,    54,    62,   678,    64,
2459    414,    41,  1569,  1475,    56,    57,    12,    54,    48,    60,
2460     60,   376,   329,    93,    64,   280,    56,    57,   883,   325,
2461     58,   886,  1432,   332,    62,   341,    59,    74,    80,   611,
2462    647,    93,   607,    93,     9,   452,   453,    12,    58,   109,
2463     80,   440,   441,   460,   908,   832,   108,   312,    88,    59,
2464    368,  1523,   874,    59,   980,   472,    62,    95,   109,   109,
2465    325,   699,   927,   928,   453,   699,   992,    47,   333,    59,
2466     93,  1481,    47,   388,   491,   108,   341,   342,    98,   338,
2467    636,   390,   342,    54,    59,    75,    61,    62,    93,    64,
2468    342,    62,   325,   915,     4,     5,   576,    54,   108,  1025,
2469     75,  1027,    77,    74,    60,    59,    74,     4,     5,   342,
2470     47,    62,     9,    93,    94,     4,     5,    74,    93,    94,
2471    385,  1531,   695,    74,   389,    47,     4,     5,   108,    25,
2472     74,    27,   954,   108,   385,     3,     4,     5,   325,   342,
2473   1200,  1457,  1458,   452,   453,    93,    56,    57,    60,   416,
2474     47,   460,   385,   109,   108,   342,    93,    54,   107,    56,
2475     57,   912,    58,   472,     4,     5,    62,    56,    57,   434,
2476     48,    93,    94,    70,     3,     4,     5,     6,    56,    57,
2477    312,   497,   491,    80,     4,    60,   470,    47,    56,    57,
2478    871,   773,   459,    90,    47,    25,    93,    94,   385,    95,
2479     54,   434,    80,    47,    44,   470,    47,   440,   441,    54,
2480    470,    64,    41,    31,    54,    35,    56,    57,   470,    48,
2481     47,   835,    42,    64,   462,  1090,  1091,    56,    57,    74,
2482    107,   108,   497,    93,    94,   500,    47,   470,   503,    62,
2483     93,    94,   507,   508,   509,   510,   511,   434,    47,    93,
2484     94,    80,    93,   385,    54,   520,  1176,    58,    25,    88,
2485     27,    12,   568,   943,    47,   530,    93,  1327,   533,   470,
2486     47,   909,   637,   978,    74,   909,    27,    54,    74,   644,
2487     31,    64,    93,   470,     4,     5,    47,     8,     9,     9,
2488   1112,    58,   909,    14,    93,    62,    47,    74,   613,   644,
2489    717,    54,   434,   568,   879,   614,   109,   879,    59,    60,
2490     93,    62,   724,    64,   726,    36,    93,    47,  1140,   731,
2491    902,    58,   587,   639,    45,    25,    47,    27,    95,   594,
2492     59,    93,    93,   782,    54,   568,    56,    57,   653,   598,
2493    655,   656,    93,    94,     4,     5,    75,   656,    77,    58,
2494     70,   584,   585,     4,   587,    64,    47,   108,    58,    47,
2495     80,   594,    62,    93,    54,     3,     4,     5,   500,    47,
2496    734,   503,    93,    62,   639,   507,   508,   509,   510,   511,
2497    695,   568,   645,  1064,    35,    74,   695,    62,   520,   654,
2498     54,    42,    30,   658,    54,    95,    56,    57,    47,   879,
2499    587,   533,    93,    75,    47,    93,    47,   594,   717,    54,
2500     70,    47,   108,   676,    47,    93,    54,  1122,    56,    57,
2501     80,    54,    35,    47,   876,     3,     4,     5,     6,    42,
2502   1044,  1045,   747,   108,   699,   312,    33,  1019,  1020,  1021,
2503    108,    74,   758,   759,    93,   761,    54,     4,     5,  1154,
2504     93,   720,    93,   108,    62,   587,   740,    93,   742,    94,
2505     93,    44,   594,    41,   748,   749,   699,     4,     5,    93,
2506     48,    54,     9,   782,    57,   740,   108,   742,    56,    57,
2507    740,    47,   742,   748,   749,   754,  1059,     4,   740,   749,
2508    742,    48,   757,   758,   759,    54,   761,   749,   763,    56,
2509     57,    62,    80,    62,    11,   743,   744,   740,   109,   742,
2510     88,    93,   699,   446,   752,    74,   749,    54,    35,    56,
2511     57,   454,  1136,    80,   757,    42,    54,    93,     4,     5,
2512    763,  1145,  1146,    70,    62,     3,  1150,  1060,  1061,   740,
2513   1063,   742,    47,    80,   747,   748,    74,   108,   749,    54,
2514    147,   148,   149,   740,   431,   742,    60,    94,    25,   111,
2515     27,   427,   749,   975,   976,   977,   831,   699,   434,    74,
2516    757,   836,    94,    62,    59,    27,   763,  1191,    54,    31,
2517     56,    57,   920,   180,  1497,    74,  1517,    62,    93,    74,
2518     75,    58,    77,    94,    70,    62,    59,    60,    59,   864,
2519    111,     4,     5,    64,    80,   870,    93,    59,    60,   874,
2520      3,     4,     5,     6,    75,    75,    54,    77,    94,    93,
2521    879,     4,     5,   500,    62,   757,   503,    74,    95,  1211,
2522    507,   763,   498,   770,   771,   772,    74,   870,    27,   872,
2523    873,   874,    31,   520,   909,    48,   911,   912,    41,  1264,
2524    915,  1266,    74,    56,    57,    88,   533,    90,   909,    92,
2525    537,    54,    74,    56,    57,    48,  1004,    74,   983,  1349,
2526     59,    60,  1286,    56,    57,    64,   909,    80,    59,    47,
2527    913,   914,   915,   870,    11,  1365,   109,   874,   565,   954,
2528     59,    60,   558,  1266,   571,    88,    59,    80,   564,   831,
2529     59,    60,   967,   108,   137,    54,   139,   108,   973,   108,
2530   1324,  1110,  1111,    83,    84,   980,   985,   986,    86,    87,
2531   1004,   954,   909,    91,    92,    93,    94,   992,   915,    59,
2532     60,  1015,   864,    54,   108,   601,    74,    33,   870,  1138,
2533   1139,    62,   874,     4,     5,  1014,    54,   980,    59,    60,
2534   1015,   108,  1068,    74,    62,  1015,     4,     5,   996,   992,
2535   1025,   109,  1027,  1015,  1002,  1003,    74,   954,  1006,  1007,
2536    109,  1451,  1010,     4,     5,   111,  1114,   909,   111,   911,
2537    983,    27,  1015,   915,     4,     5,   108,    48,    59,    60,
2538   1055,  1471,  1025,   980,  1027,    56,    57,    74,    74,    54,
2539     48,    74,   111,  1068,   111,   992,   108,   108,    56,    57,
2540      3,     4,     5,   108,  1015,    58,   108,    48,    54,    80,
2541   1500,     8,   954,   111,    93,    56,    57,  1465,  1015,    47,
2542     64,  1465,    80,    59,    54,   967,    56,    57,  1025,    93,
2543   1027,   973,   109,   440,   441,   442,    54,  1112,   980,    60,
2544   1530,   147,   148,   149,    36,    64,   108,    64,  1538,  1122,
2545    992,    54,    64,    56,    57,    58,     8,     9,  1133,    60,
2546    303,   108,    14,    62,    64,  1140,   108,  1110,  1111,  1112,
2547    108,  1133,   111,   108,   180,  1133,    64,    64,  1172,    93,
2548     59,    62,  1176,  1025,    36,  1027,  1469,    62,  1167,  1168,
2549   1133,  1170,  1171,    45,  1173,  1138,  1139,  1140,   341,     4,
2550      5,  1176,   108,     8,     9,    75,  1176,    75,    75,    14,
2551    108,    75,   108,  1055,  1176,  1112,    62,   108,     3,     4,
2552      5,     6,  1133,    28,   108,    30,   108,     3,     4,     5,
2553    108,    36,    59,  1176,    33,  1559,  1133,   108,    62,  1264,
2554     45,  1266,   108,  1140,    94,   108,   111,  1266,    88,    54,
2555    111,    56,    57,   840,   830,   831,    41,    74,    47,   108,
2556    836,   108,    60,    48,    59,  1176,   111,   111,   109,   108,
2557   1112,    56,    57,   108,   850,   108,   852,   108,   854,  1176,
2558     56,    57,  1257,   426,   427,    64,   109,   874,    93,    64,
2559   1265,   434,  1267,    59,    59,  1257,   108,   108,  1140,  1274,
2560     93,    93,    93,    88,   108,  1267,    93,   109,  1283,  1267,
2561   1469,   108,  1274,   109,  1257,     8,  1274,  1296,  1297,  1443,
2562    108,   897,   108,    33,  1267,     3,     4,     5,   111,   111,
2563    108,  1274,   109,     7,     8,     9,   108,  1446,  1447,   108,
2564     14,    80,    81,    82,    83,    84,  1257,   108,   108,   148,
2565    149,   108,   108,   108,   497,   498,  1267,    31,  1306,  1307,
2566   1257,   937,    36,  1274,   108,    64,     3,     4,     5,    54,
2567   1267,    45,   108,   108,   108,    62,    47,  1274,    56,    57,
2568     58,   180,   111,   108,   108,   108,   973,   530,    96,   532,
2569     62,    60,   535,   536,    62,   538,   539,   540,   541,   542,
2570    543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
2571    553,   554,   555,   556,    60,   558,  1395,  1396,  1397,    56,
2572     57,   564,     9,    16,     3,     4,     5,  1375,     7,     8,
2573      9,    60,   108,   108,   440,   441,   442,    93,     3,     4,
2574      5,  1283,   108,   108,   108,  1470,   108,  1422,    93,    60,
2575   1469,   594,  1427,  1428,  1429,    60,    64,  1432,   601,    54,
2576     93,   111,    93,    17,    60,  1427,  1428,   107,    54,  1427,
2577   1432,    97,   108,  1448,  1432,  1454,  1455,    56,    57,  1422,
2578    623,   624,    60,    80,  1427,  1428,  1429,   108,   108,  1432,
2579   1465,    56,    57,     3,     4,     5,   639,  1472,   108,    11,
2580     60,    60,    60,  1446,  1447,    93,  1481,   104,    59,    64,
2581   1472,    60,    11,   312,  1472,    60,  1427,  1428,   108,  1481,
2582     11,  1432,  1465,  1481,   108,  1422,   108,    60,     0,  1472,
2583   1427,  1428,  1429,     0,  1509,  1432,   133,     0,  1481,   413,
2584    683,     2,  1363,  1522,    54,   142,    56,    57,  1124,   637,
2585   1126,   909,  1128,  1140,  1502,   161,  1531,  1496,   161,   748,
2586   1122,  1472,    94,   139,  1348,  1569,  1509,  1201,  1465,  1531,
2587   1481,   282,  1265,  1531,   895,  1472,     3,     4,     5,   683,
2588      7,     8,     9,   224,  1481,   890,  1154,   978,  1531,  1015,
2589    748,   188,  1174,   620,  1569,   568,   739,     3,     4,     5,
2590   1187,  1188,  1189,  1190,    31,    14,  1448,  1569,   915,    36,
2591    888,  1569,  1509,    22,   185,   758,   759,   329,   761,   124,
2592   1531,  1267,  1134,  1465,  1538,   222,  1569,    54,  1486,    56,
2593     57,    58,  1548,   776,  1531,  1517,     3,     4,     5,     6,
2594   1550,  1283,   441,   442,     4,   962,  1222,   954,   245,    -1,
2595     56,    57,    -1,    -1,    14,   798,    65,    -1,  1569,    -1,
2596      3,     4,     5,  1250,    24,     3,     4,     5,     6,    -1,
2597     30,    31,  1569,    33,    41,    35,   103,   104,   105,    -1,
2598     -1,    -1,    42,    -1,    -1,    -1,    -1,   830,   831,    56,
2599     57,    -1,   835,   836,    -1,    55,    -1,    57,     3,     4,
2600      5,   500,    -1,    41,   503,    65,    -1,   850,    -1,   852,
2601     -1,   854,    72,    56,    57,   124,    54,    -1,    56,    57,
2602    519,   520,    60,    83,    84,     3,     4,     5,     6,    -1,
2603     -1,    -1,    70,    -1,   533,    -1,    -1,   146,  1325,    -1,
2604    337,   385,    80,    48,   887,    -1,   106,    -1,    -1,    -1,
2605     88,    56,    57,    -1,   897,    93,    -1,    -1,    -1,    -1,
2606     -1,   715,    -1,    41,    -1,    -1,    -1,    -1,    -1,   912,
2607     48,  1358,    -1,    -1,   134,    -1,   136,    -1,    56,    57,
2608    140,    -1,   925,   143,   144,    -1,    -1,   147,   148,   149,
2609    434,     3,     4,     5,   937,   594,    -1,    -1,   395,    -1,
2610     -1,   161,   756,  1110,  1111,  1112,    -1,    -1,   762,    -1,
2611     88,   954,    -1,   222,   223,    -1,    -1,    -1,   178,   179,
2612    180,     3,     4,     5,     6,   234,    -1,     3,     4,     5,
2613      6,  1138,  1139,  1140,    -1,  1422,    48,     3,     4,     5,
2614     -1,  1428,  1429,    -1,    56,    57,    -1,   207,    -1,    -1,
2615     -1,    -1,   995,    -1,     3,     4,     5,     6,    -1,    41,
2616     -1,  1448,    -1,   223,    -1,    41,    48,    -1,    -1,    -1,
2617    467,   231,    -1,    -1,    56,    57,    -1,    -1,    54,    -1,
2618     56,    57,   242,    -1,    60,    -1,    62,    -1,    54,    -1,
2619     56,    57,    41,    -1,    70,   304,    -1,   494,    80,    48,
2620     -1,  1044,  1045,    -1,    80,  1048,    88,    56,    57,   915,
2621     -1,   865,    88,   867,    -1,    -1,    -1,    93,    -1,    -1,
2622    280,   281,  1509,    -1,    -1,  1068,    -1,    -1,     7,     8,
2623      9,    80,    -1,    -1,    -1,    14,    -1,   346,  1525,    88,
2624     -1,    -1,    -1,   587,     4,     5,   355,    -1,   954,     9,
2625    594,    -1,    31,    -1,    -1,    -1,    -1,    36,    -1,   368,
2626   1547,    -1,    -1,    -1,    -1,   325,    45,  1554,    -1,   329,
2627     -1,   331,   332,   333,    -1,    -1,    -1,   776,    -1,    -1,
2628     -1,  1124,   342,  1126,   581,  1128,    -1,    47,    -1,   289,
2629    290,    -1,    -1,  1136,    54,    -1,    56,    57,    -1,    -1,
2630    597,    -1,  1145,  1146,    -1,   305,    -1,  1150,   308,    -1,
2631     70,   311,    -1,    -1,   314,    -1,   376,    -1,   318,    -1,
2632     80,    -1,  1165,  1166,    -1,   385,   326,    -1,   388,   389,
2633     90,    -1,    -1,    93,    94,     3,     4,     5,     6,   399,
2634     -1,    -1,   402,    -1,    -1,    -1,    -1,   407,  1191,    -1,
2635     -1,    -1,    -1,    -1,    -1,   699,    -1,    -1,   467,    -1,
2636     -1,     3,     4,     5,     6,    -1,    -1,    -1,    -1,  1376,
2637   1024,    -1,  1026,    41,   873,   874,   436,    -1,   438,  1222,
2638    440,   441,   442,    -1,    -1,    -1,   446,    -1,    56,    57,
2639     82,   451,    -1,    -1,   454,    -1,    38,    39,    -1,    41,
2640     -1,    -1,    -1,  1246,  1110,  1111,  1112,    -1,    -1,    -1,
2641    470,    -1,    54,   757,    56,    57,   915,    -1,    -1,   763,
2642     88,    -1,    -1,   532,    -1,     4,     5,  1081,    -1,     8,
2643      9,    -1,  1138,  1139,  1140,    14,    -1,    -1,    -1,  1446,
2644   1447,  1448,    -1,  1286,    -1,    -1,    -1,    -1,   508,   509,
2645    510,   511,     3,     4,     5,   954,     7,    36,    -1,  1302,
2646     -1,    -1,    -1,   155,    -1,    -1,    45,   576,    47,    -1,
2647     -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    30,
2648     -1,  1324,    -1,    -1,   176,    -1,    37,    -1,     3,     4,
2649      5,    70,     7,     8,     9,    -1,    -1,   189,    -1,    -1,
2650     -1,    80,    -1,    54,  1158,    56,    57,    -1,   568,  1163,
2651    570,    90,    -1,    -1,    93,    94,    31,    -1,   518,   519,
2652     -1,    36,   582,    -1,   584,   585,   870,   587,    -1,    -1,
2653    874,    -1,    -1,  1376,   594,    -1,   645,    -1,   598,    -1,
2654     -1,    56,    57,    -1,    -1,    -1,    -1,    -1,   657,    -1,
2655   1393,  1394,    -1,   613,    -1,    -1,    -1,    -1,    -1,  1402,
2656     -1,  1215,    -1,    -1,    -1,   909,    -1,     3,     4,     5,
2657      6,   915,    -1,     9,   683,     4,     5,   637,    -1,     8,
2658      9,   878,    -1,   880,   644,    14,    -1,  1430,    -1,    -1,
2659     -1,    -1,    -1,   653,   654,   655,   656,   657,   658,    28,
2660     -1,    30,    -1,    -1,    -1,    41,    -1,    36,    -1,    -1,
2661    954,    47,  1111,  1112,    -1,    -1,    45,    -1,    54,    -1,
2662     56,    57,    -1,   920,    -1,    54,    -1,    56,    57,    58,
2663     -1,    -1,    -1,    -1,    70,   695,   980,    -1,    -1,   699,
2664   1139,  1140,    -1,    -1,    80,    -1,   706,   707,   992,   709,
2665     -1,    -1,    88,    -1,    90,    -1,    -1,    93,    94,    -1,
2666     -1,  1315,  1316,    -1,    93,    -1,     3,     4,     5,     6,
2667   1376,    -1,     9,    -1,    -1,    -1,    -1,   737,  1332,    -1,
2668    740,  1025,   742,  1027,    -1,    -1,    -1,   747,   748,   749,
2669     -1,    -1,    -1,     3,     4,     5,     6,   757,    -1,     9,
2670     -1,    -1,    -1,   763,    41,    -1,    -1,  1004,    -1,    -1,
2671    770,   771,   772,    -1,    -1,    -1,  1559,    54,    -1,    56,
2672     57,    -1,   782,    78,    79,    80,    81,    82,    83,    84,
2673     -1,    41,    -1,    70,  1388,  1389,    -1,    47,    -1,    -1,
2674   1446,  1447,  1448,    80,    54,    -1,    56,    57,    -1,    -1,
2675     -1,    88,   444,  1407,  1408,    -1,    93,   449,    -1,    -1,
2676     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1112,    -1,
2677     80,    -1,     4,     5,   178,   179,   180,     9,    88,    -1,
2678     90,    -1,   474,    93,    94,    -1,   895,    -1,   480,    -1,
2679   1087,    -1,    -1,     4,     5,   855,  1140,   857,    -1,   908,
2680    492,   493,    -1,   495,   864,    -1,    -1,    -1,   868,    -1,
2681    870,    -1,   872,   873,   874,    47,    -1,  1114,    -1,   879,
2682     -1,    -1,    54,    -1,    56,    57,    -1,    -1,     7,     8,
2683      9,    -1,    -1,    -1,    -1,    14,    47,    -1,    70,    -1,
2684     -1,    -1,    -1,    54,   844,    56,    57,    -1,    80,   909,
2685     -1,   911,    31,   913,   914,   915,    -1,    36,    90,    70,
2686     -1,    93,    94,     7,     8,     9,    45,    -1,    -1,    80,
2687     14,    -1,   872,   873,    -1,  1172,    -1,  1376,    -1,    90,
2688     -1,    60,    93,    94,    -1,    -1,     4,    31,    -1,    -1,
2689     -1,    -1,    36,    -1,   954,    -1,    14,    -1,   590,   591,
2690     -1,    45,    -1,   595,    -1,    23,    24,   967,    -1,    -1,
2691     -1,    -1,    30,    31,    -1,    33,    60,    35,    -1,    -1,
2692    980,    -1,    -1,   983,    42,     3,     4,     5,     6,    -1,
2693     -1,     9,   992,    -1,    -1,    -1,  1045,    55,    -1,    57,
2694     -1,    -1,    -1,    -1,    -1,  1005,    -1,    65,  1447,  1448,
2695     -1,    -1,    -1,    -1,    72,  1015,    -1,    -1,    -1,    -1,
2696     57,    -1,    59,    41,    -1,  1025,    84,  1027,    65,    47,
2697     -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
2698     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2699     83,    84,    70,    -1,    -1,  1055,    -1,    -1,    -1,    -1,
2700   1060,  1061,    80,  1063,    -1,    -1,    -1,    -1,    -1,    -1,
2701     88,    -1,    90,    -1,    -1,    93,    94,    -1,   136,    -1,
2702     -1,  1130,   140,    -1,    -1,    -1,   144,  1136,    -1,   147,
2703    148,   149,   436,    -1,   438,    -1,   440,   441,   442,    -1,
2704     -1,    -1,    -1,   161,    -1,    -1,    -1,   451,  1108,  1109,
2705   1110,  1111,  1112,    -1,    -1,    -1,  1116,    -1,    -1,    -1,
2706    178,   179,   180,    -1,    -1,    -1,  1066,    -1,    -1,    -1,
2707    167,    -1,   764,    -1,   766,    -1,    -1,    -1,  1138,  1139,
2708   1140,    -1,     3,     4,     5,     6,    -1,    -1,    -1,   207,
2709     -1,    -1,    -1,    -1,    -1,    -1,    -1,   194,    -1,    -1,
2710     -1,    -1,    -1,    -1,    -1,   202,   203,    -1,    -1,  1169,
2711     -1,    -1,    -1,    -1,  1174,    -1,  1176,    -1,    -1,    -1,
2712     41,  1465,    -1,    -1,   242,    -1,    -1,    48,    -1,    -1,
2713     -1,    -1,    -1,    -1,    -1,    56,    57,    -1,  1138,  1139,
2714     -1,    -1,  1251,  1252,    -1,    -1,   838,   839,    -1,   841,
2715     76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,
2716     -1,    -1,   280,   281,    -1,  1225,  1226,    88,  1228,    -1,
2717     -1,    -1,    -1,    -1,    -1,    -1,    -1,   869,    -1,    -1,
2718     -1,    -1,    -1,    -1,     3,     4,     5,     6,     3,     4,
2719      5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
2720     -1,    -1,    -1,    -1,  1264,  1265,  1266,   325,    -1,    -1,
2721     -1,   329,    -1,   331,   332,   333,    31,    -1,    -1,    -1,
2722    338,    36,    41,  1283,   342,   917,    41,    -1,    -1,    -1,
2723     45,  1340,    47,   427,    -1,    54,    -1,    56,    57,    54,
2724    434,    56,    57,    62,     3,     4,     5,     6,    -1,    -1,
2725      9,    70,    -1,  1362,  1363,    70,    -1,  1257,   376,    -1,
2726     -1,    80,    -1,    -1,    -1,    80,    -1,   385,    -1,    88,
2727    388,   389,    -1,    88,    93,    90,    -1,    -1,    93,    94,
2728     -1,   399,    41,    -1,   402,    -1,    -1,   979,    -1,   407,
2729     -1,    -1,   389,   390,    -1,    54,    -1,    56,    57,   991,
2730     -1,    -1,   706,   707,   498,   709,    -1,    -1,    -1,    -1,
2731     -1,    70,    -1,    -1,    -1,    -1,  1376,    -1,   436,    -1,
2732    438,    80,   440,   441,   442,    -1,    -1,    -1,   446,    88,
2733     -1,  1440,    -1,   451,    93,    -1,   454,    -1,    -1,    -1,
2734     -1,    -1,     1,   747,     3,     4,     5,     6,   445,     8,
2735     -1,   469,   470,    -1,    -1,   452,   453,    -1,    -1,   456,
2736     -1,    -1,    -1,   460,   558,    -1,    -1,    -1,    -1,    -1,
2737    564,    -1,    -1,    -1,    -1,    -1,   473,    -1,    -1,    -1,
2738     -1,    -1,    41,    -1,  1076,    -1,  1446,  1447,  1448,    48,
2739    508,   509,   510,   511,    -1,    54,    -1,    56,    57,    -1,
2740    594,    -1,    -1,    -1,    -1,  1465,    -1,   601,    -1,     1,
2741   1470,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
2742     -1,    -1,    14,  1115,    -1,    -1,    -1,    -1,    -1,    88,
2743     -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    31,
2744     32,    -1,    -1,    -1,    36,    -1,  1446,  1447,    -1,    41,
2745    568,    -1,   570,    45,    46,    -1,    48,    -1,    -1,    -1,
2746     -1,    -1,    54,    -1,    56,    57,   584,   585,    60,   587,
2747     62,    -1,    -1,    -1,    -1,    -1,   594,    -1,    70,    -1,
2748     -1,    -1,    -1,    -1,    -1,    -1,  1178,    -1,    80,   607,
2749   1182,    -1,    -1,    -1,    -1,   613,    88,    -1,    -1,    -1,
2750     -1,    93,     4,     5,    -1,     7,     8,     9,    -1,   913,
2751    914,   915,    14,    -1,    -1,    -1,    -1,   614,    -1,   637,
2752     -1,    -1,    -1,    -1,    -1,  1217,    28,   645,    30,    31,
2753     -1,    -1,    -1,    -1,    36,   653,   654,   655,   656,   657,
2754    658,    -1,    -1,    45,    -1,    -1,    48,    -1,    -1,    -1,
2755    954,    -1,    54,    -1,    56,    57,    -1,   654,   676,   656,
2756    657,     4,     5,    -1,    -1,     8,     9,    -1,    -1,    -1,
2757     -1,    14,    -1,    -1,    -1,    -1,    -1,   695,    -1,   983,
2758     -1,   699,   776,    -1,    -1,    28,    -1,    30,   706,   707,
2759     -1,   709,    -1,    36,    -1,    -1,    -1,    -1,   695,  1291,
2760     -1,    -1,    45,  1295,    -1,    -1,    -1,    -1,    -1,    -1,
2761     -1,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,   737,
2762    717,    -1,   740,   720,   742,  1317,  1318,    -1,    -1,   747,
2763    748,   749,    -1,    -1,    -1,    -1,   830,   831,    -1,   757,
2764     -1,    -1,   836,     4,    -1,   763,    -1,    -1,    -1,    -1,
2765     -1,   748,   770,   771,   772,    -1,   850,   754,   852,    -1,
2766    854,   331,   332,   333,   782,    -1,    -1,    -1,    -1,    30,
2767     31,    -1,    33,    -1,    35,    -1,    -1,    -1,    -1,    -1,
2768     -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2769     -1,    -1,    -1,    -1,    55,    -1,    57,    -1,    -1,    -1,
2770     -1,    -1,    -1,   897,  1108,  1109,  1110,  1111,  1112,    -1,
2771     -1,    -1,  1116,    -1,    -1,    -1,     4,     5,    -1,    80,
2772      8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,
2773     -1,    -1,    -1,    -1,  1138,  1139,  1140,   855,    -1,   857,
2774     28,    -1,    30,   937,    -1,    -1,   864,    -1,    36,    -1,
2775    868,    -1,   870,    -1,   872,   873,   874,    45,    -1,    -1,
2776    954,   879,    -1,    -1,    -1,  1169,    54,    -1,    56,    57,
2777     -1,    -1,   133,   134,    -1,   136,    -1,    -1,    -1,   140,
2778     -1,   142,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
2779     -1,   909,    -1,   911,    -1,   913,   914,   915,    -1,    -1,
2780    161,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
2781     -1,   908,    14,     3,     4,     5,     6,   178,   179,   180,
2782     -1,  1225,  1226,    -1,  1228,    -1,    28,   188,    30,    31,
2783     -1,    -1,    -1,    -1,    36,    -1,   954,    -1,    -1,    41,
2784     -1,    -1,    -1,    45,    -1,    -1,   207,    -1,    -1,   967,
2785     -1,    41,    54,    -1,    56,    57,    -1,    47,    60,    -1,
2786    978,    -1,   980,    -1,    54,   983,    56,    57,    70,    -1,
2787     -1,    -1,    -1,    -1,   992,    -1,    -1,    -1,    80,    -1,
2788     70,   242,    -1,    -1,    -1,    -1,    88,    -1,   985,   986,
2789     80,    93,    -1,    -1,    -1,    -1,    -1,  1015,    88,    -1,
2790     90,    -1,    -1,    93,    94,    -1,    -1,  1025,    -1,  1027,
2791    331,   332,   333,    -1,   584,   585,    -1,  1014,    -1,    -1,
2792      3,     4,     5,     6,     7,     8,     9,    -1,    -1,    -1,
2793   1124,    14,  1126,    -1,  1128,    -1,    -1,  1055,    -1,    -1,
2794     -1,    -1,  1060,  1061,    -1,  1063,    -1,    -1,    31,    -1,
2795     -1,   312,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,
2796     -1,    -1,    45,    -1,    47,    -1,    -1,    -1,   329,    -1,
2797     -1,    54,  1376,    56,    57,    -1,   337,    -1,    -1,    -1,
2798     -1,   342,    -1,   653,    -1,   655,   656,    70,   658,    -1,
2799   1108,  1109,  1110,  1111,  1112,    -1,    -1,    80,  1116,    -1,
2800     -1,    -1,    -1,    -1,  1122,    88,    -1,    90,    -1,    -1,
2801     93,    94,    -1,    -1,    -1,   376,    -1,    -1,    -1,    -1,
2802   1138,  1139,  1140,    -1,    -1,   695,    -1,   388,  1222,    -1,
2803     -1,    -1,    -1,    -1,    -1,    -1,  1154,    -1,   399,    -1,
2804     -1,   402,  1446,  1447,  1448,    -1,   407,    -1,    -1,    -1,
2805     -1,  1169,    -1,    -1,    -1,    -1,  1174,    -1,  1176,    -1,
2806      3,     4,     5,     6,    -1,    -1,     9,    -1,    -1,    -1,
2807   1167,  1168,    -1,  1170,  1171,   436,  1173,   438,    -1,   440,
2808    441,   442,    -1,    -1,    -1,   446,    -1,    -1,    -1,    -1,
2809    451,     4,     5,   454,     7,     8,     9,    -1,    41,    12,
2810     -1,    14,    -1,    -1,    -1,    -1,    -1,  1225,  1226,   470,
2811   1228,    54,   782,    56,    57,    28,    -1,    30,    31,    -1,
2812     -1,    -1,    -1,    36,    -1,    -1,    -1,    70,    -1,    -1,
2813     -1,    -1,    45,    -1,    -1,  1253,    -1,    80,    -1,   500,
2814     -1,    54,   503,    56,    57,    88,  1264,  1265,  1266,    -1,
2815     93,    -1,    -1,    -1,    -1,    -1,    -1,   518,   519,   520,
2816     -1,    -1,    -1,   584,   585,  1283,   587,    -1,  1265,  1266,
2817     -1,    -1,   533,   594,    -1,    -1,    -1,    -1,    -1,    -1,
2818     -1,    -1,  1376,    -1,    -1,   855,    -1,   857,    -1,    -1,
2819     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   868,  1296,
2820   1297,    -1,   872,   873,    69,    70,    71,    72,    73,    74,
2821     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2822    581,    -1,    -1,    -1,     3,     4,     5,     6,     4,    -1,
2823      9,    -1,   653,   594,   655,   656,    -1,   658,    -1,    -1,
2824     -1,    -1,    -1,   913,   914,    -1,    -1,    -1,    -1,    -1,
2825     -1,    -1,   613,    -1,    30,    31,    -1,    33,  1376,    35,
2826     -1,    -1,    41,    -1,    -1,    -1,    42,    -1,    47,    -1,
2827     -1,    -1,    -1,    -1,   695,    54,   637,    56,    57,    55,
2828     -1,    57,    -1,   644,    -1,    -1,    -1,    -1,    -1,    -1,
2829     -1,    70,   653,   654,   655,   656,    -1,    -1,  1395,  1396,
2830   1397,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
2831     -1,    90,    -1,    -1,    93,    94,     3,     4,     5,     6,
2832     -1,    -1,     9,    -1,    -1,    -1,    -1,    -1,  1446,  1447,
2833   1448,    -1,    -1,    -1,   695,    -1,    -1,    -1,   699,    -1,
2834     -1,    -1,    -1,    -1,    -1,   706,   707,  1465,   709,    -1,
2835     -1,    -1,  1470,    -1,    41,    -1,    -1,  1454,  1455,    -1,
2836    136,   782,    -1,    -1,   140,    -1,    -1,    54,   144,    56,
2837     57,   147,   148,   149,    -1,    -1,    -1,    -1,    -1,   740,
2838     -1,   742,    -1,    70,    -1,   161,   747,   748,   749,    -1,
2839     -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,
2840     -1,    88,   178,   179,   180,    -1,    93,    -1,    -1,    -1,
2841     -1,    -1,    -1,    -1,    -1,   776,    -1,    -1,    -1,    -1,
2842     -1,    -1,    -1,    -1,    -1,  1522,    -1,    -1,    -1,    -1,
2843     -1,   207,    -1,    -1,   855,    -1,   857,    -1,  1108,  1109,
2844   1110,  1111,    -1,    -1,    -1,    -1,  1116,   868,    -1,    -1,
2845     -1,   872,   873,   874,    -1,    -1,    -1,    -1,    -1,    -1,
2846     -1,    -1,    -1,    -1,    -1,    -1,   242,    -1,  1138,  1139,
2847     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2848     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2849     83,    84,   913,   914,   915,    -1,     3,     4,     5,     6,
2850      7,     8,     9,    -1,    -1,    12,    -1,    14,    -1,    -1,
2851     -1,   872,   873,   874,    -1,    -1,    -1,   878,   111,    -1,
2852     -1,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,
2853     -1,    -1,    -1,   954,    41,    -1,    -1,    -1,    45,    -1,
2854     47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
2855     57,    -1,   913,   914,   915,  1225,  1226,    -1,  1228,   920,
2856     -1,    -1,   338,    70,    -1,    -1,   342,    -1,    -1,    -1,
2857     -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,
2858     -1,    88,    -1,    90,    -1,    -1,    93,    94,    -1,    -1,
2859     -1,    -1,    -1,   954,    -1,    -1,     3,     4,     5,     6,
2860      7,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,
2861     -1,    -1,   388,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2862     -1,    -1,   983,   399,    31,    -1,   402,    -1,    -1,    36,
2863     -1,   407,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,
2864     47,    -1,    -1,  1004,    -1,    -1,    -1,    54,    -1,    56,
2865     57,    -1,    33,    -1,  1015,    -1,    -1,    -1,    -1,    -1,
2866    436,    -1,   438,    70,   440,   441,   442,    -1,    -1,    -1,
2867    446,    -1,    -1,    80,    55,   451,    -1,    -1,   454,    -1,
2868     -1,    88,    -1,    -1,    -1,    -1,    93,  1108,  1109,  1110,
2869   1111,  1112,    -1,    -1,   470,  1116,    -1,    -1,    -1,    -1,
2870     -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
2871     -1,    -1,    12,    -1,    14,    -1,    -1,  1138,  1139,  1140,
2872     -1,    -1,    -1,    -1,    -1,    -1,  1087,    -1,    28,    -1,
2873     30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
2874     -1,    41,    -1,    -1,    -1,    45,    -1,  1108,  1109,  1110,
2875   1111,  1112,    -1,  1114,    54,  1116,    56,    57,     3,     4,
2876      5,     6,     7,     8,     9,    -1,   147,   148,   149,    14,
2877     70,    -1,    -1,    -1,    -1,    -1,    -1,  1138,  1139,  1140,
2878     80,    -1,    -1,    28,    -1,    30,    31,    -1,    88,    -1,
2879     -1,    36,    -1,    93,    -1,    -1,    41,   178,   179,   180,
2880     45,    -1,    47,    -1,  1225,  1226,   582,  1228,  1169,    54,
2881     -1,    56,    57,  1174,    -1,  1176,    -1,     3,     4,     5,
2882      6,    -1,    -1,     9,    -1,    70,   207,    -1,    -1,    -1,
2883     -1,    -1,    -1,    -1,    -1,    80,    -1,   613,    -1,    -1,
2884     -1,    -1,    -1,    88,    55,    90,    -1,    -1,    93,    94,
2885     -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,
2886     -1,     4,    -1,    -1,  1225,  1226,    -1,  1228,    54,    80,
2887     56,    57,    83,    -1,    -1,    -1,    -1,   653,   654,   655,
2888    656,    -1,    -1,    -1,    70,    -1,    -1,    30,    31,    -1,
2889     -1,    -1,    35,   104,    80,   106,    -1,    -1,    -1,    42,
2890    281,    -1,    88,  1264,  1265,  1266,    -1,    93,    -1,    -1,
2891     -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,   695,
2892     -1,    -1,    -1,   699,    -1,    -1,    -1,    -1,    -1,    -1,
2893    706,   707,    -1,   709,    70,    71,    72,    73,    74,    75,
2894     76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,
2895    331,   332,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2896      3,     4,     5,     6,   740,    -1,   742,   178,   179,   180,
2897     -1,   747,   748,   749,    -1,    -1,    -1,   188,     4,     5,
2898     -1,     7,     8,     9,    -1,    -1,    12,    -1,    14,    -1,
2899     -1,    -1,    -1,   136,    -1,    -1,   207,   140,    41,    -1,
2900     -1,   144,    28,    -1,    30,    31,    -1,   388,    -1,    -1,
2901     36,    54,    -1,    56,    57,  1376,    -1,    60,   161,    45,
2902    231,    47,    -1,    -1,    -1,    -1,    -1,    70,    54,    -1,
2903     56,    57,    -1,    -1,   245,   178,   179,    80,    -1,    -1,
2904     -1,    -1,    -1,    -1,    70,    88,    -1,    -1,    -1,    -1,
2905     93,    -1,    -1,    -1,    80,   436,    -1,   438,    -1,   440,
2906    441,   442,    -1,    -1,    90,   446,    -1,    93,    94,    -1,
2907    451,    -1,    -1,   454,    -1,     1,    -1,     3,     4,     5,
2908      6,     7,     8,     9,    -1,  1446,  1447,  1448,    14,    -1,
2909     -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,   242,
2910      9,    -1,    28,   879,    30,    31,    32,    -1,    -1,  1470,
2911     36,    37,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,
2912     46,    -1,    48,    -1,    -1,    -1,   337,   338,    54,    -1,
2913     56,    57,    41,    -1,    60,    -1,    62,   913,   914,   915,
2914     -1,    -1,    -1,    -1,    70,    54,    -1,    56,    57,    -1,
2915     -1,    -1,    -1,    -1,    80,    -1,    -1,     3,     4,     5,
2916      6,    70,    88,     9,    -1,    -1,    -1,    93,    -1,    -1,
2917     -1,    80,    -1,    -1,    -1,    -1,    -1,   388,   954,    88,
2918     -1,    -1,    -1,   109,    93,    -1,    -1,    -1,    -1,   570,
2919     -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,   342,
2920     -1,    -1,    -1,   584,   585,    -1,   587,   983,    54,    -1,
2921     56,    57,    -1,   594,     3,     4,     5,     6,    -1,    -1,
2922      9,    -1,    -1,    -1,    70,   436,    -1,   438,    -1,   440,
2923    441,   442,   613,    -1,    80,   446,    -1,    -1,    -1,  1015,
2924    451,    -1,    88,   454,    -1,    -1,    -1,    93,    -1,    -1,
2925     -1,    -1,    41,    -1,    -1,    -1,   399,    -1,    -1,   402,
2926     -1,    -1,    -1,    -1,   407,    54,    -1,    56,    57,    -1,
2927     -1,    -1,   653,    -1,   655,   656,    -1,   658,    -1,    -1,
2928     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2929     -1,    80,    -1,   436,    -1,   438,    -1,    -1,    -1,    88,
2930     14,    -1,    -1,    -1,    93,    -1,    -1,    -1,   451,    23,
2931     24,    -1,    -1,    -1,   695,    -1,    30,    31,    -1,    33,
2932     -1,    -1,    -1,    -1,    -1,   706,   707,   470,   709,    -1,
2933     -1,    -1,  1108,  1109,  1110,  1111,  1112,    -1,    -1,    -1,
2934   1116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2935     -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2936     -1,    -1,  1138,  1139,  1140,    -1,   747,    -1,    -1,    -1,
2937     -1,    -1,     4,     5,    -1,    -1,     8,     9,    -1,    -1,
2938     -1,    -1,    14,    -1,    -1,    -1,   597,   598,    -1,   770,
2939    771,   772,    -1,  1169,    -1,    -1,    -1,    -1,  1174,    -1,
2940   1176,   782,   613,    -1,    36,    -1,    -1,    -1,    -1,    -1,
2941    124,    -1,   126,    45,    -1,    47,    -1,    -1,    -1,   133,
2942    134,    -1,    54,    -1,    56,    57,   140,    -1,   142,   143,
2943    144,    -1,    -1,   147,   148,   149,    -1,    -1,    70,    -1,
2944     -1,    -1,   653,    -1,   655,   656,    -1,    -1,    80,  1225,
2945   1226,    -1,  1228,    -1,    -1,    -1,    -1,    -1,    90,    -1,
2946     -1,    93,    94,     3,     4,     5,     6,    -1,    -1,    -1,
2947     -1,    -1,    -1,    -1,   855,    -1,   857,    -1,    -1,    -1,
2948     -1,    -1,    -1,    -1,   695,    -1,    -1,   868,  1264,  1265,
2949   1266,   872,   873,   874,    -1,   706,   707,    -1,   709,    -1,
2950     -1,    41,    -1,    -1,     3,     4,     5,     6,   222,   223,
2951     -1,   654,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
2952     -1,    -1,    62,   734,     3,     4,     5,     6,   242,    -1,
2953     70,    -1,   913,   914,   915,    -1,   747,    -1,    -1,    -1,
2954     80,    -1,    41,    -1,    -1,    -1,    -1,    -1,    88,    -1,
2955     -1,    -1,    -1,    93,    -1,    54,   699,    56,    57,    -1,
2956     -1,    -1,    41,   706,   707,    -1,   709,   281,    -1,    -1,
2957     -1,    70,    -1,   954,    -1,    54,    -1,    56,    57,    -1,
2958     -1,    80,    -1,    62,    -1,    -1,    -1,    -1,    -1,    88,
2959     -1,    70,    -1,    -1,    93,    -1,    -1,   740,    -1,   742,
2960   1376,    80,   983,    -1,   747,   748,   749,    -1,    -1,    88,
2961     -1,    -1,    -1,    -1,    93,   329,    -1,   331,   332,    -1,
2962     -1,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
2963     -1,    -1,    -1,    14,    72,    73,    74,    75,    76,    77,
2964     78,    79,    80,    81,    82,    83,    84,    28,    -1,    30,
2965     31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
2966     41,    -1,   376,    -1,    45,    -1,    -1,   878,   879,   880,
2967   1446,  1447,  1448,    54,    -1,    56,    57,    -1,    -1,  1060,
2968   1061,   395,  1063,    -1,    -1,   399,    -1,    -1,   402,    70,
2969     -1,    -1,    -1,   407,  1470,    -1,    -1,    -1,    -1,    80,
2970     -1,    -1,   913,   914,   915,    -1,    -1,    88,    -1,   920,
2971      4,     5,    93,     7,     8,     9,    -1,    -1,    12,    -1,
2972     14,    -1,    -1,    -1,    -1,    -1,    -1,  1108,  1109,  1110,
2973   1111,  1112,    -1,    -1,    28,  1116,    30,    31,     3,     4,
2974      5,     6,    36,   954,    -1,    -1,    -1,    -1,    -1,    -1,
2975     -1,    45,    -1,   467,    -1,   469,    -1,  1138,  1139,  1140,
2976     54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
2977    913,   914,   983,    -1,    -1,    -1,    41,    -1,    -1,    -1,
2978    494,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1169,    54,
2979     -1,    56,    57,  1004,    -1,     1,    -1,     3,     4,     5,
2980      6,     7,     8,     9,    -1,    70,    -1,    -1,    14,    -1,
2981     -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,
2982     -1,    -1,    28,    88,    30,    31,    -1,    -1,    93,    -1,
2983     36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,
2984    983,    -1,    48,    -1,  1225,  1226,    -1,  1228,    54,    -1,
2985     56,    57,    -1,    -1,    60,    -1,   570,     3,     4,     5,
2986      6,    -1,    -1,    -1,    70,    -1,    -1,   581,   582,    -1,
2987    584,   585,  1015,    -1,    80,    -1,  1087,    -1,    -1,    -1,
2988     -1,    -1,    88,  1264,    -1,  1266,    -1,    93,    -1,    -1,
2989     -1,    -1,    -1,    -1,    -1,    41,    -1,  1108,  1109,  1110,
2990   1111,  1112,    -1,  1114,    -1,  1116,    -1,    -1,    54,    -1,
2991     56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2992     -1,    -1,    -1,   637,    70,    -1,    -1,  1138,  1139,  1140,
2993    644,   645,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,
2994     -1,    -1,    88,   657,    -1,    -1,    -1,    93,    -1,    -1,
2995     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1169,    -1,
2996     -1,    -1,   676,    -1,    -1,  1108,  1109,    -1,    -1,    -1,
2997     -1,    -1,    -1,  1116,     3,     4,     5,     6,     7,     8,
2998      9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,
2999     -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,    -1,    28,
3000     -1,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
3001     -1,    -1,    41,    -1,  1225,  1226,    45,  1228,    -1,    -1,
3002    734,    -1,    -1,   737,    -1,    54,  1169,    56,    57,    -1,
3003     -1,  1174,    -1,  1176,    -1,    -1,    -1,    -1,    -1,    -1,
3004     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3005     -1,    80,    -1,  1264,    -1,  1266,   770,   771,   772,    88,
3006     -1,    -1,    -1,    -1,    93,  1446,  1447,  1448,   782,    -1,
3007     -1,    -1,    -1,    -1,     4,     5,    -1,     7,     8,     9,
3008     -1,    -1,  1225,  1226,    14,  1228,    -1,    -1,    -1,  1470,
3009     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,
3010     30,    31,    -1,    -1,    -1,     1,    36,     3,     4,     5,
3011      6,     7,     8,     9,    -1,    45,    12,    -1,    14,    -1,
3012     -1,    -1,  1265,    -1,    54,    -1,    56,    57,    -1,    25,
3013     -1,    27,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
3014     36,   855,    -1,   857,    -1,    41,    -1,    -1,    -1,    45,
3015     -1,    47,    -1,    -1,   868,    -1,    -1,    -1,    54,    -1,
3016     56,    57,    58,    59,    60,  1376,    62,    63,    64,    65,
3017     66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
3018     76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,
3019     86,    87,    88,    -1,    90,    91,    92,    93,    94,    95,
3020     -1,    97,    -1,    -1,    -1,    -1,   102,    -1,    -1,    -1,
3021     -1,   107,   108,   109,    -1,   111,    67,    68,    69,    70,
3022     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3023     81,    82,    83,    84,    -1,  1446,  1447,  1448,    68,    69,
3024     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3025     80,    81,    82,    83,    84,    -1,    -1,    -1,    -1,  1470,
3026     -1,    -1,    -1,    -1,   978,    -1,    -1,    -1,    -1,    -1,
3027     -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
3028      5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
3029     15,  1005,    17,    18,    19,    20,    21,    22,    23,    24,
3030     25,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
3031     35,    36,    -1,    38,    39,    40,    41,    42,    43,    44,
3032     45,    46,    -1,    -1,    49,    50,    51,    52,    53,    54,
3033     -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,
3034     -1,    -1,    67,    -1,    -1,    70,  1060,  1061,    -1,  1063,
3035     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3036     -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,
3037     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3038     -1,    -1,    -1,    -1,   109,   110,    -1,    -1,    -1,    -1,
3039     -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
3040      8,     9,    10,    11,    -1,    13,    14,    15,  1122,    17,
3041     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3042     28,    29,    30,    31,    32,    -1,    34,    35,    36,    -1,
3043     38,    39,    40,    41,    42,    43,    44,    45,    46,    -1,
3044   1154,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3045     58,    -1,    60,    61,    -1,    -1,    -1,    -1,  1172,    67,
3046   1174,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3047     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3048     88,    -1,    -1,    -1,    -1,    93,     1,    95,     3,     4,
3049      5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3050     -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3051     -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,
3052     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3053     45,    -1,    47,    -1,    49,    50,    51,    52,    53,    54,
3054     -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,
3055     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3056     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3057     -1,    86,    87,    88,    -1,    90,    -1,    -1,    93,    94,
3058      1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
3059     11,    12,    13,    14,    -1,   110,    -1,    -1,    -1,    -1,
3060     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
3061     31,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3062     41,    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,
3063     51,    52,    53,    54,    -1,    56,    57,    58,    -1,    -1,
3064     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3065     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3066     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    90,
3067     -1,    -1,    93,    94,     1,    -1,     3,     4,     5,     6,
3068      7,     8,     9,    10,    11,    12,    13,    14,    -1,   110,
3069     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3070     -1,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
3071     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3072     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3073     57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3074     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3075     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3076     87,    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,
3077      6,     7,     8,     9,    10,    11,    -1,    13,    14,    -1,
3078     -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3079     -1,    -1,    28,    29,    30,    31,    32,    -1,    34,    35,
3080     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3081     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3082     56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
3083     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3084     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3085     86,    87,    88,    -1,    -1,    -1,     1,    93,     3,     4,
3086      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3087     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
3088     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3089     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3090     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3091     -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,
3092     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3093     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3094     -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,    94,
3095      1,    -1,     3,     4,     5,     6,    -1,     8,     9,    10,
3096     11,    -1,    13,    14,   109,   110,    -1,    -1,    -1,    -1,
3097     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
3098     -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3099     41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
3100     51,    52,    53,    54,    -1,    56,    57,    58,    -1,    -1,
3101     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3102     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3103     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
3104     -1,    -1,    93,    94,     1,    -1,     3,     4,     5,     6,
3105     -1,     8,     9,    10,    11,    -1,    13,    14,    -1,   110,
3106     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3107     -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
3108     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3109     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3110     57,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3111     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3112     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3113     87,    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,
3114      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3115     -1,    -1,   109,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3116     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3117     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3118     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3119     56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3120     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3121     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3122     86,    87,    88,    -1,    -1,    -1,     1,    93,     3,     4,
3123      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3124     -1,    -1,    -1,   109,   110,    -1,    -1,    -1,    -1,    -1,
3125     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3126     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3127     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3128     -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,
3129     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3130     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3131     -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,
3132      1,    -1,     3,     4,     5,     6,   101,     8,     9,    10,
3133     11,    -1,    13,    14,    -1,   110,    -1,    -1,    -1,    -1,
3134     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
3135     -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3136     41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
3137     51,    52,    53,    54,    -1,    56,    57,    58,    -1,    -1,
3138     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3139     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3140     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
3141     -1,     1,    93,     3,     4,     5,     6,    -1,     8,     9,
3142     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,
3143     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
3144     30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
3145     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3146     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3147     -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3148     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3149     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
3150     -1,    -1,     1,    93,     3,     4,     5,     6,    -1,     8,
3151      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3152    110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3153     29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
3154     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
3155     49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
3156     -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    67,    -1,
3157     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3158     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3159     -1,    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,
3160      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3161     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3162     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3163     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3164     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3165     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3166     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3167     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3168     88,    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,
3169     -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3170     -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3171     -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
3172     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3173     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3174     57,    -1,    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,
3175     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3176     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3177     87,    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,
3178      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3179     -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3180     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3181     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3182     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3183     56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3184     -1,    67,     1,    -1,    70,     4,     5,    -1,    -1,     8,
3185      9,    -1,    78,    79,    80,    14,    -1,    -1,    -1,    -1,
3186     86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    28,
3187     -1,    30,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,
3188     39,    -1,   108,    -1,   110,    -1,    45,    -1,    47,    -1,
3189     -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,
3190     59,    -1,    -1,    -1,    63,    64,    65,    66,    67,    68,
3191     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3192     79,    80,    81,    82,    83,    -1,    -1,    86,    87,    88,
3193     -1,    -1,    91,    -1,     1,    94,     3,     4,     5,     6,
3194     -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3195     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3196     -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
3197     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3198     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3199     57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3200     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3201     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3202     87,    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,
3203      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3204     -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3205     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3206     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3207     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3208     56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3209     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3210     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3211     86,    87,    88,    -1,    -1,    -1,     1,    93,     3,     4,
3212      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3213     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
3214     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3215     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3216     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3217     -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
3218     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3219     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3220     -1,    86,    87,    88,     3,     4,     5,     6,    93,     8,
3221      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3222     -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,
3223     29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
3224     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
3225     49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
3226     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3227      1,    70,     3,     4,     5,     6,     7,     8,     9,    78,
3228     79,    80,    -1,    14,    -1,    -1,    -1,    86,    87,    88,
3229     -1,    -1,    -1,    -1,    93,    -1,    -1,    28,    -1,    30,
3230     31,    32,    -1,    -1,    -1,    36,    37,    -1,    -1,    -1,
3231     41,   110,   111,    -1,    45,    46,    -1,    48,    -1,    -1,
3232     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,
3233     -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
3234      1,    -1,     3,     4,     5,     6,     7,     8,     9,    80,
3235     -1,    -1,    -1,    14,    -1,    -1,    -1,    88,    -1,    -1,
3236     -1,    -1,    93,    -1,    -1,    -1,    -1,    28,    -1,    30,
3237     31,    32,    -1,    -1,    -1,    36,    37,    -1,   109,    -1,
3238     41,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,    -1,
3239     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,
3240     -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
3241      1,    -1,     3,     4,     5,     6,     7,     8,     9,    80,
3242     -1,    -1,    -1,    14,    -1,    -1,    -1,    88,    -1,    -1,
3243     -1,    -1,    93,    -1,    -1,    -1,    -1,    28,    -1,    30,
3244     31,    32,    -1,    -1,    -1,    36,    37,    -1,   109,    -1,
3245     41,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,    -1,
3246     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,
3247     -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
3248     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,
3249     -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,
3250     -1,    -1,    93,    -1,    -1,     3,     4,     5,     6,     7,
3251      8,     9,    10,    11,    -1,    13,    14,    15,   109,    17,
3252     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3253     28,    29,    30,    31,    32,    -1,    34,    35,    36,    -1,
3254     38,    39,    40,    41,    42,    43,    44,    45,    46,    -1,
3255     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3256     58,    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    67,
3257     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3258     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3259     88,    -1,    -1,    -1,    -1,    93,    -1,    95,    -1,    -1,
3260     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3261     -1,   109,   110,     3,     4,     5,     6,     7,     8,     9,
3262     10,    11,    -1,    13,    14,    15,    -1,    17,    18,    19,
3263     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3264     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3265     40,    41,    42,    43,    44,    45,    46,    -1,    -1,    49,
3266     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3267     60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3268     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3269     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
3270     -1,    -1,    -1,    93,    -1,    95,    -1,     3,     4,     5,
3271      6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
3272    110,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3273     26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
3274     36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
3275     46,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3276     56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
3277     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3278     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3279     86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    95,
3280     -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3281     -1,    13,    14,    15,   110,    17,    18,    19,    20,    21,
3282     22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3283     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3284     42,    43,    44,    45,    46,    -1,    -1,    49,    50,    51,
3285     52,    53,    54,    -1,    56,    57,    -1,    -1,    60,    61,
3286     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3287     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3288     -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
3289     -1,    93,    -1,    95,     3,     4,     5,     6,     7,     8,
3290      9,    10,    11,    12,    13,    14,    -1,    -1,   110,    -1,
3291     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3292     29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
3293     39,    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,
3294     49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
3295     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3296     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3297     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3298     -1,    90,    -1,    -1,    93,    94,     3,     4,     5,     6,
3299      7,     8,     9,    10,    11,    12,    13,    14,    -1,    -1,
3300     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3301     -1,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
3302     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3303     47,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3304     57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3305     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3306     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3307     87,    88,    -1,    90,    -1,    -1,    93,    94,     3,     4,
3308      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3309     -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3310     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3311     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3312     45,    -1,    47,    -1,    49,    50,    51,    52,    53,    54,
3313     -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3314     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3315     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3316     -1,    86,    87,    88,    -1,    90,    -1,    -1,    93,    94,
3317      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3318     13,    14,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
3319     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
3320     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3321     43,    -1,    45,    -1,    47,    -1,    49,    50,    51,    52,
3322     53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,
3323     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3324     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3325     -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,    -1,
3326     93,    94,     3,     4,     5,     6,    -1,     8,     9,    10,
3327     11,    -1,    13,    14,    -1,    -1,    -1,   110,    -1,    -1,
3328     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
3329     -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3330     41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
3331     51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    60,
3332     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3333     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3334     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
3335     -1,    -1,    93,     3,     4,     5,     6,     7,     8,     9,
3336     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,
3337     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
3338     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3339     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3340     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3341     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3342     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3343     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3344      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3345     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3346    110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3347     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3348     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3349     54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
3350     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3351     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3352     -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
3353      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3354     -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3355     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3356     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3357     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3358     -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3359     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3360     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3361     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3362     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3363     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3364     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3365     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3366     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
3367     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3368     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3369     -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
3370      6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
3371     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
3372     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3373     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3374     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3375     56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3376     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3377     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3378     86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
3379     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3380     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
3381     30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
3382     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3383     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3384     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3385     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3386     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
3387     -1,    -1,    -1,    93,    94,     3,     4,     5,     6,    -1,
3388      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3389    110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3390     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3391     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3392     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3393     -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3394     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3395     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3396     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3397     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3398     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3399     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3400     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3401     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
3402     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3403     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3404     -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
3405      6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
3406     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
3407     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3408     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3409     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3410     56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3411     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3412     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3413     86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
3414     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3415     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
3416     30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
3417     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3418     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3419     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3420     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3421     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3422      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3423     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3424    110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3425     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3426     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3427     54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
3428     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3429     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3430     -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
3431      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3432     -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3433     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3434     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3435     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3436     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
3437     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3438     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3439     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3440     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3441     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3442     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3443     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3444     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
3445     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3446     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3447     -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
3448      6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
3449     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
3450     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3451     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3452     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3453     56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3454     -1,    67,    -1,     1,    70,     3,     4,     5,     6,     7,
3455      8,     9,    78,    79,    80,    -1,    14,    -1,    -1,    -1,
3456     86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    27,
3457     28,    -1,    30,    31,    32,    -1,    -1,    -1,    36,    -1,
3458     -1,    -1,    -1,    41,   110,    -1,    44,    45,    46,    -1,
3459     48,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
3460     -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3461     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3462     -1,     1,    80,     3,     4,     5,     6,     7,     8,     9,
3463     88,    -1,    -1,    -1,    14,    93,    -1,    -1,    -1,    -1,
3464     98,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    -1,
3465     30,    31,    32,    -1,    -1,    -1,    36,    -1,    -1,    -1,
3466     -1,    41,    -1,    -1,    44,    45,    46,    -1,    48,    -1,
3467     -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
3468     60,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
3469     70,    -1,    -1,    14,    -1,    -1,    -1,    -1,    -1,    -1,
3470     80,    -1,    -1,    -1,    -1,    -1,    -1,    28,    88,    30,
3471     31,    -1,    -1,    93,    -1,    36,    -1,    -1,    98,    -1,
3472     41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,
3473     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,
3474     -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
3475      3,     4,     5,     6,     7,     8,     9,    -1,    -1,    80,
3476     -1,    14,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,
3477     -1,    -1,    93,    -1,    -1,    28,    -1,    30,    31,    -1,
3478     -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,     4,
3479      5,    -1,    45,     8,     9,    -1,    -1,    -1,    -1,    14,
3480     -1,    54,    -1,    56,    57,    -1,    -1,    60,    -1,    -1,
3481     -1,    -1,    -1,    28,    -1,    30,    -1,    70,    -1,    -1,
3482     -1,    36,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,
3483     45,    12,    47,    -1,    -1,    88,    -1,    -1,    -1,    54,
3484     93,    56,    57,    63,    64,    65,    66,    67,    68,    69,
3485     70,    71,    72,    73,    74,    70,    76,    77,    78,    79,
3486     80,    81,    82,    83,    84,    80,    -1,    -1,    -1,    -1,
3487     -1,    -1,    31,    -1,    -1,    90,    -1,    -1,    93,    94,
3488     -1,    62,    63,    64,    65,    66,    67,    68,    69,    70,
3489     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3490     81,    82,    83,    84,    63,    64,    65,    66,    67,    68,
3491     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3492     79,    80,    81,    82,    83,    84,    63,    64,    65,    66,
3493     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3494     77,    78,    79,    80,    81,    82,    83,    84,    71,    72,
3495     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3496     83,    84,    -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,
3497    107,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3498     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3499     82,    83,    84,    62,    63,    64,    65,    66,    67,    68,
3500     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3501     79,    80,    81,    82,    83,    84,    63,    64,    65,    66,
3502     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3503     77,    78,    79,    80,    81,    82,    83,    84
3504 };
3505 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
3506 #line 3 "/usr/lib/bison.simple"
3507
3508 /* Skeleton output parser for bison,
3509    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3510
3511    This program is free software; you can redistribute it and/or modify
3512    it under the terms of the GNU General Public License as published by
3513    the Free Software Foundation; either version 2, or (at your option)
3514    any later version.
3515
3516    This program is distributed in the hope that it will be useful,
3517    but WITHOUT ANY WARRANTY; without even the implied warranty of
3518    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3519    GNU General Public License for more details.
3520
3521    You should have received a copy of the GNU General Public License
3522    along with this program; if not, write to the Free Software
3523    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
3524
3525 /* As a special exception, when this file is copied by Bison into a
3526    Bison output file, you may use that output file without restriction.
3527    This special exception was added by the Free Software Foundation
3528    in version 1.24 of Bison.  */
3529
3530 #ifndef alloca
3531 #ifdef __GNUC__
3532 #define alloca __builtin_alloca
3533 #else /* not GNU C.  */
3534 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3535 #include <alloca.h>
3536 #else /* not sparc */
3537 #if defined (MSDOS) && !defined (__TURBOC__)
3538 #include <malloc.h>
3539 #else /* not MSDOS, or __TURBOC__ */
3540 #if defined(_AIX)
3541 #include <malloc.h>
3542  #pragma alloca
3543 #else /* not MSDOS, __TURBOC__, or _AIX */
3544 #ifdef __hpux
3545 #ifdef __cplusplus
3546 extern "C" {
3547 void *alloca (unsigned int);
3548 };
3549 #else /* not __cplusplus */
3550 void *alloca ();
3551 #endif /* not __cplusplus */
3552 #endif /* __hpux */
3553 #endif /* not _AIX */
3554 #endif /* not MSDOS, or __TURBOC__ */
3555 #endif /* not sparc.  */
3556 #endif /* not GNU C.  */
3557 #endif /* alloca not defined.  */
3558
3559 /* This is the parser code that is written into each bison parser
3560   when the %semantic_parser declaration is not specified in the grammar.
3561   It was written by Richard Stallman by simplifying the hairy parser
3562   used when %semantic_parser is specified.  */
3563
3564 /* Note: there must be only one dollar sign in this file.
3565    It is replaced by the list of actions, each action
3566    as one case of the switch.  */
3567
3568 #define yyerrok         (yyerrstatus = 0)
3569 #define yyclearin       (yychar = YYEMPTY)
3570 #define YYEMPTY         -2
3571 #define YYEOF           0
3572 #define YYACCEPT        return(0)
3573 #define YYABORT         return(1)
3574 #define YYERROR         goto yyerrlab1
3575 /* Like YYERROR except do call yyerror.
3576    This remains here temporarily to ease the
3577    transition to the new meaning of YYERROR, for GCC.
3578    Once GCC version 2 has supplanted version 1, this can go.  */
3579 #define YYFAIL          goto yyerrlab
3580 #define YYRECOVERING()  (!!yyerrstatus)
3581 #define YYBACKUP(token, value) \
3582 do                                                              \
3583   if (yychar == YYEMPTY && yylen == 1)                          \
3584     { yychar = (token), yylval = (value);                       \
3585       yychar1 = YYTRANSLATE (yychar);                           \
3586       YYPOPSTACK;                                               \
3587       goto yybackup;                                            \
3588     }                                                           \
3589   else                                                          \
3590     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
3591 while (0)
3592
3593 #define YYTERROR        1
3594 #define YYERRCODE       256
3595
3596 #ifndef YYPURE
3597 #define YYLEX           yylex()
3598 #endif
3599
3600 #ifdef YYPURE
3601 #ifdef YYLSP_NEEDED
3602 #ifdef YYLEX_PARAM
3603 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
3604 #else
3605 #define YYLEX           yylex(&yylval, &yylloc)
3606 #endif
3607 #else /* not YYLSP_NEEDED */
3608 #ifdef YYLEX_PARAM
3609 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
3610 #else
3611 #define YYLEX           yylex(&yylval)
3612 #endif
3613 #endif /* not YYLSP_NEEDED */
3614 #endif
3615
3616 /* If nonreentrant, generate the variables here */
3617
3618 #ifndef YYPURE
3619
3620 int     yychar;                 /*  the lookahead symbol                */
3621 YYSTYPE yylval;                 /*  the semantic value of the           */
3622                                 /*  lookahead symbol                    */
3623
3624 #ifdef YYLSP_NEEDED
3625 YYLTYPE yylloc;                 /*  location data for the lookahead     */
3626                                 /*  symbol                              */
3627 #endif
3628
3629 int yynerrs;                    /*  number of parse errors so far       */
3630 #endif  /* not YYPURE */
3631
3632 #if YYDEBUG != 0
3633 int yydebug;                    /*  nonzero means print parse trace     */
3634 /* Since this is uninitialized, it does not stop multiple parsers
3635    from coexisting.  */
3636 #endif
3637
3638 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
3639
3640 #ifndef YYINITDEPTH
3641 #define YYINITDEPTH 200
3642 #endif
3643
3644 /*  YYMAXDEPTH is the maximum size the stacks can grow to
3645     (effective only if the built-in stack extension method is used).  */
3646
3647 #if YYMAXDEPTH == 0
3648 #undef YYMAXDEPTH
3649 #endif
3650
3651 #ifndef YYMAXDEPTH
3652 #define YYMAXDEPTH 10000
3653 #endif
3654
3655 /* Prevent warning if -Wstrict-prototypes.  */
3656 #ifdef __GNUC__
3657 int yyparse (void);
3658 #endif
3659 \f
3660 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
3661 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
3662 #else                           /* not GNU C or C++ */
3663 #ifndef __cplusplus
3664
3665 /* This is the most reliable way to avoid incompatibilities
3666    in available built-in functions on various systems.  */
3667 static void
3668 __yy_memcpy (to, from, count)
3669      char *to;
3670      char *from;
3671      int count;
3672 {
3673   register char *f = from;
3674   register char *t = to;
3675   register int i = count;
3676
3677   while (i-- > 0)
3678     *t++ = *f++;
3679 }
3680
3681 #else /* __cplusplus */
3682
3683 /* This is the most reliable way to avoid incompatibilities
3684    in available built-in functions on various systems.  */
3685 static void
3686 __yy_memcpy (char *to, char *from, int count)
3687 {
3688   register char *f = from;
3689   register char *t = to;
3690   register int i = count;
3691
3692   while (i-- > 0)
3693     *t++ = *f++;
3694 }
3695
3696 #endif
3697 #endif
3698 \f
3699 #line 196 "/usr/lib/bison.simple"
3700
3701 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3702    into yyparse.  The argument should have type void *.
3703    It should actually point to an object.
3704    Grammar actions can access the variable by casting it
3705    to the proper pointer type.  */
3706
3707 #ifdef YYPARSE_PARAM
3708 #ifdef __cplusplus
3709 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3710 #define YYPARSE_PARAM_DECL
3711 #else /* not __cplusplus */
3712 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3713 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3714 #endif /* not __cplusplus */
3715 #else /* not YYPARSE_PARAM */
3716 #define YYPARSE_PARAM_ARG
3717 #define YYPARSE_PARAM_DECL
3718 #endif /* not YYPARSE_PARAM */
3719
3720 int
3721 yyparse(YYPARSE_PARAM_ARG)
3722      YYPARSE_PARAM_DECL
3723 {
3724   register int yystate;
3725   register int yyn;
3726   register short *yyssp;
3727   register YYSTYPE *yyvsp;
3728   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
3729   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
3730
3731   short yyssa[YYINITDEPTH];     /*  the state stack                     */
3732   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
3733
3734   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
3735   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
3736
3737 #ifdef YYLSP_NEEDED
3738   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
3739   YYLTYPE *yyls = yylsa;
3740   YYLTYPE *yylsp;
3741
3742 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
3743 #else
3744 #define YYPOPSTACK   (yyvsp--, yyssp--)
3745 #endif
3746
3747   int yystacksize = YYINITDEPTH;
3748
3749 #ifdef YYPURE
3750   int yychar;
3751   YYSTYPE yylval;
3752   int yynerrs;
3753 #ifdef YYLSP_NEEDED
3754   YYLTYPE yylloc;
3755 #endif
3756 #endif
3757
3758   YYSTYPE yyval;                /*  the variable used to return         */
3759                                 /*  semantic values from the action     */
3760                                 /*  routines                            */
3761
3762   int yylen;
3763
3764 #if YYDEBUG != 0
3765   if (yydebug)
3766     fprintf(stderr, "Starting parse\n");
3767 #endif
3768
3769   yystate = 0;
3770   yyerrstatus = 0;
3771   yynerrs = 0;
3772   yychar = YYEMPTY;             /* Cause a token to be read.  */
3773
3774   /* Initialize stack pointers.
3775      Waste one element of value and location stack
3776      so that they stay on the same level as the state stack.
3777      The wasted elements are never initialized.  */
3778
3779   yyssp = yyss - 1;
3780   yyvsp = yyvs;
3781 #ifdef YYLSP_NEEDED
3782   yylsp = yyls;
3783 #endif
3784
3785 /* Push a new state, which is found in  yystate  .  */
3786 /* In all cases, when you get here, the value and location stacks
3787    have just been pushed. so pushing a state here evens the stacks.  */
3788 yynewstate:
3789
3790   *++yyssp = yystate;
3791
3792   if (yyssp >= yyss + yystacksize - 1)
3793     {
3794       /* Give user a chance to reallocate the stack */
3795       /* Use copies of these so that the &'s don't force the real ones into memory. */
3796       YYSTYPE *yyvs1 = yyvs;
3797       short *yyss1 = yyss;
3798 #ifdef YYLSP_NEEDED
3799       YYLTYPE *yyls1 = yyls;
3800 #endif
3801
3802       /* Get the current used size of the three stacks, in elements.  */
3803       int size = yyssp - yyss + 1;
3804
3805 #ifdef yyoverflow
3806       /* Each stack pointer address is followed by the size of
3807          the data in use in that stack, in bytes.  */
3808 #ifdef YYLSP_NEEDED
3809       /* This used to be a conditional around just the two extra args,
3810          but that might be undefined if yyoverflow is a macro.  */
3811       yyoverflow("parser stack overflow",
3812                  &yyss1, size * sizeof (*yyssp),
3813                  &yyvs1, size * sizeof (*yyvsp),
3814                  &yyls1, size * sizeof (*yylsp),
3815                  &yystacksize);
3816 #else
3817       yyoverflow("parser stack overflow",
3818                  &yyss1, size * sizeof (*yyssp),
3819                  &yyvs1, size * sizeof (*yyvsp),
3820                  &yystacksize);
3821 #endif
3822
3823       yyss = yyss1; yyvs = yyvs1;
3824 #ifdef YYLSP_NEEDED
3825       yyls = yyls1;
3826 #endif
3827 #else /* no yyoverflow */
3828       /* Extend the stack our own way.  */
3829       if (yystacksize >= YYMAXDEPTH)
3830         {
3831           yyerror("parser stack overflow");
3832           return 2;
3833         }
3834       yystacksize *= 2;
3835       if (yystacksize > YYMAXDEPTH)
3836         yystacksize = YYMAXDEPTH;
3837       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3838       __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3839       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3840       __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3841 #ifdef YYLSP_NEEDED
3842       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3843       __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3844 #endif
3845 #endif /* no yyoverflow */
3846
3847       yyssp = yyss + size - 1;
3848       yyvsp = yyvs + size - 1;
3849 #ifdef YYLSP_NEEDED
3850       yylsp = yyls + size - 1;
3851 #endif
3852
3853 #if YYDEBUG != 0
3854       if (yydebug)
3855         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3856 #endif
3857
3858       if (yyssp >= yyss + yystacksize - 1)
3859         YYABORT;
3860     }
3861
3862 #if YYDEBUG != 0
3863   if (yydebug)
3864     fprintf(stderr, "Entering state %d\n", yystate);
3865 #endif
3866
3867   goto yybackup;
3868  yybackup:
3869
3870 /* Do appropriate processing given the current state.  */
3871 /* Read a lookahead token if we need one and don't already have one.  */
3872 /* yyresume: */
3873
3874   /* First try to decide what to do without reference to lookahead token.  */
3875
3876   yyn = yypact[yystate];
3877   if (yyn == YYFLAG)
3878     goto yydefault;
3879
3880   /* Not known => get a lookahead token if don't already have one.  */
3881
3882   /* yychar is either YYEMPTY or YYEOF
3883      or a valid token in external form.  */
3884
3885   if (yychar == YYEMPTY)
3886     {
3887 #if YYDEBUG != 0
3888       if (yydebug)
3889         fprintf(stderr, "Reading a token: ");
3890 #endif
3891       yychar = YYLEX;
3892     }
3893
3894   /* Convert token to internal form (in yychar1) for indexing tables with */
3895
3896   if (yychar <= 0)              /* This means end of input. */
3897     {
3898       yychar1 = 0;
3899       yychar = YYEOF;           /* Don't call YYLEX any more */
3900
3901 #if YYDEBUG != 0
3902       if (yydebug)
3903         fprintf(stderr, "Now at end of input.\n");
3904 #endif
3905     }
3906   else
3907     {
3908       yychar1 = YYTRANSLATE(yychar);
3909
3910 #if YYDEBUG != 0
3911       if (yydebug)
3912         {
3913           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3914           /* Give the individual parser a way to print the precise meaning
3915              of a token, for further debugging info.  */
3916 #ifdef YYPRINT
3917           YYPRINT (stderr, yychar, yylval);
3918 #endif
3919           fprintf (stderr, ")\n");
3920         }
3921 #endif
3922     }
3923
3924   yyn += yychar1;
3925   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3926     goto yydefault;
3927
3928   yyn = yytable[yyn];
3929
3930   /* yyn is what to do for this token type in this state.
3931      Negative => reduce, -yyn is rule number.
3932      Positive => shift, yyn is new state.
3933        New state is final state => don't bother to shift,
3934        just return success.
3935      0, or most negative number => error.  */
3936
3937   if (yyn < 0)
3938     {
3939       if (yyn == YYFLAG)
3940         goto yyerrlab;
3941       yyn = -yyn;
3942       goto yyreduce;
3943     }
3944   else if (yyn == 0)
3945     goto yyerrlab;
3946
3947   if (yyn == YYFINAL)
3948     YYACCEPT;
3949
3950   /* Shift the lookahead token.  */
3951
3952 #if YYDEBUG != 0
3953   if (yydebug)
3954     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3955 #endif
3956
3957   /* Discard the token being shifted unless it is eof.  */
3958   if (yychar != YYEOF)
3959     yychar = YYEMPTY;
3960
3961   *++yyvsp = yylval;
3962 #ifdef YYLSP_NEEDED
3963   *++yylsp = yylloc;
3964 #endif
3965
3966   /* count tokens shifted since error; after three, turn off error status.  */
3967   if (yyerrstatus) yyerrstatus--;
3968
3969   yystate = yyn;
3970   goto yynewstate;
3971
3972 /* Do the default action for the current state.  */
3973 yydefault:
3974
3975   yyn = yydefact[yystate];
3976   if (yyn == 0)
3977     goto yyerrlab;
3978
3979 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
3980 yyreduce:
3981   yylen = yyr2[yyn];
3982   if (yylen > 0)
3983     yyval = yyvsp[1-yylen]; /* implement default value of the action */
3984
3985 #if YYDEBUG != 0
3986   if (yydebug)
3987     {
3988       int i;
3989
3990       fprintf (stderr, "Reducing via rule %d (line %d), ",
3991                yyn, yyrline[yyn]);
3992
3993       /* Print the symbols being reduced, and their result.  */
3994       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3995         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3996       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3997     }
3998 #endif
3999
4000
4001   switch (yyn) {
4002
4003 case 2:
4004 #line 334 "parse.y"
4005 { finish_translation_unit (); ;
4006     break;}
4007 case 3:
4008 #line 342 "parse.y"
4009 { yyval.ttype = NULL_TREE; ;
4010     break;}
4011 case 4:
4012 #line 344 "parse.y"
4013 { yyval.ttype = NULL_TREE; ;
4014     break;}
4015 case 5:
4016 #line 346 "parse.y"
4017 { yyval.ttype = NULL_TREE; ;
4018     break;}
4019 case 8:
4020 #line 355 "parse.y"
4021 { have_extern_spec = 1;
4022                   used_extern_spec = 0;
4023                   yyval.ttype = NULL_TREE; ;
4024     break;}
4025 case 9:
4026 #line 360 "parse.y"
4027 { have_extern_spec = 0; ;
4028     break;}
4029 case 10:
4030 #line 365 "parse.y"
4031 { yyval.itype = pedantic;
4032                   pedantic = 0; ;
4033     break;}
4034 case 12:
4035 #line 374 "parse.y"
4036 { if (pending_lang_change) do_pending_lang_change(); ;
4037     break;}
4038 case 13:
4039 #line 376 "parse.y"
4040 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4041                   pop_everything (); ;
4042     break;}
4043 case 14:
4044 #line 382 "parse.y"
4045 { if (pending_inlines) do_pending_inlines (); ;
4046     break;}
4047 case 15:
4048 #line 384 "parse.y"
4049 { if (pending_inlines) do_pending_inlines (); ;
4050     break;}
4051 case 16:
4052 #line 386 "parse.y"
4053 { if (pending_inlines) do_pending_inlines (); ;
4054     break;}
4055 case 17:
4056 #line 388 "parse.y"
4057 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4058                   assemble_asm (yyvsp[-2].ttype); ;
4059     break;}
4060 case 18:
4061 #line 391 "parse.y"
4062 { pop_lang_context (); ;
4063     break;}
4064 case 19:
4065 #line 393 "parse.y"
4066 { if (pending_inlines) do_pending_inlines ();
4067                   pop_lang_context (); ;
4068     break;}
4069 case 20:
4070 #line 396 "parse.y"
4071 { if (pending_inlines) do_pending_inlines ();
4072                   pop_lang_context (); ;
4073     break;}
4074 case 21:
4075 #line 399 "parse.y"
4076 { push_namespace (yyvsp[-1].ttype); ;
4077     break;}
4078 case 22:
4079 #line 401 "parse.y"
4080 { pop_namespace (); ;
4081     break;}
4082 case 23:
4083 #line 403 "parse.y"
4084 { push_namespace (NULL_TREE); ;
4085     break;}
4086 case 24:
4087 #line 405 "parse.y"
4088 { pop_namespace (); ;
4089     break;}
4090 case 26:
4091 #line 408 "parse.y"
4092 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4093     break;}
4094 case 28:
4095 #line 411 "parse.y"
4096 { pedantic = yyvsp[-1].itype; ;
4097     break;}
4098 case 29:
4099 #line 416 "parse.y"
4100 { begin_only_namespace_names (); ;
4101     break;}
4102 case 30:
4103 #line 418 "parse.y"
4104 {
4105                   end_only_namespace_names ();
4106                   if (lastiddecl)
4107                     yyvsp[-1].ttype = lastiddecl;
4108                   do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
4109                 ;
4110     break;}
4111 case 31:
4112 #line 428 "parse.y"
4113 { yyval.ttype = yyvsp[0].ttype; ;
4114     break;}
4115 case 32:
4116 #line 430 "parse.y"
4117 { yyval.ttype = yyvsp[0].ttype; ;
4118     break;}
4119 case 33:
4120 #line 432 "parse.y"
4121 { yyval.ttype = yyvsp[0].ttype; ;
4122     break;}
4123 case 34:
4124 #line 437 "parse.y"
4125 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4126     break;}
4127 case 35:
4128 #line 439 "parse.y"
4129 { yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
4130     break;}
4131 case 36:
4132 #line 441 "parse.y"
4133 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4134     break;}
4135 case 37:
4136 #line 446 "parse.y"
4137 { begin_only_namespace_names (); ;
4138     break;}
4139 case 38:
4140 #line 448 "parse.y"
4141 {
4142                   end_only_namespace_names ();
4143                   /* If no declaration was found, the using-directive is
4144                      invalid. Since that was not reported, we need the
4145                      identifier for the error message. */
4146                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
4147                     yyvsp[-1].ttype = lastiddecl;
4148                   do_using_directive (yyvsp[-1].ttype);
4149                 ;
4150     break;}
4151 case 39:
4152 #line 461 "parse.y"
4153 {
4154                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4155                     yyval.ttype = lastiddecl;
4156                   got_scope = yyval.ttype;
4157                 ;
4158     break;}
4159 case 40:
4160 #line 467 "parse.y"
4161 {
4162                   yyval.ttype = yyvsp[-1].ttype;
4163                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4164                     yyval.ttype = lastiddecl;
4165                   got_scope = yyval.ttype;
4166                 ;
4167     break;}
4168 case 43:
4169 #line 478 "parse.y"
4170 { yyval.ttype = yyvsp[0].ttype; ;
4171     break;}
4172 case 44:
4173 #line 480 "parse.y"
4174 { yyval.ttype = yyvsp[0].ttype; ;
4175     break;}
4176 case 45:
4177 #line 485 "parse.y"
4178 { push_lang_context (yyvsp[0].ttype); ;
4179     break;}
4180 case 46:
4181 #line 487 "parse.y"
4182 { if (current_lang_name != yyvsp[0].ttype)
4183                     cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4184                   pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4185     break;}
4186 case 47:
4187 #line 494 "parse.y"
4188 { begin_template_parm_list (); ;
4189     break;}
4190 case 48:
4191 #line 496 "parse.y"
4192 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4193     break;}
4194 case 49:
4195 #line 498 "parse.y"
4196 { begin_specialization(); 
4197                   yyval.ttype = NULL_TREE; ;
4198     break;}
4199 case 50:
4200 #line 504 "parse.y"
4201 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4202     break;}
4203 case 51:
4204 #line 506 "parse.y"
4205 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4206     break;}
4207 case 52:
4208 #line 511 "parse.y"
4209 { yyval.ttype = yyvsp[0].ttype; ;
4210     break;}
4211 case 53:
4212 #line 513 "parse.y"
4213 { yyval.ttype = NULL_TREE; ;
4214     break;}
4215 case 54:
4216 #line 517 "parse.y"
4217 { yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4218     break;}
4219 case 55:
4220 #line 519 "parse.y"
4221 { yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
4222     break;}
4223 case 56:
4224 #line 524 "parse.y"
4225 { yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4226     break;}
4227 case 57:
4228 #line 536 "parse.y"
4229 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4230     break;}
4231 case 58:
4232 #line 538 "parse.y"
4233 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4234     break;}
4235 case 59:
4236 #line 540 "parse.y"
4237 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4238     break;}
4239 case 60:
4240 #line 542 "parse.y"
4241 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4242     break;}
4243 case 61:
4244 #line 544 "parse.y"
4245 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4246     break;}
4247 case 62:
4248 #line 546 "parse.y"
4249 {
4250                   if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4251                       && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4252                       && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4253                     {
4254                       error ("invalid default template argument");
4255                       yyvsp[0].ttype = error_mark_node;
4256                     }
4257                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4258                 ;
4259     break;}
4260 case 63:
4261 #line 561 "parse.y"
4262
4263                   if (yyvsp[-1].ttype) 
4264                     end_template_decl (); 
4265                   else
4266                     end_specialization ();
4267                 ;
4268     break;}
4269 case 64:
4270 #line 569 "parse.y"
4271
4272                   if (yyvsp[-1].ttype) 
4273                     end_template_decl ();
4274                   else
4275                     end_specialization (); 
4276                 ;
4277     break;}
4278 case 66:
4279 #line 580 "parse.y"
4280 {;
4281     break;}
4282 case 67:
4283 #line 582 "parse.y"
4284 {
4285                   note_list_got_semicolon (yyvsp[-2].ftype.t);
4286                 ;
4287     break;}
4288 case 68:
4289 #line 586 "parse.y"
4290 { pedwarn ("empty declaration"); ;
4291     break;}
4292 case 70:
4293 #line 589 "parse.y"
4294 {
4295                   tree t, attrs;
4296                   split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4297                   shadow_tag (t);
4298                   note_list_got_semicolon (yyvsp[-1].ftype.t);
4299                 ;
4300     break;}
4301 case 74:
4302 #line 602 "parse.y"
4303 { yyval.itype = 0; ;
4304     break;}
4305 case 75:
4306 #line 604 "parse.y"
4307 { yyval.itype = 1; ;
4308     break;}
4309 case 81:
4310 #line 620 "parse.y"
4311 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4312     break;}
4313 case 82:
4314 #line 622 "parse.y"
4315 { ;
4316     break;}
4317 case 83:
4318 #line 624 "parse.y"
4319 { ;
4320     break;}
4321 case 84:
4322 #line 629 "parse.y"
4323 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4324     break;}
4325 case 85:
4326 #line 631 "parse.y"
4327 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4328     break;}
4329 case 86:
4330 #line 633 "parse.y"
4331 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4332                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4333                 ;
4334     break;}
4335 case 87:
4336 #line 637 "parse.y"
4337 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4338     break;}
4339 case 88:
4340 #line 639 "parse.y"
4341 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4342     break;}
4343 case 89:
4344 #line 641 "parse.y"
4345 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4346                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4347                 ;
4348     break;}
4349 case 90:
4350 #line 645 "parse.y"
4351 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4352     break;}
4353 case 91:
4354 #line 647 "parse.y"
4355 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4356     break;}
4357 case 92:
4358 #line 649 "parse.y"
4359 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4360                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4361                 ;
4362     break;}
4363 case 93:
4364 #line 653 "parse.y"
4365 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4366     break;}
4367 case 94:
4368 #line 655 "parse.y"
4369 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4370     break;}
4371 case 95:
4372 #line 657 "parse.y"
4373 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4374                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4375                 ;
4376     break;}
4377 case 96:
4378 #line 664 "parse.y"
4379 { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
4380                     YYERROR1; ;
4381     break;}
4382 case 97:
4383 #line 667 "parse.y"
4384 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4385                     YYERROR1; ;
4386     break;}
4387 case 98:
4388 #line 670 "parse.y"
4389 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4390                     YYERROR1; ;
4391     break;}
4392 case 99:
4393 #line 673 "parse.y"
4394 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4395                     YYERROR1; ;
4396     break;}
4397 case 100:
4398 #line 676 "parse.y"
4399 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4400                     YYERROR1; ;
4401     break;}
4402 case 101:
4403 #line 682 "parse.y"
4404 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4405     break;}
4406 case 102:
4407 #line 684 "parse.y"
4408 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4409     break;}
4410 case 103:
4411 #line 686 "parse.y"
4412 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4413     break;}
4414 case 104:
4415 #line 688 "parse.y"
4416 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4417     break;}
4418 case 105:
4419 #line 695 "parse.y"
4420 { tree specs = strip_attrs (yyvsp[-1].ttype);
4421                   yyval.ttype = start_method (specs, yyvsp[0].ttype);
4422                  rest_of_mdef:
4423                   if (! yyval.ttype)
4424                     YYERROR1;
4425                   if (yychar == YYEMPTY)
4426                     yychar = YYLEX;
4427                   reinit_parse_for_method (yychar, yyval.ttype); ;
4428     break;}
4429 case 106:
4430 #line 704 "parse.y"
4431 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4432     break;}
4433 case 107:
4434 #line 706 "parse.y"
4435 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4436                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4437     break;}
4438 case 108:
4439 #line 709 "parse.y"
4440 { tree specs = strip_attrs (yyvsp[-1].ttype);
4441                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4442     break;}
4443 case 109:
4444 #line 712 "parse.y"
4445 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4446     break;}
4447 case 110:
4448 #line 714 "parse.y"
4449 { tree specs = strip_attrs (yyvsp[-1].ttype);
4450                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4451     break;}
4452 case 111:
4453 #line 717 "parse.y"
4454 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4455     break;}
4456 case 112:
4457 #line 722 "parse.y"
4458 {
4459                   if (! current_function_parms_stored)
4460                     store_parm_decls ();
4461                   yyval.ttype = yyvsp[0].ttype;
4462                 ;
4463     break;}
4464 case 113:
4465 #line 731 "parse.y"
4466 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4467     break;}
4468 case 114:
4469 #line 733 "parse.y"
4470 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4471     break;}
4472 case 115:
4473 #line 735 "parse.y"
4474 { store_return_init (yyval.ttype, NULL_TREE); ;
4475     break;}
4476 case 116:
4477 #line 740 "parse.y"
4478 {
4479                   if (yyvsp[0].itype == 0)
4480                     error ("no base initializers given following ':'");
4481                   setup_vtbl_ptr ();
4482                   /* Always keep the BLOCK node associated with the outermost
4483                      pair of curley braces of a function.  These are needed
4484                      for correct operation of dwarfout.c.  */
4485                   keep_next_level ();
4486                 ;
4487     break;}
4488 case 117:
4489 #line 753 "parse.y"
4490 {
4491                   if (! current_function_parms_stored)
4492                     store_parm_decls ();
4493
4494                   if (DECL_CONSTRUCTOR_P (current_function_decl))
4495                     {
4496                       /* Make a contour for the initializer list.  */
4497                       pushlevel (0);
4498                       clear_last_expr ();
4499                       expand_start_bindings (0);
4500                     }
4501                   else if (current_class_type == NULL_TREE)
4502                     error ("base initializers not allowed for non-member functions");
4503                   else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4504                     error ("only constructors take base initializers");
4505                 ;
4506     break;}
4507 case 118:
4508 #line 773 "parse.y"
4509 { yyval.itype = 0; ;
4510     break;}
4511 case 119:
4512 #line 775 "parse.y"
4513 { yyval.itype = 1; ;
4514     break;}
4515 case 122:
4516 #line 782 "parse.y"
4517 {
4518                   if (current_class_name)
4519                     pedwarn ("anachronistic old style base class initializer");
4520                   expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4521                 ;
4522     break;}
4523 case 123:
4524 #line 788 "parse.y"
4525 {
4526                   if (current_class_name)
4527                     pedwarn ("anachronistic old style base class initializer");
4528                   expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4529                 ;
4530     break;}
4531 case 124:
4532 #line 794 "parse.y"
4533 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4534     break;}
4535 case 125:
4536 #line 796 "parse.y"
4537 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4538     break;}
4539 case 126:
4540 #line 798 "parse.y"
4541 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4542     break;}
4543 case 127:
4544 #line 800 "parse.y"
4545 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4546     break;}
4547 case 128:
4548 #line 802 "parse.y"
4549 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4550                                       yyvsp[-1].ttype); ;
4551     break;}
4552 case 129:
4553 #line 805 "parse.y"
4554 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4555                                       void_type_node); ;
4556     break;}
4557 case 141:
4558 #line 831 "parse.y"
4559 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4560                   yyungetc (';', 1); ;
4561     break;}
4562 case 143:
4563 #line 835 "parse.y"
4564 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4565                   do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4566     break;}
4567 case 145:
4568 #line 839 "parse.y"
4569 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4570     break;}
4571 case 147:
4572 #line 842 "parse.y"
4573 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4574     break;}
4575 case 149:
4576 #line 845 "parse.y"
4577 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
4578                   yyungetc (';', 1); ;
4579     break;}
4580 case 151:
4581 #line 850 "parse.y"
4582 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4583                   do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4584     break;}
4585 case 153:
4586 #line 854 "parse.y"
4587 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4588     break;}
4589 case 155:
4590 #line 857 "parse.y"
4591 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4592     break;}
4593 case 157:
4594 #line 862 "parse.y"
4595 { begin_explicit_instantiation(); ;
4596     break;}
4597 case 158:
4598 #line 865 "parse.y"
4599 { end_explicit_instantiation(); ;
4600     break;}
4601 case 159:
4602 #line 873 "parse.y"
4603 {
4604                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4605                   if (yyval.ttype != error_mark_node)
4606                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4607                 ;
4608     break;}
4609 case 160:
4610 #line 879 "parse.y"
4611 {
4612                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4613                   if (yyval.ttype != error_mark_node)
4614                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4615                 ;
4616     break;}
4617 case 162:
4618 #line 889 "parse.y"
4619 {
4620                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4621                   if (yyval.ttype != error_mark_node)
4622                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4623                 ;
4624     break;}
4625 case 164:
4626 #line 899 "parse.y"
4627 {
4628                   /* Handle `Class<Class<Type>>' without space in the `>>' */
4629                   pedwarn ("`>>' should be `> >' in template class name");
4630                   yyungetc ('>', 1);
4631                 ;
4632     break;}
4633 case 165:
4634 #line 908 "parse.y"
4635 { yyval.ttype = NULL_TREE; ;
4636     break;}
4637 case 167:
4638 #line 914 "parse.y"
4639 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4640     break;}
4641 case 168:
4642 #line 916 "parse.y"
4643 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4644     break;}
4645 case 169:
4646 #line 921 "parse.y"
4647 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4648     break;}
4649 case 170:
4650 #line 923 "parse.y"
4651 { yyval.ttype = lastiddecl; ;
4652     break;}
4653 case 172:
4654 #line 929 "parse.y"
4655 { yyval.code = NEGATE_EXPR; ;
4656     break;}
4657 case 173:
4658 #line 931 "parse.y"
4659 { yyval.code = CONVERT_EXPR; ;
4660     break;}
4661 case 174:
4662 #line 933 "parse.y"
4663 { yyval.code = PREINCREMENT_EXPR; ;
4664     break;}
4665 case 175:
4666 #line 935 "parse.y"
4667 { yyval.code = PREDECREMENT_EXPR; ;
4668     break;}
4669 case 176:
4670 #line 937 "parse.y"
4671 { yyval.code = TRUTH_NOT_EXPR; ;
4672     break;}
4673 case 177:
4674 #line 942 "parse.y"
4675 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4676     break;}
4677 case 179:
4678 #line 948 "parse.y"
4679 { error ("ANSI C++ forbids an empty condition for `%s'",
4680                          cond_stmt_keyword);
4681                   yyval.ttype = integer_zero_node; ;
4682     break;}
4683 case 180:
4684 #line 952 "parse.y"
4685 { yyval.ttype = yyvsp[-1].ttype; ;
4686     break;}
4687 case 181:
4688 #line 957 "parse.y"
4689 { error ("ANSI C++ forbids an empty condition for `%s'",
4690                          cond_stmt_keyword);
4691                   yyval.ttype = integer_zero_node; ;
4692     break;}
4693 case 182:
4694 #line 961 "parse.y"
4695 { yyval.ttype = yyvsp[-1].ttype; ;
4696     break;}
4697 case 183:
4698 #line 966 "parse.y"
4699 { yyval.ttype = NULL_TREE; ;
4700     break;}
4701 case 185:
4702 #line 969 "parse.y"
4703 { yyval.ttype = NULL_TREE; ;
4704     break;}
4705 case 186:
4706 #line 974 "parse.y"
4707 { {
4708                   tree d;
4709                   for (d = getdecls (); d; d = TREE_CHAIN (d))
4710                     if (TREE_CODE (d) == TYPE_DECL) {
4711                       tree s = TREE_TYPE (d);
4712                       if (TREE_CODE (s) == RECORD_TYPE)
4713                         cp_error ("definition of class `%T' in condition", s);
4714                       else if (TREE_CODE (s) == ENUMERAL_TYPE)
4715                         cp_error ("definition of enum `%T' in condition", s);
4716                     }
4717                   }
4718                   current_declspecs = yyvsp[-4].ftype.t;
4719                   yyvsp[0].itype = suspend_momentary ();
4720                   yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
4721                                           yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
4722                 ;
4723     break;}
4724 case 187:
4725 #line 991 "parse.y"
4726
4727                   cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4728                   resume_momentary (yyvsp[-2].itype);
4729                   yyval.ttype = yyvsp[-1].ttype; 
4730                   if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4731                     cp_error ("definition of array `%#D' in condition", yyval.ttype); 
4732                 ;
4733     break;}
4734 case 193:
4735 #line 1010 "parse.y"
4736 { yyval.ttype = begin_compound_stmt (1); ;
4737     break;}
4738 case 194:
4739 #line 1012 "parse.y"
4740 { finish_compound_stmt (1, yyvsp[-1].ttype); ;
4741     break;}
4742 case 196:
4743 #line 1019 "parse.y"
4744 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4745                                   build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4746     break;}
4747 case 197:
4748 #line 1022 "parse.y"
4749 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4750                                   build_expr_list (NULL_TREE, error_mark_node)); ;
4751     break;}
4752 case 198:
4753 #line 1025 "parse.y"
4754 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4755     break;}
4756 case 199:
4757 #line 1027 "parse.y"
4758 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4759     break;}
4760 case 200:
4761 #line 1032 "parse.y"
4762 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4763     break;}
4764 case 202:
4765 #line 1038 "parse.y"
4766 { yyval.ttype = yyvsp[0].ttype; ;
4767     break;}
4768 case 203:
4769 #line 1041 "parse.y"
4770 { yyval.ttype = yyvsp[0].ttype;
4771                   pedantic = yyvsp[-1].itype; ;
4772     break;}
4773 case 204:
4774 #line 1044 "parse.y"
4775 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4776     break;}
4777 case 205:
4778 #line 1046 "parse.y"
4779 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4780     break;}
4781 case 206:
4782 #line 1048 "parse.y"
4783 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4784     break;}
4785 case 207:
4786 #line 1050 "parse.y"
4787 { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
4788     break;}
4789 case 208:
4790 #line 1053 "parse.y"
4791 { if (pedantic)
4792                     pedwarn ("ANSI C++ forbids `&&'");
4793                   yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
4794     break;}
4795 case 209:
4796 #line 1057 "parse.y"
4797 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4798     break;}
4799 case 210:
4800 #line 1059 "parse.y"
4801 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4802     break;}
4803 case 211:
4804 #line 1061 "parse.y"
4805 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4806     break;}
4807 case 212:
4808 #line 1063 "parse.y"
4809 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
4810                   check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4811     break;}
4812 case 213:
4813 #line 1069 "parse.y"
4814 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
4815                   check_for_new_type ("new", yyvsp[0].ftype); ;
4816     break;}
4817 case 214:
4818 #line 1072 "parse.y"
4819 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
4820                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4821     break;}
4822 case 215:
4823 #line 1075 "parse.y"
4824 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
4825                   check_for_new_type ("new", yyvsp[0].ftype); ;
4826     break;}
4827 case 216:
4828 #line 1078 "parse.y"
4829 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
4830                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4831     break;}
4832 case 217:
4833 #line 1091 "parse.y"
4834 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4835                                   NULL_TREE, yyvsp[-4].itype); 
4836                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4837     break;}
4838 case 218:
4839 #line 1096 "parse.y"
4840 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
4841                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4842     break;}
4843 case 219:
4844 #line 1100 "parse.y"
4845 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype); 
4846                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4847     break;}
4848 case 220:
4849 #line 1104 "parse.y"
4850 { yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype); 
4851                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4852     break;}
4853 case 221:
4854 #line 1108 "parse.y"
4855 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4856     break;}
4857 case 222:
4858 #line 1110 "parse.y"
4859 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4860                   if (yychar == YYEMPTY)
4861                     yychar = YYLEX; ;
4862     break;}
4863 case 223:
4864 #line 1114 "parse.y"
4865 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4866                   if (yychar == YYEMPTY)
4867                     yychar = YYLEX; ;
4868     break;}
4869 case 224:
4870 #line 1118 "parse.y"
4871 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4872     break;}
4873 case 225:
4874 #line 1120 "parse.y"
4875 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4876     break;}
4877 case 226:
4878 #line 1130 "parse.y"
4879 { finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
4880     break;}
4881 case 227:
4882 #line 1133 "parse.y"
4883 { yyval.itype = begin_new_placement (); ;
4884     break;}
4885 case 228:
4886 #line 1137 "parse.y"
4887 { yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
4888     break;}
4889 case 229:
4890 #line 1139 "parse.y"
4891 { cp_pedwarn ("old style placement syntax, use () instead");
4892                   yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
4893     break;}
4894 case 230:
4895 #line 1145 "parse.y"
4896 { yyval.ttype = yyvsp[-1].ttype; ;
4897     break;}
4898 case 231:
4899 #line 1147 "parse.y"
4900 { yyval.ttype = NULL_TREE; ;
4901     break;}
4902 case 232:
4903 #line 1149 "parse.y"
4904 {
4905                   cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4906                   yyval.ttype = error_mark_node;
4907                 ;
4908     break;}
4909 case 233:
4910 #line 1157 "parse.y"
4911 {
4912                   if (pedantic)
4913                     pedwarn ("ANSI C++ forbids initialization of new expression with `='");
4914                   if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
4915                       && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
4916                     yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
4917                   else
4918                     yyval.ttype = yyvsp[0].ttype;
4919                 ;
4920     break;}
4921 case 234:
4922 #line 1171 "parse.y"
4923 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
4924                   yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4925                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
4926     break;}
4927 case 235:
4928 #line 1175 "parse.y"
4929 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); 
4930                   yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4931                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
4932     break;}
4933 case 237:
4934 #line 1183 "parse.y"
4935 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
4936     break;}
4937 case 238:
4938 #line 1185 "parse.y"
4939
4940                   tree init = build_nt (CONSTRUCTOR, NULL_TREE,
4941                                         nreverse (yyvsp[-2].ttype)); 
4942                   if (pedantic)
4943                     pedwarn ("ANSI C++ forbids constructor-expressions");
4944                   /* Indicate that this was a GNU C constructor expression.  */
4945                   TREE_HAS_CONSTRUCTOR (init) = 1;
4946
4947                   yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
4948                 ;
4949     break;}
4950 case 240:
4951 #line 1201 "parse.y"
4952 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
4953     break;}
4954 case 241:
4955 #line 1203 "parse.y"
4956 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
4957     break;}
4958 case 242:
4959 #line 1205 "parse.y"
4960 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4961     break;}
4962 case 243:
4963 #line 1207 "parse.y"
4964 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4965     break;}
4966 case 244:
4967 #line 1209 "parse.y"
4968 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4969     break;}
4970 case 245:
4971 #line 1211 "parse.y"
4972 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4973     break;}
4974 case 246:
4975 #line 1213 "parse.y"
4976 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4977     break;}
4978 case 247:
4979 #line 1215 "parse.y"
4980 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4981     break;}
4982 case 248:
4983 #line 1217 "parse.y"
4984 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4985     break;}
4986 case 249:
4987 #line 1219 "parse.y"
4988 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4989     break;}
4990 case 250:
4991 #line 1221 "parse.y"
4992 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4993     break;}
4994 case 251:
4995 #line 1223 "parse.y"
4996 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4997     break;}
4998 case 252:
4999 #line 1225 "parse.y"
5000 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5001     break;}
5002 case 253:
5003 #line 1227 "parse.y"
5004 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5005     break;}
5006 case 254:
5007 #line 1229 "parse.y"
5008 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5009     break;}
5010 case 255:
5011 #line 1231 "parse.y"
5012 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5013     break;}
5014 case 256:
5015 #line 1233 "parse.y"
5016 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5017     break;}
5018 case 257:
5019 #line 1235 "parse.y"
5020 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5021     break;}
5022 case 258:
5023 #line 1237 "parse.y"
5024 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5025     break;}
5026 case 259:
5027 #line 1239 "parse.y"
5028 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5029     break;}
5030 case 260:
5031 #line 1241 "parse.y"
5032 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5033                   if (yyval.ttype != error_mark_node)
5034                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5035     break;}
5036 case 261:
5037 #line 1245 "parse.y"
5038 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5039     break;}
5040 case 262:
5041 #line 1247 "parse.y"
5042 { yyval.ttype = build_throw (NULL_TREE); ;
5043     break;}
5044 case 263:
5045 #line 1249 "parse.y"
5046 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5047     break;}
5048 case 264:
5049 #line 1267 "parse.y"
5050 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5051     break;}
5052 case 270:
5053 #line 1276 "parse.y"
5054 { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE); ;
5055     break;}
5056 case 271:
5057 #line 1280 "parse.y"
5058 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5059     break;}
5060 case 272:
5061 #line 1282 "parse.y"
5062 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5063     break;}
5064 case 273:
5065 #line 1287 "parse.y"
5066 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5067     break;}
5068 case 274:
5069 #line 1289 "parse.y"
5070 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5071     break;}
5072 case 275:
5073 #line 1292 "parse.y"
5074 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5075     break;}
5076 case 280:
5077 #line 1304 "parse.y"
5078 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5079     break;}
5080 case 281:
5081 #line 1306 "parse.y"
5082 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5083     break;}
5084 case 282:
5085 #line 1308 "parse.y"
5086 { yyval.ttype = yyvsp[-1].ttype; ;
5087     break;}
5088 case 283:
5089 #line 1313 "parse.y"
5090 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5091     break;}
5092 case 284:
5093 #line 1315 "parse.y"
5094 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5095     break;}
5096 case 288:
5097 #line 1323 "parse.y"
5098 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5099     break;}
5100 case 289:
5101 #line 1328 "parse.y"
5102 {
5103                   if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
5104                     yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
5105                   else 
5106                     yyval.ttype = finish_id_expr (yyvsp[0].ttype);
5107                 ;
5108     break;}
5109 case 292:
5110 #line 1337 "parse.y"
5111 {
5112                   if (processing_template_decl)
5113                     push_obstacks (&permanent_obstack, &permanent_obstack);
5114                   yyval.ttype = combine_strings (yyval.ttype);
5115                   if (processing_template_decl)
5116                     pop_obstacks ();
5117                 ;
5118     break;}
5119 case 293:
5120 #line 1345 "parse.y"
5121 { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5122     break;}
5123 case 294:
5124 #line 1347 "parse.y"
5125 { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5126                   yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5127     break;}
5128 case 295:
5129 #line 1350 "parse.y"
5130 { yyval.ttype = error_mark_node; ;
5131     break;}
5132 case 296:
5133 #line 1352 "parse.y"
5134 { if (current_function_decl == 0)
5135                     {
5136                       error ("braced-group within expression allowed only inside a function");
5137                       YYERROR;
5138                     }
5139                   if (pedantic)
5140                     pedwarn ("ANSI C++ forbids braced-groups within expressions");  
5141                   yyval.ttype = begin_stmt_expr (); 
5142                 ;
5143     break;}
5144 case 297:
5145 #line 1362 "parse.y"
5146 { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5147     break;}
5148 case 298:
5149 #line 1367 "parse.y"
5150 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
5151     break;}
5152 case 299:
5153 #line 1369 "parse.y"
5154 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
5155     break;}
5156 case 300:
5157 #line 1371 "parse.y"
5158 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
5159     break;}
5160 case 301:
5161 #line 1373 "parse.y"
5162 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
5163     break;}
5164 case 302:
5165 #line 1375 "parse.y"
5166 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5167     break;}
5168 case 303:
5169 #line 1377 "parse.y"
5170 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
5171     break;}
5172 case 304:
5173 #line 1379 "parse.y"
5174 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
5175     break;}
5176 case 305:
5177 #line 1382 "parse.y"
5178 { yyval.ttype = finish_this_expr (); ;
5179     break;}
5180 case 306:
5181 #line 1384 "parse.y"
5182 {
5183                   tree type = NULL_TREE;
5184                   tree id = yyval.ttype;
5185
5186                   /* This is a C cast in C++'s `functional' notation.  */
5187                   if (yyvsp[-1].ttype == error_mark_node)
5188                     {
5189                       yyval.ttype = error_mark_node;
5190                       break;
5191                     }
5192 #if 0
5193                   if (yyvsp[-1].ttype == NULL_TREE)
5194                     {
5195                       error ("cannot cast null list to type `%s'",
5196                              IDENTIFIER_POINTER (TYPE_NAME (id)));
5197                       yyval.ttype = error_mark_node;
5198                       break;
5199                     }
5200 #endif
5201 #if 0
5202                   /* type is not set! (mrs) */
5203                   if (type == error_mark_node)
5204                     yyval.ttype = error_mark_node;
5205                   else
5206 #endif
5207                     {
5208                       if (id == ridpointers[(int) RID_CONST])
5209                         type = build_type_variant (integer_type_node, 1, 0);
5210                       else if (id == ridpointers[(int) RID_VOLATILE])
5211                         type = build_type_variant (integer_type_node, 0, 1);
5212 #if 0
5213                       /* should not be able to get here (mrs) */
5214                       else if (id == ridpointers[(int) RID_FRIEND])
5215                         {
5216                           error ("cannot cast expression to `friend' type");
5217                           yyval.ttype = error_mark_node;
5218                           break;
5219                         }
5220 #endif
5221                       else my_friendly_abort (79);
5222                       yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5223                     }
5224                 ;
5225     break;}
5226 case 308:
5227 #line 1429 "parse.y"
5228 { tree type = groktypename (yyvsp[-4].ftype.t);
5229                   check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5230                   yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5231     break;}
5232 case 309:
5233 #line 1433 "parse.y"
5234 { tree type = groktypename (yyvsp[-4].ftype.t);
5235                   check_for_new_type ("static_cast", yyvsp[-4].ftype);
5236                   yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5237     break;}
5238 case 310:
5239 #line 1437 "parse.y"
5240 { tree type = groktypename (yyvsp[-4].ftype.t);
5241                   check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5242                   yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5243     break;}
5244 case 311:
5245 #line 1441 "parse.y"
5246 { tree type = groktypename (yyvsp[-4].ftype.t);
5247                   check_for_new_type ("const_cast", yyvsp[-4].ftype);
5248                   yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5249     break;}
5250 case 312:
5251 #line 1445 "parse.y"
5252 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5253     break;}
5254 case 313:
5255 #line 1447 "parse.y"
5256 { tree type = groktypename (yyvsp[-1].ftype.t);
5257                   check_for_new_type ("typeid", yyvsp[-1].ftype);
5258                   yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5259     break;}
5260 case 314:
5261 #line 1451 "parse.y"
5262 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5263     break;}
5264 case 315:
5265 #line 1453 "parse.y"
5266 { yyval.ttype = yyvsp[0].ttype; ;
5267     break;}
5268 case 316:
5269 #line 1455 "parse.y"
5270 {
5271                   got_scope = NULL_TREE;
5272                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5273                     yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5274                   else
5275                     yyval.ttype = yyvsp[0].ttype;
5276                 ;
5277     break;}
5278 case 317:
5279 #line 1463 "parse.y"
5280 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5281     break;}
5282 case 318:
5283 #line 1465 "parse.y"
5284 { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5285     break;}
5286 case 319:
5287 #line 1467 "parse.y"
5288 { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
5289     break;}
5290 case 320:
5291 #line 1469 "parse.y"
5292
5293                   yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
5294                 ;
5295     break;}
5296 case 321:
5297 #line 1473 "parse.y"
5298 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5299     break;}
5300 case 322:
5301 #line 1475 "parse.y"
5302 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5303     break;}
5304 case 323:
5305 #line 1477 "parse.y"
5306 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5307     break;}
5308 case 324:
5309 #line 1479 "parse.y"
5310 { if (processing_template_decl)
5311                     yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5312                   else
5313                     yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5314     break;}
5315 case 325:
5316 #line 1484 "parse.y"
5317 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5318     break;}
5319 case 326:
5320 #line 1486 "parse.y"
5321 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5322     break;}
5323 case 327:
5324 #line 1488 "parse.y"
5325 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5326     break;}
5327 case 328:
5328 #line 1490 "parse.y"
5329 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5330     break;}
5331 case 329:
5332 #line 1493 "parse.y"
5333 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5334     break;}
5335 case 330:
5336 #line 1495 "parse.y"
5337 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5338     break;}
5339 case 331:
5340 #line 1497 "parse.y"
5341 {
5342                   yyval.ttype = error_mark_node;
5343                 ;
5344     break;}
5345 case 332:
5346 #line 1542 "parse.y"
5347 { yyval.itype = 0; ;
5348     break;}
5349 case 333:
5350 #line 1544 "parse.y"
5351 { got_scope = NULL_TREE; yyval.itype = 1; ;
5352     break;}
5353 case 334:
5354 #line 1549 "parse.y"
5355 { yyval.itype = 0; ;
5356     break;}
5357 case 335:
5358 #line 1551 "parse.y"
5359 { got_scope = NULL_TREE; yyval.itype = 1; ;
5360     break;}
5361 case 336:
5362 #line 1556 "parse.y"
5363 { yyval.ttype = boolean_true_node; ;
5364     break;}
5365 case 337:
5366 #line 1558 "parse.y"
5367 { yyval.ttype = boolean_false_node; ;
5368     break;}
5369 case 339:
5370 #line 1565 "parse.y"
5371 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5372     break;}
5373 case 340:
5374 #line 1570 "parse.y"
5375 {
5376                   if (! current_function_parms_stored)
5377                     store_parm_decls ();
5378                   setup_vtbl_ptr ();
5379                   /* Always keep the BLOCK node associated with the outermost
5380                      pair of curley braces of a function.  These are needed
5381                      for correct operation of dwarfout.c.  */
5382                   keep_next_level ();
5383                 ;
5384     break;}
5385 case 341:
5386 #line 1583 "parse.y"
5387 { got_object = TREE_TYPE (yyval.ttype); ;
5388     break;}
5389 case 342:
5390 #line 1585 "parse.y"
5391 {
5392                   yyval.ttype = build_x_arrow (yyval.ttype); 
5393                   got_object = TREE_TYPE (yyval.ttype);
5394                 ;
5395     break;}
5396 case 343:
5397 #line 1593 "parse.y"
5398 {
5399                   resume_momentary (yyvsp[-1].itype);
5400                   if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5401                     note_got_semicolon (yyvsp[-2].ftype.t);
5402                 ;
5403     break;}
5404 case 344:
5405 #line 1599 "parse.y"
5406 {
5407                   resume_momentary (yyvsp[-1].itype);
5408                   note_list_got_semicolon (yyvsp[-2].ftype.t);
5409                 ;
5410     break;}
5411 case 345:
5412 #line 1604 "parse.y"
5413 { resume_momentary (yyvsp[-1].itype); ;
5414     break;}
5415 case 346:
5416 #line 1606 "parse.y"
5417 {
5418                   shadow_tag (yyvsp[-1].ftype.t);
5419                   note_list_got_semicolon (yyvsp[-1].ftype.t);
5420                 ;
5421     break;}
5422 case 347:
5423 #line 1611 "parse.y"
5424 { warning ("empty declaration"); ;
5425     break;}
5426 case 348:
5427 #line 1613 "parse.y"
5428 { pedantic = yyvsp[-1].itype; ;
5429     break;}
5430 case 351:
5431 #line 1627 "parse.y"
5432 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5433                                              NULL_TREE, NULL_TREE); ;
5434     break;}
5435 case 352:
5436 #line 1630 "parse.y"
5437 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5438                                              NULL_TREE); ;
5439     break;}
5440 case 353:
5441 #line 1637 "parse.y"
5442 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5443                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5444     break;}
5445 case 354:
5446 #line 1640 "parse.y"
5447 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5448                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5449     break;}
5450 case 355:
5451 #line 1643 "parse.y"
5452 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
5453                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5454     break;}
5455 case 356:
5456 #line 1646 "parse.y"
5457 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5458                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
5459     break;}
5460 case 357:
5461 #line 1649 "parse.y"
5462 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
5463                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5464     break;}
5465 case 360:
5466 #line 1665 "parse.y"
5467 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
5468                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5469     break;}
5470 case 361:
5471 #line 1668 "parse.y"
5472 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5473                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5474     break;}
5475 case 362:
5476 #line 1671 "parse.y"
5477 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
5478                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5479     break;}
5480 case 363:
5481 #line 1674 "parse.y"
5482 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5483                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5484     break;}
5485 case 364:
5486 #line 1677 "parse.y"
5487 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5488                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5489     break;}
5490 case 365:
5491 #line 1680 "parse.y"
5492 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5493                                          chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
5494                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5495     break;}
5496 case 366:
5497 #line 1687 "parse.y"
5498 { if (extra_warnings)
5499                     warning ("`%s' is not at beginning of declaration",
5500                              IDENTIFIER_POINTER (yyval.ttype));
5501                   yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5502     break;}
5503 case 367:
5504 #line 1692 "parse.y"
5505 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5506     break;}
5507 case 368:
5508 #line 1694 "parse.y"
5509 { if (extra_warnings)
5510                     warning ("`%s' is not at beginning of declaration",
5511                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5512                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5513     break;}
5514 case 369:
5515 #line 1699 "parse.y"
5516 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5517     break;}
5518 case 370:
5519 #line 1701 "parse.y"
5520 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5521     break;}
5522 case 371:
5523 #line 1711 "parse.y"
5524 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5525     break;}
5526 case 372:
5527 #line 1713 "parse.y"
5528 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5529     break;}
5530 case 373:
5531 #line 1715 "parse.y"
5532 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5533                   TREE_STATIC (yyval.ttype) = 1; ;
5534     break;}
5535 case 374:
5536 #line 1718 "parse.y"
5537 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5538                     warning ("`%s' is not at beginning of declaration",
5539                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5540                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5541                   TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5542     break;}
5543 case 375:
5544 #line 1724 "parse.y"
5545 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5546     break;}
5547 case 376:
5548 #line 1726 "parse.y"
5549 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5550     break;}
5551 case 377:
5552 #line 1737 "parse.y"
5553 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); 
5554                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5555     break;}
5556 case 378:
5557 #line 1740 "parse.y"
5558 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
5559                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5560     break;}
5561 case 379:
5562 #line 1743 "parse.y"
5563 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5564                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5565     break;}
5566 case 380:
5567 #line 1746 "parse.y"
5568 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
5569                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5570     break;}
5571 case 381:
5572 #line 1752 "parse.y"
5573 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5574     break;}
5575 case 382:
5576 #line 1754 "parse.y"
5577 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5578     break;}
5579 case 384:
5580 #line 1764 "parse.y"
5581 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5582     break;}
5583 case 385:
5584 #line 1766 "parse.y"
5585 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5586     break;}
5587 case 386:
5588 #line 1768 "parse.y"
5589 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5590                   yyval.ftype.new_type_flag = 0; ;
5591     break;}
5592 case 387:
5593 #line 1771 "parse.y"
5594 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5595                   yyval.ftype.new_type_flag = 0; ;
5596     break;}
5597 case 388:
5598 #line 1774 "parse.y"
5599 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5600
5601                   yyval.ftype.new_type_flag = 0;
5602                   if (IS_AGGR_TYPE (type))
5603                     {
5604                       sorry ("sigof type specifier");
5605                       yyval.ftype.t = type;
5606                     }
5607                   else
5608                     {
5609                       error ("`sigof' applied to non-aggregate expression");
5610                       yyval.ftype.t = error_mark_node;
5611                     }
5612                 ;
5613     break;}
5614 case 389:
5615 #line 1789 "parse.y"
5616 { tree type = groktypename (yyvsp[-1].ftype.t);
5617
5618                   yyval.ftype.new_type_flag = 0;
5619                   if (IS_AGGR_TYPE (type))
5620                     {
5621                       sorry ("sigof type specifier");
5622                       yyval.ftype.t = type;
5623                     }
5624                   else
5625                     {
5626                       error("`sigof' applied to non-aggregate type");
5627                       yyval.ftype.t = error_mark_node;
5628                     }
5629                 ;
5630     break;}
5631 case 390:
5632 #line 1809 "parse.y"
5633 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5634     break;}
5635 case 391:
5636 #line 1811 "parse.y"
5637 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5638     break;}
5639 case 399:
5640 #line 1832 "parse.y"
5641 { yyval.ttype = NULL_TREE; ;
5642     break;}
5643 case 400:
5644 #line 1834 "parse.y"
5645 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5646     break;}
5647 case 401:
5648 #line 1839 "parse.y"
5649 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
5650                                           yyvsp[-1].ttype, prefix_attributes); ;
5651     break;}
5652 case 402:
5653 #line 1843 "parse.y"
5654 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5655     break;}
5656 case 403:
5657 #line 1845 "parse.y"
5658 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
5659                                           yyvsp[0].ttype, prefix_attributes);
5660                   cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5661     break;}
5662 case 404:
5663 #line 1858 "parse.y"
5664 { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, 
5665                                            yyvsp[-1].ttype, 1, &yyval.ttype); ;
5666     break;}
5667 case 405:
5668 #line 1863 "parse.y"
5669 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
5670                                   LOOKUP_ONLYCONVERTING);
5671                   yyval.itype = yyvsp[-2].itype; ;
5672     break;}
5673 case 406:
5674 #line 1867 "parse.y"
5675 { tree d;
5676                   yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
5677                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5678     break;}
5679 case 407:
5680 #line 1874 "parse.y"
5681 { yyval.itype = yyvsp[0].itype; ;
5682     break;}
5683 case 408:
5684 #line 1878 "parse.y"
5685 { yyval.itype = yyvsp[0].itype; ;
5686     break;}
5687 case 409:
5688 #line 1883 "parse.y"
5689 { /* Set things up as initdcl0_innards expects.  */
5690               yyval.ttype = yyvsp[-1].ttype; 
5691               yyvsp[-1].ttype = NULL_TREE; ;
5692     break;}
5693 case 410:
5694 #line 1887 "parse.y"
5695 {;
5696     break;}
5697 case 411:
5698 #line 1889 "parse.y"
5699 { tree d;
5700                   parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
5701                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5702     break;}
5703 case 412:
5704 #line 1898 "parse.y"
5705 { yyval.ttype = NULL_TREE; ;
5706     break;}
5707 case 413:
5708 #line 1900 "parse.y"
5709 { yyval.ttype = yyvsp[0].ttype; ;
5710     break;}
5711 case 414:
5712 #line 1905 "parse.y"
5713 { yyval.ttype = yyvsp[0].ttype; ;
5714     break;}
5715 case 415:
5716 #line 1907 "parse.y"
5717 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5718     break;}
5719 case 416:
5720 #line 1912 "parse.y"
5721 { yyval.ttype = yyvsp[-2].ttype; ;
5722     break;}
5723 case 417:
5724 #line 1917 "parse.y"
5725 { yyval.ttype = yyvsp[0].ttype; ;
5726     break;}
5727 case 418:
5728 #line 1919 "parse.y"
5729 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5730     break;}
5731 case 419:
5732 #line 1924 "parse.y"
5733 { yyval.ttype = NULL_TREE; ;
5734     break;}
5735 case 420:
5736 #line 1926 "parse.y"
5737 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
5738     break;}
5739 case 421:
5740 #line 1928 "parse.y"
5741 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
5742     break;}
5743 case 422:
5744 #line 1930 "parse.y"
5745 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
5746     break;}
5747 case 423:
5748 #line 1932 "parse.y"
5749 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5750     break;}
5751 case 428:
5752 #line 1948 "parse.y"
5753 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
5754     break;}
5755 case 429:
5756 #line 1950 "parse.y"
5757 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5758     break;}
5759 case 430:
5760 #line 1955 "parse.y"
5761 { yyval.ttype = NULL_TREE; ;
5762     break;}
5763 case 431:
5764 #line 1957 "parse.y"
5765 { yyval.ttype = yyvsp[0].ttype; ;
5766     break;}
5767 case 433:
5768 #line 1965 "parse.y"
5769 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
5770                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5771     break;}
5772 case 434:
5773 #line 1968 "parse.y"
5774 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
5775                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5776     break;}
5777 case 435:
5778 #line 1971 "parse.y"
5779 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
5780                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5781     break;}
5782 case 436:
5783 #line 1974 "parse.y"
5784 { yyval.ttype = NULL_TREE; ;
5785     break;}
5786 case 437:
5787 #line 1981 "parse.y"
5788 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5789     break;}
5790 case 438:
5791 #line 1983 "parse.y"
5792 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5793     break;}
5794 case 439:
5795 #line 1986 "parse.y"
5796 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5797     break;}
5798 case 440:
5799 #line 1988 "parse.y"
5800 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
5801     break;}
5802 case 441:
5803 #line 1990 "parse.y"
5804 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
5805     break;}
5806 case 442:
5807 #line 1995 "parse.y"
5808 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
5809                                   NULL_TREE, 1);
5810                   reinit_parse_for_function (); ;
5811     break;}
5812 case 443:
5813 #line 2001 "parse.y"
5814 {
5815                   int nested = (hack_decl_function_context
5816                                 (current_function_decl) != NULL_TREE);
5817                   finish_function (lineno, (int)yyvsp[-1].itype, nested);
5818                   process_next_inline (yyvsp[-3].ttype);
5819                 ;
5820     break;}
5821 case 444:
5822 #line 2008 "parse.y"
5823 { process_next_inline (yyvsp[-2].ttype); ;
5824     break;}
5825 case 445:
5826 #line 2010 "parse.y"
5827 { process_next_inline (yyvsp[-2].ttype); ;
5828     break;}
5829 case 448:
5830 #line 2022 "parse.y"
5831 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5832     break;}
5833 case 449:
5834 #line 2024 "parse.y"
5835 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
5836     break;}
5837 case 451:
5838 #line 2029 "parse.y"
5839 { do_pending_defargs (); ;
5840     break;}
5841 case 452:
5842 #line 2031 "parse.y"
5843 { do_pending_defargs (); ;
5844     break;}
5845 case 453:
5846 #line 2036 "parse.y"
5847 { yyvsp[0].itype = suspend_momentary ();
5848                   yyval.ttype = start_enum (yyvsp[-1].ttype); ;
5849     break;}
5850 case 454:
5851 #line 2039 "parse.y"
5852 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
5853                   yyval.ftype.new_type_flag = 1;
5854                   resume_momentary ((int) yyvsp[-4].itype);
5855                   check_for_missing_semicolon (yyvsp[-3].ttype); ;
5856     break;}
5857 case 455:
5858 #line 2044 "parse.y"
5859 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
5860                   yyval.ftype.new_type_flag = 1;
5861                   check_for_missing_semicolon (yyval.ftype.t); ;
5862     break;}
5863 case 456:
5864 #line 2048 "parse.y"
5865 { yyvsp[0].itype = suspend_momentary ();
5866                   yyval.ttype = start_enum (make_anon_name ()); ;
5867     break;}
5868 case 457:
5869 #line 2051 "parse.y"
5870 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
5871                   resume_momentary ((int) yyvsp[-5].itype);
5872                   check_for_missing_semicolon (yyvsp[-3].ttype);
5873                   yyval.ftype.new_type_flag = 1; ;
5874     break;}
5875 case 458:
5876 #line 2056 "parse.y"
5877 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
5878                   yyval.ftype.new_type_flag = 1;
5879                   check_for_missing_semicolon (yyval.ftype.t); ;
5880     break;}
5881 case 459:
5882 #line 2060 "parse.y"
5883 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
5884                   yyval.ftype.new_type_flag = 0; ;
5885     break;}
5886 case 460:
5887 #line 2063 "parse.y"
5888 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
5889                   yyval.ftype.new_type_flag = 0; ;
5890     break;}
5891 case 461:
5892 #line 2066 "parse.y"
5893 { yyval.ftype.t = yyvsp[0].ttype;
5894                   yyval.ftype.new_type_flag = 0; ;
5895     break;}
5896 case 462:
5897 #line 2071 "parse.y"
5898
5899                   int semi;
5900
5901                   if (yychar == YYEMPTY)
5902                     yychar = YYLEX;
5903                   semi = yychar == ';';
5904
5905                   yyval.ttype = finish_class_definition (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi); 
5906                 ;
5907     break;}
5908 case 463:
5909 #line 2081 "parse.y"
5910 { finish_default_args (); ;
5911     break;}
5912 case 464:
5913 #line 2083 "parse.y"
5914 { yyval.ftype.t = yyvsp[-3].ttype;
5915                   yyval.ftype.new_type_flag = 1; 
5916                   begin_inline_definitions (); ;
5917     break;}
5918 case 465:
5919 #line 2087 "parse.y"
5920 {
5921                   yyval.ftype.new_type_flag = 0;
5922                   if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
5923                     {
5924                       cp_error ("%T is not a class type", yyvsp[0].ttype);
5925                       yyval.ftype.t = error_mark_node;
5926                     } 
5927                   else
5928                     {
5929                       yyval.ftype.t = yyvsp[0].ttype;
5930                       /* struct B: public A; is not accepted by the WP grammar.  */
5931                       if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
5932                           && ! TYPE_BEING_DEFINED (yyval.ftype.t))
5933                         cp_error ("base clause without member specification for `%#T'",
5934                                   yyval.ftype.t);
5935                     }
5936                 ;
5937     break;}
5938 case 469:
5939 #line 2114 "parse.y"
5940 { if (pedantic && !in_system_header)
5941                     pedwarn ("comma at end of enumerator list"); ;
5942     break;}
5943 case 471:
5944 #line 2121 "parse.y"
5945 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
5946     break;}
5947 case 472:
5948 #line 2123 "parse.y"
5949 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
5950     break;}
5951 case 473:
5952 #line 2125 "parse.y"
5953 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
5954     break;}
5955 case 474:
5956 #line 2127 "parse.y"
5957 { error ("no body nor ';' separates two class, struct or union declarations"); ;
5958     break;}
5959 case 475:
5960 #line 2129 "parse.y"
5961 { yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
5962     break;}
5963 case 476:
5964 #line 2134 "parse.y"
5965 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5966     break;}
5967 case 477:
5968 #line 2139 "parse.y"
5969 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5970     break;}
5971 case 478:
5972 #line 2144 "parse.y"
5973 {
5974                   current_aggr = yyvsp[-2].ttype;
5975                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
5976                 ;
5977     break;}
5978 case 479:
5979 #line 2149 "parse.y"
5980 {
5981                   current_aggr = yyvsp[-3].ttype;
5982                   yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
5983                 ;
5984     break;}
5985 case 480:
5986 #line 2154 "parse.y"
5987 {
5988                   current_aggr = yyvsp[-2].ttype;
5989                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
5990                 ;
5991     break;}
5992 case 481:
5993 #line 2159 "parse.y"
5994 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5995     break;}
5996 case 482:
5997 #line 2161 "parse.y"
5998 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5999     break;}
6000 case 483:
6001 #line 2166 "parse.y"
6002 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
6003     break;}
6004 case 484:
6005 #line 2171 "parse.y"
6006 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
6007     break;}
6008 case 485:
6009 #line 2174 "parse.y"
6010
6011                   yyval.ttype = yyvsp[-1].ttype;
6012                   if (yyvsp[0].ttype)
6013                     xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
6014                 ;
6015     break;}
6016 case 486:
6017 #line 2180 "parse.y"
6018
6019                   yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6020                   if (TREE_INT_CST_LOW (current_aggr) == union_type 
6021                       && TREE_CODE (yyval.ttype) != UNION_TYPE)
6022                     cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
6023                   else if (TREE_CODE (yyval.ttype) == UNION_TYPE
6024                            && TREE_INT_CST_LOW (current_aggr) != union_type)
6025                     cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
6026                   if (yyvsp[0].ttype)
6027                     {
6028                       if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
6029                         {
6030                           if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
6031                               && TYPE_SIZE (yyval.ttype) == NULL_TREE)
6032                             {
6033                               SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
6034                               if (processing_template_decl)
6035                                 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
6036                             }
6037                           else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
6038                             cp_error ("specialization after instantiation of `%T'", yyval.ttype);
6039                         }
6040                       xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype); 
6041                     }
6042                 ;
6043     break;}
6044 case 487:
6045 #line 2209 "parse.y"
6046 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
6047                   yyungetc ('{', 1); ;
6048     break;}
6049 case 490:
6050 #line 2220 "parse.y"
6051 { yyval.ttype = NULL_TREE; ;
6052     break;}
6053 case 491:
6054 #line 2222 "parse.y"
6055 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6056     break;}
6057 case 492:
6058 #line 2224 "parse.y"
6059 { yyval.ttype = yyvsp[0].ttype; ;
6060     break;}
6061 case 494:
6062 #line 2230 "parse.y"
6063 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6064     break;}
6065 case 495:
6066 #line 2235 "parse.y"
6067 {
6068                   tree type = TREE_TYPE (yyvsp[0].ttype);
6069                   if (! is_aggr_type (type, 1))
6070                     yyval.ttype = NULL_TREE;
6071                   else if (current_aggr == signature_type_node
6072                            && (! type) && (! IS_SIGNATURE (type)))
6073                     {
6074                       error ("class name not allowed as base signature");
6075                       yyval.ttype = NULL_TREE;
6076                     }
6077                   else if (current_aggr == signature_type_node)
6078                     {
6079                       sorry ("signature inheritance, base type `%s' ignored",
6080                              IDENTIFIER_POINTER (yyval.ttype));
6081                       yyval.ttype = build_tree_list (access_public_node, type);
6082                     }
6083                   else if (type && IS_SIGNATURE (type))
6084                     {
6085                       error ("signature name not allowed as base class");
6086                       yyval.ttype = NULL_TREE;
6087                     }
6088                   else
6089                     yyval.ttype = build_tree_list (access_default_node, type);
6090                 ;
6091     break;}
6092 case 496:
6093 #line 2260 "parse.y"
6094 {
6095                   tree type = TREE_TYPE (yyvsp[0].ttype);
6096                   if (current_aggr == signature_type_node)
6097                     error ("access and source specifiers not allowed in signature");
6098                   if (! is_aggr_type (type, 1))
6099                     yyval.ttype = NULL_TREE;
6100                   else if (current_aggr == signature_type_node
6101                            && (! type) && (! IS_SIGNATURE (type)))
6102                     {
6103                       error ("class name not allowed as base signature");
6104                       yyval.ttype = NULL_TREE;
6105                     }
6106                   else if (current_aggr == signature_type_node)
6107                     {
6108                       sorry ("signature inheritance, base type `%s' ignored",
6109                              IDENTIFIER_POINTER (yyval.ttype));
6110                       yyval.ttype = build_tree_list (access_public_node, type);
6111                     }
6112                   else if (type && IS_SIGNATURE (type))
6113                     {
6114                       error ("signature name not allowed as base class");
6115                       yyval.ttype = NULL_TREE;
6116                     }
6117                   else
6118                     yyval.ttype = build_tree_list (yyval.ttype, type);
6119                 ;
6120     break;}
6121 case 497:
6122 #line 2290 "parse.y"
6123 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6124     break;}
6125 case 499:
6126 #line 2293 "parse.y"
6127 {
6128                   if (current_aggr == signature_type_node)
6129                     {
6130                       if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6131                         {
6132                           sorry ("`sigof' as base signature specifier");
6133                           yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6134                         }
6135                       else
6136                         {
6137                           error ("`sigof' applied to non-aggregate expression");
6138                           yyval.ttype = error_mark_node;
6139                         }
6140                     }
6141                   else
6142                     {
6143                       error ("`sigof' in struct or class declaration");
6144                       yyval.ttype = error_mark_node;
6145                     }
6146                 ;
6147     break;}
6148 case 500:
6149 #line 2314 "parse.y"
6150 {
6151                   if (current_aggr == signature_type_node)
6152                     {
6153                       if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6154                         {
6155                           sorry ("`sigof' as base signature specifier");
6156                           yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6157                         }
6158                       else
6159                         {
6160                           error ("`sigof' applied to non-aggregate expression");
6161                           yyval.ttype = error_mark_node;
6162                         }
6163                     }
6164                   else
6165                     {
6166                       error ("`sigof' in struct or class declaration");
6167                       yyval.ttype = error_mark_node;
6168                     }
6169                 ;
6170     break;}
6171 case 502:
6172 #line 2339 "parse.y"
6173 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6174                     cp_error ("`%D' access", yyvsp[-1].ttype);
6175                   yyval.ttype = access_default_virtual_node; ;
6176     break;}
6177 case 503:
6178 #line 2343 "parse.y"
6179 {
6180                   if (yyvsp[-2].ttype != access_default_virtual_node)
6181                     error ("multiple access specifiers");
6182                   else if (yyvsp[-1].ttype == access_public_node)
6183                     yyval.ttype = access_public_virtual_node;
6184                   else if (yyvsp[-1].ttype == access_protected_node)
6185                     yyval.ttype = access_protected_virtual_node;
6186                   else /* $2 == access_private_node */
6187                     yyval.ttype = access_private_virtual_node;
6188                 ;
6189     break;}
6190 case 504:
6191 #line 2354 "parse.y"
6192 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6193                     cp_error ("`%D' access", yyvsp[-1].ttype);
6194                   else if (yyval.ttype == access_public_node)
6195                     yyval.ttype = access_public_virtual_node;
6196                   else if (yyval.ttype == access_protected_node)
6197                     yyval.ttype = access_protected_virtual_node;
6198                   else if (yyval.ttype == access_private_node)
6199                     yyval.ttype = access_private_virtual_node;
6200                   else
6201                     error ("multiple `virtual' specifiers");
6202                 ;
6203     break;}
6204 case 505:
6205 #line 2369 "parse.y"
6206 { yyvsp[-1].ttype = begin_class_definition (yyvsp[-1].ttype); ;
6207     break;}
6208 case 506:
6209 #line 2374 "parse.y"
6210 {
6211                     yyval.ttype = build_self_reference ();
6212                 ;
6213     break;}
6214 case 507:
6215 #line 2381 "parse.y"
6216 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6217     break;}
6218 case 508:
6219 #line 2383 "parse.y"
6220 {
6221                   if (current_aggr == signature_type_node)
6222                     yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6223                   else
6224                     yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6225                   if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6226                 ;
6227     break;}
6228 case 509:
6229 #line 2391 "parse.y"
6230 {
6231                   tree visspec = yyvsp[-2].ttype;
6232
6233                   if (current_aggr == signature_type_node)
6234                     {
6235                       error ("access specifier not allowed in signature");
6236                       visspec = access_public_node;
6237                     }
6238                   yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6239                 ;
6240     break;}
6241 case 510:
6242 #line 2402 "parse.y"
6243 {
6244                   if (current_aggr == signature_type_node)
6245                     error ("access specifier not allowed in signature");
6246                 ;
6247     break;}
6248 case 511:
6249 #line 2412 "parse.y"
6250 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; 
6251                 ;
6252     break;}
6253 case 512:
6254 #line 2415 "parse.y"
6255 { /* In pushdecl, we created a reverse list of names
6256                      in this binding level.  Make sure that the chain
6257                      of what we're trying to add isn't the item itself
6258                      (which can happen with what pushdecl's doing).  */
6259                   if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6260                     {
6261                       if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6262                         yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6263                       else
6264                         yyval.ttype = yyvsp[0].ttype;
6265                     }
6266                 ;
6267     break;}
6268 case 513:
6269 #line 2431 "parse.y"
6270 { ;
6271     break;}
6272 case 514:
6273 #line 2433 "parse.y"
6274 { error ("missing ';' before right brace");
6275                   yyungetc ('}', 0); ;
6276     break;}
6277 case 515:
6278 #line 2438 "parse.y"
6279 { yyval.ttype = finish_method (yyval.ttype); ;
6280     break;}
6281 case 516:
6282 #line 2440 "parse.y"
6283 { yyval.ttype = finish_method (yyval.ttype); ;
6284     break;}
6285 case 517:
6286 #line 2442 "parse.y"
6287 { yyval.ttype = finish_method (yyval.ttype); ;
6288     break;}
6289 case 518:
6290 #line 2444 "parse.y"
6291 { yyval.ttype = finish_method (yyval.ttype); ;
6292     break;}
6293 case 519:
6294 #line 2446 "parse.y"
6295 { yyval.ttype = NULL_TREE; ;
6296     break;}
6297 case 520:
6298 #line 2448 "parse.y"
6299 { yyval.ttype = yyvsp[0].ttype;
6300                   pedantic = yyvsp[-1].itype; ;
6301     break;}
6302 case 521:
6303 #line 2451 "parse.y"
6304 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6305     break;}
6306 case 522:
6307 #line 2453 "parse.y"
6308 { yyval.ttype = finish_member_class_template (yyvsp[-2].ttype, yyvsp[-1].ftype.t); ;
6309     break;}
6310 case 523:
6311 #line 2461 "parse.y"
6312 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6313     break;}
6314 case 524:
6315 #line 2463 "parse.y"
6316 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6317     break;}
6318 case 525:
6319 #line 2465 "parse.y"
6320 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6321                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6322     break;}
6323 case 526:
6324 #line 2468 "parse.y"
6325 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6326                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6327     break;}
6328 case 527:
6329 #line 2471 "parse.y"
6330 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6331     break;}
6332 case 528:
6333 #line 2473 "parse.y"
6334 { yyval.ttype = NULL_TREE; ;
6335     break;}
6336 case 529:
6337 #line 2484 "parse.y"
6338 { tree specs, attrs;
6339                   split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6340                   yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6341                                   build_tree_list (yyvsp[-1].ttype, attrs)); ;
6342     break;}
6343 case 530:
6344 #line 2489 "parse.y"
6345 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6346                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6347     break;}
6348 case 531:
6349 #line 2492 "parse.y"
6350 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6351     break;}
6352 case 532:
6353 #line 2498 "parse.y"
6354 { yyval.ttype = NULL_TREE; ;
6355     break;}
6356 case 534:
6357 #line 2501 "parse.y"
6358 {
6359                   /* In this context, void_type_node encodes
6360                      friends.  They have been recorded elsewhere.  */
6361                   if (yyval.ttype == void_type_node)
6362                     yyval.ttype = yyvsp[0].ttype;
6363                   else
6364                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6365                 ;
6366     break;}
6367 case 535:
6368 #line 2513 "parse.y"
6369 { yyval.ttype = NULL_TREE; ;
6370     break;}
6371 case 537:
6372 #line 2516 "parse.y"
6373 {
6374                   /* In this context, void_type_node encodes
6375                      friends.  They have been recorded elsewhere.  */
6376                   if (yyval.ttype == void_type_node)
6377                     yyval.ttype = yyvsp[0].ttype;
6378                   else
6379                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6380                 ;
6381     break;}
6382 case 542:
6383 #line 2538 "parse.y"
6384 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6385                                      &prefix_attributes);
6386                   yyvsp[-4].ttype = current_declspecs;
6387                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6388                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6389     break;}
6390 case 543:
6391 #line 2544 "parse.y"
6392 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6393                                      &prefix_attributes);
6394                   yyvsp[-4].ttype = current_declspecs;
6395                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6396                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6397     break;}
6398 case 544:
6399 #line 2553 "parse.y"
6400 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6401                                      &prefix_attributes);
6402                   yyvsp[-4].ttype = current_declspecs;
6403                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6404                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6405     break;}
6406 case 545:
6407 #line 2559 "parse.y"
6408 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6409                                      &prefix_attributes);
6410                   yyvsp[-4].ttype = current_declspecs;
6411                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6412                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6413     break;}
6414 case 546:
6415 #line 2565 "parse.y"
6416 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6417                                      &prefix_attributes);
6418                   yyvsp[-4].ttype = current_declspecs;
6419                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6420                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6421     break;}
6422 case 547:
6423 #line 2571 "parse.y"
6424 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6425                                      &prefix_attributes);
6426                   yyvsp[-3].ttype = current_declspecs;
6427                   yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6428                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6429     break;}
6430 case 548:
6431 #line 2580 "parse.y"
6432 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6433                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6434     break;}
6435 case 549:
6436 #line 2583 "parse.y"
6437 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6438                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6439     break;}
6440 case 550:
6441 #line 2589 "parse.y"
6442 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6443                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6444     break;}
6445 case 551:
6446 #line 2592 "parse.y"
6447 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6448                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6449     break;}
6450 case 552:
6451 #line 2595 "parse.y"
6452 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6453                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6454     break;}
6455 case 554:
6456 #line 2606 "parse.y"
6457 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6458     break;}
6459 case 555:
6460 #line 2611 "parse.y"
6461 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6462     break;}
6463 case 556:
6464 #line 2613 "parse.y"
6465 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6466     break;}
6467 case 557:
6468 #line 2619 "parse.y"
6469 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
6470                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6471     break;}
6472 case 558:
6473 #line 2622 "parse.y"
6474 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
6475                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6476     break;}
6477 case 559:
6478 #line 2629 "parse.y"
6479 {
6480                   if (pedantic)
6481                     pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6482                   yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6483                   yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6484                   yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6485                 ;
6486     break;}
6487 case 560:
6488 #line 2640 "parse.y"
6489 { yyval.ttype = NULL_TREE; ;
6490     break;}
6491 case 561:
6492 #line 2642 "parse.y"
6493 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6494     break;}
6495 case 562:
6496 #line 2647 "parse.y"
6497 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); 
6498                   yyval.ftype.new_type_flag = 0; ;
6499     break;}
6500 case 563:
6501 #line 2650 "parse.y"
6502 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
6503                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6504     break;}
6505 case 564:
6506 #line 2659 "parse.y"
6507 { yyval.itype = suspend_momentary (); ;
6508     break;}
6509 case 565:
6510 #line 2664 "parse.y"
6511 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6512     break;}
6513 case 566:
6514 #line 2670 "parse.y"
6515 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6516     break;}
6517 case 567:
6518 #line 2672 "parse.y"
6519 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6520     break;}
6521 case 568:
6522 #line 2674 "parse.y"
6523 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6524     break;}
6525 case 569:
6526 #line 2676 "parse.y"
6527 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6528     break;}
6529 case 570:
6530 #line 2683 "parse.y"
6531 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6532     break;}
6533 case 571:
6534 #line 2685 "parse.y"
6535 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6536     break;}
6537 case 572:
6538 #line 2687 "parse.y"
6539 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6540     break;}
6541 case 573:
6542 #line 2689 "parse.y"
6543 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6544     break;}
6545 case 574:
6546 #line 2691 "parse.y"
6547 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6548                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6549                 ;
6550     break;}
6551 case 576:
6552 #line 2699 "parse.y"
6553 {
6554                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6555                     {
6556                       yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6557                       if (current_class_type
6558                           && TYPE_BEING_DEFINED (current_class_type)
6559                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6560                         {
6561                           /* Remember that this name has been used in the class
6562                              definition, as per [class.scope0] */
6563                           pushdecl_class_level (yyval.ttype);
6564                         }
6565                     }
6566                   else
6567                     yyval.ttype = yyvsp[0].ttype;
6568                 ;
6569     break;}
6570 case 577:
6571 #line 2716 "parse.y"
6572 {
6573                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6574                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6575                   else
6576                     yyval.ttype = yyvsp[0].ttype;
6577                   got_scope = NULL_TREE;
6578                 ;
6579     break;}
6580 case 580:
6581 #line 2729 "parse.y"
6582 { yyval.ttype = yyvsp[0].ttype; ;
6583     break;}
6584 case 581:
6585 #line 2734 "parse.y"
6586 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6587     break;}
6588 case 582:
6589 #line 2739 "parse.y"
6590 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6591     break;}
6592 case 583:
6593 #line 2741 "parse.y"
6594 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6595     break;}
6596 case 584:
6597 #line 2743 "parse.y"
6598 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6599     break;}
6600 case 585:
6601 #line 2745 "parse.y"
6602 { yyval.ttype = yyvsp[-1].ttype; ;
6603     break;}
6604 case 586:
6605 #line 2747 "parse.y"
6606 { push_nested_class (yyvsp[-1].ttype, 3);
6607                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
6608                   TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
6609     break;}
6610 case 588:
6611 #line 2758 "parse.y"
6612 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6613     break;}
6614 case 589:
6615 #line 2760 "parse.y"
6616 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6617     break;}
6618 case 590:
6619 #line 2762 "parse.y"
6620 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6621     break;}
6622 case 591:
6623 #line 2764 "parse.y"
6624 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6625     break;}
6626 case 592:
6627 #line 2766 "parse.y"
6628 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6629                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6630                 ;
6631     break;}
6632 case 594:
6633 #line 2774 "parse.y"
6634 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6635     break;}
6636 case 595:
6637 #line 2776 "parse.y"
6638 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6639     break;}
6640 case 596:
6641 #line 2778 "parse.y"
6642 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6643     break;}
6644 case 597:
6645 #line 2780 "parse.y"
6646 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6647     break;}
6648 case 598:
6649 #line 2782 "parse.y"
6650 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6651                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6652                 ;
6653     break;}
6654 case 600:
6655 #line 2790 "parse.y"
6656 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6657     break;}
6658 case 601:
6659 #line 2792 "parse.y"
6660 { yyval.ttype = yyvsp[-1].ttype; ;
6661     break;}
6662 case 602:
6663 #line 2794 "parse.y"
6664 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6665     break;}
6666 case 603:
6667 #line 2796 "parse.y"
6668 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6669     break;}
6670 case 604:
6671 #line 2798 "parse.y"
6672 { if (TREE_CODE (OP0 (yyvsp[0].ttype)) == NAMESPACE_DECL)
6673                     {
6674                       push_decl_namespace (OP0 (yyvsp[0].ttype));
6675                       TREE_COMPLEXITY (yyvsp[0].ttype) = -1;
6676                     }
6677                   else if (OP0 (yyvsp[0].ttype) != current_class_type)
6678                     {
6679                       push_nested_class (OP0 (yyvsp[0].ttype), 3);
6680                       TREE_COMPLEXITY (yyvsp[0].ttype) = current_class_depth;
6681                     }
6682                 ;
6683     break;}
6684 case 605:
6685 #line 2810 "parse.y"
6686 { got_scope = NULL_TREE;
6687                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
6688                   if (yyvsp[-1].ttype != current_class_type)
6689                     {
6690                       push_nested_class (yyvsp[-1].ttype, 3);
6691                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
6692                     }
6693                 ;
6694     break;}
6695 case 606:
6696 #line 2822 "parse.y"
6697 { got_scope = NULL_TREE;
6698                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6699     break;}
6700 case 607:
6701 #line 2825 "parse.y"
6702 { got_scope = NULL_TREE;
6703                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6704     break;}
6705 case 608:
6706 #line 2831 "parse.y"
6707 { got_scope = NULL_TREE;
6708                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6709     break;}
6710 case 609:
6711 #line 2834 "parse.y"
6712 { got_scope = NULL_TREE;
6713                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6714     break;}
6715 case 611:
6716 #line 2841 "parse.y"
6717 { yyval.ttype = yyvsp[0].ttype; ;
6718     break;}
6719 case 612:
6720 #line 2846 "parse.y"
6721 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
6722     break;}
6723 case 613:
6724 #line 2848 "parse.y"
6725 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
6726     break;}
6727 case 614:
6728 #line 2850 "parse.y"
6729 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6730     break;}
6731 case 619:
6732 #line 2862 "parse.y"
6733 { yyval.ttype = yyvsp[0].ttype; ;
6734     break;}
6735 case 620:
6736 #line 2864 "parse.y"
6737 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6738     break;}
6739 case 621:
6740 #line 2871 "parse.y"
6741 {
6742                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
6743                     {
6744                       yyval.ttype = lastiddecl;
6745                       /* Remember that this name has been used in the class
6746                          definition, as per [class.scope0] */
6747                       if (current_class_type
6748                           && TYPE_BEING_DEFINED (current_class_type)
6749                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
6750                         pushdecl_class_level (yyval.ttype);
6751                     }
6752                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
6753                 ;
6754     break;}
6755 case 622:
6756 #line 2885 "parse.y"
6757 {
6758                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
6759                     yyval.ttype = lastiddecl;
6760                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
6761                 ;
6762     break;}
6763 case 623:
6764 #line 2891 "parse.y"
6765 {
6766                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
6767                     yyval.ttype = lastiddecl;
6768                   got_scope = yyval.ttype;
6769                 ;
6770     break;}
6771 case 624:
6772 #line 2897 "parse.y"
6773 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
6774     break;}
6775 case 626:
6776 #line 2913 "parse.y"
6777 { yyval.ttype = yyvsp[0].ttype; ;
6778     break;}
6779 case 627:
6780 #line 2918 "parse.y"
6781 {
6782                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
6783                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
6784                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6785                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6786                   else
6787                     {
6788                       yyval.ttype = yyvsp[0].ttype;
6789                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
6790                         yyval.ttype = TREE_TYPE (yyval.ttype);
6791                     }
6792                 ;
6793     break;}
6794 case 628:
6795 #line 2931 "parse.y"
6796 { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
6797     break;}
6798 case 629:
6799 #line 2933 "parse.y"
6800 { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6801     break;}
6802 case 630:
6803 #line 2935 "parse.y"
6804 { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6805     break;}
6806 case 631:
6807 #line 2940 "parse.y"
6808 {
6809                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6810                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6811                 ;
6812     break;}
6813 case 632:
6814 #line 2945 "parse.y"
6815 {
6816                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
6817                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
6818                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6819                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6820                   else
6821                     {
6822                       yyval.ttype = yyvsp[0].ttype;
6823                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
6824                         yyval.ttype = TREE_TYPE (yyval.ttype);
6825                     }
6826                 ;
6827     break;}
6828 case 633:
6829 #line 2958 "parse.y"
6830 { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6831     break;}
6832 case 634:
6833 #line 2960 "parse.y"
6834 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6835     break;}
6836 case 635:
6837 #line 2965 "parse.y"
6838 {
6839                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
6840                     yyvsp[-1].ttype = lastiddecl;
6841
6842                   /* Retrieve the type for the identifier, which might involve
6843                      some computation. */
6844                   got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));
6845
6846                   if (yyval.ttype == error_mark_node)
6847                     cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
6848                 ;
6849     break;}
6850 case 636:
6851 #line 2977 "parse.y"
6852 {
6853                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
6854                     yyval.ttype = lastiddecl;
6855                   got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
6856                 ;
6857     break;}
6858 case 637:
6859 #line 2983 "parse.y"
6860 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
6861     break;}
6862 case 640:
6863 #line 2987 "parse.y"
6864 {
6865                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
6866                     yyval.ttype = lastiddecl;
6867                   got_scope = yyval.ttype;
6868                 ;
6869     break;}
6870 case 641:
6871 #line 2996 "parse.y"
6872 { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6873     break;}
6874 case 642:
6875 #line 3001 "parse.y"
6876 {
6877                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6878                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6879                   else
6880                     yyval.ttype = yyvsp[0].ttype;
6881                   got_scope = NULL_TREE;
6882                 ;
6883     break;}
6884 case 644:
6885 #line 3010 "parse.y"
6886 { yyval.ttype = yyvsp[0].ttype; ;
6887     break;}
6888 case 645:
6889 #line 3015 "parse.y"
6890 { got_scope = NULL_TREE; ;
6891     break;}
6892 case 646:
6893 #line 3017 "parse.y"
6894 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
6895     break;}
6896 case 647:
6897 #line 3024 "parse.y"
6898 { got_scope = void_type_node; ;
6899     break;}
6900 case 648:
6901 #line 3030 "parse.y"
6902 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6903     break;}
6904 case 649:
6905 #line 3032 "parse.y"
6906 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
6907     break;}
6908 case 650:
6909 #line 3034 "parse.y"
6910 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6911     break;}
6912 case 651:
6913 #line 3036 "parse.y"
6914 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
6915     break;}
6916 case 652:
6917 #line 3038 "parse.y"
6918 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
6919                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
6920                 ;
6921     break;}
6922 case 653:
6923 #line 3042 "parse.y"
6924 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6925                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6926                 ;
6927     break;}
6928 case 655:
6929 #line 3051 "parse.y"
6930 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
6931     break;}
6932 case 656:
6933 #line 3053 "parse.y"
6934 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6935     break;}
6936 case 657:
6937 #line 3059 "parse.y"
6938 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6939     break;}
6940 case 658:
6941 #line 3061 "parse.y"
6942 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6943     break;}
6944 case 659:
6945 #line 3063 "parse.y"
6946 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
6947     break;}
6948 case 660:
6949 #line 3065 "parse.y"
6950 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
6951     break;}
6952 case 661:
6953 #line 3067 "parse.y"
6954 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6955     break;}
6956 case 662:
6957 #line 3069 "parse.y"
6958 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6959     break;}
6960 case 663:
6961 #line 3071 "parse.y"
6962 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
6963     break;}
6964 case 664:
6965 #line 3073 "parse.y"
6966 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
6967     break;}
6968 case 665:
6969 #line 3075 "parse.y"
6970 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
6971                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
6972                 ;
6973     break;}
6974 case 666:
6975 #line 3079 "parse.y"
6976 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6977                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6978                 ;
6979     break;}
6980 case 668:
6981 #line 3088 "parse.y"
6982 { yyval.ttype = yyvsp[-1].ttype; ;
6983     break;}
6984 case 670:
6985 #line 3092 "parse.y"
6986 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6987     break;}
6988 case 671:
6989 #line 3094 "parse.y"
6990 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
6991     break;}
6992 case 672:
6993 #line 3096 "parse.y"
6994 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6995     break;}
6996 case 673:
6997 #line 3098 "parse.y"
6998 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6999     break;}
7000 case 674:
7001 #line 3100 "parse.y"
7002 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7003     break;}
7004 case 675:
7005 #line 3102 "parse.y"
7006 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7007     break;}
7008 case 676:
7009 #line 3104 "parse.y"
7010 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7011     break;}
7012 case 677:
7013 #line 3106 "parse.y"
7014 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7015     break;}
7016 case 678:
7017 #line 3108 "parse.y"
7018 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7019     break;}
7020 case 685:
7021 #line 3131 "parse.y"
7022 { if (pedantic)
7023                     pedwarn ("ANSI C++ forbids label declarations"); ;
7024     break;}
7025 case 688:
7026 #line 3142 "parse.y"
7027 { tree link;
7028                   for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7029                     {
7030                       tree label = shadow_label (TREE_VALUE (link));
7031                       C_DECLARED_LABEL_FLAG (label) = 1;
7032                       declare_nonlocal_label (label);
7033                     }
7034                 ;
7035     break;}
7036 case 689:
7037 #line 3156 "parse.y"
7038 {;
7039     break;}
7040 case 691:
7041 #line 3162 "parse.y"
7042 { yyval.ttype = begin_compound_stmt (0); ;
7043     break;}
7044 case 692:
7045 #line 3164 "parse.y"
7046 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7047     break;}
7048 case 693:
7049 #line 3169 "parse.y"
7050 {
7051                   yyval.ttype = begin_if_stmt ();
7052                   cond_stmt_keyword = "if";
7053                 ;
7054     break;}
7055 case 694:
7056 #line 3174 "parse.y"
7057 { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7058     break;}
7059 case 695:
7060 #line 3176 "parse.y"
7061 { yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
7062     break;}
7063 case 697:
7064 #line 3181 "parse.y"
7065 { yyval.ttype = begin_compound_stmt (0); ;
7066     break;}
7067 case 698:
7068 #line 3183 "parse.y"
7069 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7070     break;}
7071 case 699:
7072 #line 3188 "parse.y"
7073 {;
7074     break;}
7075 case 701:
7076 #line 3194 "parse.y"
7077 { finish_stmt (); ;
7078     break;}
7079 case 702:
7080 #line 3196 "parse.y"
7081 { finish_expr_stmt (yyvsp[-1].ttype); ;
7082     break;}
7083 case 703:
7084 #line 3198 "parse.y"
7085 { begin_else_clause (); ;
7086     break;}
7087 case 704:
7088 #line 3200 "parse.y"
7089
7090                   finish_else_clause (yyvsp[-3].ttype); 
7091                   finish_if_stmt ();
7092                 ;
7093     break;}
7094 case 705:
7095 #line 3205 "parse.y"
7096 { finish_if_stmt (); ;
7097     break;}
7098 case 706:
7099 #line 3207 "parse.y"
7100 {
7101                   yyval.ttype = begin_while_stmt ();
7102                   cond_stmt_keyword = "while";
7103                 ;
7104     break;}
7105 case 707:
7106 #line 3212 "parse.y"
7107 { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7108     break;}
7109 case 708:
7110 #line 3214 "parse.y"
7111 { finish_while_stmt (yyvsp[-3].ttype); ;
7112     break;}
7113 case 709:
7114 #line 3216 "parse.y"
7115 { yyval.ttype = begin_do_stmt (); ;
7116     break;}
7117 case 710:
7118 #line 3218 "parse.y"
7119 {
7120                   finish_do_body (yyvsp[-2].ttype);
7121                   cond_stmt_keyword = "do";
7122                 ;
7123     break;}
7124 case 711:
7125 #line 3223 "parse.y"
7126 { finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7127     break;}
7128 case 712:
7129 #line 3225 "parse.y"
7130 { yyval.ttype = begin_for_stmt (); ;
7131     break;}
7132 case 713:
7133 #line 3227 "parse.y"
7134 { finish_for_init_stmt (yyvsp[-2].ttype); ;
7135     break;}
7136 case 714:
7137 #line 3229 "parse.y"
7138 { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7139     break;}
7140 case 715:
7141 #line 3231 "parse.y"
7142 { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
7143     break;}
7144 case 716:
7145 #line 3233 "parse.y"
7146 { finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
7147     break;}
7148 case 717:
7149 #line 3235 "parse.y"
7150 { begin_switch_stmt (); ;
7151     break;}
7152 case 718:
7153 #line 3237 "parse.y"
7154 { yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
7155     break;}
7156 case 719:
7157 #line 3239 "parse.y"
7158 { finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7159     break;}
7160 case 720:
7161 #line 3241 "parse.y"
7162 { finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
7163     break;}
7164 case 722:
7165 #line 3244 "parse.y"
7166 { finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7167     break;}
7168 case 724:
7169 #line 3247 "parse.y"
7170 { finish_case_label (NULL_TREE, NULL_TREE); ;
7171     break;}
7172 case 726:
7173 #line 3250 "parse.y"
7174 { finish_break_stmt (); ;
7175     break;}
7176 case 727:
7177 #line 3252 "parse.y"
7178 { finish_continue_stmt (); ;
7179     break;}
7180 case 728:
7181 #line 3254 "parse.y"
7182 { finish_return_stmt (NULL_TREE); ;
7183     break;}
7184 case 729:
7185 #line 3256 "parse.y"
7186 { finish_return_stmt (yyvsp[-1].ttype); ;
7187     break;}
7188 case 730:
7189 #line 3258 "parse.y"
7190
7191                   finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7192                                    NULL_TREE); 
7193                 ;
7194     break;}
7195 case 731:
7196 #line 3264 "parse.y"
7197
7198                   finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7199                                    NULL_TREE); 
7200                 ;
7201     break;}
7202 case 732:
7203 #line 3270 "parse.y"
7204 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
7205     break;}
7206 case 733:
7207 #line 3274 "parse.y"
7208 { finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
7209     break;}
7210 case 734:
7211 #line 3276 "parse.y"
7212
7213                   if (pedantic)
7214                     pedwarn ("ANSI C++ forbids computed gotos");
7215                   finish_goto_stmt (yyvsp[-1].ttype);
7216                 ;
7217     break;}
7218 case 735:
7219 #line 3282 "parse.y"
7220 { finish_goto_stmt (yyvsp[-1].ttype); ;
7221     break;}
7222 case 736:
7223 #line 3284 "parse.y"
7224 { finish_stmt (); ;
7225     break;}
7226 case 737:
7227 #line 3286 "parse.y"
7228 { error ("label must be followed by statement");
7229                   yyungetc ('}', 0);
7230                   finish_stmt (); ;
7231     break;}
7232 case 738:
7233 #line 3290 "parse.y"
7234 { finish_stmt (); ;
7235     break;}
7236 case 741:
7237 #line 3294 "parse.y"
7238 { do_local_using_decl (yyvsp[0].ttype); ;
7239     break;}
7240 case 743:
7241 #line 3300 "parse.y"
7242 {
7243                   if (! current_function_parms_stored)
7244                     store_parm_decls ();
7245                   expand_start_early_try_stmts ();
7246                 ;
7247     break;}
7248 case 744:
7249 #line 3306 "parse.y"
7250
7251                   expand_start_all_catch (); 
7252                 ;
7253     break;}
7254 case 745:
7255 #line 3310 "parse.y"
7256 {
7257                   int nested = (hack_decl_function_context
7258                                 (current_function_decl) != NULL_TREE);
7259                   expand_end_all_catch ();
7260                   finish_function (lineno, (int)yyvsp[-3].itype, nested);
7261                 ;
7262     break;}
7263 case 746:
7264 #line 3320 "parse.y"
7265 { yyval.ttype = begin_try_block (); ;
7266     break;}
7267 case 747:
7268 #line 3322 "parse.y"
7269 { finish_try_block (yyvsp[-1].ttype); ;
7270     break;}
7271 case 748:
7272 #line 3324 "parse.y"
7273 { finish_handler_sequence (yyvsp[-3].ttype); ;
7274     break;}
7275 case 751:
7276 #line 3334 "parse.y"
7277 { yyval.ttype = begin_handler(); ;
7278     break;}
7279 case 752:
7280 #line 3336 "parse.y"
7281 { finish_handler_parms (yyvsp[-1].ttype); ;
7282     break;}
7283 case 753:
7284 #line 3338 "parse.y"
7285 { finish_handler (yyvsp[-3].ttype); ;
7286     break;}
7287 case 756:
7288 #line 3348 "parse.y"
7289 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7290     break;}
7291 case 757:
7292 #line 3364 "parse.y"
7293 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7294                   expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7295                                             TREE_VALUE (yyvsp[-1].ftype.t)); ;
7296     break;}
7297 case 758:
7298 #line 3371 "parse.y"
7299 { tree label;
7300                 do_label:
7301                   label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7302                   if (label && ! minimal_parse_mode)
7303                     expand_label (label);
7304                 ;
7305     break;}
7306 case 759:
7307 #line 3378 "parse.y"
7308 { goto do_label; ;
7309     break;}
7310 case 760:
7311 #line 3380 "parse.y"
7312 { goto do_label; ;
7313     break;}
7314 case 761:
7315 #line 3382 "parse.y"
7316 { goto do_label; ;
7317     break;}
7318 case 762:
7319 #line 3387 "parse.y"
7320 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
7321     break;}
7322 case 764:
7323 #line 3390 "parse.y"
7324 { if (pedantic)
7325                     pedwarn ("ANSI C++ forbids compound statements inside for initializations");
7326                 ;
7327     break;}
7328 case 765:
7329 #line 3399 "parse.y"
7330 { emit_line_note (input_filename, lineno);
7331                   yyval.ttype = NULL_TREE; ;
7332     break;}
7333 case 766:
7334 #line 3402 "parse.y"
7335 { emit_line_note (input_filename, lineno); ;
7336     break;}
7337 case 767:
7338 #line 3407 "parse.y"
7339 { yyval.ttype = NULL_TREE; ;
7340     break;}
7341 case 769:
7342 #line 3410 "parse.y"
7343 { yyval.ttype = NULL_TREE; ;
7344     break;}
7345 case 770:
7346 #line 3417 "parse.y"
7347 { yyval.ttype = NULL_TREE; ;
7348     break;}
7349 case 773:
7350 #line 3424 "parse.y"
7351 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
7352     break;}
7353 case 774:
7354 #line 3429 "parse.y"
7355 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
7356     break;}
7357 case 775:
7358 #line 3434 "parse.y"
7359 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
7360     break;}
7361 case 776:
7362 #line 3436 "parse.y"
7363 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
7364     break;}
7365 case 777:
7366 #line 3447 "parse.y"
7367 {
7368                   yyval.ttype = empty_parms();
7369                 ;
7370     break;}
7371 case 779:
7372 #line 3452 "parse.y"
7373 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
7374                   check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
7375     break;}
7376 case 780:
7377 #line 3460 "parse.y"
7378 { yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
7379     break;}
7380 case 781:
7381 #line 3462 "parse.y"
7382 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7383     break;}
7384 case 782:
7385 #line 3465 "parse.y"
7386 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7387     break;}
7388 case 783:
7389 #line 3467 "parse.y"
7390 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7391                                                          yyvsp[-1].ftype.t), 1); ;
7392     break;}
7393 case 784:
7394 #line 3470 "parse.y"
7395 { yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
7396     break;}
7397 case 785:
7398 #line 3472 "parse.y"
7399 {
7400                   /* This helps us recover from really nasty
7401                      parse errors, for example, a missing right
7402                      parenthesis.  */
7403                   yyerror ("possibly missing ')'");
7404                   yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
7405                   yyungetc (':', 0);
7406                   yychar = ')';
7407                 ;
7408     break;}
7409 case 786:
7410 #line 3482 "parse.y"
7411 {
7412                   /* This helps us recover from really nasty
7413                      parse errors, for example, a missing right
7414                      parenthesis.  */
7415                   yyerror ("possibly missing ')'");
7416                   yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7417                                                          yyvsp[-1].ftype.t), 0); 
7418                   yyungetc (':', 0);
7419                   yychar = ')';
7420                 ;
7421     break;}
7422 case 787:
7423 #line 3497 "parse.y"
7424 { maybe_snarf_defarg (); ;
7425     break;}
7426 case 788:
7427 #line 3499 "parse.y"
7428 { yyval.ttype = yyvsp[0].ttype; ;
7429     break;}
7430 case 791:
7431 #line 3510 "parse.y"
7432 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7433                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
7434     break;}
7435 case 792:
7436 #line 3513 "parse.y"
7437 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7438                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
7439     break;}
7440 case 793:
7441 #line 3516 "parse.y"
7442 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7443                   yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
7444     break;}
7445 case 794:
7446 #line 3519 "parse.y"
7447 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
7448     break;}
7449 case 795:
7450 #line 3521 "parse.y"
7451 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
7452     break;}
7453 case 797:
7454 #line 3527 "parse.y"
7455 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7456                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
7457     break;}
7458 case 798:
7459 #line 3537 "parse.y"
7460 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7461                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
7462                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
7463     break;}
7464 case 799:
7465 #line 3541 "parse.y"
7466 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
7467                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7468     break;}
7469 case 800:
7470 #line 3544 "parse.y"
7471 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
7472                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7473     break;}
7474 case 801:
7475 #line 3547 "parse.y"
7476 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7477                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
7478                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7479     break;}
7480 case 802:
7481 #line 3551 "parse.y"
7482 { tree specs = strip_attrs (yyvsp[0].ftype.t);
7483                   yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
7484                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7485     break;}
7486 case 803:
7487 #line 3555 "parse.y"
7488 { tree specs = strip_attrs (yyvsp[-1].ttype);
7489                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
7490                   yyval.ftype.new_type_flag = 0; ;
7491     break;}
7492 case 804:
7493 #line 3562 "parse.y"
7494 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
7495                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
7496     break;}
7497 case 805:
7498 #line 3565 "parse.y"
7499 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
7500                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
7501     break;}
7502 case 808:
7503 #line 3576 "parse.y"
7504 { see_typename (); ;
7505     break;}
7506 case 809:
7507 #line 3581 "parse.y"
7508 {
7509                   error ("type specifier omitted for parameter");
7510                   yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
7511                 ;
7512     break;}
7513 case 810:
7514 #line 3586 "parse.y"
7515 {
7516                   error ("type specifier omitted for parameter");
7517                   if (TREE_CODE (yyval.ttype) == SCOPE_REF
7518                       && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
7519                           || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
7520                     cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
7521                   yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
7522                 ;
7523     break;}
7524 case 811:
7525 #line 3598 "parse.y"
7526 { yyval.ttype = NULL_TREE; ;
7527     break;}
7528 case 812:
7529 #line 3600 "parse.y"
7530 { yyval.ttype = yyvsp[-1].ttype; ;
7531     break;}
7532 case 813:
7533 #line 3602 "parse.y"
7534 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
7535     break;}
7536 case 814:
7537 #line 3607 "parse.y"
7538 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
7539     break;}
7540 case 816:
7541 #line 3613 "parse.y"
7542 {
7543                   TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
7544                   yyval.ttype = yyvsp[0].ttype;
7545                 ;
7546     break;}
7547 case 817:
7548 #line 3621 "parse.y"
7549 { yyval.ttype = NULL_TREE; ;
7550     break;}
7551 case 818:
7552 #line 3623 "parse.y"
7553 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7554     break;}
7555 case 819:
7556 #line 3625 "parse.y"
7557 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7558     break;}
7559 case 820:
7560 #line 3627 "parse.y"
7561 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7562                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7563                 ;
7564     break;}
7565 case 821:
7566 #line 3634 "parse.y"
7567 { got_scope = NULL_TREE; ;
7568     break;}
7569 case 822:
7570 #line 3639 "parse.y"
7571 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
7572     break;}
7573 case 823:
7574 #line 3641 "parse.y"
7575 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
7576     break;}
7577 case 824:
7578 #line 3643 "parse.y"
7579 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
7580     break;}
7581 case 825:
7582 #line 3645 "parse.y"
7583 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
7584     break;}
7585 case 826:
7586 #line 3647 "parse.y"
7587 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
7588     break;}
7589 case 827:
7590 #line 3649 "parse.y"
7591 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
7592     break;}
7593 case 828:
7594 #line 3651 "parse.y"
7595 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
7596     break;}
7597 case 829:
7598 #line 3653 "parse.y"
7599 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
7600     break;}
7601 case 830:
7602 #line 3655 "parse.y"
7603 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
7604     break;}
7605 case 831:
7606 #line 3657 "parse.y"
7607 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
7608     break;}
7609 case 832:
7610 #line 3659 "parse.y"
7611 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7612     break;}
7613 case 833:
7614 #line 3661 "parse.y"
7615 { yyval.ttype = ansi_opname[LT_EXPR]; ;
7616     break;}
7617 case 834:
7618 #line 3663 "parse.y"
7619 { yyval.ttype = ansi_opname[GT_EXPR]; ;
7620     break;}
7621 case 835:
7622 #line 3665 "parse.y"
7623 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7624     break;}
7625 case 836:
7626 #line 3667 "parse.y"
7627 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
7628     break;}
7629 case 837:
7630 #line 3669 "parse.y"
7631 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
7632     break;}
7633 case 838:
7634 #line 3671 "parse.y"
7635 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7636     break;}
7637 case 839:
7638 #line 3673 "parse.y"
7639 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7640     break;}
7641 case 840:
7642 #line 3675 "parse.y"
7643 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
7644     break;}
7645 case 841:
7646 #line 3677 "parse.y"
7647 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
7648     break;}
7649 case 842:
7650 #line 3679 "parse.y"
7651 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
7652     break;}
7653 case 843:
7654 #line 3681 "parse.y"
7655 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
7656     break;}
7657 case 844:
7658 #line 3683 "parse.y"
7659 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
7660     break;}
7661 case 845:
7662 #line 3685 "parse.y"
7663 { yyval.ttype = ansi_opname[COND_EXPR]; ;
7664     break;}
7665 case 846:
7666 #line 3687 "parse.y"
7667 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7668     break;}
7669 case 847:
7670 #line 3689 "parse.y"
7671 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
7672     break;}
7673 case 848:
7674 #line 3691 "parse.y"
7675 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
7676     break;}
7677 case 849:
7678 #line 3693 "parse.y"
7679 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
7680     break;}
7681 case 850:
7682 #line 3695 "parse.y"
7683 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
7684     break;}
7685 case 851:
7686 #line 3697 "parse.y"
7687 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
7688     break;}
7689 case 852:
7690 #line 3699 "parse.y"
7691 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
7692     break;}
7693 case 853:
7694 #line 3701 "parse.y"
7695 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
7696     break;}
7697 case 854:
7698 #line 3703 "parse.y"
7699 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
7700     break;}
7701 case 855:
7702 #line 3706 "parse.y"
7703 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7704     break;}
7705 case 856:
7706 #line 3708 "parse.y"
7707 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
7708     break;}
7709 }
7710    /* the action file gets copied in in place of this dollarsign */
7711 #line 498 "/usr/lib/bison.simple"
7712 \f
7713   yyvsp -= yylen;
7714   yyssp -= yylen;
7715 #ifdef YYLSP_NEEDED
7716   yylsp -= yylen;
7717 #endif
7718
7719 #if YYDEBUG != 0
7720   if (yydebug)
7721     {
7722       short *ssp1 = yyss - 1;
7723       fprintf (stderr, "state stack now");
7724       while (ssp1 != yyssp)
7725         fprintf (stderr, " %d", *++ssp1);
7726       fprintf (stderr, "\n");
7727     }
7728 #endif
7729
7730   *++yyvsp = yyval;
7731
7732 #ifdef YYLSP_NEEDED
7733   yylsp++;
7734   if (yylen == 0)
7735     {
7736       yylsp->first_line = yylloc.first_line;
7737       yylsp->first_column = yylloc.first_column;
7738       yylsp->last_line = (yylsp-1)->last_line;
7739       yylsp->last_column = (yylsp-1)->last_column;
7740       yylsp->text = 0;
7741     }
7742   else
7743     {
7744       yylsp->last_line = (yylsp+yylen-1)->last_line;
7745       yylsp->last_column = (yylsp+yylen-1)->last_column;
7746     }
7747 #endif
7748
7749   /* Now "shift" the result of the reduction.
7750      Determine what state that goes to,
7751      based on the state we popped back to
7752      and the rule number reduced by.  */
7753
7754   yyn = yyr1[yyn];
7755
7756   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
7757   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7758     yystate = yytable[yystate];
7759   else
7760     yystate = yydefgoto[yyn - YYNTBASE];
7761
7762   goto yynewstate;
7763
7764 yyerrlab:   /* here on detecting error */
7765
7766   if (! yyerrstatus)
7767     /* If not already recovering from an error, report this error.  */
7768     {
7769       ++yynerrs;
7770
7771 #ifdef YYERROR_VERBOSE
7772       yyn = yypact[yystate];
7773
7774       if (yyn > YYFLAG && yyn < YYLAST)
7775         {
7776           int size = 0;
7777           char *msg;
7778           int x, count;
7779
7780           count = 0;
7781           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
7782           for (x = (yyn < 0 ? -yyn : 0);
7783                x < (sizeof(yytname) / sizeof(char *)); x++)
7784             if (yycheck[x + yyn] == x)
7785               size += strlen(yytname[x]) + 15, count++;
7786           msg = (char *) malloc(size + 15);
7787           if (msg != 0)
7788             {
7789               strcpy(msg, "parse error");
7790
7791               if (count < 5)
7792                 {
7793                   count = 0;
7794                   for (x = (yyn < 0 ? -yyn : 0);
7795                        x < (sizeof(yytname) / sizeof(char *)); x++)
7796                     if (yycheck[x + yyn] == x)
7797                       {
7798                         strcat(msg, count == 0 ? ", expecting `" : " or `");
7799                         strcat(msg, yytname[x]);
7800                         strcat(msg, "'");
7801                         count++;
7802                       }
7803                 }
7804               yyerror(msg);
7805               free(msg);
7806             }
7807           else
7808             yyerror ("parse error; also virtual memory exceeded");
7809         }
7810       else
7811 #endif /* YYERROR_VERBOSE */
7812         yyerror("parse error");
7813     }
7814
7815   goto yyerrlab1;
7816 yyerrlab1:   /* here on error raised explicitly by an action */
7817
7818   if (yyerrstatus == 3)
7819     {
7820       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
7821
7822       /* return failure if at end of input */
7823       if (yychar == YYEOF)
7824         YYABORT;
7825
7826 #if YYDEBUG != 0
7827       if (yydebug)
7828         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
7829 #endif
7830
7831       yychar = YYEMPTY;
7832     }
7833
7834   /* Else will try to reuse lookahead token
7835      after shifting the error token.  */
7836
7837   yyerrstatus = 3;              /* Each real token shifted decrements this */
7838
7839   goto yyerrhandle;
7840
7841 yyerrdefault:  /* current state does not do anything special for the error token. */
7842
7843 #if 0
7844   /* This is wrong; only states that explicitly want error tokens
7845      should shift them.  */
7846   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
7847   if (yyn) goto yydefault;
7848 #endif
7849
7850 yyerrpop:   /* pop the current state because it cannot handle the error token */
7851
7852   if (yyssp == yyss) YYABORT;
7853   yyvsp--;
7854   yystate = *--yyssp;
7855 #ifdef YYLSP_NEEDED
7856   yylsp--;
7857 #endif
7858
7859 #if YYDEBUG != 0
7860   if (yydebug)
7861     {
7862       short *ssp1 = yyss - 1;
7863       fprintf (stderr, "Error: state stack now");
7864       while (ssp1 != yyssp)
7865         fprintf (stderr, " %d", *++ssp1);
7866       fprintf (stderr, "\n");
7867     }
7868 #endif
7869
7870 yyerrhandle:
7871
7872   yyn = yypact[yystate];
7873   if (yyn == YYFLAG)
7874     goto yyerrdefault;
7875
7876   yyn += YYTERROR;
7877   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
7878     goto yyerrdefault;
7879
7880   yyn = yytable[yyn];
7881   if (yyn < 0)
7882     {
7883       if (yyn == YYFLAG)
7884         goto yyerrpop;
7885       yyn = -yyn;
7886       goto yyreduce;
7887     }
7888   else if (yyn == 0)
7889     goto yyerrpop;
7890
7891   if (yyn == YYFINAL)
7892     YYACCEPT;
7893
7894 #if YYDEBUG != 0
7895   if (yydebug)
7896     fprintf(stderr, "Shifting error token, ");
7897 #endif
7898
7899   *++yyvsp = yylval;
7900 #ifdef YYLSP_NEEDED
7901   *++yylsp = yylloc;
7902 #endif
7903
7904   yystate = yyn;
7905   goto yynewstate;
7906 }
7907 #line 3711 "parse.y"
7908
7909
7910 #ifdef SPEW_DEBUG
7911 const char *
7912 debug_yytranslate (value)
7913     int value;
7914 {
7915   return yytname[YYTRANSLATE (value)];
7916 }
7917
7918 #endif