fffd420c04e8d2fc5c63324f525be6134e8775c0
[platform/upstream/gcc.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 kind of the most recent one
170    being defined.  (For example, this might be class_type_node.)  */
171 static tree current_aggr;
172
173 /* When defining an enumeration, this is the type of the enumeration.  */
174 static tree current_enum_type;
175
176 /* Tell yyparse how to print a token's value, if yydebug is set.  */
177
178 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
179 extern void yyprint                     PROTO((FILE *, int, YYSTYPE));
180 extern tree combine_strings             PROTO((tree));
181
182 static int
183 parse_decl(declarator, specs_attrs, attributes, initialized, decl)
184   tree declarator;
185   tree specs_attrs;
186   tree attributes;
187   int initialized;
188   tree* decl;
189 {
190   int  sm;
191
192   split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
193   if (current_declspecs
194       && TREE_CODE (current_declspecs) != TREE_LIST)
195     current_declspecs = get_decl_list (current_declspecs);
196   if (have_extern_spec && !used_extern_spec)
197     {
198       current_declspecs = decl_tree_cons (NULL_TREE, 
199                                           get_identifier ("extern"), 
200                                           current_declspecs);
201       used_extern_spec = 1;
202     }
203   sm = suspend_momentary ();
204   *decl = start_decl (declarator, current_declspecs, initialized,
205                       attributes, prefix_attributes);
206   return sm;
207 }
208 #include <stdio.h>
209
210 #ifndef __cplusplus
211 #ifndef __STDC__
212 #define const
213 #endif
214 #endif
215
216
217
218 #define YYFINAL         1608
219 #define YYFLAG          -32768
220 #define YYNTBASE        112
221
222 #define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 395)
223
224 static const char yytranslate[] = {     0,
225      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
226      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
227      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
228      2,     2,   110,     2,     2,     2,    82,    70,     2,    93,
229    108,    80,    78,    59,    79,    92,    81,     2,     2,     2,
230      2,     2,     2,     2,     2,     2,     2,    62,    60,    74,
231     64,    75,    65,     2,     2,     2,     2,     2,     2,     2,
232      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
233      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
234     94,     2,   111,    69,     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,    58,    68,   109,    88,     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,     2,     2,     2,     2,     2,
247      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
248      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
249      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
250      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
251      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
252     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
253     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
254     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
255     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
256     56,    57,    61,    63,    66,    67,    71,    72,    73,    76,
257     77,    83,    84,    85,    86,    87,    89,    90,    91,    95,
258     96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
259    106,   107
260 };
261
262 #if YYDEBUG != 0
263 static const short yyprhs[] = {     0,
264      0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
265     17,    19,    20,    23,    26,    28,    30,    36,    41,    47,
266     52,    53,    60,    61,    67,    69,    72,    74,    77,    78,
267     85,    88,    92,    96,   100,   104,   109,   110,   116,   119,
268    123,   125,   127,   130,   133,   135,   138,   139,   145,   149,
269    151,   155,   157,   158,   161,   164,   168,   170,   174,   176,
270    180,   182,   186,   189,   192,   195,   197,   199,   205,   210,
271    213,   216,   220,   224,   227,   230,   234,   238,   241,   244,
272    247,   250,   253,   255,   257,   259,   260,   262,   265,   266,
273    268,   273,   277,   281,   282,   291,   297,   298,   308,   315,
274    316,   325,   331,   332,   342,   349,   352,   355,   357,   360,
275    362,   369,   374,   381,   386,   389,   391,   394,   397,   399,
276    402,   404,   407,   410,   415,   418,   422,   423,   424,   426,
277    430,   433,   437,   439,   444,   447,   452,   455,   460,   463,
278    465,   467,   469,   471,   473,   475,   477,   479,   481,   483,
279    485,   486,   493,   494,   501,   502,   508,   509,   515,   516,
280    524,   525,   533,   534,   541,   542,   549,   550,   551,   557,
281    563,   565,   571,   572,   574,   576,   577,   579,   581,   585,
282    587,   589,   591,   593,   595,   597,   599,   601,   603,   605,
283    607,   611,   613,   617,   618,   620,   622,   623,   631,   633,
284    635,   639,   644,   648,   649,   653,   655,   659,   663,   667,
285    671,   673,   675,   677,   680,   683,   686,   689,   692,   695,
286    698,   703,   706,   711,   714,   718,   722,   727,   733,   740,
287    747,   755,   758,   763,   769,   772,   775,   777,   778,   783,
288    788,   792,   794,   798,   801,   805,   810,   812,   815,   821,
289    823,   827,   831,   835,   839,   843,   847,   851,   855,   859,
290    863,   867,   871,   875,   879,   883,   887,   891,   895,   899,
291    905,   909,   913,   915,   918,   922,   926,   928,   930,   932,
292    934,   936,   937,   943,   949,   955,   961,   967,   969,   971,
293    973,   975,   978,   981,   985,   990,   995,   997,   999,  1001,
294   1005,  1007,  1009,  1011,  1013,  1017,  1021,  1025,  1026,  1031,
295   1036,  1039,  1044,  1047,  1052,  1055,  1058,  1060,  1065,  1067,
296   1075,  1083,  1091,  1099,  1104,  1109,  1112,  1115,  1118,  1120,
297   1125,  1128,  1131,  1137,  1141,  1144,  1147,  1153,  1157,  1163,
298   1167,  1172,  1179,  1182,  1184,  1187,  1189,  1192,  1194,  1196,
299   1198,  1201,  1202,  1205,  1208,  1212,  1216,  1220,  1223,  1226,
300   1229,  1231,  1233,  1235,  1238,  1241,  1244,  1247,  1249,  1251,
301   1253,  1255,  1258,  1261,  1265,  1269,  1273,  1278,  1280,  1283,
302   1286,  1289,  1291,  1293,  1295,  1298,  1301,  1304,  1306,  1308,
303   1311,  1314,  1318,  1320,  1323,  1325,  1327,  1329,  1334,  1339,
304   1344,  1349,  1351,  1353,  1355,  1357,  1361,  1363,  1367,  1369,
305   1373,  1374,  1379,  1380,  1387,  1391,  1392,  1397,  1399,  1403,
306   1407,  1408,  1413,  1417,  1418,  1420,  1422,  1425,  1432,  1434,
307   1438,  1439,  1441,  1446,  1453,  1458,  1460,  1462,  1464,  1466,
308   1468,  1472,  1473,  1476,  1478,  1481,  1485,  1490,  1492,  1494,
309   1498,  1503,  1507,  1513,  1515,  1520,  1524,  1528,  1529,  1533,
310   1537,  1541,  1542,  1545,  1548,  1549,  1557,  1562,  1563,  1570,
311   1574,  1577,  1580,  1583,  1584,  1585,  1595,  1597,  1598,  1600,
312   1601,  1603,  1605,  1608,  1611,  1614,  1617,  1620,  1623,  1626,
313   1629,  1632,  1636,  1641,  1645,  1648,  1652,  1653,  1655,  1659,
314   1662,  1665,  1667,  1669,  1670,  1673,  1677,  1679,  1684,  1686,
315   1690,  1692,  1694,  1699,  1704,  1707,  1710,  1714,  1718,  1720,
316   1721,  1723,  1726,  1731,  1735,  1737,  1740,  1743,  1746,  1749,
317   1752,  1755,  1758,  1760,  1763,  1766,  1770,  1773,  1776,  1781,
318   1786,  1789,  1791,  1797,  1802,  1804,  1805,  1807,  1811,  1812,
319   1814,  1818,  1820,  1822,  1824,  1826,  1831,  1836,  1841,  1846,
320   1851,  1855,  1860,  1865,  1870,  1875,  1879,  1881,  1885,  1887,
321   1891,  1894,  1896,  1904,  1905,  1908,  1910,  1913,  1914,  1917,
322   1922,  1927,  1930,  1935,  1939,  1943,  1946,  1949,  1953,  1955,
323   1957,  1960,  1962,  1964,  1967,  1970,  1975,  1980,  1984,  1988,
324   1991,  1993,  1997,  2001,  2004,  2007,  2011,  2013,  2017,  2021,
325   2024,  2027,  2031,  2033,  2038,  2042,  2047,  2051,  2053,  2056,
326   2059,  2062,  2065,  2068,  2070,  2073,  2078,  2083,  2086,  2088,
327   2090,  2092,  2094,  2097,  2102,  2105,  2108,  2111,  2114,  2116,
328   2119,  2122,  2125,  2128,  2132,  2134,  2137,  2141,  2146,  2149,
329   2152,  2155,  2158,  2161,  2164,  2169,  2172,  2174,  2177,  2180,
330   2184,  2186,  2190,  2193,  2197,  2200,  2203,  2207,  2209,  2213,
331   2218,  2222,  2225,  2228,  2230,  2234,  2237,  2240,  2242,  2245,
332   2249,  2251,  2255,  2257,  2264,  2269,  2274,  2278,  2284,  2288,
333   2292,  2296,  2299,  2301,  2303,  2306,  2309,  2312,  2313,  2315,
334   2317,  2320,  2324,  2326,  2329,  2330,  2334,  2335,  2336,  2342,
335   2344,  2345,  2348,  2350,  2352,  2354,  2357,  2358,  2363,  2365,
336   2366,  2367,  2373,  2374,  2375,  2383,  2384,  2385,  2386,  2387,
337   2400,  2401,  2402,  2410,  2411,  2417,  2418,  2426,  2427,  2432,
338   2435,  2438,  2441,  2445,  2452,  2461,  2472,  2485,  2490,  2494,
339   2497,  2500,  2502,  2504,  2506,  2508,  2510,  2511,  2512,  2519,
340   2520,  2521,  2527,  2529,  2532,  2533,  2534,  2540,  2542,  2544,
341   2548,  2552,  2555,  2558,  2561,  2564,  2567,  2569,  2572,  2573,
342   2575,  2576,  2578,  2580,  2581,  2583,  2585,  2589,  2594,  2596,
343   2600,  2601,  2603,  2605,  2607,  2610,  2613,  2616,  2618,  2621,
344   2624,  2625,  2629,  2631,  2633,  2635,  2638,  2641,  2644,  2649,
345   2652,  2655,  2658,  2661,  2664,  2667,  2669,  2672,  2674,  2677,
346   2679,  2681,  2682,  2683,  2685,  2686,  2691,  2694,  2696,  2698,
347   2702,  2703,  2707,  2711,  2715,  2717,  2720,  2723,  2726,  2729,
348   2732,  2735,  2738,  2741,  2744,  2747,  2750,  2753,  2756,  2759,
349   2762,  2765,  2768,  2771,  2774,  2777,  2780,  2783,  2786,  2790,
350   2793,  2796,  2799,  2802,  2806,  2809,  2812,  2817,  2822,  2826
351 };
352
353 static const short yyrhs[] = {    -1,
354    113,     0,     0,   114,   120,     0,   113,   120,     0,   113,
355      0,     0,     0,     0,    32,     0,    27,     0,     0,   121,
356    122,     0,   148,   147,     0,   144,     0,   141,     0,   119,
357     93,   217,   108,    60,     0,   133,    58,   115,   109,     0,
358    133,   116,   148,   117,   147,     0,   133,   116,   144,   117,
359      0,     0,    44,   163,    58,   123,   115,   109,     0,     0,
360     44,    58,   124,   115,   109,     0,   125,     0,   127,    60,
361      0,   129,     0,   118,   122,     0,     0,    44,   163,    64,
362    126,   132,    60,     0,    46,   309,     0,    46,   323,   309,
363      0,    46,   323,   208,     0,    46,   131,   163,     0,    46,
364    323,   163,     0,    46,   323,   131,   163,     0,     0,    46,
365     44,   130,   132,    60,     0,    57,    54,     0,   131,    57,
366     54,     0,   208,     0,   309,     0,   323,   309,     0,   323,
367    208,     0,    98,     0,   133,    98,     0,     0,    48,    74,
368    135,   136,    75,     0,    48,    74,    75,     0,   140,     0,
369    136,    59,   140,     0,   163,     0,     0,   266,   137,     0,
370     45,   137,     0,   134,   266,   137,     0,   138,     0,   138,
371     64,   223,     0,   386,     0,   386,    64,   203,     0,   139,
372      0,   139,    64,   183,     0,   134,   142,     0,   134,     1,
373      0,   148,   147,     0,   143,     0,   141,     0,   133,   116,
374    148,   117,   147,     0,   133,   116,   143,   117,     0,   118,
375    142,     0,   234,    60,     0,   227,   233,    60,     0,   224,
376    232,    60,     0,   259,    60,     0,   234,    60,     0,   227,
377    233,    60,     0,   224,   232,    60,     0,   227,    60,     0,
378    166,    60,     0,   224,    60,     0,     1,    60,     0,     1,
379    109,     0,    60,     0,   218,     0,   159,     0,     0,   158,
380      0,   158,    60,     0,     0,   107,     0,   154,   146,   145,
381    333,     0,   154,   146,   357,     0,   154,   146,     1,     0,
382      0,   314,     5,    93,   150,   377,   108,   296,   389,     0,
383    314,     5,    47,   296,   389,     0,     0,   323,   314,     5,
384     93,   151,   377,   108,   296,   389,     0,   323,   314,     5,
385     47,   296,   389,     0,     0,   314,   178,    93,   152,   377,
386    108,   296,   389,     0,   314,   178,    47,   296,   389,     0,
387      0,   323,   314,   178,    93,   153,   377,   108,   296,   389,
388      0,   323,   314,   178,    47,   296,   389,     0,   224,   221,
389      0,   227,   306,     0,   306,     0,   227,   149,     0,   149,
390      0,     5,    93,   377,   108,   296,   389,     0,     5,    47,
391    296,   389,     0,   178,    93,   377,   108,   296,   389,     0,
392    178,    47,   296,   389,     0,   227,   155,     0,   155,     0,
393    224,   221,     0,   227,   306,     0,   306,     0,   227,   149,
394      0,   149,     0,    25,     3,     0,   157,   251,     0,   157,
395     93,   195,   108,     0,   157,    47,     0,    62,   160,   161,
396      0,     0,     0,   162,     0,   161,    59,   162,     0,   161,
397      1,     0,    93,   195,   108,     0,    47,     0,   164,    93,
398    195,   108,     0,   164,    47,     0,   302,    93,   195,   108,
399      0,   302,    47,     0,   316,    93,   195,   108,     0,   316,
400     47,     0,     3,     0,     4,     0,     5,     0,    56,     0,
401     57,     0,     3,     0,    56,     0,    57,     0,   104,     0,
402    103,     0,   105,     0,     0,    48,   175,   230,    60,   167,
403    176,     0,     0,    48,   175,   224,   221,   168,   176,     0,
404      0,    48,   175,   306,   169,   176,     0,     0,    48,   175,
405    149,   170,   176,     0,     0,     7,    48,   175,   230,    60,
406    171,   176,     0,     0,     7,    48,   175,   224,   221,   172,
407    176,     0,     0,     7,    48,   175,   306,   173,   176,     0,
408      0,     7,    48,   175,   149,   174,   176,     0,     0,     0,
409     56,    74,   181,   180,   179,     0,     4,    74,   181,   180,
410    179,     0,   178,     0,     5,    74,   181,   180,   179,     0,
411      0,    75,     0,    77,     0,     0,   182,     0,   183,     0,
412    182,    59,   183,     0,   223,     0,    56,     0,   203,     0,
413     79,     0,    78,     0,    86,     0,    87,     0,   110,     0,
414    194,     0,   203,     0,    47,     0,    93,   185,   108,     0,
415     47,     0,    93,   189,   108,     0,     0,   189,     0,     1,
416      0,     0,   367,   221,   235,   244,    64,   190,   252,     0,
417    185,     0,   109,     0,   330,   328,   109,     0,   330,   328,
418      1,   109,     0,   330,     1,   109,     0,     0,    58,   193,
419    191,     0,   342,     0,   203,    59,   203,     0,   203,    59,
420      1,     0,   194,    59,   203,     0,   194,    59,     1,     0,
421    203,     0,   194,     0,   212,     0,   118,   202,     0,    80,
422    202,     0,    70,   202,     0,    88,   202,     0,   184,   202,
423      0,    67,   163,     0,    13,   196,     0,    13,    93,   223,
424    108,     0,    29,   196,     0,    29,    93,   223,   108,     0,
425    214,   295,     0,   214,   295,   200,     0,   214,   199,   295,
426      0,   214,   199,   295,   200,     0,   214,    93,   198,   223,
427    197,     0,   214,    93,   198,   223,   197,   200,     0,   214,
428    199,    93,   198,   223,   197,     0,   214,   199,    93,   198,
429    223,   197,   200,     0,   215,   202,     0,   215,    94,   111,
430    202,     0,   215,    94,   185,   111,   202,     0,    34,   202,
431      0,    35,   202,     0,   108,     0,     0,    93,   198,   195,
432    108,     0,    58,   198,   195,   109,     0,    93,   195,   108,
433      0,    47,     0,    93,   230,   108,     0,    64,   252,     0,
434     93,   223,   108,     0,   201,    93,   223,   108,     0,   196,
435      0,   201,   196,     0,   201,    58,   253,   264,   109,     0,
436    202,     0,   203,    83,   203,     0,   203,    84,   203,     0,
437    203,    78,   203,     0,   203,    79,   203,     0,   203,    80,
438    203,     0,   203,    81,   203,     0,   203,    82,   203,     0,
439    203,    76,   203,     0,   203,    77,   203,     0,   203,    73,
440    203,     0,   203,    74,   203,     0,   203,    75,   203,     0,
441    203,    72,   203,     0,   203,    71,   203,     0,   203,    70,
442    203,     0,   203,    68,   203,     0,   203,    69,   203,     0,
443    203,    67,   203,     0,   203,    66,   203,     0,   203,    65,
444    372,    62,   203,     0,   203,    64,   203,     0,   203,    63,
445    203,     0,    61,     0,    61,   203,     0,    88,   387,   163,
446      0,    88,   387,   177,     0,   206,     0,   394,     0,     3,
447      0,    56,     0,    57,     0,     0,     6,    74,   205,   181,
448    180,     0,   394,    74,   205,   181,   180,     0,    48,   163,
449     74,   181,   180,     0,    48,     6,    74,   181,   180,     0,
450     48,   394,    74,   181,   180,     0,   204,     0,     4,     0,
451      5,     0,   204,     0,    80,   209,     0,    70,   209,     0,
452     93,   209,   108,     0,     3,    74,   181,   180,     0,    57,
453     74,   182,   180,     0,   308,     0,   204,     0,   210,     0,
454     93,   209,   108,     0,   204,     0,    10,     0,   216,     0,
455    217,     0,    93,   185,   108,     0,    93,   209,   108,     0,
456     93,     1,   108,     0,     0,    93,   213,   334,   108,     0,
457    204,    93,   195,   108,     0,   204,    47,     0,   212,    93,
458    195,   108,     0,   212,    47,     0,   212,    94,   185,   111,
459      0,   212,    86,     0,   212,    87,     0,    40,     0,     9,
460     93,   195,   108,     0,   312,     0,    50,    74,   223,    75,
461     93,   185,   108,     0,    51,    74,   223,    75,    93,   185,
462    108,     0,    52,    74,   223,    75,    93,   185,   108,     0,
463     53,    74,   223,    75,    93,   185,   108,     0,    49,    93,
464    185,   108,     0,    49,    93,   223,   108,     0,   323,     3,
465      0,   323,   206,     0,   323,   394,     0,   311,     0,   311,
466     93,   195,   108,     0,   311,    47,     0,   219,   207,     0,
467    219,   207,    93,   195,   108,     0,   219,   207,    47,     0,
468    219,   208,     0,   219,   311,     0,   219,   208,    93,   195,
469    108,     0,   219,   208,    47,     0,   219,   311,    93,   195,
470    108,     0,   219,   311,    47,     0,   219,    88,     8,    47,
471      0,   219,     8,    54,    88,     8,    47,     0,   219,     1,
472      0,    39,     0,   323,    39,     0,    38,     0,   323,   215,
473      0,    42,     0,    43,     0,    11,     0,   217,    11,     0,
474      0,   212,    92,     0,   212,    91,     0,   230,   232,    60,
475      0,   224,   232,    60,     0,   227,   233,    60,     0,   224,
476     60,     0,   227,    60,     0,   118,   220,     0,   301,     0,
477    306,     0,    47,     0,   222,    47,     0,   228,   326,     0,
478    297,   326,     0,   230,   326,     0,   228,     0,   297,     0,
479    228,     0,   225,     0,   227,   230,     0,   230,   226,     0,
480    230,   229,   226,     0,   227,   230,   226,     0,   227,   230,
481    229,     0,   227,   230,   229,   226,     0,     7,     0,   226,
482    231,     0,   226,     7,     0,   226,   245,     0,   245,     0,
483    297,     0,     7,     0,   227,     9,     0,   227,     7,     0,
484    227,   245,     0,   245,     0,   230,     0,   297,   230,     0,
485    230,   229,     0,   297,   230,   229,     0,   231,     0,   229,
486    231,     0,   259,     0,     8,     0,   303,     0,    28,    93,
487    185,   108,     0,    28,    93,   223,   108,     0,    30,    93,
488    185,   108,     0,    30,    93,   223,   108,     0,     8,     0,
489      9,     0,   259,     0,   240,     0,   232,    59,   236,     0,
490    241,     0,   233,    59,   236,     0,   242,     0,   234,    59,
491    236,     0,     0,   119,    93,   217,   108,     0,     0,   221,
492    235,   244,    64,   237,   252,     0,   221,   235,   244,     0,
493      0,   244,    64,   239,   252,     0,   244,     0,   221,   235,
494    238,     0,   306,   235,   238,     0,     0,   306,   235,   243,
495    238,     0,   149,   235,   244,     0,     0,   245,     0,   246,
496      0,   245,   246,     0,    31,    93,    93,   247,   108,   108,
497      0,   248,     0,   247,    59,   248,     0,     0,   249,     0,
498    249,    93,     3,   108,     0,   249,    93,     3,    59,   195,
499    108,     0,   249,    93,   195,   108,     0,   163,     0,     7,
500      0,     8,     0,     9,     0,   163,     0,   250,    59,   163,
501      0,     0,    64,   252,     0,   203,     0,    58,   109,     0,
502     58,   253,   109,     0,    58,   253,    59,   109,     0,     1,
503      0,   252,     0,   253,    59,   252,     0,    94,   203,   111,
504    252,     0,   163,    62,   252,     0,   253,    59,   163,    62,
505    252,     0,    97,     0,   254,   146,   145,   333,     0,   254,
506    146,   357,     0,   254,   146,     1,     0,     0,   256,   255,
507    147,     0,   102,   203,   107,     0,   102,     1,   107,     0,
508      0,   258,   257,     0,   258,     1,     0,     0,    14,   163,
509     58,   260,   293,   265,   109,     0,    14,   163,    58,   109,
510      0,     0,    14,    58,   261,   293,   265,   109,     0,    14,
511     58,   109,     0,    14,   163,     0,    14,   321,     0,    45,
512    316,     0,     0,     0,   273,   279,   281,   109,   244,   262,
513    258,   263,   256,     0,   273,     0,     0,    59,     0,     0,
514     59,     0,    36,     0,   266,     7,     0,   266,     8,     0,
515    266,     9,     0,   266,    36,     0,   266,   245,     0,   266,
516    163,     0,   266,   165,     0,   267,    58,     0,   267,    62,
517      0,   266,   314,   163,     0,   266,   323,   314,   163,     0,
518    266,   323,   163,     0,   266,   177,     0,   266,   314,   177,
519      0,     0,   267,     0,   268,   270,   274,     0,   269,   274,
520      0,   266,    58,     0,   272,     0,   271,     0,     0,    62,
521    387,     0,    62,   387,   275,     0,   276,     0,   275,    59,
522    387,   276,     0,   277,     0,   278,   387,   277,     0,   316,
523      0,   302,     0,    30,    93,   185,   108,     0,    30,    93,
524    223,   108,     0,    37,   387,     0,     7,   387,     0,   278,
525     37,   387,     0,   278,     7,   387,     0,    58,     0,     0,
526    280,     0,   280,   282,     0,   281,    37,    62,   282,     0,
527    281,    37,    62,     0,   283,     0,   282,   283,     0,   284,
528     60,     0,   284,   109,     0,   156,    62,     0,   156,    95,
529      0,   156,    25,     0,   156,    58,     0,    60,     0,   118,
530    283,     0,   134,   283,     0,   134,   224,    60,     0,   224,
531    285,     0,   227,   286,     0,   306,   235,   244,   251,     0,
532    149,   235,   244,   251,     0,    62,   203,     0,     1,     0,
533    227,   155,   235,   244,   251,     0,   155,   235,   244,   251,
534      0,   127,     0,     0,   287,     0,   285,    59,   288,     0,
535      0,   290,     0,   286,    59,   292,     0,   289,     0,   290,
536      0,   291,     0,   292,     0,   301,   235,   244,   251,     0,
537      4,    62,   203,   244,     0,   306,   235,   244,   251,     0,
538    149,   235,   244,   251,     0,     3,    62,   203,   244,     0,
539     62,   203,   244,     0,   301,   235,   244,   251,     0,     4,
540     62,   203,   244,     0,   306,   235,   244,   251,     0,     3,
541     62,   203,   244,     0,    62,   203,   244,     0,   294,     0,
542    293,    59,   294,     0,   163,     0,   163,    64,   203,     0,
543    367,   324,     0,   367,     0,    93,   198,   223,   197,    94,
544    185,   111,     0,     0,   296,     9,     0,     9,     0,   297,
545      9,     0,     0,   298,   185,     0,   298,    93,   195,   108,
546      0,   298,    93,   377,   108,     0,   298,    47,     0,   298,
547     93,     1,   108,     0,    80,   297,   301,     0,    70,   297,
548    301,     0,    80,   301,     0,    70,   301,     0,   322,   296,
549    301,     0,   305,     0,   313,     0,   323,   313,     0,   302,
550      0,   304,     0,   323,   304,     0,   314,   313,     0,   305,
551    300,   296,   389,     0,   305,    94,   299,   111,     0,   305,
552     94,   111,     0,    93,   301,   108,     0,   314,   313,     0,
553    313,     0,    80,   297,   306,     0,    70,   297,   306,     0,
554     80,   306,     0,    70,   306,     0,   322,   296,   306,     0,
555    211,     0,    80,   297,   306,     0,    70,   297,   306,     0,
556     80,   307,     0,    70,   307,     0,   322,   296,   306,     0,
557    308,     0,   211,   300,   296,   389,     0,    93,   307,   108,
558      0,   211,    94,   299,   111,     0,   211,    94,   111,     0,
559    310,     0,   314,   210,     0,   314,   208,     0,   314,   207,
560      0,   314,   204,     0,   314,   207,     0,   310,     0,   323,
561    310,     0,   230,    93,   195,   108,     0,   230,    93,   209,
562    108,     0,   230,   222,     0,     4,     0,     5,     0,   177,
563      0,   315,     0,   314,   315,     0,   314,    48,   320,    54,
564      0,     4,    54,     0,     5,    54,     0,    57,    54,     0,
565    177,    54,     0,   317,     0,   323,   317,     0,   318,   163,
566      0,   318,   177,     0,   318,   320,     0,   318,    48,   320,
567      0,   319,     0,   318,   319,     0,   318,   320,    54,     0,
568    318,    48,   320,    54,     0,     4,    54,     0,     5,    54,
569      0,   177,    54,     0,    56,    54,     0,     3,    54,     0,
570     57,    54,     0,   163,    74,   181,   180,     0,   323,   313,
571      0,   304,     0,   323,   304,     0,   314,    80,     0,   323,
572    314,    80,     0,    54,     0,    80,   296,   324,     0,    80,
573    296,     0,    70,   296,   324,     0,    70,   296,     0,   322,
574    296,     0,   322,   296,   324,     0,   325,     0,    94,   185,
575    111,     0,   325,    94,   299,   111,     0,    80,   297,   326,
576      0,    80,   326,     0,    80,   297,     0,    80,     0,    70,
577    297,   326,     0,    70,   326,     0,    70,   297,     0,    70,
578      0,   322,   296,     0,   322,   296,   326,     0,   327,     0,
579     93,   326,   108,     0,    90,     0,   327,    93,   377,   108,
580    296,   389,     0,   327,    47,   296,   389,     0,   327,    94,
581    299,   111,     0,   327,    94,   111,     0,    93,   378,   108,
582    296,   389,     0,   201,   296,   389,     0,   222,   296,   389,
583      0,    94,   299,   111,     0,    94,   111,     0,   341,     0,
584    329,     0,   328,   341,     0,   328,   329,     0,     1,    60,
585      0,     0,   331,     0,   332,     0,   331,   332,     0,    33,
586    250,    60,     0,   334,     0,     1,   334,     0,     0,    58,
587    335,   191,     0,     0,     0,    15,   337,   187,   338,   339,
588      0,   334,     0,     0,   340,   342,     0,   334,     0,   342,
589      0,   220,     0,   185,    60,     0,     0,   336,    16,   343,
590    339,     0,   336,     0,     0,     0,    17,   344,   187,   345,
591    192,     0,     0,     0,    18,   346,   339,    17,   347,   186,
592     60,     0,     0,     0,     0,     0,    19,   348,    93,   370,
593    349,   188,    60,   350,   372,   108,   351,   192,     0,     0,
594      0,    20,   352,    93,   189,   108,   353,   339,     0,     0,
595     21,   203,    62,   354,   341,     0,     0,    21,   203,    12,
596    203,    62,   355,   341,     0,     0,    22,    62,   356,   341,
597      0,    23,    60,     0,    24,    60,     0,    25,    60,     0,
598     25,   185,    60,     0,   119,   371,    93,   217,   108,    60,
599      0,   119,   371,    93,   217,    62,   373,   108,    60,     0,
600    119,   371,    93,   217,    62,   373,    62,   373,   108,    60,
601      0,   119,   371,    93,   217,    62,   373,    62,   373,    62,
602    376,   108,    60,     0,    26,    80,   185,    60,     0,    26,
603    163,    60,     0,   369,   341,     0,   369,   109,     0,    60,
604      0,   360,     0,   129,     0,   128,     0,   125,     0,     0,
605      0,    95,   358,   145,   334,   359,   363,     0,     0,     0,
606     95,   361,   334,   362,   363,     0,   364,     0,   363,   364,
607      0,     0,     0,    96,   365,   368,   366,   334,     0,   228,
608      0,   297,     0,    93,    12,   108,     0,    93,   386,   108,
609      0,     3,    62,     0,    56,    62,     0,     4,    62,     0,
610      5,    62,     0,   372,    60,     0,   220,     0,    58,   191,
611      0,     0,     9,     0,     0,   185,     0,     1,     0,     0,
612    374,     0,   375,     0,   374,    59,   375,     0,    11,    93,
613    185,   108,     0,    11,     0,   376,    59,    11,     0,     0,
614    378,     0,   223,     0,   382,     0,   383,    12,     0,   382,
615     12,     0,   223,    12,     0,    12,     0,   382,    62,     0,
616    223,    62,     0,     0,    64,   380,   381,     0,   101,     0,
617    252,     0,   384,     0,   386,   379,     0,   383,   385,     0,
618    383,   388,     0,   383,   388,    64,   252,     0,   382,    59,
619      0,   223,    59,     0,   225,   221,     0,   228,   221,     0,
620    230,   221,     0,   225,   326,     0,   225,     0,   227,   306,
621      0,   386,     0,   386,   379,     0,   384,     0,   223,     0,
622      0,     0,   306,     0,     0,    61,    93,   391,   108,     0,
623     61,    47,     0,   223,     0,   390,     0,   391,    59,   390,
624      0,     0,    80,   296,   392,     0,    70,   296,   392,     0,
625    322,   296,   392,     0,    41,     0,   393,    80,     0,   393,
626     81,     0,   393,    82,     0,   393,    78,     0,   393,    79,
627      0,   393,    70,     0,   393,    68,     0,   393,    69,     0,
628    393,    88,     0,   393,    59,     0,   393,    73,     0,   393,
629     74,     0,   393,    75,     0,   393,    72,     0,   393,    63,
630      0,   393,    64,     0,   393,    76,     0,   393,    77,     0,
631    393,    86,     0,   393,    87,     0,   393,    67,     0,   393,
632     66,     0,   393,   110,     0,   393,    65,    62,     0,   393,
633     71,     0,   393,    91,     0,   393,    83,     0,   393,    47,
634      0,   393,    94,   111,     0,   393,    39,     0,   393,    38,
635      0,   393,    39,    94,   111,     0,   393,    38,    94,   111,
636      0,   393,   367,   392,     0,   393,     1,     0
637 };
638
639 #endif
640
641 #if YYDEBUG != 0
642 static const short yyrline[] = { 0,
643    335,   337,   345,   348,   349,   353,   355,   358,   363,   367,
644    373,   377,   380,   384,   387,   389,   391,   394,   396,   399,
645    402,   404,   406,   408,   410,   411,   413,   414,   418,   421,
646    430,   433,   435,   439,   442,   444,   448,   451,   463,   470,
647    478,   480,   481,   483,   487,   490,   496,   499,   501,   506,
648    509,   513,   516,   519,   522,   526,   531,   541,   543,   545,
649    547,   549,   562,   565,   569,   572,   574,   576,   579,   582,
650    586,   588,   590,   592,   597,   599,   601,   603,   605,   606,
651    613,   614,   615,   618,   621,   625,   627,   628,   631,   633,
652    636,   639,   641,   645,   648,   650,   654,   656,   658,   662,
653    664,   666,   670,   672,   674,   680,   684,   687,   690,   693,
654    698,   701,   703,   705,   711,   721,   723,   726,   729,   731,
655    734,   738,   747,   750,   752,   756,   769,   789,   792,   794,
656    795,   798,   805,   811,   813,   815,   817,   819,   822,   827,
657    829,   830,   831,   832,   835,   837,   838,   841,   843,   844,
658    847,   852,   852,   856,   856,   859,   859,   862,   862,   866,
659    866,   871,   871,   874,   874,   877,   879,   882,   889,   893,
660    896,   899,   905,   914,   916,   924,   927,   930,   933,   937,
661    940,   942,   945,   948,   950,   952,   954,   958,   961,   964,
662    969,   973,   978,   982,   985,   986,   990,  1009,  1016,  1019,
663   1021,  1022,  1023,  1026,  1030,  1031,  1035,  1039,  1042,  1044,
664   1048,  1051,  1054,  1058,  1061,  1063,  1065,  1067,  1070,  1074,
665   1076,  1078,  1080,  1086,  1089,  1092,  1095,  1107,  1112,  1116,
666   1120,  1125,  1127,  1131,  1135,  1137,  1146,  1150,  1153,  1156,
667   1161,  1164,  1166,  1174,  1187,  1192,  1198,  1200,  1202,  1215,
668   1218,  1220,  1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,
669   1238,  1240,  1242,  1244,  1246,  1248,  1250,  1252,  1254,  1256,
670   1258,  1262,  1264,  1266,  1283,  1286,  1288,  1289,  1290,  1291,
671   1292,  1295,  1298,  1301,  1305,  1308,  1310,  1315,  1317,  1318,
672   1321,  1323,  1325,  1327,  1331,  1334,  1338,  1342,  1343,  1344,
673   1348,  1356,  1357,  1358,  1372,  1374,  1377,  1379,  1390,  1395,
674   1397,  1399,  1401,  1403,  1405,  1407,  1410,  1412,  1456,  1457,
675   1461,  1465,  1469,  1473,  1475,  1479,  1481,  1483,  1491,  1493,
676   1495,  1497,  1501,  1503,  1505,  1507,  1512,  1514,  1516,  1518,
677   1521,  1523,  1525,  1569,  1572,  1576,  1579,  1583,  1586,  1591,
678   1593,  1597,  1610,  1613,  1620,  1627,  1632,  1634,  1639,  1641,
679   1648,  1650,  1654,  1658,  1664,  1668,  1671,  1674,  1677,  1687,
680   1689,  1692,  1696,  1699,  1702,  1705,  1708,  1714,  1720,  1722,
681   1727,  1729,  1738,  1741,  1743,  1746,  1752,  1754,  1764,  1768,
682   1771,  1774,  1779,  1782,  1790,  1792,  1794,  1796,  1799,  1802,
683   1817,  1836,  1839,  1841,  1844,  1846,  1849,  1851,  1854,  1856,
684   1859,  1862,  1866,  1872,  1873,  1885,  1892,  1895,  1901,  1905,
685   1910,  1916,  1917,  1925,  1928,  1932,  1935,  1939,  1944,  1947,
686   1951,  1954,  1956,  1958,  1960,  1967,  1969,  1970,  1971,  1975,
687   1978,  1982,  1985,  1991,  1993,  1996,  1999,  2002,  2008,  2011,
688   2014,  2016,  2018,  2022,  2028,  2036,  2038,  2042,  2044,  2049,
689   2052,  2055,  2057,  2059,  2063,  2068,  2075,  2079,  2083,  2090,
690   2094,  2097,  2100,  2106,  2118,  2120,  2123,  2143,  2145,  2148,
691   2150,  2155,  2157,  2159,  2161,  2163,  2165,  2169,  2174,  2177,
692   2179,  2183,  2189,  2194,  2199,  2201,  2205,  2210,  2213,  2220,
693   2237,  2243,  2245,  2248,  2251,  2253,  2257,  2259,  2263,  2268,
694   2274,  2277,  2278,  2299,  2322,  2324,  2328,  2339,  2353,  2358,
695   2365,  2368,  2376,  2387,  2396,  2400,  2415,  2418,  2423,  2425,
696   2427,  2429,  2431,  2433,  2436,  2438,  2442,  2448,  2450,  2453,
697   2456,  2458,  2469,  2474,  2477,  2482,  2485,  2486,  2497,  2500,
698   2501,  2512,  2514,  2517,  2519,  2522,  2529,  2537,  2544,  2550,
699   2556,  2564,  2568,  2573,  2577,  2580,  2589,  2591,  2595,  2598,
700   2603,  2607,  2613,  2624,  2627,  2631,  2635,  2643,  2648,  2654,
701   2657,  2659,  2661,  2667,  2670,  2672,  2674,  2676,  2680,  2683,
702   2701,  2711,  2713,  2714,  2718,  2723,  2726,  2728,  2730,  2732,
703   2736,  2742,  2745,  2747,  2749,  2751,  2755,  2758,  2761,  2763,
704   2765,  2767,  2771,  2774,  2777,  2779,  2781,  2783,  2785,  2792,
705   2796,  2801,  2805,  2810,  2812,  2816,  2819,  2821,  2824,  2826,
706   2827,  2830,  2832,  2834,  2840,  2855,  2861,  2867,  2881,  2883,
707   2887,  2901,  2903,  2905,  2909,  2915,  2928,  2930,  2934,  2947,
708   2953,  2955,  2956,  2957,  2965,  2970,  2979,  2980,  2984,  2987,
709   2993,  2999,  3002,  3004,  3006,  3008,  3012,  3016,  3020,  3023,
710   3028,  3031,  3033,  3035,  3037,  3039,  3041,  3043,  3045,  3049,
711   3053,  3057,  3061,  3062,  3064,  3066,  3068,  3070,  3072,  3074,
712   3076,  3078,  3086,  3088,  3089,  3090,  3093,  3099,  3101,  3106,
713   3108,  3111,  3125,  3128,  3131,  3135,  3138,  3145,  3147,  3150,
714   3152,  3154,  3157,  3160,  3163,  3166,  3168,  3171,  3175,  3177,
715   3183,  3185,  3186,  3188,  3193,  3195,  3197,  3199,  3201,  3204,
716   3205,  3207,  3210,  3211,  3214,  3214,  3217,  3217,  3220,  3220,
717   3222,  3224,  3226,  3228,  3234,  3240,  3243,  3246,  3252,  3254,
718   3256,  3260,  3262,  3263,  3264,  3266,  3269,  3276,  3281,  3289,
719   3293,  3295,  3298,  3300,  3303,  3307,  3309,  3312,  3314,  3317,
720   3334,  3340,  3348,  3350,  3352,  3356,  3359,  3360,  3368,  3372,
721   3376,  3379,  3380,  3386,  3389,  3392,  3394,  3398,  3403,  3406,
722   3416,  3421,  3422,  3429,  3432,  3435,  3437,  3440,  3442,  3452,
723   3466,  3470,  3473,  3475,  3479,  3483,  3486,  3489,  3491,  3495,
724   3497,  3504,  3511,  3514,  3517,  3521,  3525,  3531,  3535,  3540,
725   3542,  3545,  3550,  3556,  3567,  3570,  3572,  3576,  3581,  3583,
726   3590,  3593,  3595,  3597,  3603,  3608,  3611,  3613,  3615,  3617,
727   3619,  3621,  3623,  3625,  3627,  3629,  3631,  3633,  3635,  3637,
728   3639,  3641,  3643,  3645,  3647,  3649,  3651,  3653,  3655,  3657,
729   3659,  3661,  3663,  3665,  3667,  3669,  3671,  3673,  3676,  3678
730 };
731 #endif
732
733
734 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
735
736 static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
737 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
738 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
739 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF",
740 "SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","AGGR","VISSPEC",
741 "DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE","TYPENAME_KEYWORD",
742 "USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST","REINTERPRET_CAST",
743 "CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','","';'","THROW",
744 "':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE",
745 "ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","POINTSAT_STAR",
746 "DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY","PAREN_STAR_PAREN",
747 "POINTSAT","'.'","'('","'['","TRY","CATCH","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING",
748 "ALL","PRE_PARSED_CLASS_DECL","DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN",
749 "PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'",
750 "program","extdefs","@1","extdefs_opt",".hush_warning",".warning_ok","extension",
751 "asm_keyword","lang_extdef","@2","extdef","@3","@4","namespace_alias","@5","using_decl",
752 "namespace_using_decl","using_directive","@6","namespace_qualifier","any_id",
753 "extern_lang_string","template_header","@7","template_parm_list","maybe_identifier",
754 "template_type_parm","template_template_parm","template_parm","template_def",
755 "template_extdef","template_datadef","datadef","ctor_initializer_opt","maybe_return_init",
756 "eat_saved_input","fndef","constructor_declarator","@8","@9","@10","@11","fn.def1",
757 "component_constructor_declarator","fn.def2","return_id","return_init","base_init",
758 ".set_base_init","member_init_list","member_init","identifier","notype_identifier",
759 "identifier_defn","explicit_instantiation","@12","@13","@14","@15","@16","@17",
760 "@18","@19","begin_explicit_instantiation","end_explicit_instantiation","template_type",
761 "self_template_type",".finish_template_type","template_close_bracket","template_arg_list_opt",
762 "template_arg_list","template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null",
763 "xcond","condition","@20","compstmtend","already_scoped_stmt","@21","nontrivial_exprlist",
764 "nonnull_exprlist","unary_expr",".finish_new_placement",".begin_new_placement",
765 "new_placement","new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas",
766 "notype_unqualified_id","do_id","template_id","object_template_id","unqualified_id",
767 "expr_or_declarator","notype_template_declarator","direct_notype_declarator",
768 "primary","@22","new","delete","boolean.literal","string","nodecls","object",
769 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
770 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
771 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
772 "initdcl","@23","initdcl0_innards","@24","initdcl0","notype_initdcl0","nomods_initdcl0",
773 "@25","maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
774 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
775 "pending_inlines","defarg_again","pending_defargs","structsp","@26","@27","@28",
776 "@29","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
777 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
778 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
779 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
780 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
781 "component_decl_1","components","notype_components","component_declarator0",
782 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
783 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
784 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
785 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
786 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
787 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
788 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
789 "typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type",
790 "complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator",
791 "absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
792 "label_decls","label_decl","compstmt_or_error","compstmt","@30","simple_if",
793 "@31","@32","implicitly_scoped_stmt","@33","stmt","simple_stmt","@34","@35",
794 "@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","function_try_block",
795 "@48","@49","try_block","@50","@51","handler_seq","handler","@52","@53","type_specifier_seq",
796 "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
797 "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
798 "complex_parmlist","defarg","@54","defarg1","parms","parms_comma","named_parm",
799 "full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
800 "ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
801 };
802 #endif
803
804 static const short yyr1[] = {     0,
805    112,   112,   114,   113,   113,   115,   115,   116,   117,   118,
806    119,   121,   120,   122,   122,   122,   122,   122,   122,   122,
807    123,   122,   124,   122,   122,   122,   122,   122,   126,   125,
808    127,   127,   127,   128,   128,   128,   130,   129,   131,   131,
809    132,   132,   132,   132,   133,   133,   135,   134,   134,   136,
810    136,   137,   137,   138,   138,   139,   140,   140,   140,   140,
811    140,   140,   141,   141,   142,   142,   142,   142,   142,   142,
812    143,   143,   143,   143,   144,   144,   144,   144,   144,   144,
813    144,   144,   144,   145,   145,   146,   146,   146,   147,   147,
814    148,   148,   148,   150,   149,   149,   151,   149,   149,   152,
815    149,   149,   153,   149,   149,   154,   154,   154,   154,   154,
816    155,   155,   155,   155,   156,   156,   156,   156,   156,   156,
817    156,   157,   158,   158,   158,   159,   160,   161,   161,   161,
818    161,   162,   162,   162,   162,   162,   162,   162,   162,   163,
819    163,   163,   163,   163,   164,   164,   164,   165,   165,   165,
820    167,   166,   168,   166,   169,   166,   170,   166,   171,   166,
821    172,   166,   173,   166,   174,   166,   175,   176,   177,   177,
822    177,   178,   179,   180,   180,   181,   181,   182,   182,   183,
823    183,   183,   184,   184,   184,   184,   184,   185,   185,   186,
824    186,   187,   187,   188,   188,   188,   190,   189,   189,   191,
825    191,   191,   191,   193,   192,   192,   194,   194,   194,   194,
826    195,   195,   196,   196,   196,   196,   196,   196,   196,   196,
827    196,   196,   196,   196,   196,   196,   196,   196,   196,   196,
828    196,   196,   196,   196,   196,   196,   197,   198,   199,   199,
829    200,   200,   200,   200,   201,   201,   202,   202,   202,   203,
830    203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
831    203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
832    203,   203,   203,   203,   204,   204,   204,   204,   204,   204,
833    204,   205,   206,   206,   207,   207,   207,   208,   208,   208,
834    209,   209,   209,   209,   210,   210,   211,   211,   211,   211,
835    212,   212,   212,   212,   212,   212,   212,   213,   212,   212,
836    212,   212,   212,   212,   212,   212,   212,   212,   212,   212,
837    212,   212,   212,   212,   212,   212,   212,   212,   212,   212,
838    212,   212,   212,   212,   212,   212,   212,   212,   212,   212,
839    212,   212,   212,   214,   214,   215,   215,   216,   216,   217,
840    217,   218,   219,   219,   220,   220,   220,   220,   220,   220,
841    221,   221,   222,   222,   223,   223,   223,   223,   223,   224,
842    224,   225,   225,   225,   225,   225,   225,   226,   226,   226,
843    226,   226,   227,   227,   227,   227,   227,   227,   228,   228,
844    228,   228,   229,   229,   230,   230,   230,   230,   230,   230,
845    230,   231,   231,   231,   232,   232,   233,   233,   234,   234,
846    235,   235,   237,   236,   236,   239,   238,   238,   240,   241,
847    243,   242,   242,   244,   244,   245,   245,   246,   247,   247,
848    248,   248,   248,   248,   248,   249,   249,   249,   249,   250,
849    250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
850    253,   253,   253,   254,   255,   255,   255,   256,   256,   257,
851    257,   258,   258,   258,   260,   259,   259,   261,   259,   259,
852    259,   259,   259,   262,   263,   259,   259,   264,   264,   265,
853    265,   266,   266,   266,   266,   266,   266,   267,   268,   268,
854    268,   269,   269,   269,   269,   269,   270,   271,   271,   271,
855    272,   273,   273,   274,   274,   274,   275,   275,   276,   276,
856    277,   277,   277,   277,   278,   278,   278,   278,   279,   280,
857    281,   281,   281,   281,   282,   282,   283,   283,   283,   283,
858    283,   283,   283,   283,   283,   283,   284,   284,   284,   284,
859    284,   284,   284,   284,   284,   285,   285,   285,   286,   286,
860    286,   287,   287,   288,   288,   289,   289,   290,   290,   290,
861    290,   291,   291,   292,   292,   292,   293,   293,   294,   294,
862    295,   295,   295,   296,   296,   297,   297,   298,   299,   300,
863    300,   300,   300,   301,   301,   301,   301,   301,   301,   302,
864    302,   303,   303,   303,   304,   305,   305,   305,   305,   305,
865    305,   306,   306,   306,   306,   306,   306,   307,   307,   307,
866    307,   307,   307,   308,   308,   308,   308,   308,   308,   309,
867    309,   310,   310,   311,   311,   312,   312,   312,   313,   313,
868    313,   314,   314,   314,   315,   315,   315,   315,   316,   316,
869    317,   317,   317,   317,   318,   318,   318,   318,   319,   319,
870    319,   319,   319,   319,   320,   321,   321,   321,   322,   322,
871    323,   324,   324,   324,   324,   324,   324,   324,   325,   325,
872    326,   326,   326,   326,   326,   326,   326,   326,   326,   326,
873    326,   327,   327,   327,   327,   327,   327,   327,   327,   327,
874    327,   327,   328,   328,   328,   328,   329,   330,   330,   331,
875    331,   332,   333,   333,   335,   334,   337,   338,   336,   339,
876    340,   339,   341,   341,   342,   342,   343,   342,   342,   344,
877    345,   342,   346,   347,   342,   348,   349,   350,   351,   342,
878    352,   353,   342,   354,   342,   355,   342,   356,   342,   342,
879    342,   342,   342,   342,   342,   342,   342,   342,   342,   342,
880    342,   342,   342,   342,   342,   342,   358,   359,   357,   361,
881    362,   360,   363,   363,   365,   366,   364,   367,   367,   368,
882    368,   369,   369,   369,   369,   370,   370,   370,   371,   371,
883    372,   372,   372,   373,   373,   374,   374,   375,   376,   376,
884    377,   377,   377,   378,   378,   378,   378,   378,   378,   378,
885    380,   379,   381,   381,   382,   382,   382,   382,   382,   383,
886    383,   384,   384,   384,   384,   384,   384,   385,   385,   386,
887    386,   387,   388,   388,   389,   389,   389,   390,   391,   391,
888    392,   392,   392,   392,   393,   394,   394,   394,   394,   394,
889    394,   394,   394,   394,   394,   394,   394,   394,   394,   394,
890    394,   394,   394,   394,   394,   394,   394,   394,   394,   394,
891    394,   394,   394,   394,   394,   394,   394,   394,   394,   394
892 };
893
894 static const short yyr2[] = {     0,
895      0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
896      1,     0,     2,     2,     1,     1,     5,     4,     5,     4,
897      0,     6,     0,     5,     1,     2,     1,     2,     0,     6,
898      2,     3,     3,     3,     3,     4,     0,     5,     2,     3,
899      1,     1,     2,     2,     1,     2,     0,     5,     3,     1,
900      3,     1,     0,     2,     2,     3,     1,     3,     1,     3,
901      1,     3,     2,     2,     2,     1,     1,     5,     4,     2,
902      2,     3,     3,     2,     2,     3,     3,     2,     2,     2,
903      2,     2,     1,     1,     1,     0,     1,     2,     0,     1,
904      4,     3,     3,     0,     8,     5,     0,     9,     6,     0,
905      8,     5,     0,     9,     6,     2,     2,     1,     2,     1,
906      6,     4,     6,     4,     2,     1,     2,     2,     1,     2,
907      1,     2,     2,     4,     2,     3,     0,     0,     1,     3,
908      2,     3,     1,     4,     2,     4,     2,     4,     2,     1,
909      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
910      0,     6,     0,     6,     0,     5,     0,     5,     0,     7,
911      0,     7,     0,     6,     0,     6,     0,     0,     5,     5,
912      1,     5,     0,     1,     1,     0,     1,     1,     3,     1,
913      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
914      3,     1,     3,     0,     1,     1,     0,     7,     1,     1,
915      3,     4,     3,     0,     3,     1,     3,     3,     3,     3,
916      1,     1,     1,     2,     2,     2,     2,     2,     2,     2,
917      4,     2,     4,     2,     3,     3,     4,     5,     6,     6,
918      7,     2,     4,     5,     2,     2,     1,     0,     4,     4,
919      3,     1,     3,     2,     3,     4,     1,     2,     5,     1,
920      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
921      3,     3,     3,     3,     3,     3,     3,     3,     3,     5,
922      3,     3,     1,     2,     3,     3,     1,     1,     1,     1,
923      1,     0,     5,     5,     5,     5,     5,     1,     1,     1,
924      1,     2,     2,     3,     4,     4,     1,     1,     1,     3,
925      1,     1,     1,     1,     3,     3,     3,     0,     4,     4,
926      2,     4,     2,     4,     2,     2,     1,     4,     1,     7,
927      7,     7,     7,     4,     4,     2,     2,     2,     1,     4,
928      2,     2,     5,     3,     2,     2,     5,     3,     5,     3,
929      4,     6,     2,     1,     2,     1,     2,     1,     1,     1,
930      2,     0,     2,     2,     3,     3,     3,     2,     2,     2,
931      1,     1,     1,     2,     2,     2,     2,     1,     1,     1,
932      1,     2,     2,     3,     3,     3,     4,     1,     2,     2,
933      2,     1,     1,     1,     2,     2,     2,     1,     1,     2,
934      2,     3,     1,     2,     1,     1,     1,     4,     4,     4,
935      4,     1,     1,     1,     1,     3,     1,     3,     1,     3,
936      0,     4,     0,     6,     3,     0,     4,     1,     3,     3,
937      0,     4,     3,     0,     1,     1,     2,     6,     1,     3,
938      0,     1,     4,     6,     4,     1,     1,     1,     1,     1,
939      3,     0,     2,     1,     2,     3,     4,     1,     1,     3,
940      4,     3,     5,     1,     4,     3,     3,     0,     3,     3,
941      3,     0,     2,     2,     0,     7,     4,     0,     6,     3,
942      2,     2,     2,     0,     0,     9,     1,     0,     1,     0,
943      1,     1,     2,     2,     2,     2,     2,     2,     2,     2,
944      2,     3,     4,     3,     2,     3,     0,     1,     3,     2,
945      2,     1,     1,     0,     2,     3,     1,     4,     1,     3,
946      1,     1,     4,     4,     2,     2,     3,     3,     1,     0,
947      1,     2,     4,     3,     1,     2,     2,     2,     2,     2,
948      2,     2,     1,     2,     2,     3,     2,     2,     4,     4,
949      2,     1,     5,     4,     1,     0,     1,     3,     0,     1,
950      3,     1,     1,     1,     1,     4,     4,     4,     4,     4,
951      3,     4,     4,     4,     4,     3,     1,     3,     1,     3,
952      2,     1,     7,     0,     2,     1,     2,     0,     2,     4,
953      4,     2,     4,     3,     3,     2,     2,     3,     1,     1,
954      2,     1,     1,     2,     2,     4,     4,     3,     3,     2,
955      1,     3,     3,     2,     2,     3,     1,     3,     3,     2,
956      2,     3,     1,     4,     3,     4,     3,     1,     2,     2,
957      2,     2,     2,     1,     2,     4,     4,     2,     1,     1,
958      1,     1,     2,     4,     2,     2,     2,     2,     1,     2,
959      2,     2,     2,     3,     1,     2,     3,     4,     2,     2,
960      2,     2,     2,     2,     4,     2,     1,     2,     2,     3,
961      1,     3,     2,     3,     2,     2,     3,     1,     3,     4,
962      3,     2,     2,     1,     3,     2,     2,     1,     2,     3,
963      1,     3,     1,     6,     4,     4,     3,     5,     3,     3,
964      3,     2,     1,     1,     2,     2,     2,     0,     1,     1,
965      2,     3,     1,     2,     0,     3,     0,     0,     5,     1,
966      0,     2,     1,     1,     1,     2,     0,     4,     1,     0,
967      0,     5,     0,     0,     7,     0,     0,     0,     0,    12,
968      0,     0,     7,     0,     5,     0,     7,     0,     4,     2,
969      2,     2,     3,     6,     8,    10,    12,     4,     3,     2,
970      2,     1,     1,     1,     1,     1,     0,     0,     6,     0,
971      0,     5,     1,     2,     0,     0,     5,     1,     1,     3,
972      3,     2,     2,     2,     2,     2,     1,     2,     0,     1,
973      0,     1,     1,     0,     1,     1,     3,     4,     1,     3,
974      0,     1,     1,     1,     2,     2,     2,     1,     2,     2,
975      0,     3,     1,     1,     1,     2,     2,     2,     4,     2,
976      2,     2,     2,     2,     2,     1,     2,     1,     2,     1,
977      1,     0,     0,     1,     0,     4,     2,     1,     1,     3,
978      0,     3,     3,     3,     1,     2,     2,     2,     2,     2,
979      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
980      2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
981      2,     2,     2,     3,     2,     2,     4,     4,     3,     2
982 };
983
984 static const short yydefact[] = {     3,
985     12,    12,     5,     0,     4,     0,   279,   629,   630,     0,
986    384,   396,   576,     0,    11,     0,     0,     0,    10,   482,
987    835,     0,     0,     0,   167,   661,   280,   281,    83,     0,
988      0,   822,     0,    45,     0,     0,    13,    25,     0,    27,
989      8,     0,    16,    15,    89,   110,    86,     0,   631,   171,
990    298,   277,   299,   607,     0,   371,     0,   370,   389,     0,
991    409,   388,   426,   395,     0,   498,   497,   504,   503,   502,
992    477,   383,   592,   397,   593,   108,   297,   618,   590,     0,
993    632,   574,     0,     0,   278,    81,    82,   176,   635,   176,
994    636,   176,   282,   167,   140,   141,   142,   143,   144,   468,
995    471,     0,   657,     0,   472,     0,     0,     0,     0,   141,
996    142,   143,   144,    23,     0,     0,     0,     0,     0,     0,
997      0,   473,   639,     0,   645,     0,     0,     0,    37,     0,
998      0,    31,     0,     0,    47,     0,   176,   637,     0,     0,
999    605,     0,     0,     0,   604,     0,     0,     0,     0,   298,
1000      0,   578,     0,   297,   574,    28,     0,    26,     3,    46,
1001      0,    64,   384,     0,     0,     8,    67,    63,    66,    89,
1002      0,     0,     0,   395,    90,    14,     0,   424,     0,     0,
1003    442,    87,    79,   638,   578,     0,   574,    80,     0,     0,
1004      0,   106,     0,   405,   361,   589,   362,   601,     0,   574,
1005    386,   385,    78,   109,   372,     0,   407,   387,   107,   378,
1006    402,   403,   373,   391,   393,   382,   404,     0,    75,   427,
1007    483,   484,   485,   486,   501,   149,   148,   150,   488,   489,
1008    495,   487,     0,     0,   490,   491,   504,   822,   500,   519,
1009    520,   577,   390,     0,   421,   630,     0,   659,   171,   622,
1010    623,   619,   595,   633,     0,   594,   591,     0,   870,   866,
1011    865,   863,   845,   850,   851,     0,   857,   856,   842,   843,
1012    841,   860,   849,   846,   847,   848,   852,   853,   839,   840,
1013    836,   837,   838,   862,   854,   855,   844,   861,     0,   858,
1014    768,   389,   769,   831,   282,   279,   576,   302,   350,     0,
1015      0,     0,     0,   346,   344,   317,   348,   349,     0,     0,
1016      0,     0,     0,   280,   281,   273,     0,     0,   184,   183,
1017      0,   185,   186,     0,     0,   187,     0,     0,   177,   178,
1018      0,   247,     0,   250,   182,   301,   213,     0,     0,   303,
1019    304,     0,   180,   368,   389,   369,   624,   329,   319,     0,
1020      0,     0,     0,   176,     0,   470,     0,   465,     0,   658,
1021    656,     0,   188,   189,     0,     0,     0,   431,     3,    21,
1022     29,   653,   649,   650,   652,   654,   651,   140,   141,   142,
1023      0,   143,   144,   641,   642,   646,   643,   640,     0,   289,
1024    290,   288,   621,   620,    33,    32,    49,     0,   157,     0,
1025      0,   389,   155,     0,     0,   603,     0,   602,   141,   142,
1026    275,   276,   293,     0,   611,   292,     0,   610,     0,   300,
1027    615,     0,     0,    12,     0,   167,     9,     9,    70,     0,
1028     65,     0,     0,    71,    74,     0,   423,   425,   122,    93,
1029    127,   757,     0,    85,    84,    92,   125,     0,     0,   123,
1030     88,   617,     0,     0,   582,     0,   825,     0,   587,     0,
1031    586,     0,     0,     0,     0,   574,   424,     0,    77,   578,
1032    574,   600,     0,   375,   376,     0,    76,   424,   380,   379,
1033    381,   374,   394,   411,   410,   492,   496,   494,     0,   499,
1034    505,     0,     0,   392,   424,   574,    94,     0,     0,     0,
1035      0,   574,   100,   575,   606,   630,   660,   171,     0,     0,
1036    859,   864,   391,   574,   574,     0,   574,   869,   176,     0,
1037      0,     0,   220,     0,     0,   222,   235,   236,     0,     0,
1038      0,     0,     0,   274,   219,   216,   215,   217,     0,     0,
1039      0,     0,     0,   301,     0,     0,     0,   214,   174,   175,
1040    295,     0,   218,     0,     0,   248,     0,     0,     0,     0,
1041      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1042      0,     0,     0,     0,     0,     0,     0,     0,   311,     0,
1043    313,   315,   316,   354,   353,     0,     0,   238,   238,     0,
1044    224,   572,     0,   232,   351,   343,     0,     0,   822,   332,
1045    335,   336,     0,     0,   363,   678,   674,   683,     0,   578,
1046    574,   574,   574,   365,   681,     0,   628,   367,     0,     0,
1047    366,   331,     0,   326,   345,   327,   347,   625,     0,   328,
1048    173,   173,     0,   165,     0,   389,   163,   569,   480,   567,
1049    467,     0,     0,   398,     0,     0,   399,   400,   401,   437,
1050    438,   439,   436,     0,   429,   432,     0,     3,     0,   644,
1051    176,   647,     0,    41,    42,     0,    53,     0,     0,    57,
1052     61,    50,   821,   816,     0,   368,   389,    53,   369,   820,
1053     59,   168,   153,   151,   168,   173,   296,   609,   608,   300,
1054    612,     0,    18,    20,    89,     9,     9,    73,    72,     0,
1055    128,   352,     0,   705,    91,   703,   448,     0,   444,   443,
1056    212,     0,   211,   579,   616,     0,   798,     0,   793,   389,
1057      0,   792,   794,   823,   805,     0,     0,   614,   585,   584,
1058      0,     0,   599,     0,   419,   418,   406,   598,     0,   825,
1059    588,   377,   408,   420,   424,   493,   629,   630,   822,     0,
1060    822,   631,   506,   507,   509,   822,   512,   511,     0,   542,
1061    630,     0,   533,     0,     0,   545,     0,   121,   116,     0,
1062    171,   546,   549,     0,   525,     0,   119,     0,   424,   422,
1063    825,   791,   176,   176,   634,   176,   825,   791,   574,    97,
1064    574,   103,   868,   867,   831,   831,   831,     0,     0,     0,
1065      0,   628,     0,     0,     0,     0,   389,     0,     0,     0,
1066    307,     0,   305,   306,     0,   245,   179,   279,   629,   630,
1067    280,   281,     0,     0,   449,   478,     0,   272,   271,   783,
1068    782,     0,   269,   268,   266,   267,   265,   264,   263,   260,
1069    261,   262,   258,   259,   253,   254,   255,   256,   257,   251,
1070    252,     0,     0,     0,     0,     0,   238,   226,   242,     0,
1071      0,   225,   574,   574,     0,   574,   571,   668,     0,     0,
1072      0,     0,     0,   334,     0,   338,     0,   340,     0,   677,
1073    676,   673,   672,   821,     0,     0,   692,     0,     0,   825,
1074    364,   825,   679,   574,   791,   578,   678,   674,     0,     0,
1075    574,     0,     0,     0,     0,     0,   170,   172,   283,   168,
1076    161,   159,   168,     0,   481,     0,   480,   210,   209,   208,
1077    207,   431,     0,     0,    24,     0,     0,   648,     0,    38,
1078     44,    43,    55,    52,    53,     0,    48,     0,     0,   678,
1079    674,     0,   812,   574,   815,   817,     0,   813,   814,    54,
1080    488,     0,   158,   168,   168,   156,   169,    17,    19,    69,
1081     89,   412,   145,   133,   146,   147,     0,   126,   129,     0,
1082      0,     0,     0,   704,   698,   445,     0,   124,   583,   580,
1083    797,   811,   800,     0,   581,   796,   810,   799,   795,   824,
1084    807,   818,   808,   801,   806,   827,     0,   416,   597,   596,
1085    415,   516,     0,   515,   822,   822,   822,     0,   574,   791,
1086    541,   534,   546,   535,   424,   424,   531,   532,   529,   530,
1087    574,   791,   279,   629,     0,   411,   117,   537,   547,   552,
1088    553,   411,   411,     0,     0,   411,   115,   538,   550,   411,
1089    526,   527,   528,   424,     0,   474,    96,     0,     0,     0,
1090      0,   102,     0,   825,   791,   825,   791,   833,   832,   834,
1091    284,   318,   221,   223,   324,   325,     0,     0,     0,     0,
1092    306,   309,     0,     0,     0,     0,   246,     0,   310,   312,
1093    314,     0,     0,     0,     0,   227,   244,     0,     0,   665,
1094    663,     0,   666,   578,   233,     0,     0,   176,   341,     0,
1095      0,     0,   675,   671,   682,   574,   691,   689,   690,   680,
1096    825,     0,   687,     0,   626,   627,     0,   330,   166,   168,
1097    168,   164,   570,   568,   469,     0,   430,   428,   279,     0,
1098     22,    30,   655,    56,    51,    58,    62,   677,   673,   678,
1099    674,     0,   590,     0,   574,   679,    60,   154,   152,    68,
1100      0,   131,     0,   135,     0,   137,     0,   139,     0,   758,
1101      0,   200,   706,     0,   699,   700,     0,   446,   678,   674,
1102      0,   301,     0,   624,   819,     0,     0,   828,   829,     0,
1103      0,   413,     0,     0,     0,   518,   517,   510,   825,     0,
1104    536,   442,   442,   825,     0,     0,     0,   424,   424,     0,
1105    424,   424,     0,   424,     0,   442,     0,   462,   574,   286,
1106    285,   287,   574,    99,     0,   105,     0,     0,     0,     0,
1107      0,     0,   452,     0,   450,   249,   270,   240,   239,   237,
1108    228,     0,   241,   243,   664,   662,   669,   667,     0,   234,
1109      0,     0,   333,   337,   339,   825,   685,   574,   686,   162,
1110    160,   466,     0,   433,   435,   677,   673,   595,   679,   132,
1111    130,     0,     0,     0,     0,   440,     0,     0,   279,   629,
1112    630,   707,   720,   723,   726,   731,     0,     0,     0,     0,
1113      0,     0,     0,     0,   280,   752,   760,     0,   779,   756,
1114    755,   754,     0,   715,     0,     0,   389,     0,   694,   713,
1115    719,   693,   714,   753,     0,   701,   447,     0,   627,   809,
1116    803,   804,   802,     0,   826,   417,     0,   513,   514,   508,
1117    112,   574,   540,   544,   114,   574,   424,   424,   561,   442,
1118    279,   629,     0,   548,   554,   555,   411,   411,   442,   442,
1119      0,   442,   551,   539,     0,   825,   825,   574,   574,     0,
1120      0,     0,     0,   451,     0,     0,   229,   230,   670,   342,
1121    285,   688,   825,     0,   134,   136,   138,   765,   759,   763,
1122      0,   702,   697,   203,   772,   774,   775,     0,     0,   711,
1123      0,     0,     0,   738,   740,   741,   742,     0,     0,     0,
1124      0,     0,     0,     0,   773,     0,   360,   780,     0,   716,
1125    358,   411,     0,   359,     0,   411,     0,     0,     0,   201,
1126    696,   695,   717,   751,   750,   306,   830,   414,   825,   825,
1127    560,   557,   559,     0,     0,   424,   424,   424,   556,   558,
1128    543,   464,     0,   463,   458,    95,   101,   825,   825,   320,
1129    321,   322,   323,   453,     0,   231,   684,   434,     0,   764,
1130    441,   192,     0,   708,   721,   710,     0,     0,     0,     0,
1131      0,   734,     0,   743,     0,   749,    39,   144,    34,   144,
1132      0,    35,   761,     0,   356,   357,     0,     0,     0,   355,
1133    202,   711,   111,   113,   424,   424,   566,   442,   442,     0,
1134      0,   476,    98,   104,   573,     0,   766,   199,     0,   389,
1135      0,   711,     0,   724,   712,   698,   777,   727,     0,     0,
1136      0,     0,   739,   748,    40,    36,     0,     0,   718,   565,
1137    563,   562,   564,   461,   460,   454,    86,    89,     0,     0,
1138      0,   193,   411,   709,   204,   722,   206,     0,   778,     0,
1139    776,   732,   736,   735,   762,   784,     0,     0,   459,   770,
1140    771,   767,   424,   698,   190,     0,     0,   196,     0,   195,
1141    711,     0,     0,     0,   785,   786,   744,   457,     0,   456,
1142      0,   205,     0,   725,   728,   733,   737,     0,   784,     0,
1143      0,   455,   197,   191,     0,     0,     0,   745,   787,     0,
1144      0,   788,     0,     0,   198,   729,   789,     0,   746,     0,
1145      0,     0,   730,   790,   747,     0,     0,     0
1146 };
1147
1148 static const short yydefgoto[] = {  1606,
1149    424,     2,   425,   161,   694,   327,   177,     3,     4,    37,
1150    658,   369,  1290,   659,   766,  1291,  1292,   389,  1393,   663,
1151     41,   767,   398,   669,   933,   670,   671,   672,    43,   168,
1152    169,    44,   443,   180,   176,    45,    46,   782,  1055,   788,
1153   1057,    47,   769,   770,   181,   182,   444,   701,   968,   969,
1154    638,   970,   230,    48,   955,   954,   685,   682,  1121,  1120,
1155    913,   910,   136,   953,    49,    50,   907,   551,   328,   329,
1156    330,   331,  1293,  1557,  1454,  1559,  1499,  1590,  1163,  1536,
1157   1554,   363,   900,   332,  1231,   855,   590,   862,   333,   334,
1158    364,   336,   354,    52,   251,   664,   413,    53,    54,   337,
1159    546,   338,   339,   340,   341,   445,   342,  1294,   484,   612,
1160    343,  1295,    56,   213,   675,   344,   214,   524,   215,   193,
1161    206,    60,   467,   485,  1317,   735,  1181,   194,   207,    61,
1162    495,   736,    62,    63,   654,   655,   656,  1267,   450,   825,
1163    826,  1527,  1528,  1492,  1434,  1345,    64,   642,   357,  1208,
1164   1435,  1076,   916,    65,    66,    67,    68,   237,    69,    70,
1165     71,   239,   753,   754,   755,   756,   241,   492,   493,   774,
1166    775,   776,  1028,  1038,  1029,  1334,  1030,  1031,  1335,  1336,
1167    639,   640,   591,   890,   346,   453,   454,   187,   195,    73,
1168     74,    75,   196,   197,   153,    77,   132,   347,   348,   349,
1169     79,   350,    81,   758,   123,   124,   125,   500,   105,    82,
1170    351,   867,   868,   885,   615,  1298,  1299,  1164,  1165,  1166,
1171    705,  1300,   975,  1301,  1378,  1502,  1457,  1458,  1302,  1303,
1172   1482,  1379,  1503,  1380,  1538,  1381,  1540,  1585,  1600,  1382,
1173   1561,  1512,  1562,  1463,   446,   702,  1265,  1304,  1396,  1517,
1174   1369,  1370,  1449,  1531,  1501,  1497,  1305,  1508,  1399,   832,
1175   1564,  1565,  1566,  1598,   721,   722,   995,  1177,  1313,   723,
1176    724,   725,   991,   726,   146,   993,   728,  1179,  1180,   518,
1177     84,    85
1178 };
1179
1180 static const short yypact[] = {   116,
1181    144,-32768,-32768,  3219,-32768,   156,   153,   205,   332,   176,
1182    170,-32768,-32768,  1325,-32768,   160,   185,   227,-32768,-32768,
1183 -32768,   532,   752,  1021,   259,-32768,   308,   426,-32768,   684,
1184    684,-32768,  5043,-32768,  3219,   323,-32768,-32768,   404,-32768,
1185     62,  2851,-32768,-32768,   350,  1007,   453,   415,   437,-32768,
1186 -32768,-32768,-32768,   530,  1892,-32768,  4895,-32768,   885,   379,
1187 -32768,   471,-32768,-32768,  1233,    93,-32768,   479,-32768,-32768,
1188    491,  2947,-32768,-32768,-32768,  1248,-32768,-32768,-32768,  1551,
1189 -32768,-32768,   612,  8144,   524,-32768,-32768,  9669,-32768,  9669,
1190 -32768,  9669,-32768,-32768,-32768,   205,   332,   308,   517,   476,
1191    543,   437,-32768,   451,-32768,   612,  9755,  9755,   516,-32768,
1192 -32768,-32768,-32768,-32768,   425,   579,   519,   546,   591,   598,
1193    605,-32768,-32768,  1440,-32768,  1568,   205,   332,-32768,   308,
1194    517,-32768,   562,   343,   599,  5841,  9669,-32768,  9669,  3212,
1195 -32768,  1951,   692,  3212,-32768,  1726,  3405,  3405,  5043,   570,
1196    586,   609,   602,   610,-32768,-32768,   732,-32768,   590,-32768,
1197   4344,-32768,-32768,   259,  3053,   646,-32768,-32768,-32768,   350,
1198   5462, 10843,   576,   698,-32768,-32768,   659,   471,   757,   209,
1199    251,   734,-32768,-32768,   685,   267,-32768,-32768,  3412,  3412,
1200   5669,  1248,   768,-32768,-32768,   615,-32768,-32768,  2065,-32768,
1201 -32768,-32768,-32768,-32768,   885,   774,-32768,   471,  1248,-32768,
1202 -32768,-32768,  2313,   885,-32768,   471,-32768,  5462,-32768,-32768,
1203 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1204    437,   471,  1887,  1830,-32768,-32768,   479,-32768,-32768,-32768,
1205 -32768,-32768,  1160,   612,-32768,   537,  1463,-32768,   342,-32768,
1206 -32768,-32768,-32768,-32768,  4337,-32768,-32768,   229,-32768,   707,
1207    717,-32768,-32768,-32768,-32768,   751,-32768,-32768,-32768,-32768,
1208 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1209 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   704,-32768,
1210 -32768,  1160,  2947,  1101,-32768,-32768,   725,-32768,-32768, 10363,
1211  10449, 10535, 10535,-32768,-32768,-32768,-32768,-32768,   727,   769,
1212    792,   795,   801,   874,   517,  9841,  1937, 10535,-32768,-32768,
1213  10535,-32768,-32768, 10535,  7622,-32768, 10535,   442,   772,-32768,
1214  10535,-32768,  9927,-32768, 10838,   376,  1310,  2889, 10013,-32768,
1215    893,  1805,-32768,  2496,  3971,  3697,-32768,   440,-32768,  1965,
1216   1825,   442,   442,  9669,  5841,-32768,  1937,   804,  1937,-32768,
1217 -32768,   810,   861, 10919,   815,   828,   839,  1668,   590,-32768,
1218 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   579,   519,   546,
1219   1937,   591,   598,   876,   605,-32768,   904,-32768,   457,   205,
1220    332,-32768,-32768,-32768,-32768,-32768,-32768,  4481,-32768,  5462,
1221   5736,  2489,-32768,   442,    63,-32768,   363,-32768,   892,   899,
1222 -32768,-32768,-32768,  3212,-32768,-32768,  3212,-32768,   867,-32768,
1223 -32768,  4337,    88,   850,   883,-32768,-32768,-32768,-32768,  5841,
1224 -32768,   812,   823,-32768,-32768,   732,-32768,   471,-32768,-32768,
1225 -32768,-32768,   111,-32768,-32768,-32768,-32768,  7713,  9841,-32768,
1226 -32768,-32768,  9841,   896,-32768,  6976,   226,  5116,-32768,  5116,
1227 -32768,  5186,  5186,  5669,   888,-32768,   471,  5462,-32768,   900,
1228 -32768,-32768,  5405,  2313,   885,  5462,-32768,   471,-32768,-32768,
1229    471,  2313,-32768,   986,-32768,-32768,   437,-32768,  1887,-32768,
1230   1226,  3343,    81,  1160,   471,-32768,-32768,   941,   943,   965,
1231    953,-32768,-32768,-32768,-32768,   593,-32768,   450,   918,   919,
1232 -32768,-32768,  1160,-32768,-32768,   964,-32768,-32768,  9669,  9841,
1233    725,  7622,-32768,   509,  7622,-32768,-32768,-32768,  9755,  5650,
1234   5650,  5650,  5650, 10964,-32768,-32768,-32768,-32768,   924, 10621,
1235  10621,  7622,   927,   107,   928,   979,   934,-32768,-32768,-32768,
1236 -32768,  9669,-32768,  7252,  7622,-32768,  9841,  9841,  7804,  9841,
1237   9841,  9841,  9841,  9841,  9841,  9841,  9841,  9841,  9841,  9841,
1238   9841,  9841,  9841,  9841,  9841,  9841,  9841,  9841,-32768,  9841,
1239 -32768,-32768,-32768,-32768,-32768,  9841,  9841,-32768,-32768,  1313,
1240    315,   906,  8504,-32768,-32768,-32768,   989,  1463,  1037,   511,
1241    528,   638,  2333,   692,-32768,  1576,  1576,-32768,  2501,   937,
1242    956,  1003,-32768,-32768,   634,  9124,  1116,-32768,   999,   612,
1243 -32768,-32768,  9841,-32768,-32768,-32768,-32768,-32768,   303,   524,
1244 -32768,-32768,   442,-32768,  5462,  2982,-32768,   990,  1000,-32768,
1245 -32768,  1937,   876,-32768,  8236,  8327,-32768,-32768,-32768,-32768,
1246 -32768,-32768,-32768,   193,-32768,   969,   949,   590,   457,  1010,
1247   9669,-32768,  1008,-32768,-32768,   343,  1095,  1044,   299,  1018,
1248   1023,-32768,-32768,  2225, 10843,  2225,  4136,  1233,  3794,-32768,
1249   1026,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   985,
1250 -32768,  1035,-32768,-32768,   350,-32768,-32768,-32768,-32768,    95,
1251    783,  1039,   979,-32768,-32768,-32768,-32768,  7158, 10964,-32768,
1252    861,  1012, 10919,-32768,-32768,  1014,-32768,  1019,   406,  4599,
1253   1022,-32768,   103,  5361,  1047,  1052,   654,-32768,-32768,-32768,
1254   5116,  5116,-32768,  5405,-32768,  1054,-32768,-32768,  1015,   226,
1255 -32768,  2313,-32768,-32768,   471,-32768,   519,   546,-32768,  1036,
1256 -32768,   605,  1074,-32768,-32768,   233,-32768,-32768,  1962,-32768,
1257    791,  1141,-32768,  9841,  6374,-32768,  6374,    83,    83,   301,
1258    658,  4251, 10775,  5963,-32768,   194,    83,  1073,   471,-32768,
1259    226,  3153,  9669,  9669,-32768,  9669,   226,  3153,-32768,-32768,
1260 -32768,-32768,-32768,-32768,  1067,  1067,  1067,   442,  1046,  1048,
1261  10105,  1003,  1057,  1058,  1068,  1104,  4764,  1107,  1108,  1109,
1262 -32768,  1078,-32768,-32768,  1082,-32768,-32768,  1132,   432,   762,
1263    182,    80,  9841,  1137,-32768,  1142,  1092, 10964, 10964,-32768,
1264 -32768,  1140,  4489,  6071,  6114,  3259,  5876,  4207,  3574,  2596,
1265   2596,  2596,  2581,  2581,  1305,  1305,   478,   478,   478,-32768,
1266 -32768,  1096,  1099,  1102,  9841,  9755,-32768,   315,-32768,  7713,
1267   9841,-32768,-32768,-32768,  9841,-32768,-32768,  1125, 10535,  1110,
1268   1138,  1146,  1185,-32768,  9841,-32768,  9841,-32768,  9841,  2601,
1269 -32768,  2601,-32768,    97,  1126,  1131,-32768,  1134,  5650,   226,
1270 -32768,   226,  2752,-32768,  3153,  1144,  9308,  9308,  6471,  1143,
1271   9927,  1150,  2158,  1825,  1004,  1152,-32768,-32768,-32768,-32768,
1272 -32768,-32768,-32768,  9841,  1937,  1139,  1000,-32768, 10964,-32768,
1273  10964,  1668,  1153, 10191,-32768,  1157,  1186,-32768,   442,-32768,
1274 -32768,-32768,-32768,-32768,  1416,  4481,-32768,  5650,  9669,  1795,
1275   1795,  3508,-32768,-32768,-32768,-32768,  2065,-32768,-32768,-32768,
1276    417,  9841,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1277    350,-32768,   579,-32768,   591,   598,  9841,  1208,-32768,   666,
1278    674,   683,   979,-32768,    72,-32768,   183,-32768,-32768,-32768,
1279 -32768,-32768,-32768,  9216,-32768,-32768,-32768,-32768,-32768,-32768,
1280 -32768,  1052,  1204,-32768,-32768,-32768,  5650,-32768,-32768,-32768,
1281   1206,-32768,  9755,-32768,-32768,-32768,-32768,   851,-32768,  3153,
1282  10964,-32768,  1679,-32768,   471,   471,-32768,-32768,-32768,-32768,
1283 -32768,  3153,   502,   787,  9841,   986,-32768,  1212,-32768,-32768,
1284 -32768,   235,   497,  1551,   692,   569,    83,  1214,-32768,   621,
1285 -32768,-32768,-32768,   471,  8572,-32768,-32768,  1168,   442,   442,
1286    442,-32768,  1169,   226,  3153,   226,  3153,-32768,-32768,-32768,
1287 -32768,-32768,-32768,-32768,-32768,-32768,  1192,  1193,  1195,  1202,
1288    985,-32768,  6766,  7713,  7346,  1188,-32768,  9841,-32768,-32768,
1289 -32768,  1190,  1170,  1196,  5650,-32768,-32768,  1198,   173,   334,
1290    334,  1200,   334,-32768,-32768, 10535,  1301,  9669,-32768,  1216,
1291   1217,  1231,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1292    226,  1234,-32768,  1223,-32768,-32768,  2735,-32768,-32768,-32768,
1293 -32768,-32768, 10964,-32768,-32768,  1235,-32768,-32768,   199,  1240,
1294 -32768,-32768,-32768,-32768,-32768,-32768,-32768,  2393,  2393,  2680,
1295   2680,  3508,-32768,  2065,-32768,  3520, 10838,-32768,-32768,-32768,
1296   1242,-32768,   783,-32768,  9841,-32768,  9841,-32768,  9841,-32768,
1297   1937,-32768,-32768,  6711,  1318,-32768,  7437,-32768,  9400,  9400,
1298   6861,   135,  1245,   261,-32768,  7713,  7528,-32768,-32768,   210,
1299   7713,-32768,  1246,  1247,  1226,-32768,-32768,-32768,   226,  1251,
1300 -32768,  1297,  1297,   226,  1257,  9841,  9841,  4003,   471,  4760,
1301    471,   471,  1105,   471,  5244,  1297,  8642,-32768,-32768,-32768,
1302   1314,-32768,-32768,-32768,  1267,-32768,  1269,  9841,  9841,  9841,
1303   9841,  7713,-32768,  1316,-32768,-32768, 10964,-32768,-32768,-32768,
1304    380,  1196,-32768,-32768,-32768,-32768,-32768,-32768,  1279,-32768,
1305   1345,   442,-32768,-32768,-32768,   226,-32768,-32768,-32768,-32768,
1306 -32768,-32768,  9841,-32768,-32768,  2393,  2393,-32768,  3520,-32768,
1307 -32768,  1285,  1286,  1290,  1309,-32768,   829,   214,  1347,   805,
1308    816,-32768,-32768,-32768,-32768,-32768,  9841,  1348,  1352,  1353,
1309   9492,   175,  1937,   616,   655,-32768,-32768,  9583,  1398,-32768,
1310 -32768,-32768,  1354,-32768,  5089,  5564,  4654,  6601,-32768,-32768,
1311   1400,-32768,-32768,-32768,  8735,-32768,-32768,  1321,  1368,-32768,
1312 -32768,-32768,-32768,  5650,-32768,-32768,  7713,-32768,-32768,-32768,
1313 -32768,-32768,-32768,-32768,-32768,-32768,  4003,  4003,-32768,  1297,
1314    691,   863,  9841,-32768,-32768,-32768,   986,   986,  1297,  1297,
1315    593,  1297,-32768,-32768,  6263,   226,   226,-32768,-32768,  1323,
1316   1329,  1334,  1340,-32768,  7713,  9841,-32768,   380,-32768,-32768,
1317 -32768,-32768,   226,  1342,-32768,-32768,-32768,-32768,  1309,-32768,
1318   1937,-32768,-32768,-32768,-32768,-32768,-32768,   688,   688,   979,
1319   1324,  1333,  6168,-32768,-32768,-32768,-32768,  1362,  9841,  1373,
1320   1393,  1406,  1973,  2131,-32768,   979,-32768,-32768,  1372,-32768,
1321 -32768,   986,   841,-32768,   881,   986, 10277,   894,   252,-32768,
1322 -32768,-32768,-32768,-32768,-32768,   340,-32768,-32768,   226,   226,
1323 -32768,-32768,-32768,  9841,  9841,  4003,   471,   471,-32768,-32768,
1324 -32768,-32768,  8418,-32768,-32768,-32768,-32768,   226,   226,-32768,
1325 -32768,-32768,-32768,-32768,  1359,-32768,-32768,-32768,  1381,-32768,
1326 -32768,-32768,  9755,-32768,-32768,-32768,  1461,  9031,  7067,  9755,
1327   9841,-32768,  8843,-32768,  1420,-32768,-32768,  1428,-32768,  1406,
1328   1973,-32768,-32768,   732,-32768,-32768, 10707, 10707,  7895,-32768,
1329 -32768,   979,-32768,-32768,  4003,  4003,-32768,  1297,  1297,  1376,
1330  10874,  1387,-32768,-32768,-32768,  4964,-32768,-32768,  1377,   487,
1331   5462,   979,  8937,-32768,-32768,    72,-32768,-32768,  1430,  1385,
1332  10942,  8843,-32768,-32768,-32768,-32768,  1309,    91,-32768,-32768,
1333 -32768,-32768,-32768,-32768,-32768,-32768,   453,   350,  1386,  1394,
1334    979,-32768,   986,-32768,-32768,-32768,-32768,   690,-32768,  7986,
1335 -32768,-32768,-32768,-32768,  1309,  1490,  1449,   218,-32768,-32768,
1336 -32768,-32768,   471,    72,-32768,  9841,  1451,-32768,  1453,-32768,
1337    979,  8843,  1422,    68,  1459,-32768,-32768,-32768,   111,-32768,
1338   1458,-32768,  1415,-32768,-32768,-32768,-32768,  9841,  1490,  1466,
1339   1490,-32768,-32768,-32768,  8077,  1419,   677,-32768,-32768,  7713,
1340   1421,-32768,  1517,  1470,-32768,-32768,-32768,   270,-32768,  8937,
1341   1521,  1475,-32768,-32768,-32768,  1537,  1538,-32768
1342 };
1343
1344 static const short yypgoto[] = {-32768,
1345   1541,-32768,  -322,  1382,  -386,    58,     0,  1540,-32768,  1512,
1346 -32768,-32768,   113,-32768,   253,-32768,   287,-32768,   159,   901,
1347     33,    19,-32768,-32768,  -611,-32768,-32768,   627,    59,  1402,
1348   1147,  1408,  -690,    51,  -164,    10,     1,-32768,-32768,-32768,
1349 -32768,-32768,   806,-32768,-32768,-32768,-32768,-32768,-32768,   433,
1350   1592,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1351 -32768,-32768,  1494,  -649,  5793,   -67,  -534,  -203,    21,  1455,
1352   -507,-32768,   397,-32768,   222,-32768, -1353,-32768, -1343,    -3,
1353 -32768,  1661,   891,  -267,   370,  -520,-32768,  -828,  1473,    74,
1354   1135,  3774,  1317,  -325,   -74,   -94,  1462,   -70,   434,-32768,
1355 -32768,-32768,  -330,-32768,  -154,-32768,-32768, -1214,   -48,  -327,
1356   3104,    52,   424,  -150,    28,    86,  -200,    -4,   -28,  -163,
1357   -157,     7,   -35,  -103,-32768,  -359,-32768,-32768,-32768,-32768,
1358 -32768,  -113,   237,    -2,-32768,   697,-32768,-32768, -1067,  -431,
1359    905,-32768,-32768,-32768,-32768,-32768,   167,-32768,-32768,-32768,
1360 -32768,-32768,   705,  -373,-32768,-32768,-32768,-32768,-32768,-32768,
1361 -32768,  1384,-32768,   444,   619,-32768,-32768,-32768,-32768,   589,
1362   -717,-32768,-32768,-32768,-32768,-32768,-32768,   864,-32768,   431,
1363    996,   726,  1050,  4767,    47,    25,  -443,  1446,  3480,  -462,
1364 -32768,     2,-32768,  5022,  -146,   651,  -106,  4331,  1302,-32768,
1365   4962,  2031,  1670,    -9,  -104,-32768,  1519,   -53,-32768,  4406,
1366   2964,  -301,-32768,  1578,-32768,-32768,   347,-32768,-32768,   484,
1367     82,  -419,-32768,-32768,-32768,-32768, -1336,-32768, -1222, -1362,
1368 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1369 -32768,-32768,-32768,-32768,   102,-32768,-32768,-32768,-32768,-32768,
1370    142, -1296,-32768,-32768,   -38,-32768,-32768,-32768,-32768, -1378,
1371     73,-32768,    79,-32768,  -691,  -572,   669,-32768,-32768,-32768,
1372 -32768,  -389,-32768,  -379,  -143,-32768,   988,   348,-32768,   132,
1373 -32768,  -227
1374 };
1375
1376
1377 #define YYLAST          11048
1378
1379
1380 static const short yytable[] = {    59,
1381    415,   418,   423,    36,   475,   431,   192,   432,   680,   252,
1382    178,   973,   249,   122,   433,   103,   710,   617,   681,   501,
1383    627,   388,    42,   706,   678,   626,   739,   396,   757,  1086,
1384     59,    57,   523,   526,    36,   956,   886,    59,   394,   395,
1385    245,   695,   494,   886,   817,   294,   657,  1012,   173,  1014,
1386     72,   170,   205,    42,   474,    55,  1041,   204,   393,   220,
1387     42,    35,    57,   482,   437,   556,   950,   243,   856,   172,
1388    387,   252,  1450,  1397,   166,  1412,   140,   144,   186,   292,
1389   1509,    72,  1415,   345,   256,   345,    55,   345,    72,    58,
1390   1048,   513,    35,   171,   491,  1505,  1053,   908,   595,   165,
1391    167,   595,   345,   345,  1161,   595,  1510,   360,   981,    15,
1392    352,   703,   353,  -411,   986,    -1,    38,   778,   744,   159,
1393     58,   552,   192,   630,  1323,  1324,   815,    58,   252,  1579,
1394    293,   402,   345,   138,   345,   780,   399,   549,  1344,   550,
1395   1537,  -144,  -411,    -2,   513,  1519,  -411,    38,   631,   632,
1396    235,   957,  1546,   579,   236,   982,    59,   404,   983,   160,
1397     59,   987,  1539,   401,   988,  1534,   888,   205,   704,   291,
1398    428,   173,   204,   478,   170,  1580,   186,    95,   110,   111,
1399   1162,  -298,    72,    42,   480,   483,  1560,   400,    57,   779,
1400    508,  -411,   172,   414,   417,   692,   802,   166,  1547,   580,
1401    686,   687,   962,  1112,   816,   220,  1591,    72,   174,   440,
1402   1572,    72,    55,   220,  -291,    86,   171,    94,  1568,   605,
1403    186,    58,   165,   167,  1576,   217,    88,  -298,  -298,   220,
1404    112,   113,     8,   506,   504,   458,   460,  1537,   971,  1006,
1405   1513,  1167,  -291,  -143,  1507,   256,    58,   601,  1450,    93,
1406     58,   922,   107,  1042,  1389,   137,    39,  1253,    89,  -361,
1407   1119,    15,  1423,  1122,    87,   801,  -352,   600,  1314,  1007,
1408    441,  1429,  1430,  1373,  1431,  -352,   359,   108,    90,   441,
1409   1234,   700,   665,   974,   130,   131,   727,    39,   243,  1544,
1410     40,  1168,  -361,   208,   935,   216,  -361,   447,   627,   592,
1411    923,   232,  1043,   442,  1148,  1149,  1254,  -618,   507,   960,
1412    961,  1373,   442,   455,   448,   415,   418,  1315,  1190,   109,
1413    345,    40,  1374,  1134,   742,  1017,   886,   660,  1601,  -361,
1414   1195,   174,   135,   292,   680,   926,  1085,   127,   128,  1577,
1415    304,   243,   504,   449,   992,   296,   390,   391,    10,   345,
1416    636,   683,   256,  -618,  -618,   634,    26,   936,  1018,   456,
1417   1481,   859,  1019,  1215,   737,  1217,   127,   128,  -618,   886,
1418    501,   217,   743,   937,   633,   527,   528,  1602,   860,   217,
1419    217,   137,   401,    21,   293,    91,  -300,    26,   502,   130,
1420    131,   536,   617,   677,   537,  1020,   205,   538,    27,   315,
1421    548,    72,  1357,   863,   553,    92,   635,   861,   208,   217,
1422    359,   886,   594,   864,   438,   157,   668,   981,   130,   131,
1423   1522,  1523,   579,   291,   771,    59,   859,   865,  1087,   909,
1424     32,  1137,  -300,  -300,   503,   220,   173,   218,   219,   697,
1425     58,   216,   507,   860,   679,   480,   483,  -294,   745,   481,
1426    216,   720,  1114,   480,     8,     9,   175,   172,   217,   296,
1427    390,   391,    10,   158,   982,   483,   152,   983,   580,  -821,
1428   1250,  1251,   861,  1356,   183,   -52,    72,   179,   220,   138,
1429    -52,   171,   370,   676,   483,    89,   622,    59,   371,  1041,
1430    184,   -52,   768,  -141,   211,   212,   791,    21,   359,   139,
1431     14,    18,   679,   362,   366,    90,   130,   131,   731,   732,
1432     26,   217,    27,   315,   345,    58,   549,   345,   550,   773,
1433    345,  -362,    20,    15,   345,   807,   807,   807,   807,  1446,
1434    959,    23,   623,   605,    95,   110,   111,   345,    72,   798,
1435    238,   676,   792,   772,    32,   757,   680,   345,   240,   765,
1436    345,   592,   665,  1160,  -362,   605,   681,   874,  -362,   932,
1437    577,   578,   678,  1196,   296,   390,   391,    10,   217,   886,
1438    138,   931,   373,   627,   876,    88,  -578,    58,   626,   801,
1439    152,   152,   152,   496,   356,   292,   911,   112,   113,   114,
1440     91,  -362,    90,  -120,  1061,    15,   174,   295,   886,   374,
1441    358,   801,    21,   875,   677,  1002,   513,  1004,   368,   247,
1442     92,   720,  1008,   536,   537,     8,     9,    27,   315,    92,
1443    877,   256,  -578,   185,   152,   943,  -120,   948,   949,   497,
1444   -120,  1001,   372,   556,   218,   434,   293,   208,   216,   789,
1445    217,   217,  1223,  1225,   375,  -118,    91,    15,   217,    32,
1446   1239,   376,   880,   882,   388,   679,   345,   122,   377,   129,
1447    217,  -578,   679,  -120,   137,  1046,    92,   130,   131,    26,
1448    205,   949,  1392,   397,   243,   291,   630,  -291,  -118,   217,
1449    894,   929,  -118,   154,   878,   790,     7,   127,   128,    10,
1450    971,   972,    13,   420,   676,   127,   128,   771,    -7,   771,
1451    996,   676,   185,   438,  1021,   771,   771,  -578,   470,   421,
1452    481,   216,  1154,   480,   438,  -118,  1395,  -613,   481,   677,
1453   1156,   543,   757,  1027,    21,  1133,   895,   896,   137,  1158,
1454    879,   438,  1015,  1016,  1452,  1225,  1555,    26,  1593,    27,
1455     28,  1044,   299,   160,  1310,  1312,   997,   130,   131,  1316,
1456   1022,   436,  1424,    30,   116,   117,   118,   435,  1155,   439,
1457     59,   802,    59,    31,    88,   768,  1157,   768,   205,    59,
1458    679,    32,  1026,  1036,   768,  1159,    33,   677,   345,   345,
1459   1453,   345,  1556,   677,  1594,   963,   747,   748,  1235,  1236,
1460   1354,  1238,   773,   451,   773,   452,  1150,   154,   154,   154,
1461    509,   773,   217,  1049,  1050,    26,  1051,   119,   120,   676,
1462    510,    72,   511,    72,   512,    91,   772,   520,  1013,   529,
1463     72,   674,   765,  -142,   765,   772,   468,   469,   679,   964,
1464    552,   765,   476,   477,   679,    92,    26,  1009,   965,   966,
1465     89,   154,   530,   217,    91,  1210,  1211,  1212,  1197,   714,
1466     58,   345,    58,   116,   747,   748,  1089,  1569,    89,    58,
1467     90,  1185,  1186,  1187,    92,   531,  1376,   676,   532,    91,
1468    468,   698,   216,   676,   533,   967,   252,  1377,    90,   674,
1469    750,   476,   699,  1010,   807,  1418,   217,  1371,  1372,    92,
1470    677,   210,   211,   212,   720,   152,   152,   152,    14,   468,
1471   1475,  1192,  1193,   595,    26,   256,   119,   120,   217,   127,
1472    128,   208,   641,   216,   232,    18,    89,   644,   543,   645,
1473     20,   543,   647,  1444,  1425,   804,  1058,  1059,  1060,    23,
1474   1206,   677,  -181,   807,   345,   648,    90,   677,   543,   476,
1475   1476,   679,  1095,   880,   882,   679,   649,   137,  -181,   661,
1476   -181,   543,   468,  1480,   668,   831,   216,   662,    -6,    26,
1477   1456,   130,   131,   252,  1027,    90,   249,   127,   128,   802,
1478    536,   537,    92,   217,   690,   863,  1473,   771,   481,   720,
1479    676,   438,   679,   854,   676,   864,  1138,  1139,   679,   870,
1480   1199,   693,   807,   415,   418,   733,  1201,  1202,   345,   865,
1481   1199,  1204,     8,     9,  1202,   677,   715,     8,     9,   208,
1482    738,   359,    15,  1026,   783,   438,   784,   677,   785,   130,
1483    131,   676,   415,   418,   127,   128,   786,   676,   793,   794,
1484    679,   811,   674,    15,   813,   814,   704,  -411,  1361,   674,
1485     59,   816,   871,   248,   873,   768,   359,   887,   889,   891,
1486    677,   359,   677,   914,   130,   131,   679,   925,   915,   130,
1487    131,   924,  1456,   928,   129,  -411,  -411,   930,   679,   676,
1488    127,   128,   773,   252,    26,   504,   130,   131,   248,    20,
1489    807,   938,  1456,   507,  1329,  1330,   939,  1339,  1340,   952,
1490   1342,    72,  -294,   345,   958,   676,   772,   378,   379,   380,
1491    441,   679,   765,   679,   127,   128,   680,   676,   127,  1341,
1492   -820,  1552,   154,   154,   154,   994,  1530,   998,  1242,   978,
1493     26,   979,   130,   131,  -574,   999,   980,  -574,  1003,   985,
1494     58,  1403,  1005,  1408,  1045,   508,   514,   677,  1405,   771,
1495    676,  1456,   676,   972,   127,   128,   515,   674,    26,   706,
1496    382,   383,   359,  1062,    26,  1063,   130,   131,  1595,  1297,
1497    130,   131,   891,  1289,  1064,  1065,   720,   211,   212,  1240,
1498    514,   232,   802,    14,  -574,  1066,  -574,  -574,  1067,  -574,
1499    515,  1068,  1069,  1070,   507,  1071,  1256,  1257,   679,  1072,
1500   -574,  1296,  -574,  -140,    26,    20,   130,   131,  1074,  1077,
1501   1075,  1078,    59,  1079,    23,   674,  1080,   768,  -574,  -574,
1502     72,   674,  1081,  1421,  1422,  1256,  1257,   679,  1094,  1098,
1503   1096,  1288,   335,  -574,   335,  1097,   335,   676,   116,   747,
1504    748,  1099,   749,  1105,   773,    95,    96,    97,  1106,   221,
1505    222,   223,   536,   537,  1107,  1132,  1402,  1125,  1402,    58,
1506   1115,   438,   438,    72,  1113,   750,   676,  1116,   772,  1118,
1507   1128,  1092,   751,    18,   765,  1131,  1153,  1176,   224,  1182,
1508   1200,   335,  1205,   335,    15,  1209,  1213,  1229,  -411,    26,
1509    438,   119,   120,  1297,  1218,  1219,    26,  1220,    98,    99,
1510    225,   205,    58,  1297,  1221,   543,  1226,  1289,  1228,   513,
1511   1297,  1427,  1428,  1230,  1289,  1233,  -411,  -411,  1241,   807,
1512   1237,  -411,  1487,  1488,  1489,  1296,     8,     9,   674,  1518,
1513     12,    13,   674,  1243,  1244,  1296,    14,    95,    96,    97,
1514    415,   418,  1296,  1249,    72,   226,   227,   228,  1245,   712,
1515     16,  1248,    17,  1252,    72,  1288,   718,  1255,    20,  1260,
1516   1161,    72,  1309,  1318,  1319,  1288,   581,    23,  1322,   674,
1517    448,   548,  1288,  1549,  1326,   674,    26,  -655,   130,   131,
1518    478,  1520,  1521,    58,  1348,   152,  1349,  1355,    26,  -300,
1519     98,    99,   100,    58,   574,   575,   576,   577,   578,  1359,
1520     58,  1360,  1365,  1366,  -300,   582,   583,  1367,  -300,  1183,
1521    584,   585,   586,   587,  1368,   857,  1398,   674,  1375,  1384,
1522    799,  1385,  1386,  1400,  -300,  1413,  1459,   152,    95,   110,
1523    111,  1464,   221,   222,   223,  1460,  -300,  -300,  1416,  -300,
1524   1440,  -300,  1466,   674,   438,   438,  1441,   438,   438,  1571,
1525    438,  1442,   378,   379,   380,   674,    18,  1443,  1500,  1448,
1526    534,   224,  1533,  1297,  1297,  1500,   371,  1289,  1297,  1467,
1527   -300,  -300,  1289,   217,  1474,    95,   110,   111,   498,  1495,
1528    852,   112,   113,  1496,   345,  -300,   853,  1504,   674,  1514,
1529    674,  1515,  1524,  1526,  1532,  1296,  1296,   381,   335,  1541,
1530   1296,   677,  1542,  1550,   151,   382,   383,  1553,  1297,   293,
1531   1563,  1551,  1289,    21,    72,    72,   293,  1297,  1567,    72,
1532   1574,  1289,  1575,   906,  1578,  1288,  1288,  1581,   112,   113,
1533   1288,  1583,  1584,   731,   732,  1588,  1592,  1597,  1596,  1599,
1534   1296,  1604,   208,   216,  1605,  1500,  1607,  1608,   291,  1296,
1535      1,     5,   679,    58,    58,   291,   156,   430,    58,    72,
1536    536,   537,  1471,     7,     8,   246,    10,  1297,    72,   927,
1537   1288,  1289,  1135,   438,   438,   674,   429,   543,   427,  1288,
1538    116,   117,   118,   152,   152,   152,   696,  1548,  1037,   127,
1539    128,   676,   709,   713,    13,  1261,   293,   355,    58,  1296,
1540    713,    21,   154,   405,   674,  1297,  1603,    58,   247,  1289,
1541   1455,  1358,   152,   152,   152,   101,    27,    28,    72,   416,
1542    419,   519,   977,   115,  1350,  1351,  1352,  1353,  1127,  1288,
1543    490,  1126,   605,   119,   120,   291,  1188,  1296,  1320,    26,
1544    248,   130,   131,  1207,   154,  1343,  1039,   917,    32,   858,
1545   1124,   471,   386,   602,  1411,   606,    72,    58,  1306,  1570,
1546   1582,  1587,   151,   335,   713,   607,   229,  1288,  1545,  1589,
1547   1175,  1417,   438,   438,   438,   608,   217,     0,   609,   610,
1548     95,   110,   111,     0,   650,   651,   652,  1388,     0,     0,
1549      0,  1023,  1024,     9,    10,    58,   335,     0,   709,     0,
1550      0,   828,   829,     0,   833,   834,   835,   836,   837,   838,
1551    839,   840,   841,   842,   843,   844,   845,   846,   847,   848,
1552    849,   850,   851,     0,   713,   384,     0,     0,     0,    21,
1553    713,   438,   438,   112,   113,     0,     0,  1000,    95,   409,
1554    410,     0,    26,     0,    27,    28,     0,   411,  1191,     0,
1555   1025,     0,     0,     0,     0,  1082,  1083,     0,   189,   254,
1556    713,  1088,  1445,     0,     0,     0,     0,   713,   190,     0,
1557      0,     0,     0,     0,     0,  1100,    32,  1101,  1047,  1102,
1558      0,   191,     0,   254,  1052,     0,     0,     0,     0,   919,
1559    921,    98,   113,     0,     0,  1465,   545,     0,     0,   438,
1560    154,   154,   154,     0,     0,   335,     0,     7,     8,     9,
1561     10,     0,   254,    13,     0,   596,     0,   296,   390,   391,
1562     10,   254,   597,     0,  1130,     0,   611,   611,   611,   154,
1563    154,   154,     0,     0,   486,   488,     0,   624,     8,     9,
1564     10,     0,    95,    96,    97,    21,     0,     0,   499,     0,
1565    152,   605,   709,     0,     0,    21,     0,     0,    26,  1498,
1566     27,    28,   598,     0,     0,   831,  1498,  1151,    26,     0,
1567     27,   315,   304,   625,   940,    21,     0,     0,   254,     0,
1568      0,     0,     0,     0,   941,   543,     0,  1108,    26,  1109,
1569    130,   131,    32,     0,   608,    98,    99,   942,   610,    95,
1570     96,    97,   599,     0,     7,     8,     9,    10,  1011,     0,
1571      0,     0,   254,     0,     0,     0,     0,     0,   535,     0,
1572    152,   152,   152,     0,     0,     0,     0,   335,   335,   674,
1573    335,   614,   618,   621,   416,   419,     0,   254,     0,     0,
1574      0,     0,    21,     0,   359,   713,  1498,     0,     0,    95,
1575    110,   111,    98,    99,     0,    26,     0,    27,    28,     0,
1576    643,   188,  1573,     7,   127,   128,    10,  1073,     0,   653,
1577      0,   189,     0,     0,   116,   747,   748,   296,     8,     9,
1578     10,   190,   643,     0,  1586,    95,   110,   111,     0,    32,
1579      0,   831,     0,   545,   191,     0,   545,     0,     0,   713,
1580    713,    21,   112,   113,   709,   713,     0,     0,   247,     0,
1581      0,     0,   416,   812,     0,    21,    27,    28,     0,   713,
1582      0,   713,   247,   713,     0,     0,   545,   119,   120,   254,
1583     27,   315,     0,     0,     0,     0,     0,     0,   112,  1468,
1584    248,     0,     0,     0,    80,     0,     0,     0,    32,     0,
1585      0,  1214,     0,  1216,   104,  1262,     0,  1263,  1123,  1264,
1586      0,     0,    32,     0,   133,     0,     0,   154,   713,     0,
1587    142,   142,     0,   142,     0,    80,     0,     7,     8,     9,
1588     10,     0,    80,   335,     0,     0,   254,   902,   611,   611,
1589    746,   611,     0,     0,     0,   199,  1147,    80,   901,     0,
1590      0,     0,     0,     0,     0,   233,     0,     0,  1247,     0,
1591      0,   713,   104,     0,     0,    21,     0,     0,     0,   711,
1592      0,     0,   247,   258,   104,     0,   711,     0,   713,     0,
1593     27,    28,     0,     0,     0,     0,     0,   154,   154,   154,
1594      0,     0,     0,    95,   110,   111,   104,     0,     0,     0,
1595      0,     0,     0,  1364,   248,   824,   611,     0,   611,   611,
1596      0,   611,    32,     0,     0,     0,     0,     0,   254,  1198,
1597    296,     8,     9,    10,   133,     0,    80,     0,     0,     0,
1598    142,     0,     0,   407,   142,     0,  1321,   142,   142,   142,
1599    711,  1325,     0,   881,   883,   254,   112,  1470,     0,   872,
1600      0,    80,   611,     0,     0,    80,     0,     0,    21,     0,
1601      0,   199,    80,     0,     0,   247,     0,     0,   709,   709,
1602      0,     0,  1227,    27,   315,     0,     0,     0,     0,   199,
1603    199,   199,     0,     0,     0,     0,     0,     7,     8,     9,
1604     10,     0,   335,  1362,     0,     0,     0,   248,     0,     0,
1605    711,     0,     0,     0,     0,    32,   711,     0,   199,     0,
1606      0,   945,     0,   614,   618,     0,   621,     0,   934,     0,
1607      0,     0,   902,     0,   489,    21,     0,     0,     0,   951,
1608      0,   605,   254,     0,   104,     0,   711,     0,    26,   611,
1609     27,    28,     0,   711,     0,   142,     0,     0,   254,   713,
1610      0,   713,     0,   713,   940,     0,     0,   618,     0,   824,
1611      0,   709,     0,     0,   941,     0,     0,     0,     0,     0,
1612    709,   709,    32,     0,   608,   709,     0,   942,   610,   479,
1613    211,   212,     0,   104,   516,     0,    14,     0,     0,     0,
1614   1327,  1328,     0,  1436,  1437,   296,   127,   128,    10,     0,
1615      0,     0,     0,    18,     0,     0,     0,     0,    20,     0,
1616   1447,     0,   611,     0,   611,     0,   709,    23,     0,   416,
1617    812,     0,     0,     0,     0,   611,     0,     0,   104,   901,
1618    901,   901,   603,    21,   516,   516,   619,     0,     0,     0,
1619    247,     0,     0,     0,   618,    80,     0,   713,    27,   315,
1620      0,     0,     0,     0,     0,     7,     8,     9,    10,     0,
1621      0,   242,     0,   151,     0,     0,  1483,  1484,     0,     0,
1622      0,  1383,   611,   611,   611,     0,     0,     0,     0,   133,
1623     32,     0,     0,     0,     0,  1493,  1494,     0,   104,     0,
1624    199,   104,     0,    21,     0,     0,     0,     0,     0,   605,
1625      0,     0,     0,     0,   142,  1173,    26,   142,    27,    28,
1626      0,   709,   142,     0,     0,     0,   901,  1103,     0,  1104,
1627     80,   711,   940,     0,     0,     0,     0,  1426,     0,     0,
1628   1110,     0,   941,     0,   881,   883,     0,     0,     0,     0,
1629     32,     0,   608,     0,     0,   942,   610,     0,   199,   709,
1630    199,     0,   199,   199,   199,   210,   211,   212,   199,   127,
1631    128,     0,    14,   199,     8,     9,   199,   163,    12,    13,
1632      0,     0,   717,   653,    14,   711,   711,   881,   883,    18,
1633      0,   711,    80,     0,    20,     0,   934,     0,    16,     0,
1634     17,    18,     0,    23,     0,   711,    20,   711,     0,   711,
1635      0,   713,   605,     0,     0,    23,     0,   605,   684,    26,
1636      0,   130,   131,     0,    26,     0,   130,   131,  1485,  1486,
1637    104,   104,   104,   104,     0,   606,     0,  1491,     0,     0,
1638    606,     0,   254,     0,   254,   607,     0,     0,     0,     0,
1639    607,     0,     0,     0,   711,   608,     0,     0,   609,   610,
1640    608,     0,     0,   609,   610,  1511,     0,     0,     0,     0,
1641      0,     0,   416,   419,   127,   128,     0,     0,     0,   242,
1642    611,   611,   611,   611,   611,     0,   254,     0,   611,     0,
1643    104,     0,   516,     0,     0,     0,     0,   711,     0,     0,
1644      0,   416,  1308,     0,   603,     0,   516,   516,     0,   619,
1645      0,   901,   901,   901,   711,     0,   903,   605,     0,     0,
1646    905,     0,     0,     0,    26,     0,   130,   131,   572,   573,
1647    574,   575,   576,   577,   578,   199,  1224,     0,     0,     0,
1648    606,   570,   571,   572,   573,   574,   575,   576,   577,   578,
1649    607,     0,     7,     8,     9,    10,     0,     0,    13,   133,
1650    608,     0,     0,   609,   610,     0,   133,     0,     0,     0,
1651      0,     0,     0,   254,   199,   947,   199,   199,   233,   619,
1652      0,     0,     0,     0,     0,  1103,  1104,   881,   883,     0,
1653     21,     0,     0,  1110,   709,     0,   605,     0,   611,   611,
1654      0,   611,     0,    26,     0,    27,    28,   296,     8,     9,
1655     10,     0,     0,     0,     0,     0,   881,   883,     0,  1140,
1656    199,     0,  1266,     0,   947,   127,   128,     0,  1224,  1141,
1657    504,   199,   199,     0,   199,     0,     0,    32,     0,   608,
1658      0,     0,  1142,   610,     0,    21,     0,     0,     0,     0,
1659      0,     0,   247,     0,     0,     0,   254,     0,     0,     0,
1660     27,   315,   133,     0,     0,    80,     0,    80,   605,     0,
1661      0,     0,  1034,    80,    80,    26,     0,   130,   131,     0,
1662      0,     0,   104,   254,   507,   711,     0,   711,   104,   711,
1663      0,   606,    32,     0,     0,   516,   516,   516,     0,     0,
1664      0,   607,     0,  1103,  1104,     0,  1110,   516,     0,     0,
1665      0,   608,     0,     0,   609,   610,     0,     0,     0,     0,
1666      0,   162,     0,     7,     8,     9,    10,   163,    12,    13,
1667      0,     0,     0,     0,    14,     0,     0,     0,  1173,     0,
1668      0,     0,   254,  1390,  1391,     0,     0,     0,    16,     0,
1669     17,    18,    19,     0,     0,     0,    20,     0,     0,     0,
1670      0,    21,     8,     9,     0,    23,    12,    13,   164,     0,
1671      0,     0,    14,     0,    26,     0,    27,    28,     0,     0,
1672    516,     0,   516,   711,     0,     0,    16,     0,    17,   104,
1673     30,     0,     0,   516,    20,   104,     0,   903,   903,   903,
1674     31,     0,     0,    23,  1117,     0,     0,     0,    32,   416,
1675   1308,     0,    26,    33,   130,   131,   588,     0,    34,     0,
1676      8,     9,     0,     0,    12,   242,     0,     0,     0,     0,
1677     14,     0,  1451,     0,     0,     0,   104,    83,   104,     0,
1678    199,   199,  1144,     0,    16,     0,    17,   106,     0,     0,
1679      0,   589,    20,     0,  1469,  1472,   126,   134,   210,   211,
1680    212,    23,     0,   143,   143,    14,   143,     0,    83,     0,
1681     26,     0,   130,   131,     0,    83,     0,     0,     0,     0,
1682      0,     0,    18,     0,  1144,     0,     0,    20,   143,     0,
1683     83,     0,     0,     0,     0,     0,    23,   104,   234,     0,
1684      0,     0,     0,     0,     0,   244,     0,     0,     0,     0,
1685    104,   912,     0,  1034,     0,     0,     0,   244,     0,     0,
1686      0,     0,   104,     0,     0,     7,     8,     9,    10,   163,
1687     12,    13,  1516,     0,     0,  1203,    14,   711,     0,     0,
1688      0,     0,     0,     0,     0,    80,     0,     0,     0,     0,
1689     16,     0,    17,    18,    19,   104,     0,   104,    20,     0,
1690      0,     0,     0,    21,     0,     0,     0,    23,     0,    83,
1691    164,     0,     0,   143,     0,     0,    26,   143,    27,    28,
1692    143,   143,   143,     0,     0,   104,     0,     0,     0,     0,
1693    516,   516,    30,   516,    83,     0,     0,     0,    83,     0,
1694      0,     0,    31,     0,   143,    83,     0,     0,     0,     0,
1695     32,     0,     0,     0,     0,    33,     0,     0,     0,     0,
1696     34,     0,   143,   143,   143,     0,     8,     9,     0,   163,
1697     12,    13,     0,     0,   717,     0,    14,     0,   199,   199,
1698    199,   199,  1144,     0,     0,     0,   199,     0,     0,     0,
1699     16,   143,    17,    18,     0,     0,     0,     0,    20,     0,
1700      0,     0,     0,     0,     0,     0,     0,    23,     0,  1144,
1701   1144,  1144,     0,     0,     0,     0,    26,     0,   130,   131,
1702    365,   367,     0,     0,     7,   127,   128,    10,   143,     6,
1703    242,     7,     8,     9,    10,    11,    12,    13,     0,     0,
1704    199,     0,    14,     0,     0,   142,     0,    80,     0,     0,
1705      0,     0,     0,     0,     0,    15,    16,     0,    17,    18,
1706     19,     0,    21,     0,    20,     0,   244,   143,     0,    21,
1707      0,     0,    22,    23,    24,    26,    25,    27,    28,     0,
1708      0,     0,    26,     0,    27,    28,     0,     0,    29,     0,
1709      0,    30,     0,     0,     0,     0,   199,   199,    30,   199,
1710      0,    31,     0,     0,     0,     0,     0,     0,    31,    32,
1711      0,   244,     0,     0,    33,   604,    32,   143,   143,   620,
1712      0,    33,     0,     0,   629,     0,    34,     0,    83,     0,
1713      0,     0,     0,     0,     0,   199,   947,   199,   564,   565,
1714    566,   567,   568,   569,   570,   571,   572,   573,   574,   575,
1715    576,   577,   578,   760,   104,     7,     8,   761,    10,   163,
1716     12,    13,   666,     0,     0,     0,    14,     0,     0,     0,
1717      0,   244,     0,   143,   244,     0,     0,     0,     0,     0,
1718     16,     0,    17,    18,    19,     0,     0,   143,    20,  -521,
1719    143,     0,     0,    21,     0,   143,     0,    23,   762,     0,
1720    164,     0,     0,    83,     0,     0,    26,     0,    27,    28,
1721      0,     0,   763,     0,   764,     0,     0,     7,   127,   128,
1722     10,     0,    30,    13,     7,     8,     9,    10,     0,     0,
1723     13,   143,    31,   143,     0,   143,   143,   143,   547,     0,
1724     32,   143,     0,     0,     0,    33,   143,  1144,     0,   143,
1725      0,     0,     0,     0,     0,    21,     0,     0,     0,     0,
1726      0,  -521,    21,     0,   759,    83,     0,     0,    26,     0,
1727     27,    28,     0,     0,     0,    26,     0,    27,    28,     0,
1728      0,     0,     0,     0,   147,     0,     0,     0,     0,     0,
1729      0,   189,     0,     0,   148,     0,     0,     0,     0,     0,
1730      0,   190,    32,   244,   244,   244,   244,   149,     0,    32,
1731      0,   673,     0,     0,   191,     0,     0,  1144,  1144,  1144,
1732      7,     8,     9,    10,   163,    12,    13,     0,     0,   717,
1733      0,    14,     7,     8,     9,    10,   104,     0,   504,     0,
1734      0,   199,     0,     0,     0,    16,     0,    17,    18,     0,
1735      0,     0,     0,    20,     0,     0,     0,     0,    21,     0,
1736      0,     0,    23,   244,   605,   143,     0,     0,     0,   719,
1737     21,    26,     0,    27,    28,     0,   605,     0,     0,   143,
1738    143,     0,   620,    26,     0,    27,    28,  1140,     0,   904,
1739      0,     0,     0,     0,     0,     0,     0,  1141,     0,   940,
1740      0,     0,   629,     0,     0,    32,     0,   608,   143,   941,
1741   1142,   610,     0,     0,     0,     0,     0,    32,     0,   608,
1742      0,     0,   942,   610,     0,     0,     0,     0,     0,     0,
1743      0,     0,   666,     0,     0,   800,     0,     0,   803,     0,
1744    126,     0,   805,   806,   808,   809,   810,   143,   620,   143,
1745    143,   234,   620,     0,     0,   547,   567,   568,   569,   570,
1746    571,   572,   573,   574,   575,   576,   577,   578,   827,     0,
1747      0,     0,     0,     0,   759,     0,     0,     0,   459,   461,
1748    465,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1749      0,     0,     0,   143,     0,     0,     0,   620,     0,     0,
1750      0,     0,     0,     0,   143,   143,     0,   143,     0,     0,
1751      8,     9,     0,     0,    12,   242,     0,     0,     0,     0,
1752     14,     0,   884,     0,     0,     0,     0,     0,     0,   884,
1753      0,     0,     0,     0,    16,   134,    17,     0,    83,     0,
1754     83,     0,    20,     0,     0,  1035,    83,    83,     0,     0,
1755      0,    23,     0,   605,     0,   244,     0,     0,     0,     0,
1756     26,   244,   130,   131,     0,     0,     0,     0,   143,   143,
1757    143,     0,     0,     0,     0,     0,   606,     0,     0,     0,
1758    143,     0,     0,     0,     0,     0,   607,    51,     0,     0,
1759      0,     0,     0,     0,     0,     0,   608,     0,     0,   609,
1760    610,     0,     0,     0,     0,     0,  -383,     8,     9,  -383,
1761   -383,    12,   242,    51,    51,     0,   150,    14,    51,     0,
1762      0,     0,     0,     0,     0,    51,     0,     0,     0,     0,
1763      0,    16,     0,    17,  -383,     0,     0,   673,    51,    20,
1764     51,     0,     0,     0,  -383,     0,     0,     0,    23,     0,
1765    605,     0,     0,   143,     0,   143,     0,    26,     0,   130,
1766    131,     0,   244,   250,     0,     0,   143,     0,   244,     0,
1767    904,   904,   904,   606,     0,     0,     0,   629,     0,     0,
1768      0,     0,     0,   607,     0,     0,     0,     0,     0,     0,
1769      0,  -383,     0,   608,     0,   719,   609,   610,     0,     0,
1770      0,   719,     0,     0,     0,     0,     0,     0,     0,   244,
1771      0,   244,     0,   143,   143,   620,   392,   392,     0,    51,
1772      0,     0,     0,    51,     0,   250,     0,    51,     0,     0,
1773    150,   150,   150,     0,     0,     0,     0,     0,     0,     0,
1774      0,     0,     0,     0,    51,     0,     0,   729,    51,   730,
1775      0,   459,   461,   465,    51,    51,     0,   904,     0,     0,
1776      0,     0,   741,     0,     0,     0,     0,     0,     0,  1084,
1777    244,     0,    51,    51,   150,     0,     0,     0,     0,     0,
1778      0,   759,   250,   244,   127,   128,  1035,     0,   211,   212,
1779      0,     0,     0,     0,    14,   244,     0,     0,     0,     0,
1780      0,    51,   827,     0,     0,     0,     0,     0,   719,     0,
1781      0,     0,   884,     0,     0,     0,    20,     0,    83,     0,
1782      0,     0,     0,     0,     0,    23,     0,   605,   244,     0,
1783    244,     0,     0,     0,    26,     0,   130,   131,    51,     0,
1784      0,     0,     0,    18,     0,     0,     0,     0,     0,   673,
1785    606,  1136,     0,     0,     0,   884,     0,     0,   244,     0,
1786    607,     0,     0,   143,   143,     0,   143,     0,     0,     0,
1787    608,     0,     0,   616,   610,   557,   558,   559,   560,   561,
1788    562,   563,   564,   565,   566,   567,   568,   569,   570,   571,
1789    572,   573,   574,   575,   576,   577,   578,   884,     0,     0,
1790      0,     0,     0,     0,     0,     0,     0,     0,   544,     0,
1791   1178,   143,   143,   143,   143,   620,  1184,     0,     0,   143,
1792      0,     0,     0,   719,     0,   392,   759,     0,     0,     0,
1793      0,     0,     0,   250,     0,   719,     0,     0,    51,     0,
1794      0,     0,   904,   904,   904,     0,     0,     0,     7,     8,
1795      9,    10,   210,   211,   212,     0,     0,     0,   759,    14,
1796      0,     0,     0,     0,     0,     0,     0,     0,   719,     0,
1797    719,     0,   392,   143,     0,     0,    18,     0,   143,     0,
1798     83,    20,     0,    51,     0,     0,    21,     0,     0,     0,
1799     23,     0,   605,     0,     0,     0,     0,    51,  1232,    26,
1800     51,    27,    28,     0,     0,    51,     0,     0,     0,     0,
1801      0,     0,     0,    51,     0,   940,     0,     0,     0,     0,
1802    729,   730,     0,   741,     0,   941,     0,     0,     0,   143,
1803    143,     0,   143,    32,     0,   608,     0,     0,   942,   610,
1804      0,    51,     0,    51,     0,   150,   150,   150,     0,     0,
1805      0,    51,     0,     0,     0,   884,    51,  1394,     0,    51,
1806      0,  1032,     0,  1023,  1024,     9,    10,     0,   143,   620,
1807    143,     0,     0,     0,     0,    51,     0,     0,     0,     0,
1808      0,     0,     0,     0,   884,     0,     0,   244,   566,   567,
1809    568,   569,   570,   571,   572,   573,   574,   575,   576,   577,
1810    578,    21,     0,     0,     0,   544,     0,     0,   544,     0,
1811      0,     0,     0,     0,    26,     0,    27,    28,     0,     0,
1812      0,     0,  1025,   544,   544,   544,     0,     0,     0,     0,
1813    189,     0,     0,     0,     0,     0,     0,     0,   544,     0,
1814    190,     0,     0,     0,    78,     0,     0,     0,    32,     7,
1815    127,   128,    10,   191,     6,   504,     7,     8,     9,    10,
1816     11,    12,    13,     0,     0,     0,     0,    14,     0,     0,
1817     78,    78,     0,    78,     0,    78,     0,     0,     0,     0,
1818    904,    16,    78,    17,    18,     0,   250,    21,     0,    20,
1819      0,     0,     0,     0,    21,    78,     0,    78,    23,   544,
1820     26,   426,    27,    28,     0,     0,     0,    26,     0,    27,
1821     28,     0,     0,    29,     0,     0,    30,     0,    51,     0,
1822      0,     0,     0,    30,     0,     0,    31,  1178,     0,   459,
1823    461,   465,     0,    31,    32,     0,     0,     0,     0,    33,
1824      0,    32,   392,     0,     0,     0,    33,     0,   155,   392,
1825    904,   904,   904,     0,     0,     0,     0,    51,    51,    51,
1826     51,     0,     0,     0,     0,     0,     0,     0,     0,   244,
1827    200,     0,     0,   465,   143,     0,    78,     0,     0,     0,
1828     78,     0,     0,     0,    78,     0,     0,    78,    78,    78,
1829      0,     0,     0,     0,     8,     9,     0,   163,    12,    13,
1830      0,    78,  1032,    51,    14,    78,     0,    51,     0,     0,
1831      0,    78,    78,     0,    51,    51,     0,    51,    16,     0,
1832     17,    18,     0,     0,     0,     0,    20,     0,     0,    78,
1833     78,    78,     0,     0,     0,   667,     0,     0,   164,     0,
1834      0,     0,     0,     0,    26,     0,   130,   131,    51,     0,
1835     51,     0,     0,     0,     0,    51,    51,    51,    78,     0,
1836      0,     0,   155,   155,   155,   561,   562,   563,   564,   565,
1837    566,   567,   568,   569,   570,   571,   572,   573,   574,   575,
1838    576,   577,   578,     0,   544,     0,   200,     0,     0,     0,
1839      0,     0,   547,     0,     0,    78,     0,     0,     0,     0,
1840      0,     0,     0,     0,   200,   200,   466,     0,     0,   673,
1841      0,     7,     8,     9,    10,   210,   211,   212,     0,     0,
1842      0,     0,    14,     0,     0,     0,     0,   729,   730,   459,
1843    461,   465,     0,   200,     0,   741,     0,     0,     0,    18,
1844      0,     0,     0,     0,    20,     0,     0,     0,     0,    21,
1845      0,     0,     0,    23,     0,   605,     0,     0,   459,   461,
1846    465,     0,    26,     0,    27,    28,     7,     8,     9,    10,
1847    210,   211,   212,     0,     0,     0,     0,    14,   940,     0,
1848    544,   544,   544,     0,     0,     0,   250,     0,   941,  1337,
1849      0,   628,     0,     0,    18,    78,    32,     0,   608,    20,
1850      0,   984,   610,     0,    21,     0,     0,     0,    23,   517,
1851    605,     0,     0,     0,     0,     0,     0,    26,     0,    27,
1852     28,     0,     0,    51,    51,   150,     0,     0,     0,     0,
1853    250,     0,     0,   189,     0,     0,     0,     0,     0,     0,
1854     78,     0,     0,   190,     0,   729,   730,     0,   741,     0,
1855      0,    32,     0,     0,    78,     0,  1407,    78,     0,   613,
1856    613,   613,    78,     0,     0,     0,     0,  1172,     0,     0,
1857     78,     0,  1331,  1332,     9,    10,     0,   127,   128,     0,
1858      0,   211,   212,     0,     0,     0,     0,    14,     0,     0,
1859      0,     0,     0,     0,     0,     0,    51,     0,    78,     0,
1860     78,     0,    78,    78,    78,     0,     0,     0,    78,    20,
1861     21,     0,     0,    78,     0,   200,    78,   250,    23,     0,
1862    605,     0,     0,    26,     0,    27,    28,    26,    51,   130,
1863    131,  1333,    78,     0,     0,     0,     0,     0,     0,   189,
1864      0,     0,     0,   606,     0,     0,     0,     0,     0,   190,
1865      0,     0,     0,   607,     0,     0,     0,    32,   255,     0,
1866      0,     0,   191,   608,     0,     0,   609,   610,     0,     0,
1867      0,     0,     0,   200,     0,   200,     0,   466,   466,   466,
1868      0,     0,     0,   200,     0,     0,     0,     0,   200,     0,
1869      0,   200,     0,     0,     0,     0,   465,     0,     0,     0,
1870    250,     0,     0,     0,     0,     0,     0,     7,     8,     9,
1871     10,   201,    12,   202,     0,     0,     0,     0,    14,     0,
1872      0,    51,    51,   150,   150,   150,     0,   250,     0,    51,
1873      0,   422,    16,     0,    17,    18,     0,     0,     0,     0,
1874     20,     0,     0,     0,   628,    21,     0,     0,     0,    23,
1875      0,     0,  1172,  1172,  1172,     0,     0,     0,    26,     0,
1876     27,    28,     0,   457,   203,     0,   459,   461,   465,     0,
1877      0,     0,     0,     0,    30,    78,   473,     8,     9,     0,
1878    163,    12,    13,    51,    31,  1529,     0,    14,    51,     0,
1879     51,     0,    32,     0,     0,     0,     0,    33,     0,     0,
1880      0,    16,     0,    17,    18,     0,     0,   866,     0,    20,
1881      0,     0,     0,     0,    78,    78,    78,    78,    23,     0,
1882      0,   613,   613,     0,   613,     0,   198,    26,     0,   130,
1883    131,   613,     0,     0,     0,    76,     0,     0,     0,    51,
1884     51,     0,    51,     0,     0,     0,     0,     0,     0,     0,
1885    200,   253,     0,     0,   257,     7,   127,   128,    10,     0,
1886     78,   141,   145,     0,    78,     0,    76,     0,     0,     0,
1887      0,    78,    78,    76,    78,   253,     0,   361,    51,    51,
1888     51,     0,     0,     0,     0,     0,     0,     0,   209,   944,
1889      0,   944,   944,    21,   613,     0,     0,     0,     0,     0,
1890      0,     7,     8,     9,    10,    78,    26,    78,    27,    28,
1891      0,     0,    78,    78,    78,     0,     0,     0,     0,     0,
1892      0,     0,   147,     0,     0,     0,     0,     0,     7,     8,
1893      9,    10,   148,     0,   242,   944,     0,     0,     0,    21,
1894     32,     0,   198,     0,     0,   149,   200,   200,     0,   200,
1895      0,     0,    26,     0,    27,    28,     0,     0,  1401,     0,
1896    198,   198,   198,     0,     0,     0,    21,   403,   189,     0,
1897    472,   406,     0,     0,     0,   408,     0,     0,   190,    26,
1898      0,    27,    28,     0,     0,     0,    32,   200,     0,   198,
1899   1172,   191,    76,     0,     0,   189,    76,     0,     7,     8,
1900      9,    10,     0,   209,    13,   190,     0,     0,     0,     0,
1901    517,   517,   517,    32,     0,   257,     0,     0,   191,     0,
1902    141,   145,   613,     0,     0,     0,     0,     0,     0,   253,
1903      0,     0,     0,     0,     0,     0,    21,     0,     0,     0,
1904      0,     0,   734,     0,   628,     0,     0,   740,     0,    26,
1905      0,    27,    28,     0,     0,     0,  1331,   127,   128,    10,
1906   1172,  1172,  1172,     0,     0,   462,     0,     0,     0,     0,
1907      0,     0,   781,     0,     0,   463,     0,     0,   787,     0,
1908     78,    78,    78,    32,    51,     0,   505,     0,   464,     0,
1909    795,   796,     0,   797,    21,   613,     0,   613,     0,     0,
1910      0,     0,     0,     0,     0,     0,     0,    26,   613,    27,
1911     28,     0,   613,   613,   613,  1333,     0,     0,     0,     0,
1912      0,   253,   257,    30,  1174,     0,     0,     0,     0,     0,
1913      0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
1914      0,    32,     0,     0,     0,     0,    33,     0,     0,     0,
1915      0,     0,     0,    78,     0,   944,   944,  1145,     0,     0,
1916      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1917      0,   198,     0,     7,     8,     9,    10,   163,    12,    13,
1918      0,     0,   989,     0,    14,    78,   637,     0,   892,   893,
1919      0,     0,     0,   892,     0,     0,     0,     0,    16,  1145,
1920     17,    18,     0,     0,     0,     0,    20,     0,     0,     0,
1921      0,    21,     0,     0,     0,    23,     0,     7,     8,     9,
1922     10,     0,     0,   504,    26,     0,    27,    28,   200,   198,
1923      0,   198,     0,   198,   198,   198,     0,     0,     0,   198,
1924     30,     0,     0,     0,   198,   688,     0,   198,   689,     0,
1925     31,     0,     0,   691,     0,    21,     0,     0,    32,     0,
1926      0,    76,     0,    33,     0,     0,     0,     0,    26,     0,
1927     27,    28,     0,     0,     7,     8,     9,    10,    78,    78,
1928     78,    78,    78,     0,   189,     0,    78,     0,     0,   406,
1929      0,   408,     0,     0,   190,     0,     0,     0,     0,     0,
1930      0,     0,    32,     0,   505,   866,   866,   191,   866,  1174,
1931   1174,  1174,    21,     0,     0,     0,     0,     0,     0,     0,
1932      0,     0,     0,   777,     0,    26,     0,    27,    28,     0,
1933      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1934     78,   189,     0,     0,     0,    78,     0,    78,     0,     0,
1935      0,   190,     0,   944,   944,  1145,  1145,  1145,     0,    32,
1936      0,   944,     0,     0,   191,  1054,     0,  1056,     0,     0,
1937      0,     0,     0,     0,     0,     0,     7,     8,     9,    10,
1938    201,    12,   202,     0,  1145,  1145,  1145,    14,     0,     0,
1939    253,   257,     0,     0,     0,     0,    78,    78,     0,    78,
1940      0,    16,     0,    17,    18,     0,   198,     0,     0,    20,
1941      0,     0,     0,     0,    21,   200,     0,     0,    23,     0,
1942      0,     0,     0,     0,     0,     0,     0,    26,     0,    27,
1943     28,     0,     0,  1404,     0,    78,    78,    78,     0,  1090,
1944   1091,     0,  1093,    30,     0,   198,     0,   198,   198,     0,
1945      0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
1946      0,    32,     0,     8,     9,     0,    33,    12,    13,     0,
1947   1111,   944,   944,    14,   944,     0,     0,     0,     0,     0,
1948      0,     7,     8,     9,    10,     0,     0,    16,     0,    17,
1949      0,   198,     0,     0,     0,    20,     0,     0,     0,     0,
1950      0,     0,   198,   198,    23,   198,   946,     0,     0,     0,
1951    200,     0,   200,    26,     0,   130,   131,     0,     0,    21,
1952   1146,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1953    257,     0,    26,     0,    27,    28,     0,     0,     0,     0,
1954      0,     0,     0,   198,     0,     0,     0,  1174,   462,     8,
1955      9,     0,   201,    12,   202,   990,     0,     0,   463,    14,
1956      0,     0,   688,   689,     0,   691,    32,     0,     0,     0,
1957      0,   464,     0,    16,     0,    17,    18,     0,     0,     0,
1958      0,    20,     0,     0,     0,  1189,     0,     0,     0,     0,
1959     23,     0,     0,     0,     0,     0,   777,  1194,   777,    26,
1960      0,   130,   131,  1033,  1040,   777,     0,     0,     0,     0,
1961      0,     0,     0,     0,     0,     0,   102,  1174,  1174,  1174,
1962      0,     0,   466,     0,     0,   121,   102,     0,     0,     0,
1963      0,     0,   102,   102,     0,   102,     0,     0,     0,     0,
1964      0,    78,     0,     0,     0,     0,     0,     0,     0,     0,
1965      0,     0,     0,     7,     8,     9,    10,   163,    12,    13,
1966      0,     0,     0,     0,    14,     0,     0,   231,     0,     0,
1967      0,     0,     0,     0,   253,   257,   253,     0,    16,     0,
1968     17,    18,  1246,     0,     0,     0,    20,     0,     0,     0,
1969      0,    21,   466,   466,   466,    23,     0,     0,     0,     0,
1970      0,     0,     0,     0,    26,     0,    27,    28,     0,     0,
1971      0,   198,   198,  1143,     0,     0,   200,     0,   253,     0,
1972     30,  1259,     0,     0,     0,     0,   385,     0,   121,     0,
1973     31,     0,     0,     0,     0,   102,   102,     0,    32,     0,
1974      0,     0,   102,    33,   102,   102,   102,     0,   412,   102,
1975    102,   102,     0,     0,     0,  1143,   565,   566,   567,   568,
1976    569,   570,   571,   572,   573,   574,   575,   576,   577,   578,
1977      0,   141,   145,   760,     0,     7,     8,   761,    10,   163,
1978     12,    13,     0,     0,   198,  1346,    14,     0,     0,  1347,
1979      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1980     16,     0,    17,    18,    19,   472,     0,     0,    20,  -522,
1981      0,     0,     0,    21,     0,     0,     0,    23,   762,     0,
1982    164,     0,     0,     0,  1363,     0,    26,     0,    27,    28,
1983      0,     0,   763,     0,   764,   487,   102,     0,     0,     0,
1984      0,     0,    30,     0,  1033,     0,     0,     0,     0,     0,
1985      0,     0,    31,     0,     0,     0,     0,   102,     0,     0,
1986     32,     0,     0,     0,     0,    33,     0,     0,     0,     0,
1987      0,     0,     0,     0,     0,     0,   777,     0,     0,     0,
1988      0,  -522,     0,     0,     0,     0,     0,     0,   253,     0,
1989      0,     0,     0,     0,     0,     0,   102,     0,  1419,     0,
1990      0,     0,  1420,     0,     0,     0,     0,     0,     0,   198,
1991    198,   198,   198,  1143,     0,  1258,     0,   198,     0,     0,
1992      0,     0,     0,     0,  1438,  1439,     0,     0,     0,     0,
1993      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1994   1143,  1143,  1143,     0,   102,     0,   102,   102,   562,   563,
1995    564,   565,   566,   567,   568,   569,   570,   571,   572,   573,
1996    574,   575,   576,   577,   578,     0,     0,     0,     0,   406,
1997    408,   198,     0,     0,     0,     0,     0,   505,     0,     0,
1998      0,     0,     0,     0,     0,     0,     0,     0,     0,  1461,
1999      0,   102,   563,   564,   565,   566,   567,   568,   569,   570,
2000    571,   572,   573,   574,   575,   576,   577,   578,     0,   102,
2001      0,     0,     0,     0,     0,     0,   102,     0,     0,   102,
2002      0,     0,     0,     0,   102,     0,     0,   198,   198,     0,
2003    198,  1338,     0,     0,     0,     0,  1338,     0,   777,  1462,
2004    557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
2005    567,   568,   569,   570,   571,   572,   573,   574,   575,   576,
2006    577,   578,     0,     0,     0,     0,   198,     0,   198,     0,
2007      0,     0,     0,  1432,     0,  -475,  -475,  -475,  -475,  -475,
2008   -475,  -475,     0,     0,  -475,     0,  -475,   688,   689,     0,
2009    691,   102,     0,   752,     0,     0,     0,  -475,     0,  -475,
2010      0,     0,     0,  -475,     0,     0,     0,     0,  -475,     0,
2011      0,     0,     0,  -475,     0,     0,     0,  -475,   102,  -475,
2012      0,     0,     0,     0,     0,     0,  -475,  1406,  -475,  -475,
2013   -475,  -475,  -475,     0,  -475,  -475,  -475,  -475,  -475,  -475,
2014   -475,  -475,  -475,  -475,  -475,  -475,  -475,  -475,  -475,  -475,
2015   -475,  -475,  -475,  -475,  -475,  -475,  -475,     0,  -475,  -475,
2016   -475,     0,  -475,  -475,  -475,  -475,  -475,  -475,     0,  -475,
2017      0,     0,     0,     0,  1433,     0,     0,     0,  1143,  -475,
2018   -475,  -475,     0,  -475,   760,     0,     7,     8,   761,    10,
2019    163,    12,    13,     0,   102,     0,     0,    14,     0,     0,
2020      0,     0,     0,     0,     0,   102,   102,     0,   102,   102,
2021      0,    16,     0,    17,    18,    19,     0,     0,     0,    20,
2022      0,     0,     0,     0,    21,     0,     0,     0,    23,   762,
2023      0,   164,     0,     0,     0,     0,     0,    26,     0,    27,
2024     28,     0,     0,   763,     0,   764,     0,     0,  1143,  1143,
2025   1143,     0,     0,    30,     0,     0,     0,     0,     0,     0,
2026      0,   102,     0,    31,     0,     0,     0,     0,   102,   121,
2027      0,    32,   198,     0,     0,     0,    33,     0,     0,     0,
2028    231,   539,     0,   296,     8,     9,    10,   163,    12,   297,
2029    298,   299,   717,   300,    14,     0,     0,     0,     0,     0,
2030      0,     0,     0,   752,     0,     0,     0,     0,    16,   301,
2031     17,    18,    19,     0,   302,   303,    20,     0,   304,   305,
2032    306,    21,   307,   308,     0,    23,     0,   605,     0,   309,
2033    310,   311,   312,   313,    26,     0,    27,   315,  -308,     0,
2034      0,   316,     0,     0,     0,     0,     0,   317,     0,     0,
2035    897,     0,     0,     0,     0,     0,     0,     0,   319,   320,
2036    898,   752,     0,     0,   102,     0,   322,   323,   324,     0,
2037    608,     0,     0,   899,   610,     0,     0,     0,     0,     0,
2038      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2039    326,     0,     0,     0,     0,     0,     0,   102,   102,   102,
2040      0,     0,     0,     0,     0,     0,     0,     0,     0,   102,
2041      0,  1409,     0,  1269,  1270,  1271,    10,   163,    12,   297,
2042    298,   299,     0,   300,    14,  1272,     0,  1273,  1274,  1275,
2043   1276,  1277,  1278,  1279,  1280,  1281,  1282,    15,    16,   301,
2044     17,    18,    19,     0,   302,   303,    20,     0,   304,   305,
2045    306,    21,   307,   308,  1283,    23,  1284,     0,     0,   309,
2046    310,   311,   312,   313,    26,     0,  1285,   315,   704,     0,
2047   1286,   316,     0,     0,     0,     0,     0,   317,     0,     0,
2048    318,     0,   102,     0,   102,     0,     0,     0,   319,   320,
2049    321,     0,     0,     0,     0,   102,   322,   323,   324,     0,
2050      0,     0,     0,   325,     0,  1287,     0,     0,     0,     0,
2051      0,     0,     0,     0,     0,     0,     0,     0,     0,  1410,
2052    326,  1268,     0,  1269,  1270,  1271,    10,   163,    12,   297,
2053    298,   299,     0,   300,    14,  1272,     0,  1273,  1274,  1275,
2054   1276,  1277,  1278,  1279,  1280,  1281,  1282,    15,    16,   301,
2055     17,    18,    19,     0,   302,   303,    20,     0,   304,   305,
2056    306,    21,   307,   308,  1283,    23,  1284,     0,     0,   309,
2057    310,   311,   312,   313,    26,     0,  1285,   315,   704,     0,
2058   1286,   316,     0,     0,     0,     0,     0,   317,     0,     0,
2059    318,     0,     0,     0,     0,     0,     0,     0,   319,   320,
2060    321,     0,     0,     0,     0,     0,   322,   323,   324,     0,
2061    752,     0,     0,   325,     0,  1287,     0,     0,     0,     0,
2062      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2063    326,     0,     0,     0,     0,     0,     0,   102,   557,   558,
2064    559,   560,   561,   562,   563,   564,   565,   566,   567,   568,
2065    569,   570,   571,   572,   573,   574,   575,   576,   577,   578,
2066      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2067      0,   539,     0,     7,     8,     9,    10,   163,    12,   297,
2068    298,   299,   717,   300,    14,     0,  1222,     0,     0,     0,
2069      0,     0,   102,   102,     0,   102,     0,     0,    16,   301,
2070     17,    18,    19,     0,   302,   303,    20,     0,   304,   305,
2071    306,    21,   307,   308,     0,    23,     0,   605,     0,   309,
2072    310,   311,   312,   313,    26,     0,    27,    28,  -308,     0,
2073      0,   316,     0,     0,     0,     0,     0,   317,     0,     0,
2074   1169,     0,     0,     0,     0,     0,     0,     0,   319,   320,
2075   1170,     0,     0,     0,     0,   752,   322,   323,   324,     0,
2076    608,     0,     0,  1171,   610,     0,     0,     0,     0,     0,
2077      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2078    326,     0,     0,     0,     0,     0,   716,   752,   296,     8,
2079      9,    10,   163,    12,   297,   298,   299,   717,   300,    14,
2080      0,     0,     0,     0,     0,   102,     0,   102,     0,     0,
2081      0,     0,     0,    16,   301,    17,    18,    19,     0,   302,
2082    303,    20,     0,   304,   305,   306,    21,   307,   308,     0,
2083     23,     0,     0,     0,   309,   310,   311,   312,   313,    26,
2084      0,    27,   315,     0,     0,     0,   316,     0,     0,     0,
2085      0,     0,   317,     0,     0,   318,     0,     0,     0,     0,
2086      0,     0,     0,   319,   320,   321,     0,     0,     0,     0,
2087      0,   322,   323,   324,     0,     0,     0,   830,   325,   296,
2088      8,     9,    10,   163,    12,   297,   298,   299,     0,   300,
2089     14,     0,     0,  -791,     0,   326,     0,     0,     0,     0,
2090      0,     0,     0,     0,    16,   301,    17,    18,    19,     0,
2091    302,   303,    20,     0,   304,   305,   306,    21,   307,   308,
2092      0,    23,     0,     0,     0,   309,   310,   311,   312,   313,
2093     26,     0,    27,   315,  1506,     0,  -781,   316,     0,     0,
2094      0,     0,     0,   317,     0,     0,   318,     0,     0,     0,
2095      0,     0,     0,     0,   319,   320,   321,     0,     0,     0,
2096      0,     0,   322,   323,   324,     0,     0,     0,   707,   325,
2097    818,   819,   820,    10,     0,    12,   521,   298,   299,     0,
2098    300,    14,     0,     0,     0,     0,   326,     0,     0,     0,
2099      0,     0,     0,     0,     0,    16,   301,    17,     0,    19,
2100      0,   302,   303,    20,     0,   304,   305,   306,    21,   307,
2101    308,     0,    23,     0,     0,     0,   309,   310,   311,   312,
2102    313,    26,     0,   821,   822,   708,     0,     0,   316,     0,
2103      0,     0,     0,     0,   317,     0,     0,   318,     0,     0,
2104      0,     0,     0,     0,     0,   319,   320,   321,     0,     0,
2105      0,     0,     0,   322,   323,   324,     0,     0,     0,     0,
2106    325,   823,   707,     0,   818,   819,   820,    10,     0,    12,
2107    521,   298,   299,     0,   300,    14,   976,   326,     0,     0,
2108      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2109    301,    17,     0,    19,     0,   302,   303,    20,     0,   304,
2110    305,   306,    21,   307,   308,     0,    23,     0,     0,     0,
2111    309,   310,   311,   312,   313,    26,     0,   821,   822,   708,
2112      0,     0,   316,     0,     0,     0,     0,     0,   317,     0,
2113      0,   318,     0,     0,     0,     0,     0,     0,     0,   319,
2114    320,   321,     0,     0,     0,     0,     0,   322,   323,   324,
2115      0,     0,     0,     0,   325,   823,   707,     0,   818,   819,
2116    820,    10,     0,    12,   521,   298,   299,     0,   300,    14,
2117      0,   326,     0,     0,     0,     0,     0,     0,     0,     0,
2118      0,     0,     0,    16,   301,    17,     0,    19,     0,   302,
2119    303,    20,     0,   304,   305,   306,    21,   307,   308,     0,
2120     23,     0,     0,     0,   309,   310,   311,   312,   313,    26,
2121      0,   821,   822,   708,     0,     0,   316,     0,     0,     0,
2122      0,     0,   317,     0,     0,   318,     0,     0,     0,     0,
2123      0,     0,     0,   319,   320,   321,     0,     0,     0,     0,
2124      0,   322,   323,   324,     0,     0,     0,   707,   325,   818,
2125    819,   820,    10,     0,    12,   521,   298,   299,     0,   300,
2126     14,     0,     0,     0,  -479,   326,     0,     0,     0,     0,
2127      0,     0,     0,     0,    16,   301,    17,     0,    19,     0,
2128    302,   303,    20,     0,   304,   305,   306,    21,   307,   308,
2129      0,    23,     0,     0,     0,   309,   310,   311,   312,   313,
2130     26,     0,   821,   822,   708,     0,     0,   316,     0,     0,
2131      0,     0,     0,   317,     0,     0,   318,     0,     0,     0,
2132      0,     0,     0,     0,   319,   320,   321,     0,     0,     0,
2133      0,     0,   322,   323,   324,     0,     0,     0,   707,   325,
2134    296,     8,     9,    10,     0,    12,   521,   298,   299,     0,
2135    300,    14,     0,     0,     0,  1307,   326,     0,     0,     0,
2136      0,     0,     0,     0,     0,    16,   301,    17,     0,    19,
2137      0,   302,   303,    20,     0,   304,   305,   306,    21,   307,
2138    308,     0,    23,     0,     0,     0,   309,   310,   311,   312,
2139    313,    26,     0,    27,   315,   708,     0,     0,   316,     0,
2140      0,     0,     0,     0,   317,     0,     0,   318,     0,     0,
2141      0,     0,     0,     0,     0,   319,   320,   321,     0,     0,
2142      0,     0,     0,   322,   323,   324,     0,     0,     0,     0,
2143    325,     0,   539,     0,   296,     8,     9,    10,  1311,    12,
2144    297,   298,   299,     0,   300,    14,     0,   326,     0,     0,
2145      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2146    301,    17,     0,    19,     0,   302,   303,    20,     0,   304,
2147    305,   306,    21,   307,   308,     0,    23,     0,     0,     0,
2148    309,   310,   311,   312,   313,    26,     0,    27,   315,  -308,
2149      0,     0,   316,     0,     0,     0,     0,     0,   317,     0,
2150      0,   540,     0,     0,     0,     0,     0,     0,     0,   319,
2151    320,   541,     0,     0,     0,     0,     0,   322,   323,   324,
2152      0,     0,     0,   707,   542,   296,     8,     9,    10,     0,
2153     12,   521,   298,   299,     0,   300,    14,     0,     0,     0,
2154      0,   326,     0,     0,     0,     0,     0,     0,     0,     0,
2155     16,   301,    17,     0,    19,     0,   302,   303,    20,     0,
2156    304,   305,   306,    21,   307,   308,     0,    23,     0,     0,
2157      0,   309,   310,   311,   312,   313,    26,     0,    27,   315,
2158    708,     0,     0,   316,     0,     0,     0,     0,     0,   317,
2159      0,     0,   318,     0,     0,     0,     0,     0,     0,     0,
2160    319,   320,   321,     0,     0,     0,     0,     0,   322,   323,
2161    324,     0,     0,     0,   830,   325,   296,     8,     9,    10,
2162      0,    12,   521,   298,   299,     0,   300,    14,     0,     0,
2163      0,     0,   326,     0,     0,     0,     0,     0,     0,     0,
2164      0,    16,   301,    17,     0,    19,     0,   302,   303,    20,
2165      0,   304,   305,   306,    21,   307,   308,     0,    23,     0,
2166      0,     0,   309,   310,   311,   312,   313,    26,     0,    27,
2167    315,     0,     0,     0,   316,  -781,     0,     0,     0,     0,
2168    317,     0,     0,   318,     0,     0,     0,     0,     0,     0,
2169      0,   319,   320,   321,     0,     0,     0,     0,     0,   322,
2170    323,   324,     0,     0,     0,   539,   325,     7,     8,     9,
2171     10,     0,    12,   297,   298,   299,     0,   300,    14,     0,
2172      0,     0,     0,   326,     0,     0,     0,     0,     0,     0,
2173      0,     0,    16,   301,    17,     0,    19,     0,   302,   303,
2174     20,     0,   304,   305,   306,    21,   307,   308,     0,    23,
2175      0,     0,     0,   309,   310,   311,   312,   313,    26,     0,
2176     27,    28,  -308,     0,     0,   316,     0,     0,     0,     0,
2177      0,   317,     0,     0,  1477,     0,     0,     0,     0,     0,
2178      0,     0,   319,   320,  1478,     0,     0,     0,     0,     0,
2179    322,   323,   324,     0,     0,     0,  1558,  1479,   296,     8,
2180      9,    10,     0,    12,   297,   298,   299,     0,   300,    14,
2181      0,     0,     0,     0,   326,     0,     0,     0,     0,     0,
2182      0,     0,     0,    16,   301,    17,     0,    19,     0,   302,
2183    303,    20,     0,   304,   305,   306,    21,   307,   308,     0,
2184     23,     0,     0,     0,   309,   310,   311,   312,   313,    26,
2185      0,    27,   315,     0,     0,  -194,   316,     0,     0,     0,
2186      0,     0,   317,     0,     0,   318,     0,     0,     0,     0,
2187      0,     0,     0,   319,   320,   321,     0,     0,     0,     0,
2188      0,   322,   323,   324,     0,     0,     0,   830,   325,   296,
2189      8,     9,    10,     0,    12,   521,   298,   299,     0,   300,
2190     14,     0,     0,     0,     0,   326,     0,     0,     0,     0,
2191      0,     0,     0,     0,    16,   301,    17,     0,    19,     0,
2192    302,   303,    20,     0,   304,   305,   306,    21,   307,   308,
2193      0,    23,     0,     0,     0,   309,   310,   311,   312,   313,
2194     26,     0,    27,   315,     0,     0,     0,   316,     0,     0,
2195      0,     0,     0,   317,   259,     0,   318,     8,     9,     0,
2196      0,    12,    13,     0,   319,   320,   321,    14,     0,     0,
2197      0,     0,   322,   323,   324,     0,     0,     0,     0,   325,
2198      0,    16,     0,    17,     0,     0,     0,     0,     0,    20,
2199      0,   260,   261,     0,  -781,     0,   326,     0,    23,     0,
2200    262,     0,     0,     0,     0,     0,     0,    26,     0,   130,
2201    131,     0,   263,     0,     0,     0,   264,   265,   266,   267,
2202    268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2203    278,   279,   280,   281,   282,   283,   284,     0,     0,   285,
2204    286,   287,     0,     0,   288,     0,   918,   289,   296,     8,
2205      9,    10,     0,    12,   521,   298,   299,     0,   300,    14,
2206      0,     0,     0,   290,     0,     0,     0,     0,     0,     0,
2207      0,     0,     0,    16,   301,    17,     0,    19,     0,   302,
2208    303,    20,     0,   304,   305,   306,    21,   307,   308,     0,
2209     23,     0,     0,     0,   309,   310,   311,   312,   313,    26,
2210      0,    27,   315,     0,     0,     0,   316,     0,     0,     0,
2211      0,     0,   317,     0,     0,   318,     0,     0,     0,     0,
2212      0,     0,     0,   319,   320,   321,     0,     0,     0,     0,
2213      0,   322,   323,   324,     0,     0,     0,   920,   325,   296,
2214      8,     9,    10,     0,    12,   521,   298,   299,     0,   300,
2215     14,     0,     0,     0,     0,   326,     0,     0,     0,     0,
2216      0,     0,     0,     0,    16,   301,    17,     0,    19,     0,
2217    302,   303,    20,     0,   304,   305,   306,    21,   307,   308,
2218      0,    23,     0,     0,     0,   309,   310,   311,   312,   313,
2219     26,     0,    27,   315,     0,     0,     0,   316,     0,     0,
2220      0,     0,     0,   317,     0,     0,   318,     0,     0,     0,
2221      0,     0,     0,     0,   319,   320,   321,     0,     0,     0,
2222      0,     0,   322,   323,   324,     0,     0,     0,  1490,   325,
2223    296,     8,     9,    10,     0,    12,   521,   298,   299,     0,
2224    300,    14,     0,     0,     0,     0,   326,     0,     0,     0,
2225      0,     0,     0,     0,     0,    16,   301,    17,     0,    19,
2226      0,   302,   303,    20,     0,   304,   305,   306,    21,   307,
2227    308,     0,    23,     0,     0,     0,   309,   310,   311,   312,
2228    313,    26,     0,    27,   315,     0,     0,     0,   316,     0,
2229      0,     0,     0,     0,   317,     0,     0,   318,     0,     0,
2230      0,     0,     0,     0,     0,   319,   320,   321,     0,     0,
2231      0,     0,     0,   322,   323,   324,   296,     8,     9,    10,
2232    325,    12,   521,   298,   299,     0,   300,    14,     0,     0,
2233      0,     0,     0,     0,     0,     0,     0,   326,     0,     0,
2234      0,    16,   301,    17,     0,    19,     0,   302,   303,    20,
2235      0,   304,   305,   306,    21,   307,   308,     0,    23,     0,
2236      0,     0,   309,   310,   311,   312,   313,    26,     0,    27,
2237    315,     0,     0,     0,   316,     0,     0,     0,     0,     0,
2238    317,     0,   760,   318,     7,     8,   761,    10,   163,    12,
2239     13,   319,   320,   321,     0,    14,     0,     0,     0,   322,
2240    323,   324,     0,     0,     0,     0,   325,     0,     0,    16,
2241      0,    17,    18,    19,     0,     0,     0,    20,  -524,     0,
2242      0,     0,    21,   326,   869,     0,    23,   762,     0,   164,
2243      0,     0,     0,     0,     0,    26,     0,    27,    28,     0,
2244      0,   763,     0,   764,     0,     0,     0,     0,     0,     0,
2245      0,    30,   760,     0,     7,     8,   761,    10,   163,    12,
2246     13,    31,     0,     0,     0,    14,     0,     0,     0,    32,
2247      0,     0,     0,     0,    33,     0,     0,     0,     0,    16,
2248      0,    17,    18,    19,     0,     0,     0,    20,  -523,     0,
2249   -524,     0,    21,     0,     0,     0,    23,   762,     0,   164,
2250      0,     0,     0,     0,     0,    26,     0,    27,    28,     0,
2251      0,   763,     0,   764,     0,     0,     0,     0,     0,     0,
2252      0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
2253      0,    31,     0,     0,     0,     0,     0,     0,     0,    32,
2254      0,     0,     0,     0,    33,     0,     0,  1269,  1270,  1271,
2255     10,   163,    12,   297,   298,   299,     0,   300,    14,  1272,
2256   -523,  1273,  1274,  1275,  1276,  1277,  1278,  1279,  1280,  1281,
2257   1282,    15,    16,   301,    17,    18,    19,     0,   302,   303,
2258     20,     0,   304,   305,   306,    21,   307,   308,  1283,    23,
2259   1284,     0,     0,   309,   310,   311,   312,   313,    26,     0,
2260   1285,   315,   704,     0,  1286,   316,     0,     0,     0,     0,
2261      0,   317,     0,     0,   318,     0,     0,     0,     0,     0,
2262      0,     0,   319,   320,   321,     0,     0,     0,     0,     0,
2263    322,   323,   324,     0,     0,     0,     0,   325,     0,  1287,
2264      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2265      0,     0,     0,  1414,   326,  1269,  1270,  1271,    10,   163,
2266     12,   297,   298,   299,     0,   300,    14,  1272,     0,  1273,
2267   1274,  1275,  1276,  1277,  1278,  1279,  1280,  1281,  1282,    15,
2268     16,   301,    17,    18,    19,     0,   302,   303,    20,     0,
2269    304,   305,   306,    21,   307,   308,  1283,    23,  1284,     0,
2270      0,   309,   310,   311,   312,   313,    26,     0,  1285,   315,
2271    704,     0,  1286,   316,     0,     0,     0,     0,     0,   317,
2272      0,     0,   318,     0,     0,     0,     0,     0,     0,     0,
2273    319,   320,   321,     0,     0,     0,     0,     0,   322,   323,
2274    324,     0,     0,     0,     0,   325,     0,  1287,     0,  1269,
2275   1270,  1271,    10,   163,    12,   297,   298,   299,     0,   300,
2276     14,  1272,   326,  1273,  1274,  1275,  1276,  1277,  1278,  1279,
2277   1280,  1281,  1282,    15,    16,   301,    17,    18,    19,     0,
2278    302,   303,    20,     0,   304,   305,   306,    21,   307,   308,
2279   1283,    23,  1284,     0,     0,   309,   310,   311,   312,   313,
2280     26,     0,  1285,   315,  1535,     0,  1286,   316,     0,     0,
2281      0,     0,     0,   317,     0,     0,   318,     0,     0,     0,
2282      0,     0,     0,     0,   319,   320,   321,     0,     0,     0,
2283      0,     0,   322,   323,   324,     0,     0,     0,     0,   325,
2284      0,  1287,     0,  1269,  1270,  1271,    10,   163,    12,   297,
2285    298,   299,     0,   300,    14,  1272,   326,  1273,  1274,  1275,
2286   1276,  1277,  1278,  1279,  1280,  1281,  1282,    15,    16,   301,
2287     17,    18,    19,     0,   302,   303,    20,     0,   304,   305,
2288    306,    21,   307,   308,  1283,    23,  1284,     0,     0,   309,
2289    310,   311,   312,   313,    26,     0,  1285,   315,     0,     0,
2290   1286,   316,     0,     0,     0,     0,     0,   317,     0,     0,
2291    318,     0,     0,     0,     0,     0,     0,     0,   319,   320,
2292    321,     0,     0,     0,     0,     0,   322,   323,   324,     0,
2293      0,     0,     0,   325,     0,  1287,   296,     8,     9,    10,
2294    163,    12,   297,   298,   299,   717,   300,    14,     0,     0,
2295    326,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2296      0,    16,   301,    17,    18,    19,     0,   302,   303,    20,
2297      0,   304,   305,   306,    21,   307,   308,     0,    23,     0,
2298    605,     0,   309,   310,   311,   312,   313,    26,     0,    27,
2299    315,     0,     0,     0,   316,     0,     0,     0,     0,     0,
2300    317,     0,     0,   897,     0,     0,     0,     0,     0,     0,
2301      0,   319,   320,   898,     0,     0,     0,     0,     0,   322,
2302    323,   324,     0,   608,     0,     0,   899,   610,     7,     8,
2303      9,    10,   163,    12,   297,   298,   299,   717,   300,    14,
2304      0,     0,     0,   326,     0,     0,     0,     0,     0,     0,
2305      0,     0,     0,    16,   301,    17,    18,    19,     0,   302,
2306    303,    20,     0,   304,   305,   306,    21,   307,   308,     0,
2307     23,     0,   605,     0,   309,   310,   311,   312,   313,    26,
2308      0,    27,    28,     0,     0,     0,   316,     0,     0,     0,
2309      0,     0,   317,     0,     0,  1169,     0,     0,     0,     0,
2310      0,     0,     0,   319,   320,  1170,     0,     0,     0,     0,
2311      0,   322,   323,   324,     0,   608,     0,     0,  1171,   610,
2312    296,     8,     9,    10,     0,    12,   297,   298,   299,     0,
2313    300,    14,     0,     0,     0,   326,     0,     0,     0,     0,
2314      0,     0,     0,     0,     0,    16,   301,    17,     0,    19,
2315      0,   302,   303,    20,     0,   304,   305,   306,    21,   307,
2316    308,     0,    23,     0,   605,     0,   309,   310,   311,   312,
2317    313,    26,     0,    27,   315,     0,     0,     0,     0,     0,
2318      0,     0,     0,     0,   317,     0,     0,   897,     0,     0,
2319      0,     0,     0,     0,     0,   319,   320,   898,     0,     0,
2320      0,     0,     0,   322,   323,   324,     0,   608,     0,     0,
2321    899,   610,     7,     8,     9,    10,     0,    12,   297,   298,
2322    299,     0,   300,    14,     0,     0,     0,   326,     0,     0,
2323      0,     0,     0,     0,     0,     0,     0,    16,   301,    17,
2324      0,    19,     0,   302,   303,    20,     0,   304,   305,   306,
2325     21,   307,   308,     0,    23,     0,   605,     0,   309,   310,
2326    311,   312,   313,    26,     0,    27,    28,     0,     0,     0,
2327      0,     0,     0,     0,     0,     0,   317,     0,     0,  1169,
2328      0,     0,     0,     0,     0,     0,     0,   319,   320,  1170,
2329      0,     0,     0,     0,     0,   322,   323,   324,     0,   608,
2330      0,     0,  1171,   610,   296,     8,     9,    10,     0,    12,
2331    521,   298,   299,     0,   300,    14,     0,     0,     0,   326,
2332      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2333    301,    17,     0,    19,     0,   302,   303,    20,     0,   304,
2334    305,   306,    21,   307,   308,     0,    23,     0,     0,     0,
2335    309,   310,   311,   312,   313,    26,     0,    27,   315,     0,
2336      0,  1387,   316,     0,     0,     0,     0,     0,   317,     0,
2337      0,   318,     0,     0,     0,     0,     0,     0,     0,   319,
2338    320,   321,     0,     0,     0,     0,     0,   322,   323,   324,
2339      0,     0,     0,     0,   325,   296,     8,     9,    10,   163,
2340     12,   297,   298,   299,     0,   300,    14,     0,     0,     0,
2341      0,   326,     0,     0,     0,     0,     0,     0,     0,     0,
2342     16,   301,    17,    18,    19,     0,   302,   303,    20,     0,
2343    304,   305,   306,    21,   307,   308,     0,    23,     0,     0,
2344      0,   309,   310,   311,   312,   313,    26,     0,    27,   315,
2345      0,     0,     0,     0,     0,     0,     0,     0,     0,   317,
2346      0,     0,   318,     0,     0,     0,     0,     0,     0,     0,
2347    319,   320,   321,     0,     0,     0,     0,     0,   322,   323,
2348    324,   296,     8,     9,    10,   325,    12,   297,   298,   299,
2349      0,   300,    14,     0,     0,     0,     0,     0,     0,     0,
2350      0,     0,   326,     0,     0,     0,    16,   301,    17,     0,
2351     19,     0,   302,   303,    20,     0,   304,   305,   306,    21,
2352    307,   308,     0,    23,     0,     0,     0,   309,   310,   311,
2353    312,   313,    26,     0,   314,   315,     0,     0,     0,   316,
2354      0,     0,     0,     0,     0,   317,     0,     0,   318,     0,
2355      0,     0,     0,     0,     0,     0,   319,   320,   321,     0,
2356      0,     0,     0,     0,   322,   323,   324,   296,     8,     9,
2357     10,   325,    12,   297,   298,   299,     0,   300,    14,     0,
2358      0,     0,     0,     0,     0,     0,     0,     0,   326,     0,
2359      0,     0,    16,   301,    17,     0,    19,     0,   302,   303,
2360     20,     0,   304,   305,   306,    21,   307,   308,     0,    23,
2361      0,     0,     0,   309,   310,   311,   312,   313,    26,     0,
2362     27,   315,     0,     0,     0,   316,     0,     0,     0,     0,
2363      0,   317,     0,     0,   318,     0,     0,     0,     0,     0,
2364      0,     0,   319,   320,   321,     0,     0,     0,     0,     0,
2365    322,   323,   324,   296,     8,     9,    10,   325,    12,   521,
2366    298,   299,     0,   300,    14,     0,     0,     0,     0,     0,
2367      0,     0,     0,     0,   326,     0,     0,     0,    16,   301,
2368     17,     0,    19,     0,   302,   303,    20,     0,   304,   305,
2369    306,    21,   307,   308,     0,    23,     0,     0,     0,   309,
2370    310,   311,   312,   313,    26,     0,    27,   315,     0,     0,
2371      0,   316,     0,     0,     0,     0,     0,   317,     0,     0,
2372    318,     0,     0,     0,     0,     0,     0,     0,   319,   320,
2373    321,     0,     0,     0,     0,     0,   322,   323,   324,   296,
2374      8,     9,    10,   325,    12,   521,   298,   299,     0,   300,
2375     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2376    326,     0,     0,     0,    16,   301,    17,     0,    19,     0,
2377    302,   303,    20,     0,   304,   305,   306,    21,   307,   308,
2378      0,    23,     0,     0,     0,   309,   310,   311,   312,   313,
2379     26,     0,    27,   315,   554,     0,     0,     0,     0,     0,
2380      0,     0,     0,   317,     0,     0,   318,     0,     0,     0,
2381      0,     0,     0,     0,   319,   320,   321,     0,     0,     0,
2382      0,     0,   322,   323,   324,   296,     8,     9,    10,   555,
2383     12,   521,   298,   299,     0,   300,    14,     0,     0,     0,
2384      0,     0,     0,     0,     0,     0,   326,     0,     0,     0,
2385     16,   301,    17,     0,    19,     0,   302,   303,    20,     0,
2386    304,   305,   306,    21,   307,   308,     0,    23,     0,     0,
2387      0,   309,   310,   311,   312,   313,    26,     0,    27,   315,
2388      0,     0,     0,     0,     0,     0,     0,     0,     0,   317,
2389      0,     0,   318,     0,     0,     0,     0,     0,     0,     0,
2390    319,   320,   321,     0,     0,     0,     0,     0,   322,   323,
2391    324,     0,     0,     0,     0,   325,   593,   296,     8,     9,
2392     10,     0,    12,   521,   298,   299,     0,   300,    14,     0,
2393      0,     0,   326,     0,     0,     0,     0,     0,     0,     0,
2394      0,     0,    16,   301,    17,     0,    19,     0,   302,   303,
2395     20,     0,   304,   305,   306,    21,   307,   308,     0,    23,
2396      0,     0,     0,   309,   310,   311,   312,   313,    26,     0,
2397     27,   315,     0,     0,     0,   316,     0,     0,     0,     0,
2398      0,   317,     0,     0,   540,     0,     0,     0,     0,     0,
2399      0,     0,   319,   320,   541,     0,     0,     0,     0,     0,
2400    322,   323,   324,  1129,     8,     9,    10,   542,    12,   521,
2401    298,   299,     0,   300,    14,     0,     0,     0,     0,     0,
2402      0,     0,     0,     0,   326,     0,     0,     0,    16,   301,
2403     17,     0,    19,     0,   302,   303,    20,     0,   304,   305,
2404    306,    21,   307,   308,     0,    23,     0,     0,     0,   309,
2405    310,   311,   312,   313,    26,     0,    27,   315,     0,     0,
2406      0,   316,     0,     0,     0,     0,     0,   317,     0,     0,
2407    318,     0,     0,     0,     0,     0,     0,     0,   319,   320,
2408    321,     0,     0,     0,     0,     0,   322,   323,   324,     7,
2409      8,     9,    10,   325,    12,   521,   298,   299,     0,   300,
2410     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2411    326,     0,     0,     0,    16,   301,    17,     0,    19,     0,
2412    302,   303,    20,     0,   304,   305,   306,    21,   307,   308,
2413      0,    23,     0,     0,     0,   309,   310,   311,   312,   313,
2414     26,     0,    27,    28,     0,     0,     0,   316,     0,     0,
2415      0,     0,     0,   317,     0,     0,  1477,     0,     0,     0,
2416      0,     0,     0,     0,   319,   320,  1478,     0,     0,     0,
2417      0,     0,   322,   323,   324,   296,     8,     9,    10,  1479,
2418     12,   521,   298,   299,     0,   300,    14,     0,     0,     0,
2419      0,     0,     0,     0,     0,     0,   326,     0,     0,     0,
2420     16,   301,    17,     0,    19,     0,   302,   303,    20,     0,
2421    304,   305,   306,    21,   307,   308,     0,    23,     0,     0,
2422      0,   309,   310,   311,   312,   313,    26,     0,    27,   315,
2423      0,     0,     0,     0,     0,     0,     0,     0,     0,   317,
2424      0,     0,   318,     0,     0,     0,     0,     0,     0,     0,
2425    319,   320,   321,     0,     0,     0,     0,     0,   322,   323,
2426    324,   296,     8,     9,    10,   522,    12,   521,   298,   299,
2427      0,   300,    14,     0,     0,     0,     0,     0,     0,     0,
2428      0,     0,   326,     0,     0,     0,    16,   301,    17,     0,
2429     19,     0,   302,   303,    20,     0,   304,   305,   306,    21,
2430    307,   308,     0,    23,     0,     0,     0,   309,   310,   311,
2431    312,   313,    26,     0,    27,   315,     0,     0,     0,     0,
2432      0,     0,     0,     0,     0,   317,     0,     0,   318,     0,
2433      0,     0,     0,     0,     0,     0,   319,   320,   321,     0,
2434      0,     0,     0,     0,   322,   323,   324,   296,     8,     9,
2435     10,   525,    12,   521,   298,   299,     0,   300,    14,     0,
2436      0,     0,     0,     0,     0,     0,     0,     0,   326,     0,
2437      0,     0,    16,   301,    17,     0,    19,     0,   302,   303,
2438     20,     0,   304,   305,   306,    21,   307,   308,     0,    23,
2439      0,     0,     0,   309,   310,   311,   312,   313,    26,     0,
2440     27,   315,     0,     0,     0,     0,     0,     0,     0,     0,
2441      0,   317,     0,     0,   318,     0,     0,     0,     0,     0,
2442      0,     0,   319,   320,   321,     0,     0,     0,     0,     0,
2443    322,   323,   324,   296,     8,     9,    10,   325,    12,   521,
2444    298,   299,     0,   300,    14,     0,     0,     0,     0,     0,
2445      0,     0,     0,     0,   326,     0,     0,     0,    16,   301,
2446     17,     0,    19,     0,   302,   303,    20,     0,   304,   305,
2447    306,    21,   307,   308,     0,    23,     0,     0,     0,   309,
2448    310,   311,   312,   313,    26,     0,    27,   315,     0,     0,
2449      0,     0,     0,     0,     0,     0,     0,   317,     0,     0,
2450    540,     0,     0,     0,     0,     0,     0,     0,   319,   320,
2451    541,     0,     0,     0,     0,     0,   322,   323,   324,     7,
2452      8,     9,    10,   542,    12,   297,   298,   299,     0,   300,
2453     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2454    326,     0,     0,     0,    16,   301,    17,     0,    19,     0,
2455    302,   303,    20,     0,   304,   305,   306,    21,   307,   308,
2456      0,    23,     0,     0,     0,   309,   310,   311,   312,   313,
2457     26,     0,    27,    28,     0,     0,     0,     0,     0,     0,
2458      0,     0,     0,   317,     0,     0,  1477,  1023,     8,   761,
2459     10,   201,    12,   202,   319,   320,  1478,     0,    14,     0,
2460      0,     0,   322,   323,   324,     0,     0,     0,     0,  1479,
2461      0,     0,    16,     0,    17,    18,     0,     0,     0,     0,
2462     20,     0,     0,     0,     0,    21,   326,     0,     0,    23,
2463      0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
2464     27,    28,     0,     0,     0,     0,  1025,     0,     0,     0,
2465      0,     0,     0,     0,    30,     7,     8,     9,    10,   201,
2466     12,   202,     0,     0,    31,     0,    14,     0,     0,     0,
2467      0,     0,    32,     0,     0,     0,     0,    33,     0,     0,
2468     16,     0,    17,    18,     0,     0,     0,     0,    20,     0,
2469      0,     0,     0,    21,     0,     0,     0,    23,     0,     0,
2470      0,     0,     0,     0,     0,     0,    26,     0,    27,    28,
2471    557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
2472    567,   568,    30,   570,   571,   572,   573,   574,   575,   576,
2473    577,   578,    31,     0,     0,     0,     0,     0,     0,     0,
2474     32,     0,     0,     0,     0,    33,   557,   558,   559,   560,
2475    561,   562,   563,   564,   565,   566,   567,   568,   569,   570,
2476    571,   572,   573,   574,   575,   576,   577,   578,     0,     0,
2477      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2478      0,     0,     0,     0,     0,     0,     0,   646,     0,     0,
2479   1525,   557,   558,   559,   560,   561,   562,   563,   564,   565,
2480    566,   567,   568,   569,   570,   571,   572,   573,   574,   575,
2481    576,   577,   578,  1543,   557,   558,   559,   560,   561,   562,
2482    563,   564,   565,   566,   567,   568,   569,   570,   571,   572,
2483    573,   574,   575,   576,   577,   578,   557,   558,   559,   560,
2484    561,   562,   563,   564,   565,   566,   567,   568,   569,   570,
2485    571,   572,   573,   574,   575,   576,   577,   578
2486 };
2487
2488 static const short yycheck[] = {     4,
2489    147,   148,   157,     4,   205,   170,    55,   171,   398,    80,
2490     46,   702,    80,    23,   172,    14,   448,   345,   398,   247,
2491    351,   126,     4,   443,   398,   351,   470,   134,   491,   858,
2492     35,     4,   300,   301,    35,   685,   609,    42,   133,   134,
2493     76,   428,   243,   616,   552,    84,   369,   765,    42,   767,
2494      4,    42,    57,    35,   205,     4,   774,    57,   133,    62,
2495     42,     4,    35,   214,   178,   333,   678,    72,   589,    42,
2496    124,   142,  1369,  1288,    42,  1298,    30,    31,    54,    84,
2497   1459,    35,  1305,    88,    83,    90,    35,    92,    42,     4,
2498    782,   292,    35,    42,   238,  1458,   788,   632,    11,    42,
2499     42,    11,   107,   108,    33,    11,  1460,   106,    12,    27,
2500     90,     1,    92,    31,    12,     0,     4,    37,   478,    58,
2501     35,    59,   171,   351,  1192,  1193,   546,    42,   199,    62,
2502     84,   136,   137,    54,   139,   495,   136,    75,  1206,    77,
2503   1503,    62,    60,     0,   345,  1482,    64,    35,   352,   353,
2504     58,   686,    62,    47,    62,    59,   161,   137,    62,    98,
2505    165,    59,  1506,   136,    62,  1502,   610,   172,    58,    84,
2506    161,   165,   172,   209,   165,   108,   152,     3,     4,     5,
2507    109,    47,   136,   165,   213,   214,  1540,   136,   161,   109,
2508    258,   109,   165,   147,   148,   108,   524,   165,   108,    93,
2509    404,   405,   108,   895,   108,   208,  1585,   161,    42,     1,
2510   1554,   165,   161,   216,   108,    60,   165,    48,     1,    47,
2511    196,   136,   165,   165,  1561,    59,    74,    93,    94,   232,
2512     56,    57,     4,     5,     9,   189,   190,  1600,   701,     7,
2513   1463,    59,   108,    62,  1459,   244,   161,   342,  1545,    74,
2514    165,    59,    93,    60,    80,    74,     4,    59,    54,    25,
2515    910,    27,  1330,   913,   109,    93,    58,   342,    59,    37,
2516     62,  1339,  1340,    60,  1342,    58,    48,    93,    74,    62,
2517    108,   436,   389,   703,    56,    57,    61,    35,   293,  1512,
2518      4,   109,    58,    57,   668,    59,    62,    47,   629,   338,
2519    108,    65,   109,    95,   954,   955,   108,    47,    80,   696,
2520    697,    60,    95,    47,    64,   462,   463,   108,  1010,    93,
2521    325,    35,   109,   935,   475,    25,   899,   381,    59,    95,
2522   1022,   165,    74,   338,   724,   658,   857,     4,     5,  1562,
2523     38,   346,     9,    93,   724,     3,     4,     5,     6,   354,
2524    355,   400,   351,    93,    94,   355,    54,    59,    58,    93,
2525    109,    47,    62,  1055,   468,  1057,     4,     5,   108,   942,
2526    598,   205,   476,    75,   354,   302,   303,   108,    64,   213,
2527    214,    74,   355,    41,   338,    54,    47,    54,    47,    56,
2528     57,   318,   720,   398,   321,    95,   401,   324,    56,    57,
2529    327,   355,  1231,    70,   331,    74,   355,    93,   172,   243,
2530     48,   984,   339,    80,   178,    93,   398,    12,    56,    57,
2531   1488,  1489,    47,   338,   492,   430,    47,    94,   860,   633,
2532     88,   939,    93,    94,    93,   438,   430,    59,    60,   430,
2533    355,   205,    80,    64,   398,   474,   475,   108,   484,   213,
2534    214,   456,   896,   482,     4,     5,   107,   430,   292,     3,
2535      4,     5,     6,    60,    59,   494,    33,    62,    93,    64,
2536   1120,  1121,    93,    94,    60,    59,   430,    25,   481,    54,
2537     64,   430,    58,   398,   513,    54,    47,   492,    64,  1207,
2538     54,    75,   492,    62,     8,     9,    47,    41,    48,    74,
2539     14,    31,   456,   107,   108,    74,    56,    57,   462,   463,
2540     54,   345,    56,    57,   519,   430,    75,   522,    77,   492,
2541    525,    25,    36,    27,   529,   530,   531,   532,   533,  1358,
2542    695,    45,    93,    47,     3,     4,     5,   542,   492,   519,
2543     62,   456,    93,   492,    88,  1008,   936,   552,    58,   492,
2544    555,   590,   659,   973,    58,    47,   936,    47,    62,   666,
2545     83,    84,   936,    62,     3,     4,     5,     6,   402,  1142,
2546     54,   666,    54,   904,    47,    74,    47,   492,   904,    93,
2547    147,   148,   149,    47,   109,   590,   635,    56,    57,    58,
2548     54,    95,    74,    25,   798,    27,   430,    74,  1171,    54,
2549     58,    93,    41,    93,   609,   749,   807,   751,    93,    48,
2550     74,   616,   756,   540,   541,     4,     5,    56,    57,    74,
2551     93,   620,    93,    94,   191,   674,    58,   676,   677,    93,
2552     62,   745,    54,   901,    59,    60,   590,   401,   402,    47,
2553    474,   475,  1074,  1075,    54,    25,    54,    27,   482,    88,
2554   1094,    54,   606,   607,   759,   609,   661,   667,    54,    44,
2555    494,    47,   616,    95,    74,   779,    74,    56,    57,    54,
2556    675,   720,    57,    75,   679,   590,   904,   108,    58,   513,
2557     47,   661,    62,    33,    47,    93,     3,     4,     5,     6,
2558   1153,   701,     9,   108,   609,     4,     5,   765,   109,   767,
2559     47,   616,    94,   467,    47,   773,   774,    93,    94,   108,
2560    474,   475,    47,   742,   478,    95,    62,   108,   482,   724,
2561     47,   325,  1185,   772,    41,   929,    93,    94,    74,    47,
2562     93,   495,   768,   769,    47,  1167,    47,    54,    62,    56,
2563     57,   777,    11,    98,  1176,  1177,    93,    56,    57,  1181,
2564     93,    93,    62,    70,     3,     4,     5,    60,    93,     3,
2565    765,  1089,   767,    80,    74,   765,    93,   767,   773,   774,
2566    724,    88,   772,   773,   774,    93,    93,   782,   783,   784,
2567     93,   786,    93,   788,   108,     3,     4,     5,  1090,  1091,
2568   1222,  1093,   765,    60,   767,   111,   961,   147,   148,   149,
2569     94,   774,   636,   783,   784,    54,   786,    56,    57,   724,
2570     94,   765,    62,   767,   111,    54,   765,    93,   767,    93,
2571    774,   398,   765,    62,   767,   774,    59,    60,   782,    47,
2572     59,   774,    59,    60,   788,    74,    54,    47,    56,    57,
2573     54,   191,    74,   677,    54,  1049,  1050,  1051,    62,   453,
2574    765,   856,   767,     3,     4,     5,   861,  1548,    54,   774,
2575     74,  1005,  1006,  1007,    74,    74,    62,   782,    74,    54,
2576     59,    60,   636,   788,    74,    93,   947,    62,    74,   456,
2577     30,    59,    60,    93,   889,  1317,   720,    59,    60,    74,
2578    895,     7,     8,     9,   899,   462,   463,   464,    14,    59,
2579     60,  1015,  1016,    11,    54,   904,    56,    57,   742,     4,
2580      5,   675,   109,   677,   678,    31,    54,   108,   522,    59,
2581     36,   525,   108,  1355,    62,   529,   795,   796,   797,    45,
2582   1044,   936,    59,   938,   939,   108,    74,   942,   542,    59,
2583     60,   895,   869,   897,   898,   899,   108,    74,    75,    74,
2584     77,   555,    59,    60,   936,   559,   720,    54,   109,    54,
2585   1380,    56,    57,  1034,  1013,    74,  1034,     4,     5,  1297,
2586    897,   898,    74,   807,   108,    70,  1396,  1045,   742,   984,
2587    895,   745,   936,   587,   899,    80,   940,   941,   942,   593,
2588   1026,   109,   997,  1140,  1141,   108,  1032,  1033,  1003,    94,
2589   1036,  1037,     4,     5,  1040,  1010,   111,     4,     5,   773,
2590    111,    48,    27,  1013,    74,   779,    74,  1022,    54,    56,
2591     57,   936,  1169,  1170,     4,     5,    74,   942,   111,   111,
2592    984,   108,   609,    27,   108,   108,    58,    31,  1242,   616,
2593   1045,   108,    54,    80,     8,  1045,    48,   111,    93,    47,
2594   1055,    48,  1057,    64,    56,    57,  1010,   109,    59,    56,
2595     57,    93,  1482,    54,    44,    59,    60,    60,  1022,   984,
2596      4,     5,  1045,  1144,    54,     9,    56,    57,    80,    36,
2597   1085,    64,  1502,    80,  1198,  1199,    64,  1201,  1202,    64,
2598   1204,  1045,   108,  1098,    60,  1010,  1045,     3,     4,     5,
2599     62,  1055,  1045,  1057,     4,     5,  1496,  1022,     4,     5,
2600     64,  1531,   462,   463,   464,    64,  1496,    64,  1098,   108,
2601     54,   108,    56,    57,     9,   111,   108,    12,    93,   108,
2602   1045,  1295,    59,  1297,    62,  1203,    70,  1142,  1296,  1207,
2603   1055,  1561,  1057,  1153,     4,     5,    80,   724,    54,  1569,
2604     56,    57,    48,   108,    54,   108,    56,    57,  1590,  1164,
2605     56,    57,    47,  1164,   108,   108,  1171,     8,     9,  1096,
2606     70,   935,  1500,    14,    59,   108,    61,    62,    75,    64,
2607     80,    75,    75,    75,    80,   108,  1140,  1141,  1142,   108,
2608     75,  1164,    77,    62,    54,    36,    56,    57,    62,   108,
2609     59,    62,  1207,   108,    45,   782,   108,  1207,    93,    94,
2610   1164,   788,   111,  1327,  1328,  1169,  1170,  1171,    94,    74,
2611    111,  1164,    88,   108,    90,    88,    92,  1142,     3,     4,
2612      5,    47,     7,   108,  1207,     3,     4,     5,   108,     7,
2613      8,     9,  1169,  1170,   111,    60,  1295,   109,  1297,  1164,
2614    108,  1015,  1016,  1207,   111,    30,  1171,   108,  1207,   108,
2615    108,   865,    37,    31,  1207,   109,    59,    64,    36,    64,
2616     59,   137,    59,   139,    27,   108,   108,   108,    31,    54,
2617   1044,    56,    57,  1288,    93,    93,    54,    93,    56,    57,
2618     58,  1296,  1207,  1298,    93,   899,   109,  1298,   109,  1500,
2619   1305,  1337,  1338,   108,  1305,   108,    59,    60,     8,  1314,
2620    111,    64,  1426,  1427,  1428,  1288,     4,     5,   895,  1474,
2621      8,     9,   899,   108,   108,  1298,    14,     3,     4,     5,
2622   1477,  1478,  1305,   111,  1288,   103,   104,   105,   108,   449,
2623     28,   108,    30,   109,  1298,  1288,   456,   108,    36,   108,
2624     33,  1305,   108,   108,   108,  1298,    47,    45,   108,   936,
2625     64,  1288,  1305,  1528,   108,   942,    54,    54,    56,    57,
2626   1406,  1485,  1486,  1288,   108,   942,   108,    62,    54,    12,
2627     56,    57,    58,  1298,    80,    81,    82,    83,    84,   111,
2628   1305,    47,   108,   108,    27,    86,    87,   108,    31,  1003,
2629     91,    92,    93,    94,    96,    93,     9,   984,    62,    62,
2630    520,    60,    60,    60,    47,    16,    93,   984,     3,     4,
2631      5,    60,     7,     8,     9,    93,    59,    60,   108,    62,
2632    108,    64,    60,  1010,  1198,  1199,   108,  1201,  1202,  1553,
2633   1204,   108,     3,     4,     5,  1022,    31,   108,  1453,   108,
2634    316,    36,  1501,  1458,  1459,  1460,    64,  1458,  1463,    54,
2635     93,    94,  1463,  1297,    93,     3,     4,     5,     6,   111,
2636    580,    56,    57,    93,  1479,   108,   586,    17,  1055,    60,
2637   1057,    54,   107,    97,   108,  1458,  1459,    48,   354,    60,
2638   1463,  1496,   108,   108,    33,    56,    57,  1533,  1503,  1453,
2639     11,   108,  1503,    41,  1458,  1459,  1460,  1512,    60,  1463,
2640     60,  1512,    60,   623,    93,  1458,  1459,    59,    56,    57,
2641   1463,    64,   108,  1477,  1478,    60,   108,    11,   108,    60,
2642   1503,    11,  1296,  1297,    60,  1540,     0,     0,  1453,  1512,
2643      0,     2,  1496,  1458,  1459,  1460,    35,   166,  1463,  1503,
2644   1477,  1478,  1394,     3,     4,     5,     6,  1562,  1512,   659,
2645   1503,  1562,   936,  1327,  1328,  1142,   165,  1171,   161,  1512,
2646      3,     4,     5,  1140,  1141,  1142,   430,  1527,   773,     4,
2647      5,  1496,   448,   449,     9,  1153,  1540,    94,  1503,  1562,
2648    456,    41,   942,   139,  1171,  1600,  1600,  1512,    48,  1600,
2649   1379,  1232,  1169,  1170,  1171,    14,    56,    57,  1562,   148,
2650    149,   295,   708,    22,  1218,  1219,  1220,  1221,   922,  1562,
2651    237,   917,    47,    56,    57,  1540,  1008,  1600,  1185,    54,
2652     80,    56,    57,  1045,   984,  1205,   773,   642,    88,   590,
2653    915,   196,   124,   342,  1298,    70,  1600,  1562,  1165,  1548,
2654   1569,  1579,   191,   519,   520,    80,    65,  1600,  1517,  1581,
2655    992,  1314,  1426,  1427,  1428,    90,  1500,    -1,    93,    94,
2656      3,     4,     5,    -1,     7,     8,     9,  1281,    -1,    -1,
2657     -1,     3,     4,     5,     6,  1600,   552,    -1,   554,    -1,
2658     -1,   557,   558,    -1,   560,   561,   562,   563,   564,   565,
2659    566,   567,   568,   569,   570,   571,   572,   573,   574,   575,
2660    576,   577,   578,    -1,   580,   124,    -1,    -1,    -1,    41,
2661    586,  1485,  1486,    56,    57,    -1,    -1,   740,     3,     4,
2662      5,    -1,    54,    -1,    56,    57,    -1,   146,    60,    -1,
2663     62,    -1,    -1,    -1,    -1,   855,   856,    -1,    70,    80,
2664    616,   861,  1356,    -1,    -1,    -1,    -1,   623,    80,    -1,
2665     -1,    -1,    -1,    -1,    -1,   875,    88,   877,   781,   879,
2666     -1,    93,    -1,   104,   787,    -1,    -1,    -1,    -1,   645,
2667    646,    56,    57,    -1,    -1,  1389,   325,    -1,    -1,  1553,
2668   1140,  1141,  1142,    -1,    -1,   661,    -1,     3,     4,     5,
2669      6,    -1,   133,     9,    -1,     1,    -1,     3,     4,     5,
2670      6,   142,     8,    -1,   924,    -1,   344,   345,   346,  1169,
2671   1170,  1171,    -1,    -1,   233,   234,    -1,     3,     4,     5,
2672      6,    -1,     3,     4,     5,    41,    -1,    -1,   247,    -1,
2673   1407,    47,   708,    -1,    -1,    41,    -1,    -1,    54,  1453,
2674     56,    57,    48,    -1,    -1,  1459,  1460,   967,    54,    -1,
2675     56,    57,    38,    39,    70,    41,    -1,    -1,   199,    -1,
2676     -1,    -1,    -1,    -1,    80,  1479,    -1,   890,    54,   892,
2677     56,    57,    88,    -1,    90,    56,    57,    93,    94,     3,
2678      4,     5,    88,    -1,     3,     4,     5,     6,   764,    -1,
2679     -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,   317,    -1,
2680   1477,  1478,  1479,    -1,    -1,    -1,    -1,   783,   784,  1496,
2681    786,   344,   345,   346,   463,   464,    -1,   258,    -1,    -1,
2682     -1,    -1,    41,    -1,    48,   801,  1540,    -1,    -1,     3,
2683      4,     5,    56,    57,    -1,    54,    -1,    56,    57,    -1,
2684    359,    60,  1556,     3,     4,     5,     6,   823,    -1,   368,
2685     -1,    70,    -1,    -1,     3,     4,     5,     3,     4,     5,
2686      6,    80,   381,    -1,  1578,     3,     4,     5,    -1,    88,
2687     -1,  1585,    -1,   522,    93,    -1,   525,    -1,    -1,   855,
2688    856,    41,    56,    57,   860,   861,    -1,    -1,    48,    -1,
2689     -1,    -1,   541,   542,    -1,    41,    56,    57,    -1,   875,
2690     -1,   877,    48,   879,    -1,    -1,   555,    56,    57,   350,
2691     56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    56,    57,
2692     80,    -1,    -1,    -1,     4,    -1,    -1,    -1,    88,    -1,
2693     -1,  1054,    -1,  1056,    14,  1155,    -1,  1157,   914,  1159,
2694     -1,    -1,    88,    -1,    24,    -1,    -1,  1407,   924,    -1,
2695     30,    31,    -1,    33,    -1,    35,    -1,     3,     4,     5,
2696      6,    -1,    42,   939,    -1,    -1,   407,   616,   606,   607,
2697    489,   609,    -1,    -1,    -1,    55,   952,    57,   616,    -1,
2698     -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,  1111,    -1,
2699     -1,   967,    72,    -1,    -1,    41,    -1,    -1,    -1,   449,
2700     -1,    -1,    48,    83,    84,    -1,   456,    -1,   984,    -1,
2701     56,    57,    -1,    -1,    -1,    -1,    -1,  1477,  1478,  1479,
2702     -1,    -1,    -1,     3,     4,     5,   106,    -1,    -1,    -1,
2703     -1,    -1,    -1,  1253,    80,   554,   674,    -1,   676,   677,
2704     -1,   679,    88,    -1,    -1,    -1,    -1,    -1,   489,  1025,
2705      3,     4,     5,     6,   134,    -1,   136,    -1,    -1,    -1,
2706    140,    -1,    -1,   143,   144,    -1,  1189,   147,   148,   149,
2707    520,  1194,    -1,   606,   607,   516,    56,    57,    -1,   598,
2708     -1,   161,   720,    -1,    -1,   165,    -1,    -1,    41,    -1,
2709     -1,   171,   172,    -1,    -1,    48,    -1,    -1,  1074,  1075,
2710     -1,    -1,  1078,    56,    57,    -1,    -1,    -1,    -1,   189,
2711    190,   191,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
2712      6,    -1,  1098,  1246,    -1,    -1,    -1,    80,    -1,    -1,
2713    580,    -1,    -1,    -1,    -1,    88,   586,    -1,   218,    -1,
2714     -1,   674,    -1,   676,   677,    -1,   679,    -1,   667,    -1,
2715     -1,    -1,   801,    -1,   234,    41,    -1,    -1,    -1,   678,
2716     -1,    47,   603,    -1,   244,    -1,   616,    -1,    54,   807,
2717     56,    57,    -1,   623,    -1,   255,    -1,    -1,   619,  1155,
2718     -1,  1157,    -1,  1159,    70,    -1,    -1,   720,    -1,   708,
2719     -1,  1167,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,
2720   1176,  1177,    88,    -1,    90,  1181,    -1,    93,    94,     7,
2721      8,     9,    -1,   293,   294,    -1,    14,    -1,    -1,    -1,
2722   1196,  1197,    -1,  1346,  1347,     3,     4,     5,     6,    -1,
2723     -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    36,    -1,
2724   1363,    -1,   880,    -1,   882,    -1,  1222,    45,    -1,   898,
2725    899,    -1,    -1,    -1,    -1,   893,    -1,    -1,   338,   897,
2726    898,   899,   342,    41,   344,   345,   346,    -1,    -1,    -1,
2727     48,    -1,    -1,    -1,   807,   355,    -1,  1253,    56,    57,
2728     -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,
2729     -1,     9,    -1,   942,    -1,    -1,  1419,  1420,    -1,    -1,
2730     -1,  1277,   940,   941,   942,    -1,    -1,    -1,    -1,   389,
2731     88,    -1,    -1,    -1,    -1,  1438,  1439,    -1,   398,    -1,
2732    400,   401,    -1,    41,    -1,    -1,    -1,    -1,    -1,    47,
2733     -1,    -1,    -1,    -1,   414,   984,    54,   417,    56,    57,
2734     -1,  1317,   422,    -1,    -1,    -1,   984,   880,    -1,   882,
2735    430,   801,    70,    -1,    -1,    -1,    -1,  1333,    -1,    -1,
2736    893,    -1,    80,    -1,   897,   898,    -1,    -1,    -1,    -1,
2737     88,    -1,    90,    -1,    -1,    93,    94,    -1,   458,  1355,
2738    460,    -1,   462,   463,   464,     7,     8,     9,   468,     4,
2739      5,    -1,    14,   473,     4,     5,   476,     7,     8,     9,
2740     -1,    -1,    12,   922,    14,   855,   856,   940,   941,    31,
2741     -1,   861,   492,    -1,    36,    -1,   935,    -1,    28,    -1,
2742     30,    31,    -1,    45,    -1,   875,    36,   877,    -1,   879,
2743     -1,  1407,    47,    -1,    -1,    45,    -1,    47,    60,    54,
2744     -1,    56,    57,    -1,    54,    -1,    56,    57,  1424,  1425,
2745    530,   531,   532,   533,    -1,    70,    -1,  1433,    -1,    -1,
2746     70,    -1,   903,    -1,   905,    80,    -1,    -1,    -1,    -1,
2747     80,    -1,    -1,    -1,   924,    90,    -1,    -1,    93,    94,
2748     90,    -1,    -1,    93,    94,  1461,    -1,    -1,    -1,    -1,
2749     -1,    -1,  1141,  1142,     4,     5,    -1,    -1,    -1,     9,
2750   1138,  1139,  1140,  1141,  1142,    -1,   947,    -1,  1146,    -1,
2751    590,    -1,   592,    -1,    -1,    -1,    -1,   967,    -1,    -1,
2752     -1,  1170,  1171,    -1,   604,    -1,   606,   607,    -1,   609,
2753     -1,  1169,  1170,  1171,   984,    -1,   616,    47,    -1,    -1,
2754    620,    -1,    -1,    -1,    54,    -1,    56,    57,    78,    79,
2755     80,    81,    82,    83,    84,   635,  1075,    -1,    -1,    -1,
2756     70,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2757     80,    -1,     3,     4,     5,     6,    -1,    -1,     9,   659,
2758     90,    -1,    -1,    93,    94,    -1,   666,    -1,    -1,    -1,
2759     -1,    -1,    -1,  1034,   674,   675,   676,   677,   678,   679,
2760     -1,    -1,    -1,    -1,    -1,  1138,  1139,  1140,  1141,    -1,
2761     41,    -1,    -1,  1146,  1590,    -1,    47,    -1,  1256,  1257,
2762     -1,  1259,    -1,    54,    -1,    56,    57,     3,     4,     5,
2763      6,    -1,    -1,    -1,    -1,    -1,  1169,  1170,    -1,    70,
2764    720,    -1,  1161,    -1,   724,     4,     5,    -1,  1167,    80,
2765      9,   731,   732,    -1,   734,    -1,    -1,    88,    -1,    90,
2766     -1,    -1,    93,    94,    -1,    41,    -1,    -1,    -1,    -1,
2767     -1,    -1,    48,    -1,    -1,    -1,  1117,    -1,    -1,    -1,
2768     56,    57,   762,    -1,    -1,   765,    -1,   767,    47,    -1,
2769     -1,    -1,   772,   773,   774,    54,    -1,    56,    57,    -1,
2770     -1,    -1,   782,  1144,    80,  1155,    -1,  1157,   788,  1159,
2771     -1,    70,    88,    -1,    -1,   795,   796,   797,    -1,    -1,
2772     -1,    80,    -1,  1256,  1257,    -1,  1259,   807,    -1,    -1,
2773     -1,    90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,
2774     -1,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
2775     -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,  1407,    -1,
2776     -1,    -1,  1203,  1282,  1283,    -1,    -1,    -1,    28,    -1,
2777     30,    31,    32,    -1,    -1,    -1,    36,    -1,    -1,    -1,
2778     -1,    41,     4,     5,    -1,    45,     8,     9,    48,    -1,
2779     -1,    -1,    14,    -1,    54,    -1,    56,    57,    -1,    -1,
2780    880,    -1,   882,  1253,    -1,    -1,    28,    -1,    30,   889,
2781     70,    -1,    -1,   893,    36,   895,    -1,   897,   898,   899,
2782     80,    -1,    -1,    45,   904,    -1,    -1,    -1,    88,  1478,
2783   1479,    -1,    54,    93,    56,    57,    58,    -1,    98,    -1,
2784      4,     5,    -1,    -1,     8,     9,    -1,    -1,    -1,    -1,
2785     14,    -1,  1371,    -1,    -1,    -1,   936,     4,   938,    -1,
2786    940,   941,   942,    -1,    28,    -1,    30,    14,    -1,    -1,
2787     -1,    93,    36,    -1,  1393,  1394,    23,    24,     7,     8,
2788      9,    45,    -1,    30,    31,    14,    33,    -1,    35,    -1,
2789     54,    -1,    56,    57,    -1,    42,    -1,    -1,    -1,    -1,
2790     -1,    -1,    31,    -1,   984,    -1,    -1,    36,    55,    -1,
2791     57,    -1,    -1,    -1,    -1,    -1,    45,   997,    65,    -1,
2792     -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,
2793   1010,    60,    -1,  1013,    -1,    -1,    -1,    84,    -1,    -1,
2794     -1,    -1,  1022,    -1,    -1,     3,     4,     5,     6,     7,
2795      8,     9,  1471,    -1,    -1,  1035,    14,  1407,    -1,    -1,
2796     -1,    -1,    -1,    -1,    -1,  1045,    -1,    -1,    -1,    -1,
2797     28,    -1,    30,    31,    32,  1055,    -1,  1057,    36,    -1,
2798     -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,   136,
2799     48,    -1,    -1,   140,    -1,    -1,    54,   144,    56,    57,
2800    147,   148,   149,    -1,    -1,  1085,    -1,    -1,    -1,    -1,
2801   1090,  1091,    70,  1093,   161,    -1,    -1,    -1,   165,    -1,
2802     -1,    -1,    80,    -1,   171,   172,    -1,    -1,    -1,    -1,
2803     88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,
2804     98,    -1,   189,   190,   191,    -1,     4,     5,    -1,     7,
2805      8,     9,    -1,    -1,    12,    -1,    14,    -1,  1138,  1139,
2806   1140,  1141,  1142,    -1,    -1,    -1,  1146,    -1,    -1,    -1,
2807     28,   218,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
2808     -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,  1169,
2809   1170,  1171,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
2810    107,   108,    -1,    -1,     3,     4,     5,     6,   255,     1,
2811      9,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
2812   1200,    -1,    14,    -1,    -1,  1205,    -1,  1207,    -1,    -1,
2813     -1,    -1,    -1,    -1,    -1,    27,    28,    -1,    30,    31,
2814     32,    -1,    41,    -1,    36,    -1,   293,   294,    -1,    41,
2815     -1,    -1,    44,    45,    46,    54,    48,    56,    57,    -1,
2816     -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,    -1,
2817     -1,    70,    -1,    -1,    -1,    -1,  1256,  1257,    70,  1259,
2818     -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    80,    88,
2819     -1,   338,    -1,    -1,    93,   342,    88,   344,   345,   346,
2820     -1,    93,    -1,    -1,   351,    -1,    98,    -1,   355,    -1,
2821     -1,    -1,    -1,    -1,    -1,  1295,  1296,  1297,    70,    71,
2822     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2823     82,    83,    84,     1,  1314,     3,     4,     5,     6,     7,
2824      8,     9,   389,    -1,    -1,    -1,    14,    -1,    -1,    -1,
2825     -1,   398,    -1,   400,   401,    -1,    -1,    -1,    -1,    -1,
2826     28,    -1,    30,    31,    32,    -1,    -1,   414,    36,    37,
2827    417,    -1,    -1,    41,    -1,   422,    -1,    45,    46,    -1,
2828     48,    -1,    -1,   430,    -1,    -1,    54,    -1,    56,    57,
2829     -1,    -1,    60,    -1,    62,    -1,    -1,     3,     4,     5,
2830      6,    -1,    70,     9,     3,     4,     5,     6,    -1,    -1,
2831      9,   458,    80,   460,    -1,   462,   463,   464,   325,    -1,
2832     88,   468,    -1,    -1,    -1,    93,   473,  1407,    -1,   476,
2833     -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,
2834     -1,   109,    41,    -1,   491,   492,    -1,    -1,    54,    -1,
2835     56,    57,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,
2836     -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
2837     -1,    70,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,
2838     -1,    80,    88,   530,   531,   532,   533,    93,    -1,    88,
2839     -1,   398,    -1,    -1,    93,    -1,    -1,  1477,  1478,  1479,
2840      3,     4,     5,     6,     7,     8,     9,    -1,    -1,    12,
2841     -1,    14,     3,     4,     5,     6,  1496,    -1,     9,    -1,
2842     -1,  1501,    -1,    -1,    -1,    28,    -1,    30,    31,    -1,
2843     -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,
2844     -1,    -1,    45,   590,    47,   592,    -1,    -1,    -1,   456,
2845     41,    54,    -1,    56,    57,    -1,    47,    -1,    -1,   606,
2846    607,    -1,   609,    54,    -1,    56,    57,    70,    -1,   616,
2847     -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    70,
2848     -1,    -1,   629,    -1,    -1,    88,    -1,    90,   635,    80,
2849     93,    94,    -1,    -1,    -1,    -1,    -1,    88,    -1,    90,
2850     -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,
2851     -1,    -1,   659,    -1,    -1,   522,    -1,    -1,   525,    -1,
2852    667,    -1,   529,   530,   531,   532,   533,   674,   675,   676,
2853    677,   678,   679,    -1,    -1,   542,    73,    74,    75,    76,
2854     77,    78,    79,    80,    81,    82,    83,    84,   555,    -1,
2855     -1,    -1,    -1,    -1,   701,    -1,    -1,    -1,   189,   190,
2856    191,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2857     -1,    -1,    -1,   720,    -1,    -1,    -1,   724,    -1,    -1,
2858     -1,    -1,    -1,    -1,   731,   732,    -1,   734,    -1,    -1,
2859      4,     5,    -1,    -1,     8,     9,    -1,    -1,    -1,    -1,
2860     14,    -1,   609,    -1,    -1,    -1,    -1,    -1,    -1,   616,
2861     -1,    -1,    -1,    -1,    28,   762,    30,    -1,   765,    -1,
2862    767,    -1,    36,    -1,    -1,   772,   773,   774,    -1,    -1,
2863     -1,    45,    -1,    47,    -1,   782,    -1,    -1,    -1,    -1,
2864     54,   788,    56,    57,    -1,    -1,    -1,    -1,   795,   796,
2865    797,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
2866    807,    -1,    -1,    -1,    -1,    -1,    80,     4,    -1,    -1,
2867     -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    93,
2868     94,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
2869      7,     8,     9,    30,    31,    -1,    33,    14,    35,    -1,
2870     -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,
2871     -1,    28,    -1,    30,    31,    -1,    -1,   724,    55,    36,
2872     57,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,
2873     47,    -1,    -1,   880,    -1,   882,    -1,    54,    -1,    56,
2874     57,    -1,   889,    80,    -1,    -1,   893,    -1,   895,    -1,
2875    897,   898,   899,    70,    -1,    -1,    -1,   904,    -1,    -1,
2876     -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,
2877     -1,    88,    -1,    90,    -1,   782,    93,    94,    -1,    -1,
2878     -1,   788,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   936,
2879     -1,   938,    -1,   940,   941,   942,   133,   134,    -1,   136,
2880     -1,    -1,    -1,   140,    -1,   142,    -1,   144,    -1,    -1,
2881    147,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2882     -1,    -1,    -1,    -1,   161,    -1,    -1,   458,   165,   460,
2883     -1,   462,   463,   464,   171,   172,    -1,   984,    -1,    -1,
2884     -1,    -1,   473,    -1,    -1,    -1,    -1,    -1,    -1,   856,
2885    997,    -1,   189,   190,   191,    -1,    -1,    -1,    -1,    -1,
2886     -1,  1008,   199,  1010,     4,     5,  1013,    -1,     8,     9,
2887     -1,    -1,    -1,    -1,    14,  1022,    -1,    -1,    -1,    -1,
2888     -1,   218,   889,    -1,    -1,    -1,    -1,    -1,   895,    -1,
2889     -1,    -1,   899,    -1,    -1,    -1,    36,    -1,  1045,    -1,
2890     -1,    -1,    -1,    -1,    -1,    45,    -1,    47,  1055,    -1,
2891   1057,    -1,    -1,    -1,    54,    -1,    56,    57,   255,    -1,
2892     -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,   936,
2893     70,   938,    -1,    -1,    -1,   942,    -1,    -1,  1085,    -1,
2894     80,    -1,    -1,  1090,  1091,    -1,  1093,    -1,    -1,    -1,
2895     90,    -1,    -1,    93,    94,    63,    64,    65,    66,    67,
2896     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2897     78,    79,    80,    81,    82,    83,    84,   984,    -1,    -1,
2898     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   325,    -1,
2899    997,  1138,  1139,  1140,  1141,  1142,  1003,    -1,    -1,  1146,
2900     -1,    -1,    -1,  1010,    -1,   342,  1153,    -1,    -1,    -1,
2901     -1,    -1,    -1,   350,    -1,  1022,    -1,    -1,   355,    -1,
2902     -1,    -1,  1169,  1170,  1171,    -1,    -1,    -1,     3,     4,
2903      5,     6,     7,     8,     9,    -1,    -1,    -1,  1185,    14,
2904     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1055,    -1,
2905   1057,    -1,   389,  1200,    -1,    -1,    31,    -1,  1205,    -1,
2906   1207,    36,    -1,   400,    -1,    -1,    41,    -1,    -1,    -1,
2907     45,    -1,    47,    -1,    -1,    -1,    -1,   414,  1085,    54,
2908    417,    56,    57,    -1,    -1,   422,    -1,    -1,    -1,    -1,
2909     -1,    -1,    -1,   430,    -1,    70,    -1,    -1,    -1,    -1,
2910    731,   732,    -1,   734,    -1,    80,    -1,    -1,    -1,  1256,
2911   1257,    -1,  1259,    88,    -1,    90,    -1,    -1,    93,    94,
2912     -1,   458,    -1,   460,    -1,   462,   463,   464,    -1,    -1,
2913     -1,   468,    -1,    -1,    -1,  1142,   473,  1284,    -1,   476,
2914     -1,   772,    -1,     3,     4,     5,     6,    -1,  1295,  1296,
2915   1297,    -1,    -1,    -1,    -1,   492,    -1,    -1,    -1,    -1,
2916     -1,    -1,    -1,    -1,  1171,    -1,    -1,  1314,    72,    73,
2917     74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2918     84,    41,    -1,    -1,    -1,   522,    -1,    -1,   525,    -1,
2919     -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
2920     -1,    -1,    62,   540,   541,   542,    -1,    -1,    -1,    -1,
2921     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   555,    -1,
2922     80,    -1,    -1,    -1,     4,    -1,    -1,    -1,    88,     3,
2923      4,     5,     6,    93,     1,     9,     3,     4,     5,     6,
2924      7,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,
2925     30,    31,    -1,    33,    -1,    35,    -1,    -1,    -1,    -1,
2926   1407,    28,    42,    30,    31,    -1,   603,    41,    -1,    36,
2927     -1,    -1,    -1,    -1,    41,    55,    -1,    57,    45,   616,
2928     54,    48,    56,    57,    -1,    -1,    -1,    54,    -1,    56,
2929     57,    -1,    -1,    60,    -1,    -1,    70,    -1,   635,    -1,
2930     -1,    -1,    -1,    70,    -1,    -1,    80,  1314,    -1,   940,
2931    941,   942,    -1,    80,    88,    -1,    -1,    -1,    -1,    93,
2932     -1,    88,   659,    -1,    -1,    -1,    93,    -1,    33,   666,
2933   1477,  1478,  1479,    -1,    -1,    -1,    -1,   674,   675,   676,
2934    677,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1496,
2935     55,    -1,    -1,   984,  1501,    -1,   136,    -1,    -1,    -1,
2936    140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
2937     -1,    -1,    -1,    -1,     4,     5,    -1,     7,     8,     9,
2938     -1,   161,  1013,   720,    14,   165,    -1,   724,    -1,    -1,
2939     -1,   171,   172,    -1,   731,   732,    -1,   734,    28,    -1,
2940     30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,   189,
2941    190,   191,    -1,    -1,    -1,    45,    -1,    -1,    48,    -1,
2942     -1,    -1,    -1,    -1,    54,    -1,    56,    57,   765,    -1,
2943    767,    -1,    -1,    -1,    -1,   772,   773,   774,   218,    -1,
2944     -1,    -1,   147,   148,   149,    67,    68,    69,    70,    71,
2945     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2946     82,    83,    84,    -1,   801,    -1,   171,    -1,    -1,    -1,
2947     -1,    -1,  1479,    -1,    -1,   255,    -1,    -1,    -1,    -1,
2948     -1,    -1,    -1,    -1,   189,   190,   191,    -1,    -1,  1496,
2949     -1,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
2950     -1,    -1,    14,    -1,    -1,    -1,    -1,  1138,  1139,  1140,
2951   1141,  1142,    -1,   218,    -1,  1146,    -1,    -1,    -1,    31,
2952     -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,
2953     -1,    -1,    -1,    45,    -1,    47,    -1,    -1,  1169,  1170,
2954   1171,    -1,    54,    -1,    56,    57,     3,     4,     5,     6,
2955      7,     8,     9,    -1,    -1,    -1,    -1,    14,    70,    -1,
2956    897,   898,   899,    -1,    -1,    -1,   903,    -1,    80,  1200,
2957     -1,   351,    -1,    -1,    31,   355,    88,    -1,    90,    36,
2958     -1,    93,    94,    -1,    41,    -1,    -1,    -1,    45,   294,
2959     47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
2960     57,    -1,    -1,   940,   941,   942,    -1,    -1,    -1,    -1,
2961    947,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
2962    400,    -1,    -1,    80,    -1,  1256,  1257,    -1,  1259,    -1,
2963     -1,    88,    -1,    -1,   414,    -1,    93,   417,    -1,   344,
2964    345,   346,   422,    -1,    -1,    -1,    -1,   984,    -1,    -1,
2965    430,    -1,     3,     4,     5,     6,    -1,     4,     5,    -1,
2966     -1,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,
2967     -1,    -1,    -1,    -1,    -1,    -1,  1013,    -1,   458,    -1,
2968    460,    -1,   462,   463,   464,    -1,    -1,    -1,   468,    36,
2969     41,    -1,    -1,   473,    -1,   400,   476,  1034,    45,    -1,
2970     47,    -1,    -1,    54,    -1,    56,    57,    54,  1045,    56,
2971     57,    62,   492,    -1,    -1,    -1,    -1,    -1,    -1,    70,
2972     -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    80,
2973     -1,    -1,    -1,    80,    -1,    -1,    -1,    88,    82,    -1,
2974     -1,    -1,    93,    90,    -1,    -1,    93,    94,    -1,    -1,
2975     -1,    -1,    -1,   458,    -1,   460,    -1,   462,   463,   464,
2976     -1,    -1,    -1,   468,    -1,    -1,    -1,    -1,   473,    -1,
2977     -1,   476,    -1,    -1,    -1,    -1,  1407,    -1,    -1,    -1,
2978   1117,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
2979      6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,
2980     -1,  1138,  1139,  1140,  1141,  1142,    -1,  1144,    -1,  1146,
2981     -1,   155,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,
2982     36,    -1,    -1,    -1,   604,    41,    -1,    -1,    -1,    45,
2983     -1,    -1,  1169,  1170,  1171,    -1,    -1,    -1,    54,    -1,
2984     56,    57,    -1,   187,    60,    -1,  1477,  1478,  1479,    -1,
2985     -1,    -1,    -1,    -1,    70,   635,   200,     4,     5,    -1,
2986      7,     8,     9,  1200,    80,    12,    -1,    14,  1205,    -1,
2987   1207,    -1,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,
2988     -1,    28,    -1,    30,    31,    -1,    -1,   592,    -1,    36,
2989     -1,    -1,    -1,    -1,   674,   675,   676,   677,    45,    -1,
2990     -1,   606,   607,    -1,   609,    -1,    55,    54,    -1,    56,
2991     57,   616,    -1,    -1,    -1,     4,    -1,    -1,    -1,  1256,
2992   1257,    -1,  1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2993    635,    80,    -1,    -1,    83,     3,     4,     5,     6,    -1,
2994    720,    30,    31,    -1,   724,    -1,    35,    -1,    -1,    -1,
2995     -1,   731,   732,    42,   734,   104,    -1,   106,  1295,  1296,
2996   1297,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,   674,
2997     -1,   676,   677,    41,   679,    -1,    -1,    -1,    -1,    -1,
2998     -1,     3,     4,     5,     6,   765,    54,   767,    56,    57,
2999     -1,    -1,   772,   773,   774,    -1,    -1,    -1,    -1,    -1,
3000     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,     3,     4,
3001      5,     6,    80,    -1,     9,   720,    -1,    -1,    -1,    41,
3002     88,    -1,   171,    -1,    -1,    93,   731,   732,    -1,   734,
3003     -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,    -1,
3004    189,   190,   191,    -1,    -1,    -1,    41,   136,    70,    -1,
3005    199,   140,    -1,    -1,    -1,   144,    -1,    -1,    80,    54,
3006     -1,    56,    57,    -1,    -1,    -1,    88,   772,    -1,   218,
3007   1407,    93,   161,    -1,    -1,    70,   165,    -1,     3,     4,
3008      5,     6,    -1,   172,     9,    80,    -1,    -1,    -1,    -1,
3009    795,   796,   797,    88,    -1,   244,    -1,    -1,    93,    -1,
3010    189,   190,   807,    -1,    -1,    -1,    -1,    -1,    -1,   258,
3011     -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,
3012     -1,    -1,   466,    -1,   904,    -1,    -1,   471,    -1,    54,
3013     -1,    56,    57,    -1,    -1,    -1,     3,     4,     5,     6,
3014   1477,  1478,  1479,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3015     -1,    -1,   496,    -1,    -1,    80,    -1,    -1,   502,    -1,
3016    940,   941,   942,    88,  1501,    -1,   255,    -1,    93,    -1,
3017    514,   515,    -1,   517,    41,   880,    -1,   882,    -1,    -1,
3018     -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,   893,    56,
3019     57,    -1,   897,   898,   899,    62,    -1,    -1,    -1,    -1,
3020     -1,   350,   351,    70,   984,    -1,    -1,    -1,    -1,    -1,
3021     -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,
3022     -1,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
3023     -1,    -1,    -1,  1013,    -1,   940,   941,   942,    -1,    -1,
3024     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3025     -1,   400,    -1,     3,     4,     5,     6,     7,     8,     9,
3026     -1,    -1,    12,    -1,    14,  1045,   355,    -1,   612,   613,
3027     -1,    -1,    -1,   617,    -1,    -1,    -1,    -1,    28,   984,
3028     30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
3029     -1,    41,    -1,    -1,    -1,    45,    -1,     3,     4,     5,
3030      6,    -1,    -1,     9,    54,    -1,    56,    57,  1013,   458,
3031     -1,   460,    -1,   462,   463,   464,    -1,    -1,    -1,   468,
3032     70,    -1,    -1,    -1,   473,   414,    -1,   476,   417,    -1,
3033     80,    -1,    -1,   422,    -1,    41,    -1,    -1,    88,    -1,
3034     -1,   430,    -1,    93,    -1,    -1,    -1,    -1,    54,    -1,
3035     56,    57,    -1,    -1,     3,     4,     5,     6,  1138,  1139,
3036   1140,  1141,  1142,    -1,    70,    -1,  1146,    -1,    -1,   458,
3037     -1,   460,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,
3038     -1,    -1,    88,    -1,   473,  1090,  1091,    93,  1093,  1169,
3039   1170,  1171,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3040     -1,    -1,    -1,   492,    -1,    54,    -1,    56,    57,    -1,
3041     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3042   1200,    70,    -1,    -1,    -1,  1205,    -1,  1207,    -1,    -1,
3043     -1,    80,    -1,  1138,  1139,  1140,  1141,  1142,    -1,    88,
3044     -1,  1146,    -1,    -1,    93,   789,    -1,   791,    -1,    -1,
3045     -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
3046      7,     8,     9,    -1,  1169,  1170,  1171,    14,    -1,    -1,
3047    619,   620,    -1,    -1,    -1,    -1,  1256,  1257,    -1,  1259,
3048     -1,    28,    -1,    30,    31,    -1,   635,    -1,    -1,    36,
3049     -1,    -1,    -1,    -1,    41,  1200,    -1,    -1,    45,    -1,
3050     -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
3051     57,    -1,    -1,    60,    -1,  1295,  1296,  1297,    -1,   863,
3052    864,    -1,   866,    70,    -1,   674,    -1,   676,   677,    -1,
3053     -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,
3054     -1,    88,    -1,     4,     5,    -1,    93,     8,     9,    -1,
3055    894,  1256,  1257,    14,  1259,    -1,    -1,    -1,    -1,    -1,
3056     -1,     3,     4,     5,     6,    -1,    -1,    28,    -1,    30,
3057     -1,   720,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
3058     -1,    -1,   731,   732,    45,   734,   675,    -1,    -1,    -1,
3059   1295,    -1,  1297,    54,    -1,    56,    57,    -1,    -1,    41,
3060    944,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3061    759,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
3062     -1,    -1,    -1,   772,    -1,    -1,    -1,  1407,    70,     4,
3063      5,    -1,     7,     8,     9,   724,    -1,    -1,    80,    14,
3064     -1,    -1,   731,   732,    -1,   734,    88,    -1,    -1,    -1,
3065     -1,    93,    -1,    28,    -1,    30,    31,    -1,    -1,    -1,
3066     -1,    36,    -1,    -1,    -1,  1009,    -1,    -1,    -1,    -1,
3067     45,    -1,    -1,    -1,    -1,    -1,   765,  1021,   767,    54,
3068     -1,    56,    57,   772,   773,   774,    -1,    -1,    -1,    -1,
3069     -1,    -1,    -1,    -1,    -1,    -1,    14,  1477,  1478,  1479,
3070     -1,    -1,  1407,    -1,    -1,    23,    24,    -1,    -1,    -1,
3071     -1,    -1,    30,    31,    -1,    33,    -1,    -1,    -1,    -1,
3072     -1,  1501,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3073     -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
3074     -1,    -1,    -1,    -1,    14,    -1,    -1,    65,    -1,    -1,
3075     -1,    -1,    -1,    -1,   903,   904,   905,    -1,    28,    -1,
3076     30,    31,  1106,    -1,    -1,    -1,    36,    -1,    -1,    -1,
3077     -1,    41,  1477,  1478,  1479,    45,    -1,    -1,    -1,    -1,
3078     -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
3079     -1,   940,   941,   942,    -1,    -1,  1501,    -1,   947,    -1,
3080     70,  1145,    -1,    -1,    -1,    -1,   124,    -1,   126,    -1,
3081     80,    -1,    -1,    -1,    -1,   133,   134,    -1,    88,    -1,
3082     -1,    -1,   140,    93,   142,   143,   144,    -1,   146,   147,
3083    148,   149,    -1,    -1,    -1,   984,    71,    72,    73,    74,
3084     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3085     -1,   940,   941,     1,    -1,     3,     4,     5,     6,     7,
3086      8,     9,    -1,    -1,  1013,  1209,    14,    -1,    -1,  1213,
3087     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3088     28,    -1,    30,    31,    32,  1034,    -1,    -1,    36,    37,
3089     -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    46,    -1,
3090     48,    -1,    -1,    -1,  1248,    -1,    54,    -1,    56,    57,
3091     -1,    -1,    60,    -1,    62,   233,   234,    -1,    -1,    -1,
3092     -1,    -1,    70,    -1,  1013,    -1,    -1,    -1,    -1,    -1,
3093     -1,    -1,    80,    -1,    -1,    -1,    -1,   255,    -1,    -1,
3094     88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,
3095     -1,    -1,    -1,    -1,    -1,    -1,  1045,    -1,    -1,    -1,
3096     -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,  1117,    -1,
3097     -1,    -1,    -1,    -1,    -1,    -1,   294,    -1,  1322,    -1,
3098     -1,    -1,  1326,    -1,    -1,    -1,    -1,    -1,    -1,  1138,
3099   1139,  1140,  1141,  1142,    -1,  1144,    -1,  1146,    -1,    -1,
3100     -1,    -1,    -1,    -1,  1348,  1349,    -1,    -1,    -1,    -1,
3101     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3102   1169,  1170,  1171,    -1,   342,    -1,   344,   345,    68,    69,
3103     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3104     80,    81,    82,    83,    84,    -1,    -1,    -1,    -1,  1138,
3105   1139,  1200,    -1,    -1,    -1,    -1,    -1,  1146,    -1,    -1,
3106     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    12,
3107     -1,   389,    69,    70,    71,    72,    73,    74,    75,    76,
3108     77,    78,    79,    80,    81,    82,    83,    84,    -1,   407,
3109     -1,    -1,    -1,    -1,    -1,    -1,   414,    -1,    -1,   417,
3110     -1,    -1,    -1,    -1,   422,    -1,    -1,  1256,  1257,    -1,
3111   1259,  1200,    -1,    -1,    -1,    -1,  1205,    -1,  1207,    62,
3112     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3113     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3114     83,    84,    -1,    -1,    -1,    -1,  1295,    -1,  1297,    -1,
3115     -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
3116      8,     9,    -1,    -1,    12,    -1,    14,  1256,  1257,    -1,
3117   1259,   489,    -1,   491,    -1,    -1,    -1,    25,    -1,    27,
3118     -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    36,    -1,
3119     -1,    -1,    -1,    41,    -1,    -1,    -1,    45,   516,    47,
3120     -1,    -1,    -1,    -1,    -1,    -1,    54,  1296,    56,    57,
3121     58,    59,    60,    -1,    62,    63,    64,    65,    66,    67,
3122     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3123     78,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
3124     88,    -1,    90,    91,    92,    93,    94,    95,    -1,    97,
3125     -1,    -1,    -1,    -1,   102,    -1,    -1,    -1,  1407,   107,
3126    108,   109,    -1,   111,     1,    -1,     3,     4,     5,     6,
3127      7,     8,     9,    -1,   592,    -1,    -1,    14,    -1,    -1,
3128     -1,    -1,    -1,    -1,    -1,   603,   604,    -1,   606,   607,
3129     -1,    28,    -1,    30,    31,    32,    -1,    -1,    -1,    36,
3130     -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    46,
3131     -1,    48,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
3132     57,    -1,    -1,    60,    -1,    62,    -1,    -1,  1477,  1478,
3133   1479,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3134     -1,   659,    -1,    80,    -1,    -1,    -1,    -1,   666,   667,
3135     -1,    88,  1501,    -1,    -1,    -1,    93,    -1,    -1,    -1,
3136    678,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
3137     10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
3138     -1,    -1,    -1,   701,    -1,    -1,    -1,    -1,    28,    29,
3139     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3140     40,    41,    42,    43,    -1,    45,    -1,    47,    -1,    49,
3141     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3142     -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3143     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3144     80,   759,    -1,    -1,   762,    -1,    86,    87,    88,    -1,
3145     90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
3146     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3147    110,    -1,    -1,    -1,    -1,    -1,    -1,   795,   796,   797,
3148     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   807,
3149     -1,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
3150     10,    11,    -1,    13,    14,    15,    -1,    17,    18,    19,
3151     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3152     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3153     40,    41,    42,    43,    44,    45,    46,    -1,    -1,    49,
3154     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3155     60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3156     70,    -1,   880,    -1,   882,    -1,    -1,    -1,    78,    79,
3157     80,    -1,    -1,    -1,    -1,   893,    86,    87,    88,    -1,
3158     -1,    -1,    -1,    93,    -1,    95,    -1,    -1,    -1,    -1,
3159     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
3160    110,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
3161     10,    11,    -1,    13,    14,    15,    -1,    17,    18,    19,
3162     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3163     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3164     40,    41,    42,    43,    44,    45,    46,    -1,    -1,    49,
3165     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3166     60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3167     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3168     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
3169   1008,    -1,    -1,    93,    -1,    95,    -1,    -1,    -1,    -1,
3170     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3171    110,    -1,    -1,    -1,    -1,    -1,    -1,  1035,    63,    64,
3172     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3173     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3174     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3175     -1,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
3176     10,    11,    12,    13,    14,    -1,   111,    -1,    -1,    -1,
3177     -1,    -1,  1090,  1091,    -1,  1093,    -1,    -1,    28,    29,
3178     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3179     40,    41,    42,    43,    -1,    45,    -1,    47,    -1,    49,
3180     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3181     -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3182     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3183     80,    -1,    -1,    -1,    -1,  1153,    86,    87,    88,    -1,
3184     90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
3185     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3186    110,    -1,    -1,    -1,    -1,    -1,     1,  1185,     3,     4,
3187      5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3188     -1,    -1,    -1,    -1,    -1,  1203,    -1,  1205,    -1,    -1,
3189     -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,
3190     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3191     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3192     -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
3193     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3194     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3195     -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
3196      4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
3197     14,    -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,
3198     -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,
3199     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3200     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3201     54,    -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,
3202     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3203     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3204     -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,
3205      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3206     13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3207     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
3208     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3209     43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
3210     53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
3211     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3212     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3213     -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,
3214     93,    94,     1,    -1,     3,     4,     5,     6,    -1,     8,
3215      9,    10,    11,    -1,    13,    14,   109,   110,    -1,    -1,
3216     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3217     29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
3218     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
3219     49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
3220     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3221     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3222     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3223     -1,    -1,    -1,    -1,    93,    94,     1,    -1,     3,     4,
3224      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3225     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3226     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3227     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3228     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3229     -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,
3230     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3231     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3232     -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
3233      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3234     14,    -1,    -1,    -1,   109,   110,    -1,    -1,    -1,    -1,
3235     -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3236     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3237     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3238     54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,
3239     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3240     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3241     -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,
3242      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3243     13,    14,    -1,    -1,    -1,   109,   110,    -1,    -1,    -1,
3244     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
3245     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3246     43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
3247     53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
3248     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3249     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3250     -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,
3251     93,    -1,     1,    -1,     3,     4,     5,     6,   101,     8,
3252      9,    10,    11,    -1,    13,    14,    -1,   110,    -1,    -1,
3253     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3254     29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
3255     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
3256     49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
3257     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3258     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3259     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3260     -1,    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,
3261      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3262     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3263     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3264     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3265     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3266     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3267     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3268     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3269     88,    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,
3270     -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3271     -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3272     -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
3273     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3274     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3275     57,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
3276     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3277     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3278     87,    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,
3279      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3280     -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3281     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3282     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3283     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3284     56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3285     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3286     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3287     86,    87,    88,    -1,    -1,    -1,     1,    93,     3,     4,
3288      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3289     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
3290     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3291     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3292     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3293     -1,    56,    57,    -1,    -1,    60,    61,    -1,    -1,    -1,
3294     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3295     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3296     -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
3297      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3298     14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
3299     -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3300     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3301     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3302     54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
3303     -1,    -1,    -1,    67,     1,    -1,    70,     4,     5,    -1,
3304     -1,     8,     9,    -1,    78,    79,    80,    14,    -1,    -1,
3305     -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
3306     -1,    28,    -1,    30,    -1,    -1,    -1,    -1,    -1,    36,
3307     -1,    38,    39,    -1,   108,    -1,   110,    -1,    45,    -1,
3308     47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
3309     57,    -1,    59,    -1,    -1,    -1,    63,    64,    65,    66,
3310     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3311     77,    78,    79,    80,    81,    82,    83,    -1,    -1,    86,
3312     87,    88,    -1,    -1,    91,    -1,     1,    94,     3,     4,
3313      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3314     -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3315     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3316     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3317     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3318     -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
3319     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3320     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3321     -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
3322      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3323     14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
3324     -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3325     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3326     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3327     54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
3328     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3329     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3330     -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,
3331      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3332     13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3333     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
3334     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3335     43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
3336     53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,
3337     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3338     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3339     -1,    -1,    -1,    86,    87,    88,     3,     4,     5,     6,
3340     93,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3341     -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
3342     -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
3343     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3344     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3345     57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3346     67,    -1,     1,    70,     3,     4,     5,     6,     7,     8,
3347      9,    78,    79,    80,    -1,    14,    -1,    -1,    -1,    86,
3348     87,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    28,
3349     -1,    30,    31,    32,    -1,    -1,    -1,    36,    37,    -1,
3350     -1,    -1,    41,   110,   111,    -1,    45,    46,    -1,    48,
3351     -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,
3352     -1,    60,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,
3353     -1,    70,     1,    -1,     3,     4,     5,     6,     7,     8,
3354      9,    80,    -1,    -1,    -1,    14,    -1,    -1,    -1,    88,
3355     -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    28,
3356     -1,    30,    31,    32,    -1,    -1,    -1,    36,    37,    -1,
3357    109,    -1,    41,    -1,    -1,    -1,    45,    46,    -1,    48,
3358     -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,
3359     -1,    60,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,
3360     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3361     -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
3362     -1,    -1,    -1,    -1,    93,    -1,    -1,     3,     4,     5,
3363      6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
3364    109,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3365     26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
3366     36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
3367     46,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3368     56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
3369     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3370     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3371     86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    95,
3372     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3373     -1,    -1,    -1,   109,   110,     3,     4,     5,     6,     7,
3374      8,     9,    10,    11,    -1,    13,    14,    15,    -1,    17,
3375     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3376     28,    29,    30,    31,    32,    -1,    34,    35,    36,    -1,
3377     38,    39,    40,    41,    42,    43,    44,    45,    46,    -1,
3378     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3379     58,    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    67,
3380     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3381     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3382     88,    -1,    -1,    -1,    -1,    93,    -1,    95,    -1,     3,
3383      4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
3384     14,    15,   110,    17,    18,    19,    20,    21,    22,    23,
3385     24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
3386     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3387     44,    45,    46,    -1,    -1,    49,    50,    51,    52,    53,
3388     54,    -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,
3389     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3390     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3391     -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
3392     -1,    95,    -1,     3,     4,     5,     6,     7,     8,     9,
3393     10,    11,    -1,    13,    14,    15,   110,    17,    18,    19,
3394     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3395     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3396     40,    41,    42,    43,    44,    45,    46,    -1,    -1,    49,
3397     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3398     60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3399     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3400     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
3401     -1,    -1,    -1,    93,    -1,    95,     3,     4,     5,     6,
3402      7,     8,     9,    10,    11,    12,    13,    14,    -1,    -1,
3403    110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3404     -1,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
3405     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3406     47,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3407     57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3408     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3409     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3410     87,    88,    -1,    90,    -1,    -1,    93,    94,     3,     4,
3411      5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3412     -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3413     -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,
3414     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3415     45,    -1,    47,    -1,    49,    50,    51,    52,    53,    54,
3416     -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
3417     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3418     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3419     -1,    86,    87,    88,    -1,    90,    -1,    -1,    93,    94,
3420      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3421     13,    14,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
3422     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
3423     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3424     43,    -1,    45,    -1,    47,    -1,    49,    50,    51,    52,
3425     53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,
3426     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3427     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3428     -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,    -1,
3429     93,    94,     3,     4,     5,     6,    -1,     8,     9,    10,
3430     11,    -1,    13,    14,    -1,    -1,    -1,   110,    -1,    -1,
3431     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
3432     -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3433     41,    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,
3434     51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
3435     -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3436     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3437     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    90,
3438     -1,    -1,    93,    94,     3,     4,     5,     6,    -1,     8,
3439      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,   110,
3440     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3441     29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
3442     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
3443     49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
3444     -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3445     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3446     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3447     -1,    -1,    -1,    -1,    93,     3,     4,     5,     6,     7,
3448      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3449     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3450     28,    29,    30,    31,    32,    -1,    34,    35,    36,    -1,
3451     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3452     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3453     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
3454     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3455     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3456     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3457     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3458     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3459     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3460     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3461     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
3462     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3463     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3464     -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
3465      6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
3466     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
3467     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3468     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3469     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3470     56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3471     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3472     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3473     86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
3474     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3475     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
3476     30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
3477     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3478     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3479     -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3480     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3481     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3482      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3483     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3484    110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3485     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3486     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3487     54,    -1,    56,    57,    58,    -1,    -1,    -1,    -1,    -1,
3488     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3489     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3490     -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
3491      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3492     -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3493     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3494     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3495     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3496     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
3497     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3498     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3499     88,    -1,    -1,    -1,    -1,    93,    94,     3,     4,     5,
3500      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3501     -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3502     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3503     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3504     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3505     56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3506     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3507     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3508     86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
3509     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3510     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
3511     30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
3512     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3513     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3514     -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3515     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3516     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3517      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3518     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3519    110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3520     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3521     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3522     54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
3523     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3524     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3525     -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
3526      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3527     -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3528     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3529     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3530     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3531     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
3532     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3533     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3534     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3535     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3536     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3537     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3538     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3539     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
3540     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3541     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3542     -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
3543      6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
3544     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
3545     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3546     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3547     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3548     56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3549     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3550     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3551     86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
3552     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3553     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
3554     30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
3555     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3556     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3557     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3558     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3559     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3560      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3561     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3562    110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3563     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3564     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3565     54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
3566     -1,    -1,    -1,    67,    -1,    -1,    70,     3,     4,     5,
3567      6,     7,     8,     9,    78,    79,    80,    -1,    14,    -1,
3568     -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
3569     -1,    -1,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,
3570     36,    -1,    -1,    -1,    -1,    41,   110,    -1,    -1,    45,
3571     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
3572     56,    57,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,
3573     -1,    -1,    -1,    -1,    70,     3,     4,     5,     6,     7,
3574      8,     9,    -1,    -1,    80,    -1,    14,    -1,    -1,    -1,
3575     -1,    -1,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,
3576     28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
3577     -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,
3578     -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
3579     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3580     73,    74,    70,    76,    77,    78,    79,    80,    81,    82,
3581     83,    84,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3582     88,    -1,    -1,    -1,    -1,    93,    63,    64,    65,    66,
3583     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3584     77,    78,    79,    80,    81,    82,    83,    84,    -1,    -1,
3585     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3586     -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,
3587    107,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3588     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3589     82,    83,    84,    62,    63,    64,    65,    66,    67,    68,
3590     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3591     79,    80,    81,    82,    83,    84,    63,    64,    65,    66,
3592     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3593     77,    78,    79,    80,    81,    82,    83,    84
3594 };
3595 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
3596 #line 3 "/usr/lib/bison.simple"
3597
3598 /* Skeleton output parser for bison,
3599    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3600
3601    This program is free software; you can redistribute it and/or modify
3602    it under the terms of the GNU General Public License as published by
3603    the Free Software Foundation; either version 2, or (at your option)
3604    any later version.
3605
3606    This program is distributed in the hope that it will be useful,
3607    but WITHOUT ANY WARRANTY; without even the implied warranty of
3608    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3609    GNU General Public License for more details.
3610
3611    You should have received a copy of the GNU General Public License
3612    along with this program; if not, write to the Free Software
3613    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
3614
3615 /* As a special exception, when this file is copied by Bison into a
3616    Bison output file, you may use that output file without restriction.
3617    This special exception was added by the Free Software Foundation
3618    in version 1.24 of Bison.  */
3619
3620 #ifndef alloca
3621 #ifdef __GNUC__
3622 #define alloca __builtin_alloca
3623 #else /* not GNU C.  */
3624 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3625 #include <alloca.h>
3626 #else /* not sparc */
3627 #if defined (MSDOS) && !defined (__TURBOC__)
3628 #include <malloc.h>
3629 #else /* not MSDOS, or __TURBOC__ */
3630 #if defined(_AIX)
3631 #include <malloc.h>
3632  #pragma alloca
3633 #else /* not MSDOS, __TURBOC__, or _AIX */
3634 #ifdef __hpux
3635 #ifdef __cplusplus
3636 extern "C" {
3637 void *alloca (unsigned int);
3638 };
3639 #else /* not __cplusplus */
3640 void *alloca ();
3641 #endif /* not __cplusplus */
3642 #endif /* __hpux */
3643 #endif /* not _AIX */
3644 #endif /* not MSDOS, or __TURBOC__ */
3645 #endif /* not sparc.  */
3646 #endif /* not GNU C.  */
3647 #endif /* alloca not defined.  */
3648
3649 /* This is the parser code that is written into each bison parser
3650   when the %semantic_parser declaration is not specified in the grammar.
3651   It was written by Richard Stallman by simplifying the hairy parser
3652   used when %semantic_parser is specified.  */
3653
3654 /* Note: there must be only one dollar sign in this file.
3655    It is replaced by the list of actions, each action
3656    as one case of the switch.  */
3657
3658 #define yyerrok         (yyerrstatus = 0)
3659 #define yyclearin       (yychar = YYEMPTY)
3660 #define YYEMPTY         -2
3661 #define YYEOF           0
3662 #define YYACCEPT        return(0)
3663 #define YYABORT         return(1)
3664 #define YYERROR         goto yyerrlab1
3665 /* Like YYERROR except do call yyerror.
3666    This remains here temporarily to ease the
3667    transition to the new meaning of YYERROR, for GCC.
3668    Once GCC version 2 has supplanted version 1, this can go.  */
3669 #define YYFAIL          goto yyerrlab
3670 #define YYRECOVERING()  (!!yyerrstatus)
3671 #define YYBACKUP(token, value) \
3672 do                                                              \
3673   if (yychar == YYEMPTY && yylen == 1)                          \
3674     { yychar = (token), yylval = (value);                       \
3675       yychar1 = YYTRANSLATE (yychar);                           \
3676       YYPOPSTACK;                                               \
3677       goto yybackup;                                            \
3678     }                                                           \
3679   else                                                          \
3680     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
3681 while (0)
3682
3683 #define YYTERROR        1
3684 #define YYERRCODE       256
3685
3686 #ifndef YYPURE
3687 #define YYLEX           yylex()
3688 #endif
3689
3690 #ifdef YYPURE
3691 #ifdef YYLSP_NEEDED
3692 #ifdef YYLEX_PARAM
3693 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
3694 #else
3695 #define YYLEX           yylex(&yylval, &yylloc)
3696 #endif
3697 #else /* not YYLSP_NEEDED */
3698 #ifdef YYLEX_PARAM
3699 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
3700 #else
3701 #define YYLEX           yylex(&yylval)
3702 #endif
3703 #endif /* not YYLSP_NEEDED */
3704 #endif
3705
3706 /* If nonreentrant, generate the variables here */
3707
3708 #ifndef YYPURE
3709
3710 int     yychar;                 /*  the lookahead symbol                */
3711 YYSTYPE yylval;                 /*  the semantic value of the           */
3712                                 /*  lookahead symbol                    */
3713
3714 #ifdef YYLSP_NEEDED
3715 YYLTYPE yylloc;                 /*  location data for the lookahead     */
3716                                 /*  symbol                              */
3717 #endif
3718
3719 int yynerrs;                    /*  number of parse errors so far       */
3720 #endif  /* not YYPURE */
3721
3722 #if YYDEBUG != 0
3723 int yydebug;                    /*  nonzero means print parse trace     */
3724 /* Since this is uninitialized, it does not stop multiple parsers
3725    from coexisting.  */
3726 #endif
3727
3728 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
3729
3730 #ifndef YYINITDEPTH
3731 #define YYINITDEPTH 200
3732 #endif
3733
3734 /*  YYMAXDEPTH is the maximum size the stacks can grow to
3735     (effective only if the built-in stack extension method is used).  */
3736
3737 #if YYMAXDEPTH == 0
3738 #undef YYMAXDEPTH
3739 #endif
3740
3741 #ifndef YYMAXDEPTH
3742 #define YYMAXDEPTH 10000
3743 #endif
3744
3745 /* Prevent warning if -Wstrict-prototypes.  */
3746 #ifdef __GNUC__
3747 int yyparse (void);
3748 #endif
3749 \f
3750 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
3751 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
3752 #else                           /* not GNU C or C++ */
3753 #ifndef __cplusplus
3754
3755 /* This is the most reliable way to avoid incompatibilities
3756    in available built-in functions on various systems.  */
3757 static void
3758 __yy_memcpy (to, from, count)
3759      char *to;
3760      char *from;
3761      int count;
3762 {
3763   register char *f = from;
3764   register char *t = to;
3765   register int i = count;
3766
3767   while (i-- > 0)
3768     *t++ = *f++;
3769 }
3770
3771 #else /* __cplusplus */
3772
3773 /* This is the most reliable way to avoid incompatibilities
3774    in available built-in functions on various systems.  */
3775 static void
3776 __yy_memcpy (char *to, char *from, int count)
3777 {
3778   register char *f = from;
3779   register char *t = to;
3780   register int i = count;
3781
3782   while (i-- > 0)
3783     *t++ = *f++;
3784 }
3785
3786 #endif
3787 #endif
3788 \f
3789 #line 196 "/usr/lib/bison.simple"
3790
3791 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3792    into yyparse.  The argument should have type void *.
3793    It should actually point to an object.
3794    Grammar actions can access the variable by casting it
3795    to the proper pointer type.  */
3796
3797 #ifdef YYPARSE_PARAM
3798 #ifdef __cplusplus
3799 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3800 #define YYPARSE_PARAM_DECL
3801 #else /* not __cplusplus */
3802 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3803 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3804 #endif /* not __cplusplus */
3805 #else /* not YYPARSE_PARAM */
3806 #define YYPARSE_PARAM_ARG
3807 #define YYPARSE_PARAM_DECL
3808 #endif /* not YYPARSE_PARAM */
3809
3810 int
3811 yyparse(YYPARSE_PARAM_ARG)
3812      YYPARSE_PARAM_DECL
3813 {
3814   register int yystate;
3815   register int yyn;
3816   register short *yyssp;
3817   register YYSTYPE *yyvsp;
3818   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
3819   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
3820
3821   short yyssa[YYINITDEPTH];     /*  the state stack                     */
3822   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
3823
3824   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
3825   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
3826
3827 #ifdef YYLSP_NEEDED
3828   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
3829   YYLTYPE *yyls = yylsa;
3830   YYLTYPE *yylsp;
3831
3832 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
3833 #else
3834 #define YYPOPSTACK   (yyvsp--, yyssp--)
3835 #endif
3836
3837   int yystacksize = YYINITDEPTH;
3838
3839 #ifdef YYPURE
3840   int yychar;
3841   YYSTYPE yylval;
3842   int yynerrs;
3843 #ifdef YYLSP_NEEDED
3844   YYLTYPE yylloc;
3845 #endif
3846 #endif
3847
3848   YYSTYPE yyval;                /*  the variable used to return         */
3849                                 /*  semantic values from the action     */
3850                                 /*  routines                            */
3851
3852   int yylen;
3853
3854 #if YYDEBUG != 0
3855   if (yydebug)
3856     fprintf(stderr, "Starting parse\n");
3857 #endif
3858
3859   yystate = 0;
3860   yyerrstatus = 0;
3861   yynerrs = 0;
3862   yychar = YYEMPTY;             /* Cause a token to be read.  */
3863
3864   /* Initialize stack pointers.
3865      Waste one element of value and location stack
3866      so that they stay on the same level as the state stack.
3867      The wasted elements are never initialized.  */
3868
3869   yyssp = yyss - 1;
3870   yyvsp = yyvs;
3871 #ifdef YYLSP_NEEDED
3872   yylsp = yyls;
3873 #endif
3874
3875 /* Push a new state, which is found in  yystate  .  */
3876 /* In all cases, when you get here, the value and location stacks
3877    have just been pushed. so pushing a state here evens the stacks.  */
3878 yynewstate:
3879
3880   *++yyssp = yystate;
3881
3882   if (yyssp >= yyss + yystacksize - 1)
3883     {
3884       /* Give user a chance to reallocate the stack */
3885       /* Use copies of these so that the &'s don't force the real ones into memory. */
3886       YYSTYPE *yyvs1 = yyvs;
3887       short *yyss1 = yyss;
3888 #ifdef YYLSP_NEEDED
3889       YYLTYPE *yyls1 = yyls;
3890 #endif
3891
3892       /* Get the current used size of the three stacks, in elements.  */
3893       int size = yyssp - yyss + 1;
3894
3895 #ifdef yyoverflow
3896       /* Each stack pointer address is followed by the size of
3897          the data in use in that stack, in bytes.  */
3898 #ifdef YYLSP_NEEDED
3899       /* This used to be a conditional around just the two extra args,
3900          but that might be undefined if yyoverflow is a macro.  */
3901       yyoverflow("parser stack overflow",
3902                  &yyss1, size * sizeof (*yyssp),
3903                  &yyvs1, size * sizeof (*yyvsp),
3904                  &yyls1, size * sizeof (*yylsp),
3905                  &yystacksize);
3906 #else
3907       yyoverflow("parser stack overflow",
3908                  &yyss1, size * sizeof (*yyssp),
3909                  &yyvs1, size * sizeof (*yyvsp),
3910                  &yystacksize);
3911 #endif
3912
3913       yyss = yyss1; yyvs = yyvs1;
3914 #ifdef YYLSP_NEEDED
3915       yyls = yyls1;
3916 #endif
3917 #else /* no yyoverflow */
3918       /* Extend the stack our own way.  */
3919       if (yystacksize >= YYMAXDEPTH)
3920         {
3921           yyerror("parser stack overflow");
3922           return 2;
3923         }
3924       yystacksize *= 2;
3925       if (yystacksize > YYMAXDEPTH)
3926         yystacksize = YYMAXDEPTH;
3927       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3928       __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3929       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3930       __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3931 #ifdef YYLSP_NEEDED
3932       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3933       __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3934 #endif
3935 #endif /* no yyoverflow */
3936
3937       yyssp = yyss + size - 1;
3938       yyvsp = yyvs + size - 1;
3939 #ifdef YYLSP_NEEDED
3940       yylsp = yyls + size - 1;
3941 #endif
3942
3943 #if YYDEBUG != 0
3944       if (yydebug)
3945         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3946 #endif
3947
3948       if (yyssp >= yyss + yystacksize - 1)
3949         YYABORT;
3950     }
3951
3952 #if YYDEBUG != 0
3953   if (yydebug)
3954     fprintf(stderr, "Entering state %d\n", yystate);
3955 #endif
3956
3957   goto yybackup;
3958  yybackup:
3959
3960 /* Do appropriate processing given the current state.  */
3961 /* Read a lookahead token if we need one and don't already have one.  */
3962 /* yyresume: */
3963
3964   /* First try to decide what to do without reference to lookahead token.  */
3965
3966   yyn = yypact[yystate];
3967   if (yyn == YYFLAG)
3968     goto yydefault;
3969
3970   /* Not known => get a lookahead token if don't already have one.  */
3971
3972   /* yychar is either YYEMPTY or YYEOF
3973      or a valid token in external form.  */
3974
3975   if (yychar == YYEMPTY)
3976     {
3977 #if YYDEBUG != 0
3978       if (yydebug)
3979         fprintf(stderr, "Reading a token: ");
3980 #endif
3981       yychar = YYLEX;
3982     }
3983
3984   /* Convert token to internal form (in yychar1) for indexing tables with */
3985
3986   if (yychar <= 0)              /* This means end of input. */
3987     {
3988       yychar1 = 0;
3989       yychar = YYEOF;           /* Don't call YYLEX any more */
3990
3991 #if YYDEBUG != 0
3992       if (yydebug)
3993         fprintf(stderr, "Now at end of input.\n");
3994 #endif
3995     }
3996   else
3997     {
3998       yychar1 = YYTRANSLATE(yychar);
3999
4000 #if YYDEBUG != 0
4001       if (yydebug)
4002         {
4003           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
4004           /* Give the individual parser a way to print the precise meaning
4005              of a token, for further debugging info.  */
4006 #ifdef YYPRINT
4007           YYPRINT (stderr, yychar, yylval);
4008 #endif
4009           fprintf (stderr, ")\n");
4010         }
4011 #endif
4012     }
4013
4014   yyn += yychar1;
4015   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
4016     goto yydefault;
4017
4018   yyn = yytable[yyn];
4019
4020   /* yyn is what to do for this token type in this state.
4021      Negative => reduce, -yyn is rule number.
4022      Positive => shift, yyn is new state.
4023        New state is final state => don't bother to shift,
4024        just return success.
4025      0, or most negative number => error.  */
4026
4027   if (yyn < 0)
4028     {
4029       if (yyn == YYFLAG)
4030         goto yyerrlab;
4031       yyn = -yyn;
4032       goto yyreduce;
4033     }
4034   else if (yyn == 0)
4035     goto yyerrlab;
4036
4037   if (yyn == YYFINAL)
4038     YYACCEPT;
4039
4040   /* Shift the lookahead token.  */
4041
4042 #if YYDEBUG != 0
4043   if (yydebug)
4044     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
4045 #endif
4046
4047   /* Discard the token being shifted unless it is eof.  */
4048   if (yychar != YYEOF)
4049     yychar = YYEMPTY;
4050
4051   *++yyvsp = yylval;
4052 #ifdef YYLSP_NEEDED
4053   *++yylsp = yylloc;
4054 #endif
4055
4056   /* count tokens shifted since error; after three, turn off error status.  */
4057   if (yyerrstatus) yyerrstatus--;
4058
4059   yystate = yyn;
4060   goto yynewstate;
4061
4062 /* Do the default action for the current state.  */
4063 yydefault:
4064
4065   yyn = yydefact[yystate];
4066   if (yyn == 0)
4067     goto yyerrlab;
4068
4069 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
4070 yyreduce:
4071   yylen = yyr2[yyn];
4072   if (yylen > 0)
4073     yyval = yyvsp[1-yylen]; /* implement default value of the action */
4074
4075 #if YYDEBUG != 0
4076   if (yydebug)
4077     {
4078       int i;
4079
4080       fprintf (stderr, "Reducing via rule %d (line %d), ",
4081                yyn, yyrline[yyn]);
4082
4083       /* Print the symbols being reduced, and their result.  */
4084       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
4085         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
4086       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
4087     }
4088 #endif
4089
4090
4091   switch (yyn) {
4092
4093 case 2:
4094 #line 338 "parse.y"
4095 { finish_translation_unit (); ;
4096     break;}
4097 case 3:
4098 #line 346 "parse.y"
4099 { yyval.ttype = NULL_TREE; ;
4100     break;}
4101 case 4:
4102 #line 348 "parse.y"
4103 { yyval.ttype = NULL_TREE; ;
4104     break;}
4105 case 5:
4106 #line 350 "parse.y"
4107 { yyval.ttype = NULL_TREE; ;
4108     break;}
4109 case 8:
4110 #line 359 "parse.y"
4111 { have_extern_spec = 1;
4112                   used_extern_spec = 0;
4113                   yyval.ttype = NULL_TREE; ;
4114     break;}
4115 case 9:
4116 #line 364 "parse.y"
4117 { have_extern_spec = 0; ;
4118     break;}
4119 case 10:
4120 #line 369 "parse.y"
4121 { yyval.itype = pedantic;
4122                   pedantic = 0; ;
4123     break;}
4124 case 12:
4125 #line 378 "parse.y"
4126 { if (pending_lang_change) do_pending_lang_change(); ;
4127     break;}
4128 case 13:
4129 #line 380 "parse.y"
4130 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4131                   pop_everything (); ;
4132     break;}
4133 case 14:
4134 #line 386 "parse.y"
4135 { if (pending_inlines) do_pending_inlines (); ;
4136     break;}
4137 case 15:
4138 #line 388 "parse.y"
4139 { if (pending_inlines) do_pending_inlines (); ;
4140     break;}
4141 case 16:
4142 #line 390 "parse.y"
4143 { if (pending_inlines) do_pending_inlines (); ;
4144     break;}
4145 case 17:
4146 #line 392 "parse.y"
4147 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4148                   assemble_asm (yyvsp[-2].ttype); ;
4149     break;}
4150 case 18:
4151 #line 395 "parse.y"
4152 { pop_lang_context (); ;
4153     break;}
4154 case 19:
4155 #line 397 "parse.y"
4156 { if (pending_inlines) do_pending_inlines ();
4157                   pop_lang_context (); ;
4158     break;}
4159 case 20:
4160 #line 400 "parse.y"
4161 { if (pending_inlines) do_pending_inlines ();
4162                   pop_lang_context (); ;
4163     break;}
4164 case 21:
4165 #line 403 "parse.y"
4166 { push_namespace (yyvsp[-1].ttype); ;
4167     break;}
4168 case 22:
4169 #line 405 "parse.y"
4170 { pop_namespace (); ;
4171     break;}
4172 case 23:
4173 #line 407 "parse.y"
4174 { push_namespace (NULL_TREE); ;
4175     break;}
4176 case 24:
4177 #line 409 "parse.y"
4178 { pop_namespace (); ;
4179     break;}
4180 case 26:
4181 #line 412 "parse.y"
4182 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4183     break;}
4184 case 28:
4185 #line 415 "parse.y"
4186 { pedantic = yyvsp[-1].itype; ;
4187     break;}
4188 case 29:
4189 #line 420 "parse.y"
4190 { begin_only_namespace_names (); ;
4191     break;}
4192 case 30:
4193 #line 422 "parse.y"
4194 {
4195                   end_only_namespace_names ();
4196                   if (lastiddecl)
4197                     yyvsp[-1].ttype = lastiddecl;
4198                   do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
4199                 ;
4200     break;}
4201 case 31:
4202 #line 432 "parse.y"
4203 { yyval.ttype = yyvsp[0].ttype; ;
4204     break;}
4205 case 32:
4206 #line 434 "parse.y"
4207 { yyval.ttype = yyvsp[0].ttype; ;
4208     break;}
4209 case 33:
4210 #line 436 "parse.y"
4211 { yyval.ttype = yyvsp[0].ttype; ;
4212     break;}
4213 case 34:
4214 #line 441 "parse.y"
4215 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4216     break;}
4217 case 35:
4218 #line 443 "parse.y"
4219 { yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
4220     break;}
4221 case 36:
4222 #line 445 "parse.y"
4223 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4224     break;}
4225 case 37:
4226 #line 450 "parse.y"
4227 { begin_only_namespace_names (); ;
4228     break;}
4229 case 38:
4230 #line 452 "parse.y"
4231 {
4232                   end_only_namespace_names ();
4233                   /* If no declaration was found, the using-directive is
4234                      invalid. Since that was not reported, we need the
4235                      identifier for the error message. */
4236                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
4237                     yyvsp[-1].ttype = lastiddecl;
4238                   do_using_directive (yyvsp[-1].ttype);
4239                 ;
4240     break;}
4241 case 39:
4242 #line 465 "parse.y"
4243 {
4244                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4245                     yyval.ttype = lastiddecl;
4246                   got_scope = yyval.ttype;
4247                 ;
4248     break;}
4249 case 40:
4250 #line 471 "parse.y"
4251 {
4252                   yyval.ttype = yyvsp[-1].ttype;
4253                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4254                     yyval.ttype = lastiddecl;
4255                   got_scope = yyval.ttype;
4256                 ;
4257     break;}
4258 case 43:
4259 #line 482 "parse.y"
4260 { yyval.ttype = yyvsp[0].ttype; ;
4261     break;}
4262 case 44:
4263 #line 484 "parse.y"
4264 { yyval.ttype = yyvsp[0].ttype; ;
4265     break;}
4266 case 45:
4267 #line 489 "parse.y"
4268 { push_lang_context (yyvsp[0].ttype); ;
4269     break;}
4270 case 46:
4271 #line 491 "parse.y"
4272 { if (current_lang_name != yyvsp[0].ttype)
4273                     cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4274                   pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4275     break;}
4276 case 47:
4277 #line 498 "parse.y"
4278 { begin_template_parm_list (); ;
4279     break;}
4280 case 48:
4281 #line 500 "parse.y"
4282 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4283     break;}
4284 case 49:
4285 #line 502 "parse.y"
4286 { begin_specialization(); 
4287                   yyval.ttype = NULL_TREE; ;
4288     break;}
4289 case 50:
4290 #line 508 "parse.y"
4291 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4292     break;}
4293 case 51:
4294 #line 510 "parse.y"
4295 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4296     break;}
4297 case 52:
4298 #line 515 "parse.y"
4299 { yyval.ttype = yyvsp[0].ttype; ;
4300     break;}
4301 case 53:
4302 #line 517 "parse.y"
4303 { yyval.ttype = NULL_TREE; ;
4304     break;}
4305 case 54:
4306 #line 521 "parse.y"
4307 { yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4308     break;}
4309 case 55:
4310 #line 523 "parse.y"
4311 { yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
4312     break;}
4313 case 56:
4314 #line 528 "parse.y"
4315 { yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4316     break;}
4317 case 57:
4318 #line 540 "parse.y"
4319 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4320     break;}
4321 case 58:
4322 #line 542 "parse.y"
4323 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4324     break;}
4325 case 59:
4326 #line 544 "parse.y"
4327 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4328     break;}
4329 case 60:
4330 #line 546 "parse.y"
4331 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4332     break;}
4333 case 61:
4334 #line 548 "parse.y"
4335 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4336     break;}
4337 case 62:
4338 #line 550 "parse.y"
4339 {
4340                   if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4341                       && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4342                       && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4343                     {
4344                       error ("invalid default template argument");
4345                       yyvsp[0].ttype = error_mark_node;
4346                     }
4347                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4348                 ;
4349     break;}
4350 case 63:
4351 #line 564 "parse.y"
4352 { finish_template_decl (yyvsp[-1].ttype); ;
4353     break;}
4354 case 64:
4355 #line 566 "parse.y"
4356 { finish_template_decl (yyvsp[-1].ttype); ;
4357     break;}
4358 case 65:
4359 #line 571 "parse.y"
4360 { if (pending_inlines) do_pending_inlines (); ;
4361     break;}
4362 case 66:
4363 #line 573 "parse.y"
4364 { if (pending_inlines) do_pending_inlines (); ;
4365     break;}
4366 case 67:
4367 #line 575 "parse.y"
4368 { if (pending_inlines) do_pending_inlines (); ;
4369     break;}
4370 case 68:
4371 #line 577 "parse.y"
4372 { if (pending_inlines) do_pending_inlines ();
4373                   pop_lang_context (); ;
4374     break;}
4375 case 69:
4376 #line 580 "parse.y"
4377 { if (pending_inlines) do_pending_inlines ();
4378                   pop_lang_context (); ;
4379     break;}
4380 case 70:
4381 #line 583 "parse.y"
4382 { pedantic = yyvsp[-1].itype; ;
4383     break;}
4384 case 72:
4385 #line 589 "parse.y"
4386 {;
4387     break;}
4388 case 73:
4389 #line 591 "parse.y"
4390 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4391     break;}
4392 case 74:
4393 #line 593 "parse.y"
4394 { maybe_process_partial_specialization (yyvsp[-1].ftype.t);
4395                   note_got_semicolon (yyvsp[-1].ftype.t); ;
4396     break;}
4397 case 76:
4398 #line 600 "parse.y"
4399 {;
4400     break;}
4401 case 77:
4402 #line 602 "parse.y"
4403 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4404     break;}
4405 case 78:
4406 #line 604 "parse.y"
4407 { pedwarn ("empty declaration"); ;
4408     break;}
4409 case 80:
4410 #line 607 "parse.y"
4411 {
4412                   tree t, attrs;
4413                   split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4414                   shadow_tag (t);
4415                   note_list_got_semicolon (yyvsp[-1].ftype.t);
4416                 ;
4417     break;}
4418 case 84:
4419 #line 620 "parse.y"
4420 { yyval.itype = 0; ;
4421     break;}
4422 case 85:
4423 #line 622 "parse.y"
4424 { yyval.itype = 1; ;
4425     break;}
4426 case 91:
4427 #line 638 "parse.y"
4428 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4429     break;}
4430 case 92:
4431 #line 640 "parse.y"
4432 { ;
4433     break;}
4434 case 93:
4435 #line 642 "parse.y"
4436 { ;
4437     break;}
4438 case 94:
4439 #line 647 "parse.y"
4440 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4441     break;}
4442 case 95:
4443 #line 649 "parse.y"
4444 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4445     break;}
4446 case 96:
4447 #line 651 "parse.y"
4448 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4449                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4450                 ;
4451     break;}
4452 case 97:
4453 #line 655 "parse.y"
4454 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4455     break;}
4456 case 98:
4457 #line 657 "parse.y"
4458 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4459     break;}
4460 case 99:
4461 #line 659 "parse.y"
4462 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4463                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4464                 ;
4465     break;}
4466 case 100:
4467 #line 663 "parse.y"
4468 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4469     break;}
4470 case 101:
4471 #line 665 "parse.y"
4472 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4473     break;}
4474 case 102:
4475 #line 667 "parse.y"
4476 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4477                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4478                 ;
4479     break;}
4480 case 103:
4481 #line 671 "parse.y"
4482 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4483     break;}
4484 case 104:
4485 #line 673 "parse.y"
4486 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4487     break;}
4488 case 105:
4489 #line 675 "parse.y"
4490 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4491                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4492                 ;
4493     break;}
4494 case 106:
4495 #line 682 "parse.y"
4496 { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
4497                     YYERROR1; ;
4498     break;}
4499 case 107:
4500 #line 685 "parse.y"
4501 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4502                     YYERROR1; ;
4503     break;}
4504 case 108:
4505 #line 688 "parse.y"
4506 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4507                     YYERROR1; ;
4508     break;}
4509 case 109:
4510 #line 691 "parse.y"
4511 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4512                     YYERROR1; ;
4513     break;}
4514 case 110:
4515 #line 694 "parse.y"
4516 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4517                     YYERROR1; ;
4518     break;}
4519 case 111:
4520 #line 700 "parse.y"
4521 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4522     break;}
4523 case 112:
4524 #line 702 "parse.y"
4525 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4526     break;}
4527 case 113:
4528 #line 704 "parse.y"
4529 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4530     break;}
4531 case 114:
4532 #line 706 "parse.y"
4533 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4534     break;}
4535 case 115:
4536 #line 713 "parse.y"
4537 { tree specs = strip_attrs (yyvsp[-1].ttype);
4538                   yyval.ttype = start_method (specs, yyvsp[0].ttype);
4539                  rest_of_mdef:
4540                   if (! yyval.ttype)
4541                     YYERROR1;
4542                   if (yychar == YYEMPTY)
4543                     yychar = YYLEX;
4544                   reinit_parse_for_method (yychar, yyval.ttype); ;
4545     break;}
4546 case 116:
4547 #line 722 "parse.y"
4548 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4549     break;}
4550 case 117:
4551 #line 724 "parse.y"
4552 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4553                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4554     break;}
4555 case 118:
4556 #line 727 "parse.y"
4557 { tree specs = strip_attrs (yyvsp[-1].ttype);
4558                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4559     break;}
4560 case 119:
4561 #line 730 "parse.y"
4562 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4563     break;}
4564 case 120:
4565 #line 732 "parse.y"
4566 { tree specs = strip_attrs (yyvsp[-1].ttype);
4567                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4568     break;}
4569 case 121:
4570 #line 735 "parse.y"
4571 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4572     break;}
4573 case 122:
4574 #line 740 "parse.y"
4575 {
4576                   if (! current_function_parms_stored)
4577                     store_parm_decls ();
4578                   yyval.ttype = yyvsp[0].ttype;
4579                 ;
4580     break;}
4581 case 123:
4582 #line 749 "parse.y"
4583 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4584     break;}
4585 case 124:
4586 #line 751 "parse.y"
4587 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4588     break;}
4589 case 125:
4590 #line 753 "parse.y"
4591 { store_return_init (yyval.ttype, NULL_TREE); ;
4592     break;}
4593 case 126:
4594 #line 758 "parse.y"
4595 {
4596                   if (yyvsp[0].itype == 0)
4597                     error ("no base initializers given following ':'");
4598                   setup_vtbl_ptr ();
4599                   /* Always keep the BLOCK node associated with the outermost
4600                      pair of curley braces of a function.  These are needed
4601                      for correct operation of dwarfout.c.  */
4602                   keep_next_level ();
4603                 ;
4604     break;}
4605 case 127:
4606 #line 771 "parse.y"
4607 {
4608                   if (! current_function_parms_stored)
4609                     store_parm_decls ();
4610
4611                   if (DECL_CONSTRUCTOR_P (current_function_decl))
4612                     {
4613                       /* Make a contour for the initializer list.  */
4614                       pushlevel (0);
4615                       clear_last_expr ();
4616                       expand_start_bindings (0);
4617                     }
4618                   else if (current_class_type == NULL_TREE)
4619                     error ("base initializers not allowed for non-member functions");
4620                   else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4621                     error ("only constructors take base initializers");
4622                 ;
4623     break;}
4624 case 128:
4625 #line 791 "parse.y"
4626 { yyval.itype = 0; ;
4627     break;}
4628 case 129:
4629 #line 793 "parse.y"
4630 { yyval.itype = 1; ;
4631     break;}
4632 case 132:
4633 #line 800 "parse.y"
4634 {
4635                   if (current_class_name)
4636                     pedwarn ("anachronistic old style base class initializer");
4637                   expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4638                 ;
4639     break;}
4640 case 133:
4641 #line 806 "parse.y"
4642 {
4643                   if (current_class_name)
4644                     pedwarn ("anachronistic old style base class initializer");
4645                   expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4646                 ;
4647     break;}
4648 case 134:
4649 #line 812 "parse.y"
4650 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4651     break;}
4652 case 135:
4653 #line 814 "parse.y"
4654 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4655     break;}
4656 case 136:
4657 #line 816 "parse.y"
4658 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4659     break;}
4660 case 137:
4661 #line 818 "parse.y"
4662 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4663     break;}
4664 case 138:
4665 #line 820 "parse.y"
4666 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4667                                       yyvsp[-1].ttype); ;
4668     break;}
4669 case 139:
4670 #line 823 "parse.y"
4671 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4672                                       void_type_node); ;
4673     break;}
4674 case 151:
4675 #line 849 "parse.y"
4676 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4677                   yyungetc (';', 1); ;
4678     break;}
4679 case 153:
4680 #line 853 "parse.y"
4681 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4682                   do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4683     break;}
4684 case 155:
4685 #line 857 "parse.y"
4686 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4687     break;}
4688 case 157:
4689 #line 860 "parse.y"
4690 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4691     break;}
4692 case 159:
4693 #line 863 "parse.y"
4694 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
4695                   yyungetc (';', 1); ;
4696     break;}
4697 case 161:
4698 #line 868 "parse.y"
4699 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4700                   do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4701     break;}
4702 case 163:
4703 #line 872 "parse.y"
4704 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4705     break;}
4706 case 165:
4707 #line 875 "parse.y"
4708 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4709     break;}
4710 case 167:
4711 #line 880 "parse.y"
4712 { begin_explicit_instantiation(); ;
4713     break;}
4714 case 168:
4715 #line 883 "parse.y"
4716 { end_explicit_instantiation(); ;
4717     break;}
4718 case 169:
4719 #line 892 "parse.y"
4720 { yyval.ttype = yyvsp[0].ttype; ;
4721     break;}
4722 case 170:
4723 #line 895 "parse.y"
4724 { yyval.ttype = yyvsp[0].ttype; ;
4725     break;}
4726 case 172:
4727 #line 902 "parse.y"
4728 { yyval.ttype = yyvsp[0].ttype; ;
4729     break;}
4730 case 173:
4731 #line 906 "parse.y"
4732
4733                   if (yychar == YYEMPTY)
4734                     yychar = YYLEX;
4735
4736                   yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype, 
4737                                              yychar == SCOPE);
4738                 ;
4739     break;}
4740 case 175:
4741 #line 917 "parse.y"
4742 {
4743                   /* Handle `Class<Class<Type>>' without space in the `>>' */
4744                   pedwarn ("`>>' should be `> >' in template class name");
4745                   yyungetc ('>', 1);
4746                 ;
4747     break;}
4748 case 176:
4749 #line 926 "parse.y"
4750 { yyval.ttype = NULL_TREE; ;
4751     break;}
4752 case 178:
4753 #line 932 "parse.y"
4754 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4755     break;}
4756 case 179:
4757 #line 934 "parse.y"
4758 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4759     break;}
4760 case 180:
4761 #line 939 "parse.y"
4762 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4763     break;}
4764 case 181:
4765 #line 941 "parse.y"
4766 { yyval.ttype = lastiddecl; ;
4767     break;}
4768 case 183:
4769 #line 947 "parse.y"
4770 { yyval.code = NEGATE_EXPR; ;
4771     break;}
4772 case 184:
4773 #line 949 "parse.y"
4774 { yyval.code = CONVERT_EXPR; ;
4775     break;}
4776 case 185:
4777 #line 951 "parse.y"
4778 { yyval.code = PREINCREMENT_EXPR; ;
4779     break;}
4780 case 186:
4781 #line 953 "parse.y"
4782 { yyval.code = PREDECREMENT_EXPR; ;
4783     break;}
4784 case 187:
4785 #line 955 "parse.y"
4786 { yyval.code = TRUTH_NOT_EXPR; ;
4787     break;}
4788 case 188:
4789 #line 960 "parse.y"
4790 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4791     break;}
4792 case 190:
4793 #line 966 "parse.y"
4794 { error ("ANSI C++ forbids an empty condition for `%s'",
4795                          cond_stmt_keyword);
4796                   yyval.ttype = integer_zero_node; ;
4797     break;}
4798 case 191:
4799 #line 970 "parse.y"
4800 { yyval.ttype = yyvsp[-1].ttype; ;
4801     break;}
4802 case 192:
4803 #line 975 "parse.y"
4804 { error ("ANSI C++ forbids an empty condition for `%s'",
4805                          cond_stmt_keyword);
4806                   yyval.ttype = integer_zero_node; ;
4807     break;}
4808 case 193:
4809 #line 979 "parse.y"
4810 { yyval.ttype = yyvsp[-1].ttype; ;
4811     break;}
4812 case 194:
4813 #line 984 "parse.y"
4814 { yyval.ttype = NULL_TREE; ;
4815     break;}
4816 case 196:
4817 #line 987 "parse.y"
4818 { yyval.ttype = NULL_TREE; ;
4819     break;}
4820 case 197:
4821 #line 992 "parse.y"
4822 { {
4823                   tree d;
4824                   for (d = getdecls (); d; d = TREE_CHAIN (d))
4825                     if (TREE_CODE (d) == TYPE_DECL) {
4826                       tree s = TREE_TYPE (d);
4827                       if (TREE_CODE (s) == RECORD_TYPE)
4828                         cp_error ("definition of class `%T' in condition", s);
4829                       else if (TREE_CODE (s) == ENUMERAL_TYPE)
4830                         cp_error ("definition of enum `%T' in condition", s);
4831                     }
4832                   }
4833                   current_declspecs = yyvsp[-4].ftype.t;
4834                   yyvsp[0].itype = suspend_momentary ();
4835                   yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
4836                                           yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
4837                 ;
4838     break;}
4839 case 198:
4840 #line 1009 "parse.y"
4841
4842                   cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4843                   resume_momentary (yyvsp[-2].itype);
4844                   yyval.ttype = yyvsp[-1].ttype; 
4845                   if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4846                     cp_error ("definition of array `%#D' in condition", yyval.ttype); 
4847                 ;
4848     break;}
4849 case 204:
4850 #line 1028 "parse.y"
4851 { yyval.ttype = begin_compound_stmt (1); ;
4852     break;}
4853 case 205:
4854 #line 1030 "parse.y"
4855 { finish_compound_stmt (1, yyvsp[-1].ttype); ;
4856     break;}
4857 case 207:
4858 #line 1037 "parse.y"
4859 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4860                                   build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4861     break;}
4862 case 208:
4863 #line 1040 "parse.y"
4864 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4865                                   build_expr_list (NULL_TREE, error_mark_node)); ;
4866     break;}
4867 case 209:
4868 #line 1043 "parse.y"
4869 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4870     break;}
4871 case 210:
4872 #line 1045 "parse.y"
4873 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4874     break;}
4875 case 211:
4876 #line 1050 "parse.y"
4877 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4878     break;}
4879 case 213:
4880 #line 1056 "parse.y"
4881 { yyval.ttype = yyvsp[0].ttype; ;
4882     break;}
4883 case 214:
4884 #line 1059 "parse.y"
4885 { yyval.ttype = yyvsp[0].ttype;
4886                   pedantic = yyvsp[-1].itype; ;
4887     break;}
4888 case 215:
4889 #line 1062 "parse.y"
4890 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4891     break;}
4892 case 216:
4893 #line 1064 "parse.y"
4894 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4895     break;}
4896 case 217:
4897 #line 1066 "parse.y"
4898 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4899     break;}
4900 case 218:
4901 #line 1068 "parse.y"
4902 { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
4903     break;}
4904 case 219:
4905 #line 1071 "parse.y"
4906 { if (pedantic)
4907                     pedwarn ("ANSI C++ forbids `&&'");
4908                   yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
4909     break;}
4910 case 220:
4911 #line 1075 "parse.y"
4912 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4913     break;}
4914 case 221:
4915 #line 1077 "parse.y"
4916 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4917     break;}
4918 case 222:
4919 #line 1079 "parse.y"
4920 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4921     break;}
4922 case 223:
4923 #line 1081 "parse.y"
4924 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
4925                   check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4926     break;}
4927 case 224:
4928 #line 1087 "parse.y"
4929 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
4930                   check_for_new_type ("new", yyvsp[0].ftype); ;
4931     break;}
4932 case 225:
4933 #line 1090 "parse.y"
4934 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
4935                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4936     break;}
4937 case 226:
4938 #line 1093 "parse.y"
4939 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
4940                   check_for_new_type ("new", yyvsp[0].ftype); ;
4941     break;}
4942 case 227:
4943 #line 1096 "parse.y"
4944 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
4945                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4946     break;}
4947 case 228:
4948 #line 1109 "parse.y"
4949 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4950                                   NULL_TREE, yyvsp[-4].itype); 
4951                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4952     break;}
4953 case 229:
4954 #line 1114 "parse.y"
4955 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
4956                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4957     break;}
4958 case 230:
4959 #line 1118 "parse.y"
4960 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype); 
4961                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4962     break;}
4963 case 231:
4964 #line 1122 "parse.y"
4965 { yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype); 
4966                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4967     break;}
4968 case 232:
4969 #line 1126 "parse.y"
4970 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4971     break;}
4972 case 233:
4973 #line 1128 "parse.y"
4974 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4975                   if (yychar == YYEMPTY)
4976                     yychar = YYLEX; ;
4977     break;}
4978 case 234:
4979 #line 1132 "parse.y"
4980 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4981                   if (yychar == YYEMPTY)
4982                     yychar = YYLEX; ;
4983     break;}
4984 case 235:
4985 #line 1136 "parse.y"
4986 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4987     break;}
4988 case 236:
4989 #line 1138 "parse.y"
4990 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4991     break;}
4992 case 237:
4993 #line 1148 "parse.y"
4994 { finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
4995     break;}
4996 case 238:
4997 #line 1151 "parse.y"
4998 { yyval.itype = begin_new_placement (); ;
4999     break;}
5000 case 239:
5001 #line 1155 "parse.y"
5002 { yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
5003     break;}
5004 case 240:
5005 #line 1157 "parse.y"
5006 { cp_pedwarn ("old style placement syntax, use () instead");
5007                   yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
5008     break;}
5009 case 241:
5010 #line 1163 "parse.y"
5011 { yyval.ttype = yyvsp[-1].ttype; ;
5012     break;}
5013 case 242:
5014 #line 1165 "parse.y"
5015 { yyval.ttype = NULL_TREE; ;
5016     break;}
5017 case 243:
5018 #line 1167 "parse.y"
5019 {
5020                   cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
5021                   yyval.ttype = error_mark_node;
5022                 ;
5023     break;}
5024 case 244:
5025 #line 1175 "parse.y"
5026 {
5027                   if (pedantic)
5028                     pedwarn ("ANSI C++ forbids initialization of new expression with `='");
5029                   if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
5030                       && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
5031                     yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
5032                   else
5033                     yyval.ttype = yyvsp[0].ttype;
5034                 ;
5035     break;}
5036 case 245:
5037 #line 1189 "parse.y"
5038 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
5039                   yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5040                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
5041     break;}
5042 case 246:
5043 #line 1193 "parse.y"
5044 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); 
5045                   yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5046                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
5047     break;}
5048 case 248:
5049 #line 1201 "parse.y"
5050 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5051     break;}
5052 case 249:
5053 #line 1203 "parse.y"
5054
5055                   tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5056                                         nreverse (yyvsp[-2].ttype)); 
5057                   if (pedantic)
5058                     pedwarn ("ANSI C++ forbids constructor-expressions");
5059                   /* Indicate that this was a GNU C constructor expression.  */
5060                   TREE_HAS_CONSTRUCTOR (init) = 1;
5061
5062                   yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5063                 ;
5064     break;}
5065 case 251:
5066 #line 1219 "parse.y"
5067 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5068     break;}
5069 case 252:
5070 #line 1221 "parse.y"
5071 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5072     break;}
5073 case 253:
5074 #line 1223 "parse.y"
5075 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5076     break;}
5077 case 254:
5078 #line 1225 "parse.y"
5079 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5080     break;}
5081 case 255:
5082 #line 1227 "parse.y"
5083 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5084     break;}
5085 case 256:
5086 #line 1229 "parse.y"
5087 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5088     break;}
5089 case 257:
5090 #line 1231 "parse.y"
5091 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5092     break;}
5093 case 258:
5094 #line 1233 "parse.y"
5095 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5096     break;}
5097 case 259:
5098 #line 1235 "parse.y"
5099 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5100     break;}
5101 case 260:
5102 #line 1237 "parse.y"
5103 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5104     break;}
5105 case 261:
5106 #line 1239 "parse.y"
5107 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5108     break;}
5109 case 262:
5110 #line 1241 "parse.y"
5111 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5112     break;}
5113 case 263:
5114 #line 1243 "parse.y"
5115 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5116     break;}
5117 case 264:
5118 #line 1245 "parse.y"
5119 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5120     break;}
5121 case 265:
5122 #line 1247 "parse.y"
5123 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5124     break;}
5125 case 266:
5126 #line 1249 "parse.y"
5127 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5128     break;}
5129 case 267:
5130 #line 1251 "parse.y"
5131 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5132     break;}
5133 case 268:
5134 #line 1253 "parse.y"
5135 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5136     break;}
5137 case 269:
5138 #line 1255 "parse.y"
5139 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5140     break;}
5141 case 270:
5142 #line 1257 "parse.y"
5143 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5144     break;}
5145 case 271:
5146 #line 1259 "parse.y"
5147 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5148                   if (yyval.ttype != error_mark_node)
5149                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5150     break;}
5151 case 272:
5152 #line 1263 "parse.y"
5153 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5154     break;}
5155 case 273:
5156 #line 1265 "parse.y"
5157 { yyval.ttype = build_throw (NULL_TREE); ;
5158     break;}
5159 case 274:
5160 #line 1267 "parse.y"
5161 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5162     break;}
5163 case 275:
5164 #line 1285 "parse.y"
5165 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5166     break;}
5167 case 276:
5168 #line 1287 "parse.y"
5169 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5170     break;}
5171 case 282:
5172 #line 1296 "parse.y"
5173 { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE); ;
5174     break;}
5175 case 283:
5176 #line 1300 "parse.y"
5177 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5178     break;}
5179 case 284:
5180 #line 1302 "parse.y"
5181 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5182     break;}
5183 case 285:
5184 #line 1307 "parse.y"
5185 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5186     break;}
5187 case 286:
5188 #line 1309 "parse.y"
5189 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5190     break;}
5191 case 287:
5192 #line 1312 "parse.y"
5193 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5194     break;}
5195 case 292:
5196 #line 1324 "parse.y"
5197 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5198     break;}
5199 case 293:
5200 #line 1326 "parse.y"
5201 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5202     break;}
5203 case 294:
5204 #line 1328 "parse.y"
5205 { yyval.ttype = yyvsp[-1].ttype; ;
5206     break;}
5207 case 295:
5208 #line 1333 "parse.y"
5209 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5210     break;}
5211 case 296:
5212 #line 1335 "parse.y"
5213 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5214     break;}
5215 case 300:
5216 #line 1345 "parse.y"
5217 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5218     break;}
5219 case 301:
5220 #line 1350 "parse.y"
5221 {
5222                   if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
5223                     yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
5224                   else 
5225                     yyval.ttype = finish_id_expr (yyvsp[0].ttype);
5226                 ;
5227     break;}
5228 case 304:
5229 #line 1359 "parse.y"
5230 {
5231                   if (processing_template_decl)
5232                     push_obstacks (&permanent_obstack, &permanent_obstack);
5233                   yyval.ttype = combine_strings (yyval.ttype);
5234                   /* combine_strings doesn't set up TYPE_MAIN_VARIANT of
5235                      a const array the way we want, so fix it.  */
5236                   if (flag_const_strings)
5237                     TREE_TYPE (yyval.ttype) = build_cplus_array_type
5238                       (TREE_TYPE (TREE_TYPE (yyval.ttype)),
5239                        TYPE_DOMAIN (TREE_TYPE (yyval.ttype)));
5240                   if (processing_template_decl)
5241                     pop_obstacks ();
5242                 ;
5243     break;}
5244 case 305:
5245 #line 1373 "parse.y"
5246 { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5247     break;}
5248 case 306:
5249 #line 1375 "parse.y"
5250 { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5251                   yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5252     break;}
5253 case 307:
5254 #line 1378 "parse.y"
5255 { yyval.ttype = error_mark_node; ;
5256     break;}
5257 case 308:
5258 #line 1380 "parse.y"
5259 { tree scope = current_scope ();
5260                   if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
5261                     {
5262                       error ("braced-group within expression allowed only inside a function");
5263                       YYERROR;
5264                     }
5265                   if (pedantic)
5266                     pedwarn ("ANSI C++ forbids braced-groups within expressions");  
5267                   yyval.ttype = begin_stmt_expr (); 
5268                 ;
5269     break;}
5270 case 309:
5271 #line 1391 "parse.y"
5272 { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5273     break;}
5274 case 310:
5275 #line 1396 "parse.y"
5276 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
5277     break;}
5278 case 311:
5279 #line 1398 "parse.y"
5280 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
5281     break;}
5282 case 312:
5283 #line 1400 "parse.y"
5284 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
5285     break;}
5286 case 313:
5287 #line 1402 "parse.y"
5288 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
5289     break;}
5290 case 314:
5291 #line 1404 "parse.y"
5292 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5293     break;}
5294 case 315:
5295 #line 1406 "parse.y"
5296 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
5297     break;}
5298 case 316:
5299 #line 1408 "parse.y"
5300 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
5301     break;}
5302 case 317:
5303 #line 1411 "parse.y"
5304 { yyval.ttype = finish_this_expr (); ;
5305     break;}
5306 case 318:
5307 #line 1413 "parse.y"
5308 {
5309                   tree type = NULL_TREE;
5310                   tree id = yyval.ttype;
5311
5312                   /* This is a C cast in C++'s `functional' notation.  */
5313                   if (yyvsp[-1].ttype == error_mark_node)
5314                     {
5315                       yyval.ttype = error_mark_node;
5316                       break;
5317                     }
5318 #if 0
5319                   if (yyvsp[-1].ttype == NULL_TREE)
5320                     {
5321                       error ("cannot cast null list to type `%s'",
5322                              IDENTIFIER_POINTER (TYPE_NAME (id)));
5323                       yyval.ttype = error_mark_node;
5324                       break;
5325                     }
5326 #endif
5327 #if 0
5328                   /* type is not set! (mrs) */
5329                   if (type == error_mark_node)
5330                     yyval.ttype = error_mark_node;
5331                   else
5332 #endif
5333                     {
5334                       if (id == ridpointers[(int) RID_CONST])
5335                         type = build_type_variant (integer_type_node, 1, 0);
5336                       else if (id == ridpointers[(int) RID_VOLATILE])
5337                         type = build_type_variant (integer_type_node, 0, 1);
5338 #if 0
5339                       /* should not be able to get here (mrs) */
5340                       else if (id == ridpointers[(int) RID_FRIEND])
5341                         {
5342                           error ("cannot cast expression to `friend' type");
5343                           yyval.ttype = error_mark_node;
5344                           break;
5345                         }
5346 #endif
5347                       else my_friendly_abort (79);
5348                       yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5349                     }
5350                 ;
5351     break;}
5352 case 320:
5353 #line 1458 "parse.y"
5354 { tree type = groktypename (yyvsp[-4].ftype.t);
5355                   check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5356                   yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5357     break;}
5358 case 321:
5359 #line 1462 "parse.y"
5360 { tree type = groktypename (yyvsp[-4].ftype.t);
5361                   check_for_new_type ("static_cast", yyvsp[-4].ftype);
5362                   yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5363     break;}
5364 case 322:
5365 #line 1466 "parse.y"
5366 { tree type = groktypename (yyvsp[-4].ftype.t);
5367                   check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5368                   yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5369     break;}
5370 case 323:
5371 #line 1470 "parse.y"
5372 { tree type = groktypename (yyvsp[-4].ftype.t);
5373                   check_for_new_type ("const_cast", yyvsp[-4].ftype);
5374                   yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5375     break;}
5376 case 324:
5377 #line 1474 "parse.y"
5378 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5379     break;}
5380 case 325:
5381 #line 1476 "parse.y"
5382 { tree type = groktypename (yyvsp[-1].ftype.t);
5383                   check_for_new_type ("typeid", yyvsp[-1].ftype);
5384                   yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5385     break;}
5386 case 326:
5387 #line 1480 "parse.y"
5388 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5389     break;}
5390 case 327:
5391 #line 1482 "parse.y"
5392 { yyval.ttype = yyvsp[0].ttype; ;
5393     break;}
5394 case 328:
5395 #line 1484 "parse.y"
5396 {
5397                   got_scope = NULL_TREE;
5398                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5399                     yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5400                   else
5401                     yyval.ttype = yyvsp[0].ttype;
5402                 ;
5403     break;}
5404 case 329:
5405 #line 1492 "parse.y"
5406 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5407     break;}
5408 case 330:
5409 #line 1494 "parse.y"
5410 { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5411     break;}
5412 case 331:
5413 #line 1496 "parse.y"
5414 { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
5415     break;}
5416 case 332:
5417 #line 1498 "parse.y"
5418
5419                   yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
5420                 ;
5421     break;}
5422 case 333:
5423 #line 1502 "parse.y"
5424 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5425     break;}
5426 case 334:
5427 #line 1504 "parse.y"
5428 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5429     break;}
5430 case 335:
5431 #line 1506 "parse.y"
5432 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5433     break;}
5434 case 336:
5435 #line 1508 "parse.y"
5436 { if (processing_template_decl)
5437                     yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5438                   else
5439                     yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5440     break;}
5441 case 337:
5442 #line 1513 "parse.y"
5443 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5444     break;}
5445 case 338:
5446 #line 1515 "parse.y"
5447 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5448     break;}
5449 case 339:
5450 #line 1517 "parse.y"
5451 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5452     break;}
5453 case 340:
5454 #line 1519 "parse.y"
5455 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5456     break;}
5457 case 341:
5458 #line 1522 "parse.y"
5459 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5460     break;}
5461 case 342:
5462 #line 1524 "parse.y"
5463 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5464     break;}
5465 case 343:
5466 #line 1526 "parse.y"
5467 {
5468                   yyval.ttype = error_mark_node;
5469                 ;
5470     break;}
5471 case 344:
5472 #line 1571 "parse.y"
5473 { yyval.itype = 0; ;
5474     break;}
5475 case 345:
5476 #line 1573 "parse.y"
5477 { got_scope = NULL_TREE; yyval.itype = 1; ;
5478     break;}
5479 case 346:
5480 #line 1578 "parse.y"
5481 { yyval.itype = 0; ;
5482     break;}
5483 case 347:
5484 #line 1580 "parse.y"
5485 { got_scope = NULL_TREE; yyval.itype = 1; ;
5486     break;}
5487 case 348:
5488 #line 1585 "parse.y"
5489 { yyval.ttype = boolean_true_node; ;
5490     break;}
5491 case 349:
5492 #line 1587 "parse.y"
5493 { yyval.ttype = boolean_false_node; ;
5494     break;}
5495 case 351:
5496 #line 1594 "parse.y"
5497 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5498     break;}
5499 case 352:
5500 #line 1599 "parse.y"
5501 {
5502                   if (! current_function_parms_stored)
5503                     store_parm_decls ();
5504                   setup_vtbl_ptr ();
5505                   /* Always keep the BLOCK node associated with the outermost
5506                      pair of curley braces of a function.  These are needed
5507                      for correct operation of dwarfout.c.  */
5508                   keep_next_level ();
5509                 ;
5510     break;}
5511 case 353:
5512 #line 1612 "parse.y"
5513 { got_object = TREE_TYPE (yyval.ttype); ;
5514     break;}
5515 case 354:
5516 #line 1614 "parse.y"
5517 {
5518                   yyval.ttype = build_x_arrow (yyval.ttype); 
5519                   got_object = TREE_TYPE (yyval.ttype);
5520                 ;
5521     break;}
5522 case 355:
5523 #line 1622 "parse.y"
5524 {
5525                   resume_momentary (yyvsp[-1].itype);
5526                   if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5527                     note_got_semicolon (yyvsp[-2].ftype.t);
5528                 ;
5529     break;}
5530 case 356:
5531 #line 1628 "parse.y"
5532 {
5533                   resume_momentary (yyvsp[-1].itype);
5534                   note_list_got_semicolon (yyvsp[-2].ftype.t);
5535                 ;
5536     break;}
5537 case 357:
5538 #line 1633 "parse.y"
5539 { resume_momentary (yyvsp[-1].itype); ;
5540     break;}
5541 case 358:
5542 #line 1635 "parse.y"
5543 {
5544                   shadow_tag (yyvsp[-1].ftype.t);
5545                   note_list_got_semicolon (yyvsp[-1].ftype.t);
5546                 ;
5547     break;}
5548 case 359:
5549 #line 1640 "parse.y"
5550 { warning ("empty declaration"); ;
5551     break;}
5552 case 360:
5553 #line 1642 "parse.y"
5554 { pedantic = yyvsp[-1].itype; ;
5555     break;}
5556 case 363:
5557 #line 1656 "parse.y"
5558 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5559                                              NULL_TREE, NULL_TREE); ;
5560     break;}
5561 case 364:
5562 #line 1659 "parse.y"
5563 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5564                                              NULL_TREE); ;
5565     break;}
5566 case 365:
5567 #line 1666 "parse.y"
5568 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5569                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5570     break;}
5571 case 366:
5572 #line 1669 "parse.y"
5573 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5574                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5575     break;}
5576 case 367:
5577 #line 1672 "parse.y"
5578 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
5579                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5580     break;}
5581 case 368:
5582 #line 1675 "parse.y"
5583 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5584                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
5585     break;}
5586 case 369:
5587 #line 1678 "parse.y"
5588 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
5589                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5590     break;}
5591 case 372:
5592 #line 1694 "parse.y"
5593 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
5594                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5595     break;}
5596 case 373:
5597 #line 1697 "parse.y"
5598 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5599                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5600     break;}
5601 case 374:
5602 #line 1700 "parse.y"
5603 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
5604                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5605     break;}
5606 case 375:
5607 #line 1703 "parse.y"
5608 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5609                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5610     break;}
5611 case 376:
5612 #line 1706 "parse.y"
5613 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5614                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5615     break;}
5616 case 377:
5617 #line 1709 "parse.y"
5618 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5619                                          chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
5620                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5621     break;}
5622 case 378:
5623 #line 1716 "parse.y"
5624 { if (extra_warnings)
5625                     warning ("`%s' is not at beginning of declaration",
5626                              IDENTIFIER_POINTER (yyval.ttype));
5627                   yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5628     break;}
5629 case 379:
5630 #line 1721 "parse.y"
5631 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5632     break;}
5633 case 380:
5634 #line 1723 "parse.y"
5635 { if (extra_warnings)
5636                     warning ("`%s' is not at beginning of declaration",
5637                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5638                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5639     break;}
5640 case 381:
5641 #line 1728 "parse.y"
5642 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5643     break;}
5644 case 382:
5645 #line 1730 "parse.y"
5646 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5647     break;}
5648 case 383:
5649 #line 1740 "parse.y"
5650 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5651     break;}
5652 case 384:
5653 #line 1742 "parse.y"
5654 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5655     break;}
5656 case 385:
5657 #line 1744 "parse.y"
5658 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5659                   TREE_STATIC (yyval.ttype) = 1; ;
5660     break;}
5661 case 386:
5662 #line 1747 "parse.y"
5663 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5664                     warning ("`%s' is not at beginning of declaration",
5665                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5666                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5667                   TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5668     break;}
5669 case 387:
5670 #line 1753 "parse.y"
5671 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5672     break;}
5673 case 388:
5674 #line 1755 "parse.y"
5675 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5676     break;}
5677 case 389:
5678 #line 1766 "parse.y"
5679 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); 
5680                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5681     break;}
5682 case 390:
5683 #line 1769 "parse.y"
5684 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
5685                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5686     break;}
5687 case 391:
5688 #line 1772 "parse.y"
5689 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5690                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5691     break;}
5692 case 392:
5693 #line 1775 "parse.y"
5694 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
5695                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5696     break;}
5697 case 393:
5698 #line 1781 "parse.y"
5699 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5700     break;}
5701 case 394:
5702 #line 1783 "parse.y"
5703 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5704     break;}
5705 case 396:
5706 #line 1793 "parse.y"
5707 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5708     break;}
5709 case 397:
5710 #line 1795 "parse.y"
5711 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5712     break;}
5713 case 398:
5714 #line 1797 "parse.y"
5715 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5716                   yyval.ftype.new_type_flag = 0; ;
5717     break;}
5718 case 399:
5719 #line 1800 "parse.y"
5720 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5721                   yyval.ftype.new_type_flag = 0; ;
5722     break;}
5723 case 400:
5724 #line 1803 "parse.y"
5725 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5726
5727                   yyval.ftype.new_type_flag = 0;
5728                   if (IS_AGGR_TYPE (type))
5729                     {
5730                       sorry ("sigof type specifier");
5731                       yyval.ftype.t = type;
5732                     }
5733                   else
5734                     {
5735                       error ("`sigof' applied to non-aggregate expression");
5736                       yyval.ftype.t = error_mark_node;
5737                     }
5738                 ;
5739     break;}
5740 case 401:
5741 #line 1818 "parse.y"
5742 { tree type = groktypename (yyvsp[-1].ftype.t);
5743
5744                   yyval.ftype.new_type_flag = 0;
5745                   if (IS_AGGR_TYPE (type))
5746                     {
5747                       sorry ("sigof type specifier");
5748                       yyval.ftype.t = type;
5749                     }
5750                   else
5751                     {
5752                       error("`sigof' applied to non-aggregate type");
5753                       yyval.ftype.t = error_mark_node;
5754                     }
5755                 ;
5756     break;}
5757 case 402:
5758 #line 1838 "parse.y"
5759 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5760     break;}
5761 case 403:
5762 #line 1840 "parse.y"
5763 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5764     break;}
5765 case 411:
5766 #line 1861 "parse.y"
5767 { yyval.ttype = NULL_TREE; ;
5768     break;}
5769 case 412:
5770 #line 1863 "parse.y"
5771 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5772     break;}
5773 case 413:
5774 #line 1868 "parse.y"
5775 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
5776                                           yyvsp[-1].ttype, prefix_attributes); ;
5777     break;}
5778 case 414:
5779 #line 1872 "parse.y"
5780 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5781     break;}
5782 case 415:
5783 #line 1874 "parse.y"
5784 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
5785                                           yyvsp[0].ttype, prefix_attributes);
5786                   cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5787     break;}
5788 case 416:
5789 #line 1887 "parse.y"
5790 { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, 
5791                                            yyvsp[-1].ttype, 1, &yyval.ttype); ;
5792     break;}
5793 case 417:
5794 #line 1892 "parse.y"
5795 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
5796                                   LOOKUP_ONLYCONVERTING);
5797                   yyval.itype = yyvsp[-2].itype; ;
5798     break;}
5799 case 418:
5800 #line 1896 "parse.y"
5801 { tree d;
5802                   yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
5803                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5804     break;}
5805 case 419:
5806 #line 1903 "parse.y"
5807 { yyval.itype = yyvsp[0].itype; ;
5808     break;}
5809 case 420:
5810 #line 1907 "parse.y"
5811 { yyval.itype = yyvsp[0].itype; ;
5812     break;}
5813 case 421:
5814 #line 1912 "parse.y"
5815 { /* Set things up as initdcl0_innards expects.  */
5816               yyval.ttype = yyvsp[-1].ttype; 
5817               yyvsp[-1].ttype = NULL_TREE; ;
5818     break;}
5819 case 422:
5820 #line 1916 "parse.y"
5821 {;
5822     break;}
5823 case 423:
5824 #line 1918 "parse.y"
5825 { tree d;
5826                   parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
5827                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5828     break;}
5829 case 424:
5830 #line 1927 "parse.y"
5831 { yyval.ttype = NULL_TREE; ;
5832     break;}
5833 case 425:
5834 #line 1929 "parse.y"
5835 { yyval.ttype = yyvsp[0].ttype; ;
5836     break;}
5837 case 426:
5838 #line 1934 "parse.y"
5839 { yyval.ttype = yyvsp[0].ttype; ;
5840     break;}
5841 case 427:
5842 #line 1936 "parse.y"
5843 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5844     break;}
5845 case 428:
5846 #line 1941 "parse.y"
5847 { yyval.ttype = yyvsp[-2].ttype; ;
5848     break;}
5849 case 429:
5850 #line 1946 "parse.y"
5851 { yyval.ttype = yyvsp[0].ttype; ;
5852     break;}
5853 case 430:
5854 #line 1948 "parse.y"
5855 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5856     break;}
5857 case 431:
5858 #line 1953 "parse.y"
5859 { yyval.ttype = NULL_TREE; ;
5860     break;}
5861 case 432:
5862 #line 1955 "parse.y"
5863 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
5864     break;}
5865 case 433:
5866 #line 1957 "parse.y"
5867 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
5868     break;}
5869 case 434:
5870 #line 1959 "parse.y"
5871 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
5872     break;}
5873 case 435:
5874 #line 1961 "parse.y"
5875 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5876     break;}
5877 case 440:
5878 #line 1977 "parse.y"
5879 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
5880     break;}
5881 case 441:
5882 #line 1979 "parse.y"
5883 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5884     break;}
5885 case 442:
5886 #line 1984 "parse.y"
5887 { yyval.ttype = NULL_TREE; ;
5888     break;}
5889 case 443:
5890 #line 1986 "parse.y"
5891 { yyval.ttype = yyvsp[0].ttype; ;
5892     break;}
5893 case 445:
5894 #line 1994 "parse.y"
5895 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
5896                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5897     break;}
5898 case 446:
5899 #line 1997 "parse.y"
5900 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
5901                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5902     break;}
5903 case 447:
5904 #line 2000 "parse.y"
5905 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
5906                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5907     break;}
5908 case 448:
5909 #line 2003 "parse.y"
5910 { yyval.ttype = NULL_TREE; ;
5911     break;}
5912 case 449:
5913 #line 2010 "parse.y"
5914 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5915     break;}
5916 case 450:
5917 #line 2012 "parse.y"
5918 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5919     break;}
5920 case 451:
5921 #line 2015 "parse.y"
5922 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5923     break;}
5924 case 452:
5925 #line 2017 "parse.y"
5926 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
5927     break;}
5928 case 453:
5929 #line 2019 "parse.y"
5930 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
5931     break;}
5932 case 454:
5933 #line 2024 "parse.y"
5934 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
5935                                   NULL_TREE, 1);
5936                   reinit_parse_for_function (); ;
5937     break;}
5938 case 455:
5939 #line 2030 "parse.y"
5940 {
5941                   int nested = (hack_decl_function_context
5942                                 (current_function_decl) != NULL_TREE);
5943                   finish_function (lineno, (int)yyvsp[-1].itype, nested);
5944                   process_next_inline (yyvsp[-3].ttype);
5945                 ;
5946     break;}
5947 case 456:
5948 #line 2037 "parse.y"
5949 { process_next_inline (yyvsp[-2].ttype); ;
5950     break;}
5951 case 457:
5952 #line 2039 "parse.y"
5953 { process_next_inline (yyvsp[-2].ttype); ;
5954     break;}
5955 case 460:
5956 #line 2051 "parse.y"
5957 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5958     break;}
5959 case 461:
5960 #line 2053 "parse.y"
5961 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
5962     break;}
5963 case 463:
5964 #line 2058 "parse.y"
5965 { do_pending_defargs (); ;
5966     break;}
5967 case 464:
5968 #line 2060 "parse.y"
5969 { do_pending_defargs (); ;
5970     break;}
5971 case 465:
5972 #line 2065 "parse.y"
5973 { yyvsp[0].itype = suspend_momentary ();
5974                   yyval.ttype = current_enum_type;
5975                   current_enum_type = start_enum (yyvsp[-1].ttype); ;
5976     break;}
5977 case 466:
5978 #line 2069 "parse.y"
5979 { TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
5980                   yyval.ftype.t = finish_enum (current_enum_type);
5981                   yyval.ftype.new_type_flag = 1;
5982                   current_enum_type = yyvsp[-3].ttype;
5983                   resume_momentary ((int) yyvsp[-4].itype);
5984                   check_for_missing_semicolon (yyval.ftype.t); ;
5985     break;}
5986 case 467:
5987 #line 2076 "parse.y"
5988 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype));
5989                   yyval.ftype.new_type_flag = 1;
5990                   check_for_missing_semicolon (yyval.ftype.t); ;
5991     break;}
5992 case 468:
5993 #line 2080 "parse.y"
5994 { yyvsp[0].itype = suspend_momentary ();
5995                   yyval.ttype = current_enum_type;
5996                   current_enum_type = start_enum (make_anon_name ()); ;
5997     break;}
5998 case 469:
5999 #line 2084 "parse.y"
6000 { TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
6001                   yyval.ftype.t = finish_enum (current_enum_type);
6002                   yyval.ftype.new_type_flag = 1;
6003                   current_enum_type = yyvsp[-2].ttype;
6004                   resume_momentary ((int) yyvsp[-5].itype);
6005                   check_for_missing_semicolon (yyval.ftype.t); ;
6006     break;}
6007 case 470:
6008 #line 2091 "parse.y"
6009 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()));
6010                   yyval.ftype.new_type_flag = 1;
6011                   check_for_missing_semicolon (yyval.ftype.t); ;
6012     break;}
6013 case 471:
6014 #line 2095 "parse.y"
6015 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
6016                   yyval.ftype.new_type_flag = 0; ;
6017     break;}
6018 case 472:
6019 #line 2098 "parse.y"
6020 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
6021                   yyval.ftype.new_type_flag = 0; ;
6022     break;}
6023 case 473:
6024 #line 2101 "parse.y"
6025 { yyval.ftype.t = yyvsp[0].ttype;
6026                   yyval.ftype.new_type_flag = 0; 
6027                   if (!processing_template_decl)
6028                     cp_pedwarn ("using `typename' outside of template"); ;
6029     break;}
6030 case 474:
6031 #line 2108 "parse.y"
6032
6033                   int semi;
6034
6035                   if (yychar == YYEMPTY)
6036                     yychar = YYLEX;
6037                   semi = yychar == ';';
6038
6039                   yyval.ttype = finish_class_definition (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi); 
6040                 ;
6041     break;}
6042 case 475:
6043 #line 2118 "parse.y"
6044 { finish_default_args (); ;
6045     break;}
6046 case 476:
6047 #line 2120 "parse.y"
6048 { yyval.ftype.t = yyvsp[-3].ttype;
6049                   yyval.ftype.new_type_flag = 1; 
6050                   begin_inline_definitions (); ;
6051     break;}
6052 case 477:
6053 #line 2124 "parse.y"
6054 {
6055                   yyval.ftype.new_type_flag = 0;
6056                   if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
6057                     {
6058                       cp_error ("%T is not a class type", yyvsp[0].ttype);
6059                       yyval.ftype.t = error_mark_node;
6060                     } 
6061                   else
6062                     {
6063                       yyval.ftype.t = yyvsp[0].ttype;
6064                       /* struct B: public A; is not accepted by the WP grammar.  */
6065                       if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6066                           && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6067                         cp_error ("base clause without member specification for `%#T'",
6068                                   yyval.ftype.t);
6069                     }
6070                 ;
6071     break;}
6072 case 481:
6073 #line 2151 "parse.y"
6074 { if (pedantic && !in_system_header)
6075                     pedwarn ("comma at end of enumerator list"); ;
6076     break;}
6077 case 483:
6078 #line 2158 "parse.y"
6079 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6080     break;}
6081 case 484:
6082 #line 2160 "parse.y"
6083 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6084     break;}
6085 case 485:
6086 #line 2162 "parse.y"
6087 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6088     break;}
6089 case 486:
6090 #line 2164 "parse.y"
6091 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6092     break;}
6093 case 487:
6094 #line 2166 "parse.y"
6095 { yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
6096     break;}
6097 case 488:
6098 #line 2171 "parse.y"
6099 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6100     break;}
6101 case 489:
6102 #line 2176 "parse.y"
6103 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6104     break;}
6105 case 490:
6106 #line 2178 "parse.y"
6107 { yyungetc ('{', 1); ;
6108     break;}
6109 case 491:
6110 #line 2180 "parse.y"
6111 { yyungetc (':', 1); ;
6112     break;}
6113 case 492:
6114 #line 2185 "parse.y"
6115 {
6116                   current_aggr = yyvsp[-2].ttype;
6117                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6118                 ;
6119     break;}
6120 case 493:
6121 #line 2190 "parse.y"
6122 {
6123                   current_aggr = yyvsp[-3].ttype;
6124                   yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6125                 ;
6126     break;}
6127 case 494:
6128 #line 2195 "parse.y"
6129 {
6130                   current_aggr = yyvsp[-2].ttype;
6131                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6132                 ;
6133     break;}
6134 case 495:
6135 #line 2200 "parse.y"
6136 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6137     break;}
6138 case 496:
6139 #line 2202 "parse.y"
6140 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6141     break;}
6142 case 497:
6143 #line 2207 "parse.y"
6144 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
6145     break;}
6146 case 498:
6147 #line 2212 "parse.y"
6148 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 1); ;
6149     break;}
6150 case 499:
6151 #line 2215 "parse.y"
6152
6153                   yyval.ttype = yyvsp[-1].ttype;
6154                   if (yyvsp[0].ttype)
6155                     xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
6156                 ;
6157     break;}
6158 case 500:
6159 #line 2221 "parse.y"
6160
6161                   yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6162                   if (TREE_INT_CST_LOW (current_aggr) == union_type 
6163                       && TREE_CODE (yyval.ttype) != UNION_TYPE)
6164                     cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
6165                   else if (TREE_CODE (yyval.ttype) == UNION_TYPE
6166                            && TREE_INT_CST_LOW (current_aggr) != union_type)
6167                     cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
6168                   if (yyvsp[0].ttype)
6169                     {
6170                       maybe_process_partial_specialization (yyval.ttype);
6171                       xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype); 
6172                     }
6173                 ;
6174     break;}
6175 case 501:
6176 #line 2239 "parse.y"
6177 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0);
6178                   yyungetc ('{', 1); ;
6179     break;}
6180 case 504:
6181 #line 2250 "parse.y"
6182 { yyval.ttype = NULL_TREE; ;
6183     break;}
6184 case 505:
6185 #line 2252 "parse.y"
6186 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6187     break;}
6188 case 506:
6189 #line 2254 "parse.y"
6190 { yyval.ttype = yyvsp[0].ttype; ;
6191     break;}
6192 case 508:
6193 #line 2260 "parse.y"
6194 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6195     break;}
6196 case 509:
6197 #line 2265 "parse.y"
6198 { yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype,
6199                                               current_aggr 
6200                                               == signature_type_node); ;
6201     break;}
6202 case 510:
6203 #line 2269 "parse.y"
6204 { yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 
6205                                               current_aggr 
6206                                               == signature_type_node); ;
6207     break;}
6208 case 511:
6209 #line 2276 "parse.y"
6210 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6211     break;}
6212 case 513:
6213 #line 2279 "parse.y"
6214 {
6215                   if (current_aggr == signature_type_node)
6216                     {
6217                       if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6218                         {
6219                           sorry ("`sigof' as base signature specifier");
6220                           yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6221                         }
6222                       else
6223                         {
6224                           error ("`sigof' applied to non-aggregate expression");
6225                           yyval.ttype = error_mark_node;
6226                         }
6227                     }
6228                   else
6229                     {
6230                       error ("`sigof' in struct or class declaration");
6231                       yyval.ttype = error_mark_node;
6232                     }
6233                 ;
6234     break;}
6235 case 514:
6236 #line 2300 "parse.y"
6237 {
6238                   if (current_aggr == signature_type_node)
6239                     {
6240                       if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6241                         {
6242                           sorry ("`sigof' as base signature specifier");
6243                           yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6244                         }
6245                       else
6246                         {
6247                           error ("`sigof' applied to non-aggregate expression");
6248                           yyval.ttype = error_mark_node;
6249                         }
6250                     }
6251                   else
6252                     {
6253                       error ("`sigof' in struct or class declaration");
6254                       yyval.ttype = error_mark_node;
6255                     }
6256                 ;
6257     break;}
6258 case 516:
6259 #line 2325 "parse.y"
6260 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6261                     cp_error ("`%D' access", yyvsp[-1].ttype);
6262                   yyval.ttype = access_default_virtual_node; ;
6263     break;}
6264 case 517:
6265 #line 2329 "parse.y"
6266 {
6267                   if (yyvsp[-2].ttype != access_default_virtual_node)
6268                     error ("multiple access specifiers");
6269                   else if (yyvsp[-1].ttype == access_public_node)
6270                     yyval.ttype = access_public_virtual_node;
6271                   else if (yyvsp[-1].ttype == access_protected_node)
6272                     yyval.ttype = access_protected_virtual_node;
6273                   else /* $2 == access_private_node */
6274                     yyval.ttype = access_private_virtual_node;
6275                 ;
6276     break;}
6277 case 518:
6278 #line 2340 "parse.y"
6279 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6280                     cp_error ("`%D' access", yyvsp[-1].ttype);
6281                   else if (yyval.ttype == access_public_node)
6282                     yyval.ttype = access_public_virtual_node;
6283                   else if (yyval.ttype == access_protected_node)
6284                     yyval.ttype = access_protected_virtual_node;
6285                   else if (yyval.ttype == access_private_node)
6286                     yyval.ttype = access_private_virtual_node;
6287                   else
6288                     error ("multiple `virtual' specifiers");
6289                 ;
6290     break;}
6291 case 519:
6292 #line 2355 "parse.y"
6293 { yyvsp[-1].ttype = begin_class_definition (yyvsp[-1].ttype); ;
6294     break;}
6295 case 520:
6296 #line 2360 "parse.y"
6297 {
6298                     yyval.ttype = build_self_reference ();
6299                 ;
6300     break;}
6301 case 521:
6302 #line 2367 "parse.y"
6303 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6304     break;}
6305 case 522:
6306 #line 2369 "parse.y"
6307 {
6308                   if (current_aggr == signature_type_node)
6309                     yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6310                   else
6311                     yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6312                   if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6313                 ;
6314     break;}
6315 case 523:
6316 #line 2377 "parse.y"
6317 {
6318                   tree visspec = yyvsp[-2].ttype;
6319
6320                   if (current_aggr == signature_type_node)
6321                     {
6322                       error ("access specifier not allowed in signature");
6323                       visspec = access_public_node;
6324                     }
6325                   yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6326                 ;
6327     break;}
6328 case 524:
6329 #line 2388 "parse.y"
6330 {
6331                   if (current_aggr == signature_type_node)
6332                     error ("access specifier not allowed in signature");
6333                 ;
6334     break;}
6335 case 525:
6336 #line 2398 "parse.y"
6337 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; 
6338                 ;
6339     break;}
6340 case 526:
6341 #line 2401 "parse.y"
6342 { /* In pushdecl, we created a reverse list of names
6343                      in this binding level.  Make sure that the chain
6344                      of what we're trying to add isn't the item itself
6345                      (which can happen with what pushdecl's doing).  */
6346                   if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6347                     {
6348                       if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6349                         yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6350                       else
6351                         yyval.ttype = yyvsp[0].ttype;
6352                     }
6353                 ;
6354     break;}
6355 case 527:
6356 #line 2417 "parse.y"
6357 { ;
6358     break;}
6359 case 528:
6360 #line 2419 "parse.y"
6361 { error ("missing ';' before right brace");
6362                   yyungetc ('}', 0); ;
6363     break;}
6364 case 529:
6365 #line 2424 "parse.y"
6366 { yyval.ttype = finish_method (yyval.ttype); ;
6367     break;}
6368 case 530:
6369 #line 2426 "parse.y"
6370 { yyval.ttype = finish_method (yyval.ttype); ;
6371     break;}
6372 case 531:
6373 #line 2428 "parse.y"
6374 { yyval.ttype = finish_method (yyval.ttype); ;
6375     break;}
6376 case 532:
6377 #line 2430 "parse.y"
6378 { yyval.ttype = finish_method (yyval.ttype); ;
6379     break;}
6380 case 533:
6381 #line 2432 "parse.y"
6382 { yyval.ttype = NULL_TREE; ;
6383     break;}
6384 case 534:
6385 #line 2434 "parse.y"
6386 { yyval.ttype = yyvsp[0].ttype;
6387                   pedantic = yyvsp[-1].itype; ;
6388     break;}
6389 case 535:
6390 #line 2437 "parse.y"
6391 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6392     break;}
6393 case 536:
6394 #line 2439 "parse.y"
6395 { yyval.ttype = finish_member_class_template (yyvsp[-2].ttype, yyvsp[-1].ftype.t); ;
6396     break;}
6397 case 537:
6398 #line 2447 "parse.y"
6399 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6400     break;}
6401 case 538:
6402 #line 2449 "parse.y"
6403 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6404     break;}
6405 case 539:
6406 #line 2451 "parse.y"
6407 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6408                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6409     break;}
6410 case 540:
6411 #line 2454 "parse.y"
6412 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6413                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6414     break;}
6415 case 541:
6416 #line 2457 "parse.y"
6417 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6418     break;}
6419 case 542:
6420 #line 2459 "parse.y"
6421 { yyval.ttype = NULL_TREE; ;
6422     break;}
6423 case 543:
6424 #line 2470 "parse.y"
6425 { tree specs, attrs;
6426                   split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6427                   yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6428                                   build_tree_list (yyvsp[-1].ttype, attrs)); ;
6429     break;}
6430 case 544:
6431 #line 2475 "parse.y"
6432 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6433                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6434     break;}
6435 case 545:
6436 #line 2478 "parse.y"
6437 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6438     break;}
6439 case 546:
6440 #line 2484 "parse.y"
6441 { yyval.ttype = NULL_TREE; ;
6442     break;}
6443 case 548:
6444 #line 2487 "parse.y"
6445 {
6446                   /* In this context, void_type_node encodes
6447                      friends.  They have been recorded elsewhere.  */
6448                   if (yyval.ttype == void_type_node)
6449                     yyval.ttype = yyvsp[0].ttype;
6450                   else
6451                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6452                 ;
6453     break;}
6454 case 549:
6455 #line 2499 "parse.y"
6456 { yyval.ttype = NULL_TREE; ;
6457     break;}
6458 case 551:
6459 #line 2502 "parse.y"
6460 {
6461                   /* In this context, void_type_node encodes
6462                      friends.  They have been recorded elsewhere.  */
6463                   if (yyval.ttype == void_type_node)
6464                     yyval.ttype = yyvsp[0].ttype;
6465                   else
6466                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6467                 ;
6468     break;}
6469 case 556:
6470 #line 2524 "parse.y"
6471 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6472                                      &prefix_attributes);
6473                   yyvsp[-4].ttype = current_declspecs;
6474                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6475                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6476     break;}
6477 case 557:
6478 #line 2530 "parse.y"
6479 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6480                                      &prefix_attributes);
6481                   yyvsp[-4].ttype = current_declspecs;
6482                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6483                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6484     break;}
6485 case 558:
6486 #line 2539 "parse.y"
6487 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6488                                      &prefix_attributes);
6489                   yyvsp[-4].ttype = current_declspecs;
6490                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6491                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6492     break;}
6493 case 559:
6494 #line 2545 "parse.y"
6495 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6496                                      &prefix_attributes);
6497                   yyvsp[-4].ttype = current_declspecs;
6498                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6499                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6500     break;}
6501 case 560:
6502 #line 2551 "parse.y"
6503 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6504                                      &prefix_attributes);
6505                   yyvsp[-4].ttype = current_declspecs;
6506                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6507                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6508     break;}
6509 case 561:
6510 #line 2557 "parse.y"
6511 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6512                                      &prefix_attributes);
6513                   yyvsp[-3].ttype = current_declspecs;
6514                   yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6515                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6516     break;}
6517 case 562:
6518 #line 2566 "parse.y"
6519 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6520                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6521     break;}
6522 case 563:
6523 #line 2569 "parse.y"
6524 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6525                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6526     break;}
6527 case 564:
6528 #line 2575 "parse.y"
6529 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6530                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6531     break;}
6532 case 565:
6533 #line 2578 "parse.y"
6534 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6535                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6536     break;}
6537 case 566:
6538 #line 2581 "parse.y"
6539 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6540                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6541     break;}
6542 case 568:
6543 #line 2592 "parse.y"
6544 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6545     break;}
6546 case 569:
6547 #line 2597 "parse.y"
6548 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE, current_enum_type); ;
6549     break;}
6550 case 570:
6551 #line 2599 "parse.y"
6552 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype, current_enum_type); ;
6553     break;}
6554 case 571:
6555 #line 2605 "parse.y"
6556 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
6557                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6558     break;}
6559 case 572:
6560 #line 2608 "parse.y"
6561 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
6562                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6563     break;}
6564 case 573:
6565 #line 2615 "parse.y"
6566 {
6567                   if (pedantic)
6568                     pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6569                   yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6570                   yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6571                   yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6572                 ;
6573     break;}
6574 case 574:
6575 #line 2626 "parse.y"
6576 { yyval.ttype = NULL_TREE; ;
6577     break;}
6578 case 575:
6579 #line 2628 "parse.y"
6580 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6581     break;}
6582 case 576:
6583 #line 2633 "parse.y"
6584 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); 
6585                   yyval.ftype.new_type_flag = 0; ;
6586     break;}
6587 case 577:
6588 #line 2636 "parse.y"
6589 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
6590                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6591     break;}
6592 case 578:
6593 #line 2645 "parse.y"
6594 { yyval.itype = suspend_momentary (); ;
6595     break;}
6596 case 579:
6597 #line 2650 "parse.y"
6598 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6599     break;}
6600 case 580:
6601 #line 2656 "parse.y"
6602 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6603     break;}
6604 case 581:
6605 #line 2658 "parse.y"
6606 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6607     break;}
6608 case 582:
6609 #line 2660 "parse.y"
6610 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6611     break;}
6612 case 583:
6613 #line 2662 "parse.y"
6614 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6615     break;}
6616 case 584:
6617 #line 2669 "parse.y"
6618 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6619     break;}
6620 case 585:
6621 #line 2671 "parse.y"
6622 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6623     break;}
6624 case 586:
6625 #line 2673 "parse.y"
6626 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6627     break;}
6628 case 587:
6629 #line 2675 "parse.y"
6630 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6631     break;}
6632 case 588:
6633 #line 2677 "parse.y"
6634 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6635                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6636                 ;
6637     break;}
6638 case 590:
6639 #line 2685 "parse.y"
6640 {
6641                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6642                     {
6643                       yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6644                       if (current_class_type
6645                           && TYPE_BEING_DEFINED (current_class_type)
6646                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6647                         {
6648                           /* Remember that this name has been used in the class
6649                              definition, as per [class.scope0] */
6650                           pushdecl_class_level (yyval.ttype);
6651                         }
6652                     }
6653                   else
6654                     yyval.ttype = yyvsp[0].ttype;
6655                 ;
6656     break;}
6657 case 591:
6658 #line 2702 "parse.y"
6659 {
6660                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6661                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6662                   else
6663                     yyval.ttype = yyvsp[0].ttype;
6664                   got_scope = NULL_TREE;
6665                 ;
6666     break;}
6667 case 594:
6668 #line 2715 "parse.y"
6669 { yyval.ttype = yyvsp[0].ttype; ;
6670     break;}
6671 case 595:
6672 #line 2720 "parse.y"
6673 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6674     break;}
6675 case 596:
6676 #line 2725 "parse.y"
6677 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6678     break;}
6679 case 597:
6680 #line 2727 "parse.y"
6681 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6682     break;}
6683 case 598:
6684 #line 2729 "parse.y"
6685 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6686     break;}
6687 case 599:
6688 #line 2731 "parse.y"
6689 { yyval.ttype = yyvsp[-1].ttype; ;
6690     break;}
6691 case 600:
6692 #line 2733 "parse.y"
6693 { push_nested_class (yyvsp[-1].ttype, 3);
6694                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
6695                   TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
6696     break;}
6697 case 602:
6698 #line 2744 "parse.y"
6699 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6700     break;}
6701 case 603:
6702 #line 2746 "parse.y"
6703 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6704     break;}
6705 case 604:
6706 #line 2748 "parse.y"
6707 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6708     break;}
6709 case 605:
6710 #line 2750 "parse.y"
6711 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6712     break;}
6713 case 606:
6714 #line 2752 "parse.y"
6715 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6716                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6717                 ;
6718     break;}
6719 case 608:
6720 #line 2760 "parse.y"
6721 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6722     break;}
6723 case 609:
6724 #line 2762 "parse.y"
6725 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6726     break;}
6727 case 610:
6728 #line 2764 "parse.y"
6729 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6730     break;}
6731 case 611:
6732 #line 2766 "parse.y"
6733 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6734     break;}
6735 case 612:
6736 #line 2768 "parse.y"
6737 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6738                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6739                 ;
6740     break;}
6741 case 614:
6742 #line 2776 "parse.y"
6743 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6744     break;}
6745 case 615:
6746 #line 2778 "parse.y"
6747 { yyval.ttype = yyvsp[-1].ttype; ;
6748     break;}
6749 case 616:
6750 #line 2780 "parse.y"
6751 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6752     break;}
6753 case 617:
6754 #line 2782 "parse.y"
6755 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6756     break;}
6757 case 618:
6758 #line 2784 "parse.y"
6759 { enter_scope_of (yyvsp[0].ttype); ;
6760     break;}
6761 case 619:
6762 #line 2786 "parse.y"
6763 { got_scope = NULL_TREE;
6764                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
6765                   enter_scope_of (yyval.ttype);
6766                 ;
6767     break;}
6768 case 620:
6769 #line 2794 "parse.y"
6770 { got_scope = NULL_TREE;
6771                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6772     break;}
6773 case 621:
6774 #line 2797 "parse.y"
6775 { got_scope = NULL_TREE;
6776                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6777     break;}
6778 case 622:
6779 #line 2803 "parse.y"
6780 { got_scope = NULL_TREE;
6781                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6782     break;}
6783 case 623:
6784 #line 2806 "parse.y"
6785 { got_scope = NULL_TREE;
6786                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6787     break;}
6788 case 625:
6789 #line 2813 "parse.y"
6790 { yyval.ttype = yyvsp[0].ttype; ;
6791     break;}
6792 case 626:
6793 #line 2818 "parse.y"
6794 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
6795     break;}
6796 case 627:
6797 #line 2820 "parse.y"
6798 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
6799     break;}
6800 case 628:
6801 #line 2822 "parse.y"
6802 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6803     break;}
6804 case 633:
6805 #line 2833 "parse.y"
6806 { yyval.ttype = yyvsp[0].ttype; ;
6807     break;}
6808 case 634:
6809 #line 2835 "parse.y"
6810 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6811     break;}
6812 case 635:
6813 #line 2842 "parse.y"
6814 {
6815                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
6816                     {
6817                       yyval.ttype = lastiddecl;
6818                       /* Remember that this name has been used in the class
6819                          definition, as per [class.scope0] */
6820                       if (current_class_type
6821                           && TYPE_BEING_DEFINED (current_class_type)
6822                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
6823                         pushdecl_class_level (yyval.ttype);
6824                     }
6825                   got_scope = yyval.ttype = TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype));
6826                 ;
6827     break;}
6828 case 636:
6829 #line 2856 "parse.y"
6830 {
6831                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
6832                     yyval.ttype = lastiddecl;
6833                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
6834                 ;
6835     break;}
6836 case 637:
6837 #line 2862 "parse.y"
6838 {
6839                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
6840                     yyval.ttype = lastiddecl;
6841                   got_scope = yyval.ttype;
6842                 ;
6843     break;}
6844 case 638:
6845 #line 2868 "parse.y"
6846 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
6847     break;}
6848 case 640:
6849 #line 2884 "parse.y"
6850 { yyval.ttype = yyvsp[0].ttype; ;
6851     break;}
6852 case 641:
6853 #line 2889 "parse.y"
6854 {
6855                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
6856                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
6857                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6858                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6859                   else
6860                     {
6861                       yyval.ttype = yyvsp[0].ttype;
6862                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
6863                         yyval.ttype = TREE_TYPE (yyval.ttype);
6864                     }
6865                 ;
6866     break;}
6867 case 642:
6868 #line 2902 "parse.y"
6869 { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
6870     break;}
6871 case 643:
6872 #line 2904 "parse.y"
6873 { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6874     break;}
6875 case 644:
6876 #line 2906 "parse.y"
6877 { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6878     break;}
6879 case 645:
6880 #line 2911 "parse.y"
6881 {
6882                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6883                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6884                 ;
6885     break;}
6886 case 646:
6887 #line 2916 "parse.y"
6888 {
6889                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
6890                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
6891                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6892                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6893                   else
6894                     {
6895                       yyval.ttype = yyvsp[0].ttype;
6896                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
6897                         yyval.ttype = TREE_TYPE (yyval.ttype);
6898                     }
6899                 ;
6900     break;}
6901 case 647:
6902 #line 2929 "parse.y"
6903 { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6904     break;}
6905 case 648:
6906 #line 2931 "parse.y"
6907 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6908     break;}
6909 case 649:
6910 #line 2936 "parse.y"
6911 {
6912                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
6913                     yyvsp[-1].ttype = lastiddecl;
6914
6915                   /* Retrieve the type for the identifier, which might involve
6916                      some computation. */
6917                   got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));
6918
6919                   if (yyval.ttype == error_mark_node)
6920                     cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
6921                 ;
6922     break;}
6923 case 650:
6924 #line 2948 "parse.y"
6925 {
6926                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
6927                     yyval.ttype = lastiddecl;
6928                   got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
6929                 ;
6930     break;}
6931 case 651:
6932 #line 2954 "parse.y"
6933 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
6934     break;}
6935 case 654:
6936 #line 2958 "parse.y"
6937 {
6938                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
6939                     yyval.ttype = lastiddecl;
6940                   got_scope = yyval.ttype;
6941                 ;
6942     break;}
6943 case 655:
6944 #line 2967 "parse.y"
6945 { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6946     break;}
6947 case 656:
6948 #line 2972 "parse.y"
6949 {
6950                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6951                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6952                   else
6953                     yyval.ttype = yyvsp[0].ttype;
6954                   got_scope = NULL_TREE;
6955                 ;
6956     break;}
6957 case 658:
6958 #line 2981 "parse.y"
6959 { yyval.ttype = yyvsp[0].ttype; ;
6960     break;}
6961 case 659:
6962 #line 2986 "parse.y"
6963 { got_scope = NULL_TREE; ;
6964     break;}
6965 case 660:
6966 #line 2988 "parse.y"
6967 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
6968     break;}
6969 case 661:
6970 #line 2995 "parse.y"
6971 { got_scope = void_type_node; ;
6972     break;}
6973 case 662:
6974 #line 3001 "parse.y"
6975 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6976     break;}
6977 case 663:
6978 #line 3003 "parse.y"
6979 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
6980     break;}
6981 case 664:
6982 #line 3005 "parse.y"
6983 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6984     break;}
6985 case 665:
6986 #line 3007 "parse.y"
6987 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
6988     break;}
6989 case 666:
6990 #line 3009 "parse.y"
6991 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
6992                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
6993                 ;
6994     break;}
6995 case 667:
6996 #line 3013 "parse.y"
6997 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6998                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6999                 ;
7000     break;}
7001 case 669:
7002 #line 3022 "parse.y"
7003 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7004     break;}
7005 case 670:
7006 #line 3024 "parse.y"
7007 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7008     break;}
7009 case 671:
7010 #line 3030 "parse.y"
7011 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7012     break;}
7013 case 672:
7014 #line 3032 "parse.y"
7015 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7016     break;}
7017 case 673:
7018 #line 3034 "parse.y"
7019 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7020     break;}
7021 case 674:
7022 #line 3036 "parse.y"
7023 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7024     break;}
7025 case 675:
7026 #line 3038 "parse.y"
7027 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7028     break;}
7029 case 676:
7030 #line 3040 "parse.y"
7031 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7032     break;}
7033 case 677:
7034 #line 3042 "parse.y"
7035 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7036     break;}
7037 case 678:
7038 #line 3044 "parse.y"
7039 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7040     break;}
7041 case 679:
7042 #line 3046 "parse.y"
7043 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7044                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7045                 ;
7046     break;}
7047 case 680:
7048 #line 3050 "parse.y"
7049 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7050                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7051                 ;
7052     break;}
7053 case 682:
7054 #line 3059 "parse.y"
7055 { yyval.ttype = yyvsp[-1].ttype; ;
7056     break;}
7057 case 684:
7058 #line 3063 "parse.y"
7059 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7060     break;}
7061 case 685:
7062 #line 3065 "parse.y"
7063 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7064     break;}
7065 case 686:
7066 #line 3067 "parse.y"
7067 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7068     break;}
7069 case 687:
7070 #line 3069 "parse.y"
7071 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7072     break;}
7073 case 688:
7074 #line 3071 "parse.y"
7075 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7076     break;}
7077 case 689:
7078 #line 3073 "parse.y"
7079 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7080     break;}
7081 case 690:
7082 #line 3075 "parse.y"
7083 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7084     break;}
7085 case 691:
7086 #line 3077 "parse.y"
7087 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7088     break;}
7089 case 692:
7090 #line 3079 "parse.y"
7091 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7092     break;}
7093 case 699:
7094 #line 3102 "parse.y"
7095 { if (pedantic)
7096                     pedwarn ("ANSI C++ forbids label declarations"); ;
7097     break;}
7098 case 702:
7099 #line 3113 "parse.y"
7100 { tree link;
7101                   for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7102                     {
7103                       tree label = shadow_label (TREE_VALUE (link));
7104                       C_DECLARED_LABEL_FLAG (label) = 1;
7105                       declare_nonlocal_label (label);
7106                     }
7107                 ;
7108     break;}
7109 case 703:
7110 #line 3127 "parse.y"
7111 {;
7112     break;}
7113 case 705:
7114 #line 3133 "parse.y"
7115 { yyval.ttype = begin_compound_stmt (0); ;
7116     break;}
7117 case 706:
7118 #line 3135 "parse.y"
7119 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7120     break;}
7121 case 707:
7122 #line 3140 "parse.y"
7123 {
7124                   yyval.ttype = begin_if_stmt ();
7125                   cond_stmt_keyword = "if";
7126                 ;
7127     break;}
7128 case 708:
7129 #line 3145 "parse.y"
7130 { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7131     break;}
7132 case 709:
7133 #line 3147 "parse.y"
7134 { yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
7135     break;}
7136 case 711:
7137 #line 3152 "parse.y"
7138 { yyval.ttype = begin_compound_stmt (0); ;
7139     break;}
7140 case 712:
7141 #line 3154 "parse.y"
7142 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7143     break;}
7144 case 713:
7145 #line 3159 "parse.y"
7146 {;
7147     break;}
7148 case 715:
7149 #line 3165 "parse.y"
7150 { finish_stmt (); ;
7151     break;}
7152 case 716:
7153 #line 3167 "parse.y"
7154 { finish_expr_stmt (yyvsp[-1].ttype); ;
7155     break;}
7156 case 717:
7157 #line 3169 "parse.y"
7158 { begin_else_clause (); ;
7159     break;}
7160 case 718:
7161 #line 3171 "parse.y"
7162
7163                   finish_else_clause (yyvsp[-3].ttype); 
7164                   finish_if_stmt ();
7165                 ;
7166     break;}
7167 case 719:
7168 #line 3176 "parse.y"
7169 { finish_if_stmt (); ;
7170     break;}
7171 case 720:
7172 #line 3178 "parse.y"
7173 {
7174                   yyval.ttype = begin_while_stmt ();
7175                   cond_stmt_keyword = "while";
7176                 ;
7177     break;}
7178 case 721:
7179 #line 3183 "parse.y"
7180 { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7181     break;}
7182 case 722:
7183 #line 3185 "parse.y"
7184 { finish_while_stmt (yyvsp[-3].ttype); ;
7185     break;}
7186 case 723:
7187 #line 3187 "parse.y"
7188 { yyval.ttype = begin_do_stmt (); ;
7189     break;}
7190 case 724:
7191 #line 3189 "parse.y"
7192 {
7193                   finish_do_body (yyvsp[-2].ttype);
7194                   cond_stmt_keyword = "do";
7195                 ;
7196     break;}
7197 case 725:
7198 #line 3194 "parse.y"
7199 { finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7200     break;}
7201 case 726:
7202 #line 3196 "parse.y"
7203 { yyval.ttype = begin_for_stmt (); ;
7204     break;}
7205 case 727:
7206 #line 3198 "parse.y"
7207 { finish_for_init_stmt (yyvsp[-2].ttype); ;
7208     break;}
7209 case 728:
7210 #line 3200 "parse.y"
7211 { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7212     break;}
7213 case 729:
7214 #line 3202 "parse.y"
7215 { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
7216     break;}
7217 case 730:
7218 #line 3204 "parse.y"
7219 { finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
7220     break;}
7221 case 731:
7222 #line 3206 "parse.y"
7223 { begin_switch_stmt (); ;
7224     break;}
7225 case 732:
7226 #line 3208 "parse.y"
7227 { yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
7228     break;}
7229 case 733:
7230 #line 3210 "parse.y"
7231 { finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7232     break;}
7233 case 734:
7234 #line 3212 "parse.y"
7235 { finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
7236     break;}
7237 case 736:
7238 #line 3215 "parse.y"
7239 { finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7240     break;}
7241 case 738:
7242 #line 3218 "parse.y"
7243 { finish_case_label (NULL_TREE, NULL_TREE); ;
7244     break;}
7245 case 740:
7246 #line 3221 "parse.y"
7247 { finish_break_stmt (); ;
7248     break;}
7249 case 741:
7250 #line 3223 "parse.y"
7251 { finish_continue_stmt (); ;
7252     break;}
7253 case 742:
7254 #line 3225 "parse.y"
7255 { finish_return_stmt (NULL_TREE); ;
7256     break;}
7257 case 743:
7258 #line 3227 "parse.y"
7259 { finish_return_stmt (yyvsp[-1].ttype); ;
7260     break;}
7261 case 744:
7262 #line 3229 "parse.y"
7263
7264                   finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7265                                    NULL_TREE); 
7266                 ;
7267     break;}
7268 case 745:
7269 #line 3235 "parse.y"
7270
7271                   finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7272                                    NULL_TREE); 
7273                 ;
7274     break;}
7275 case 746:
7276 #line 3241 "parse.y"
7277 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
7278     break;}
7279 case 747:
7280 #line 3245 "parse.y"
7281 { finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
7282     break;}
7283 case 748:
7284 #line 3247 "parse.y"
7285
7286                   if (pedantic)
7287                     pedwarn ("ANSI C++ forbids computed gotos");
7288                   finish_goto_stmt (yyvsp[-1].ttype);
7289                 ;
7290     break;}
7291 case 749:
7292 #line 3253 "parse.y"
7293 { finish_goto_stmt (yyvsp[-1].ttype); ;
7294     break;}
7295 case 750:
7296 #line 3255 "parse.y"
7297 { finish_stmt (); ;
7298     break;}
7299 case 751:
7300 #line 3257 "parse.y"
7301 { error ("label must be followed by statement");
7302                   yyungetc ('}', 0);
7303                   finish_stmt (); ;
7304     break;}
7305 case 752:
7306 #line 3261 "parse.y"
7307 { finish_stmt (); ;
7308     break;}
7309 case 755:
7310 #line 3265 "parse.y"
7311 { do_local_using_decl (yyvsp[0].ttype); ;
7312     break;}
7313 case 757:
7314 #line 3271 "parse.y"
7315 {
7316                   if (! current_function_parms_stored)
7317                     store_parm_decls ();
7318                   expand_start_early_try_stmts ();
7319                 ;
7320     break;}
7321 case 758:
7322 #line 3277 "parse.y"
7323
7324                   expand_start_all_catch (); 
7325                 ;
7326     break;}
7327 case 759:
7328 #line 3281 "parse.y"
7329 {
7330                   int nested = (hack_decl_function_context
7331                                 (current_function_decl) != NULL_TREE);
7332                   expand_end_all_catch ();
7333                   finish_function (lineno, (int)yyvsp[-3].itype, nested);
7334                 ;
7335     break;}
7336 case 760:
7337 #line 3291 "parse.y"
7338 { yyval.ttype = begin_try_block (); ;
7339     break;}
7340 case 761:
7341 #line 3293 "parse.y"
7342 { finish_try_block (yyvsp[-1].ttype); ;
7343     break;}
7344 case 762:
7345 #line 3295 "parse.y"
7346 { finish_handler_sequence (yyvsp[-3].ttype); ;
7347     break;}
7348 case 765:
7349 #line 3305 "parse.y"
7350 { yyval.ttype = begin_handler(); ;
7351     break;}
7352 case 766:
7353 #line 3307 "parse.y"
7354 { finish_handler_parms (yyvsp[-1].ttype); ;
7355     break;}
7356 case 767:
7357 #line 3309 "parse.y"
7358 { finish_handler (yyvsp[-3].ttype); ;
7359     break;}
7360 case 770:
7361 #line 3319 "parse.y"
7362 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7363     break;}
7364 case 771:
7365 #line 3335 "parse.y"
7366 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7367                   expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7368                                             TREE_VALUE (yyvsp[-1].ftype.t)); ;
7369     break;}
7370 case 772:
7371 #line 3342 "parse.y"
7372 { tree label;
7373                 do_label:
7374                   label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7375                   if (label && ! minimal_parse_mode)
7376                     expand_label (label);
7377                 ;
7378     break;}
7379 case 773:
7380 #line 3349 "parse.y"
7381 { goto do_label; ;
7382     break;}
7383 case 774:
7384 #line 3351 "parse.y"
7385 { goto do_label; ;
7386     break;}
7387 case 775:
7388 #line 3353 "parse.y"
7389 { goto do_label; ;
7390     break;}
7391 case 776:
7392 #line 3358 "parse.y"
7393 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
7394     break;}
7395 case 778:
7396 #line 3361 "parse.y"
7397 { if (pedantic)
7398                     pedwarn ("ANSI C++ forbids compound statements inside for initializations");
7399                 ;
7400     break;}
7401 case 779:
7402 #line 3370 "parse.y"
7403 { emit_line_note (input_filename, lineno);
7404                   yyval.ttype = NULL_TREE; ;
7405     break;}
7406 case 780:
7407 #line 3373 "parse.y"
7408 { emit_line_note (input_filename, lineno); ;
7409     break;}
7410 case 781:
7411 #line 3378 "parse.y"
7412 { yyval.ttype = NULL_TREE; ;
7413     break;}
7414 case 783:
7415 #line 3381 "parse.y"
7416 { yyval.ttype = NULL_TREE; ;
7417     break;}
7418 case 784:
7419 #line 3388 "parse.y"
7420 { yyval.ttype = NULL_TREE; ;
7421     break;}
7422 case 787:
7423 #line 3395 "parse.y"
7424 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
7425     break;}
7426 case 788:
7427 #line 3400 "parse.y"
7428 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
7429     break;}
7430 case 789:
7431 #line 3405 "parse.y"
7432 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
7433     break;}
7434 case 790:
7435 #line 3407 "parse.y"
7436 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
7437     break;}
7438 case 791:
7439 #line 3418 "parse.y"
7440 {
7441                   yyval.ttype = empty_parms();
7442                 ;
7443     break;}
7444 case 793:
7445 #line 3423 "parse.y"
7446 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
7447                   check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
7448     break;}
7449 case 794:
7450 #line 3431 "parse.y"
7451 { yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
7452     break;}
7453 case 795:
7454 #line 3433 "parse.y"
7455 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7456     break;}
7457 case 796:
7458 #line 3436 "parse.y"
7459 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7460     break;}
7461 case 797:
7462 #line 3438 "parse.y"
7463 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7464                                                          yyvsp[-1].ftype.t), 1); ;
7465     break;}
7466 case 798:
7467 #line 3441 "parse.y"
7468 { yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
7469     break;}
7470 case 799:
7471 #line 3443 "parse.y"
7472 {
7473                   /* This helps us recover from really nasty
7474                      parse errors, for example, a missing right
7475                      parenthesis.  */
7476                   yyerror ("possibly missing ')'");
7477                   yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
7478                   yyungetc (':', 0);
7479                   yychar = ')';
7480                 ;
7481     break;}
7482 case 800:
7483 #line 3453 "parse.y"
7484 {
7485                   /* This helps us recover from really nasty
7486                      parse errors, for example, a missing right
7487                      parenthesis.  */
7488                   yyerror ("possibly missing ')'");
7489                   yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7490                                                          yyvsp[-1].ftype.t), 0); 
7491                   yyungetc (':', 0);
7492                   yychar = ')';
7493                 ;
7494     break;}
7495 case 801:
7496 #line 3468 "parse.y"
7497 { maybe_snarf_defarg (); ;
7498     break;}
7499 case 802:
7500 #line 3470 "parse.y"
7501 { yyval.ttype = yyvsp[0].ttype; ;
7502     break;}
7503 case 805:
7504 #line 3481 "parse.y"
7505 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7506                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
7507     break;}
7508 case 806:
7509 #line 3484 "parse.y"
7510 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7511                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
7512     break;}
7513 case 807:
7514 #line 3487 "parse.y"
7515 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7516                   yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
7517     break;}
7518 case 808:
7519 #line 3490 "parse.y"
7520 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
7521     break;}
7522 case 809:
7523 #line 3492 "parse.y"
7524 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
7525     break;}
7526 case 811:
7527 #line 3498 "parse.y"
7528 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7529                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
7530     break;}
7531 case 812:
7532 #line 3508 "parse.y"
7533 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7534                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
7535                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
7536     break;}
7537 case 813:
7538 #line 3512 "parse.y"
7539 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
7540                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7541     break;}
7542 case 814:
7543 #line 3515 "parse.y"
7544 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
7545                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7546     break;}
7547 case 815:
7548 #line 3518 "parse.y"
7549 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7550                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
7551                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7552     break;}
7553 case 816:
7554 #line 3522 "parse.y"
7555 { tree specs = strip_attrs (yyvsp[0].ftype.t);
7556                   yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
7557                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7558     break;}
7559 case 817:
7560 #line 3526 "parse.y"
7561 { tree specs = strip_attrs (yyvsp[-1].ttype);
7562                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
7563                   yyval.ftype.new_type_flag = 0; ;
7564     break;}
7565 case 818:
7566 #line 3533 "parse.y"
7567 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
7568                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
7569     break;}
7570 case 819:
7571 #line 3536 "parse.y"
7572 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
7573                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
7574     break;}
7575 case 822:
7576 #line 3547 "parse.y"
7577 { see_typename (); ;
7578     break;}
7579 case 823:
7580 #line 3552 "parse.y"
7581 {
7582                   error ("type specifier omitted for parameter");
7583                   yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
7584                 ;
7585     break;}
7586 case 824:
7587 #line 3557 "parse.y"
7588 {
7589                   error ("type specifier omitted for parameter");
7590                   if (TREE_CODE (yyval.ttype) == SCOPE_REF
7591                       && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
7592                           || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
7593                     cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
7594                   yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
7595                 ;
7596     break;}
7597 case 825:
7598 #line 3569 "parse.y"
7599 { yyval.ttype = NULL_TREE; ;
7600     break;}
7601 case 826:
7602 #line 3571 "parse.y"
7603 { yyval.ttype = yyvsp[-1].ttype; ;
7604     break;}
7605 case 827:
7606 #line 3573 "parse.y"
7607 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
7608     break;}
7609 case 828:
7610 #line 3578 "parse.y"
7611 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
7612     break;}
7613 case 830:
7614 #line 3584 "parse.y"
7615 {
7616                   TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
7617                   yyval.ttype = yyvsp[0].ttype;
7618                 ;
7619     break;}
7620 case 831:
7621 #line 3592 "parse.y"
7622 { yyval.ttype = NULL_TREE; ;
7623     break;}
7624 case 832:
7625 #line 3594 "parse.y"
7626 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7627     break;}
7628 case 833:
7629 #line 3596 "parse.y"
7630 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7631     break;}
7632 case 834:
7633 #line 3598 "parse.y"
7634 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7635                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7636                 ;
7637     break;}
7638 case 835:
7639 #line 3605 "parse.y"
7640 { got_scope = NULL_TREE; ;
7641     break;}
7642 case 836:
7643 #line 3610 "parse.y"
7644 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
7645     break;}
7646 case 837:
7647 #line 3612 "parse.y"
7648 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
7649     break;}
7650 case 838:
7651 #line 3614 "parse.y"
7652 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
7653     break;}
7654 case 839:
7655 #line 3616 "parse.y"
7656 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
7657     break;}
7658 case 840:
7659 #line 3618 "parse.y"
7660 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
7661     break;}
7662 case 841:
7663 #line 3620 "parse.y"
7664 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
7665     break;}
7666 case 842:
7667 #line 3622 "parse.y"
7668 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
7669     break;}
7670 case 843:
7671 #line 3624 "parse.y"
7672 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
7673     break;}
7674 case 844:
7675 #line 3626 "parse.y"
7676 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
7677     break;}
7678 case 845:
7679 #line 3628 "parse.y"
7680 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
7681     break;}
7682 case 846:
7683 #line 3630 "parse.y"
7684 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7685     break;}
7686 case 847:
7687 #line 3632 "parse.y"
7688 { yyval.ttype = ansi_opname[LT_EXPR]; ;
7689     break;}
7690 case 848:
7691 #line 3634 "parse.y"
7692 { yyval.ttype = ansi_opname[GT_EXPR]; ;
7693     break;}
7694 case 849:
7695 #line 3636 "parse.y"
7696 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7697     break;}
7698 case 850:
7699 #line 3638 "parse.y"
7700 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
7701     break;}
7702 case 851:
7703 #line 3640 "parse.y"
7704 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
7705     break;}
7706 case 852:
7707 #line 3642 "parse.y"
7708 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7709     break;}
7710 case 853:
7711 #line 3644 "parse.y"
7712 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7713     break;}
7714 case 854:
7715 #line 3646 "parse.y"
7716 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
7717     break;}
7718 case 855:
7719 #line 3648 "parse.y"
7720 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
7721     break;}
7722 case 856:
7723 #line 3650 "parse.y"
7724 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
7725     break;}
7726 case 857:
7727 #line 3652 "parse.y"
7728 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
7729     break;}
7730 case 858:
7731 #line 3654 "parse.y"
7732 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
7733     break;}
7734 case 859:
7735 #line 3656 "parse.y"
7736 { yyval.ttype = ansi_opname[COND_EXPR]; ;
7737     break;}
7738 case 860:
7739 #line 3658 "parse.y"
7740 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7741     break;}
7742 case 861:
7743 #line 3660 "parse.y"
7744 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
7745     break;}
7746 case 862:
7747 #line 3662 "parse.y"
7748 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
7749     break;}
7750 case 863:
7751 #line 3664 "parse.y"
7752 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
7753     break;}
7754 case 864:
7755 #line 3666 "parse.y"
7756 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
7757     break;}
7758 case 865:
7759 #line 3668 "parse.y"
7760 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
7761     break;}
7762 case 866:
7763 #line 3670 "parse.y"
7764 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
7765     break;}
7766 case 867:
7767 #line 3672 "parse.y"
7768 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
7769     break;}
7770 case 868:
7771 #line 3674 "parse.y"
7772 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
7773     break;}
7774 case 869:
7775 #line 3677 "parse.y"
7776 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7777     break;}
7778 case 870:
7779 #line 3679 "parse.y"
7780 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
7781     break;}
7782 }
7783    /* the action file gets copied in in place of this dollarsign */
7784 #line 498 "/usr/lib/bison.simple"
7785 \f
7786   yyvsp -= yylen;
7787   yyssp -= yylen;
7788 #ifdef YYLSP_NEEDED
7789   yylsp -= yylen;
7790 #endif
7791
7792 #if YYDEBUG != 0
7793   if (yydebug)
7794     {
7795       short *ssp1 = yyss - 1;
7796       fprintf (stderr, "state stack now");
7797       while (ssp1 != yyssp)
7798         fprintf (stderr, " %d", *++ssp1);
7799       fprintf (stderr, "\n");
7800     }
7801 #endif
7802
7803   *++yyvsp = yyval;
7804
7805 #ifdef YYLSP_NEEDED
7806   yylsp++;
7807   if (yylen == 0)
7808     {
7809       yylsp->first_line = yylloc.first_line;
7810       yylsp->first_column = yylloc.first_column;
7811       yylsp->last_line = (yylsp-1)->last_line;
7812       yylsp->last_column = (yylsp-1)->last_column;
7813       yylsp->text = 0;
7814     }
7815   else
7816     {
7817       yylsp->last_line = (yylsp+yylen-1)->last_line;
7818       yylsp->last_column = (yylsp+yylen-1)->last_column;
7819     }
7820 #endif
7821
7822   /* Now "shift" the result of the reduction.
7823      Determine what state that goes to,
7824      based on the state we popped back to
7825      and the rule number reduced by.  */
7826
7827   yyn = yyr1[yyn];
7828
7829   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
7830   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7831     yystate = yytable[yystate];
7832   else
7833     yystate = yydefgoto[yyn - YYNTBASE];
7834
7835   goto yynewstate;
7836
7837 yyerrlab:   /* here on detecting error */
7838
7839   if (! yyerrstatus)
7840     /* If not already recovering from an error, report this error.  */
7841     {
7842       ++yynerrs;
7843
7844 #ifdef YYERROR_VERBOSE
7845       yyn = yypact[yystate];
7846
7847       if (yyn > YYFLAG && yyn < YYLAST)
7848         {
7849           int size = 0;
7850           char *msg;
7851           int x, count;
7852
7853           count = 0;
7854           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
7855           for (x = (yyn < 0 ? -yyn : 0);
7856                x < (sizeof(yytname) / sizeof(char *)); x++)
7857             if (yycheck[x + yyn] == x)
7858               size += strlen(yytname[x]) + 15, count++;
7859           msg = (char *) malloc(size + 15);
7860           if (msg != 0)
7861             {
7862               strcpy(msg, "parse error");
7863
7864               if (count < 5)
7865                 {
7866                   count = 0;
7867                   for (x = (yyn < 0 ? -yyn : 0);
7868                        x < (sizeof(yytname) / sizeof(char *)); x++)
7869                     if (yycheck[x + yyn] == x)
7870                       {
7871                         strcat(msg, count == 0 ? ", expecting `" : " or `");
7872                         strcat(msg, yytname[x]);
7873                         strcat(msg, "'");
7874                         count++;
7875                       }
7876                 }
7877               yyerror(msg);
7878               free(msg);
7879             }
7880           else
7881             yyerror ("parse error; also virtual memory exceeded");
7882         }
7883       else
7884 #endif /* YYERROR_VERBOSE */
7885         yyerror("parse error");
7886     }
7887
7888   goto yyerrlab1;
7889 yyerrlab1:   /* here on error raised explicitly by an action */
7890
7891   if (yyerrstatus == 3)
7892     {
7893       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
7894
7895       /* return failure if at end of input */
7896       if (yychar == YYEOF)
7897         YYABORT;
7898
7899 #if YYDEBUG != 0
7900       if (yydebug)
7901         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
7902 #endif
7903
7904       yychar = YYEMPTY;
7905     }
7906
7907   /* Else will try to reuse lookahead token
7908      after shifting the error token.  */
7909
7910   yyerrstatus = 3;              /* Each real token shifted decrements this */
7911
7912   goto yyerrhandle;
7913
7914 yyerrdefault:  /* current state does not do anything special for the error token. */
7915
7916 #if 0
7917   /* This is wrong; only states that explicitly want error tokens
7918      should shift them.  */
7919   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
7920   if (yyn) goto yydefault;
7921 #endif
7922
7923 yyerrpop:   /* pop the current state because it cannot handle the error token */
7924
7925   if (yyssp == yyss) YYABORT;
7926   yyvsp--;
7927   yystate = *--yyssp;
7928 #ifdef YYLSP_NEEDED
7929   yylsp--;
7930 #endif
7931
7932 #if YYDEBUG != 0
7933   if (yydebug)
7934     {
7935       short *ssp1 = yyss - 1;
7936       fprintf (stderr, "Error: state stack now");
7937       while (ssp1 != yyssp)
7938         fprintf (stderr, " %d", *++ssp1);
7939       fprintf (stderr, "\n");
7940     }
7941 #endif
7942
7943 yyerrhandle:
7944
7945   yyn = yypact[yystate];
7946   if (yyn == YYFLAG)
7947     goto yyerrdefault;
7948
7949   yyn += YYTERROR;
7950   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
7951     goto yyerrdefault;
7952
7953   yyn = yytable[yyn];
7954   if (yyn < 0)
7955     {
7956       if (yyn == YYFLAG)
7957         goto yyerrpop;
7958       yyn = -yyn;
7959       goto yyreduce;
7960     }
7961   else if (yyn == 0)
7962     goto yyerrpop;
7963
7964   if (yyn == YYFINAL)
7965     YYACCEPT;
7966
7967 #if YYDEBUG != 0
7968   if (yydebug)
7969     fprintf(stderr, "Shifting error token, ");
7970 #endif
7971
7972   *++yyvsp = yylval;
7973 #ifdef YYLSP_NEEDED
7974   *++yylsp = yylloc;
7975 #endif
7976
7977   yystate = yyn;
7978   goto yynewstate;
7979 }
7980 #line 3682 "parse.y"
7981
7982
7983 #ifdef SPEW_DEBUG
7984 const char *
7985 debug_yytranslate (value)
7986     int value;
7987 {
7988   return yytname[YYTRANSLATE (value)];
7989 }
7990
7991 #endif