f5285b3a885558fe35a01634ac68c2bb1c88d828
[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_KEYWORD  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 const char *cond_stmt_keyword;
130
131 static tree empty_parms PROTO((void));
132 static int parse_decl PROTO((tree, tree, tree, int, tree *));
133
134 /* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
135 int have_extern_spec;
136 int used_extern_spec;
137
138 /* Cons up an empty parameter list.  */
139 #ifdef __GNUC__
140 __inline
141 #endif
142 static tree
143 empty_parms ()
144 {
145   tree parms;
146
147   if (strict_prototype
148       || current_class_type != NULL)
149     parms = void_list_node;
150   else
151     parms = NULL_TREE;
152   return parms;
153 }
154
155
156 #line 93 "parse.y"
157 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
158 #line 287 "parse.y"
159
160 /* List of types and structure classes of the current declaration.  */
161 static tree current_declspecs;
162
163 /* List of prefix attributes in effect.
164    Prefix attributes are parsed by the reserved_declspecs and declmods
165    rules.  They create a list that contains *both* declspecs and attrs.  */
166 /* ??? It is not clear yet that all cases where an attribute can now appear in
167    a declspec list have been updated.  */
168 static tree prefix_attributes;
169
170 /* When defining an aggregate, this is the kind of the most recent one
171    being defined.  (For example, this might be class_type_node.)  */
172 static tree current_aggr;
173
174 /* When defining an enumeration, this is the type of the enumeration.  */
175 static tree current_enum_type;
176
177 /* Tell yyparse how to print a token's value, if yydebug is set.  */
178
179 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
180 extern void yyprint                     PROTO((FILE *, int, YYSTYPE));
181 extern tree combine_strings             PROTO((tree));
182
183 static int
184 parse_decl(declarator, specs_attrs, attributes, initialized, decl)
185   tree declarator;
186   tree specs_attrs;
187   tree attributes;
188   int initialized;
189   tree* decl;
190 {
191   int  sm;
192
193   split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
194   if (current_declspecs
195       && TREE_CODE (current_declspecs) != TREE_LIST)
196     current_declspecs = build_decl_list (NULL_TREE, current_declspecs);
197   if (have_extern_spec && !used_extern_spec)
198     {
199       current_declspecs = decl_tree_cons (NULL_TREE, 
200                                           get_identifier ("extern"), 
201                                           current_declspecs);
202       used_extern_spec = 1;
203     }
204   sm = suspend_momentary ();
205   *decl = start_decl (declarator, current_declspecs, initialized,
206                       attributes, prefix_attributes);
207   return sm;
208 }
209 #include <stdio.h>
210
211 #ifndef __cplusplus
212 #ifndef __STDC__
213 #define const
214 #endif
215 #endif
216
217
218
219 #define YYFINAL         1668
220 #define YYFLAG          -32768
221 #define YYNTBASE        112
222
223 #define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 400)
224
225 static const char yytranslate[] = {     0,
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,     2,     2,     2,     2,     2,     2,     2,     2,
229      2,     2,   110,     2,     2,     2,    82,    70,     2,    93,
230    108,    80,    78,    59,    79,    92,    81,     2,     2,     2,
231      2,     2,     2,     2,     2,     2,     2,    62,    60,    74,
232     64,    75,    65,     2,     2,     2,     2,     2,     2,     2,
233      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
234      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
235     94,     2,   111,    69,     2,     2,     2,     2,     2,     2,
236      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
237      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
238      2,     2,    58,    68,   109,    88,     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,     2,     2,     2,     2,     2,
251      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
252      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
253     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
254     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
255     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
256     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
257     56,    57,    61,    63,    66,    67,    71,    72,    73,    76,
258     77,    83,    84,    85,    86,    87,    89,    90,    91,    95,
259     96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
260    106,   107
261 };
262
263 #if YYDEBUG != 0
264 static const short yyprhs[] = {     0,
265      0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
266     17,    19,    20,    23,    26,    28,    30,    36,    41,    47,
267     52,    53,    60,    61,    67,    69,    72,    74,    77,    78,
268     85,    88,    92,    96,   100,   104,   109,   110,   116,   119,
269    123,   125,   127,   130,   133,   135,   138,   139,   145,   149,
270    151,   155,   157,   158,   161,   164,   168,   170,   174,   176,
271    180,   182,   186,   189,   192,   195,   197,   199,   205,   210,
272    213,   216,   220,   224,   227,   230,   234,   238,   241,   244,
273    247,   250,   253,   255,   257,   259,   260,   262,   265,   266,
274    268,   273,   277,   281,   282,   291,   297,   298,   308,   315,
275    316,   325,   331,   332,   342,   349,   352,   355,   357,   360,
276    362,   369,   374,   381,   386,   389,   391,   394,   397,   399,
277    402,   404,   407,   410,   415,   418,   422,   423,   424,   426,
278    430,   433,   437,   439,   444,   447,   452,   455,   460,   463,
279    465,   467,   469,   471,   473,   475,   477,   479,   481,   483,
280    485,   486,   493,   494,   501,   502,   508,   509,   515,   516,
281    524,   525,   533,   534,   541,   542,   549,   550,   551,   557,
282    563,   565,   567,   573,   579,   580,   582,   584,   585,   587,
283    589,   593,   595,   597,   599,   601,   603,   605,   607,   609,
284    611,   613,   615,   619,   621,   625,   626,   628,   630,   631,
285    639,   641,   643,   647,   652,   656,   657,   661,   663,   667,
286    671,   675,   679,   681,   683,   685,   688,   691,   694,   697,
287    700,   703,   706,   711,   714,   719,   722,   726,   730,   735,
288    741,   748,   755,   763,   766,   771,   777,   780,   783,   785,
289    786,   791,   796,   800,   802,   806,   809,   813,   818,   820,
290    823,   829,   831,   835,   839,   843,   847,   851,   855,   859,
291    863,   867,   871,   875,   879,   883,   887,   891,   895,   899,
292    903,   907,   913,   917,   921,   923,   926,   930,   934,   936,
293    938,   940,   942,   944,   945,   951,   957,   963,   969,   975,
294    977,   979,   981,   983,   986,   988,   991,   994,   998,  1003,
295   1008,  1010,  1012,  1014,  1018,  1020,  1022,  1024,  1026,  1030,
296   1034,  1038,  1039,  1044,  1049,  1052,  1057,  1060,  1065,  1068,
297   1071,  1073,  1078,  1080,  1088,  1096,  1104,  1112,  1117,  1122,
298   1125,  1128,  1131,  1133,  1138,  1141,  1144,  1150,  1154,  1157,
299   1160,  1166,  1170,  1176,  1180,  1185,  1192,  1195,  1197,  1200,
300   1202,  1205,  1207,  1209,  1211,  1214,  1215,  1218,  1221,  1225,
301   1229,  1233,  1236,  1239,  1242,  1244,  1246,  1248,  1251,  1254,
302   1257,  1260,  1262,  1264,  1266,  1268,  1271,  1274,  1278,  1282,
303   1286,  1291,  1293,  1296,  1299,  1302,  1304,  1306,  1308,  1311,
304   1314,  1317,  1319,  1321,  1324,  1327,  1331,  1333,  1336,  1338,
305   1340,  1342,  1347,  1352,  1357,  1362,  1364,  1366,  1368,  1370,
306   1374,  1376,  1380,  1382,  1386,  1387,  1392,  1393,  1400,  1404,
307   1405,  1410,  1412,  1416,  1420,  1421,  1426,  1430,  1431,  1433,
308   1435,  1438,  1445,  1447,  1451,  1452,  1454,  1459,  1466,  1471,
309   1473,  1475,  1477,  1479,  1481,  1485,  1486,  1489,  1491,  1494,
310   1498,  1503,  1505,  1507,  1511,  1516,  1520,  1526,  1528,  1533,
311   1537,  1541,  1542,  1546,  1550,  1554,  1555,  1558,  1561,  1562,
312   1570,  1575,  1576,  1583,  1587,  1590,  1593,  1596,  1597,  1598,
313   1599,  1610,  1612,  1613,  1615,  1616,  1618,  1620,  1623,  1626,
314   1629,  1632,  1635,  1638,  1641,  1644,  1647,  1651,  1656,  1660,
315   1663,  1667,  1669,  1670,  1674,  1677,  1680,  1682,  1684,  1685,
316   1688,  1692,  1694,  1699,  1701,  1705,  1707,  1709,  1714,  1719,
317   1722,  1725,  1729,  1733,  1734,  1736,  1740,  1743,  1746,  1748,
318   1751,  1754,  1757,  1760,  1763,  1766,  1769,  1771,  1774,  1777,
319   1781,  1784,  1787,  1792,  1797,  1800,  1802,  1808,  1813,  1815,
320   1816,  1818,  1822,  1823,  1825,  1829,  1831,  1833,  1835,  1837,
321   1842,  1847,  1852,  1857,  1862,  1866,  1871,  1876,  1881,  1886,
322   1890,  1892,  1896,  1898,  1902,  1905,  1907,  1915,  1916,  1919,
323   1921,  1924,  1925,  1928,  1933,  1938,  1941,  1946,  1948,  1951,
324   1955,  1959,  1962,  1965,  1969,  1971,  1976,  1981,  1985,  1989,
325   1992,  1994,  1996,  1999,  2001,  2003,  2006,  2009,  2011,  2014,
326   2018,  2022,  2025,  2028,  2032,  2034,  2038,  2042,  2045,  2048,
327   2052,  2054,  2059,  2063,  2068,  2072,  2074,  2077,  2080,  2083,
328   2086,  2089,  2091,  2094,  2099,  2104,  2107,  2109,  2111,  2113,
329   2115,  2118,  2123,  2126,  2129,  2132,  2135,  2137,  2140,  2143,
330   2146,  2149,  2153,  2155,  2158,  2162,  2167,  2170,  2173,  2176,
331   2179,  2182,  2185,  2190,  2193,  2195,  2198,  2201,  2205,  2207,
332   2211,  2214,  2218,  2221,  2224,  2228,  2230,  2234,  2239,  2241,
333   2244,  2248,  2251,  2254,  2256,  2260,  2263,  2266,  2268,  2271,
334   2275,  2277,  2281,  2283,  2290,  2295,  2300,  2304,  2310,  2314,
335   2318,  2322,  2325,  2327,  2329,  2332,  2335,  2338,  2339,  2341,
336   2343,  2346,  2350,  2352,  2355,  2356,  2360,  2361,  2362,  2368,
337   2370,  2371,  2374,  2376,  2378,  2380,  2383,  2384,  2389,  2391,
338   2392,  2393,  2399,  2400,  2401,  2409,  2410,  2411,  2412,  2413,
339   2426,  2427,  2428,  2436,  2437,  2443,  2444,  2452,  2453,  2458,
340   2461,  2464,  2467,  2471,  2478,  2487,  2498,  2511,  2516,  2520,
341   2523,  2526,  2528,  2530,  2532,  2534,  2536,  2537,  2538,  2545,
342   2546,  2547,  2553,  2555,  2558,  2559,  2560,  2566,  2568,  2570,
343   2574,  2578,  2581,  2584,  2587,  2590,  2593,  2595,  2598,  2599,
344   2601,  2602,  2604,  2606,  2607,  2609,  2611,  2615,  2620,  2622,
345   2626,  2627,  2629,  2631,  2633,  2636,  2639,  2642,  2644,  2647,
346   2650,  2651,  2655,  2657,  2659,  2661,  2664,  2667,  2670,  2675,
347   2678,  2681,  2684,  2687,  2690,  2693,  2695,  2698,  2700,  2703,
348   2705,  2707,  2708,  2709,  2711,  2712,  2717,  2720,  2722,  2724,
349   2728,  2729,  2733,  2737,  2741,  2743,  2746,  2749,  2752,  2755,
350   2758,  2761,  2764,  2767,  2770,  2773,  2776,  2779,  2782,  2785,
351   2788,  2791,  2794,  2797,  2800,  2803,  2806,  2809,  2812,  2816,
352   2819,  2822,  2825,  2828,  2832,  2835,  2838,  2843,  2848,  2852
353 };
354
355 static const short yyrhs[] = {    -1,
356    113,     0,     0,   114,   120,     0,   113,   120,     0,   113,
357      0,     0,     0,     0,    32,     0,    27,     0,     0,   121,
358    122,     0,   148,   147,     0,   144,     0,   141,     0,   119,
359     93,   219,   108,    60,     0,   133,    58,   115,   109,     0,
360    133,   116,   148,   117,   147,     0,   133,   116,   144,   117,
361      0,     0,    44,   163,    58,   123,   115,   109,     0,     0,
362     44,    58,   124,   115,   109,     0,   125,     0,   127,    60,
363      0,   129,     0,   118,   122,     0,     0,    44,   163,    64,
364    126,   132,    60,     0,    46,   313,     0,    46,   327,   313,
365      0,    46,   327,   209,     0,    46,   131,   163,     0,    46,
366    327,   163,     0,    46,   327,   131,   163,     0,     0,    46,
367     44,   130,   132,    60,     0,    57,    54,     0,   131,    57,
368     54,     0,   209,     0,   313,     0,   327,   313,     0,   327,
369    209,     0,    98,     0,   133,    98,     0,     0,    48,    74,
370    135,   136,    75,     0,    48,    74,    75,     0,   140,     0,
371    136,    59,   140,     0,   163,     0,     0,   269,   137,     0,
372     45,   137,     0,   134,   269,   137,     0,   138,     0,   138,
373     64,   225,     0,   391,     0,   391,    64,   204,     0,   139,
374      0,   139,    64,   184,     0,   134,   142,     0,   134,     1,
375      0,   148,   147,     0,   143,     0,   141,     0,   133,   116,
376    148,   117,   147,     0,   133,   116,   143,   117,     0,   118,
377    142,     0,   236,    60,     0,   229,   235,    60,     0,   226,
378    234,    60,     0,   261,    60,     0,   236,    60,     0,   229,
379    235,    60,     0,   226,   234,    60,     0,   229,    60,     0,
380    166,    60,     0,   226,    60,     0,     1,    60,     0,     1,
381    109,     0,    60,     0,   220,     0,   159,     0,     0,   158,
382      0,   158,    60,     0,     0,   107,     0,   154,   146,   145,
383    338,     0,   154,   146,   362,     0,   154,   146,     1,     0,
384      0,   318,     5,    93,   150,   382,   108,   298,   394,     0,
385    318,     5,    47,   298,   394,     0,     0,   327,   318,     5,
386     93,   151,   382,   108,   298,   394,     0,   327,   318,     5,
387     47,   298,   394,     0,     0,   318,   179,    93,   152,   382,
388    108,   298,   394,     0,   318,   179,    47,   298,   394,     0,
389      0,   327,   318,   179,    93,   153,   382,   108,   298,   394,
390      0,   327,   318,   179,    47,   298,   394,     0,   226,   223,
391      0,   229,   310,     0,   310,     0,   229,   149,     0,   149,
392      0,     5,    93,   382,   108,   298,   394,     0,     5,    47,
393    298,   394,     0,   179,    93,   382,   108,   298,   394,     0,
394    179,    47,   298,   394,     0,   229,   155,     0,   155,     0,
395    226,   223,     0,   229,   310,     0,   310,     0,   229,   149,
396      0,   149,     0,    25,     3,     0,   157,   253,     0,   157,
397     93,   196,   108,     0,   157,    47,     0,    62,   160,   161,
398      0,     0,     0,   162,     0,   161,    59,   162,     0,   161,
399      1,     0,    93,   196,   108,     0,    47,     0,   164,    93,
400    196,   108,     0,   164,    47,     0,   306,    93,   196,   108,
401      0,   306,    47,     0,   320,    93,   196,   108,     0,   320,
402     47,     0,     3,     0,     4,     0,     5,     0,    56,     0,
403     57,     0,     3,     0,    56,     0,    57,     0,   104,     0,
404    103,     0,   105,     0,     0,    48,   175,   232,    60,   167,
405    176,     0,     0,    48,   175,   226,   223,   168,   176,     0,
406      0,    48,   175,   310,   169,   176,     0,     0,    48,   175,
407    149,   170,   176,     0,     0,     7,    48,   175,   232,    60,
408    171,   176,     0,     0,     7,    48,   175,   226,   223,   172,
409    176,     0,     0,     7,    48,   175,   310,   173,   176,     0,
410      0,     7,    48,   175,   149,   174,   176,     0,     0,     0,
411     56,    74,   182,   181,   180,     0,     4,    74,   182,   181,
412    180,     0,   179,     0,   177,     0,   163,    74,   182,    75,
413    180,     0,     5,    74,   182,   181,   180,     0,     0,    75,
414      0,    77,     0,     0,   183,     0,   184,     0,   183,    59,
415    184,     0,   225,     0,    56,     0,   204,     0,    79,     0,
416     78,     0,    86,     0,    87,     0,   110,     0,   195,     0,
417    204,     0,    47,     0,    93,   186,   108,     0,    47,     0,
418     93,   190,   108,     0,     0,   190,     0,     1,     0,     0,
419    372,   223,   237,   246,    64,   191,   254,     0,   186,     0,
420    109,     0,   335,   333,   109,     0,   335,   333,     1,   109,
421      0,   335,     1,   109,     0,     0,    58,   194,   192,     0,
422    347,     0,   204,    59,   204,     0,   204,    59,     1,     0,
423    195,    59,   204,     0,   195,    59,     1,     0,   204,     0,
424    195,     0,   214,     0,   118,   203,     0,    80,   203,     0,
425     70,   203,     0,    88,   203,     0,   185,   203,     0,    67,
426    163,     0,    13,   197,     0,    13,    93,   225,   108,     0,
427     29,   197,     0,    29,    93,   225,   108,     0,   216,   297,
428      0,   216,   297,   201,     0,   216,   200,   297,     0,   216,
429    200,   297,   201,     0,   216,    93,   199,   225,   198,     0,
430    216,    93,   199,   225,   198,   201,     0,   216,   200,    93,
431    199,   225,   198,     0,   216,   200,    93,   199,   225,   198,
432    201,     0,   217,   203,     0,   217,    94,   111,   203,     0,
433    217,    94,   186,   111,   203,     0,    34,   203,     0,    35,
434    203,     0,   108,     0,     0,    93,   199,   196,   108,     0,
435     58,   199,   196,   109,     0,    93,   196,   108,     0,    47,
436      0,    93,   232,   108,     0,    64,   254,     0,    93,   225,
437    108,     0,   202,    93,   225,   108,     0,   197,     0,   202,
438    197,     0,   202,    58,   255,   267,   109,     0,   203,     0,
439    204,    83,   204,     0,   204,    84,   204,     0,   204,    78,
440    204,     0,   204,    79,   204,     0,   204,    80,   204,     0,
441    204,    81,   204,     0,   204,    82,   204,     0,   204,    76,
442    204,     0,   204,    77,   204,     0,   204,    73,   204,     0,
443    204,    74,   204,     0,   204,    75,   204,     0,   204,    72,
444    204,     0,   204,    71,   204,     0,   204,    70,   204,     0,
445    204,    68,   204,     0,   204,    69,   204,     0,   204,    67,
446    204,     0,   204,    66,   204,     0,   204,    65,   377,    62,
447    204,     0,   204,    64,   204,     0,   204,    63,   204,     0,
448     61,     0,    61,   204,     0,    88,   392,   163,     0,    88,
449    392,   177,     0,   207,     0,   399,     0,     3,     0,    56,
450      0,    57,     0,     0,     6,    74,   206,   182,   181,     0,
451    399,    74,   206,   182,   181,     0,    48,   163,    74,   182,
452    181,     0,    48,     6,    74,   182,   181,     0,    48,   399,
453     74,   182,   181,     0,   205,     0,     4,     0,     5,     0,
454    211,     0,   247,   211,     0,   205,     0,    80,   210,     0,
455     70,   210,     0,    93,   210,   108,     0,     3,    74,   182,
456    181,     0,    57,    74,   183,   181,     0,   312,     0,   205,
457      0,   212,     0,    93,   210,   108,     0,   205,     0,    10,
458      0,   218,     0,   219,     0,    93,   186,   108,     0,    93,
459    210,   108,     0,    93,     1,   108,     0,     0,    93,   215,
460    339,   108,     0,   205,    93,   196,   108,     0,   205,    47,
461      0,   214,    93,   196,   108,     0,   214,    47,     0,   214,
462     94,   186,   111,     0,   214,    86,     0,   214,    87,     0,
463     40,     0,     9,    93,   196,   108,     0,   316,     0,    50,
464     74,   225,    75,    93,   186,   108,     0,    51,    74,   225,
465     75,    93,   186,   108,     0,    52,    74,   225,    75,    93,
466    186,   108,     0,    53,    74,   225,    75,    93,   186,   108,
467      0,    49,    93,   186,   108,     0,    49,    93,   225,   108,
468      0,   327,     3,     0,   327,   207,     0,   327,   399,     0,
469    315,     0,   315,    93,   196,   108,     0,   315,    47,     0,
470    221,   208,     0,   221,   208,    93,   196,   108,     0,   221,
471    208,    47,     0,   221,   209,     0,   221,   315,     0,   221,
472    209,    93,   196,   108,     0,   221,   209,    47,     0,   221,
473    315,    93,   196,   108,     0,   221,   315,    47,     0,   221,
474     88,     8,    47,     0,   221,     8,    54,    88,     8,    47,
475      0,   221,     1,     0,    39,     0,   327,    39,     0,    38,
476      0,   327,   217,     0,    42,     0,    43,     0,    11,     0,
477    219,    11,     0,     0,   214,    92,     0,   214,    91,     0,
478    232,   234,    60,     0,   226,   234,    60,     0,   229,   235,
479     60,     0,   226,    60,     0,   229,    60,     0,   118,   222,
480      0,   304,     0,   310,     0,    47,     0,   224,    47,     0,
481    230,   331,     0,   299,   331,     0,   232,   331,     0,   230,
482      0,   299,     0,   230,     0,   227,     0,   229,   232,     0,
483    232,   228,     0,   232,   231,   228,     0,   229,   232,   228,
484      0,   229,   232,   231,     0,   229,   232,   231,   228,     0,
485      7,     0,   228,   233,     0,   228,     7,     0,   228,   247,
486      0,   247,     0,   299,     0,     7,     0,   229,     9,     0,
487    229,     7,     0,   229,   247,     0,   247,     0,   232,     0,
488    299,   232,     0,   232,   231,     0,   299,   232,   231,     0,
489    233,     0,   231,   233,     0,   261,     0,     8,     0,   307,
490      0,    28,    93,   186,   108,     0,    28,    93,   225,   108,
491      0,    30,    93,   186,   108,     0,    30,    93,   225,   108,
492      0,     8,     0,     9,     0,   261,     0,   242,     0,   234,
493     59,   238,     0,   243,     0,   235,    59,   238,     0,   244,
494      0,   236,    59,   238,     0,     0,   119,    93,   219,   108,
495      0,     0,   223,   237,   246,    64,   239,   254,     0,   223,
496    237,   246,     0,     0,   246,    64,   241,   254,     0,   246,
497      0,   223,   237,   240,     0,   310,   237,   240,     0,     0,
498    310,   237,   245,   240,     0,   149,   237,   246,     0,     0,
499    247,     0,   248,     0,   247,   248,     0,    31,    93,    93,
500    249,   108,   108,     0,   250,     0,   249,    59,   250,     0,
501      0,   251,     0,   251,    93,     3,   108,     0,   251,    93,
502      3,    59,   196,   108,     0,   251,    93,   196,   108,     0,
503    163,     0,     7,     0,     8,     0,     9,     0,   163,     0,
504    252,    59,   163,     0,     0,    64,   254,     0,   204,     0,
505     58,   109,     0,    58,   255,   109,     0,    58,   255,    59,
506    109,     0,     1,     0,   254,     0,   255,    59,   254,     0,
507     94,   204,   111,   254,     0,   163,    62,   254,     0,   255,
508     59,   163,    62,   254,     0,    97,     0,   256,   146,   145,
509    338,     0,   256,   146,   362,     0,   256,   146,     1,     0,
510      0,   258,   257,   147,     0,   102,   204,   107,     0,   102,
511      1,   107,     0,     0,   260,   259,     0,   260,     1,     0,
512      0,    14,   163,    58,   262,   295,   268,   109,     0,    14,
513    163,    58,   109,     0,     0,    14,    58,   263,   295,   268,
514    109,     0,    14,    58,   109,     0,    14,   163,     0,    14,
515    325,     0,    45,   320,     0,     0,     0,     0,   276,    58,
516    264,   282,   109,   246,   265,   260,   266,   258,     0,   276,
517      0,     0,    59,     0,     0,    59,     0,    36,     0,   269,
518      7,     0,   269,     8,     0,   269,     9,     0,   269,    36,
519      0,   269,   247,     0,   269,   163,     0,   269,   165,     0,
520    270,    58,     0,   270,    62,     0,   269,   318,   163,     0,
521    269,   327,   318,   163,     0,   269,   327,   163,     0,   269,
522    178,     0,   269,   318,   178,     0,   270,     0,     0,   271,
523    274,   277,     0,   272,   277,     0,   269,    58,     0,   275,
524      0,   273,     0,     0,    62,   392,     0,    62,   392,   278,
525      0,   279,     0,   278,    59,   392,   279,     0,   280,     0,
526    281,   392,   280,     0,   320,     0,   306,     0,    30,    93,
527    186,   108,     0,    30,    93,   225,   108,     0,    37,   392,
528      0,     7,   392,     0,   281,    37,   392,     0,   281,     7,
529    392,     0,     0,   284,     0,   282,   283,   284,     0,   282,
530    283,     0,    37,    62,     0,   285,     0,   284,   285,     0,
531    286,    60,     0,   286,   109,     0,   156,    62,     0,   156,
532     95,     0,   156,    25,     0,   156,    58,     0,    60,     0,
533    118,   285,     0,   134,   285,     0,   134,   226,    60,     0,
534    226,   287,     0,   229,   288,     0,   310,   237,   246,   253,
535      0,   149,   237,   246,   253,     0,    62,   204,     0,     1,
536      0,   229,   155,   237,   246,   253,     0,   155,   237,   246,
537    253,     0,   127,     0,     0,   289,     0,   287,    59,   290,
538      0,     0,   292,     0,   288,    59,   294,     0,   291,     0,
539    292,     0,   293,     0,   294,     0,   304,   237,   246,   253,
540      0,     4,    62,   204,   246,     0,   310,   237,   246,   253,
541      0,   149,   237,   246,   253,     0,     3,    62,   204,   246,
542      0,    62,   204,   246,     0,   304,   237,   246,   253,     0,
543      4,    62,   204,   246,     0,   310,   237,   246,   253,     0,
544      3,    62,   204,   246,     0,    62,   204,   246,     0,   296,
545      0,   295,    59,   296,     0,   163,     0,   163,    64,   204,
546      0,   372,   328,     0,   372,     0,    93,   199,   225,   198,
547     94,   186,   111,     0,     0,   298,     9,     0,     9,     0,
548    299,     9,     0,     0,   300,   186,     0,   300,    93,   196,
549    108,     0,   300,    93,   382,   108,     0,   300,    47,     0,
550    300,    93,     1,   108,     0,   304,     0,   247,   304,     0,
551     80,   299,   303,     0,    70,   299,   303,     0,    80,   303,
552      0,    70,   303,     0,   326,   298,   303,     0,   305,     0,
553    305,   302,   298,   394,     0,   305,    94,   301,   111,     0,
554    305,    94,   111,     0,    93,   303,   108,     0,   318,   317,
555      0,   317,     0,   317,     0,   327,   317,     0,   306,     0,
556    308,     0,   327,   308,     0,   318,   317,     0,   310,     0,
557    247,   310,     0,    80,   299,   309,     0,    70,   299,   309,
558      0,    80,   309,     0,    70,   309,     0,   326,   298,   309,
559      0,   213,     0,    80,   299,   309,     0,    70,   299,   309,
560      0,    80,   311,     0,    70,   311,     0,   326,   298,   309,
561      0,   312,     0,   213,   302,   298,   394,     0,    93,   311,
562    108,     0,   213,    94,   301,   111,     0,   213,    94,   111,
563      0,   314,     0,   318,   212,     0,   318,   209,     0,   318,
564    208,     0,   318,   205,     0,   318,   208,     0,   314,     0,
565    327,   314,     0,   232,    93,   196,   108,     0,   232,    93,
566    210,   108,     0,   232,   224,     0,     4,     0,     5,     0,
567    177,     0,   319,     0,   318,   319,     0,   318,    48,   324,
568     54,     0,     4,    54,     0,     5,    54,     0,    57,    54,
569      0,   177,    54,     0,   321,     0,   327,   321,     0,   322,
570    163,     0,   322,   177,     0,   322,   324,     0,   322,    48,
571    324,     0,   323,     0,   322,   323,     0,   322,   324,    54,
572      0,   322,    48,   324,    54,     0,     4,    54,     0,     5,
573     54,     0,   177,    54,     0,    56,    54,     0,     3,    54,
574      0,    57,    54,     0,   163,    74,   182,   181,     0,   327,
575    317,     0,   308,     0,   327,   308,     0,   318,    80,     0,
576    327,   318,    80,     0,    54,     0,    80,   298,   328,     0,
577     80,   298,     0,    70,   298,   328,     0,    70,   298,     0,
578    326,   298,     0,   326,   298,   328,     0,   329,     0,    94,
579    186,   111,     0,   329,    94,   301,   111,     0,   331,     0,
580    247,   331,     0,    80,   299,   330,     0,    80,   330,     0,
581     80,   299,     0,    80,     0,    70,   299,   330,     0,    70,
582    330,     0,    70,   299,     0,    70,     0,   326,   298,     0,
583    326,   298,   330,     0,   332,     0,    93,   330,   108,     0,
584     90,     0,   332,    93,   382,   108,   298,   394,     0,   332,
585     47,   298,   394,     0,   332,    94,   301,   111,     0,   332,
586     94,   111,     0,    93,   383,   108,   298,   394,     0,   202,
587    298,   394,     0,   224,   298,   394,     0,    94,   301,   111,
588      0,    94,   111,     0,   346,     0,   334,     0,   333,   346,
589      0,   333,   334,     0,     1,    60,     0,     0,   336,     0,
590    337,     0,   336,   337,     0,    33,   252,    60,     0,   339,
591      0,     1,   339,     0,     0,    58,   340,   192,     0,     0,
592      0,    15,   342,   188,   343,   344,     0,   339,     0,     0,
593    345,   347,     0,   339,     0,   347,     0,   222,     0,   186,
594     60,     0,     0,   341,    16,   348,   344,     0,   341,     0,
595      0,     0,    17,   349,   188,   350,   193,     0,     0,     0,
596     18,   351,   344,    17,   352,   187,    60,     0,     0,     0,
597      0,     0,    19,   353,    93,   375,   354,   189,    60,   355,
598    377,   108,   356,   193,     0,     0,     0,    20,   357,    93,
599    190,   108,   358,   344,     0,     0,    21,   204,    62,   359,
600    346,     0,     0,    21,   204,    12,   204,    62,   360,   346,
601      0,     0,    22,    62,   361,   346,     0,    23,    60,     0,
602     24,    60,     0,    25,    60,     0,    25,   186,    60,     0,
603    119,   376,    93,   219,   108,    60,     0,   119,   376,    93,
604    219,    62,   378,   108,    60,     0,   119,   376,    93,   219,
605     62,   378,    62,   378,   108,    60,     0,   119,   376,    93,
606    219,    62,   378,    62,   378,    62,   381,   108,    60,     0,
607     26,    80,   186,    60,     0,    26,   163,    60,     0,   374,
608    346,     0,   374,   109,     0,    60,     0,   365,     0,   129,
609      0,   128,     0,   125,     0,     0,     0,    95,   363,   145,
610    339,   364,   368,     0,     0,     0,    95,   366,   339,   367,
611    368,     0,   369,     0,   368,   369,     0,     0,     0,    96,
612    370,   373,   371,   339,     0,   230,     0,   299,     0,    93,
613     12,   108,     0,    93,   391,   108,     0,     3,    62,     0,
614     56,    62,     0,     4,    62,     0,     5,    62,     0,   377,
615     60,     0,   222,     0,    58,   192,     0,     0,     9,     0,
616      0,   186,     0,     1,     0,     0,   379,     0,   380,     0,
617    379,    59,   380,     0,    11,    93,   186,   108,     0,    11,
618      0,   381,    59,    11,     0,     0,   383,     0,   225,     0,
619    387,     0,   388,    12,     0,   387,    12,     0,   225,    12,
620      0,    12,     0,   387,    62,     0,   225,    62,     0,     0,
621     64,   385,   386,     0,   101,     0,   254,     0,   389,     0,
622    391,   384,     0,   388,   390,     0,   388,   393,     0,   388,
623    393,    64,   254,     0,   387,    59,     0,   225,    59,     0,
624    227,   223,     0,   230,   223,     0,   232,   223,     0,   227,
625    331,     0,   227,     0,   229,   310,     0,   391,     0,   391,
626    384,     0,   389,     0,   225,     0,     0,     0,   310,     0,
627      0,    61,    93,   396,   108,     0,    61,    47,     0,   225,
628      0,   395,     0,   396,    59,   395,     0,     0,    80,   298,
629    397,     0,    70,   298,   397,     0,   326,   298,   397,     0,
630     41,     0,   398,    80,     0,   398,    81,     0,   398,    82,
631      0,   398,    78,     0,   398,    79,     0,   398,    70,     0,
632    398,    68,     0,   398,    69,     0,   398,    88,     0,   398,
633     59,     0,   398,    73,     0,   398,    74,     0,   398,    75,
634      0,   398,    72,     0,   398,    63,     0,   398,    64,     0,
635    398,    76,     0,   398,    77,     0,   398,    86,     0,   398,
636     87,     0,   398,    67,     0,   398,    66,     0,   398,   110,
637      0,   398,    65,    62,     0,   398,    71,     0,   398,    91,
638      0,   398,    83,     0,   398,    47,     0,   398,    94,   111,
639      0,   398,    39,     0,   398,    38,     0,   398,    39,    94,
640    111,     0,   398,    38,    94,   111,     0,   398,   372,   397,
641      0,   398,     1,     0
642 };
643
644 #endif
645
646 #if YYDEBUG != 0
647 static const short yyrline[] = { 0,
648    340,   342,   350,   353,   354,   358,   360,   363,   368,   372,
649    378,   382,   385,   389,   392,   394,   396,   399,   401,   404,
650    407,   409,   411,   413,   415,   416,   418,   419,   423,   426,
651    435,   438,   440,   444,   447,   449,   453,   456,   468,   475,
652    483,   485,   486,   488,   492,   495,   501,   504,   506,   511,
653    514,   518,   521,   524,   527,   531,   536,   546,   548,   550,
654    552,   554,   567,   570,   574,   577,   579,   581,   584,   587,
655    591,   593,   595,   597,   602,   604,   606,   608,   610,   611,
656    618,   619,   620,   623,   626,   630,   632,   633,   636,   638,
657    641,   644,   650,   654,   657,   659,   663,   665,   667,   671,
658    673,   675,   679,   681,   683,   689,   693,   696,   699,   702,
659    707,   710,   712,   714,   720,   732,   735,   740,   745,   748,
660    753,   758,   767,   770,   772,   776,   789,   809,   812,   814,
661    815,   818,   825,   831,   833,   835,   837,   839,   842,   847,
662    849,   850,   851,   852,   855,   857,   858,   861,   863,   864,
663    867,   872,   872,   876,   876,   879,   879,   882,   882,   886,
664    886,   891,   891,   894,   894,   897,   899,   902,   909,   913,
665    916,   919,   921,   925,   931,   940,   942,   950,   953,   956,
666    959,   963,   966,   968,   971,   974,   976,   978,   980,   984,
667    987,   990,   995,   999,  1004,  1008,  1011,  1012,  1016,  1035,
668   1042,  1045,  1047,  1048,  1049,  1052,  1056,  1057,  1061,  1065,
669   1068,  1070,  1074,  1077,  1080,  1084,  1087,  1089,  1091,  1093,
670   1096,  1100,  1102,  1105,  1107,  1113,  1116,  1119,  1122,  1134,
671   1139,  1143,  1147,  1152,  1154,  1158,  1162,  1164,  1173,  1177,
672   1180,  1183,  1188,  1191,  1193,  1201,  1214,  1219,  1225,  1227,
673   1229,  1242,  1245,  1247,  1249,  1251,  1253,  1255,  1257,  1259,
674   1261,  1263,  1265,  1267,  1269,  1271,  1273,  1275,  1277,  1279,
675   1281,  1283,  1285,  1289,  1291,  1293,  1310,  1313,  1315,  1316,
676   1317,  1318,  1319,  1322,  1334,  1337,  1341,  1344,  1346,  1351,
677   1353,  1354,  1357,  1359,  1367,  1369,  1371,  1373,  1377,  1380,
678   1384,  1388,  1389,  1390,  1394,  1402,  1403,  1404,  1418,  1420,
679   1423,  1425,  1436,  1441,  1443,  1445,  1447,  1449,  1451,  1453,
680   1456,  1458,  1475,  1476,  1480,  1484,  1488,  1492,  1494,  1498,
681   1500,  1502,  1510,  1512,  1514,  1516,  1520,  1522,  1524,  1526,
682   1531,  1533,  1535,  1537,  1540,  1542,  1544,  1588,  1591,  1595,
683   1598,  1602,  1605,  1610,  1612,  1616,  1629,  1632,  1639,  1646,
684   1651,  1653,  1658,  1660,  1667,  1669,  1673,  1677,  1683,  1687,
685   1690,  1694,  1697,  1707,  1709,  1712,  1716,  1719,  1722,  1725,
686   1728,  1734,  1740,  1742,  1747,  1749,  1767,  1770,  1772,  1775,
687   1781,  1783,  1793,  1797,  1800,  1803,  1808,  1811,  1819,  1821,
688   1823,  1825,  1828,  1831,  1846,  1865,  1868,  1870,  1873,  1875,
689   1879,  1881,  1885,  1887,  1891,  1894,  1898,  1904,  1905,  1917,
690   1924,  1927,  1933,  1937,  1942,  1948,  1949,  1957,  1960,  1964,
691   1967,  1971,  1976,  1979,  1983,  1986,  1988,  1990,  1992,  1999,
692   2001,  2002,  2003,  2007,  2010,  2014,  2017,  2023,  2025,  2028,
693   2031,  2034,  2040,  2043,  2046,  2048,  2050,  2054,  2060,  2068,
694   2075,  2079,  2081,  2086,  2089,  2092,  2094,  2096,  2100,  2105,
695   2112,  2116,  2120,  2127,  2131,  2134,  2137,  2143,  2145,  2157,
696   2161,  2166,  2188,  2190,  2193,  2195,  2200,  2202,  2204,  2206,
697   2208,  2210,  2214,  2222,  2225,  2227,  2231,  2238,  2244,  2250,
698   2256,  2266,  2272,  2276,  2283,  2311,  2321,  2327,  2330,  2333,
699   2335,  2339,  2341,  2345,  2350,  2356,  2359,  2360,  2381,  2404,
700   2406,  2410,  2421,  2435,  2436,  2437,  2438,  2441,  2456,  2461,
701   2467,  2469,  2474,  2476,  2478,  2480,  2482,  2484,  2487,  2497,
702   2504,  2529,  2535,  2538,  2541,  2543,  2554,  2559,  2562,  2567,
703   2570,  2577,  2587,  2590,  2597,  2607,  2609,  2612,  2614,  2617,
704   2624,  2632,  2639,  2645,  2651,  2659,  2663,  2668,  2672,  2675,
705   2684,  2686,  2690,  2693,  2698,  2702,  2708,  2719,  2722,  2726,
706   2730,  2738,  2743,  2749,  2752,  2754,  2756,  2762,  2764,  2773,
707   2776,  2778,  2780,  2782,  2786,  2789,  2792,  2794,  2796,  2798,
708   2802,  2805,  2816,  2826,  2828,  2829,  2833,  2841,  2843,  2851,
709   2854,  2856,  2858,  2860,  2864,  2867,  2870,  2872,  2874,  2876,
710   2880,  2883,  2886,  2888,  2890,  2892,  2894,  2901,  2905,  2910,
711   2914,  2919,  2921,  2925,  2928,  2930,  2933,  2935,  2936,  2939,
712   2941,  2943,  2949,  2960,  2966,  2972,  2986,  2988,  2992,  3006,
713   3008,  3010,  3014,  3020,  3033,  3035,  3039,  3052,  3058,  3060,
714   3061,  3062,  3070,  3075,  3084,  3085,  3089,  3092,  3098,  3104,
715   3107,  3109,  3111,  3113,  3117,  3121,  3125,  3128,  3132,  3134,
716   3143,  3146,  3148,  3150,  3152,  3154,  3156,  3158,  3160,  3164,
717   3168,  3172,  3176,  3177,  3179,  3181,  3183,  3185,  3187,  3189,
718   3191,  3193,  3201,  3203,  3204,  3205,  3208,  3214,  3216,  3221,
719   3223,  3226,  3240,  3243,  3246,  3250,  3253,  3260,  3262,  3265,
720   3267,  3269,  3272,  3275,  3278,  3281,  3283,  3286,  3290,  3292,
721   3298,  3300,  3301,  3303,  3308,  3310,  3312,  3314,  3316,  3319,
722   3320,  3322,  3325,  3326,  3329,  3329,  3332,  3332,  3335,  3335,
723   3337,  3339,  3341,  3343,  3349,  3355,  3358,  3361,  3367,  3369,
724   3371,  3375,  3377,  3378,  3379,  3381,  3384,  3391,  3396,  3402,
725   3406,  3408,  3411,  3413,  3416,  3420,  3422,  3425,  3427,  3430,
726   3447,  3453,  3461,  3463,  3465,  3469,  3472,  3473,  3481,  3485,
727   3489,  3492,  3493,  3499,  3502,  3505,  3507,  3511,  3516,  3519,
728   3529,  3534,  3535,  3542,  3545,  3548,  3550,  3553,  3555,  3565,
729   3579,  3583,  3586,  3588,  3592,  3596,  3599,  3602,  3604,  3608,
730   3610,  3617,  3624,  3627,  3631,  3635,  3639,  3645,  3649,  3654,
731   3656,  3659,  3664,  3670,  3681,  3684,  3686,  3690,  3695,  3697,
732   3704,  3707,  3709,  3711,  3717,  3722,  3725,  3727,  3729,  3731,
733   3733,  3735,  3737,  3739,  3741,  3743,  3745,  3747,  3749,  3751,
734   3753,  3755,  3757,  3759,  3761,  3763,  3765,  3767,  3769,  3771,
735   3773,  3775,  3777,  3779,  3781,  3783,  3785,  3787,  3790,  3792
736 };
737 #endif
738
739
740 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
741
742 static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
743 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
744 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
745 "CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO","ASM_KEYWORD","TYPEOF",
746 "ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","AGGR",
747 "VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
748 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
749 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
750 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
751 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
752 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
753 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","PRE_PARSED_FUNCTION_DECL",
754 "EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL","DEFARG","DEFARG_MARKER",
755 "TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT",
756 "')'","'}'","'!'","']'","program","extdefs","@1","extdefs_opt",".hush_warning",
757 ".warning_ok","extension","asm_keyword","lang_extdef","@2","extdef","@3","@4",
758 "namespace_alias","@5","using_decl","namespace_using_decl","using_directive",
759 "@6","namespace_qualifier","any_id","extern_lang_string","template_header","@7",
760 "template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
761 "template_parm","template_def","template_extdef","template_datadef","datadef",
762 "ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef","constructor_declarator",
763 "@8","@9","@10","@11","fn.def1","component_constructor_declarator","fn.def2",
764 "return_id","return_init","base_init",".set_base_init","member_init_list","member_init",
765 "identifier","notype_identifier","identifier_defn","explicit_instantiation",
766 "@12","@13","@14","@15","@16","@17","@18","@19","begin_explicit_instantiation",
767 "end_explicit_instantiation","template_type","apparent_template_type","self_template_type",
768 ".finish_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
769 "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
770 "condition","@20","compstmtend","already_scoped_stmt","@21","nontrivial_exprlist",
771 "nonnull_exprlist","unary_expr",".finish_new_placement",".begin_new_placement",
772 "new_placement","new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas",
773 "notype_unqualified_id","do_id","template_id","object_template_id","unqualified_id",
774 "expr_or_declarator_intern","expr_or_declarator","notype_template_declarator",
775 "direct_notype_declarator","primary","@22","new","delete","boolean.literal",
776 "string","nodecls","object","decl","declarator","fcast_or_absdcl","type_id",
777 "typed_declspecs","typed_declspecs1","reserved_declspecs","declmods","typed_typespecs",
778 "reserved_typespecquals","typespec","typespecqual_reserved","initdecls","notype_initdecls",
779 "nomods_initdecls","maybeasm","initdcl","@23","initdcl0_innards","@24","initdcl0",
780 "notype_initdcl0","nomods_initdcl0","@25","maybe_attribute","attributes","attribute",
781 "attribute_list","attrib","any_word","identifiers_or_typenames","maybe_init",
782 "init","initlist","fn.defpen","pending_inline","pending_inlines","defarg_again",
783 "pending_defargs","structsp","@26","@27","@28","@29","@30","maybecomma","maybecomma_warn",
784 "aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn",
785 "named_complex_class_head_sans_basetype","named_class_head","@31","unnamed_class_head",
786 "class_head","maybe_base_class_list","base_class_list","base_class","base_class.1",
787 "base_class_access_list","opt.component_decl_list","access_specifier","component_decl_list",
788 "component_decl","component_decl_1","components","notype_components","component_declarator0",
789 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
790 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
791 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
792 "maybe_parmlist","after_type_declarator_intern","after_type_declarator","direct_after_type_declarator",
793 "nonnested_type","complete_type_name","nested_type","notype_declarator_intern",
794 "notype_declarator","complex_notype_declarator","complex_direct_notype_declarator",
795 "qualified_id","notype_qualified_id","overqualified_id","functional_cast","type_name",
796 "nested_name_specifier","nested_name_specifier_1","typename_sub","typename_sub0",
797 "typename_sub1","typename_sub2","explicit_template_type","complex_type_name",
798 "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl_intern",
799 "absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
800 "label_decls","label_decl","compstmt_or_error","compstmt","@32","simple_if",
801 "@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt","@36","@37",
802 "@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","@49","function_try_block",
803 "@50","@51","try_block","@52","@53","handler_seq","handler","@54","@55","type_specifier_seq",
804 "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
805 "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
806 "complex_parmlist","defarg","@56","defarg1","parms","parms_comma","named_parm",
807 "full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
808 "ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
809 };
810 #endif
811
812 static const short yyr1[] = {     0,
813    112,   112,   114,   113,   113,   115,   115,   116,   117,   118,
814    119,   121,   120,   122,   122,   122,   122,   122,   122,   122,
815    123,   122,   124,   122,   122,   122,   122,   122,   126,   125,
816    127,   127,   127,   128,   128,   128,   130,   129,   131,   131,
817    132,   132,   132,   132,   133,   133,   135,   134,   134,   136,
818    136,   137,   137,   138,   138,   139,   140,   140,   140,   140,
819    140,   140,   141,   141,   142,   142,   142,   142,   142,   142,
820    143,   143,   143,   143,   144,   144,   144,   144,   144,   144,
821    144,   144,   144,   145,   145,   146,   146,   146,   147,   147,
822    148,   148,   148,   150,   149,   149,   151,   149,   149,   152,
823    149,   149,   153,   149,   149,   154,   154,   154,   154,   154,
824    155,   155,   155,   155,   156,   156,   156,   156,   156,   156,
825    156,   157,   158,   158,   158,   159,   160,   161,   161,   161,
826    161,   162,   162,   162,   162,   162,   162,   162,   162,   163,
827    163,   163,   163,   163,   164,   164,   164,   165,   165,   165,
828    167,   166,   168,   166,   169,   166,   170,   166,   171,   166,
829    172,   166,   173,   166,   174,   166,   175,   176,   177,   177,
830    177,   178,   178,   179,   180,   181,   181,   182,   182,   183,
831    183,   184,   184,   184,   185,   185,   185,   185,   185,   186,
832    186,   187,   187,   188,   188,   189,   189,   189,   191,   190,
833    190,   192,   192,   192,   192,   194,   193,   193,   195,   195,
834    195,   195,   196,   196,   197,   197,   197,   197,   197,   197,
835    197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
836    197,   197,   197,   197,   197,   197,   197,   197,   198,   199,
837    200,   200,   201,   201,   201,   201,   202,   202,   203,   203,
838    203,   204,   204,   204,   204,   204,   204,   204,   204,   204,
839    204,   204,   204,   204,   204,   204,   204,   204,   204,   204,
840    204,   204,   204,   204,   204,   204,   205,   205,   205,   205,
841    205,   205,   205,   206,   207,   207,   208,   208,   208,   209,
842    209,   209,   210,   210,   211,   211,   211,   211,   212,   212,
843    213,   213,   213,   213,   214,   214,   214,   214,   214,   214,
844    214,   215,   214,   214,   214,   214,   214,   214,   214,   214,
845    214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
846    214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
847    214,   214,   214,   214,   214,   214,   214,   216,   216,   217,
848    217,   218,   218,   219,   219,   220,   221,   221,   222,   222,
849    222,   222,   222,   222,   223,   223,   224,   224,   225,   225,
850    225,   225,   225,   226,   226,   227,   227,   227,   227,   227,
851    227,   228,   228,   228,   228,   228,   229,   229,   229,   229,
852    229,   229,   230,   230,   230,   230,   231,   231,   232,   232,
853    232,   232,   232,   232,   232,   233,   233,   233,   234,   234,
854    235,   235,   236,   236,   237,   237,   239,   238,   238,   241,
855    240,   240,   242,   243,   245,   244,   244,   246,   246,   247,
856    247,   248,   249,   249,   250,   250,   250,   250,   250,   251,
857    251,   251,   251,   252,   252,   253,   253,   254,   254,   254,
858    254,   254,   255,   255,   255,   255,   255,   256,   257,   257,
859    257,   258,   258,   259,   259,   260,   260,   260,   262,   261,
860    261,   263,   261,   261,   261,   261,   261,   264,   265,   266,
861    261,   261,   267,   267,   268,   268,   269,   269,   269,   269,
862    269,   269,   270,   271,   271,   271,   272,   272,   272,   272,
863    272,   273,   274,   273,   273,   275,   276,   276,   277,   277,
864    277,   278,   278,   279,   279,   280,   280,   280,   280,   281,
865    281,   281,   281,   282,   282,   282,   282,   283,   284,   284,
866    285,   285,   285,   285,   285,   285,   285,   285,   285,   285,
867    286,   286,   286,   286,   286,   286,   286,   286,   286,   287,
868    287,   287,   288,   288,   288,   289,   289,   290,   290,   291,
869    291,   292,   292,   292,   292,   293,   293,   294,   294,   294,
870    295,   295,   296,   296,   297,   297,   297,   298,   298,   299,
871    299,   300,   301,   302,   302,   302,   302,   303,   303,   304,
872    304,   304,   304,   304,   304,   305,   305,   305,   305,   305,
873    305,   306,   306,   307,   307,   307,   308,   309,   309,   310,
874    310,   310,   310,   310,   310,   311,   311,   311,   311,   311,
875    311,   312,   312,   312,   312,   312,   312,   313,   313,   314,
876    314,   315,   315,   316,   316,   316,   317,   317,   317,   318,
877    318,   318,   319,   319,   319,   319,   320,   320,   321,   321,
878    321,   321,   322,   322,   322,   322,   323,   323,   323,   323,
879    323,   323,   324,   325,   325,   325,   326,   326,   327,   328,
880    328,   328,   328,   328,   328,   328,   329,   329,   330,   330,
881    331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
882    331,   332,   332,   332,   332,   332,   332,   332,   332,   332,
883    332,   332,   333,   333,   333,   333,   334,   335,   335,   336,
884    336,   337,   338,   338,   340,   339,   342,   343,   341,   344,
885    345,   344,   346,   346,   347,   347,   348,   347,   347,   349,
886    350,   347,   351,   352,   347,   353,   354,   355,   356,   347,
887    357,   358,   347,   359,   347,   360,   347,   361,   347,   347,
888    347,   347,   347,   347,   347,   347,   347,   347,   347,   347,
889    347,   347,   347,   347,   347,   347,   363,   364,   362,   366,
890    367,   365,   368,   368,   370,   371,   369,   372,   372,   373,
891    373,   374,   374,   374,   374,   375,   375,   375,   376,   376,
892    377,   377,   377,   378,   378,   379,   379,   380,   381,   381,
893    382,   382,   382,   383,   383,   383,   383,   383,   383,   383,
894    385,   384,   386,   386,   387,   387,   387,   387,   387,   388,
895    388,   389,   389,   389,   389,   389,   389,   390,   390,   391,
896    391,   392,   393,   393,   394,   394,   394,   395,   396,   396,
897    397,   397,   397,   397,   398,   399,   399,   399,   399,   399,
898    399,   399,   399,   399,   399,   399,   399,   399,   399,   399,
899    399,   399,   399,   399,   399,   399,   399,   399,   399,   399,
900    399,   399,   399,   399,   399,   399,   399,   399,   399,   399
901 };
902
903 static const short yyr2[] = {     0,
904      0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
905      1,     0,     2,     2,     1,     1,     5,     4,     5,     4,
906      0,     6,     0,     5,     1,     2,     1,     2,     0,     6,
907      2,     3,     3,     3,     3,     4,     0,     5,     2,     3,
908      1,     1,     2,     2,     1,     2,     0,     5,     3,     1,
909      3,     1,     0,     2,     2,     3,     1,     3,     1,     3,
910      1,     3,     2,     2,     2,     1,     1,     5,     4,     2,
911      2,     3,     3,     2,     2,     3,     3,     2,     2,     2,
912      2,     2,     1,     1,     1,     0,     1,     2,     0,     1,
913      4,     3,     3,     0,     8,     5,     0,     9,     6,     0,
914      8,     5,     0,     9,     6,     2,     2,     1,     2,     1,
915      6,     4,     6,     4,     2,     1,     2,     2,     1,     2,
916      1,     2,     2,     4,     2,     3,     0,     0,     1,     3,
917      2,     3,     1,     4,     2,     4,     2,     4,     2,     1,
918      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
919      0,     6,     0,     6,     0,     5,     0,     5,     0,     7,
920      0,     7,     0,     6,     0,     6,     0,     0,     5,     5,
921      1,     1,     5,     5,     0,     1,     1,     0,     1,     1,
922      3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
923      1,     1,     3,     1,     3,     0,     1,     1,     0,     7,
924      1,     1,     3,     4,     3,     0,     3,     1,     3,     3,
925      3,     3,     1,     1,     1,     2,     2,     2,     2,     2,
926      2,     2,     4,     2,     4,     2,     3,     3,     4,     5,
927      6,     6,     7,     2,     4,     5,     2,     2,     1,     0,
928      4,     4,     3,     1,     3,     2,     3,     4,     1,     2,
929      5,     1,     3,     3,     3,     3,     3,     3,     3,     3,
930      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
931      3,     5,     3,     3,     1,     2,     3,     3,     1,     1,
932      1,     1,     1,     0,     5,     5,     5,     5,     5,     1,
933      1,     1,     1,     2,     1,     2,     2,     3,     4,     4,
934      1,     1,     1,     3,     1,     1,     1,     1,     3,     3,
935      3,     0,     4,     4,     2,     4,     2,     4,     2,     2,
936      1,     4,     1,     7,     7,     7,     7,     4,     4,     2,
937      2,     2,     1,     4,     2,     2,     5,     3,     2,     2,
938      5,     3,     5,     3,     4,     6,     2,     1,     2,     1,
939      2,     1,     1,     1,     2,     0,     2,     2,     3,     3,
940      3,     2,     2,     2,     1,     1,     1,     2,     2,     2,
941      2,     1,     1,     1,     1,     2,     2,     3,     3,     3,
942      4,     1,     2,     2,     2,     1,     1,     1,     2,     2,
943      2,     1,     1,     2,     2,     3,     1,     2,     1,     1,
944      1,     4,     4,     4,     4,     1,     1,     1,     1,     3,
945      1,     3,     1,     3,     0,     4,     0,     6,     3,     0,
946      4,     1,     3,     3,     0,     4,     3,     0,     1,     1,
947      2,     6,     1,     3,     0,     1,     4,     6,     4,     1,
948      1,     1,     1,     1,     3,     0,     2,     1,     2,     3,
949      4,     1,     1,     3,     4,     3,     5,     1,     4,     3,
950      3,     0,     3,     3,     3,     0,     2,     2,     0,     7,
951      4,     0,     6,     3,     2,     2,     2,     0,     0,     0,
952     10,     1,     0,     1,     0,     1,     1,     2,     2,     2,
953      2,     2,     2,     2,     2,     2,     3,     4,     3,     2,
954      3,     1,     0,     3,     2,     2,     1,     1,     0,     2,
955      3,     1,     4,     1,     3,     1,     1,     4,     4,     2,
956      2,     3,     3,     0,     1,     3,     2,     2,     1,     2,
957      2,     2,     2,     2,     2,     2,     1,     2,     2,     3,
958      2,     2,     4,     4,     2,     1,     5,     4,     1,     0,
959      1,     3,     0,     1,     3,     1,     1,     1,     1,     4,
960      4,     4,     4,     4,     3,     4,     4,     4,     4,     3,
961      1,     3,     1,     3,     2,     1,     7,     0,     2,     1,
962      2,     0,     2,     4,     4,     2,     4,     1,     2,     3,
963      3,     2,     2,     3,     1,     4,     4,     3,     3,     2,
964      1,     1,     2,     1,     1,     2,     2,     1,     2,     3,
965      3,     2,     2,     3,     1,     3,     3,     2,     2,     3,
966      1,     4,     3,     4,     3,     1,     2,     2,     2,     2,
967      2,     1,     2,     4,     4,     2,     1,     1,     1,     1,
968      2,     4,     2,     2,     2,     2,     1,     2,     2,     2,
969      2,     3,     1,     2,     3,     4,     2,     2,     2,     2,
970      2,     2,     4,     2,     1,     2,     2,     3,     1,     3,
971      2,     3,     2,     2,     3,     1,     3,     4,     1,     2,
972      3,     2,     2,     1,     3,     2,     2,     1,     2,     3,
973      1,     3,     1,     6,     4,     4,     3,     5,     3,     3,
974      3,     2,     1,     1,     2,     2,     2,     0,     1,     1,
975      2,     3,     1,     2,     0,     3,     0,     0,     5,     1,
976      0,     2,     1,     1,     1,     2,     0,     4,     1,     0,
977      0,     5,     0,     0,     7,     0,     0,     0,     0,    12,
978      0,     0,     7,     0,     5,     0,     7,     0,     4,     2,
979      2,     2,     3,     6,     8,    10,    12,     4,     3,     2,
980      2,     1,     1,     1,     1,     1,     0,     0,     6,     0,
981      0,     5,     1,     2,     0,     0,     5,     1,     1,     3,
982      3,     2,     2,     2,     2,     2,     1,     2,     0,     1,
983      0,     1,     1,     0,     1,     1,     3,     4,     1,     3,
984      0,     1,     1,     1,     2,     2,     2,     1,     2,     2,
985      0,     3,     1,     1,     1,     2,     2,     2,     4,     2,
986      2,     2,     2,     2,     2,     1,     2,     1,     2,     1,
987      1,     0,     0,     1,     0,     4,     2,     1,     1,     3,
988      0,     3,     3,     3,     1,     2,     2,     2,     2,     2,
989      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
990      2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
991      2,     2,     2,     3,     2,     2,     4,     4,     3,     2
992 };
993
994 static const short yydefact[] = {     3,
995     12,    12,     5,     0,     4,     0,   281,   637,   638,     0,
996    388,   400,   580,     0,    11,     0,     0,     0,    10,   487,
997    845,     0,     0,     0,   167,   669,   282,   283,    83,     0,
998      0,   832,     0,    45,     0,     0,    13,    25,     0,    27,
999      8,     0,    16,    15,    89,   110,    86,     0,   639,   171,
1000    302,   279,   303,   615,     0,   375,     0,   374,   393,     0,
1001    413,   392,   430,   399,     0,   502,   503,   509,   508,   507,
1002    482,   387,   604,   401,   605,   108,   301,   626,   602,     0,
1003    640,   578,     0,     0,   280,    81,    82,   178,   643,   178,
1004    644,   178,   284,   167,   140,   141,   142,   143,   144,   472,
1005    475,     0,   665,     0,   476,     0,     0,     0,     0,   141,
1006    142,   143,   144,    23,     0,     0,     0,     0,     0,     0,
1007      0,   477,   647,     0,   653,     0,     0,     0,    37,     0,
1008      0,    31,     0,     0,    47,     0,   178,   645,     0,     0,
1009      0,   613,   608,     0,     0,     0,   612,     0,     0,     0,
1010      0,   302,     0,   293,   582,     0,     0,   301,   578,    28,
1011      0,    26,     3,    46,     0,    64,   388,     0,     0,     8,
1012     67,    63,    66,    89,     0,     0,     0,   399,    90,    14,
1013      0,   428,     0,     0,   446,    87,    79,   646,   582,     0,
1014    578,    80,     0,     0,     0,   106,     0,   409,   365,   595,
1015    366,   601,     0,   578,   390,   389,    78,   109,   376,     0,
1016    411,   391,   107,   382,   406,   407,   377,   395,   397,   386,
1017    408,     0,    75,   431,   488,   489,   490,   491,   506,   149,
1018    148,   150,   493,   494,   172,   500,   492,     0,     0,   495,
1019    496,   509,   832,   505,   478,   581,   394,     0,   425,   638,
1020      0,   667,   171,   630,   631,   627,   607,   641,     0,   606,
1021    603,     0,   880,   876,   875,   873,   855,   860,   861,     0,
1022    867,   866,   852,   853,   851,   870,   859,   856,   857,   858,
1023    862,   863,   849,   850,   846,   847,   848,   872,   864,   865,
1024    854,   871,     0,   868,   778,   393,   779,   841,   284,   281,
1025    580,   306,   354,     0,     0,     0,     0,   350,   348,   321,
1026    352,   353,     0,     0,     0,     0,     0,   282,   283,   275,
1027      0,     0,   186,   185,     0,   187,   188,     0,     0,   189,
1028      0,     0,   179,   180,     0,   249,     0,   252,   184,   305,
1029    215,     0,     0,   307,   308,     0,   182,   372,   393,   373,
1030    632,   333,   323,     0,     0,     0,     0,   178,     0,   474,
1031      0,   469,     0,   666,   664,     0,   190,   191,     0,     0,
1032      0,   435,     3,    21,    29,   661,   657,   658,   660,   662,
1033    659,   140,   141,   142,     0,   143,   144,   649,   650,   654,
1034    651,   648,     0,   291,   292,   290,   629,   628,    33,    32,
1035     49,     0,   157,     0,     0,   393,   155,     0,     0,   609,
1036    611,     0,   610,   141,   142,   277,   278,   297,     0,   619,
1037    296,     0,   618,     0,   304,   282,   283,     0,     0,     0,
1038    295,   294,   623,     0,     0,    12,     0,   167,     9,     9,
1039     70,     0,    65,     0,     0,    71,    74,     0,   427,   429,
1040    122,    93,   127,   767,     0,    85,    84,    92,   125,     0,
1041      0,   123,    88,   625,     0,     0,   586,     0,   835,     0,
1042      0,   593,   588,     0,   592,     0,     0,     0,     0,     0,
1043    578,   428,     0,    77,   582,   578,   600,     0,   379,   380,
1044      0,    76,   428,   384,   383,   385,   378,   398,   415,   414,
1045    178,   497,   501,   499,     0,   504,   510,     0,   396,   428,
1046    578,    94,     0,     0,     0,     0,   578,   100,   579,   614,
1047    638,   668,   171,     0,     0,   869,   874,   395,   578,   578,
1048      0,   578,   879,   178,     0,     0,     0,   222,     0,     0,
1049    224,   237,   238,     0,     0,     0,     0,     0,   276,   221,
1050    218,   217,   219,     0,     0,     0,     0,     0,   305,     0,
1051      0,     0,   216,   176,   177,   299,     0,   220,     0,     0,
1052    250,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1053      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1054      0,     0,     0,   315,     0,   317,   319,   320,   358,   357,
1055      0,     0,   240,   240,     0,   226,   576,     0,   234,   355,
1056    347,     0,     0,   832,   336,   339,   340,     0,     0,   367,
1057    688,   684,   693,     0,   582,   578,   578,   578,   369,   691,
1058      0,   636,   371,     0,     0,   370,   335,     0,   330,   349,
1059    331,   351,   633,     0,   332,   175,   175,     0,   165,     0,
1060    393,   163,   573,   485,   571,   471,     0,     0,   402,     0,
1061      0,   403,   404,   405,   441,   442,   443,   440,     0,   433,
1062    436,     0,     3,     0,   652,   178,   655,     0,    41,    42,
1063      0,    53,     0,     0,    57,    61,    50,   831,   826,     0,
1064    372,   393,    53,   373,   830,    59,   168,   153,   151,   168,
1065    175,   300,   617,   616,   304,     0,   620,     0,    18,    20,
1066     89,     9,     9,    73,    72,     0,   128,   356,     0,   715,
1067     91,   713,   452,     0,   448,   447,   214,     0,   213,   583,
1068    624,     0,   808,     0,   803,   393,     0,   802,   804,   833,
1069    815,     0,     0,   622,   589,   591,   590,     0,     0,     0,
1070      0,     0,     0,   578,   599,     0,   423,   422,   410,   598,
1071      0,   835,   594,   381,   412,   424,   428,     0,   498,   637,
1072    638,   832,     0,   832,   639,   511,   512,   514,   832,   517,
1073    516,     0,   546,   638,     0,   537,     0,     0,   549,     0,
1074    121,   116,     0,   171,   550,   553,     0,     0,   529,     0,
1075    119,   426,   835,   801,   178,   178,   642,   178,   835,   801,
1076    578,    97,   578,   103,   878,   877,   841,   841,   841,     0,
1077      0,     0,     0,   636,     0,     0,     0,     0,   393,     0,
1078      0,     0,   311,     0,   309,   310,     0,   247,   181,   281,
1079    637,   638,   282,   283,     0,     0,   453,   483,     0,   274,
1080    273,   793,   792,     0,   271,   270,   268,   269,   267,   266,
1081    265,   262,   263,   264,   260,   261,   255,   256,   257,   258,
1082    259,   253,   254,     0,     0,     0,     0,     0,   240,   228,
1083    244,     0,     0,   227,   578,   578,     0,   578,   575,   676,
1084      0,     0,     0,     0,     0,   338,     0,   342,     0,   344,
1085      0,     0,   687,   686,   679,   683,   682,   831,   392,     0,
1086      0,   702,     0,     0,   835,   368,   835,   689,   578,   801,
1087    582,   688,   684,     0,     0,   578,     0,   392,     0,     0,
1088      0,     0,   170,   174,   285,   168,   161,   159,   168,     0,
1089    486,     0,   485,   212,   211,   210,   209,   435,     0,     0,
1090     24,     0,     0,   656,     0,    38,    44,    43,    55,    52,
1091     53,     0,    48,     0,     0,   688,   684,     0,   822,   578,
1092    825,   827,     0,   823,   824,    54,   493,     0,   158,   168,
1093    168,   156,   169,   298,    17,    19,    69,    89,   416,   145,
1094    133,   146,   147,     0,   126,   129,     0,     0,     0,     0,
1095    714,   708,   449,     0,   124,   587,   584,   807,   821,   810,
1096      0,   585,   806,   820,   809,   805,   834,   817,   828,   818,
1097    811,   816,   837,     0,     0,     0,     0,   420,   597,   596,
1098    419,   175,   521,     0,   520,   832,   832,   832,     0,   578,
1099    801,   545,   538,   550,   539,   428,   428,   535,   536,   533,
1100    534,   578,   801,   281,   637,     0,   415,   117,   541,   551,
1101    556,   557,   415,   415,     0,     0,   415,   115,   542,   554,
1102    415,     0,   428,     0,   530,   531,   532,   428,    96,     0,
1103      0,     0,     0,   102,     0,   835,   801,   835,   801,   843,
1104    842,   844,   286,   322,   223,   225,   328,   329,     0,     0,
1105      0,     0,   310,   313,     0,     0,     0,     0,   248,     0,
1106    314,   316,   318,     0,     0,     0,     0,   229,   246,     0,
1107      0,   673,   671,     0,   674,   582,   235,     0,     0,   178,
1108    345,     0,     0,     0,   680,   685,   681,   692,   578,   701,
1109    699,   700,   690,   835,     0,   697,     0,     0,   634,   635,
1110    688,   684,     0,     0,   334,   166,   168,   168,   164,   574,
1111    572,   473,     0,   434,   432,   281,     0,    22,    30,   663,
1112     56,    51,    58,    62,     0,   687,   683,   688,   684,     0,
1113    392,   602,     0,   578,   689,    60,   154,   152,    68,     0,
1114    131,     0,   135,     0,   137,     0,   139,     0,   768,     0,
1115    202,   716,     0,   709,   710,     0,   450,   688,   684,     0,
1116    305,     0,   632,   829,     0,     0,   838,   839,     0,     0,
1117      0,     0,     0,     0,   417,   173,     0,     0,     0,   523,
1118    522,   515,   835,     0,   540,   446,   446,   835,     0,     0,
1119      0,   428,   428,     0,   428,   428,     0,   428,     0,   528,
1120    479,     0,   446,   578,   288,   287,   289,   578,    99,     0,
1121    105,     0,     0,     0,     0,     0,     0,   456,     0,   454,
1122    251,   272,   242,   241,   239,   230,     0,   243,   245,   672,
1123    670,   677,   675,     0,   236,     0,     0,   337,   341,   343,
1124    835,   695,   578,   696,   162,   160,   470,     0,   437,   439,
1125      0,   687,   683,   688,   684,     0,   578,   607,   689,   132,
1126    130,     0,     0,     0,     0,   444,     0,     0,   281,   637,
1127    638,   717,   730,   733,   736,   741,     0,     0,     0,     0,
1128      0,     0,     0,     0,   282,   762,   770,     0,   789,   766,
1129    765,   764,     0,   725,     0,     0,   393,     0,   704,   723,
1130    729,   703,   724,   763,     0,   711,   451,     0,   635,   819,
1131    813,   814,   812,     0,   836,   421,     0,   518,   519,   513,
1132    112,   578,   544,   548,   114,   578,   428,   428,   565,   446,
1133    281,   637,     0,   552,   558,   559,   415,   415,   446,   446,
1134      0,   446,   555,   466,   543,   835,   835,   578,   578,     0,
1135      0,     0,     0,   455,     0,     0,   231,   232,   678,   346,
1136    287,   698,   835,     0,   687,   683,     0,   689,   134,   136,
1137    138,   775,   769,   773,     0,   712,   707,   205,   782,   784,
1138    785,     0,     0,   721,     0,     0,     0,   748,   750,   751,
1139    752,     0,     0,     0,     0,     0,     0,     0,   783,     0,
1140    364,   790,     0,   726,   362,   415,     0,   363,     0,   415,
1141      0,     0,     0,   203,   706,   705,   727,   761,   760,   310,
1142    840,   418,   835,   835,   564,   561,   563,     0,     0,   428,
1143    428,   428,   560,   562,   547,     0,    95,   101,   835,   835,
1144    324,   325,   326,   327,   457,     0,   233,   694,   438,   688,
1145    684,     0,     0,     0,   774,   445,   194,     0,   718,   731,
1146    720,     0,     0,     0,     0,     0,   744,     0,   753,     0,
1147    759,    39,   144,    34,   144,     0,    35,   771,     0,   360,
1148    361,     0,     0,     0,   359,   204,   721,   111,   113,   428,
1149    428,   570,   446,   446,   468,     0,   467,   462,    98,   104,
1150    577,   392,     0,   776,   201,     0,   393,     0,   721,     0,
1151    734,   722,   708,   787,   737,     0,     0,     0,     0,   749,
1152    758,    40,    36,     0,     0,   728,   569,   567,   566,   568,
1153      0,     0,   481,     0,     0,     0,   195,   415,   719,   206,
1154    732,   208,     0,   788,     0,   786,   742,   746,   745,   772,
1155    794,     0,   465,   464,   458,    86,    89,   780,   781,   777,
1156    428,   708,   192,     0,     0,   198,     0,   197,   721,     0,
1157      0,     0,   795,   796,   754,     0,   463,     0,   207,     0,
1158    735,   738,   743,   747,     0,   794,     0,     0,   461,     0,
1159    460,   199,   193,     0,     0,     0,   755,   797,   459,     0,
1160      0,   798,     0,     0,   200,   739,   799,     0,   756,     0,
1161      0,     0,   740,   800,   757,     0,     0,     0
1162 };
1163
1164 static const short yydefgoto[] = {  1666,
1165    436,     2,   437,   165,   710,   331,   181,     3,     4,    37,
1166    673,   373,  1340,   674,   789,  1341,  1342,   393,  1447,   678,
1167     41,   790,   402,   684,   959,   685,   686,   687,    43,   172,
1168    173,    44,   455,   184,   180,    45,    46,   804,  1087,   810,
1169   1089,    47,   792,   793,   185,   186,   456,   717,   995,   996,
1170    653,   997,   234,    48,   981,   980,   700,   697,  1158,  1157,
1171    939,   936,   136,   979,    49,   236,    50,   933,   566,   332,
1172    333,   334,   335,  1343,  1615,  1509,  1617,  1556,  1650,  1202,
1173   1591,  1612,   367,   925,   336,  1276,   877,   605,   884,   337,
1174    338,   368,   340,   358,    52,   255,   679,   418,   154,    53,
1175     54,   341,   561,   342,   343,   344,   345,   457,   346,  1344,
1176    499,   627,   347,  1345,    56,   217,   690,   348,   218,   539,
1177    219,   197,   210,    60,   482,   500,  1367,   757,  1224,   198,
1178    211,    61,   510,   758,    62,    63,   669,   670,   671,  1317,
1179    462,   847,   848,  1606,  1607,  1583,  1547,  1486,    64,   657,
1180    361,   508,  1394,  1548,  1108,   942,    65,    66,    67,    68,
1181     69,   242,    70,    71,   244,   776,   777,   778,   779,   797,
1182   1074,   798,   799,   800,  1059,  1069,  1060,  1384,  1061,  1062,
1183   1385,  1386,   654,   655,   606,   915,   350,   465,   466,   191,
1184    480,   473,   200,    73,    74,    75,   142,   143,   157,    77,
1185    132,   351,   352,   353,    79,   354,    81,   781,   123,   124,
1186    125,   515,   105,    82,   355,   889,   890,   910,   905,   630,
1187   1348,  1349,  1203,  1204,  1205,   721,  1350,  1002,  1351,  1432,
1188   1559,  1512,  1513,  1352,  1353,  1537,  1433,  1560,  1434,  1593,
1189   1435,  1595,  1644,  1660,  1436,  1619,  1569,  1620,  1518,   458,
1190    718,  1315,  1354,  1450,  1574,  1423,  1424,  1504,  1586,  1558,
1191   1554,  1355,  1565,  1453,   854,  1622,  1623,  1624,  1658,   737,
1192    911,  1022,  1216,  1363,   739,   740,   741,  1018,   742,   148,
1193   1020,   744,  1218,  1219,   533,    84,    85
1194 };
1195
1196 static const short yypact[] = {   108,
1197    127,-32768,-32768,  6638,-32768,    55,    57,    72,   240,    62,
1198    142,-32768,-32768,   625,-32768,   150,   208,   211,-32768,-32768,
1199 -32768,   756,   883,  1366,   130,-32768,   188,   338,-32768,  2656,
1200   2656,-32768,   422,-32768,  6638,   223,-32768,-32768,   279,-32768,
1201     98,  4351,-32768,-32768,   268,   823,   365,   293,   423,-32768,
1202 -32768,-32768,-32768,   123,  3083,-32768,  6545,-32768,  2122,   781,
1203 -32768,   465,-32768,-32768,  2046,   404,-32768,   436,-32768,-32768,
1204    474,  4127,-32768,-32768,-32768,  1037,-32768,-32768,-32768,  2040,
1205 -32768,-32768,   431,  3562,   460,-32768,-32768, 10933,-32768, 10933,
1206 -32768, 10933,-32768,-32768,-32768,    72,   240,   188,   503,   458,
1207    523,   423,-32768,   621,-32768,   431, 11019, 11019,   491,-32768,
1208 -32768,-32768,-32768,-32768,   330,   541,   579,   772,   794,   552,
1209    558,-32768,-32768,   897,-32768,   618,    72,   240,-32768,   188,
1210    503,-32768,  1941,  1787,   556, 12117, 10933,-32768, 10933,  6884,
1211   4421,-32768,-32768,  2343,   606,  4421,-32768,   764,  4782,  4782,
1212    422,   508,   551,-32768,   555,  1198,   577,   589,-32768,-32768,
1213    676,-32768,   591,-32768,  4576,-32768,-32768,   130,  3913,   613,
1214 -32768,-32768,-32768,   268,  1640, 12172,   868,   655,-32768,-32768,
1215    628,   465,   745,   137,   283,   695,-32768,-32768,   653,   187,
1216 -32768,-32768,  5207,  5207,  6890,  1037,   903,-32768,-32768,   242,
1217 -32768,-32768,  3275,-32768,-32768,-32768,-32768,-32768,  2122,   909,
1218 -32768,   465,  1037,-32768,-32768,-32768,  2314,  2122,-32768,   465,
1219 -32768,  1640,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1220 -32768,-32768,   703,-32768,   423,-32768,   465,  1413,  1023,-32768,
1221 -32768,   436,-32768,-32768,-32768,-32768,  1086,   431,-32768,   526,
1222    777,-32768,   316,-32768,-32768,-32768,-32768,-32768,  5793,-32768,
1223 -32768,   251,-32768,   704,   709,-32768,-32768,-32768,-32768,   760,
1224 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1225 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1226 -32768,-32768,   714,-32768,-32768,  1086,  4127,   578,-32768,-32768,
1227    736,-32768,-32768, 11627, 11713, 11799, 11799,-32768,-32768,-32768,
1228 -32768,-32768,   738,   763,   773,   804,   824,  1205,   503, 11105,
1229   1446, 11799,-32768,-32768, 11799,-32768,-32768, 11799,  8717,-32768,
1230  11799,   328,   844,-32768, 11799,-32768, 11191,-32768, 12355,   367,
1231   1836,  3337, 11277,-32768,   894,  2675,-32768,  2485,  3147,  5599,
1232 -32768,   368,-32768,  2011,  2176,   328,   328, 10933, 12117,-32768,
1233   1446,   800,  1446,-32768,-32768,   816,   871, 12288,   848,   849,
1234    872,  1718,   591,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1235 -32768,   541,   579,   772,  1446,   794,   552,   920,   558,-32768,
1236    955,-32768,  1549,    72,   240,-32768,-32768,-32768,-32768,-32768,
1237 -32768, 12226,-32768,  1640,  5776,  1791,-32768,   328,   817,-32768,
1238 -32768,   466,-32768,   932,   941,-32768,-32768,-32768,  4421,-32768,
1239 -32768,  4421,-32768,   913,-32768,-32768,-32768,  1198,  1198,  1198,
1240 -32768,-32768,-32768,  5793,    95,   914,   925,-32768,-32768,-32768,
1241 -32768, 12117,-32768,   931,   937,-32768,-32768,   676,-32768,   465,
1242 -32768,-32768,-32768,-32768,   111,-32768,-32768,-32768,-32768,  9269,
1243  11105,-32768,-32768,-32768, 11105,   935,-32768,  5148,   113,  7300,
1244   5886,-32768,-32768,  5886,-32768,  6144,  6144,  6890,  7304,   943,
1245 -32768,   465,  1640,-32768,   946,-32768,-32768,  6312,  2314,  2122,
1246   1640,-32768,   465,-32768,-32768,   465,  2314,-32768,  1016,-32768,
1247  10933,   703,-32768,-32768,  1413,-32768,   944,  5002,  1086,   465,
1248 -32768,-32768,   986,   988,  1013,   995,-32768,-32768,-32768,-32768,
1249    731,-32768,   427,   967,   970,-32768,-32768,  1086,-32768,-32768,
1250    647,-32768,-32768, 10933, 11105,   736,  8717,-32768,   500,  8717,
1251 -32768,-32768,-32768, 11019,  6398,  6398,  6398,  6398, 12333,-32768,
1252 -32768,-32768,-32768,   974, 11369, 11369,  8717,   976,    49,   978,
1253   1032,   984,-32768,-32768,-32768,-32768, 10933,-32768,  8808,  8717,
1254 -32768, 11105, 11105,  7914, 11105, 11105, 11105, 11105, 11105, 11105,
1255  11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105,
1256  11105, 11105, 11105,-32768, 11105,-32768,-32768,-32768,-32768,-32768,
1257  11105, 11105,-32768,-32768,  2929,   285,   662,  9810,-32768,-32768,
1258 -32768,  1044,   777,  1094,   509,   515,   522,  2194,   606,-32768,
1259   1931,  1931,-32768,  6174,   993,  1024,  1059,-32768,-32768,   313,
1260  10308,  1046,-32768,   805,   431,-32768,-32768, 11105,-32768,-32768,
1261 -32768,-32768,-32768,   192,   460,-32768,-32768,   328,-32768,  1640,
1262   1850,-32768,  1045,  1057,-32768,-32768,  1446,   920,-32768,  9542,
1263   9633,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    58,-32768,
1264   1026,  1029,   591,  1549,  1071, 10933,-32768,  1081,-32768,-32768,
1265   1787,  1616,  1106,   406,  1079,  1082,-32768,-32768,  2205, 12172,
1266   2205,  4040,  2046, 11935,-32768,  1083,-32768,-32768,-32768,-32768,
1267 -32768,-32768,-32768,-32768,  1050,  1051,-32768,  1092,-32768,-32768,
1268    268,-32768,-32768,-32768,-32768,    99,  1218,  1103,  1032,-32768,
1269 -32768,-32768,-32768,  5532, 12333,-32768,   871,  1060, 12288,-32768,
1270 -32768,  1061,-32768,  1067,   496,  4877,  1073,-32768,    75,  7833,
1271   1118,  1120,   525,-32768,-32768,-32768,-32768,  5886,  5886,  6444,
1272   6444,  7304,   805,-32768,-32768,  6312,-32768,  1124,-32768,-32768,
1273   1056,   113,-32768,  2314,-32768,-32768,   465,  1114,-32768,   579,
1274    772,-32768,  1098,-32768,   558,  1134,-32768,-32768,   524,-32768,
1275 -32768,  1482,-32768,   896,   928,-32768, 11105, 11867,-32768, 11867,
1276    122,   122,   315,   557,  6631, 11990,    93,  5893,-32768,    69,
1277    122,-32768,   113,  4217, 10933, 10933,-32768, 10933,   113,  4217,
1278 -32768,-32768,-32768,-32768,-32768,-32768,   637,   637,   637,   328,
1279   1087,  1089, 10584,  1059,  1095,  1097,  1099,  1125,  5395,  1133,
1280   1135,  1138,-32768,  1111,-32768,-32768,  1117,-32768,-32768,  1153,
1281    733,   734,   432,   171, 11105,  1165,-32768,  1171,  1127, 12333,
1282  12333,-32768,-32768,  1178, 12373, 12390,  6994,  3455,  3620,  4256,
1283   3132,  1790,  1790,  1790,  2527,  2527,  1322,  1322,   707,   707,
1284    707,-32768,-32768,  1139,  1141,  1132, 11105, 11019,-32768,   285,
1285 -32768,  9269, 11105,-32768,-32768,-32768, 11105,-32768,-32768,  1152,
1286  11799,  1142,  1162,  1185,  1216,-32768, 11105,-32768, 11105,-32768,
1287  11105,  1948,  3403,-32768,-32768,  3403,-32768,   156,  1948,  1144,
1288   1158,-32768,  1159,  6398,   113,-32768,   113,  4475,-32768,  4217,
1289   1166,  4662,  4662,  8438,  1161, 11191,  1168,  3753,  3684,  2176,
1290   1107,  1175,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 11105,
1291   1446,  1164,  1057,-32768, 12333,-32768, 12333,  1718,  1177, 11455,
1292 -32768,  1181,  1234,-32768,   328,-32768,-32768,-32768,-32768,-32768,
1293   1576, 12226,-32768,  6398, 10933,  3002,  3002,  5308,-32768,-32768,
1294 -32768,-32768,  3275,-32768,-32768,-32768,  1239, 11105,-32768,-32768,
1295 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   268,-32768,   541,
1296 -32768,   794,   552, 11105,  1237,-32768,   641,   652,   661,  1032,
1297 -32768,    83,-32768,    32,-32768,-32768,-32768,-32768,-32768,-32768,
1298  10400,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1120,  1233,
1299 -32768,-32768,-32768,  6398,   968,   968,  1732,-32768,-32768,-32768,
1300   1235,-32768,-32768, 11019,-32768,-32768,-32768,-32768,  1475,-32768,
1301   4217, 12333,-32768,  2422,-32768,   465,   465,-32768,-32768,-32768,
1302 -32768,-32768,  4217,   451,   789, 11105,  1016,-32768,  1242,-32768,
1303 -32768,-32768,   215,   226,  2040,   606,   396,   122,  1245,-32768,
1304    459,  1244,   465,  7092,-32768,-32768,-32768,   465,-32768,  1199,
1305    328,   328,   328,-32768,  1200,   113,  4217,   113,  4217,-32768,
1306 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1217,  1223,
1307   1229,  1230,  1050,-32768, 12221,  9269,  8902,  1215,-32768, 11105,
1308 -32768,-32768,-32768,  1219,  1224,  1225,  6398,-32768,-32768,  1227,
1309    190,   861,   861,  1214,   861,-32768,-32768, 11799,  1319, 10933,
1310 -32768,  1228,  1231,  1232,-32768,-32768,-32768,-32768,-32768,-32768,
1311 -32768,-32768,-32768,   113,  1238,-32768,  1226,  3753,-32768,-32768,
1312   3264,  3264,  5989,  3811,-32768,-32768,-32768,-32768,-32768, 12333,
1313 -32768,-32768,  1236,-32768,-32768,   153,  1240,-32768,-32768,-32768,
1314 -32768,-32768,-32768,-32768,  5660,  3422,  3422,  4112,  4112,  5308,
1315   5772,    54,  3275,-32768,  4229, 12355,-32768,-32768,-32768,  1246,
1316 -32768,  1218,-32768, 11105,-32768, 11105,-32768, 11105,-32768,  1446,
1317 -32768,-32768,  8345,  1308,-32768,  8993,-32768, 10492, 10492,  8532,
1318    182,  1247,   250,-32768,  9269,  9084,-32768,-32768,   155,  2164,
1319   2164,  1688,  1688,  9269,-32768,-32768,  1251,  1254,   944,-32768,
1320 -32768,-32768,   113,  1256,-32768,  1279,  1279,   113,  1257, 11105,
1321  11105,  7597,   465,  6764,   465,   465,  1129,   465,  7497,-32768,
1322 -32768,  7702,  1279,-32768,-32768,  1296,-32768,-32768,-32768,  1266,
1323 -32768,  1270, 11105, 11105, 11105, 11105,  9269,-32768,  1291,-32768,
1324 -32768, 12333,-32768,-32768,-32768,   471,  1225,-32768,-32768,-32768,
1325 -32768,-32768,-32768,  1268,-32768,  1334,   328,-32768,-32768,-32768,
1326    113,-32768,-32768,-32768,-32768,-32768,-32768, 11105,-32768,-32768,
1327   5772,  3422,  3422,  4771,  4771,  7427,-32768,   277,  4229,-32768,
1328 -32768,  1274,  1275,  1277,  1290,-32768,   952,   161,  1329,   810,
1329    819,-32768,-32768,-32768,-32768,-32768, 11105,  1330,  1335,  1336,
1330  10670,   262,  1446,   415,   583,-32768,-32768, 10761,  1385,-32768,
1331 -32768,-32768,  1349,-32768,  7537, 12058,  6768,  8235,-32768,-32768,
1332   1403,-32768,-32768,-32768,  9919,-32768,-32768,  1321,  1381,-32768,
1333 -32768,-32768,-32768,  6398,-32768,-32768,  9269,-32768,-32768,-32768,
1334 -32768,-32768,-32768,-32768,-32768,-32768,  7597,  7597,-32768,  1279,
1335    594,   905, 11105,-32768,-32768,-32768,  1016,  1016,  1279,  1279,
1336    731,  1279,-32768,-32768,-32768,   113,   113,-32768,-32768,  1323,
1337   1324,  1325,  1340,-32768,  9269, 11105,-32768,   471,-32768,-32768,
1338 -32768,-32768,   113,  1344,  4799,  4799,   805,  6024,-32768,-32768,
1339 -32768,-32768,  1290,-32768,  1446,-32768,-32768,-32768,-32768,-32768,
1340 -32768,   665,   665,  1032,  1337,  1345,  7997,-32768,-32768,-32768,
1341 -32768,  1367, 11105,  1377,  1378,  1390,  1569,  1583,-32768,  1032,
1342 -32768,-32768,  1360,-32768,-32768,  1016,   958,-32768,   994,  1016,
1343  10847,  1014,   176,-32768,-32768,-32768,-32768,-32768,-32768,   336,
1344 -32768,-32768,   113,   113,-32768,-32768,-32768, 11105, 11105,  7597,
1345    465,   465,-32768,-32768,-32768,  8103,-32768,-32768,   113,   113,
1346 -32768,-32768,-32768,-32768,-32768,  1347,-32768,-32768,-32768,  7801,
1347   7801,  6295,  2286,  1369,-32768,-32768,-32768, 11019,-32768,-32768,
1348 -32768,  1442, 10215,  8626, 11019, 11105,-32768, 10027,-32768,  1400,
1349 -32768,-32768,  1409,-32768,  1390,  1569,-32768,-32768,   676,-32768,
1350 -32768, 11541, 11541,  9178,-32768,-32768,  1032,-32768,-32768,  7597,
1351   7597,-32768,  1279,  1279,-32768,  9724,-32768,-32768,-32768,-32768,
1352 -32768,  2286,  5469,-32768,-32768,  1357,   410,  1640,  1032, 10121,
1353 -32768,-32768,    83,-32768,-32768,  1406,  1363, 12311, 10027,-32768,
1354 -32768,-32768,-32768,  1290,    81,-32768,-32768,-32768,-32768,-32768,
1355   1365, 12243,  1376,  1373,  1382,  1032,-32768,  1016,-32768,-32768,
1356 -32768,-32768,   673,-32768,  9360,-32768,-32768,-32768,-32768,  1290,
1357   1466,  1436,-32768,-32768,-32768,   365,   268,-32768,-32768,-32768,
1358    465,    83,-32768, 11105,  1437,-32768,  1439,-32768,  1032, 10027,
1359   1414,   667,  1449,-32768,-32768,   186,-32768,  1451,-32768,  1405,
1360 -32768,-32768,-32768,-32768, 11105,  1466,  1463,  1466,-32768,   111,
1361 -32768,-32768,-32768,  9451,  1417,   685,-32768,-32768,-32768,  9269,
1362   1425,-32768,  1529,  1481,-32768,-32768,-32768,   179,-32768, 10121,
1363   1533,  1485,-32768,-32768,-32768,  1546,  1548,-32768
1364 };
1365
1366 static const short yypgoto[] = {-32768,
1367   1558,-32768,  -301,  1393,  -385,    29,     8,  1562,-32768,  1531,
1368 -32768,-32768,   265,-32768,   376,-32768,   382,-32768,   121,   901,
1369     37,    31,-32768,-32768,  -632,-32768,-32768,   608,    39,  1402,
1370   1136,  1427,  -703,   -24,  -172,     6,   116,-32768,-32768,-32768,
1371 -32768,-32768,   799,-32768,-32768,-32768,-32768,-32768,-32768,   412,
1372    687,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1373 -32768,-32768,  1502,  -668,  6906,  1364,    79,  -587,  -311,   -67,
1374   1469,  -518,-32768,  1604,-32768,   181,-32768, -1404,-32768, -1267,
1375    -45,-32768,  2063,  1435,  -283,   341,  -553,-32768,  -856,  6731,
1376   1649,  1869,  4947,  1331,  -325,   -99,   -92,  1646,  -129,   -51,
1377    246,-32768,-32768,-32768,  -339,-32768,  -153,-32768,-32768, -1273,
1378    -52,  -345,  6249,    40,  1515,  -124,   146,   347,  -191,    -4,
1379   -128,  -174,  -167,    -2,   174,    85,-32768,  -365,-32768,-32768,
1380 -32768,-32768,-32768,   274,  1342,   -57,-32768,   681,-32768,-32768,
1381  -1179,  -211,   907,-32768,-32768,-32768,-32768,-32768,    10,-32768,
1382 -32768,-32768,-32768,-32768,-32768,   693,  -366,-32768,-32768,-32768,
1383 -32768,-32768,-32768,-32768,  1396,-32768,   418,   611,-32768,-32768,
1384 -32768,   581,  -751,-32768,-32768,-32768,-32768,-32768,-32768,   862,
1385 -32768,   408,  1004,   722,  1062,  2110,   109,    22,  -471,  1465,
1386   3545,   353,-32768,  -494,-32768,    12,   291,   438,  -143,   740,
1387    -84,  5317,  1320,-32768,  6267,  2755,  1981,   -12,  -106,-32768,
1388   1550,   -65,-32768,  5689,  3720,  -372,-32768,  2404,  -165,-32768,
1389 -32768,   327,-32768,-32768,   472,    43,  -335,-32768,-32768,-32768,
1390 -32768, -1459,-32768, -1246, -1436,-32768,-32768,-32768,-32768,-32768,
1391 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    51,
1392 -32768,-32768,-32768,-32768,-32768,   106, -1361,-32768,-32768,   -56,
1393 -32768,-32768,-32768,-32768, -1447,    48,-32768,    50,-32768,  -685,
1394   -361,   672,-32768,-32768,-32768,-32768,  -392,-32768,  -383,  -180,
1395 -32768,   998,   322,-32768,   169,-32768,  -234
1396 };
1397
1398
1399 #define YYLAST          12474
1400
1401
1402 static const short yytable[] = {    59,
1403    444,   443,   196,   632,   224,   420,   423,   435,   445,   695,
1404    122,    36,   780,   761,  1000,   642,   516,   490,   696,   392,
1405    538,   541,   356,  1118,   357,   103,   432,   298,   256,   641,
1406     59,   982,    35,   397,    42,   693,  1043,    59,  1045,   177,
1407    398,   399,    36,    55,   646,   647,  1075,   174,   839,   400,
1408    878,   178,   209,   571,   711,   509,  1373,  1374,   391,   934,
1409    976,  1505,   507,    35,  1451,    42,  1566,   247,   221,   408,
1410    169,   672,    42,  1395,    55,   190,  1562,  1576,   170,   296,
1411    171,   175,   224,   349,   489,   349,  1013,   349,   495,   498,
1412   1206,   610,   256,   497,   260,   594,   701,   702,   224,  1589,
1413   -601,  1466,   349,   349,   528,   610,   738,    -1,  1469,   610,
1414   1567,   719,    72,   983,    86,  1200,   948,   364,  1080,   722,
1415    645,   519,   196,  1592,  1085,    89,    -2,   766,  1076,  1072,
1416     88,   406,   349,  1014,   349,    93,  1015,   452,   141,   146,
1417   1207,   595,  1601,    72,   802,    90,  -601,  -601,    15,    57,
1418     72,   256,  -415,   913,   224,   163,  -295,   528,   253,  1633,
1419     59,  -601,   224,    87,    59,   949,   177,  1008,   720,  -582,
1420    440,   209,   208,   743,   174,   404,   190,  1077,   178,   224,
1421     57,  -415,   629,   633,   636,  -415,  1639,   176,  1602,    94,
1422   1618,  1201,   297,   824,  -356,   164,  1651,   169,   453,    42,
1423   1477,  1073,   708,   135,    55,   170,   989,   171,   175,  1483,
1424   1484,  1298,  1485,  1364,  1009,  -582,   189,  1010,   221,   182,
1425   1427,   190,   998,  1592,   138,   837,   221,   221,  -302,   308,
1426   -415,   454,  -144,   467,  1145,  1427,   620,  1661,  1505,  -365,
1427   1564,    15,   107,  -356,    72,    26,   615,   453,   726,   249,
1428   -366,   403,    15,   616,     8,   521,   221,   419,   422,   260,
1429   1299,   137,  1365,   838,    95,   110,   111,  1156,    38,  1428,
1430   1159,  1570,  -365,    72,  -302,  -302,  -365,    72,   155,   468,
1431    454,   405,   823,  -366,  1536,   607,  1662,  -366,  -582,  -295,
1432    648,   208,   247,    91,   716,  1594,  -626,  1279,   363,    38,
1433    108,   471,   474,   109,   642,   221,   130,   131,   680,  -365,
1434     57,  1187,  1188,    92,   176,   161,   961,   112,   113,   675,
1435   -366,   147,  1599,  -600,   349,  1117,   987,   988,  1171,   459,
1436    522,   881,   420,   423,  -582,   485,   935,   296,   162,  1048,
1437    523,  1443,  -626,  -626,  1629,   247,   460,   695,   882,   432,
1438     58,   698,   187,   349,   651,  1234,  1019,  -626,   221,   919,
1439    495,   498,   517,  1579,  1580,   764,   260,  1239,   495,  -600,
1440   -600,   952,  1049,  1634,   179,   461,  1050,   883,   516,    39,
1441    498,    58,  -304,  1001,  -600,    40,   493,   374,    58,   183,
1442    632,   138,   224,   375,   155,   155,   155,   692,   650,   498,
1443    209,  1260,   564,  1262,   565,   920,   921,   199,   518,  1051,
1444     39,   139,   224,   594,   637,   221,    40,   215,   216,  1407,
1445   -120,   224,    15,    14,     7,   127,   128,    10,  -304,  -304,
1446    295,   411,   683,   768,     8,     9,   413,    59,   224,   177,
1447    155,    76,   738,  -298,  1226,    20,  1174,   713,   738,  1147,
1448    297,   178,    18,  -120,    23,   449,   620,  -120,   129,   595,
1449    638,   240,    21,   736,   962,   241,   820,    72,    26,   127,
1450    128,  1446,    76,   813,   649,    26,   188,    27,    28,    76,
1451    963,   175,    58,  -118,   147,    15,   130,   131,  1295,  1296,
1452   -120,   149,   201,  -143,   213,    18,   349,   243,   221,   221,
1453   1075,   150,   823,    59,   405,   137,   221,  1008,  1093,    32,
1454    694,    58,  1240,   363,   151,    58,  -118,   881,   221,   814,
1455   -118,   130,   131,   971,    88,   629,   633,   199,   636,   349,
1456   1037,   245,   349,   299,   882,   349,   788,   221,   986,   349,
1457    829,   829,   829,   829,   780,   522,   620,   795,   607,   520,
1458     72,  1497,   349,  -118,  1009,   896,   138,  1010,   738,  -831,
1459   1038,   898,   349,   883,  1406,   349,   360,   759,   900,   695,
1460    633,  1023,   511,   407,   199,   765,   694,   410,   696,    91,
1461    362,   127,   128,   372,   748,   749,   794,   176,   957,   680,
1462    642,  1033,   823,  1035,   376,   693,   958,   937,  1039,    92,
1463    296,   897,    76,  1052,   641,   380,    76,   899,   955,   127,
1464    128,   381,   201,   213,   901,  -295,    72,  1024,   512,   692,
1465    116,   117,   118,   791,     8,     9,   736,    95,    96,    97,
1466    401,    26,   377,   130,   131,   495,   969,   528,   974,   975,
1467    127,   128,   571,  1170,  1449,   519,   260,   529,   189,  1053,
1468    127,   128,    90,   796,  1284,  1478,   137,   530,   425,   201,
1469    221,   130,   131,   633,  1199,   127,   128,    88,   363,   122,
1470   1119,   349,   767,   119,   120,   392,   130,   131,    26,   738,
1471     98,    99,   100,   975,   433,   209,   303,  1193,   295,   247,
1472     26,   738,   130,   131,   363,   645,  -621,   998,  1195,    -7,
1473    101,   221,   130,   131,   999,    58,   529,  1197,   115,   703,
1474    164,  1507,   704,   297,   447,    26,   530,   130,   131,  1613,
1475    448,   155,   155,   155,   707,   738,   252,   738,  1636,   903,
1476    906,   885,   694,  1194,   780,   692,  1135,  1081,  1082,   694,
1477   1083,   886,  1058,  1135,  1196,   221,  1653,   451,   691,  1280,
1478   1281,   233,  1283,  1198,   463,   887,   199,  1508,    95,   110,
1479    111,   411,  1135,   464,   413,  1614,    95,   414,   415,  1255,
1480   1256,  1257,   158,   221,  1637,   824,   501,   811,   520,    95,
1481    110,   111,   513,    59,    91,    59,    89,    91,    58,   592,
1482    593,   209,  1654,    59,  -141,  -142,   652,   524,   432,   692,
1483    349,   349,   525,   349,    92,   692,    90,    92,     8,     9,
1484    388,   112,   113,   114,   691,  1189,   788,    21,   788,    98,
1485    113,   526,   745,   812,   527,   378,   788,   795,   535,  1044,
1486    544,   745,   112,   113,   416,   199,   545,   795,   221,   222,
1487    223,   201,    89,   199,   224,    92,   546,   379,   694,    15,
1488   1241,   224,   363,  -415,    58,  1229,  1230,  1231,  1025,  1026,
1489    130,   131,    90,    89,   127,   128,   794,   137,   794,   519,
1490    224,  1430,    91,   349,   794,   567,   794,   547,  1121,    76,
1491   1431,  -415,  -415,    90,   252,   116,   117,   118,   158,   158,
1492    158,   564,    92,   565,  1268,  1270,    72,   548,    72,   382,
1493    383,   384,   567,   791,   610,   791,    72,   410,   656,   829,
1494   1057,  1067,   694,   791,    26,   692,   130,   131,   694,   736,
1495    201,   256,  1640,   659,   502,   504,   222,   446,   201,   660,
1496    885,   127,   128,   796,   158,   796,    26,   514,   119,   120,
1497    886,   260,  1040,   796,   385,   801,   116,   770,   771,    91,
1498    772,   295,   386,   387,   887,   662,   663,   692,    89,   829,
1499    349,   483,   484,   692,  1046,  1047,  1479,   491,   492,    92,
1500    691,     8,     9,   773,  1078,  1411,   246,   691,    90,   664,
1501    774,    26,  1135,   130,   131,  1090,  1091,  1092,  1041,   483,
1502    714,  1058,   683,   676,  1270,   491,   715,    26,    18,   119,
1503    120,   824,   199,  1360,  1362,    90,   736,   550,   677,  1135,
1504   1425,  1426,  1366,   256,    92,  1135,   483,  1530,   432,   829,
1505    705,    26,    -6,   130,   131,    95,    96,    97,   694,   349,
1506    903,   906,   694,   709,   420,   423,   692,  1220,   703,   704,
1507   1031,   199,    15,   199,   199,   731,   707,  1221,   692,   658,
1508    755,   432,   491,  1531,  -578,  1404,   760,  -578,   668,   805,
1509   1222,   806,  1287,    15,   420,   423,   807,  -415,   808,    59,
1510    694,   658,   483,  1535,  1176,  1177,   694,   815,    98,    99,
1511    816,   833,   692,   835,   692,   836,   691,   201,   199,   720,
1512    224,   838,   916,   215,   216,  -415,  -415,   893,  1511,    14,
1513   -415,   895,   788,   912,  -578,   916,  -578,  -578,   940,  -578,
1514      8,     9,   829,   795,  1528,   941,   914,   224,   950,   694,
1515   -578,    20,  -578,   224,   954,   349,   201,   972,   201,   201,
1516     23,   256,   127,  1391,    58,  1135,    58,   951,  -578,  -578,
1517    956,    20,   964,   253,    58,   965,   978,  1063,   692,   694,
1518    691,   985,   794,  -578,   363,  1472,   691,  -298,   984,  1057,
1519    695,   694,   130,   131,   453,   224,  1029,  1005,  1006,  1585,
1520   1457,   432,  1462,   201,  1007,   692,   363,  1017,  1459,   999,
1521   1012,  -830,    72,  1021,   130,   131,   522,  1028,  1032,   791,
1522   1034,   769,  1036,  1495,  1094,   694,  1095,   694,  1347,  1099,
1523    300,  1511,  1096,    10,  1097,   736,  1098,  1100,   522,  1101,
1524   1339,   824,  1102,   155,  -140,   158,   158,   158,  1103,   796,
1525    990,   770,   771,  1511,  1104,   801,  1106,   801,    18,  1107,
1526   1243,  1338,  1064,  1071,  1109,   801,  1245,  1246,    21,  1110,
1527   1243,  1248,  1113,   224,  1246,  1126,  1111,    59,  1112,  1129,
1528   1610,  1138,  1128,   426,   427,   846,   155,   147,  1130,   903,
1529    906,   694,  1131,  -183,   991,  1139,   691,   428,  1149,  1140,
1530    691,    26,  1162,   992,   993,  1150,  1146,   429,   137,  -183,
1531    788,  -183,  1155,  1511,  1165,    32,  1302,  1303,   694,  1168,
1532    430,   795,  1456,  1169,  1456,  1192,  1215,   -52,  1225,   894,
1533   1244,   692,   -52,  1249,   722,  1250,  1254,  1258,   691,  1263,
1534    994,    72,   501,   -52,   691,  1264,  1302,  1303,   694,  1236,
1535   1237,  1265,  1266,  1271,  1282,   523,  1286,  1273,  1025,  1026,
1536    794,  1274,  1275,  1347,  1278,  1288,  1294,  1135,  1289,  1290,
1537   1200,   209,   460,  1347,  1297,  1293,  1251,  1300,  1346,  -663,
1538   1347,  1253,  1405,  1310,  1359,  1339,   221,   691,  1368,   829,
1539     72,  1369,  1339,  1372,  1376,   528,  1338,   791,   960,   127,
1540    128,   140,   140,  1398,   156,  1575,  1338,  1399,  1409,   977,
1541   1410,  1419,  1420,  1338,  1421,  1422,  1135,   691,   420,   423,
1542   1429,  1438,  -304,  1452,  1439,  1440,  1063,   796,   212,   691,
1543    220,   589,   590,   591,   592,   593,   237,  -304,  1454,   129,
1544    846,  -304,  1415,  1416,   694,    95,    96,    97,  1467,    26,
1545     58,   130,   131,   155,   155,   155,  1519,  -304,  1470,  1514,
1546   1491,  1492,  1493,   691,  1627,   691,  1521,  1515,  1655,  -304,
1547   -304,   375,  -304,  1522,  -304,   224,    72,  1494,    95,   110,
1548    111,  1499,  1529,   155,   155,   155,    72,  1551,  1561,  1571,
1549    363,  1553,  1572,    72,  1587,  1596,   411,   413,    98,    99,
1550   1597,  1603,  1605,  -304,  -304,   520,  1621,   116,   770,   771,
1551   1608,  1064,   140,  1346,   116,   770,   771,   140,  -304,  1609,
1552    156,   156,   156,  1346,   224,  1625,  1631,   692,  1632,   691,
1553   1346,   112,   113,  1557,   773,  1588,  1635,  1638,  1347,  1347,
1554   1557,   801,  1643,  1347,  1642,  1379,  1380,   212,  1389,  1390,
1555   1339,  1392,  1647,   450,  1652,  1339,   691,   745,    26,   349,
1556    119,   120,  1656,   745,   470,   470,   479,   119,   120,  1657,
1557   1659,  1338,  1338,  1664,  1665,  1667,  1338,  1668,   692,    58,
1558    220,   300,   394,   395,    10,  1347,   691,     1,   496,   220,
1559   1481,  1482,   442,     5,  1347,   160,   221,  1339,  1526,  1172,
1560    441,    95,   110,   111,   953,   745,  1339,   712,    95,   110,
1561    111,  1626,   225,   226,   227,    95,   110,   111,  1338,    21,
1562   1557,   439,   703,   704,  1068,   359,  1387,  1338,    58,   707,
1563    140,   503,    26,  1311,    27,   319,    18,   409,  1415,  1416,
1564    694,   228,   410,  1510,  1663,  1347,   297,  1408,   382,   383,
1565    384,    72,    72,   297,   112,  1523,    72,  1339,  1164,   534,
1566   1004,   112,   113,   493,   668,  1163,    32,   506,   112,  1525,
1567    748,   749,     7,     8,     9,    10,  1370,   960,  1338,  1232,
1568   1475,  1476,   691,   745,  1252,  1347,  1393,  1070,  1346,  1346,
1569    943,   694,  1161,  1346,   486,   617,   880,  1339,    72,    26,
1570    156,   386,   387,   390,  1465,  1356,  1641,    72,   153,  1600,
1571     21,  1388,  1649,  1646,    58,  1471,  1388,  1648,  1338,   801,
1572   1214,     8,     9,    26,    58,    27,    28,   199,     0,   199,
1573      0,    58,     0,   297,     0,  1346,   155,   158,     0,   193,
1574    366,   370,     0,     0,  1346,     0,     0,     0,    18,   194,
1575     95,   110,   111,     0,   665,   666,   667,    32,    72,     0,
1576      0,     0,   195,     0,     0,     8,     9,     0,     0,     0,
1577    519,    26,     0,   130,   131,     0,   212,   220,     0,     0,
1578    158,     0,     0,  1542,  1543,  1544,     0,  1220,     0,  1030,
1579    140,  1611,    18,   140,     0,  1346,     0,  1221,    72,   156,
1580    156,   156,     0,   112,   113,   140,     0,   155,   155,   155,
1581   1222,     0,   201,  1460,   201,    26,     0,   130,   131,   300,
1582    394,   395,    10,  1269,     0,   421,   424,   214,   215,   216,
1583   1079,  1220,     0,     0,    14,  1346,  1084,     0,     0,     0,
1584      0,  1221,   470,  1577,  1578,   470,     0,   479,   479,   479,
1585      0,    18,     0,   450,  1222,     0,    20,    21,     0,   470,
1586    496,   220,     0,     0,   450,    23,     0,     0,   496,     0,
1587    153,     0,    27,   319,     0,     0,     0,     0,   691,     0,
1588    699,   450,     0,     0,   295,   745,   214,   215,   216,    58,
1589     58,   295,     0,    14,    58,   585,   586,   587,   588,   589,
1590    590,   591,   592,   593,    32,     0,     0,     0,   156,     0,
1591     18,   156,   596,     0,  1628,    20,  1316,     0,     0,     0,
1592      0,     0,  1269,     0,    23,   728,   156,   156,   156,   691,
1593      0,     0,   734,     0,   745,     0,    58,     0,     0,   938,
1594    199,   156,  1141,     0,  1142,    58,   689,   158,   158,   158,
1595      0,   597,   598,     0,     0,     0,   599,   600,   601,   602,
1596      0,     0,   558,     0,   127,   128,     0,     0,     0,    13,
1597      0,   295,     0,   300,   394,   395,    10,   158,   158,   158,
1598      0,   127,   128,     0,   542,   543,   339,     0,   339,     0,
1599    339,    18,   902,   902,     0,   909,    58,     0,     0,   821,
1600    551,     0,   928,   552,   560,     0,   553,   620,    18,   563,
1601      0,    21,   689,   568,    26,     0,   130,   131,   251,     0,
1602      0,   609,   220,     0,   620,   201,    27,   319,     0,     0,
1603    621,    26,     0,   130,   131,   339,    58,   339,     0,     0,
1604    622,     0,     0,   300,     8,     9,    10,   621,  1444,  1445,
1605    623,     0,     0,   624,   625,     0,     0,   622,    32,   874,
1606      0,   212,     0,   220,   237,   875,     0,   623,     0,     0,
1607    624,   625,     7,     8,   250,    10,     0,     0,    95,    96,
1608     97,    21,   225,   226,   227,     0,     0,     0,   251,     0,
1609    258,     0,     0,     0,     0,     0,    27,   319,   730,     0,
1610      0,     0,   932,     0,   421,   706,    18,   220,     0,     0,
1611     21,   228,     0,  1259,   258,  1261,     0,   251,     0,   470,
1612    470,   479,   479,   479,     0,    27,    28,   470,    32,    26,
1613      0,    98,    99,   229,     0,   496,     0,     0,   450,     0,
1614      0,  1506,     0,   258,     0,     0,     0,     0,     0,   252,
1615      0,     0,   421,   424,   258,     0,     0,    32,   214,   215,
1616    216,     0,     0,  1524,  1527,    14,     0,   212,   689,     0,
1617    558,  1292,     0,   558,     0,   689,     0,   826,   230,   231,
1618    232,     0,    18,     0,     0,     0,     0,    20,     0,     0,
1619    558,     0,     0,     0,   156,     0,    23,     8,     9,     0,
1620      0,     0,    13,   558,     0,     0,     0,   853,   639,     8,
1621      9,    10,   560,   258,     0,   560,     0,     0,   549,     0,
1622      0,   259,     0,     0,    18,     0,   300,   127,   128,    10,
1623    158,   421,   834,   551,   552,   876,     0,     7,     8,     9,
1624     10,   892,  1573,   308,   640,   560,    21,    26,   258,   130,
1625    131,     0,     0,     0,     0,     0,   339,     0,     0,    26,
1626   1371,   130,   131,  1220,    21,  1375,     0,     0,     0,     0,
1627      0,   251,   258,  1221,   902,    21,     0,   902,     0,    27,
1628    319,   620,     0,     0,   689,     0,  1222,     0,    26,   902,
1629     27,    28,     0,  1148,  1148,   928,     0,     0,   434,     0,
1630      0,   158,   158,   158,   966,     0,   927,     0,     0,     0,
1631      0,    32,     0,     0,   967,     0,     0,     0,  1412,     8,
1632      9,     0,    32,     0,   623,     0,     0,   968,   625,     0,
1633    469,     0,   237,     0,     0,     0,     0,  1175,  1175,  1181,
1634      0,  1114,  1115,   488,     0,     0,    18,  1120,   689,     0,
1635    494,   215,   216,     0,   689,     0,     0,    14,   725,   729,
1636      0,  1132,   620,  1133,   258,  1134,   729,     0,     0,    26,
1637      0,   130,   131,     0,    18,     7,   127,   128,    10,    20,
1638      0,     0,  1181,     0,     0,  1500,     0,     0,    23,     0,
1639      0,     0,     0,     0,     0,  1501,  1223,  1223,  1223,   339,
1640      0,     0,     0,     0,     0,   623,     0,     0,  1502,   625,
1641      0,     0,     0,    21,  1167,     0,     0,   450,   450,     0,
1642    251,     0,   258,  1487,  1488,     0,   421,   706,    27,    28,
1643      0,     0,   339,   729,     0,     0,     0,     0,     0,     0,
1644   1498,     0,     0,     0,   450,     0,     0,     0,     0,   450,
1645      0,     0,   252,     0,  1054,  1055,     9,    10,  1190,     0,
1646     32,     0,     0,     0,   689,   339,     0,   725,   689,     0,
1647    850,   851,     0,   855,   856,   857,   858,   859,   860,   861,
1648    862,   863,   864,   865,   866,   867,   868,   869,   870,   871,
1649    872,   873,    21,   729,     0,     0,     0,     0,   927,   729,
1650   1538,  1539,     0,     0,     0,    26,   689,    27,    28,     0,
1651      0,  1235,   689,  1056,     0,   258,  1549,  1550,   127,   128,
1652   1124,   193,  1148,  1148,   928,     0,     0,     0,     0,   729,
1653      0,   194,     0,     0,     0,     0,   729,     0,     0,    32,
1654      0,   258,     0,     0,   195,     0,     0,  1175,  1175,  1301,
1655   1301,  1181,     0,   727,     0,   689,  1175,   558,   945,   947,
1656    727,   620,     0,     0,     0,     0,     0,     0,    26,  1127,
1657    130,   131,     0,     0,   339,     0,     0,     0,     0,  1301,
1658   1301,  1181,     0,     0,   621,   689,     0,     0,     0,     0,
1659      0,  1223,  1223,  1223,   622,     0,     0,   689,   421,   834,
1660    551,   552,     0,     0,   623,     0,     0,   624,   625,     0,
1661      0,     0,     0,   450,   450,     0,   450,   450,     0,   450,
1662    756,     0,   725,     0,     0,   762,     0,   727,   258,     0,
1663      0,   689,     0,   689,   587,   588,   589,   590,   591,   592,
1664    593,     0,     0,   153,   258,     0,     0,     0,     0,     0,
1665    803,     0,     0,     0,     0,     0,   809,     0,  1312,     0,
1666   1313,     0,  1314,     0,     0,     0,     0,  1227,   817,   818,
1667      0,   819,     0,  1175,  1175,  1301,  1301,  1181,     0,     0,
1668   1175,     0,     0,     0,     0,  1042,  1212,   727,     7,   127,
1669    128,    10,     0,   727,    13,     0,     0,   689,     0,     0,
1670      0,     0,     0,   339,   339,   611,   339,   300,   394,   395,
1671     10,     0,   612,     0,     0,     0,    18,   212,   220,     0,
1672      0,   729,     0,   727,   689,     0,    21,     0,     0,     0,
1673    727,     0,     0,     0,     0,     0,     0,     0,     0,    26,
1674      0,    27,    28,  1105,     0,    21,     0,     0,   450,   450,
1675      0,     0,   613,     0,   689,    30,     0,     0,    26,     0,
1676     27,   319,  1414,   258,     0,    31,   917,   918,     0,     0,
1677      0,   917,     0,    32,     0,   729,   729,     0,    33,     0,
1678    725,   729,     0,     0,     0,     0,  1503,  1503,    80,  1503,
1679      0,     0,   614,     0,     0,   729,     0,   729,   104,   729,
1680      0,     0,     0,     0,     0,     0,  1285,     0,   133,     0,
1681      0,     0,     0,     0,   144,   144,     0,   144,     0,    80,
1682      0,     0,     0,     0,     0,     0,    80,   421,   706,     0,
1683      0,     0,   479,     0,     0,     0,     0,     0,  1160,   203,
1684      0,    80,     0,   558,     0,     0,     0,     0,   729,   238,
1685    689,   450,   450,   450,   421,   424,   104,     0,     0,     0,
1686      0,     0,     0,   339,     0,     0,     0,   262,   104,     0,
1687      0,  1503,  1503,  1552,     0,     0,  1186,     0,     0,     0,
1688      0,     0,     0,     0,   421,  1358,   551,   552,     0,     0,
1689    104,     0,   729,  1027,     0,     0,  1400,  1401,  1402,  1403,
1690      0,     0,     0,   479,   479,   479,     0,     0,     0,   729,
1691      0,   450,   450,     0,     0,   727,     0,     0,   133,     0,
1692     80,     0,     0,     0,   144,   144,     0,     0,     0,   412,
1693    144,     0,     0,   144,   144,   144,     0,     0,     0,   258,
1694      0,   258,     0,     0,     0,     0,     0,     0,     0,    80,
1695   1086,     0,  1088,    80,  1242,     0,     0,     0,     0,   203,
1696     80,     0,     8,     9,  1442,     0,    12,    13,     0,   727,
1697    727,     0,    14,     0,     0,   727,     0,   203,   203,   203,
1698    421,   706,   450,   258,     0,     0,    16,     0,    17,   727,
1699      0,   727,     0,   727,    20,     0,     0,     0,     0,     0,
1700      0,     0,     0,    23,   725,   725,   203,     0,  1272,     0,
1701      0,     0,    26,     0,   130,   131,   563,     0,     0,     0,
1702      0,     0,     0,   505,  1122,  1123,     0,  1125,   339,     0,
1703      0,     0,   104,     0,     7,     8,     9,    10,     0,  1496,
1704     13,     0,   727,   144,     0,     0,   689,     0,     0,     0,
1705      0,   879,     0,     0,   904,   907,     0,     0,  1144,     0,
1706      0,     0,    18,     0,     0,     0,     0,     0,     0,     0,
1707      0,     0,    21,     0,     0,   258,  1520,     0,   620,     0,
1708      0,   104,   531,     0,     0,    26,   727,    27,    28,     0,
1709      0,     0,   729,     0,   729,     0,   729,   689,     0,     0,
1710      0,   966,     0,   727,   725,     0,     0,     0,     0,  1185,
1711      0,   967,     0,   725,   725,     7,     8,     9,    10,    32,
1712      0,   623,   725,     0,   968,   625,   104,     0,     0,     0,
1713    618,     0,   531,   531,   634,     0,  1212,     0,  1377,  1378,
1714      0,  1555,     0,    80,     0,     0,     0,   853,  1555,     0,
1715      0,     0,     0,    21,     0,     0,     0,     0,     0,     0,
1716      0,     0,     0,     0,   258,   725,    26,   558,    27,    28,
1717      0,     0,   192,     0,     0,     0,     0,   133,     0,  1233,
1718    127,   128,   193,     0,   215,   216,   104,     0,   203,   104,
1719     14,  1238,   194,   258,     0,     0,   729,     0,     0,     0,
1720     32,     0,     0,   144,     0,   195,   144,     0,   421,  1358,
1721    551,   552,    20,     0,     0,     0,     0,     0,   144,     0,
1722      0,    23,     0,   620,     0,  1437,    80,     0,  1555,     0,
1723     26,     0,   130,   131,   582,   583,   584,   585,   586,   587,
1724    588,   589,   590,   591,   592,   593,   621,  1630,     0,     0,
1725      0,     0,     0,     0,   203,   203,   622,   258,   203,     0,
1726    203,   203,   203,   753,     0,   725,   623,   203,  1645,   631,
1727    625,     0,   203,     0,     0,   203,     0,   853,  1291,     0,
1728      0,  1480,     0,     0,     0,     0,   727,     0,   727,     0,
1729    727,     0,    80,     0,     0,     0,   300,   127,   128,    10,
1730      0,     0,    13,   725,     0,     0,     0,     7,     8,     9,
1731     10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1732      0,     0,     0,  1309,    18,     0,     0,     0,     0,   104,
1733    104,   104,   104,     0,    21,     0,  1136,     0,     0,  1137,
1734    620,     0,     0,     0,     0,    21,     0,    26,     0,    27,
1735    319,  1143,   251,     0,     0,   904,   907,     0,     0,   729,
1736     27,    28,     0,  1151,     0,     0,     0,     0,     0,     0,
1737      8,     9,     0,  1152,    12,    13,  1540,  1541,     0,     0,
1738     14,    32,     0,   623,   252,     0,  1153,   625,     0,   104,
1739    727,   531,    32,  1396,    16,     0,    17,  1397,     0,   904,
1740    907,     0,    20,   618,     0,   531,   531,     0,   634,     0,
1741      0,    23,     0,     0,  1568,   929,     0,     0,     0,   931,
1742     26,     0,   130,   131,   603,     0,     0,   258,     0,     0,
1743      0,     0,  1413,     0,   203,     0,   127,   128,     0,     0,
1744      0,   246,     0,     0,  1582,     0,  1418,     0,     0,     0,
1745      0,     0,     0,     0,     7,     8,     9,    10,   133,   604,
1746    246,     0,     0,    18,     0,   133,     0,     0,     0,     0,
1747      0,     0,     0,   203,   973,   203,   203,   238,   634,   620,
1748      0,     0,    18,     0,     0,     0,    26,     0,   130,   131,
1749      0,     0,    21,     0,     0,     0,     0,     0,   620,     0,
1750      0,     0,   621,     0,     0,    26,     0,    27,    28,     0,
1751      0,  1473,   622,     0,     0,  1474,     0,     0,     0,     0,
1752    203,   966,   623,     0,   973,   624,   625,     0,     0,     0,
1753      0,   967,   203,   203,   753,   753,   753,  1489,  1490,    32,
1754    203,   623,     0,     0,   968,   625,     0,     0,   725,     0,
1755      0,     0,     0,   727,   579,   580,   581,   582,   583,   584,
1756    585,   586,   587,   588,   589,   590,   591,   592,   593,   133,
1757      0,     0,    80,     0,    80,     0,     0,     0,     0,  1065,
1758     80,     0,    80,     0,   904,   907,     0,     0,   104,     0,
1759      0,     0,   263,     0,   104,     8,     9,     0,     0,    12,
1760     13,   531,   531,   531,     0,    14,     0,     0,     0,  1136,
1761   1137,   904,   907,   531,     0,     0,     0,     0,  1143,    16,
1762      0,    17,     0,     0,     0,     0,     0,    20,     0,   264,
1763    265,     0,     0,     0,     0,     0,    23,     0,   266,     0,
1764      0,   904,   907,     0,     0,    26,     0,   130,   131,     0,
1765    267,     0,     0,     0,   268,   269,   270,   271,   272,   273,
1766    274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1767    284,   285,   286,   287,   288,     0,     0,   289,   290,   291,
1768      0,     0,   292,     0,     0,   293,   531,   531,     0,     0,
1769    531,     0,     0,   531,     0,     0,     0,     0,   104,     0,
1770      0,   294,   531,     0,   104,     0,   929,   929,   929,     0,
1771      0,     0,   531,     0,  1154,     0,   300,     8,     9,    10,
1772    580,   581,   582,   583,   584,   585,   586,   587,   588,   589,
1773    590,   591,   592,   593,     0,  1136,  1137,   904,   907,     0,
1774      0,     0,  1143,     0,     0,     0,   104,     0,   104,     0,
1775    203,   203,  1183,    83,    21,     0,     0,     0,     0,     0,
1776      0,   251,     0,   106,     0,     0,     0,   472,   475,    27,
1777    319,     0,   126,   134,     0,     0,     0,     0,     0,   145,
1778    145,     0,   145,     0,    83,   300,   127,   128,    10,     0,
1779      0,    83,     0,   252,     0,  1183,     0,     0,     0,     0,
1780      0,    32,     0,     0,   145,     0,    83,     0,   104,   753,
1781    753,   753,     0,    18,   239,     0,     0,     0,     0,     0,
1782      0,   248,     0,    21,     0,   104,     0,     0,  1065,   620,
1783      0,     0,     0,   248,     0,     0,    26,   104,    27,   319,
1784      0,     0,     0,   300,     8,     9,    10,     0,  1136,  1137,
1785   1247,  1143,  1151,     0,     0,     0,     0,     0,    80,     0,
1786      0,     0,  1152,     0,     0,     0,     0,     0,     0,     0,
1787     32,   104,   623,   104,     0,  1153,   625,     0,     0,     0,
1788      0,    21,     0,     0,     0,    83,     0,     0,   251,   145,
1789    145,     0,     0,     0,     0,   145,    27,   319,   145,   145,
1790    145,   104,     0,     0,     0,     0,   531,   531,     0,   531,
1791      0,     0,     0,     0,    83,     0,     0,     0,    83,     0,
1792    522,     0,     0,     0,   145,    83,     0,     0,    32,     0,
1793      0,     0,   531,   904,   907,   531,   531,   634,     0,     0,
1794      0,     0,   145,   145,   145,     7,     8,     9,    10,   167,
1795     12,    13,     0,     0,     0,     0,    14,     0,     0,   203,
1796    203,   203,   203,   203,  1183,   753,     0,     0,     0,   203,
1797     16,   145,    17,    18,    19,     0,     0,     0,    20,     0,
1798      0,     0,     0,    21,     0,     0,     0,    23,     0,     0,
1799    168,     0,  1183,  1183,  1183,     0,    26,     0,    27,    28,
1800      0,     0,     0,     0,   753,   753,   753,   753,   145,     0,
1801      0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
1802      0,     0,    31,     0,     0,     0,     0,     0,   203,     0,
1803     32,     0,     0,   144,     0,    33,    80,     0,     0,     0,
1804     34,     0,     0,     0,     0,   746,   248,   145,   747,     0,
1805    472,   475,     0,     0,     0,     0,     0,     0,     0,     0,
1806      0,     0,   763,     0,     0,     0,     0,     0,     0,     0,
1807      0,     0,     7,     8,     9,    10,   214,   215,   216,     0,
1808      0,     0,     0,    14,     0,   753,   203,   203,   753,   753,
1809   1417,   248,     0,   203,     0,   619,     0,   145,   145,   635,
1810     18,     0,     0,     0,   644,    20,     0,     0,    83,     0,
1811     21,     0,     0,     0,    23,     0,   620,     0,     0,     0,
1812      0,     0,     0,    26,     0,    27,    28,     0,     0,   203,
1813    973,   203,     0,     0,     0,     0,     0,     0,     0,   966,
1814      0,     0,   681,     0,     7,     8,     9,    10,   104,   967,
1815     13,   248,     0,   145,   248,     0,     0,    32,     0,   623,
1816      8,     9,   968,   625,    12,   246,     0,     0,   145,     0,
1817     14,   145,    18,     0,     0,     0,     0,     0,     0,     0,
1818      0,     0,    21,   145,    16,     0,    17,     0,   620,     0,
1819      0,    83,    20,     0,     0,    26,     0,    27,    28,   753,
1820    753,    23,   753,     0,     0,     0,     0,     0,     0,     0,
1821     26,  1178,   130,   131,     0,     0,     0,     0,     0,   145,
1822    145,  1179,     0,   145,     0,   145,   145,   145,   145,    32,
1823      0,   623,   145,     0,  1180,   625,     0,   145,     0,     0,
1824    145,     0,     0,     0,     0,  1183,     0,     0,     0,     0,
1825      8,     9,     0,   167,    12,    13,   782,    83,   733,     0,
1826     14,     7,     8,     9,    10,     0,     0,   519,     0,     0,
1827      0,     0,     0,     0,    16,     0,    17,    18,     0,     0,
1828      0,     0,    20,     0,   753,   753,  1417,   753,     0,    18,
1829      0,    23,     0,     0,   248,   248,   248,   248,     0,    21,
1830     26,     0,   130,   131,     0,   620,     0,     0,     0,     0,
1831      0,     0,    26,     0,    27,    28,  1183,  1183,  1183,     0,
1832      0,     0,   746,   747,   472,   475,     0,     0,   966,     0,
1833    763,     0,     0,     0,     0,     0,   753,   104,   967,     0,
1834      0,     0,   203,     0,     0,     0,    32,     0,   623,     0,
1835      0,   968,   625,     0,   248,     0,   145,   581,   582,   583,
1836    584,   585,   586,   587,   588,   589,   590,   591,   592,   593,
1837    145,   145,     0,   635,     0,     0,     0,     0,     0,     0,
1838    930,   166,     0,     7,     8,     9,    10,   167,    12,    13,
1839      0,     0,     0,   644,    14,     0,     0,     0,     0,   145,
1840      0,     0,     0,     0,     0,     0,     0,     0,    16,     0,
1841     17,    18,    19,     0,     0,     0,    20,     0,     0,     0,
1842      0,    21,     0,   681,     0,    23,     0,     0,   168,     0,
1843      0,   126,     0,     0,    26,     0,    27,    28,   145,   635,
1844    145,   145,   239,   635,     0,     0,     0,     0,     0,     0,
1845     30,     0,     0,     7,   127,   128,    10,     0,     0,   246,
1846     31,     0,     0,     0,     0,     0,   782,     0,    32,     0,
1847      0,     0,     0,    33,     0,     0,     0,     0,    34,     0,
1848      0,    18,     0,     0,     0,   145,     0,     0,     0,   635,
1849      0,    21,     0,     0,     0,     0,     0,   145,   145,   145,
1850    145,   145,     0,     0,    26,   145,    27,    28,   127,   128,
1851      0,     0,     0,   519,     0,     0,     0,     0,     0,     0,
1852     30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1853     31,     0,     0,     0,   134,    18,     0,    83,    32,    83,
1854    472,   475,     0,    33,  1066,    83,     0,    83,     0,     0,
1855      0,   620,     0,   248,     0,     0,     0,     0,    26,   248,
1856    130,   131,     0,     0,     0,     0,   145,   145,   145,     0,
1857      0,     0,     0,     0,   621,     0,     0,     0,   145,     0,
1858      0,     0,     0,     0,   622,     0,     0,     0,     0,     0,
1859      0,     0,     0,     0,   623,     0,     0,   624,   625,   746,
1860    747,   763,     0,     0,     0,     0,     6,     0,     7,     8,
1861      9,    10,    11,    12,    13,     0,     0,     0,     0,    14,
1862      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1863      0,     0,     0,    16,     0,    17,    18,     0,     0,     0,
1864      0,    20,     0,     0,     0,     0,    21,     0,     0,     0,
1865     23,   145,   145,   438,     0,   145,     0,     0,   145,    26,
1866      0,    27,    28,   248,     0,    29,     0,   145,     0,   248,
1867      0,   930,   930,   930,     0,    30,     0,   145,     0,   644,
1868      0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
1869      0,     0,     0,    32,   300,     8,     9,    10,    33,    12,
1870    301,   302,   303,     0,   304,    14,     0,     0,     0,     0,
1871      0,   248,     0,   248,     0,   145,   145,   635,     0,    16,
1872    305,    17,    18,    19,     0,   306,   307,    20,     0,   308,
1873    309,   310,    21,   311,   312,     0,    23,     0,   620,     0,
1874    313,   314,   315,   316,   317,    26,     0,    27,   319,     0,
1875    746,   747,   472,   475,     0,     0,     0,     0,   321,   763,
1876    930,   922,     0,     0,     0,     0,     0,     0,     0,   323,
1877    324,   923,     0,   248,   145,   145,   145,   326,   327,   328,
1878      0,   623,   472,   475,   924,   625,     0,     0,   782,     0,
1879    248,     0,     0,  1066,   472,   475,     0,     0,     0,     0,
1880      0,   330,   248,   300,     8,     9,    10,     0,     0,    13,
1881      0,     0,     0,     0,     7,   127,   128,    10,     0,     0,
1882     13,     0,     0,    83,     0,     0,     0,     0,     0,     0,
1883      0,    18,     8,     9,     0,     0,   248,   246,   248,     0,
1884      0,    21,    18,     0,     0,     0,     0,   620,     0,     0,
1885      0,     0,    21,     0,    26,     0,    27,   319,     0,    18,
1886      0,     0,     0,     0,     0,    26,   248,    27,    28,     0,
1887   1304,   145,   145,     0,   145,   620,   746,   747,   472,   475,
1888   1305,   149,    26,   763,   130,   131,     0,     0,    32,     0,
1889    623,   150,     0,  1306,   625,     0,     0,   145,  1500,    32,
1890    145,   145,   635,     0,   151,     0,     0,     0,  1501,     7,
1891      8,     9,    10,   214,   215,   216,     0,     0,   623,     0,
1892     14,  1502,   625,     0,   145,   145,   145,   145,   145,   635,
1893    145,     0,     0,     0,   145,     0,     0,    18,     0,     0,
1894      0,   782,    20,     0,     0,     0,     0,    21,     0,     0,
1895      0,    23,     0,   620,     0,     0,     0,   930,   930,   930,
1896     26,     0,    27,    28,     0,     0,     0,     0,     0,   145,
1897    145,   145,   145,     0,     0,     0,   966,     0,   782,     0,
1898     51,     0,     0,     0,     0,     0,   967,     0,     0,   746,
1899    747,     0,   763,   145,    32,     0,   623,     0,   145,  1011,
1900    625,    83,     0,     0,     0,     0,    51,    51,     0,   152,
1901      0,    51,     0,     0,     0,     0,     0,     0,    51,     0,
1902      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1903      0,    51,   783,    51,     7,     8,   784,    10,   167,    12,
1904     13,     0,     0,     0,     0,    14,     0,     0,     0,     0,
1905    145,   145,   145,   145,   145,   635,   254,     0,   145,    16,
1906      0,    17,    18,    19,     0,     0,     0,    20,  -524,     0,
1907      0,     0,    21,     0,   472,   475,    23,   785,     0,   168,
1908      0,     0,     0,  1448,     0,    26,     0,    27,    28,     0,
1909      0,   786,     0,   787,   145,   635,   145,     0,     0,     0,
1910      0,    30,     0,     0,     0,     0,   472,   475,     0,   396,
1911    396,    31,    51,   248,     0,     0,    51,    51,     0,    32,
1912    254,     0,    51,     0,    33,   152,   152,   152,     0,     0,
1913      0,     0,   431,     0,     0,     0,     0,     0,     0,     0,
1914   -524,    51,     0,     0,     0,    51,     0,     0,     0,     0,
1915      0,    51,    51,     0,     0,     0,     0,     0,     0,     0,
1916      0,     0,     0,     0,   145,   145,     0,   145,     0,    51,
1917     51,   152,     0,     0,     0,     0,     0,     0,   732,   254,
1918    300,     8,     9,    10,   167,    12,   301,   302,   303,   733,
1919    304,    14,     0,     0,     0,     0,     0,     0,    51,     0,
1920      0,     0,     0,     0,     0,    16,   305,    17,    18,    19,
1921    930,   306,   307,    20,     0,   308,   309,   310,    21,   311,
1922    312,     0,    23,     0,     0,     0,   313,   314,   315,   316,
1923    317,    26,     0,    27,   319,    51,     0,     0,   320,     7,
1924      8,     9,    10,     0,   321,    13,     0,   322,     0,   145,
1925    145,   635,   145,     0,     0,   323,   324,   325,     0,     0,
1926      0,     0,     0,   326,   327,   328,     0,    18,     0,     0,
1927    329,     0,     0,     0,     0,     0,     0,    21,     0,     0,
1928      0,   930,   930,   930,     0,  -801,     0,   330,     0,     0,
1929     26,     0,    27,    28,     0,     0,     0,     0,     0,     0,
1930      0,   145,   248,     0,     0,   559,   193,   145,     0,     0,
1931      0,     0,     0,     0,     0,     0,   194,     0,     0,     0,
1932      0,     0,   396,     0,    32,     0,     0,     0,     0,   195,
1933    254,     0,     0,     0,     0,    51,     0,     0,     0,     0,
1934      7,     8,     9,    10,   167,    12,    13,     0,     0,   733,
1935     78,    14,     0,     0,     0,     0,     0,     0,     0,     0,
1936      0,     0,     0,     0,     0,    16,     0,    17,    18,   396,
1937      0,     0,     0,    20,     0,     0,    78,    78,    21,    78,
1938     51,    78,    23,     0,   620,     0,     0,     0,    78,     0,
1939      0,    26,     0,    27,    28,    51,     0,     0,    51,     0,
1940      0,    78,     0,    78,   431,   431,   431,  1178,     0,     0,
1941     51,     0,     0,     0,     0,     0,     0,  1179,    51,     0,
1942      0,     0,     0,     0,     0,    32,     0,   623,   127,   128,
1943   1180,   625,   215,   216,     0,     0,     0,     0,    14,     0,
1944      0,     0,     0,     0,     0,     0,    51,    51,     0,     0,
1945     51,     0,   152,   152,   152,   431,     0,     0,     0,    51,
1946     20,     0,     0,     0,    51,     0,     0,    51,     0,    23,
1947      0,   620,     0,     0,     0,     0,     0,     0,    26,     0,
1948    130,   131,    78,     0,    51,     0,    78,    78,     0,     0,
1949      0,     0,    78,     0,   621,    78,    78,    78,     0,     0,
1950      0,     0,     8,     9,   622,   167,    12,    13,     0,     0,
1951   1584,    78,    14,   559,   623,    78,   559,   624,   625,     0,
1952      0,    78,    78,     0,     0,     0,    16,     0,    17,    18,
1953      0,   559,   559,   559,    20,     0,     0,     0,     0,    78,
1954     78,    78,     0,    23,     0,     0,   559,     0,     0,     0,
1955      0,     0,    26,     0,   130,   131,     0,     0,     0,     0,
1956      0,     0,   723,     0,   840,   841,   842,    10,    78,    12,
1957    536,   302,   303,     0,   304,    14,     0,     0,     0,     0,
1958      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
1959    305,    17,     0,    19,   254,   306,   307,    20,     0,   308,
1960    309,   310,    21,   311,   312,    78,    23,   559,     0,     0,
1961    313,   314,   315,   316,   317,    26,     0,   843,   844,   724,
1962      0,     0,   320,     0,     0,     0,    51,     0,   321,     0,
1963      0,   322,     8,     9,     0,     0,    12,   246,     0,   323,
1964    324,   325,    14,     0,     0,     0,     0,   326,   327,   328,
1965    396,     0,     0,     0,   329,   845,    16,   396,    17,     0,
1966      0,     0,     0,     0,    20,    51,    51,    51,    51,     0,
1967   1003,   330,     0,    23,     0,   620,     0,     0,     0,     0,
1968      0,     0,    26,     0,   130,   131,     0,     0,     0,     0,
1969      0,     0,     7,     8,     9,    10,     0,     0,   621,     0,
1970      0,   643,     0,     0,     0,    78,     0,     0,   622,     0,
1971      0,     0,    51,     0,     0,     0,    51,     0,   623,     0,
1972     18,   624,   625,     0,    51,    51,   431,   431,   431,     0,
1973     21,     0,    51,     0,     0,     0,   620,     0,     0,     0,
1974      0,     0,     0,    26,     0,    27,    28,     0,     0,     0,
1975     78,   159,     0,     0,     0,     0,     0,     0,     0,   966,
1976      0,     0,     0,     0,    51,    78,    51,     0,    78,   967,
1977      0,    51,    51,   204,    51,     0,     0,    32,     0,   623,
1978     78,     0,   968,   625,     0,     0,     0,     0,    78,     0,
1979      0,     0,     0,     0,     0,     0,     0,     0,     0,   559,
1980      0,     0,     0,     0,   300,     8,     9,    10,     0,     8,
1981      9,     0,   205,    12,   206,     0,    78,    78,     0,    14,
1982     78,     0,    78,    78,    78,     7,   127,   128,    10,    78,
1983      0,   519,    18,    16,    78,    17,    18,    78,     0,     0,
1984      0,    20,    21,     0,     0,     0,     0,     0,   620,     0,
1985     23,     0,     0,    18,    78,    26,     0,    27,   319,    26,
1986      0,   130,   131,    21,     0,     0,     0,   159,   159,   159,
1987      0,  1304,     0,     0,     0,     0,    26,     0,    27,    28,
1988      0,  1305,     0,     0,     0,     0,     0,     0,     0,    32,
1989      0,   623,    30,   204,  1306,   625,     0,     0,   559,   559,
1990    559,     0,    31,     0,   431,   254,     0,     0,     0,     0,
1991     32,   204,   204,   481,     0,    33,     0,     0,     7,     8,
1992      9,    10,     0,   783,   246,     7,     8,   784,    10,   167,
1993     12,    13,     0,     0,     0,     0,    14,     0,     0,     0,
1994    204,     0,    51,    51,   152,     0,    18,     0,     0,   254,
1995     16,     0,    17,    18,    19,     0,    21,     0,    20,  -525,
1996      0,     0,     0,    21,     0,   643,     0,    23,   785,    26,
1997    168,    27,    28,     0,     0,     0,    26,     0,    27,    28,
1998      0,     0,   786,     0,   787,   193,     0,  1211,     0,     0,
1999      0,     0,    30,     0,     0,   194,    78,     0,     0,     0,
2000      0,     0,    31,    32,     0,     0,     0,     0,   195,     0,
2001     32,     0,     0,     0,     0,    33,   532,     0,     0,     0,
2002     51,   300,     8,     9,    10,   167,    12,    13,     0,     0,
2003    733,  -525,    14,     0,     0,    78,    78,    78,    78,     0,
2004      0,   254,     0,     0,     0,     0,    16,     0,    17,    18,
2005     51,     0,     0,     0,    20,     0,     0,     8,     9,    21,
2006      0,     0,   519,    23,     0,   620,   628,   628,   628,     0,
2007      0,     0,    26,     0,    27,   319,     0,     0,     0,     0,
2008      0,     0,    78,     0,    18,     0,    78,     0,  1151,     0,
2009      0,     0,     0,     0,    78,    78,     0,     0,  1152,     0,
2010    620,     0,    78,     0,     0,     0,    32,    26,   623,   130,
2011    131,  1153,   625,     0,     0,     0,     0,     0,     0,     0,
2012      0,     0,   204,  1500,   431,     0,     0,   431,   431,   431,
2013    254,     0,     0,  1501,    78,     0,    78,     0,     0,     0,
2014      0,    78,    78,   623,    78,     0,  1502,   625,     0,     0,
2015      0,    51,    51,    51,   152,   152,   152,   431,     0,   254,
2016      0,    51,     0,     0,     0,     0,     0,     0,     0,     0,
2017      0,     0,     0,     0,     0,     0,     7,     8,     9,    10,
2018      0,     0,    13,     0,  1211,  1211,  1211,     0,   204,   204,
2019      0,     0,   204,     0,   481,   481,   481,   754,     0,     0,
2020      0,   204,     0,     0,    18,     0,   204,     8,     9,   204,
2021    167,    12,    13,     0,    21,   733,     0,    14,     0,     0,
2022     51,     0,     0,     0,     0,    51,     0,    26,    51,    27,
2023     28,    16,     0,    17,    18,     0,     0,     0,     0,    20,
2024      0,     0,     0,   476,     0,     0,     0,     0,    23,     0,
2025    620,     0,     0,   477,     0,     0,     0,    26,     0,   130,
2026    131,    32,     0,     0,     0,     0,   478,     0,     0,     0,
2027      0,     0,     0,   621,     0,     0,   643,   431,    51,    51,
2028    431,   431,   431,   622,     0,    51,     0,     0,     0,     0,
2029      0,     0,     0,   623,     0,     0,   624,   625,     0,     0,
2030      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2031      0,     0,    78,    78,    78,     0,     0,     0,     0,     0,
2032      0,    51,    51,    51,     0,   888,     0,     0,     8,     9,
2033      0,   167,    12,    13,     0,     0,   733,     0,    14,   628,
2034    628,     0,   628,     0,     7,     8,     9,    10,     0,   628,
2035    519,   202,    16,     0,    17,    18,     0,  1213,     0,     0,
2036     20,     0,     0,     0,     0,     0,     0,     0,   204,    23,
2037      0,   620,    18,     0,     0,     0,   257,     0,    26,   261,
2038    130,   131,    21,     0,     0,   369,   371,     0,     0,     0,
2039     78,     0,     0,     0,  1500,    26,     0,    27,    28,     0,
2040    257,     0,   365,     0,  1501,     0,     0,   970,     0,   970,
2041    970,   193,   628,     0,   623,     0,     0,  1502,   625,     0,
2042     78,   194,     0,     0,     0,     0,     0,     0,     0,    32,
2043      0,     8,     9,     0,   195,    12,    13,  1211,     0,     0,
2044      0,    14,     0,     0,     0,     0,     0,     0,     0,     0,
2045      0,     0,     0,     0,   970,    16,     0,    17,     0,     0,
2046      0,     0,     0,    20,     0,     0,   204,   204,   754,   754,
2047    754,   202,    23,     0,   204,     0,   300,     8,     9,    10,
2048      0,    26,    13,   130,   131,     0,     0,     0,     0,   202,
2049    202,   202,     0,     0,     0,     0,     0,     0,     0,   487,
2050      0,     0,     0,     0,    18,     0,     0,     0,  1211,  1211,
2051   1211,     0,     0,   204,    21,     0,     0,     0,   202,     0,
2052      0,    78,    78,    78,    78,    78,    78,    26,     0,    27,
2053    319,    78,     0,     0,    51,   532,   532,   532,     0,     0,
2054      0,     0,     0,   750,   261,     0,     0,   628,     0,     0,
2055      0,     0,     0,   751,  1213,  1213,  1213,     0,   257,     0,
2056      0,    32,     0,     0,     0,     0,   752,     0,     0,     0,
2057      0,     0,     0,     0,     0,     0,     0,     7,     8,     9,
2058     10,   205,    12,   206,     0,     0,     0,     0,    14,     0,
2059     78,     0,     0,     0,     0,    78,     0,     0,    78,     0,
2060      0,     0,    16,     0,    17,    18,     0,   562,     0,     0,
2061     20,     0,     0,     0,     0,    21,     0,     0,     0,    23,
2062    628,   628,     0,     0,   628,     0,     0,   628,    26,     0,
2063     27,    28,     0,     0,   207,     0,   628,     0,     0,     0,
2064    628,   628,   628,     0,    30,     0,   628,     0,    78,    78,
2065    257,   261,     0,     0,    31,    78,     0,     0,     0,     0,
2066      0,     0,    32,  1054,  1055,     9,    10,    33,     6,     0,
2067      7,     8,     9,    10,    11,    12,    13,     0,     0,     0,
2068    688,    14,     0,     0,   970,   970,  1184,     0,     0,     0,
2069      0,    78,    78,    78,    15,    16,     0,    17,    18,    19,
2070    202,    21,     0,    20,     0,     0,     0,     0,    21,     0,
2071      0,    22,    23,    24,    26,    25,    27,    28,     0,     0,
2072      0,    26,  1056,    27,    28,     0,     0,    29,     0,  1184,
2073    193,     0,     0,     0,     0,     0,     0,    30,     0,     0,
2074    194,     0,     0,   754,   754,   754,   735,    31,    32,     0,
2075      0,     0,     0,   195,     0,    32,     0,     0,     0,     0,
2076     33,     0,   204,     0,     0,    34,   202,   202,     0,     0,
2077    202,     0,   202,   202,   202,   202,     0,     0,     0,   202,
2078      0,     0,     0,     0,   202,     0,     0,   202,     0,     0,
2079      0,     0,     0,     0,     0,     0,  1381,  1382,     9,    10,
2080      7,     8,     9,    10,   214,   215,   216,  1213,     0,     0,
2081      0,    14,     0,     0,     0,   822,     0,     0,   825,     0,
2082      0,     0,   827,   828,   830,   831,   832,     0,    18,     0,
2083      0,     0,     0,    20,    21,   562,     0,     0,    21,     0,
2084    888,   888,    23,   888,   620,     0,     0,    26,   849,    27,
2085     28,    26,     0,    27,    28,  1383,     0,     0,     0,     0,
2086      0,     0,     0,   193,     0,     0,   628,   193,     0,   628,
2087    628,   628,     0,   194,     0,     0,     0,   194,  1213,  1213,
2088   1213,    32,     0,     0,     0,    32,   195,     0,     0,     0,
2089   1461,     0,     0,   970,   970,   970,  1184,  1184,  1184,  1307,
2090      0,     0,   908,   970,    78,     0,     0,     0,     0,   908,
2091      0,     0,     0,     0,     0,     0,     7,   127,   128,    10,
2092      0,     0,     7,     8,     9,    10,  1184,  1184,  1184,     0,
2093    257,   261,     0,     0,     0,     0,     0,     0,   754,   754,
2094    754,   754,     0,     0,    18,     0,   202,     0,     0,   102,
2095     18,     0,     0,     0,    21,     0,     0,     0,   121,   102,
2096     21,     0,   204,     0,     0,   102,   102,    26,   102,    27,
2097     28,     0,     0,    26,     0,    27,    28,     0,     0,     0,
2098      0,     0,     0,    30,     0,   202,     0,   202,   202,   476,
2099      0,     0,     0,    31,     0,     0,     0,     0,     0,   477,
2100    235,    32,     0,     0,     0,     0,    33,    32,     0,     0,
2101      0,     0,   478,     0,     0,     0,     0,     0,   688,  1307,
2102    970,   970,  1307,  1307,  1307,     0,     0,   970,     0,     0,
2103      0,     0,   202,     0,     0,     0,     0,     0,     0,     0,
2104      0,     0,     0,     0,   202,   202,   202,   202,   202,   487,
2105      0,     0,   202,     0,     0,     0,     0,     0,     0,   389,
2106      0,   121,     0,   204,     0,   204,     0,     0,   102,   102,
2107      0,     0,     0,     0,     0,   102,   102,     0,   261,   102,
2108    102,   102,   735,   417,   102,   102,   102,     0,   735,     0,
2109      0,   202,   578,   579,   580,   581,   582,   583,   584,   585,
2110    586,   587,   588,   589,   590,   591,   592,   593,   626,   626,
2111    626,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2112      0,     0,   783,     0,     7,     8,   784,    10,   167,    12,
2113     13,     0,     0,  1307,  1307,    14,  1307,     0,     0,     0,
2114      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2115      0,    17,    18,    19,     0,     0,  1116,    20,  -527,     0,
2116      0,     0,    21,     0,     0,     0,    23,   785,     0,   168,
2117      0,     0,     0,   235,   102,    26,     0,    27,    28,   481,
2118      0,   786,     0,   787,     0,     0,     0,     0,     0,     0,
2119      0,    30,   849,     0,   102,     0,     0,     0,   735,     0,
2120      0,    31,   908,     0,     0,     0,     0,     0,     0,    32,
2121      0,     0,     0,     0,    33,     0,     0,     0,  1307,  1307,
2122   1307,  1307,     0,     0,     0,   257,   261,   257,     0,     0,
2123   -527,     0,     0,   102,     0,     0,     0,     0,     0,     0,
2124    688,     0,  1173,     0,     0,     0,   908,     0,     0,     0,
2125    481,   481,   481,     0,     0,     0,     0,     0,     0,     0,
2126      0,     0,   202,   202,  1182,     0,     0,     0,     0,   257,
2127   1307,     0,     0,     0,     0,     0,   204,     0,     0,     0,
2128      0,   102,     0,   102,   102,     0,     0,     0,     0,   908,
2129      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2130      0,     0,  1217,     0,     0,     0,     0,  1182,     0,     0,
2131      0,     0,  1228,     0,     0,     0,     0,     0,     0,   735,
2132      0,   202,   202,   202,     0,     0,     0,     0,   102,     0,
2133      0,   735,     7,     8,     9,    10,   300,     8,     9,    10,
2134    202,     0,     0,     0,     0,     0,     0,   102,     0,     0,
2135      0,     0,     0,     0,   102,     0,     0,   102,     0,     0,
2136     18,   487,     0,     0,    18,   735,     0,   735,     0,   102,
2137     21,     0,     0,     0,    21,     0,     0,     0,     0,     0,
2138      0,   626,   626,    26,   626,    27,    28,    26,     0,    27,
2139    319,   926,     0,     0,     0,  1277,     0,     0,     0,   193,
2140      0,     0,     0,   750,     0,     0,     0,     0,     0,   194,
2141      0,     0,     0,   751,     0,     0,     0,    32,     0,     0,
2142      0,    32,   195,     0,     0,     0,   752,     0,     0,     0,
2143      0,   908,     0,     0,     0,     0,     0,     0,     0,     0,
2144    102,     0,   775,     0,     0,     0,     0,     0,     0,   626,
2145    257,   626,   626,     0,   626,     0,     0,     0,   908,   300,
2146      8,     9,    10,   167,    12,    13,   102,     0,   733,     0,
2147     14,   202,   202,   202,   202,   202,  1182,   202,     0,  1308,
2148      0,   202,     0,     0,    16,     0,    17,    18,   908,     0,
2149      0,     0,    20,     0,     0,     0,   626,    21,     0,     0,
2150      0,    23,     0,   620,  1182,  1182,  1182,     0,     0,     0,
2151     26,     0,    27,   319,     0,     0,   202,   202,   202,   202,
2152      0,     0,     0,     0,     0,     0,  1304,     0,     0,  1381,
2153    127,   128,    10,     0,     0,     0,  1305,     0,     0,     0,
2154    202,     0,   102,     0,    32,     0,   623,     0,     0,  1306,
2155    625,     0,     0,   102,   102,     0,   102,   102,     0,     0,
2156      0,     0,     0,     0,     0,     0,     0,    21,     0,     7,
2157      8,     9,    10,     0,     0,     0,     0,     0,     0,     0,
2158     26,     0,    27,    28,   908,     0,     0,     0,  1383,   626,
2159      0,     0,     0,     0,     0,     0,    30,   202,   202,   202,
2160    202,   202,  1182,     0,     0,   202,    31,    21,     0,   102,
2161      0,     0,     0,     0,    32,     0,   102,   121,     0,    33,
2162     26,     0,    27,    28,     0,     0,  1455,     0,   235,     0,
2163      0,     0,     0,     0,     0,     0,   193,     0,     0,     0,
2164      0,   202,  1217,   202,     0,     0,   194,     0,     0,     0,
2165      0,     0,   775,     0,    32,     0,     0,    18,     0,   195,
2166      0,     0,   626,   626,     0,     0,   626,     0,     0,   626,
2167      0,     0,     0,     0,     0,     0,     0,     0,   626,     0,
2168      0,     0,   926,   926,   926,     0,     0,     0,   626,   572,
2169    573,   574,   575,   576,   577,   578,   579,   580,   581,   582,
2170    583,   584,   585,   586,   587,   588,   589,   590,   591,   592,
2171    593,   202,   202,  1308,   202,     0,     0,   775,     0,     0,
2172    102,     0,     0,     0,     0,     0,   626,   626,   626,     0,
2173      0,     0,   783,     0,     7,     8,   784,    10,   167,    12,
2174     13,     0,     0,     0,     0,    14,     0,     0,     0,     0,
2175      0,     0,   102,   102,   102,     0,     0,  1182,     0,    16,
2176      0,    17,    18,    19,   102,     0,     0,    20,  -526,     0,
2177      0,   926,    21,     0,     0,     0,    23,   785,     0,   168,
2178    908,     0,     0,     0,     0,    26,     0,    27,    28,     0,
2179      0,   786,     0,   787,     0,     0,   202,   202,  1182,   202,
2180      0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
2181      0,    31,   562,     0,     0,     0,     0,     0,     0,    32,
2182      0,     0,     0,     0,    33,     0,     0,     0,  1182,  1182,
2183   1182,   688,     0,     0,     8,     9,     0,   102,   102,    13,
2184   -526,   102,     0,     0,   102,     0,     0,     0,   202,     0,
2185      0,     0,     0,   102,   202,     0,     0,     0,     0,     0,
2186      0,    18,     0,   102,     0,     7,     8,     9,    10,   167,
2187     12,    13,     0,     0,  1016,     0,    14,   620,     0,     0,
2188      0,     0,     0,     0,    26,     0,   130,   131,     0,     0,
2189     16,     0,    17,    18,     0,     0,     0,     0,    20,     0,
2190   1500,     0,     0,    21,     0,     0,     0,    23,   626,     0,
2191   1501,   626,   626,   626,     0,     0,    26,     0,    27,    28,
2192    623,     0,     0,  1502,   625,     0,     0,     0,     0,     0,
2193      0,     0,    30,     0,     0,   626,   626,   626,   626,   626,
2194    626,   626,    31,     0,   852,   626,   300,     8,     9,    10,
2195     32,    12,   536,   302,   303,    33,   304,    14,     0,     0,
2196      0,     0,     0,     0,     0,     0,     0,     0,   926,   926,
2197    926,    16,   305,    17,   775,    19,     0,   306,   307,    20,
2198      0,   308,   309,   310,    21,   311,   312,     0,    23,     0,
2199      0,     0,   313,   314,   315,   316,   317,    26,     0,    27,
2200    319,   102,     0,     0,   320,  -791,     0,     0,     0,     0,
2201    321,     0,     0,   322,     0,     0,     0,     0,     0,     0,
2202      0,   323,   324,   325,     0,     0,     0,     0,     0,   326,
2203    327,   328,     0,     0,     0,     0,   329,     0,  1516,     0,
2204      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2205      0,     0,     0,   330,     0,     0,     0,   102,   102,     0,
2206    102,   626,   626,   626,   626,   626,   626,     0,     0,   626,
2207      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2208      0,     0,     0,   102,     0,     0,   102,   102,  1517,   572,
2209    573,   574,   575,   576,   577,   578,   579,   580,   581,   582,
2210    583,   584,   585,   586,   587,   588,   589,   590,   591,   592,
2211    593,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2212      0,     0,     0,     0,     0,     0,     0,   775,     0,     0,
2213      0,     0,     0,  1545,     0,  -480,  -480,  -480,  -480,  -480,
2214   -480,  -480,     0,     0,  -480,     0,  -480,     0,     0,     0,
2215      0,     0,     0,     0,     0,     0,     0,  -480,     0,  -480,
2216      0,     0,     0,  -480,   775,     0,     0,     0,  -480,     0,
2217      0,     0,     0,  -480,     0,   626,   626,  -480,   626,  -480,
2218      0,     0,   102,     0,   102,     0,  -480,     0,  -480,  -480,
2219   -480,  -480,  -480,     0,  -480,  -480,  -480,  -480,  -480,  -480,
2220   -480,  -480,  -480,  -480,  -480,  -480,  -480,  -480,  -480,  -480,
2221   -480,  -480,  -480,  -480,  -480,  -480,  -480,     0,  -480,  -480,
2222   -480,     0,  -480,  -480,  -480,  -480,  -480,  -480,     0,  -480,
2223      0,     0,     0,     0,  1546,     0,     0,     0,     0,  -480,
2224   -480,  -480,     0,  -480,     0,     0,     0,     0,     0,     0,
2225      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2226    626,   626,   626,   626,     0,  1463,     0,  1319,  1320,  1321,
2227     10,   167,    12,   301,   302,   303,     0,   304,    14,  1322,
2228      0,  1323,  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,
2229   1332,    15,    16,   305,    17,    18,    19,     0,   306,   307,
2230     20,     0,   308,   309,   310,    21,   311,   312,  1333,    23,
2231   1334,     0,   626,   313,   314,   315,   316,   317,    26,     0,
2232   1335,   319,   720,     0,  1336,   320,     0,     0,     0,     0,
2233      0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
2234      0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
2235    326,   327,   328,     0,     0,     0,     0,   329,     0,  1337,
2236      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2237      0,     0,     0,  1464,   330,  1318,     0,  1319,  1320,  1321,
2238     10,   167,    12,   301,   302,   303,     0,   304,    14,  1322,
2239      0,  1323,  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,
2240   1332,    15,    16,   305,    17,    18,    19,     0,   306,   307,
2241     20,     0,   308,   309,   310,    21,   311,   312,  1333,    23,
2242   1334,     0,     0,   313,   314,   315,   316,   317,    26,     0,
2243   1335,   319,   720,     0,  1336,   320,     0,     0,     0,     0,
2244      0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
2245      0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
2246    326,   327,   328,     0,     0,     0,     0,   329,   554,  1337,
2247    300,     8,     9,    10,   167,    12,   301,   302,   303,   733,
2248    304,    14,     0,     0,   330,     0,     0,     0,     0,     0,
2249      0,     0,     0,     0,     0,    16,   305,    17,    18,    19,
2250      0,   306,   307,    20,     0,   308,   309,   310,    21,   311,
2251    312,     0,    23,     0,   620,     0,   313,   314,   315,   316,
2252    317,    26,     0,    27,   319,  -312,     0,     0,   320,     0,
2253      0,     0,     0,     0,   321,     0,     0,   922,     0,     0,
2254      0,     0,     0,     0,     0,   323,   324,   923,     0,     0,
2255      0,     0,     0,   326,   327,   328,     0,   623,     0,     0,
2256    924,   625,   554,     0,     7,     8,     9,    10,   167,    12,
2257    301,   302,   303,   733,   304,    14,     0,   330,     0,     0,
2258      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2259    305,    17,    18,    19,     0,   306,   307,    20,     0,   308,
2260    309,   310,    21,   311,   312,     0,    23,     0,   620,     0,
2261    313,   314,   315,   316,   317,    26,     0,    27,    28,  -312,
2262      0,     0,   320,     0,     0,     0,     0,     0,   321,     0,
2263      0,  1208,     0,     0,     0,     0,     0,     0,     0,   323,
2264    324,  1209,     0,     0,     0,     0,     0,   326,   327,   328,
2265      0,   623,     0,     0,  1210,   625,   852,     0,   300,     8,
2266      9,    10,   167,    12,   301,   302,   303,     0,   304,    14,
2267      0,   330,     0,     0,     0,     0,     0,     0,     0,     0,
2268      0,     0,     0,    16,   305,    17,    18,    19,     0,   306,
2269    307,    20,     0,   308,   309,   310,    21,   311,   312,     0,
2270     23,     0,     0,     0,   313,   314,   315,   316,   317,    26,
2271      0,    27,   319,  1563,     0,  -791,   320,     0,     0,     0,
2272      0,     0,   321,     0,     0,   322,     0,     0,     0,     0,
2273      0,     0,     0,   323,   324,   325,     0,     0,     0,     0,
2274      0,   326,   327,   328,     0,     0,     0,   554,   329,   300,
2275      8,     9,    10,     0,    12,   301,   302,   303,     0,   304,
2276     14,     0,     0,     0,     0,   330,     0,     0,     0,     0,
2277      0,     0,     0,     0,    16,   305,    17,    18,    19,     0,
2278    306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
2279      0,    23,     0,     0,     0,   313,   314,   315,   316,   317,
2280     26,     0,    27,   319,  -312,     0,     0,   320,     0,     0,
2281      0,     0,     0,   321,     0,     0,   555,     0,     0,     0,
2282      0,     0,     0,     0,   323,   324,   556,     0,     0,     0,
2283      0,     0,   326,   327,   328,     0,     0,     0,   723,   557,
2284    840,   841,   842,    10,     0,    12,   536,   302,   303,     0,
2285    304,    14,     0,     0,     0,     0,   330,     0,     0,     0,
2286      0,     0,     0,     0,     0,    16,   305,    17,     0,    19,
2287      0,   306,   307,    20,     0,   308,   309,   310,    21,   311,
2288    312,     0,    23,     0,     0,     0,   313,   314,   315,   316,
2289    317,    26,     0,   843,   844,   724,     0,     0,   320,     0,
2290      0,     0,     0,     0,   321,     0,     0,   322,     0,     0,
2291      0,     0,     0,     0,     0,   323,   324,   325,     0,     0,
2292      0,     0,     0,   326,   327,   328,     0,     0,     0,     0,
2293    329,   845,   723,     0,   840,   841,   842,    10,     0,    12,
2294    536,   302,   303,     0,   304,    14,     0,   330,     0,     0,
2295      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2296    305,    17,     0,    19,     0,   306,   307,    20,     0,   308,
2297    309,   310,    21,   311,   312,     0,    23,     0,     0,     0,
2298    313,   314,   315,   316,   317,    26,     0,   843,   844,   724,
2299      0,     0,   320,     0,     0,     0,     0,     0,   321,     0,
2300      0,   322,     0,     0,     0,     0,     0,     0,     0,   323,
2301    324,   325,     0,     0,     0,     0,     0,   326,   327,   328,
2302      0,     0,     0,   723,   329,   840,   841,   842,    10,     0,
2303     12,   536,   302,   303,     0,   304,    14,     0,     0,     0,
2304   -484,   330,     0,     0,     0,     0,     0,     0,     0,     0,
2305     16,   305,    17,     0,    19,     0,   306,   307,    20,     0,
2306    308,   309,   310,    21,   311,   312,     0,    23,     0,     0,
2307      0,   313,   314,   315,   316,   317,    26,     0,   843,   844,
2308    724,     0,     0,   320,     0,     0,     0,     0,     0,   321,
2309      0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
2310    323,   324,   325,     0,     0,     0,     0,     0,   326,   327,
2311    328,     0,     0,     0,   723,   329,   300,     8,     9,    10,
2312      0,    12,   536,   302,   303,     0,   304,    14,     0,     0,
2313      0,  1357,   330,     0,     0,     0,     0,     0,     0,     0,
2314      0,    16,   305,    17,     0,    19,     0,   306,   307,    20,
2315      0,   308,   309,   310,    21,   311,   312,     0,    23,     0,
2316      0,     0,   313,   314,   315,   316,   317,    26,     0,    27,
2317    319,   724,     0,     0,   320,     0,     0,     0,     0,     0,
2318    321,     0,     0,   322,     0,     0,     0,     0,     0,     0,
2319      0,   323,   324,   325,     0,     0,     0,     0,     0,   326,
2320    327,   328,     0,     0,     0,     0,   329,     0,   554,     0,
2321      7,     8,     9,    10,  1361,    12,   301,   302,   303,     0,
2322    304,    14,     0,   330,     0,     0,     0,     0,     0,     0,
2323      0,     0,     0,     0,     0,    16,   305,    17,    18,    19,
2324      0,   306,   307,    20,     0,   308,   309,   310,    21,   311,
2325    312,     0,    23,     0,     0,     0,   313,   314,   315,   316,
2326    317,    26,     0,    27,    28,  -312,     0,     0,   320,     0,
2327      0,     0,     0,     0,   321,     0,     0,  1532,     0,     0,
2328      0,     0,     0,     0,     0,   323,   324,  1533,     0,     0,
2329      0,     0,     0,   326,   327,   328,     0,     0,     0,   723,
2330   1534,   300,     8,     9,    10,     0,    12,   536,   302,   303,
2331      0,   304,    14,     0,     0,     0,     0,   330,     0,     0,
2332      0,     0,     0,     0,     0,     0,    16,   305,    17,     0,
2333     19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
2334    311,   312,     0,    23,     0,     0,     0,   313,   314,   315,
2335    316,   317,    26,     0,    27,   319,   724,     0,     0,   320,
2336      0,     0,     0,     0,     0,   321,     0,     0,   322,     0,
2337      0,     0,     0,     0,     0,     0,   323,   324,   325,     0,
2338      0,     0,     0,     0,   326,   327,   328,     0,     0,     0,
2339   1616,   329,   300,     8,     9,    10,     0,    12,   301,   302,
2340    303,     0,   304,    14,     0,     0,     0,     0,   330,     0,
2341      0,     0,     0,     0,     0,     0,     0,    16,   305,    17,
2342      0,    19,     0,   306,   307,    20,     0,   308,   309,   310,
2343     21,   311,   312,     0,    23,     0,     0,     0,   313,   314,
2344    315,   316,   317,    26,     0,    27,   319,     0,     0,  -196,
2345    320,     0,     0,     0,     0,     0,   321,     0,     0,   322,
2346      0,     0,     0,     0,     0,     0,     0,   323,   324,   325,
2347      0,     0,     0,     0,     0,   326,   327,   328,     0,     0,
2348      0,   852,   329,   300,     8,     9,    10,     0,    12,   536,
2349    302,   303,     0,   304,    14,     0,     0,     0,     0,   330,
2350      0,     0,     0,     0,     0,     0,     0,     0,    16,   305,
2351     17,     0,    19,     0,   306,   307,    20,     0,   308,   309,
2352    310,    21,   311,   312,     0,    23,     0,     0,     0,   313,
2353    314,   315,   316,   317,    26,     0,    27,   319,     0,     0,
2354      0,   320,     0,     0,     0,     0,     0,   321,     0,     0,
2355    322,     0,     0,     0,     0,     0,     0,     0,   323,   324,
2356    325,     0,     0,     0,     0,     0,   326,   327,   328,     0,
2357      0,     0,   944,   329,   300,     8,     9,    10,     0,    12,
2358    536,   302,   303,     0,   304,    14,     0,     0,  -791,     0,
2359    330,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2360    305,    17,     0,    19,     0,   306,   307,    20,     0,   308,
2361    309,   310,    21,   311,   312,     0,    23,     0,     0,     0,
2362    313,   314,   315,   316,   317,    26,     0,    27,   319,     0,
2363      0,     0,   320,     0,     0,     0,     0,     0,   321,     0,
2364      0,   322,     0,     0,     0,     0,     0,     0,     0,   323,
2365    324,   325,     0,     0,     0,     0,     0,   326,   327,   328,
2366      0,     0,     0,   946,   329,   300,     8,     9,    10,     0,
2367     12,   536,   302,   303,     0,   304,    14,     0,     0,     0,
2368      0,   330,     0,     0,     0,     0,     0,     0,     0,     0,
2369     16,   305,    17,     0,    19,     0,   306,   307,    20,     0,
2370    308,   309,   310,    21,   311,   312,     0,    23,     0,     0,
2371      0,   313,   314,   315,   316,   317,    26,     0,    27,   319,
2372      0,     0,     0,   320,     0,     0,     0,     0,     0,   321,
2373      0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
2374    323,   324,   325,     0,     0,     0,     0,     0,   326,   327,
2375    328,     0,     0,     0,  1581,   329,   300,     8,     9,    10,
2376      0,    12,   536,   302,   303,     0,   304,    14,     0,     0,
2377      0,     0,   330,     0,     0,     0,     0,     0,     0,     0,
2378      0,    16,   305,    17,     0,    19,     0,   306,   307,    20,
2379      0,   308,   309,   310,    21,   311,   312,     0,    23,     0,
2380      0,     0,   313,   314,   315,   316,   317,    26,     0,    27,
2381    319,     0,     0,     0,   320,     0,     0,     0,     0,     0,
2382    321,     0,     0,   322,     0,     0,     0,     0,     0,     0,
2383      0,   323,   324,   325,     0,     0,     0,     0,     0,   326,
2384    327,   328,   300,     8,     9,    10,   329,    12,   536,   302,
2385    303,     0,   304,    14,     0,     0,     0,     0,     0,     0,
2386      0,     0,     0,   330,     0,     0,     0,    16,   305,    17,
2387      0,    19,     0,   306,   307,    20,     0,   308,   309,   310,
2388     21,   311,   312,     0,    23,     0,     0,     0,   313,   314,
2389    315,   316,   317,    26,     0,    27,   319,     0,     0,     0,
2390    320,     0,     0,     0,     0,     0,   321,     0,     0,   322,
2391      0,     0,     0,     0,     0,     0,     0,   323,   324,   325,
2392      0,     0,     0,     0,     0,   326,   327,   328,     0,     0,
2393      0,     0,   329,     0,     0,     0,     0,     0,     0,     0,
2394      0,     0,     0,     0,     0,     0,     0,     0,     0,   330,
2395    891,  1319,  1320,  1321,    10,   167,    12,   301,   302,   303,
2396      0,   304,    14,  1322,     0,  1323,  1324,  1325,  1326,  1327,
2397   1328,  1329,  1330,  1331,  1332,    15,    16,   305,    17,    18,
2398     19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
2399    311,   312,  1333,    23,  1334,     0,     0,   313,   314,   315,
2400    316,   317,    26,     0,  1335,   319,   720,     0,  1336,   320,
2401      0,     0,     0,     0,     0,   321,     0,     0,   322,     0,
2402      0,     0,     0,     0,     0,     0,   323,   324,   325,     0,
2403      0,     0,     0,     0,   326,   327,   328,     0,     0,     0,
2404      0,   329,     0,  1337,     0,     0,     0,     0,     0,     0,
2405      0,     0,     0,     0,     0,     0,     0,  1468,   330,  1319,
2406   1320,  1321,    10,   167,    12,   301,   302,   303,     0,   304,
2407     14,  1322,     0,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
2408   1330,  1331,  1332,    15,    16,   305,    17,    18,    19,     0,
2409    306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
2410   1333,    23,  1334,     0,     0,   313,   314,   315,   316,   317,
2411     26,     0,  1335,   319,   720,     0,  1336,   320,     0,     0,
2412      0,     0,     0,   321,     0,     0,   322,     0,     0,     0,
2413      0,     0,     0,     0,   323,   324,   325,     0,     0,     0,
2414      0,     0,   326,   327,   328,     0,     0,     0,     0,   329,
2415      0,  1337,     0,  1319,  1320,  1321,    10,   167,    12,   301,
2416    302,   303,     0,   304,    14,  1322,   330,  1323,  1324,  1325,
2417   1326,  1327,  1328,  1329,  1330,  1331,  1332,    15,    16,   305,
2418     17,    18,    19,     0,   306,   307,    20,     0,   308,   309,
2419    310,    21,   311,   312,  1333,    23,  1334,     0,     0,   313,
2420    314,   315,   316,   317,    26,     0,  1335,   319,  1590,     0,
2421   1336,   320,     0,     0,     0,     0,     0,   321,     0,     0,
2422    322,     0,     0,     0,     0,     0,     0,     0,   323,   324,
2423    325,     0,     0,     0,     0,     0,   326,   327,   328,     0,
2424      0,     0,     0,   329,     0,  1337,     0,  1319,  1320,  1321,
2425     10,   167,    12,   301,   302,   303,     0,   304,    14,  1322,
2426    330,  1323,  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,
2427   1332,    15,    16,   305,    17,    18,    19,     0,   306,   307,
2428     20,     0,   308,   309,   310,    21,   311,   312,  1333,    23,
2429   1334,     0,     0,   313,   314,   315,   316,   317,    26,     0,
2430   1335,   319,     0,     0,  1336,   320,     0,     0,     0,     0,
2431      0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
2432      0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
2433    326,   327,   328,     0,     0,     0,     0,   329,     0,  1337,
2434    300,     8,     9,    10,   167,    12,   301,   302,   303,   733,
2435    304,    14,     0,     0,   330,     0,     0,     0,     0,     0,
2436      0,     0,     0,     0,     0,    16,   305,    17,    18,    19,
2437      0,   306,   307,    20,     0,   308,   309,   310,    21,   311,
2438    312,     0,    23,     0,   620,     0,   313,   314,   315,   316,
2439    317,    26,     0,    27,   319,     0,     0,     0,   320,     0,
2440      0,     0,     0,     0,   321,     0,     0,   922,     0,     0,
2441      0,     0,     0,     0,     0,   323,   324,   923,     0,     0,
2442      0,     0,     0,   326,   327,   328,     0,   623,     0,     0,
2443    924,   625,     7,     8,     9,    10,   167,    12,   301,   302,
2444    303,   733,   304,    14,     0,     0,     0,   330,     0,     0,
2445      0,     0,     0,     0,     0,     0,     0,    16,   305,    17,
2446     18,    19,     0,   306,   307,    20,     0,   308,   309,   310,
2447     21,   311,   312,     0,    23,     0,   620,     0,   313,   314,
2448    315,   316,   317,    26,     0,    27,    28,     0,     0,     0,
2449    320,     0,     0,     0,     0,     0,   321,     0,     0,  1208,
2450      0,     0,     0,     0,     0,     0,     0,   323,   324,  1209,
2451      0,     0,     0,     0,     0,   326,   327,   328,     0,   623,
2452      0,     0,  1210,   625,     7,     8,     9,    10,     0,    12,
2453    301,   302,   303,     0,   304,    14,     0,     0,     0,   330,
2454      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2455    305,    17,    18,    19,     0,   306,   307,    20,     0,   308,
2456    309,   310,    21,   311,   312,     0,    23,     0,   620,     0,
2457    313,   314,   315,   316,   317,    26,     0,    27,    28,     0,
2458      0,     0,     0,     0,     0,     0,     0,     0,   321,     0,
2459      0,  1208,     0,     0,     0,     0,     0,     0,     0,   323,
2460    324,  1209,     0,     0,     0,     0,     0,   326,   327,   328,
2461      0,   623,     0,     0,  1210,   625,   300,     8,     9,    10,
2462      0,    12,   536,   302,   303,     0,   304,    14,     0,     0,
2463      0,   330,     0,     0,     0,     0,     0,     0,     0,     0,
2464      0,    16,   305,    17,    18,    19,     0,   306,   307,    20,
2465      0,   308,   309,   310,    21,   311,   312,     0,    23,     0,
2466      0,     0,   313,   314,   315,   316,   317,    26,     0,    27,
2467    319,     0,     0,     0,   320,     0,     0,     0,     0,     0,
2468    321,     0,     0,   555,     0,     0,     0,     0,     0,     0,
2469      0,   323,   324,   556,     0,     0,     0,     0,     0,   326,
2470    327,   328,   300,     8,     9,    10,   557,    12,   536,   302,
2471    303,     0,   304,    14,     0,     0,     0,     0,     0,     0,
2472      0,     0,     0,   330,     0,     0,     0,    16,   305,    17,
2473      0,    19,     0,   306,   307,    20,     0,   308,   309,   310,
2474     21,   311,   312,     0,    23,     0,     0,     0,   313,   314,
2475    315,   316,   317,    26,     0,    27,   319,     0,     0,  1441,
2476    320,     0,     0,     0,     0,     0,   321,     0,     0,   322,
2477      0,     0,     0,     0,     0,     0,     0,   323,   324,   325,
2478      0,     0,     0,     0,     0,   326,   327,   328,     0,     0,
2479      0,     0,   329,   300,     8,     9,    10,   167,    12,   301,
2480    302,   303,     0,   304,    14,     0,     0,     0,     0,   330,
2481      0,     0,     0,     0,     0,     0,     0,     0,    16,   305,
2482     17,    18,    19,     0,   306,   307,    20,     0,   308,   309,
2483    310,    21,   311,   312,     0,    23,     0,     0,     0,   313,
2484    314,   315,   316,   317,    26,     0,    27,   319,     0,     0,
2485      0,     0,     0,     0,     0,     0,     0,   321,     0,     0,
2486    322,     0,     0,     0,     0,     0,     0,     0,   323,   324,
2487    325,     0,     0,     0,     0,     0,   326,   327,   328,     7,
2488      8,     9,    10,   329,    12,   536,   302,   303,     0,   304,
2489     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2490    330,     0,     0,     0,    16,   305,    17,    18,    19,     0,
2491    306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
2492      0,    23,     0,     0,     0,   313,   314,   315,   316,   317,
2493     26,     0,    27,    28,     0,     0,     0,   320,     0,     0,
2494      0,     0,     0,   321,     0,     0,  1532,     0,     0,     0,
2495      0,     0,     0,     0,   323,   324,  1533,     0,     0,     0,
2496      0,     0,   326,   327,   328,   300,     8,     9,    10,  1534,
2497     12,   301,   302,   303,     0,   304,    14,     0,     0,     0,
2498      0,     0,     0,     0,     0,     0,   330,     0,     0,     0,
2499     16,   305,    17,     0,    19,     0,   306,   307,    20,     0,
2500    308,   309,   310,    21,   311,   312,     0,    23,     0,     0,
2501      0,   313,   314,   315,   316,   317,    26,     0,   318,   319,
2502      0,     0,     0,   320,     0,     0,     0,     0,     0,   321,
2503      0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
2504    323,   324,   325,     0,     0,     0,     0,     0,   326,   327,
2505    328,   300,     8,     9,    10,   329,    12,   301,   302,   303,
2506      0,   304,    14,     0,     0,     0,     0,     0,     0,     0,
2507      0,     0,   330,     0,     0,     0,    16,   305,    17,     0,
2508     19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
2509    311,   312,     0,    23,     0,     0,     0,   313,   314,   315,
2510    316,   317,    26,     0,    27,   319,     0,     0,     0,   320,
2511      0,     0,     0,     0,     0,   321,     0,     0,   322,     0,
2512      0,     0,     0,     0,     0,     0,   323,   324,   325,     0,
2513      0,     0,     0,     0,   326,   327,   328,   300,     8,     9,
2514     10,   329,    12,   536,   302,   303,     0,   304,    14,     0,
2515      0,     0,     0,     0,     0,     0,     0,     0,   330,     0,
2516      0,     0,    16,   305,    17,     0,    19,     0,   306,   307,
2517     20,     0,   308,   309,   310,    21,   311,   312,     0,    23,
2518      0,     0,     0,   313,   314,   315,   316,   317,    26,     0,
2519     27,   319,     0,     0,     0,   320,     0,     0,     0,     0,
2520      0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
2521      0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
2522    326,   327,   328,   300,     8,     9,    10,   329,    12,   536,
2523    302,   303,     0,   304,    14,     0,     0,     0,     0,     0,
2524      0,     0,     0,     0,   330,     0,     0,     0,    16,   305,
2525     17,     0,    19,     0,   306,   307,    20,     0,   308,   309,
2526    310,    21,   311,   312,     0,    23,     0,     0,     0,   313,
2527    314,   315,   316,   317,    26,     0,    27,   319,   569,     0,
2528      0,     0,     0,     0,     0,     0,     0,   321,     0,     0,
2529    322,     0,     0,     0,     0,     0,     0,     0,   323,   324,
2530    325,     0,     0,     0,     0,     0,   326,   327,   328,   300,
2531      8,     9,    10,   570,    12,   536,   302,   303,     0,   304,
2532     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2533    330,     0,     0,     0,    16,   305,    17,     0,    19,     0,
2534    306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
2535      0,    23,     0,     0,     0,   313,   314,   315,   316,   317,
2536     26,     0,    27,   319,     0,     0,     0,     0,     0,     0,
2537      0,     0,     0,   321,     0,     0,   322,     0,     0,     0,
2538      0,     0,     0,     0,   323,   324,   325,     0,     0,     0,
2539      0,     0,   326,   327,   328,     0,     0,     0,     0,   329,
2540    608,   300,     8,     9,    10,     0,    12,   536,   302,   303,
2541      0,   304,    14,     0,     0,     0,   330,     0,     0,     0,
2542      0,     0,     0,     0,     0,     0,    16,   305,    17,    18,
2543     19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
2544    311,   312,     0,    23,     0,     0,     0,   313,   314,   315,
2545    316,   317,    26,     0,    27,   319,     0,     0,     0,     0,
2546      0,     0,     0,     0,     0,   321,     0,     0,   555,     0,
2547      0,     0,     0,     0,     0,     0,   323,   324,   556,     0,
2548      0,     0,     0,     0,   326,   327,   328,  1166,     8,     9,
2549     10,   557,    12,   536,   302,   303,     0,   304,    14,     0,
2550      0,     0,     0,     0,     0,     0,     0,     0,   330,     0,
2551      0,     0,    16,   305,    17,     0,    19,     0,   306,   307,
2552     20,     0,   308,   309,   310,    21,   311,   312,     0,    23,
2553      0,     0,     0,   313,   314,   315,   316,   317,    26,     0,
2554     27,   319,     0,     0,     0,   320,     0,     0,     0,     0,
2555      0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
2556      0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
2557    326,   327,   328,     7,     8,     9,    10,   329,    12,   301,
2558    302,   303,     0,   304,    14,     0,     0,     0,     0,     0,
2559      0,     0,     0,     0,   330,     0,     0,     0,    16,   305,
2560     17,    18,    19,     0,   306,   307,    20,     0,   308,   309,
2561    310,    21,   311,   312,     0,    23,     0,     0,     0,   313,
2562    314,   315,   316,   317,    26,     0,    27,    28,     0,     0,
2563      0,     0,     0,     0,     0,     0,     0,   321,     0,     0,
2564   1532,     0,     0,     0,     0,     0,     0,     0,   323,   324,
2565   1533,     0,     0,     0,     0,     0,   326,   327,   328,   300,
2566      8,     9,    10,  1534,    12,   536,   302,   303,     0,   304,
2567     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2568    330,     0,     0,     0,    16,   305,    17,     0,    19,     0,
2569    306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
2570      0,    23,     0,     0,     0,   313,   314,   315,   316,   317,
2571     26,     0,    27,   319,     0,     0,     0,     0,     0,     0,
2572      0,     0,     0,   321,     0,     0,   322,     0,     0,     0,
2573      0,     0,     0,     0,   323,   324,   325,     0,     0,     0,
2574      0,     0,   326,   327,   328,   300,     8,     9,    10,   537,
2575     12,   536,   302,   303,     0,   304,    14,     0,     0,     0,
2576      0,     0,     0,     0,     0,     0,   330,     0,     0,     0,
2577     16,   305,    17,     0,    19,     0,   306,   307,    20,     0,
2578    308,   309,   310,    21,   311,   312,     0,    23,     0,     0,
2579      0,   313,   314,   315,   316,   317,    26,     0,    27,   319,
2580      0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
2581      0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
2582    323,   324,   325,     0,     0,     0,     0,     0,   326,   327,
2583    328,   300,     8,     9,    10,   540,    12,   536,   302,   303,
2584      0,   304,    14,     0,     0,     0,     0,     0,     0,     0,
2585      0,     0,   330,     0,     0,     0,    16,   305,    17,     0,
2586     19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
2587    311,   312,     0,    23,     0,     0,     0,   313,   314,   315,
2588    316,   317,    26,     0,    27,   319,     0,     0,     0,     0,
2589      0,     0,     0,     0,     0,   321,     0,   783,   322,     7,
2590      8,   784,    10,   167,    12,    13,   323,   324,   325,     0,
2591     14,     0,     0,     0,   326,   327,   328,     0,     0,     0,
2592      0,   329,     0,     0,    16,     0,    17,    18,    19,     0,
2593      0,     0,    20,     0,     0,     0,     0,    21,   330,     0,
2594      0,    23,   785,     0,   168,     0,     0,     0,     0,     0,
2595     26,     0,    27,    28,     0,     0,   786,     0,   787,     0,
2596      0,     0,     0,     0,     0,     0,    30,  -387,     8,     9,
2597   -387,  -387,    12,   246,     0,     0,    31,     0,    14,     0,
2598      0,     0,     0,     0,    32,     0,     0,     0,     0,    33,
2599      0,     0,    16,     0,    17,  -387,     0,     0,     0,     0,
2600     20,     0,     0,     0,     0,  -387,     0,     0,     0,    23,
2601      0,   620,     0,     0,     0,     0,     0,     0,    26,     0,
2602    130,   131,  1054,     8,   784,    10,   205,    12,   206,     0,
2603      0,     0,     0,    14,   621,     0,     0,     0,     0,     0,
2604      0,     0,     0,     0,   622,     0,     0,    16,     0,    17,
2605     18,     0,  -387,     0,   623,    20,     0,   624,   625,     0,
2606     21,     0,     0,     0,    23,     0,     0,     0,     0,     0,
2607      0,     0,     0,    26,     0,    27,    28,     0,     0,     0,
2608      0,  1056,     0,     0,     0,     0,     0,     0,     0,    30,
2609      7,     8,     9,    10,   205,    12,   206,     0,     0,    31,
2610      0,    14,     0,     0,     0,     0,     0,    32,     0,     0,
2611      0,     0,    33,     0,     0,    16,     0,    17,    18,     0,
2612      0,     0,     0,    20,     0,     0,     0,     0,    21,     0,
2613      0,     0,    23,     0,     0,     0,     0,     0,     0,     0,
2614      0,    26,     0,    27,    28,     0,     0,  1458,     0,     7,
2615      8,     9,    10,   167,    12,    13,     0,    30,     0,     0,
2616     14,     0,     0,     0,     0,     0,     0,    31,     0,     0,
2617      0,     0,     0,     0,    16,    32,    17,    18,     0,     0,
2618     33,     0,    20,     0,     0,     0,     0,    21,     0,     0,
2619      0,    23,     0,     0,     0,     0,     0,     0,     0,     0,
2620     26,     0,    27,    28,     7,     8,     9,    10,   205,    12,
2621    206,     0,     0,     0,     0,    14,    30,     0,     0,     0,
2622      0,     0,     0,     0,     0,     0,    31,     0,     0,    16,
2623      0,    17,    18,     0,    32,     0,     0,    20,     0,    33,
2624      0,     0,    21,     0,     0,     0,    23,     0,     0,     0,
2625      0,     0,     0,     0,     0,    26,     0,    27,    28,     8,
2626      9,     0,   167,    12,    13,     0,     0,     0,     0,    14,
2627      0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
2628      0,    31,     0,    16,     0,    17,    18,     0,     0,    32,
2629      0,    20,     0,     0,    33,     0,     0,     0,     0,     0,
2630    682,     0,     0,   168,     0,     0,     0,     0,     0,    26,
2631      0,   130,   131,   572,   573,   574,   575,   576,   577,   578,
2632    579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
2633    589,   590,   591,   592,   593,   572,   573,   574,   575,   576,
2634    577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
2635    587,   588,   589,   590,   591,   592,   593,     0,     0,     0,
2636      0,  1267,     0,     0,     0,     0,     0,     0,     0,     0,
2637      0,     0,     0,     0,     0,     0,   661,     0,     0,  1604,
2638    572,   573,   574,   575,   576,   577,   578,   579,   580,   581,
2639    582,   583,   584,   585,   586,   587,   588,   589,   590,   591,
2640    592,   593,  1598,   572,   573,   574,   575,   576,   577,   578,
2641    579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
2642    589,   590,   591,   592,   593,   572,   573,   574,   575,   576,
2643    577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
2644    587,   588,   589,   590,   591,   592,   593,   572,   573,   574,
2645    575,   576,   577,   578,   579,   580,   581,   582,   583,     0,
2646    585,   586,   587,   588,   589,   590,   591,   592,   593,   576,
2647    577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
2648    587,   588,   589,   590,   591,   592,   593,   577,   578,   579,
2649    580,   581,   582,   583,   584,   585,   586,   587,   588,   589,
2650    590,   591,   592,   593
2651 };
2652
2653 static const short yycheck[] = {     4,
2654    175,   174,    55,   349,    62,   149,   150,   161,   176,   402,
2655     23,     4,   507,   485,   718,   355,   251,   209,   402,   126,
2656    304,   305,    90,   880,    92,    14,   156,    84,    80,   355,
2657     35,   700,     4,   133,     4,   402,   788,    42,   790,    42,
2658    133,   134,    35,     4,   356,   357,   798,    42,   567,   134,
2659    604,    42,    57,   337,   440,   247,  1236,  1237,   124,   647,
2660    693,  1423,   243,    35,  1338,    35,  1514,    72,    59,   137,
2661     42,   373,    42,  1253,    35,    54,  1513,  1537,    42,    84,
2662     42,    42,   140,    88,   209,    90,    12,    92,   217,   218,
2663     59,    11,   144,   218,    83,    47,   408,   409,   156,  1559,
2664     47,  1348,   107,   108,   296,    11,   468,     0,  1355,    11,
2665   1515,     1,     4,   701,    60,    33,    59,   106,   804,   455,
2666    355,     9,   175,  1560,   810,    54,     0,   493,    60,    37,
2667     74,   136,   137,    59,   139,    74,    62,     1,    30,    31,
2668    109,    93,    62,    35,   510,    74,    93,    94,    27,     4,
2669     42,   203,    31,   625,   212,    58,   108,   349,    80,  1619,
2670    165,   108,   220,   109,   169,   108,   169,    12,    58,    47,
2671    165,   176,    57,    61,   169,   136,   155,   109,   169,   237,
2672     35,    60,   348,   349,   350,    64,     1,    42,   108,    48,
2673   1595,   109,    84,   539,    58,    98,  1644,   169,    62,   169,
2674   1380,   109,   108,    74,   165,   169,   108,   169,   169,  1389,
2675   1390,    59,  1392,    59,    59,    93,    94,    62,   209,    46,
2676     60,   200,   717,  1660,    54,   561,   217,   218,    47,    38,
2677    109,    95,    62,    47,   920,    60,    47,    59,  1600,    25,
2678   1514,    27,    93,    58,   136,    54,   346,    62,   460,    76,
2679     25,   136,    27,   346,     4,     5,   247,   149,   150,   248,
2680    108,    74,   108,   108,     3,     4,     5,   936,     4,   109,
2681    939,  1518,    58,   165,    93,    94,    62,   169,    33,    93,
2682     95,   136,    93,    58,   109,   342,   108,    62,    47,   108,
2683    358,   176,   297,    54,   448,  1563,    47,   108,    48,    35,
2684     93,   193,   194,    93,   644,   296,    56,    57,   393,    95,
2685    165,   980,   981,    74,   169,    93,   683,    56,    57,   385,
2686     95,    31,  1569,    47,   329,   879,   712,   713,   961,    47,
2687     80,    47,   476,   477,    93,    94,   648,   342,    60,    25,
2688    262,    80,    93,    94,  1612,   350,    64,   740,    64,   479,
2689      4,   404,    60,   358,   359,  1041,   740,   108,   349,    47,
2690    489,   490,    47,  1543,  1544,   490,   355,  1053,   497,    93,
2691     94,   673,    58,  1620,   107,    93,    62,    93,   613,     4,
2692    509,    35,    47,   719,   108,     4,   213,    58,    42,    25,
2693    736,    54,   450,    64,   149,   150,   151,   402,   359,   528,
2694    405,  1087,    75,  1089,    77,    93,    94,    55,    93,    95,
2695     35,    74,   470,    47,    47,   406,    35,     8,     9,  1276,
2696     25,   479,    27,    14,     3,     4,     5,     6,    93,    94,
2697     84,   141,   402,   501,     4,     5,   146,   442,   496,   442,
2698    195,     4,   804,   108,  1032,    36,   965,   442,   810,   921,
2699    342,   442,    31,    58,    45,   182,    47,    62,    44,    93,
2700     93,    58,    41,   468,    59,    62,   534,   359,    54,     4,
2701      5,    57,    35,    47,   359,    54,    54,    56,    57,    42,
2702     75,   442,   136,    25,   194,    27,    56,    57,  1157,  1158,
2703     95,    70,    55,    62,    57,    31,   501,    62,   489,   490,
2704   1252,    80,    93,   508,   359,    74,   497,    12,   820,    88,
2705    402,   165,    62,    48,    93,   169,    58,    47,   509,    93,
2706     62,    56,    57,   689,    74,   691,   692,   175,   694,   534,
2707      7,    58,   537,    74,    64,   540,   508,   528,   711,   544,
2708    545,   546,   547,   548,  1039,    80,    47,   508,   605,   259,
2709    442,  1408,   557,    95,    59,    47,    54,    62,   920,    64,
2710     37,    47,   567,    93,    94,   570,   109,   483,    47,   962,
2711    736,    47,    47,   136,   222,   491,   468,   140,   962,    54,
2712     58,     4,     5,    93,   476,   477,   508,   442,   681,   674,
2713    930,   772,    93,   774,    54,   962,   681,   650,   779,    74,
2714    605,    93,   165,    47,   930,    54,   169,    93,   676,     4,
2715      5,    54,   175,   176,    93,   108,   508,    93,    93,   624,
2716      3,     4,     5,   508,     4,     5,   631,     3,     4,     5,
2717     75,    54,    54,    56,    57,   764,   689,   829,   691,   692,
2718      4,     5,   926,   955,    62,     9,   635,    70,    94,    93,
2719      4,     5,    74,   508,  1126,    62,    74,    80,   108,   222,
2720    651,    56,    57,   829,  1000,     4,     5,    74,    48,   682,
2721    882,   676,   499,    56,    57,   782,    56,    57,    54,  1041,
2722     56,    57,    58,   736,   108,   690,    11,    47,   342,   694,
2723     54,  1053,    56,    57,    48,   930,   108,  1192,    47,   109,
2724     14,   692,    56,    57,   717,   359,    70,    47,    22,   419,
2725     98,    47,   422,   605,    60,    54,    80,    56,    57,    47,
2726     93,   476,   477,   478,   434,  1087,    80,  1089,    62,   621,
2727    622,    70,   624,    93,  1229,   740,   902,   805,   806,   631,
2728    808,    80,   795,   909,    93,   736,    62,     3,   402,  1122,
2729   1123,    65,  1125,    93,    60,    94,   404,    93,     3,     4,
2730      5,   471,   928,   111,   474,    93,     3,     4,     5,  1081,
2731   1082,  1083,    33,   764,   108,  1121,    74,    47,   488,     3,
2732      4,     5,     6,   788,    54,   790,    54,    54,   442,    83,
2733     84,   796,   108,   798,    62,    62,   359,    94,   928,   804,
2734    805,   806,    94,   808,    74,   810,    74,    74,     4,     5,
2735    124,    56,    57,    58,   468,   988,   788,    41,   790,    56,
2736     57,    62,   470,    93,   111,    54,   798,   788,    93,   790,
2737     93,   479,    56,    57,   148,   483,    74,   798,   829,    59,
2738     60,   404,    54,   491,   902,    74,    74,    54,   740,    27,
2739     62,   909,    48,    31,   508,  1036,  1037,  1038,   750,   751,
2740     56,    57,    74,    54,     4,     5,   788,    74,   790,     9,
2741    928,    62,    54,   878,   796,    59,   798,    74,   883,   442,
2742     62,    59,    60,    74,    80,     3,     4,     5,   149,   150,
2743    151,    75,    74,    77,  1106,  1107,   788,    74,   790,     3,
2744      4,     5,    59,   788,    11,   790,   798,   470,   109,   914,
2745    795,   796,   804,   798,    54,   920,    56,    57,   810,   924,
2746    483,   973,  1626,   108,   238,   239,    59,    60,   491,    59,
2747     70,     4,     5,   788,   195,   790,    54,   251,    56,    57,
2748     80,   930,    47,   798,    48,   508,     3,     4,     5,    54,
2749      7,   605,    56,    57,    94,   108,   108,   962,    54,   964,
2750    965,    59,    60,   968,   791,   792,    62,    59,    60,    74,
2751    624,     4,     5,    30,   801,  1287,     9,   631,    74,   108,
2752     37,    54,  1148,    56,    57,   817,   818,   819,    93,    59,
2753     60,  1044,   962,    74,  1206,    59,    60,    54,    31,    56,
2754     57,  1347,   650,  1215,  1216,    74,  1011,   321,    54,  1175,
2755     59,    60,  1224,  1065,    74,  1181,    59,    60,  1148,  1024,
2756    108,    54,   109,    56,    57,     3,     4,     5,   920,  1034,
2757    922,   923,   924,   109,  1178,  1179,  1041,    70,   748,   749,
2758    767,   689,    27,   691,   692,   111,   756,    80,  1053,   363,
2759    108,  1181,    59,    60,     9,  1267,   111,    12,   372,    74,
2760     93,    74,  1130,    27,  1208,  1209,    54,    31,    74,  1074,
2761    962,   385,    59,    60,   966,   967,   968,   111,    56,    57,
2762    111,   108,  1087,   108,  1089,   108,   740,   650,   736,    58,
2763   1148,   108,    47,     8,     9,    59,    60,    54,  1434,    14,
2764     64,     8,  1074,   111,    59,    47,    61,    62,    64,    64,
2765      4,     5,  1117,  1074,  1450,    59,    93,  1175,    93,  1011,
2766     75,    36,    77,  1181,    54,  1130,   689,   690,   691,   692,
2767     45,  1183,     4,     5,   788,  1301,   790,   109,    93,    94,
2768     60,    36,    64,  1065,   798,    64,    64,   795,  1153,  1041,
2769    804,    60,  1074,   108,    48,  1367,   810,   108,   108,  1044,
2770   1553,  1053,    56,    57,    62,  1223,   111,   108,   108,  1553,
2771   1345,  1301,  1347,   736,   108,  1180,    48,   740,  1346,  1192,
2772    108,    64,  1074,    64,    56,    57,    80,    64,    75,  1074,
2773     93,   505,    59,  1405,   108,  1087,   108,  1089,  1203,    75,
2774      3,  1537,   108,     6,   108,  1210,   108,    75,    80,    75,
2775   1203,  1557,    75,   968,    62,   476,   477,   478,   108,  1074,
2776      3,     4,     5,  1559,   108,   788,    62,   790,    31,    59,
2777   1057,  1203,   795,   796,   108,   798,  1063,  1064,    41,    62,
2778   1067,  1068,   111,  1301,  1071,    94,   108,  1252,   108,    88,
2779   1586,   108,   111,    56,    57,   569,  1011,   967,    74,  1151,
2780   1152,  1153,    47,    59,    47,   108,   920,    70,   108,   111,
2781    924,    54,   109,    56,    57,   108,   111,    80,    74,    75,
2782   1252,    77,   108,  1619,   108,    88,  1178,  1179,  1180,   109,
2783     93,  1252,  1345,    60,  1347,    59,    64,    59,    64,   613,
2784     59,  1306,    64,    59,  1640,    62,   108,   108,   962,    93,
2785     93,  1203,    74,    75,   968,    93,  1208,  1209,  1210,  1046,
2786   1047,    93,    93,   109,   111,  1247,     8,   109,  1220,  1221,
2787   1252,   108,   108,  1338,   108,   108,   111,  1503,   108,   108,
2788     33,  1346,    64,  1348,   109,   108,  1073,   108,  1203,    54,
2789   1355,  1078,    62,   108,   108,  1348,  1347,  1011,   108,  1364,
2790   1252,   108,  1355,   108,   108,  1557,  1338,  1252,   682,     4,
2791      5,    30,    31,   108,    33,  1529,  1348,   108,   111,   693,
2792     47,   108,   108,  1355,   108,    96,  1552,  1041,  1532,  1533,
2793     62,    62,    12,     9,    60,    60,  1044,  1252,    57,  1053,
2794     59,    80,    81,    82,    83,    84,    65,    27,    60,    44,
2795    724,    31,  1304,  1305,  1306,     3,     4,     5,    16,    54,
2796   1074,    56,    57,  1178,  1179,  1180,    60,    47,   108,    93,
2797    108,   108,   108,  1087,  1607,  1089,    60,    93,  1650,    59,
2798     60,    64,    62,    54,    64,  1503,  1338,   108,     3,     4,
2799      5,   108,    93,  1208,  1209,  1210,  1348,   111,    17,    60,
2800     48,    93,    54,  1355,   108,    60,  1176,  1177,    56,    57,
2801    108,   107,    97,    93,    94,  1185,    11,     3,     4,     5,
2802    108,  1044,   141,  1338,     3,     4,     5,   146,   108,   108,
2803    149,   150,   151,  1348,  1552,    60,    60,  1502,    60,  1153,
2804   1355,    56,    57,  1508,    30,  1558,    93,    59,  1513,  1514,
2805   1515,  1074,   108,  1518,    64,  1242,  1243,   176,  1245,  1246,
2806   1513,  1248,    60,   182,   108,  1518,  1180,  1175,    54,  1534,
2807     56,    57,   108,  1181,   193,   194,   195,    56,    57,    11,
2808     60,  1513,  1514,    11,    60,     0,  1518,     0,  1553,  1203,
2809    209,     3,     4,     5,     6,  1560,  1210,     0,   217,   218,
2810   1387,  1388,   170,     2,  1569,    35,  1557,  1560,  1448,   962,
2811    169,     3,     4,     5,   674,  1223,  1569,   442,     3,     4,
2812      5,  1606,     7,     8,     9,     3,     4,     5,  1560,    41,
2813   1595,   165,  1302,  1303,   796,    94,  1244,  1569,  1252,  1309,
2814    259,   238,    54,  1192,    56,    57,    31,   139,  1500,  1501,
2815   1502,    36,  1175,  1433,  1660,  1620,  1508,  1277,     3,     4,
2816      5,  1513,  1514,  1515,    56,    57,  1518,  1620,   948,   299,
2817    724,    56,    57,  1460,   948,   943,    88,   242,    56,    57,
2818   1532,  1533,     3,     4,     5,     6,  1229,   961,  1620,  1039,
2819   1377,  1378,  1306,  1301,  1074,  1660,  1249,   796,  1513,  1514,
2820    657,  1553,   941,  1518,   200,   346,   605,  1660,  1560,    54,
2821    329,    56,    57,   124,  1348,  1204,  1626,  1569,    33,  1574,
2822     41,  1244,  1640,  1636,  1338,  1364,  1249,  1638,  1660,  1252,
2823   1019,     4,     5,    54,  1348,    56,    57,  1345,    -1,  1347,
2824     -1,  1355,    -1,  1595,    -1,  1560,  1461,   968,    -1,    70,
2825    107,   108,    -1,    -1,  1569,    -1,    -1,    -1,    31,    80,
2826      3,     4,     5,    -1,     7,     8,     9,    88,  1620,    -1,
2827     -1,    -1,    93,    -1,    -1,     4,     5,    -1,    -1,    -1,
2828      9,    54,    -1,    56,    57,    -1,   405,   406,    -1,    -1,
2829   1011,    -1,    -1,  1480,  1481,  1482,    -1,    70,    -1,   762,
2830    419,  1588,    31,   422,    -1,  1620,    -1,    80,  1660,   428,
2831    429,   430,    -1,    56,    57,   434,    -1,  1532,  1533,  1534,
2832     93,    -1,  1345,  1346,  1347,    54,    -1,    56,    57,     3,
2833      4,     5,     6,  1107,    -1,   150,   151,     7,     8,     9,
2834    803,    70,    -1,    -1,    14,  1660,   809,    -1,    -1,    -1,
2835     -1,    80,   471,  1540,  1541,   474,    -1,   476,   477,   478,
2836     -1,    31,    -1,   482,    93,    -1,    36,    41,    -1,   488,
2837    489,   490,    -1,    -1,   493,    45,    -1,    -1,   497,    -1,
2838    195,    -1,    56,    57,    -1,    -1,    -1,    -1,  1502,    -1,
2839     60,   510,    -1,    -1,  1508,  1503,     7,     8,     9,  1513,
2840   1514,  1515,    -1,    14,  1518,    76,    77,    78,    79,    80,
2841     81,    82,    83,    84,    88,    -1,    -1,    -1,   537,    -1,
2842     31,   540,    47,    -1,  1611,    36,  1200,    -1,    -1,    -1,
2843     -1,    -1,  1206,    -1,    45,   461,   555,   556,   557,  1553,
2844     -1,    -1,   468,    -1,  1552,    -1,  1560,    -1,    -1,    60,
2845   1558,   570,   915,    -1,   917,  1569,   402,  1178,  1179,  1180,
2846     -1,    86,    87,    -1,    -1,    -1,    91,    92,    93,    94,
2847     -1,    -1,   329,    -1,     4,     5,    -1,    -1,    -1,     9,
2848     -1,  1595,    -1,     3,     4,     5,     6,  1208,  1209,  1210,
2849     -1,     4,     5,    -1,   306,   307,    88,    -1,    90,    -1,
2850     92,    31,   621,   622,    -1,   624,  1620,    -1,    -1,   535,
2851    322,    -1,   631,   325,   329,    -1,   328,    47,    31,   331,
2852     -1,    41,   468,   335,    54,    -1,    56,    57,    48,    -1,
2853     -1,   343,   651,    -1,    47,  1558,    56,    57,    -1,    -1,
2854     70,    54,    -1,    56,    57,   137,  1660,   139,    -1,    -1,
2855     80,    -1,    -1,     3,     4,     5,     6,    70,  1332,  1333,
2856     90,    -1,    -1,    93,    94,    -1,    -1,    80,    88,   595,
2857     -1,   690,    -1,   692,   693,   601,    -1,    90,    -1,    -1,
2858     93,    94,     3,     4,     5,     6,    -1,    -1,     3,     4,
2859      5,    41,     7,     8,     9,    -1,    -1,    -1,    48,    -1,
2860     80,    -1,    -1,    -1,    -1,    -1,    56,    57,   465,    -1,
2861     -1,    -1,   638,    -1,   429,   430,    31,   736,    -1,    -1,
2862     41,    36,    -1,  1086,   104,  1088,    -1,    48,    -1,   748,
2863    749,   750,   751,   752,    -1,    56,    57,   756,    88,    54,
2864     -1,    56,    57,    58,    -1,   764,    -1,    -1,   767,    -1,
2865     -1,  1425,    -1,   133,    -1,    -1,    -1,    -1,    -1,    80,
2866     -1,    -1,   477,   478,   144,    -1,    -1,    88,     7,     8,
2867      9,    -1,    -1,  1447,  1448,    14,    -1,   796,   624,    -1,
2868    537,  1144,    -1,   540,    -1,   631,    -1,   544,   103,   104,
2869    105,    -1,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
2870    557,    -1,    -1,    -1,   823,    -1,    45,     4,     5,    -1,
2871     -1,    -1,     9,   570,    -1,    -1,    -1,   574,     3,     4,
2872      5,     6,   537,   203,    -1,   540,    -1,    -1,   320,    -1,
2873     -1,    82,    -1,    -1,    31,    -1,     3,     4,     5,     6,
2874   1461,   556,   557,   555,   556,   602,    -1,     3,     4,     5,
2875      6,   608,  1526,    38,    39,   570,    41,    54,   238,    56,
2876     57,    -1,    -1,    -1,    -1,    -1,   358,    -1,    -1,    54,
2877   1233,    56,    57,    70,    41,  1238,    -1,    -1,    -1,    -1,
2878     -1,    48,   262,    80,   903,    41,    -1,   906,    -1,    56,
2879     57,    47,    -1,    -1,   740,    -1,    93,    -1,    54,   918,
2880     56,    57,    -1,   922,   923,   924,    -1,    -1,   159,    -1,
2881     -1,  1532,  1533,  1534,    70,    -1,   631,    -1,    -1,    -1,
2882     -1,    88,    -1,    -1,    80,    -1,    -1,    -1,  1291,     4,
2883      5,    -1,    88,    -1,    90,    -1,    -1,    93,    94,    -1,
2884    191,    -1,   961,    -1,    -1,    -1,    -1,   966,   967,   968,
2885     -1,   877,   878,   204,    -1,    -1,    31,   883,   804,    -1,
2886      7,     8,     9,    -1,   810,    -1,    -1,    14,   460,   461,
2887     -1,   897,    47,   899,   354,   901,   468,    -1,    -1,    54,
2888     -1,    56,    57,    -1,    31,     3,     4,     5,     6,    36,
2889     -1,    -1,  1011,    -1,    -1,    70,    -1,    -1,    45,    -1,
2890     -1,    -1,    -1,    -1,    -1,    80,  1025,  1026,  1027,   501,
2891     -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    93,    94,
2892     -1,    -1,    -1,    41,   950,    -1,    -1,  1046,  1047,    -1,
2893     48,    -1,   412,  1396,  1397,    -1,   751,   752,    56,    57,
2894     -1,    -1,   534,   535,    -1,    -1,    -1,    -1,    -1,    -1,
2895   1413,    -1,    -1,    -1,  1073,    -1,    -1,    -1,    -1,  1078,
2896     -1,    -1,    80,    -1,     3,     4,     5,     6,   994,    -1,
2897     88,    -1,    -1,    -1,   920,   567,    -1,   569,   924,    -1,
2898    572,   573,    -1,   575,   576,   577,   578,   579,   580,   581,
2899    582,   583,   584,   585,   586,   587,   588,   589,   590,   591,
2900    592,   593,    41,   595,    -1,    -1,    -1,    -1,   823,   601,
2901   1473,  1474,    -1,    -1,    -1,    54,   962,    56,    57,    -1,
2902     -1,    60,   968,    62,    -1,   505,  1489,  1490,     4,     5,
2903    887,    70,  1151,  1152,  1153,    -1,    -1,    -1,    -1,   631,
2904     -1,    80,    -1,    -1,    -1,    -1,   638,    -1,    -1,    88,
2905     -1,   531,    -1,    -1,    93,    -1,    -1,  1176,  1177,  1178,
2906   1179,  1180,    -1,   461,    -1,  1011,  1185,   924,   660,   661,
2907    468,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,   891,
2908     56,    57,    -1,    -1,   676,    -1,    -1,    -1,    -1,  1208,
2909   1209,  1210,    -1,    -1,    70,  1041,    -1,    -1,    -1,    -1,
2910     -1,  1220,  1221,  1222,    80,    -1,    -1,  1053,   923,   924,
2911    922,   923,    -1,    -1,    90,    -1,    -1,    93,    94,    -1,
2912     -1,    -1,    -1,  1242,  1243,    -1,  1245,  1246,    -1,  1248,
2913    481,    -1,   724,    -1,    -1,   486,    -1,   535,   618,    -1,
2914     -1,  1087,    -1,  1089,    78,    79,    80,    81,    82,    83,
2915     84,    -1,    -1,   968,   634,    -1,    -1,    -1,    -1,    -1,
2916    511,    -1,    -1,    -1,    -1,    -1,   517,    -1,  1194,    -1,
2917   1196,    -1,  1198,    -1,    -1,    -1,    -1,  1034,   529,   530,
2918     -1,   532,    -1,  1302,  1303,  1304,  1305,  1306,    -1,    -1,
2919   1309,    -1,    -1,    -1,    -1,   787,  1011,   595,     3,     4,
2920      5,     6,    -1,   601,     9,    -1,    -1,  1153,    -1,    -1,
2921     -1,    -1,    -1,   805,   806,     1,   808,     3,     4,     5,
2922      6,    -1,     8,    -1,    -1,    -1,    31,  1346,  1347,    -1,
2923     -1,   823,    -1,   631,  1180,    -1,    41,    -1,    -1,    -1,
2924    638,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,
2925     -1,    56,    57,   845,    -1,    41,    -1,    -1,  1377,  1378,
2926     -1,    -1,    48,    -1,  1210,    70,    -1,    -1,    54,    -1,
2927     56,    57,  1298,   753,    -1,    80,   627,   628,    -1,    -1,
2928     -1,   632,    -1,    88,    -1,   877,   878,    -1,    93,    -1,
2929    882,   883,    -1,    -1,    -1,    -1,  1415,  1416,     4,  1418,
2930     -1,    -1,    88,    -1,    -1,   897,    -1,   899,    14,   901,
2931     -1,    -1,    -1,    -1,    -1,    -1,  1128,    -1,    24,    -1,
2932     -1,    -1,    -1,    -1,    30,    31,    -1,    33,    -1,    35,
2933     -1,    -1,    -1,    -1,    -1,    -1,    42,  1152,  1153,    -1,
2934     -1,    -1,  1461,    -1,    -1,    -1,    -1,    -1,   940,    55,
2935     -1,    57,    -1,  1210,    -1,    -1,    -1,    -1,   950,    65,
2936   1306,  1480,  1481,  1482,  1179,  1180,    72,    -1,    -1,    -1,
2937     -1,    -1,    -1,   965,    -1,    -1,    -1,    83,    84,    -1,
2938     -1,  1500,  1501,  1502,    -1,    -1,   978,    -1,    -1,    -1,
2939     -1,    -1,    -1,    -1,  1209,  1210,  1208,  1209,    -1,    -1,
2940    106,    -1,   994,   754,    -1,    -1,  1263,  1264,  1265,  1266,
2941     -1,    -1,    -1,  1532,  1533,  1534,    -1,    -1,    -1,  1011,
2942     -1,  1540,  1541,    -1,    -1,   823,    -1,    -1,   134,    -1,
2943    136,    -1,    -1,    -1,   140,   141,    -1,    -1,    -1,   145,
2944    146,    -1,    -1,   149,   150,   151,    -1,    -1,    -1,   929,
2945     -1,   931,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   165,
2946    811,    -1,   813,   169,  1056,    -1,    -1,    -1,    -1,   175,
2947    176,    -1,     4,     5,  1331,    -1,     8,     9,    -1,   877,
2948    878,    -1,    14,    -1,    -1,   883,    -1,   193,   194,   195,
2949   1305,  1306,  1611,   973,    -1,    -1,    28,    -1,    30,   897,
2950     -1,   899,    -1,   901,    36,    -1,    -1,    -1,    -1,    -1,
2951     -1,    -1,    -1,    45,  1106,  1107,   222,    -1,  1110,    -1,
2952     -1,    -1,    54,    -1,    56,    57,  1338,    -1,    -1,    -1,
2953     -1,    -1,    -1,   239,   885,   886,    -1,   888,  1130,    -1,
2954     -1,    -1,   248,    -1,     3,     4,     5,     6,    -1,  1406,
2955      9,    -1,   950,   259,    -1,    -1,  1502,    -1,    -1,    -1,
2956     -1,    93,    -1,    -1,   621,   622,    -1,    -1,   919,    -1,
2957     -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2958     -1,    -1,    41,    -1,    -1,  1065,  1443,    -1,    47,    -1,
2959     -1,   297,   298,    -1,    -1,    54,   994,    56,    57,    -1,
2960     -1,    -1,  1194,    -1,  1196,    -1,  1198,  1553,    -1,    -1,
2961     -1,    70,    -1,  1011,  1206,    -1,    -1,    -1,    -1,   970,
2962     -1,    80,    -1,  1215,  1216,     3,     4,     5,     6,    88,
2963     -1,    90,  1224,    -1,    93,    94,   342,    -1,    -1,    -1,
2964    346,    -1,   348,   349,   350,    -1,  1461,    -1,  1240,  1241,
2965     -1,  1508,    -1,   359,    -1,    -1,    -1,  1514,  1515,    -1,
2966     -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    -1,
2967     -1,    -1,    -1,    -1,  1154,  1267,    54,  1534,    56,    57,
2968     -1,    -1,    60,    -1,    -1,    -1,    -1,   393,    -1,  1040,
2969      4,     5,    70,    -1,     8,     9,   402,    -1,   404,   405,
2970     14,  1052,    80,  1183,    -1,    -1,  1298,    -1,    -1,    -1,
2971     88,    -1,    -1,   419,    -1,    93,   422,    -1,  1533,  1534,
2972   1532,  1533,    36,    -1,    -1,    -1,    -1,    -1,   434,    -1,
2973     -1,    45,    -1,    47,    -1,  1327,   442,    -1,  1595,    -1,
2974     54,    -1,    56,    57,    73,    74,    75,    76,    77,    78,
2975     79,    80,    81,    82,    83,    84,    70,  1614,    -1,    -1,
2976     -1,    -1,    -1,    -1,   470,   471,    80,  1247,   474,    -1,
2977    476,   477,   478,   479,    -1,  1367,    90,   483,  1635,    93,
2978     94,    -1,   488,    -1,    -1,   491,    -1,  1644,  1139,    -1,
2979     -1,  1383,    -1,    -1,    -1,    -1,  1194,    -1,  1196,    -1,
2980   1198,    -1,   508,    -1,    -1,    -1,     3,     4,     5,     6,
2981     -1,    -1,     9,  1405,    -1,    -1,    -1,     3,     4,     5,
2982      6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2983     -1,    -1,    -1,  1184,    31,    -1,    -1,    -1,    -1,   545,
2984    546,   547,   548,    -1,    41,    -1,   903,    -1,    -1,   906,
2985     47,    -1,    -1,    -1,    -1,    41,    -1,    54,    -1,    56,
2986     57,   918,    48,    -1,    -1,   922,   923,    -1,    -1,  1461,
2987     56,    57,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
2988      4,     5,    -1,    80,     8,     9,  1478,  1479,    -1,    -1,
2989     14,    88,    -1,    90,    80,    -1,    93,    94,    -1,   605,
2990   1298,   607,    88,  1254,    28,    -1,    30,  1258,    -1,   966,
2991    967,    -1,    36,   619,    -1,   621,   622,    -1,   624,    -1,
2992     -1,    45,    -1,    -1,  1516,   631,    -1,    -1,    -1,   635,
2993     54,    -1,    56,    57,    58,    -1,    -1,  1417,    -1,    -1,
2994     -1,    -1,  1293,    -1,   650,    -1,     4,     5,    -1,    -1,
2995     -1,     9,    -1,    -1,  1546,    -1,  1307,    -1,    -1,    -1,
2996     -1,    -1,    -1,    -1,     3,     4,     5,     6,   674,    93,
2997      9,    -1,    -1,    31,    -1,   681,    -1,    -1,    -1,    -1,
2998     -1,    -1,    -1,   689,   690,   691,   692,   693,   694,    47,
2999     -1,    -1,    31,    -1,    -1,    -1,    54,    -1,    56,    57,
3000     -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    47,    -1,
3001     -1,    -1,    70,    -1,    -1,    54,    -1,    56,    57,    -1,
3002     -1,  1372,    80,    -1,    -1,  1376,    -1,    -1,    -1,    -1,
3003    736,    70,    90,    -1,   740,    93,    94,    -1,    -1,    -1,
3004     -1,    80,   748,   749,   750,   751,   752,  1398,  1399,    88,
3005    756,    90,    -1,    -1,    93,    94,    -1,    -1,  1650,    -1,
3006     -1,    -1,    -1,  1461,    70,    71,    72,    73,    74,    75,
3007     76,    77,    78,    79,    80,    81,    82,    83,    84,   785,
3008     -1,    -1,   788,    -1,   790,    -1,    -1,    -1,    -1,   795,
3009    796,    -1,   798,    -1,  1151,  1152,    -1,    -1,   804,    -1,
3010     -1,    -1,     1,    -1,   810,     4,     5,    -1,    -1,     8,
3011      9,   817,   818,   819,    -1,    14,    -1,    -1,    -1,  1176,
3012   1177,  1178,  1179,   829,    -1,    -1,    -1,    -1,  1185,    28,
3013     -1,    30,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,
3014     39,    -1,    -1,    -1,    -1,    -1,    45,    -1,    47,    -1,
3015     -1,  1208,  1209,    -1,    -1,    54,    -1,    56,    57,    -1,
3016     59,    -1,    -1,    -1,    63,    64,    65,    66,    67,    68,
3017     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3018     79,    80,    81,    82,    83,    -1,    -1,    86,    87,    88,
3019     -1,    -1,    91,    -1,    -1,    94,   902,   903,    -1,    -1,
3020    906,    -1,    -1,   909,    -1,    -1,    -1,    -1,   914,    -1,
3021     -1,   110,   918,    -1,   920,    -1,   922,   923,   924,    -1,
3022     -1,    -1,   928,    -1,   930,    -1,     3,     4,     5,     6,
3023     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3024     81,    82,    83,    84,    -1,  1302,  1303,  1304,  1305,    -1,
3025     -1,    -1,  1309,    -1,    -1,    -1,   962,    -1,   964,    -1,
3026    966,   967,   968,     4,    41,    -1,    -1,    -1,    -1,    -1,
3027     -1,    48,    -1,    14,    -1,    -1,    -1,   193,   194,    56,
3028     57,    -1,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,
3029     31,    -1,    33,    -1,    35,     3,     4,     5,     6,    -1,
3030     -1,    42,    -1,    80,    -1,  1011,    -1,    -1,    -1,    -1,
3031     -1,    88,    -1,    -1,    55,    -1,    57,    -1,  1024,  1025,
3032   1026,  1027,    -1,    31,    65,    -1,    -1,    -1,    -1,    -1,
3033     -1,    72,    -1,    41,    -1,  1041,    -1,    -1,  1044,    47,
3034     -1,    -1,    -1,    84,    -1,    -1,    54,  1053,    56,    57,
3035     -1,    -1,    -1,     3,     4,     5,     6,    -1,  1415,  1416,
3036   1066,  1418,    70,    -1,    -1,    -1,    -1,    -1,  1074,    -1,
3037     -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3038     88,  1087,    90,  1089,    -1,    93,    94,    -1,    -1,    -1,
3039     -1,    41,    -1,    -1,    -1,   136,    -1,    -1,    48,   140,
3040    141,    -1,    -1,    -1,    -1,   146,    56,    57,   149,   150,
3041    151,  1117,    -1,    -1,    -1,    -1,  1122,  1123,    -1,  1125,
3042     -1,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,    -1,
3043     80,    -1,    -1,    -1,   175,   176,    -1,    -1,    88,    -1,
3044     -1,    -1,  1148,  1500,  1501,  1151,  1152,  1153,    -1,    -1,
3045     -1,    -1,   193,   194,   195,     3,     4,     5,     6,     7,
3046      8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,  1175,
3047   1176,  1177,  1178,  1179,  1180,  1181,    -1,    -1,    -1,  1185,
3048     28,   222,    30,    31,    32,    -1,    -1,    -1,    36,    -1,
3049     -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,
3050     48,    -1,  1208,  1209,  1210,    -1,    54,    -1,    56,    57,
3051     -1,    -1,    -1,    -1,  1220,  1221,  1222,  1223,   259,    -1,
3052     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3053     -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,  1244,    -1,
3054     88,    -1,    -1,  1249,    -1,    93,  1252,    -1,    -1,    -1,
3055     98,    -1,    -1,    -1,    -1,   471,   297,   298,   474,    -1,
3056    476,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3057     -1,    -1,   488,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3058     -1,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
3059     -1,    -1,    -1,    14,    -1,  1301,  1302,  1303,  1304,  1305,
3060   1306,   342,    -1,  1309,    -1,   346,    -1,   348,   349,   350,
3061     31,    -1,    -1,    -1,   355,    36,    -1,    -1,   359,    -1,
3062     41,    -1,    -1,    -1,    45,    -1,    47,    -1,    -1,    -1,
3063     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,  1345,
3064   1346,  1347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
3065     -1,    -1,   393,    -1,     3,     4,     5,     6,  1364,    80,
3066      9,   402,    -1,   404,   405,    -1,    -1,    88,    -1,    90,
3067      4,     5,    93,    94,     8,     9,    -1,    -1,   419,    -1,
3068     14,   422,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3069     -1,    -1,    41,   434,    28,    -1,    30,    -1,    47,    -1,
3070     -1,   442,    36,    -1,    -1,    54,    -1,    56,    57,  1415,
3071   1416,    45,  1418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3072     54,    70,    56,    57,    -1,    -1,    -1,    -1,    -1,   470,
3073    471,    80,    -1,   474,    -1,   476,   477,   478,   479,    88,
3074     -1,    90,   483,    -1,    93,    94,    -1,   488,    -1,    -1,
3075    491,    -1,    -1,    -1,    -1,  1461,    -1,    -1,    -1,    -1,
3076      4,     5,    -1,     7,     8,     9,   507,   508,    12,    -1,
3077     14,     3,     4,     5,     6,    -1,    -1,     9,    -1,    -1,
3078     -1,    -1,    -1,    -1,    28,    -1,    30,    31,    -1,    -1,
3079     -1,    -1,    36,    -1,  1500,  1501,  1502,  1503,    -1,    31,
3080     -1,    45,    -1,    -1,   545,   546,   547,   548,    -1,    41,
3081     54,    -1,    56,    57,    -1,    47,    -1,    -1,    -1,    -1,
3082     -1,    -1,    54,    -1,    56,    57,  1532,  1533,  1534,    -1,
3083     -1,    -1,   748,   749,   750,   751,    -1,    -1,    70,    -1,
3084    756,    -1,    -1,    -1,    -1,    -1,  1552,  1553,    80,    -1,
3085     -1,    -1,  1558,    -1,    -1,    -1,    88,    -1,    90,    -1,
3086     -1,    93,    94,    -1,   605,    -1,   607,    72,    73,    74,
3087     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3088    621,   622,    -1,   624,    -1,    -1,    -1,    -1,    -1,    -1,
3089    631,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
3090     -1,    -1,    -1,   644,    14,    -1,    -1,    -1,    -1,   650,
3091     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,
3092     30,    31,    32,    -1,    -1,    -1,    36,    -1,    -1,    -1,
3093     -1,    41,    -1,   674,    -1,    45,    -1,    -1,    48,    -1,
3094     -1,   682,    -1,    -1,    54,    -1,    56,    57,   689,   690,
3095    691,   692,   693,   694,    -1,    -1,    -1,    -1,    -1,    -1,
3096     70,    -1,    -1,     3,     4,     5,     6,    -1,    -1,     9,
3097     80,    -1,    -1,    -1,    -1,    -1,   717,    -1,    88,    -1,
3098     -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    98,    -1,
3099     -1,    31,    -1,    -1,    -1,   736,    -1,    -1,    -1,   740,
3100     -1,    41,    -1,    -1,    -1,    -1,    -1,   748,   749,   750,
3101    751,   752,    -1,    -1,    54,   756,    56,    57,     4,     5,
3102     -1,    -1,    -1,     9,    -1,    -1,    -1,    -1,    -1,    -1,
3103     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3104     80,    -1,    -1,    -1,   785,    31,    -1,   788,    88,   790,
3105    966,   967,    -1,    93,   795,   796,    -1,   798,    -1,    -1,
3106     -1,    47,    -1,   804,    -1,    -1,    -1,    -1,    54,   810,
3107     56,    57,    -1,    -1,    -1,    -1,   817,   818,   819,    -1,
3108     -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,   829,    -1,
3109     -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,
3110     -1,    -1,    -1,    -1,    90,    -1,    -1,    93,    94,  1025,
3111   1026,  1027,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
3112      5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
3113     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3114     -1,    -1,    -1,    28,    -1,    30,    31,    -1,    -1,    -1,
3115     -1,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,
3116     45,   902,   903,    48,    -1,   906,    -1,    -1,   909,    54,
3117     -1,    56,    57,   914,    -1,    60,    -1,   918,    -1,   920,
3118     -1,   922,   923,   924,    -1,    70,    -1,   928,    -1,   930,
3119     -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,
3120     -1,    -1,    -1,    88,     3,     4,     5,     6,    93,     8,
3121      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3122     -1,   962,    -1,   964,    -1,   966,   967,   968,    -1,    28,
3123     29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
3124     39,    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,
3125     49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
3126   1176,  1177,  1178,  1179,    -1,    -1,    -1,    -1,    67,  1185,
3127   1011,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3128     79,    80,    -1,  1024,  1025,  1026,  1027,    86,    87,    88,
3129     -1,    90,  1208,  1209,    93,    94,    -1,    -1,  1039,    -1,
3130   1041,    -1,    -1,  1044,  1220,  1221,    -1,    -1,    -1,    -1,
3131     -1,   110,  1053,     3,     4,     5,     6,    -1,    -1,     9,
3132     -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,    -1,
3133      9,    -1,    -1,  1074,    -1,    -1,    -1,    -1,    -1,    -1,
3134     -1,    31,     4,     5,    -1,    -1,  1087,     9,  1089,    -1,
3135     -1,    41,    31,    -1,    -1,    -1,    -1,    47,    -1,    -1,
3136     -1,    -1,    41,    -1,    54,    -1,    56,    57,    -1,    31,
3137     -1,    -1,    -1,    -1,    -1,    54,  1117,    56,    57,    -1,
3138     70,  1122,  1123,    -1,  1125,    47,  1302,  1303,  1304,  1305,
3139     80,    70,    54,  1309,    56,    57,    -1,    -1,    88,    -1,
3140     90,    80,    -1,    93,    94,    -1,    -1,  1148,    70,    88,
3141   1151,  1152,  1153,    -1,    93,    -1,    -1,    -1,    80,     3,
3142      4,     5,     6,     7,     8,     9,    -1,    -1,    90,    -1,
3143     14,    93,    94,    -1,  1175,  1176,  1177,  1178,  1179,  1180,
3144   1181,    -1,    -1,    -1,  1185,    -1,    -1,    31,    -1,    -1,
3145     -1,  1192,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,
3146     -1,    45,    -1,    47,    -1,    -1,    -1,  1208,  1209,  1210,
3147     54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,  1220,
3148   1221,  1222,  1223,    -1,    -1,    -1,    70,    -1,  1229,    -1,
3149      4,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,  1415,
3150   1416,    -1,  1418,  1244,    88,    -1,    90,    -1,  1249,    93,
3151     94,  1252,    -1,    -1,    -1,    -1,    30,    31,    -1,    33,
3152     -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
3153     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3154     -1,    55,     1,    57,     3,     4,     5,     6,     7,     8,
3155      9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,
3156   1301,  1302,  1303,  1304,  1305,  1306,    80,    -1,  1309,    28,
3157     -1,    30,    31,    32,    -1,    -1,    -1,    36,    37,    -1,
3158     -1,    -1,    41,    -1,  1500,  1501,    45,    46,    -1,    48,
3159     -1,    -1,    -1,  1334,    -1,    54,    -1,    56,    57,    -1,
3160     -1,    60,    -1,    62,  1345,  1346,  1347,    -1,    -1,    -1,
3161     -1,    70,    -1,    -1,    -1,    -1,  1532,  1533,    -1,   133,
3162    134,    80,   136,  1364,    -1,    -1,   140,   141,    -1,    88,
3163    144,    -1,   146,    -1,    93,   149,   150,   151,    -1,    -1,
3164     -1,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3165    109,   165,    -1,    -1,    -1,   169,    -1,    -1,    -1,    -1,
3166     -1,   175,   176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3167     -1,    -1,    -1,    -1,  1415,  1416,    -1,  1418,    -1,   193,
3168    194,   195,    -1,    -1,    -1,    -1,    -1,    -1,     1,   203,
3169      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3170     13,    14,    -1,    -1,    -1,    -1,    -1,    -1,   222,    -1,
3171     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
3172   1461,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3173     43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
3174     53,    54,    -1,    56,    57,   259,    -1,    -1,    61,     3,
3175      4,     5,     6,    -1,    67,     9,    -1,    70,    -1,  1500,
3176   1501,  1502,  1503,    -1,    -1,    78,    79,    80,    -1,    -1,
3177     -1,    -1,    -1,    86,    87,    88,    -1,    31,    -1,    -1,
3178     93,    -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
3179     -1,  1532,  1533,  1534,    -1,   108,    -1,   110,    -1,    -1,
3180     54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
3181     -1,  1552,  1553,    -1,    -1,   329,    70,  1558,    -1,    -1,
3182     -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,
3183     -1,    -1,   346,    -1,    88,    -1,    -1,    -1,    -1,    93,
3184    354,    -1,    -1,    -1,    -1,   359,    -1,    -1,    -1,    -1,
3185      3,     4,     5,     6,     7,     8,     9,    -1,    -1,    12,
3186      4,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3187     -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    31,   393,
3188     -1,    -1,    -1,    36,    -1,    -1,    30,    31,    41,    33,
3189    404,    35,    45,    -1,    47,    -1,    -1,    -1,    42,    -1,
3190     -1,    54,    -1,    56,    57,   419,    -1,    -1,   422,    -1,
3191     -1,    55,    -1,    57,   428,   429,   430,    70,    -1,    -1,
3192    434,    -1,    -1,    -1,    -1,    -1,    -1,    80,   442,    -1,
3193     -1,    -1,    -1,    -1,    -1,    88,    -1,    90,     4,     5,
3194     93,    94,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,
3195     -1,    -1,    -1,    -1,    -1,    -1,   470,   471,    -1,    -1,
3196    474,    -1,   476,   477,   478,   479,    -1,    -1,    -1,   483,
3197     36,    -1,    -1,    -1,   488,    -1,    -1,   491,    -1,    45,
3198     -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
3199     56,    57,   136,    -1,   508,    -1,   140,   141,    -1,    -1,
3200     -1,    -1,   146,    -1,    70,   149,   150,   151,    -1,    -1,
3201     -1,    -1,     4,     5,    80,     7,     8,     9,    -1,    -1,
3202     12,   165,    14,   537,    90,   169,   540,    93,    94,    -1,
3203     -1,   175,   176,    -1,    -1,    -1,    28,    -1,    30,    31,
3204     -1,   555,   556,   557,    36,    -1,    -1,    -1,    -1,   193,
3205    194,   195,    -1,    45,    -1,    -1,   570,    -1,    -1,    -1,
3206     -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
3207     -1,    -1,     1,    -1,     3,     4,     5,     6,   222,     8,
3208      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3209     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3210     29,    30,    -1,    32,   618,    34,    35,    36,    -1,    38,
3211     39,    40,    41,    42,    43,   259,    45,   631,    -1,    -1,
3212     49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
3213     -1,    -1,    61,    -1,    -1,    -1,   650,    -1,    67,    -1,
3214     -1,    70,     4,     5,    -1,    -1,     8,     9,    -1,    78,
3215     79,    80,    14,    -1,    -1,    -1,    -1,    86,    87,    88,
3216    674,    -1,    -1,    -1,    93,    94,    28,   681,    30,    -1,
3217     -1,    -1,    -1,    -1,    36,   689,   690,   691,   692,    -1,
3218    109,   110,    -1,    45,    -1,    47,    -1,    -1,    -1,    -1,
3219     -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
3220     -1,    -1,     3,     4,     5,     6,    -1,    -1,    70,    -1,
3221     -1,   355,    -1,    -1,    -1,   359,    -1,    -1,    80,    -1,
3222     -1,    -1,   736,    -1,    -1,    -1,   740,    -1,    90,    -1,
3223     31,    93,    94,    -1,   748,   749,   750,   751,   752,    -1,
3224     41,    -1,   756,    -1,    -1,    -1,    47,    -1,    -1,    -1,
3225     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,
3226    404,    33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
3227     -1,    -1,    -1,    -1,   788,   419,   790,    -1,   422,    80,
3228     -1,   795,   796,    55,   798,    -1,    -1,    88,    -1,    90,
3229    434,    -1,    93,    94,    -1,    -1,    -1,    -1,   442,    -1,
3230     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   823,
3231     -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,     4,
3232      5,    -1,     7,     8,     9,    -1,   470,   471,    -1,    14,
3233    474,    -1,   476,   477,   478,     3,     4,     5,     6,   483,
3234     -1,     9,    31,    28,   488,    30,    31,   491,    -1,    -1,
3235     -1,    36,    41,    -1,    -1,    -1,    -1,    -1,    47,    -1,
3236     45,    -1,    -1,    31,   508,    54,    -1,    56,    57,    54,
3237     -1,    56,    57,    41,    -1,    -1,    -1,   149,   150,   151,
3238     -1,    70,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
3239     -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
3240     -1,    90,    70,   175,    93,    94,    -1,    -1,   922,   923,
3241    924,    -1,    80,    -1,   928,   929,    -1,    -1,    -1,    -1,
3242     88,   193,   194,   195,    -1,    93,    -1,    -1,     3,     4,
3243      5,     6,    -1,     1,     9,     3,     4,     5,     6,     7,
3244      8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,
3245    222,    -1,   966,   967,   968,    -1,    31,    -1,    -1,   973,
3246     28,    -1,    30,    31,    32,    -1,    41,    -1,    36,    37,
3247     -1,    -1,    -1,    41,    -1,   619,    -1,    45,    46,    54,
3248     48,    56,    57,    -1,    -1,    -1,    54,    -1,    56,    57,
3249     -1,    -1,    60,    -1,    62,    70,    -1,  1011,    -1,    -1,
3250     -1,    -1,    70,    -1,    -1,    80,   650,    -1,    -1,    -1,
3251     -1,    -1,    80,    88,    -1,    -1,    -1,    -1,    93,    -1,
3252     88,    -1,    -1,    -1,    -1,    93,   298,    -1,    -1,    -1,
3253   1044,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
3254     12,   109,    14,    -1,    -1,   689,   690,   691,   692,    -1,
3255     -1,  1065,    -1,    -1,    -1,    -1,    28,    -1,    30,    31,
3256   1074,    -1,    -1,    -1,    36,    -1,    -1,     4,     5,    41,
3257     -1,    -1,     9,    45,    -1,    47,   348,   349,   350,    -1,
3258     -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
3259     -1,    -1,   736,    -1,    31,    -1,   740,    -1,    70,    -1,
3260     -1,    -1,    -1,    -1,   748,   749,    -1,    -1,    80,    -1,
3261     47,    -1,   756,    -1,    -1,    -1,    88,    54,    90,    56,
3262     57,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3263     -1,    -1,   404,    70,  1148,    -1,    -1,  1151,  1152,  1153,
3264   1154,    -1,    -1,    80,   788,    -1,   790,    -1,    -1,    -1,
3265     -1,   795,   796,    90,   798,    -1,    93,    94,    -1,    -1,
3266     -1,  1175,  1176,  1177,  1178,  1179,  1180,  1181,    -1,  1183,
3267     -1,  1185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3268     -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
3269     -1,    -1,     9,    -1,  1208,  1209,  1210,    -1,   470,   471,
3270     -1,    -1,   474,    -1,   476,   477,   478,   479,    -1,    -1,
3271     -1,   483,    -1,    -1,    31,    -1,   488,     4,     5,   491,
3272      7,     8,     9,    -1,    41,    12,    -1,    14,    -1,    -1,
3273   1244,    -1,    -1,    -1,    -1,  1249,    -1,    54,  1252,    56,
3274     57,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,
3275     -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    45,    -1,
3276     47,    -1,    -1,    80,    -1,    -1,    -1,    54,    -1,    56,
3277     57,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
3278     -1,    -1,    -1,    70,    -1,    -1,   930,  1301,  1302,  1303,
3279   1304,  1305,  1306,    80,    -1,  1309,    -1,    -1,    -1,    -1,
3280     -1,    -1,    -1,    90,    -1,    -1,    93,    94,    -1,    -1,
3281     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3282     -1,    -1,   966,   967,   968,    -1,    -1,    -1,    -1,    -1,
3283     -1,  1345,  1346,  1347,    -1,   607,    -1,    -1,     4,     5,
3284     -1,     7,     8,     9,    -1,    -1,    12,    -1,    14,   621,
3285    622,    -1,   624,    -1,     3,     4,     5,     6,    -1,   631,
3286      9,    55,    28,    -1,    30,    31,    -1,  1011,    -1,    -1,
3287     36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   650,    45,
3288     -1,    47,    31,    -1,    -1,    -1,    80,    -1,    54,    83,
3289     56,    57,    41,    -1,    -1,   107,   108,    -1,    -1,    -1,
3290   1044,    -1,    -1,    -1,    70,    54,    -1,    56,    57,    -1,
3291    104,    -1,   106,    -1,    80,    -1,    -1,   689,    -1,   691,
3292    692,    70,   694,    -1,    90,    -1,    -1,    93,    94,    -1,
3293   1074,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
3294     -1,     4,     5,    -1,    93,     8,     9,  1461,    -1,    -1,
3295     -1,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3296     -1,    -1,    -1,    -1,   736,    28,    -1,    30,    -1,    -1,
3297     -1,    -1,    -1,    36,    -1,    -1,   748,   749,   750,   751,
3298    752,   175,    45,    -1,   756,    -1,     3,     4,     5,     6,
3299     -1,    54,     9,    56,    57,    -1,    -1,    -1,    -1,   193,
3300    194,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,
3301     -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,  1532,  1533,
3302   1534,    -1,    -1,   795,    41,    -1,    -1,    -1,   222,    -1,
3303     -1,  1175,  1176,  1177,  1178,  1179,  1180,    54,    -1,    56,
3304     57,  1185,    -1,    -1,  1558,   817,   818,   819,    -1,    -1,
3305     -1,    -1,    -1,    70,   248,    -1,    -1,   829,    -1,    -1,
3306     -1,    -1,    -1,    80,  1208,  1209,  1210,    -1,   262,    -1,
3307     -1,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
3308     -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
3309      6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,
3310   1244,    -1,    -1,    -1,    -1,  1249,    -1,    -1,  1252,    -1,
3311     -1,    -1,    28,    -1,    30,    31,    -1,   329,    -1,    -1,
3312     36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,
3313    902,   903,    -1,    -1,   906,    -1,    -1,   909,    54,    -1,
3314     56,    57,    -1,    -1,    60,    -1,   918,    -1,    -1,    -1,
3315    922,   923,   924,    -1,    70,    -1,   928,    -1,  1302,  1303,
3316    354,   355,    -1,    -1,    80,  1309,    -1,    -1,    -1,    -1,
3317     -1,    -1,    88,     3,     4,     5,     6,    93,     1,    -1,
3318      3,     4,     5,     6,     7,     8,     9,    -1,    -1,    -1,
3319    402,    14,    -1,    -1,   966,   967,   968,    -1,    -1,    -1,
3320     -1,  1345,  1346,  1347,    27,    28,    -1,    30,    31,    32,
3321    404,    41,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,
3322     -1,    44,    45,    46,    54,    48,    56,    57,    -1,    -1,
3323     -1,    54,    62,    56,    57,    -1,    -1,    60,    -1,  1011,
3324     70,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
3325     80,    -1,    -1,  1025,  1026,  1027,   468,    80,    88,    -1,
3326     -1,    -1,    -1,    93,    -1,    88,    -1,    -1,    -1,    -1,
3327     93,    -1,  1044,    -1,    -1,    98,   470,   471,    -1,    -1,
3328    474,    -1,   476,   477,   478,   479,    -1,    -1,    -1,   483,
3329     -1,    -1,    -1,    -1,   488,    -1,    -1,   491,    -1,    -1,
3330     -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
3331      3,     4,     5,     6,     7,     8,     9,  1461,    -1,    -1,
3332     -1,    14,    -1,    -1,    -1,   537,    -1,    -1,   540,    -1,
3333     -1,    -1,   544,   545,   546,   547,   548,    -1,    31,    -1,
3334     -1,    -1,    -1,    36,    41,   557,    -1,    -1,    41,    -1,
3335   1122,  1123,    45,  1125,    47,    -1,    -1,    54,   570,    56,
3336     57,    54,    -1,    56,    57,    62,    -1,    -1,    -1,    -1,
3337     -1,    -1,    -1,    70,    -1,    -1,  1148,    70,    -1,  1151,
3338   1152,  1153,    -1,    80,    -1,    -1,    -1,    80,  1532,  1533,
3339   1534,    88,    -1,    -1,    -1,    88,    93,    -1,    -1,    -1,
3340     93,    -1,    -1,  1175,  1176,  1177,  1178,  1179,  1180,  1181,
3341     -1,    -1,   624,  1185,  1558,    -1,    -1,    -1,    -1,   631,
3342     -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
3343     -1,    -1,     3,     4,     5,     6,  1208,  1209,  1210,    -1,
3344    634,   635,    -1,    -1,    -1,    -1,    -1,    -1,  1220,  1221,
3345   1222,  1223,    -1,    -1,    31,    -1,   650,    -1,    -1,    14,
3346     31,    -1,    -1,    -1,    41,    -1,    -1,    -1,    23,    24,
3347     41,    -1,  1244,    -1,    -1,    30,    31,    54,    33,    56,
3348     57,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,
3349     -1,    -1,    -1,    70,    -1,   689,    -1,   691,   692,    70,
3350     -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    80,
3351     65,    88,    -1,    -1,    -1,    -1,    93,    88,    -1,    -1,
3352     -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,   740,  1301,
3353   1302,  1303,  1304,  1305,  1306,    -1,    -1,  1309,    -1,    -1,
3354     -1,    -1,   736,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3355     -1,    -1,    -1,    -1,   748,   749,   750,   751,   752,   753,
3356     -1,    -1,   756,    -1,    -1,    -1,    -1,    -1,    -1,   124,
3357     -1,   126,    -1,  1345,    -1,  1347,    -1,    -1,   133,   134,
3358     -1,    -1,    -1,    -1,    -1,   140,   141,    -1,   782,   144,
3359    145,   146,   804,   148,   149,   150,   151,    -1,   810,    -1,
3360     -1,   795,    69,    70,    71,    72,    73,    74,    75,    76,
3361     77,    78,    79,    80,    81,    82,    83,    84,   348,   349,
3362    350,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3363     -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
3364      9,    -1,    -1,  1415,  1416,    14,  1418,    -1,    -1,    -1,
3365     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3366     -1,    30,    31,    32,    -1,    -1,   878,    36,    37,    -1,
3367     -1,    -1,    41,    -1,    -1,    -1,    45,    46,    -1,    48,
3368     -1,    -1,    -1,   238,   239,    54,    -1,    56,    57,  1461,
3369     -1,    60,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,
3370     -1,    70,   914,    -1,   259,    -1,    -1,    -1,   920,    -1,
3371     -1,    80,   924,    -1,    -1,    -1,    -1,    -1,    -1,    88,
3372     -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,  1500,  1501,
3373   1502,  1503,    -1,    -1,    -1,   929,   930,   931,    -1,    -1,
3374    109,    -1,    -1,   298,    -1,    -1,    -1,    -1,    -1,    -1,
3375    962,    -1,   964,    -1,    -1,    -1,   968,    -1,    -1,    -1,
3376   1532,  1533,  1534,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3377     -1,    -1,   966,   967,   968,    -1,    -1,    -1,    -1,   973,
3378   1552,    -1,    -1,    -1,    -1,    -1,  1558,    -1,    -1,    -1,
3379     -1,   346,    -1,   348,   349,    -1,    -1,    -1,    -1,  1011,
3380     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3381     -1,    -1,  1024,    -1,    -1,    -1,    -1,  1011,    -1,    -1,
3382     -1,    -1,  1034,    -1,    -1,    -1,    -1,    -1,    -1,  1041,
3383     -1,  1025,  1026,  1027,    -1,    -1,    -1,    -1,   393,    -1,
3384     -1,  1053,     3,     4,     5,     6,     3,     4,     5,     6,
3385   1044,    -1,    -1,    -1,    -1,    -1,    -1,   412,    -1,    -1,
3386     -1,    -1,    -1,    -1,   419,    -1,    -1,   422,    -1,    -1,
3387     31,  1065,    -1,    -1,    31,  1087,    -1,  1089,    -1,   434,
3388     41,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
3389     -1,   621,   622,    54,   624,    56,    57,    54,    -1,    56,
3390     57,   631,    -1,    -1,    -1,  1117,    -1,    -1,    -1,    70,
3391     -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    80,
3392     -1,    -1,    -1,    80,    -1,    -1,    -1,    88,    -1,    -1,
3393     -1,    88,    93,    -1,    -1,    -1,    93,    -1,    -1,    -1,
3394     -1,  1153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3395    505,    -1,   507,    -1,    -1,    -1,    -1,    -1,    -1,   689,
3396   1154,   691,   692,    -1,   694,    -1,    -1,    -1,  1180,     3,
3397      4,     5,     6,     7,     8,     9,   531,    -1,    12,    -1,
3398     14,  1175,  1176,  1177,  1178,  1179,  1180,  1181,    -1,  1183,
3399     -1,  1185,    -1,    -1,    28,    -1,    30,    31,  1210,    -1,
3400     -1,    -1,    36,    -1,    -1,    -1,   736,    41,    -1,    -1,
3401     -1,    45,    -1,    47,  1208,  1209,  1210,    -1,    -1,    -1,
3402     54,    -1,    56,    57,    -1,    -1,  1220,  1221,  1222,  1223,
3403     -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,     3,
3404      4,     5,     6,    -1,    -1,    -1,    80,    -1,    -1,    -1,
3405   1244,    -1,   607,    -1,    88,    -1,    90,    -1,    -1,    93,
3406     94,    -1,    -1,   618,   619,    -1,   621,   622,    -1,    -1,
3407     -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,     3,
3408      4,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3409     54,    -1,    56,    57,  1306,    -1,    -1,    -1,    62,   829,
3410     -1,    -1,    -1,    -1,    -1,    -1,    70,  1301,  1302,  1303,
3411   1304,  1305,  1306,    -1,    -1,  1309,    80,    41,    -1,   674,
3412     -1,    -1,    -1,    -1,    88,    -1,   681,   682,    -1,    93,
3413     54,    -1,    56,    57,    -1,    -1,    60,    -1,   693,    -1,
3414     -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
3415     -1,  1345,  1364,  1347,    -1,    -1,    80,    -1,    -1,    -1,
3416     -1,    -1,   717,    -1,    88,    -1,    -1,    31,    -1,    93,
3417     -1,    -1,   902,   903,    -1,    -1,   906,    -1,    -1,   909,
3418     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
3419     -1,    -1,   922,   923,   924,    -1,    -1,    -1,   928,    63,
3420     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3421     74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3422     84,  1415,  1416,  1417,  1418,    -1,    -1,   782,    -1,    -1,
3423    785,    -1,    -1,    -1,    -1,    -1,   966,   967,   968,    -1,
3424     -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
3425      9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,
3426     -1,    -1,   817,   818,   819,    -1,    -1,  1461,    -1,    28,
3427     -1,    30,    31,    32,   829,    -1,    -1,    36,    37,    -1,
3428     -1,  1011,    41,    -1,    -1,    -1,    45,    46,    -1,    48,
3429   1502,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,
3430     -1,    60,    -1,    62,    -1,    -1,  1500,  1501,  1502,  1503,
3431     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3432     -1,    80,  1534,    -1,    -1,    -1,    -1,    -1,    -1,    88,
3433     -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,  1532,  1533,
3434   1534,  1553,    -1,    -1,     4,     5,    -1,   902,   903,     9,
3435    109,   906,    -1,    -1,   909,    -1,    -1,    -1,  1552,    -1,
3436     -1,    -1,    -1,   918,  1558,    -1,    -1,    -1,    -1,    -1,
3437     -1,    31,    -1,   928,    -1,     3,     4,     5,     6,     7,
3438      8,     9,    -1,    -1,    12,    -1,    14,    47,    -1,    -1,
3439     -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
3440     28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
3441     70,    -1,    -1,    41,    -1,    -1,    -1,    45,  1148,    -1,
3442     80,  1151,  1152,  1153,    -1,    -1,    54,    -1,    56,    57,
3443     90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
3444     -1,    -1,    70,    -1,    -1,  1175,  1176,  1177,  1178,  1179,
3445   1180,  1181,    80,    -1,     1,  1185,     3,     4,     5,     6,
3446     88,     8,     9,    10,    11,    93,    13,    14,    -1,    -1,
3447     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1208,  1209,
3448   1210,    28,    29,    30,  1039,    32,    -1,    34,    35,    36,
3449     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3450     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3451     57,  1066,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
3452     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3453     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3454     87,    88,    -1,    -1,    -1,    -1,    93,    -1,    12,    -1,
3455     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3456     -1,    -1,    -1,   110,    -1,    -1,    -1,  1122,  1123,    -1,
3457   1125,  1301,  1302,  1303,  1304,  1305,  1306,    -1,    -1,  1309,
3458     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3459     -1,    -1,    -1,  1148,    -1,    -1,  1151,  1152,    62,    63,
3460     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3461     74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3462     84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3463     -1,    -1,    -1,    -1,    -1,    -1,    -1,  1192,    -1,    -1,
3464     -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
3465      8,     9,    -1,    -1,    12,    -1,    14,    -1,    -1,    -1,
3466     -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    -1,    27,
3467     -1,    -1,    -1,    31,  1229,    -1,    -1,    -1,    36,    -1,
3468     -1,    -1,    -1,    41,    -1,  1415,  1416,    45,  1418,    47,
3469     -1,    -1,  1247,    -1,  1249,    -1,    54,    -1,    56,    57,
3470     58,    59,    60,    -1,    62,    63,    64,    65,    66,    67,
3471     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3472     78,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
3473     88,    -1,    90,    91,    92,    93,    94,    95,    -1,    97,
3474     -1,    -1,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
3475    108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
3476     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3477   1500,  1501,  1502,  1503,    -1,     1,    -1,     3,     4,     5,
3478      6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
3479     -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3480     26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
3481     36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
3482     46,    -1,  1552,    49,    50,    51,    52,    53,    54,    -1,
3483     56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
3484     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3485     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3486     86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    95,
3487     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3488     -1,    -1,    -1,   109,   110,     1,    -1,     3,     4,     5,
3489      6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
3490     -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3491     26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
3492     36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
3493     46,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3494     56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
3495     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3496     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3497     86,    87,    88,    -1,    -1,    -1,    -1,    93,     1,    95,
3498      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3499     13,    14,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
3500     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
3501     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3502     43,    -1,    45,    -1,    47,    -1,    49,    50,    51,    52,
3503     53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
3504     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3505     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3506     -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,    -1,
3507     93,    94,     1,    -1,     3,     4,     5,     6,     7,     8,
3508      9,    10,    11,    12,    13,    14,    -1,   110,    -1,    -1,
3509     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3510     29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
3511     39,    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,
3512     49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
3513     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3514     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3515     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3516     -1,    90,    -1,    -1,    93,    94,     1,    -1,     3,     4,
3517      5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
3518     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3519     -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,
3520     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3521     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3522     -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,
3523     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3524     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3525     -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
3526      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3527     14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
3528     -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,
3529     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3530     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3531     54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,
3532     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3533     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3534     -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,
3535      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3536     13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3537     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
3538     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3539     43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
3540     53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
3541     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3542     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3543     -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,
3544     93,    94,     1,    -1,     3,     4,     5,     6,    -1,     8,
3545      9,    10,    11,    -1,    13,    14,    -1,   110,    -1,    -1,
3546     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3547     29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
3548     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
3549     49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
3550     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3551     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3552     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3553     -1,    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,
3554      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3555    109,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3556     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3557     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3558     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3559     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3560     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3561     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3562     88,    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,
3563     -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3564     -1,   109,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3565     -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
3566     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3567     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3568     57,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3569     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3570     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3571     87,    88,    -1,    -1,    -1,    -1,    93,    -1,     1,    -1,
3572      3,     4,     5,     6,   101,     8,     9,    10,    11,    -1,
3573     13,    14,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3574     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
3575     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3576     43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
3577     53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
3578     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3579     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3580     -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,
3581     93,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
3582     -1,    13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,
3583     -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,
3584     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3585     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3586     52,    53,    54,    -1,    56,    57,    58,    -1,    -1,    61,
3587     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3588     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3589     -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
3590      1,    93,     3,     4,     5,     6,    -1,     8,     9,    10,
3591     11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,    -1,
3592     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
3593     -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3594     41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
3595     51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    60,
3596     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3597     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3598     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
3599     -1,     1,    93,     3,     4,     5,     6,    -1,     8,     9,
3600     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,
3601     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
3602     30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
3603     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3604     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3605     -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3606     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3607     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
3608     -1,    -1,     1,    93,     3,     4,     5,     6,    -1,     8,
3609      9,    10,    11,    -1,    13,    14,    -1,    -1,   108,    -1,
3610    110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3611     29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
3612     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
3613     49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
3614     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3615     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3616     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3617     -1,    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,
3618      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3619     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3620     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3621     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3622     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3623     -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3624     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3625     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3626     88,    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,
3627     -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3628     -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3629     -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
3630     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3631     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3632     57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3633     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3634     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3635     87,    88,     3,     4,     5,     6,    93,     8,     9,    10,
3636     11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
3637     -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,
3638     -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3639     41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
3640     51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
3641     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3642     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3643     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
3644     -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3645     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
3646    111,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3647     -1,    13,    14,    15,    -1,    17,    18,    19,    20,    21,
3648     22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3649     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3650     42,    43,    44,    45,    46,    -1,    -1,    49,    50,    51,
3651     52,    53,    54,    -1,    56,    57,    58,    -1,    60,    61,
3652     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3653     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3654     -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
3655     -1,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
3656     -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,   110,     3,
3657      4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
3658     14,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
3659     24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
3660     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3661     44,    45,    46,    -1,    -1,    49,    50,    51,    52,    53,
3662     54,    -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,
3663     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3664     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3665     -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
3666     -1,    95,    -1,     3,     4,     5,     6,     7,     8,     9,
3667     10,    11,    -1,    13,    14,    15,   110,    17,    18,    19,
3668     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3669     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3670     40,    41,    42,    43,    44,    45,    46,    -1,    -1,    49,
3671     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3672     60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3673     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3674     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
3675     -1,    -1,    -1,    93,    -1,    95,    -1,     3,     4,     5,
3676      6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
3677    110,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3678     26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
3679     36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
3680     46,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3681     56,    57,    -1,    -1,    60,    61,    -1,    -1,    -1,    -1,
3682     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3683     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3684     86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    95,
3685      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3686     13,    14,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
3687     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
3688     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3689     43,    -1,    45,    -1,    47,    -1,    49,    50,    51,    52,
3690     53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,
3691     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3692     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3693     -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,    -1,
3694     93,    94,     3,     4,     5,     6,     7,     8,     9,    10,
3695     11,    12,    13,    14,    -1,    -1,    -1,   110,    -1,    -1,
3696     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
3697     31,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3698     41,    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,
3699     51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
3700     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3701     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3702     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    90,
3703     -1,    -1,    93,    94,     3,     4,     5,     6,    -1,     8,
3704      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,   110,
3705     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3706     29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
3707     39,    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,
3708     49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
3709     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3710     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3711     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3712     -1,    90,    -1,    -1,    93,    94,     3,     4,     5,     6,
3713     -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3714     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3715     -1,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
3716     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3717     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3718     57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3719     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3720     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3721     87,    88,     3,     4,     5,     6,    93,     8,     9,    10,
3722     11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
3723     -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,
3724     -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3725     41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
3726     51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    60,
3727     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3728     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3729     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
3730     -1,    -1,    93,     3,     4,     5,     6,     7,     8,     9,
3731     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,
3732     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
3733     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3734     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3735     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3736     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3737     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3738     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3739      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3740     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3741    110,    -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,
3742     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3743     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3744     54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
3745     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3746     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3747     -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
3748      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3749     -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3750     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3751     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3752     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3753     -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3754     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3755     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3756     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3757     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3758     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3759     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3760     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3761     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
3762     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3763     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3764     -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
3765      6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
3766     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
3767     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3768     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3769     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3770     56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3771     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3772     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3773     86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
3774     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3775     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
3776     30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
3777     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3778     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3779     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3780     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3781     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3782      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3783     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3784    110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3785     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3786     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3787     54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
3788     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3789     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3790     -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
3791     94,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
3792     -1,    13,    14,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3793     -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
3794     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3795     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3796     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
3797     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3798     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3799     -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
3800      6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
3801     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
3802     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3803     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3804     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3805     56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3806     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3807     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3808     86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
3809     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3810     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
3811     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3812     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3813     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3814     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3815     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3816     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3817      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3818     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3819    110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3820     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3821     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3822     54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
3823     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3824     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3825     -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
3826      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3827     -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3828     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3829     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3830     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3831     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
3832     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3833     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3834     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3835     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3836     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3837     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3838     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3839     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
3840     -1,    -1,    -1,    -1,    -1,    67,    -1,     1,    70,     3,
3841      4,     5,     6,     7,     8,     9,    78,    79,    80,    -1,
3842     14,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
3843     -1,    93,    -1,    -1,    28,    -1,    30,    31,    32,    -1,
3844     -1,    -1,    36,    -1,    -1,    -1,    -1,    41,   110,    -1,
3845     -1,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
3846     54,    -1,    56,    57,    -1,    -1,    60,    -1,    62,    -1,
3847     -1,    -1,    -1,    -1,    -1,    -1,    70,     3,     4,     5,
3848      6,     7,     8,     9,    -1,    -1,    80,    -1,    14,    -1,
3849     -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    93,
3850     -1,    -1,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,
3851     36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,
3852     -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
3853     56,    57,     3,     4,     5,     6,     7,     8,     9,    -1,
3854     -1,    -1,    -1,    14,    70,    -1,    -1,    -1,    -1,    -1,
3855     -1,    -1,    -1,    -1,    80,    -1,    -1,    28,    -1,    30,
3856     31,    -1,    88,    -1,    90,    36,    -1,    93,    94,    -1,
3857     41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,
3858     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,
3859     -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
3860      3,     4,     5,     6,     7,     8,     9,    -1,    -1,    80,
3861     -1,    14,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,
3862     -1,    -1,    93,    -1,    -1,    28,    -1,    30,    31,    -1,
3863     -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,
3864     -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3865     -1,    54,    -1,    56,    57,    -1,    -1,    60,    -1,     3,
3866      4,     5,     6,     7,     8,     9,    -1,    70,    -1,    -1,
3867     14,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,
3868     -1,    -1,    -1,    -1,    28,    88,    30,    31,    -1,    -1,
3869     93,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,
3870     -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3871     54,    -1,    56,    57,     3,     4,     5,     6,     7,     8,
3872      9,    -1,    -1,    -1,    -1,    14,    70,    -1,    -1,    -1,
3873     -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    28,
3874     -1,    30,    31,    -1,    88,    -1,    -1,    36,    -1,    93,
3875     -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,
3876     -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,     4,
3877      5,    -1,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
3878     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3879     -1,    80,    -1,    28,    -1,    30,    31,    -1,    -1,    88,
3880     -1,    36,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
3881     45,    -1,    -1,    48,    -1,    -1,    -1,    -1,    -1,    54,
3882     -1,    56,    57,    63,    64,    65,    66,    67,    68,    69,
3883     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3884     80,    81,    82,    83,    84,    63,    64,    65,    66,    67,
3885     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3886     78,    79,    80,    81,    82,    83,    84,    -1,    -1,    -1,
3887     -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3888     -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,   107,
3889     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3890     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3891     83,    84,    62,    63,    64,    65,    66,    67,    68,    69,
3892     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3893     80,    81,    82,    83,    84,    63,    64,    65,    66,    67,
3894     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3895     78,    79,    80,    81,    82,    83,    84,    63,    64,    65,
3896     66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
3897     76,    77,    78,    79,    80,    81,    82,    83,    84,    67,
3898     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3899     78,    79,    80,    81,    82,    83,    84,    68,    69,    70,
3900     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3901     81,    82,    83,    84
3902 };
3903 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
3904 #line 3 "/usr/lib/bison.simple"
3905
3906 /* Skeleton output parser for bison,
3907    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3908
3909    This program is free software; you can redistribute it and/or modify
3910    it under the terms of the GNU General Public License as published by
3911    the Free Software Foundation; either version 2, or (at your option)
3912    any later version.
3913
3914    This program is distributed in the hope that it will be useful,
3915    but WITHOUT ANY WARRANTY; without even the implied warranty of
3916    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3917    GNU General Public License for more details.
3918
3919    You should have received a copy of the GNU General Public License
3920    along with this program; if not, write to the Free Software
3921    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
3922
3923 /* As a special exception, when this file is copied by Bison into a
3924    Bison output file, you may use that output file without restriction.
3925    This special exception was added by the Free Software Foundation
3926    in version 1.24 of Bison.  */
3927
3928 #ifndef alloca
3929 #ifdef __GNUC__
3930 #define alloca __builtin_alloca
3931 #else /* not GNU C.  */
3932 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3933 #include <alloca.h>
3934 #else /* not sparc */
3935 #if defined (MSDOS) && !defined (__TURBOC__)
3936 #include <malloc.h>
3937 #else /* not MSDOS, or __TURBOC__ */
3938 #if defined(_AIX)
3939 #include <malloc.h>
3940  #pragma alloca
3941 #else /* not MSDOS, __TURBOC__, or _AIX */
3942 #ifdef __hpux
3943 #ifdef __cplusplus
3944 extern "C" {
3945 void *alloca (unsigned int);
3946 };
3947 #else /* not __cplusplus */
3948 void *alloca ();
3949 #endif /* not __cplusplus */
3950 #endif /* __hpux */
3951 #endif /* not _AIX */
3952 #endif /* not MSDOS, or __TURBOC__ */
3953 #endif /* not sparc.  */
3954 #endif /* not GNU C.  */
3955 #endif /* alloca not defined.  */
3956
3957 /* This is the parser code that is written into each bison parser
3958   when the %semantic_parser declaration is not specified in the grammar.
3959   It was written by Richard Stallman by simplifying the hairy parser
3960   used when %semantic_parser is specified.  */
3961
3962 /* Note: there must be only one dollar sign in this file.
3963    It is replaced by the list of actions, each action
3964    as one case of the switch.  */
3965
3966 #define yyerrok         (yyerrstatus = 0)
3967 #define yyclearin       (yychar = YYEMPTY)
3968 #define YYEMPTY         -2
3969 #define YYEOF           0
3970 #define YYACCEPT        return(0)
3971 #define YYABORT         return(1)
3972 #define YYERROR         goto yyerrlab1
3973 /* Like YYERROR except do call yyerror.
3974    This remains here temporarily to ease the
3975    transition to the new meaning of YYERROR, for GCC.
3976    Once GCC version 2 has supplanted version 1, this can go.  */
3977 #define YYFAIL          goto yyerrlab
3978 #define YYRECOVERING()  (!!yyerrstatus)
3979 #define YYBACKUP(token, value) \
3980 do                                                              \
3981   if (yychar == YYEMPTY && yylen == 1)                          \
3982     { yychar = (token), yylval = (value);                       \
3983       yychar1 = YYTRANSLATE (yychar);                           \
3984       YYPOPSTACK;                                               \
3985       goto yybackup;                                            \
3986     }                                                           \
3987   else                                                          \
3988     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
3989 while (0)
3990
3991 #define YYTERROR        1
3992 #define YYERRCODE       256
3993
3994 #ifndef YYPURE
3995 #define YYLEX           yylex()
3996 #endif
3997
3998 #ifdef YYPURE
3999 #ifdef YYLSP_NEEDED
4000 #ifdef YYLEX_PARAM
4001 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
4002 #else
4003 #define YYLEX           yylex(&yylval, &yylloc)
4004 #endif
4005 #else /* not YYLSP_NEEDED */
4006 #ifdef YYLEX_PARAM
4007 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
4008 #else
4009 #define YYLEX           yylex(&yylval)
4010 #endif
4011 #endif /* not YYLSP_NEEDED */
4012 #endif
4013
4014 /* If nonreentrant, generate the variables here */
4015
4016 #ifndef YYPURE
4017
4018 int     yychar;                 /*  the lookahead symbol                */
4019 YYSTYPE yylval;                 /*  the semantic value of the           */
4020                                 /*  lookahead symbol                    */
4021
4022 #ifdef YYLSP_NEEDED
4023 YYLTYPE yylloc;                 /*  location data for the lookahead     */
4024                                 /*  symbol                              */
4025 #endif
4026
4027 int yynerrs;                    /*  number of parse errors so far       */
4028 #endif  /* not YYPURE */
4029
4030 #if YYDEBUG != 0
4031 int yydebug;                    /*  nonzero means print parse trace     */
4032 /* Since this is uninitialized, it does not stop multiple parsers
4033    from coexisting.  */
4034 #endif
4035
4036 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
4037
4038 #ifndef YYINITDEPTH
4039 #define YYINITDEPTH 200
4040 #endif
4041
4042 /*  YYMAXDEPTH is the maximum size the stacks can grow to
4043     (effective only if the built-in stack extension method is used).  */
4044
4045 #if YYMAXDEPTH == 0
4046 #undef YYMAXDEPTH
4047 #endif
4048
4049 #ifndef YYMAXDEPTH
4050 #define YYMAXDEPTH 10000
4051 #endif
4052
4053 /* Prevent warning if -Wstrict-prototypes.  */
4054 #ifdef __GNUC__
4055 int yyparse (void);
4056 #endif
4057 \f
4058 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
4059 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
4060 #else                           /* not GNU C or C++ */
4061 #ifndef __cplusplus
4062
4063 /* This is the most reliable way to avoid incompatibilities
4064    in available built-in functions on various systems.  */
4065 static void
4066 __yy_memcpy (to, from, count)
4067      char *to;
4068      char *from;
4069      int count;
4070 {
4071   register char *f = from;
4072   register char *t = to;
4073   register int i = count;
4074
4075   while (i-- > 0)
4076     *t++ = *f++;
4077 }
4078
4079 #else /* __cplusplus */
4080
4081 /* This is the most reliable way to avoid incompatibilities
4082    in available built-in functions on various systems.  */
4083 static void
4084 __yy_memcpy (char *to, char *from, int count)
4085 {
4086   register char *f = from;
4087   register char *t = to;
4088   register int i = count;
4089
4090   while (i-- > 0)
4091     *t++ = *f++;
4092 }
4093
4094 #endif
4095 #endif
4096 \f
4097 #line 196 "/usr/lib/bison.simple"
4098
4099 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
4100    into yyparse.  The argument should have type void *.
4101    It should actually point to an object.
4102    Grammar actions can access the variable by casting it
4103    to the proper pointer type.  */
4104
4105 #ifdef YYPARSE_PARAM
4106 #ifdef __cplusplus
4107 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
4108 #define YYPARSE_PARAM_DECL
4109 #else /* not __cplusplus */
4110 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
4111 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
4112 #endif /* not __cplusplus */
4113 #else /* not YYPARSE_PARAM */
4114 #define YYPARSE_PARAM_ARG
4115 #define YYPARSE_PARAM_DECL
4116 #endif /* not YYPARSE_PARAM */
4117
4118 int
4119 yyparse(YYPARSE_PARAM_ARG)
4120      YYPARSE_PARAM_DECL
4121 {
4122   register int yystate;
4123   register int yyn;
4124   register short *yyssp;
4125   register YYSTYPE *yyvsp;
4126   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
4127   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
4128
4129   short yyssa[YYINITDEPTH];     /*  the state stack                     */
4130   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
4131
4132   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
4133   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
4134
4135 #ifdef YYLSP_NEEDED
4136   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
4137   YYLTYPE *yyls = yylsa;
4138   YYLTYPE *yylsp;
4139
4140 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
4141 #else
4142 #define YYPOPSTACK   (yyvsp--, yyssp--)
4143 #endif
4144
4145   int yystacksize = YYINITDEPTH;
4146
4147 #ifdef YYPURE
4148   int yychar;
4149   YYSTYPE yylval;
4150   int yynerrs;
4151 #ifdef YYLSP_NEEDED
4152   YYLTYPE yylloc;
4153 #endif
4154 #endif
4155
4156   YYSTYPE yyval;                /*  the variable used to return         */
4157                                 /*  semantic values from the action     */
4158                                 /*  routines                            */
4159
4160   int yylen;
4161
4162 #if YYDEBUG != 0
4163   if (yydebug)
4164     fprintf(stderr, "Starting parse\n");
4165 #endif
4166
4167   yystate = 0;
4168   yyerrstatus = 0;
4169   yynerrs = 0;
4170   yychar = YYEMPTY;             /* Cause a token to be read.  */
4171
4172   /* Initialize stack pointers.
4173      Waste one element of value and location stack
4174      so that they stay on the same level as the state stack.
4175      The wasted elements are never initialized.  */
4176
4177   yyssp = yyss - 1;
4178   yyvsp = yyvs;
4179 #ifdef YYLSP_NEEDED
4180   yylsp = yyls;
4181 #endif
4182
4183 /* Push a new state, which is found in  yystate  .  */
4184 /* In all cases, when you get here, the value and location stacks
4185    have just been pushed. so pushing a state here evens the stacks.  */
4186 yynewstate:
4187
4188   *++yyssp = yystate;
4189
4190   if (yyssp >= yyss + yystacksize - 1)
4191     {
4192       /* Give user a chance to reallocate the stack */
4193       /* Use copies of these so that the &'s don't force the real ones into memory. */
4194       YYSTYPE *yyvs1 = yyvs;
4195       short *yyss1 = yyss;
4196 #ifdef YYLSP_NEEDED
4197       YYLTYPE *yyls1 = yyls;
4198 #endif
4199
4200       /* Get the current used size of the three stacks, in elements.  */
4201       int size = yyssp - yyss + 1;
4202
4203 #ifdef yyoverflow
4204       /* Each stack pointer address is followed by the size of
4205          the data in use in that stack, in bytes.  */
4206 #ifdef YYLSP_NEEDED
4207       /* This used to be a conditional around just the two extra args,
4208          but that might be undefined if yyoverflow is a macro.  */
4209       yyoverflow("parser stack overflow",
4210                  &yyss1, size * sizeof (*yyssp),
4211                  &yyvs1, size * sizeof (*yyvsp),
4212                  &yyls1, size * sizeof (*yylsp),
4213                  &yystacksize);
4214 #else
4215       yyoverflow("parser stack overflow",
4216                  &yyss1, size * sizeof (*yyssp),
4217                  &yyvs1, size * sizeof (*yyvsp),
4218                  &yystacksize);
4219 #endif
4220
4221       yyss = yyss1; yyvs = yyvs1;
4222 #ifdef YYLSP_NEEDED
4223       yyls = yyls1;
4224 #endif
4225 #else /* no yyoverflow */
4226       /* Extend the stack our own way.  */
4227       if (yystacksize >= YYMAXDEPTH)
4228         {
4229           yyerror("parser stack overflow");
4230           return 2;
4231         }
4232       yystacksize *= 2;
4233       if (yystacksize > YYMAXDEPTH)
4234         yystacksize = YYMAXDEPTH;
4235       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
4236       __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
4237       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
4238       __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
4239 #ifdef YYLSP_NEEDED
4240       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
4241       __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
4242 #endif
4243 #endif /* no yyoverflow */
4244
4245       yyssp = yyss + size - 1;
4246       yyvsp = yyvs + size - 1;
4247 #ifdef YYLSP_NEEDED
4248       yylsp = yyls + size - 1;
4249 #endif
4250
4251 #if YYDEBUG != 0
4252       if (yydebug)
4253         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
4254 #endif
4255
4256       if (yyssp >= yyss + yystacksize - 1)
4257         YYABORT;
4258     }
4259
4260 #if YYDEBUG != 0
4261   if (yydebug)
4262     fprintf(stderr, "Entering state %d\n", yystate);
4263 #endif
4264
4265   goto yybackup;
4266  yybackup:
4267
4268 /* Do appropriate processing given the current state.  */
4269 /* Read a lookahead token if we need one and don't already have one.  */
4270 /* yyresume: */
4271
4272   /* First try to decide what to do without reference to lookahead token.  */
4273
4274   yyn = yypact[yystate];
4275   if (yyn == YYFLAG)
4276     goto yydefault;
4277
4278   /* Not known => get a lookahead token if don't already have one.  */
4279
4280   /* yychar is either YYEMPTY or YYEOF
4281      or a valid token in external form.  */
4282
4283   if (yychar == YYEMPTY)
4284     {
4285 #if YYDEBUG != 0
4286       if (yydebug)
4287         fprintf(stderr, "Reading a token: ");
4288 #endif
4289       yychar = YYLEX;
4290     }
4291
4292   /* Convert token to internal form (in yychar1) for indexing tables with */
4293
4294   if (yychar <= 0)              /* This means end of input. */
4295     {
4296       yychar1 = 0;
4297       yychar = YYEOF;           /* Don't call YYLEX any more */
4298
4299 #if YYDEBUG != 0
4300       if (yydebug)
4301         fprintf(stderr, "Now at end of input.\n");
4302 #endif
4303     }
4304   else
4305     {
4306       yychar1 = YYTRANSLATE(yychar);
4307
4308 #if YYDEBUG != 0
4309       if (yydebug)
4310         {
4311           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
4312           /* Give the individual parser a way to print the precise meaning
4313              of a token, for further debugging info.  */
4314 #ifdef YYPRINT
4315           YYPRINT (stderr, yychar, yylval);
4316 #endif
4317           fprintf (stderr, ")\n");
4318         }
4319 #endif
4320     }
4321
4322   yyn += yychar1;
4323   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
4324     goto yydefault;
4325
4326   yyn = yytable[yyn];
4327
4328   /* yyn is what to do for this token type in this state.
4329      Negative => reduce, -yyn is rule number.
4330      Positive => shift, yyn is new state.
4331        New state is final state => don't bother to shift,
4332        just return success.
4333      0, or most negative number => error.  */
4334
4335   if (yyn < 0)
4336     {
4337       if (yyn == YYFLAG)
4338         goto yyerrlab;
4339       yyn = -yyn;
4340       goto yyreduce;
4341     }
4342   else if (yyn == 0)
4343     goto yyerrlab;
4344
4345   if (yyn == YYFINAL)
4346     YYACCEPT;
4347
4348   /* Shift the lookahead token.  */
4349
4350 #if YYDEBUG != 0
4351   if (yydebug)
4352     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
4353 #endif
4354
4355   /* Discard the token being shifted unless it is eof.  */
4356   if (yychar != YYEOF)
4357     yychar = YYEMPTY;
4358
4359   *++yyvsp = yylval;
4360 #ifdef YYLSP_NEEDED
4361   *++yylsp = yylloc;
4362 #endif
4363
4364   /* count tokens shifted since error; after three, turn off error status.  */
4365   if (yyerrstatus) yyerrstatus--;
4366
4367   yystate = yyn;
4368   goto yynewstate;
4369
4370 /* Do the default action for the current state.  */
4371 yydefault:
4372
4373   yyn = yydefact[yystate];
4374   if (yyn == 0)
4375     goto yyerrlab;
4376
4377 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
4378 yyreduce:
4379   yylen = yyr2[yyn];
4380   if (yylen > 0)
4381     yyval = yyvsp[1-yylen]; /* implement default value of the action */
4382
4383 #if YYDEBUG != 0
4384   if (yydebug)
4385     {
4386       int i;
4387
4388       fprintf (stderr, "Reducing via rule %d (line %d), ",
4389                yyn, yyrline[yyn]);
4390
4391       /* Print the symbols being reduced, and their result.  */
4392       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
4393         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
4394       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
4395     }
4396 #endif
4397
4398
4399   switch (yyn) {
4400
4401 case 2:
4402 #line 343 "parse.y"
4403 { finish_translation_unit (); ;
4404     break;}
4405 case 3:
4406 #line 351 "parse.y"
4407 { yyval.ttype = NULL_TREE; ;
4408     break;}
4409 case 4:
4410 #line 353 "parse.y"
4411 { yyval.ttype = NULL_TREE; ;
4412     break;}
4413 case 5:
4414 #line 355 "parse.y"
4415 { yyval.ttype = NULL_TREE; ;
4416     break;}
4417 case 8:
4418 #line 364 "parse.y"
4419 { have_extern_spec = 1;
4420                   used_extern_spec = 0;
4421                   yyval.ttype = NULL_TREE; ;
4422     break;}
4423 case 9:
4424 #line 369 "parse.y"
4425 { have_extern_spec = 0; ;
4426     break;}
4427 case 10:
4428 #line 374 "parse.y"
4429 { yyval.itype = pedantic;
4430                   pedantic = 0; ;
4431     break;}
4432 case 12:
4433 #line 383 "parse.y"
4434 { if (pending_lang_change) do_pending_lang_change(); ;
4435     break;}
4436 case 13:
4437 #line 385 "parse.y"
4438 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4439                   pop_everything (); ;
4440     break;}
4441 case 14:
4442 #line 391 "parse.y"
4443 { if (pending_inlines) do_pending_inlines (); ;
4444     break;}
4445 case 15:
4446 #line 393 "parse.y"
4447 { if (pending_inlines) do_pending_inlines (); ;
4448     break;}
4449 case 16:
4450 #line 395 "parse.y"
4451 { if (pending_inlines) do_pending_inlines (); ;
4452     break;}
4453 case 17:
4454 #line 397 "parse.y"
4455 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4456                   assemble_asm (yyvsp[-2].ttype); ;
4457     break;}
4458 case 18:
4459 #line 400 "parse.y"
4460 { pop_lang_context (); ;
4461     break;}
4462 case 19:
4463 #line 402 "parse.y"
4464 { if (pending_inlines) do_pending_inlines ();
4465                   pop_lang_context (); ;
4466     break;}
4467 case 20:
4468 #line 405 "parse.y"
4469 { if (pending_inlines) do_pending_inlines ();
4470                   pop_lang_context (); ;
4471     break;}
4472 case 21:
4473 #line 408 "parse.y"
4474 { push_namespace (yyvsp[-1].ttype); ;
4475     break;}
4476 case 22:
4477 #line 410 "parse.y"
4478 { pop_namespace (); ;
4479     break;}
4480 case 23:
4481 #line 412 "parse.y"
4482 { push_namespace (NULL_TREE); ;
4483     break;}
4484 case 24:
4485 #line 414 "parse.y"
4486 { pop_namespace (); ;
4487     break;}
4488 case 26:
4489 #line 417 "parse.y"
4490 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4491     break;}
4492 case 28:
4493 #line 420 "parse.y"
4494 { pedantic = yyvsp[-1].itype; ;
4495     break;}
4496 case 29:
4497 #line 425 "parse.y"
4498 { begin_only_namespace_names (); ;
4499     break;}
4500 case 30:
4501 #line 427 "parse.y"
4502 {
4503                   end_only_namespace_names ();
4504                   if (lastiddecl)
4505                     yyvsp[-1].ttype = lastiddecl;
4506                   do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
4507                 ;
4508     break;}
4509 case 31:
4510 #line 437 "parse.y"
4511 { yyval.ttype = yyvsp[0].ttype; ;
4512     break;}
4513 case 32:
4514 #line 439 "parse.y"
4515 { yyval.ttype = yyvsp[0].ttype; ;
4516     break;}
4517 case 33:
4518 #line 441 "parse.y"
4519 { yyval.ttype = yyvsp[0].ttype; ;
4520     break;}
4521 case 34:
4522 #line 446 "parse.y"
4523 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4524     break;}
4525 case 35:
4526 #line 448 "parse.y"
4527 { yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
4528     break;}
4529 case 36:
4530 #line 450 "parse.y"
4531 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4532     break;}
4533 case 37:
4534 #line 455 "parse.y"
4535 { begin_only_namespace_names (); ;
4536     break;}
4537 case 38:
4538 #line 457 "parse.y"
4539 {
4540                   end_only_namespace_names ();
4541                   /* If no declaration was found, the using-directive is
4542                      invalid. Since that was not reported, we need the
4543                      identifier for the error message. */
4544                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
4545                     yyvsp[-1].ttype = lastiddecl;
4546                   do_using_directive (yyvsp[-1].ttype);
4547                 ;
4548     break;}
4549 case 39:
4550 #line 470 "parse.y"
4551 {
4552                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4553                     yyval.ttype = lastiddecl;
4554                   got_scope = yyval.ttype;
4555                 ;
4556     break;}
4557 case 40:
4558 #line 476 "parse.y"
4559 {
4560                   yyval.ttype = yyvsp[-1].ttype;
4561                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4562                     yyval.ttype = lastiddecl;
4563                   got_scope = yyval.ttype;
4564                 ;
4565     break;}
4566 case 43:
4567 #line 487 "parse.y"
4568 { yyval.ttype = yyvsp[0].ttype; ;
4569     break;}
4570 case 44:
4571 #line 489 "parse.y"
4572 { yyval.ttype = yyvsp[0].ttype; ;
4573     break;}
4574 case 45:
4575 #line 494 "parse.y"
4576 { push_lang_context (yyvsp[0].ttype); ;
4577     break;}
4578 case 46:
4579 #line 496 "parse.y"
4580 { if (current_lang_name != yyvsp[0].ttype)
4581                     cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4582                   pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4583     break;}
4584 case 47:
4585 #line 503 "parse.y"
4586 { begin_template_parm_list (); ;
4587     break;}
4588 case 48:
4589 #line 505 "parse.y"
4590 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4591     break;}
4592 case 49:
4593 #line 507 "parse.y"
4594 { begin_specialization(); 
4595                   yyval.ttype = NULL_TREE; ;
4596     break;}
4597 case 50:
4598 #line 513 "parse.y"
4599 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4600     break;}
4601 case 51:
4602 #line 515 "parse.y"
4603 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4604     break;}
4605 case 52:
4606 #line 520 "parse.y"
4607 { yyval.ttype = yyvsp[0].ttype; ;
4608     break;}
4609 case 53:
4610 #line 522 "parse.y"
4611 { yyval.ttype = NULL_TREE; ;
4612     break;}
4613 case 54:
4614 #line 526 "parse.y"
4615 { yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4616     break;}
4617 case 55:
4618 #line 528 "parse.y"
4619 { yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
4620     break;}
4621 case 56:
4622 #line 533 "parse.y"
4623 { yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4624     break;}
4625 case 57:
4626 #line 545 "parse.y"
4627 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4628     break;}
4629 case 58:
4630 #line 547 "parse.y"
4631 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4632     break;}
4633 case 59:
4634 #line 549 "parse.y"
4635 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4636     break;}
4637 case 60:
4638 #line 551 "parse.y"
4639 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4640     break;}
4641 case 61:
4642 #line 553 "parse.y"
4643 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4644     break;}
4645 case 62:
4646 #line 555 "parse.y"
4647 {
4648                   if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4649                       && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4650                       && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4651                     {
4652                       error ("invalid default template argument");
4653                       yyvsp[0].ttype = error_mark_node;
4654                     }
4655                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4656                 ;
4657     break;}
4658 case 63:
4659 #line 569 "parse.y"
4660 { finish_template_decl (yyvsp[-1].ttype); ;
4661     break;}
4662 case 64:
4663 #line 571 "parse.y"
4664 { finish_template_decl (yyvsp[-1].ttype); ;
4665     break;}
4666 case 65:
4667 #line 576 "parse.y"
4668 { if (pending_inlines) do_pending_inlines (); ;
4669     break;}
4670 case 66:
4671 #line 578 "parse.y"
4672 { if (pending_inlines) do_pending_inlines (); ;
4673     break;}
4674 case 67:
4675 #line 580 "parse.y"
4676 { if (pending_inlines) do_pending_inlines (); ;
4677     break;}
4678 case 68:
4679 #line 582 "parse.y"
4680 { if (pending_inlines) do_pending_inlines ();
4681                   pop_lang_context (); ;
4682     break;}
4683 case 69:
4684 #line 585 "parse.y"
4685 { if (pending_inlines) do_pending_inlines ();
4686                   pop_lang_context (); ;
4687     break;}
4688 case 70:
4689 #line 588 "parse.y"
4690 { pedantic = yyvsp[-1].itype; ;
4691     break;}
4692 case 72:
4693 #line 594 "parse.y"
4694 {;
4695     break;}
4696 case 73:
4697 #line 596 "parse.y"
4698 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4699     break;}
4700 case 74:
4701 #line 598 "parse.y"
4702 { maybe_process_partial_specialization (yyvsp[-1].ftype.t);
4703                   note_got_semicolon (yyvsp[-1].ftype.t); ;
4704     break;}
4705 case 76:
4706 #line 605 "parse.y"
4707 {;
4708     break;}
4709 case 77:
4710 #line 607 "parse.y"
4711 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4712     break;}
4713 case 78:
4714 #line 609 "parse.y"
4715 { pedwarn ("empty declaration"); ;
4716     break;}
4717 case 80:
4718 #line 612 "parse.y"
4719 {
4720                   tree t, attrs;
4721                   split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4722                   shadow_tag (t);
4723                   note_list_got_semicolon (yyvsp[-1].ftype.t);
4724                 ;
4725     break;}
4726 case 84:
4727 #line 625 "parse.y"
4728 { yyval.itype = 0; ;
4729     break;}
4730 case 85:
4731 #line 627 "parse.y"
4732 { yyval.itype = 1; ;
4733     break;}
4734 case 91:
4735 #line 643 "parse.y"
4736 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4737     break;}
4738 case 92:
4739 #line 645 "parse.y"
4740
4741                   int nested = (hack_decl_function_context
4742                                 (current_function_decl) != NULL_TREE);
4743                   finish_function (lineno, (int)yyvsp[0].itype, nested); 
4744                 ;
4745     break;}
4746 case 93:
4747 #line 651 "parse.y"
4748 { ;
4749     break;}
4750 case 94:
4751 #line 656 "parse.y"
4752 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4753     break;}
4754 case 95:
4755 #line 658 "parse.y"
4756 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4757     break;}
4758 case 96:
4759 #line 660 "parse.y"
4760 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4761                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4762                 ;
4763     break;}
4764 case 97:
4765 #line 664 "parse.y"
4766 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4767     break;}
4768 case 98:
4769 #line 666 "parse.y"
4770 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4771     break;}
4772 case 99:
4773 #line 668 "parse.y"
4774 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4775                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4776                 ;
4777     break;}
4778 case 100:
4779 #line 672 "parse.y"
4780 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4781     break;}
4782 case 101:
4783 #line 674 "parse.y"
4784 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4785     break;}
4786 case 102:
4787 #line 676 "parse.y"
4788 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4789                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4790                 ;
4791     break;}
4792 case 103:
4793 #line 680 "parse.y"
4794 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4795     break;}
4796 case 104:
4797 #line 682 "parse.y"
4798 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4799     break;}
4800 case 105:
4801 #line 684 "parse.y"
4802 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4803                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4804                 ;
4805     break;}
4806 case 106:
4807 #line 691 "parse.y"
4808 { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
4809                     YYERROR1; ;
4810     break;}
4811 case 107:
4812 #line 694 "parse.y"
4813 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4814                     YYERROR1; ;
4815     break;}
4816 case 108:
4817 #line 697 "parse.y"
4818 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4819                     YYERROR1; ;
4820     break;}
4821 case 109:
4822 #line 700 "parse.y"
4823 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4824                     YYERROR1; ;
4825     break;}
4826 case 110:
4827 #line 703 "parse.y"
4828 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4829                     YYERROR1; ;
4830     break;}
4831 case 111:
4832 #line 709 "parse.y"
4833 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4834     break;}
4835 case 112:
4836 #line 711 "parse.y"
4837 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4838     break;}
4839 case 113:
4840 #line 713 "parse.y"
4841 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4842     break;}
4843 case 114:
4844 #line 715 "parse.y"
4845 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4846     break;}
4847 case 115:
4848 #line 722 "parse.y"
4849 { tree specs, attrs;
4850                   split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4851                   attrs = build_tree_list (attrs, NULL_TREE);
4852                   yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs);
4853                  rest_of_mdef:
4854                   if (! yyval.ttype)
4855                     YYERROR1;
4856                   if (yychar == YYEMPTY)
4857                     yychar = YYLEX;
4858                   reinit_parse_for_method (yychar, yyval.ttype); ;
4859     break;}
4860 case 116:
4861 #line 733 "parse.y"
4862 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype, NULL_TREE); 
4863                   goto rest_of_mdef; ;
4864     break;}
4865 case 117:
4866 #line 736 "parse.y"
4867 { tree specs, attrs;
4868                   split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4869                   attrs = build_tree_list (attrs, NULL_TREE);
4870                   yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
4871     break;}
4872 case 118:
4873 #line 741 "parse.y"
4874 { tree specs, attrs;
4875                   split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4876                   attrs = build_tree_list (attrs, NULL_TREE);
4877                   yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
4878     break;}
4879 case 119:
4880 #line 746 "parse.y"
4881 { yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE); 
4882                   goto rest_of_mdef; ;
4883     break;}
4884 case 120:
4885 #line 749 "parse.y"
4886 { tree specs, attrs;
4887                   split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4888                   attrs = build_tree_list (attrs, NULL_TREE);
4889                   yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
4890     break;}
4891 case 121:
4892 #line 754 "parse.y"
4893 { yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE); 
4894                   goto rest_of_mdef; ;
4895     break;}
4896 case 122:
4897 #line 760 "parse.y"
4898 {
4899                   if (! current_function_parms_stored)
4900                     store_parm_decls ();
4901                   yyval.ttype = yyvsp[0].ttype;
4902                 ;
4903     break;}
4904 case 123:
4905 #line 769 "parse.y"
4906 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4907     break;}
4908 case 124:
4909 #line 771 "parse.y"
4910 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4911     break;}
4912 case 125:
4913 #line 773 "parse.y"
4914 { store_return_init (yyval.ttype, NULL_TREE); ;
4915     break;}
4916 case 126:
4917 #line 778 "parse.y"
4918 {
4919                   if (yyvsp[0].itype == 0)
4920                     error ("no base initializers given following ':'");
4921                   setup_vtbl_ptr ();
4922                   /* Always keep the BLOCK node associated with the outermost
4923                      pair of curley braces of a function.  These are needed
4924                      for correct operation of dwarfout.c.  */
4925                   keep_next_level ();
4926                 ;
4927     break;}
4928 case 127:
4929 #line 791 "parse.y"
4930 {
4931                   if (! current_function_parms_stored)
4932                     store_parm_decls ();
4933
4934                   if (DECL_CONSTRUCTOR_P (current_function_decl))
4935                     {
4936                       /* Make a contour for the initializer list.  */
4937                       pushlevel (0);
4938                       clear_last_expr ();
4939                       expand_start_bindings (0);
4940                     }
4941                   else if (current_class_type == NULL_TREE)
4942                     error ("base initializers not allowed for non-member functions");
4943                   else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4944                     error ("only constructors take base initializers");
4945                 ;
4946     break;}
4947 case 128:
4948 #line 811 "parse.y"
4949 { yyval.itype = 0; ;
4950     break;}
4951 case 129:
4952 #line 813 "parse.y"
4953 { yyval.itype = 1; ;
4954     break;}
4955 case 132:
4956 #line 820 "parse.y"
4957 {
4958                   if (current_class_name)
4959                     pedwarn ("anachronistic old style base class initializer");
4960                   expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4961                 ;
4962     break;}
4963 case 133:
4964 #line 826 "parse.y"
4965 {
4966                   if (current_class_name)
4967                     pedwarn ("anachronistic old style base class initializer");
4968                   expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4969                 ;
4970     break;}
4971 case 134:
4972 #line 832 "parse.y"
4973 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4974     break;}
4975 case 135:
4976 #line 834 "parse.y"
4977 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4978     break;}
4979 case 136:
4980 #line 836 "parse.y"
4981 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4982     break;}
4983 case 137:
4984 #line 838 "parse.y"
4985 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4986     break;}
4987 case 138:
4988 #line 840 "parse.y"
4989 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4990                                       yyvsp[-1].ttype); ;
4991     break;}
4992 case 139:
4993 #line 843 "parse.y"
4994 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4995                                       void_type_node); ;
4996     break;}
4997 case 151:
4998 #line 869 "parse.y"
4999 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
5000                   yyungetc (';', 1); ;
5001     break;}
5002 case 153:
5003 #line 873 "parse.y"
5004 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
5005                   do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
5006     break;}
5007 case 155:
5008 #line 877 "parse.y"
5009 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
5010     break;}
5011 case 157:
5012 #line 880 "parse.y"
5013 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
5014     break;}
5015 case 159:
5016 #line 883 "parse.y"
5017 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
5018                   yyungetc (';', 1); ;
5019     break;}
5020 case 161:
5021 #line 888 "parse.y"
5022 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
5023                   do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
5024     break;}
5025 case 163:
5026 #line 892 "parse.y"
5027 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
5028     break;}
5029 case 165:
5030 #line 895 "parse.y"
5031 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
5032     break;}
5033 case 167:
5034 #line 900 "parse.y"
5035 { begin_explicit_instantiation(); ;
5036     break;}
5037 case 168:
5038 #line 903 "parse.y"
5039 { end_explicit_instantiation(); ;
5040     break;}
5041 case 169:
5042 #line 912 "parse.y"
5043 { yyval.ttype = yyvsp[0].ttype; ;
5044     break;}
5045 case 170:
5046 #line 915 "parse.y"
5047 { yyval.ttype = yyvsp[0].ttype; ;
5048     break;}
5049 case 173:
5050 #line 923 "parse.y"
5051 { yyval.ttype = yyvsp[0].ttype; ;
5052     break;}
5053 case 174:
5054 #line 928 "parse.y"
5055 { yyval.ttype = yyvsp[0].ttype; ;
5056     break;}
5057 case 175:
5058 #line 932 "parse.y"
5059
5060                   if (yychar == YYEMPTY)
5061                     yychar = YYLEX;
5062
5063                   yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype, 
5064                                              yychar == SCOPE);
5065                 ;
5066     break;}
5067 case 177:
5068 #line 943 "parse.y"
5069 {
5070                   /* Handle `Class<Class<Type>>' without space in the `>>' */
5071                   pedwarn ("`>>' should be `> >' in template class name");
5072                   yyungetc ('>', 1);
5073                 ;
5074     break;}
5075 case 178:
5076 #line 952 "parse.y"
5077 { yyval.ttype = NULL_TREE; ;
5078     break;}
5079 case 180:
5080 #line 958 "parse.y"
5081 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5082     break;}
5083 case 181:
5084 #line 960 "parse.y"
5085 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5086     break;}
5087 case 182:
5088 #line 965 "parse.y"
5089 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
5090     break;}
5091 case 183:
5092 #line 967 "parse.y"
5093 { yyval.ttype = lastiddecl; ;
5094     break;}
5095 case 185:
5096 #line 973 "parse.y"
5097 { yyval.code = NEGATE_EXPR; ;
5098     break;}
5099 case 186:
5100 #line 975 "parse.y"
5101 { yyval.code = CONVERT_EXPR; ;
5102     break;}
5103 case 187:
5104 #line 977 "parse.y"
5105 { yyval.code = PREINCREMENT_EXPR; ;
5106     break;}
5107 case 188:
5108 #line 979 "parse.y"
5109 { yyval.code = PREDECREMENT_EXPR; ;
5110     break;}
5111 case 189:
5112 #line 981 "parse.y"
5113 { yyval.code = TRUTH_NOT_EXPR; ;
5114     break;}
5115 case 190:
5116 #line 986 "parse.y"
5117 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
5118     break;}
5119 case 192:
5120 #line 992 "parse.y"
5121 { error ("ANSI C++ forbids an empty condition for `%s'",
5122                          cond_stmt_keyword);
5123                   yyval.ttype = integer_zero_node; ;
5124     break;}
5125 case 193:
5126 #line 996 "parse.y"
5127 { yyval.ttype = yyvsp[-1].ttype; ;
5128     break;}
5129 case 194:
5130 #line 1001 "parse.y"
5131 { error ("ANSI C++ forbids an empty condition for `%s'",
5132                          cond_stmt_keyword);
5133                   yyval.ttype = integer_zero_node; ;
5134     break;}
5135 case 195:
5136 #line 1005 "parse.y"
5137 { yyval.ttype = yyvsp[-1].ttype; ;
5138     break;}
5139 case 196:
5140 #line 1010 "parse.y"
5141 { yyval.ttype = NULL_TREE; ;
5142     break;}
5143 case 198:
5144 #line 1013 "parse.y"
5145 { yyval.ttype = NULL_TREE; ;
5146     break;}
5147 case 199:
5148 #line 1018 "parse.y"
5149 { {
5150                   tree d;
5151                   for (d = getdecls (); d; d = TREE_CHAIN (d))
5152                     if (TREE_CODE (d) == TYPE_DECL) {
5153                       tree s = TREE_TYPE (d);
5154                       if (TREE_CODE (s) == RECORD_TYPE)
5155                         cp_error ("definition of class `%T' in condition", s);
5156                       else if (TREE_CODE (s) == ENUMERAL_TYPE)
5157                         cp_error ("definition of enum `%T' in condition", s);
5158                     }
5159                   }
5160                   current_declspecs = yyvsp[-4].ftype.t;
5161                   yyvsp[0].itype = suspend_momentary ();
5162                   yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
5163                                           yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
5164                 ;
5165     break;}
5166 case 200:
5167 #line 1035 "parse.y"
5168
5169                   cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
5170                   resume_momentary (yyvsp[-2].itype);
5171                   yyval.ttype = convert_from_reference (yyvsp[-1].ttype); 
5172                   if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
5173                     cp_error ("definition of array `%#D' in condition", yyval.ttype); 
5174                 ;
5175     break;}
5176 case 206:
5177 #line 1054 "parse.y"
5178 { yyval.ttype = begin_compound_stmt (1); ;
5179     break;}
5180 case 207:
5181 #line 1056 "parse.y"
5182 { finish_compound_stmt (1, yyvsp[-1].ttype); ;
5183     break;}
5184 case 209:
5185 #line 1063 "parse.y"
5186 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
5187                                   build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
5188     break;}
5189 case 210:
5190 #line 1066 "parse.y"
5191 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
5192                                   build_expr_list (NULL_TREE, error_mark_node)); ;
5193     break;}
5194 case 211:
5195 #line 1069 "parse.y"
5196 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
5197     break;}
5198 case 212:
5199 #line 1071 "parse.y"
5200 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
5201     break;}
5202 case 213:
5203 #line 1076 "parse.y"
5204 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
5205     break;}
5206 case 215:
5207 #line 1082 "parse.y"
5208 { yyval.ttype = yyvsp[0].ttype; ;
5209     break;}
5210 case 216:
5211 #line 1085 "parse.y"
5212 { yyval.ttype = yyvsp[0].ttype;
5213                   pedantic = yyvsp[-1].itype; ;
5214     break;}
5215 case 217:
5216 #line 1088 "parse.y"
5217 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
5218     break;}
5219 case 218:
5220 #line 1090 "parse.y"
5221 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
5222     break;}
5223 case 219:
5224 #line 1092 "parse.y"
5225 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5226     break;}
5227 case 220:
5228 #line 1094 "parse.y"
5229 { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
5230     break;}
5231 case 221:
5232 #line 1097 "parse.y"
5233 { if (pedantic)
5234                     pedwarn ("ANSI C++ forbids `&&'");
5235                   yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
5236     break;}
5237 case 222:
5238 #line 1101 "parse.y"
5239 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
5240     break;}
5241 case 223:
5242 #line 1103 "parse.y"
5243 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t));
5244                   check_for_new_type ("sizeof", yyvsp[-1].ftype); ;
5245     break;}
5246 case 224:
5247 #line 1106 "parse.y"
5248 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
5249     break;}
5250 case 225:
5251 #line 1108 "parse.y"
5252 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
5253                   check_for_new_type ("alignof", yyvsp[-1].ftype); ;
5254     break;}
5255 case 226:
5256 #line 1114 "parse.y"
5257 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
5258                   check_for_new_type ("new", yyvsp[0].ftype); ;
5259     break;}
5260 case 227:
5261 #line 1117 "parse.y"
5262 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
5263                   check_for_new_type ("new", yyvsp[-1].ftype); ;
5264     break;}
5265 case 228:
5266 #line 1120 "parse.y"
5267 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
5268                   check_for_new_type ("new", yyvsp[0].ftype); ;
5269     break;}
5270 case 229:
5271 #line 1123 "parse.y"
5272 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
5273                   check_for_new_type ("new", yyvsp[-1].ftype); ;
5274     break;}
5275 case 230:
5276 #line 1136 "parse.y"
5277 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
5278                                   NULL_TREE, yyvsp[-4].itype); 
5279                   check_for_new_type ("new", yyvsp[-1].ftype); ;
5280     break;}
5281 case 231:
5282 #line 1141 "parse.y"
5283 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
5284                   check_for_new_type ("new", yyvsp[-2].ftype); ;
5285     break;}
5286 case 232:
5287 #line 1145 "parse.y"
5288 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype); 
5289                   check_for_new_type ("new", yyvsp[-1].ftype); ;
5290     break;}
5291 case 233:
5292 #line 1149 "parse.y"
5293 { yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype); 
5294                   check_for_new_type ("new", yyvsp[-2].ftype); ;
5295     break;}
5296 case 234:
5297 #line 1153 "parse.y"
5298 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
5299     break;}
5300 case 235:
5301 #line 1155 "parse.y"
5302 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
5303                   if (yychar == YYEMPTY)
5304                     yychar = YYLEX; ;
5305     break;}
5306 case 236:
5307 #line 1159 "parse.y"
5308 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
5309                   if (yychar == YYEMPTY)
5310                     yychar = YYLEX; ;
5311     break;}
5312 case 237:
5313 #line 1163 "parse.y"
5314 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
5315     break;}
5316 case 238:
5317 #line 1165 "parse.y"
5318 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
5319     break;}
5320 case 239:
5321 #line 1175 "parse.y"
5322 { finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
5323     break;}
5324 case 240:
5325 #line 1178 "parse.y"
5326 { yyval.itype = begin_new_placement (); ;
5327     break;}
5328 case 241:
5329 #line 1182 "parse.y"
5330 { yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
5331     break;}
5332 case 242:
5333 #line 1184 "parse.y"
5334 { cp_pedwarn ("old style placement syntax, use () instead");
5335                   yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
5336     break;}
5337 case 243:
5338 #line 1190 "parse.y"
5339 { yyval.ttype = yyvsp[-1].ttype; ;
5340     break;}
5341 case 244:
5342 #line 1192 "parse.y"
5343 { yyval.ttype = NULL_TREE; ;
5344     break;}
5345 case 245:
5346 #line 1194 "parse.y"
5347 {
5348                   cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
5349                   yyval.ttype = error_mark_node;
5350                 ;
5351     break;}
5352 case 246:
5353 #line 1202 "parse.y"
5354 {
5355                   if (pedantic)
5356                     pedwarn ("ANSI C++ forbids initialization of new expression with `='");
5357                   if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
5358                       && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
5359                     yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
5360                   else
5361                     yyval.ttype = yyvsp[0].ttype;
5362                 ;
5363     break;}
5364 case 247:
5365 #line 1216 "parse.y"
5366 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
5367                   yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5368                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
5369     break;}
5370 case 248:
5371 #line 1220 "parse.y"
5372 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); 
5373                   yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5374                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
5375     break;}
5376 case 250:
5377 #line 1228 "parse.y"
5378 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5379     break;}
5380 case 251:
5381 #line 1230 "parse.y"
5382
5383                   tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5384                                         nreverse (yyvsp[-2].ttype)); 
5385                   if (pedantic)
5386                     pedwarn ("ANSI C++ forbids constructor-expressions");
5387                   /* Indicate that this was a GNU C constructor expression.  */
5388                   TREE_HAS_CONSTRUCTOR (init) = 1;
5389
5390                   yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5391                 ;
5392     break;}
5393 case 253:
5394 #line 1246 "parse.y"
5395 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5396     break;}
5397 case 254:
5398 #line 1248 "parse.y"
5399 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5400     break;}
5401 case 255:
5402 #line 1250 "parse.y"
5403 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5404     break;}
5405 case 256:
5406 #line 1252 "parse.y"
5407 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5408     break;}
5409 case 257:
5410 #line 1254 "parse.y"
5411 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5412     break;}
5413 case 258:
5414 #line 1256 "parse.y"
5415 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5416     break;}
5417 case 259:
5418 #line 1258 "parse.y"
5419 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5420     break;}
5421 case 260:
5422 #line 1260 "parse.y"
5423 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5424     break;}
5425 case 261:
5426 #line 1262 "parse.y"
5427 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5428     break;}
5429 case 262:
5430 #line 1264 "parse.y"
5431 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5432     break;}
5433 case 263:
5434 #line 1266 "parse.y"
5435 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5436     break;}
5437 case 264:
5438 #line 1268 "parse.y"
5439 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5440     break;}
5441 case 265:
5442 #line 1270 "parse.y"
5443 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5444     break;}
5445 case 266:
5446 #line 1272 "parse.y"
5447 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5448     break;}
5449 case 267:
5450 #line 1274 "parse.y"
5451 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5452     break;}
5453 case 268:
5454 #line 1276 "parse.y"
5455 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5456     break;}
5457 case 269:
5458 #line 1278 "parse.y"
5459 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5460     break;}
5461 case 270:
5462 #line 1280 "parse.y"
5463 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5464     break;}
5465 case 271:
5466 #line 1282 "parse.y"
5467 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5468     break;}
5469 case 272:
5470 #line 1284 "parse.y"
5471 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5472     break;}
5473 case 273:
5474 #line 1286 "parse.y"
5475 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5476                   if (yyval.ttype != error_mark_node)
5477                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5478     break;}
5479 case 274:
5480 #line 1290 "parse.y"
5481 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5482     break;}
5483 case 275:
5484 #line 1292 "parse.y"
5485 { yyval.ttype = build_throw (NULL_TREE); ;
5486     break;}
5487 case 276:
5488 #line 1294 "parse.y"
5489 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5490     break;}
5491 case 277:
5492 #line 1312 "parse.y"
5493 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5494     break;}
5495 case 278:
5496 #line 1314 "parse.y"
5497 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5498     break;}
5499 case 284:
5500 #line 1323 "parse.y"
5501 {
5502                   /* If lastiddecl is a TREE_LIST, it's a baselink, which
5503                      means that we're in an expression like S::f<int>, so
5504                      don't do_identifier; we only do that for unqualified
5505                      identifiers.  */
5506                   if (lastiddecl && TREE_CODE (lastiddecl) != TREE_LIST)
5507                     yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE);
5508                   else
5509                     yyval.ttype = yyvsp[-1].ttype;
5510                 ;
5511     break;}
5512 case 285:
5513 #line 1336 "parse.y"
5514 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5515     break;}
5516 case 286:
5517 #line 1338 "parse.y"
5518 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5519     break;}
5520 case 287:
5521 #line 1343 "parse.y"
5522 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5523     break;}
5524 case 288:
5525 #line 1345 "parse.y"
5526 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5527     break;}
5528 case 289:
5529 #line 1348 "parse.y"
5530 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5531     break;}
5532 case 294:
5533 #line 1360 "parse.y"
5534 {
5535                   /* Provide support for '(' attributes '*' declarator ')'
5536                      etc */
5537                   yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
5538                 ;
5539     break;}
5540 case 296:
5541 #line 1370 "parse.y"
5542 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5543     break;}
5544 case 297:
5545 #line 1372 "parse.y"
5546 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5547     break;}
5548 case 298:
5549 #line 1374 "parse.y"
5550 { yyval.ttype = yyvsp[-1].ttype; ;
5551     break;}
5552 case 299:
5553 #line 1379 "parse.y"
5554 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5555     break;}
5556 case 300:
5557 #line 1381 "parse.y"
5558 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5559     break;}
5560 case 304:
5561 #line 1391 "parse.y"
5562 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5563     break;}
5564 case 305:
5565 #line 1396 "parse.y"
5566 {
5567                   if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
5568                     yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
5569                   else 
5570                     yyval.ttype = finish_id_expr (yyvsp[0].ttype);
5571                 ;
5572     break;}
5573 case 308:
5574 #line 1405 "parse.y"
5575 {
5576                   if (processing_template_decl)
5577                     push_obstacks (&permanent_obstack, &permanent_obstack);
5578                   yyval.ttype = combine_strings (yyval.ttype);
5579                   /* combine_strings doesn't set up TYPE_MAIN_VARIANT of
5580                      a const array the way we want, so fix it.  */
5581                   if (flag_const_strings)
5582                     TREE_TYPE (yyval.ttype) = build_cplus_array_type
5583                       (TREE_TYPE (TREE_TYPE (yyval.ttype)),
5584                        TYPE_DOMAIN (TREE_TYPE (yyval.ttype)));
5585                   if (processing_template_decl)
5586                     pop_obstacks ();
5587                 ;
5588     break;}
5589 case 309:
5590 #line 1419 "parse.y"
5591 { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5592     break;}
5593 case 310:
5594 #line 1421 "parse.y"
5595 { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5596                   yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5597     break;}
5598 case 311:
5599 #line 1424 "parse.y"
5600 { yyval.ttype = error_mark_node; ;
5601     break;}
5602 case 312:
5603 #line 1426 "parse.y"
5604 { tree scope = current_scope ();
5605                   if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
5606                     {
5607                       error ("braced-group within expression allowed only inside a function");
5608                       YYERROR;
5609                     }
5610                   if (pedantic)
5611                     pedwarn ("ANSI C++ forbids braced-groups within expressions");  
5612                   yyval.ttype = begin_stmt_expr (); 
5613                 ;
5614     break;}
5615 case 313:
5616 #line 1437 "parse.y"
5617 { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5618     break;}
5619 case 314:
5620 #line 1442 "parse.y"
5621 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
5622     break;}
5623 case 315:
5624 #line 1444 "parse.y"
5625 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
5626     break;}
5627 case 316:
5628 #line 1446 "parse.y"
5629 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
5630     break;}
5631 case 317:
5632 #line 1448 "parse.y"
5633 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
5634     break;}
5635 case 318:
5636 #line 1450 "parse.y"
5637 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5638     break;}
5639 case 319:
5640 #line 1452 "parse.y"
5641 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
5642     break;}
5643 case 320:
5644 #line 1454 "parse.y"
5645 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
5646     break;}
5647 case 321:
5648 #line 1457 "parse.y"
5649 { yyval.ttype = finish_this_expr (); ;
5650     break;}
5651 case 322:
5652 #line 1459 "parse.y"
5653 {
5654                   /* This is a C cast in C++'s `functional' notation
5655                      using the "implicit int" extension so that:
5656                      `const (3)' is equivalent to `const int (3)'.  */
5657                   tree type;
5658
5659                   if (yyvsp[-1].ttype == error_mark_node)
5660                     {
5661                       yyval.ttype = error_mark_node;
5662                       break;
5663                     }
5664
5665                   type = cp_build_qualified_type (integer_type_node,
5666                                                   cp_type_qual_from_rid (yyvsp[-3].ttype));
5667                   yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5668                 ;
5669     break;}
5670 case 324:
5671 #line 1477 "parse.y"
5672 { tree type = groktypename (yyvsp[-4].ftype.t);
5673                   check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5674                   yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5675     break;}
5676 case 325:
5677 #line 1481 "parse.y"
5678 { tree type = groktypename (yyvsp[-4].ftype.t);
5679                   check_for_new_type ("static_cast", yyvsp[-4].ftype);
5680                   yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5681     break;}
5682 case 326:
5683 #line 1485 "parse.y"
5684 { tree type = groktypename (yyvsp[-4].ftype.t);
5685                   check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5686                   yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5687     break;}
5688 case 327:
5689 #line 1489 "parse.y"
5690 { tree type = groktypename (yyvsp[-4].ftype.t);
5691                   check_for_new_type ("const_cast", yyvsp[-4].ftype);
5692                   yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5693     break;}
5694 case 328:
5695 #line 1493 "parse.y"
5696 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5697     break;}
5698 case 329:
5699 #line 1495 "parse.y"
5700 { tree type = groktypename (yyvsp[-1].ftype.t);
5701                   check_for_new_type ("typeid", yyvsp[-1].ftype);
5702                   yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5703     break;}
5704 case 330:
5705 #line 1499 "parse.y"
5706 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5707     break;}
5708 case 331:
5709 #line 1501 "parse.y"
5710 { yyval.ttype = yyvsp[0].ttype; ;
5711     break;}
5712 case 332:
5713 #line 1503 "parse.y"
5714 {
5715                   got_scope = NULL_TREE;
5716                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5717                     yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5718                   else
5719                     yyval.ttype = yyvsp[0].ttype;
5720                 ;
5721     break;}
5722 case 333:
5723 #line 1511 "parse.y"
5724 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5725     break;}
5726 case 334:
5727 #line 1513 "parse.y"
5728 { yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5729     break;}
5730 case 335:
5731 #line 1515 "parse.y"
5732 { yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
5733     break;}
5734 case 336:
5735 #line 1517 "parse.y"
5736
5737                   yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
5738                 ;
5739     break;}
5740 case 337:
5741 #line 1521 "parse.y"
5742 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5743     break;}
5744 case 338:
5745 #line 1523 "parse.y"
5746 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5747     break;}
5748 case 339:
5749 #line 1525 "parse.y"
5750 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5751     break;}
5752 case 340:
5753 #line 1527 "parse.y"
5754 { if (processing_template_decl)
5755                     yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5756                   else
5757                     yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5758     break;}
5759 case 341:
5760 #line 1532 "parse.y"
5761 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5762     break;}
5763 case 342:
5764 #line 1534 "parse.y"
5765 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5766     break;}
5767 case 343:
5768 #line 1536 "parse.y"
5769 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5770     break;}
5771 case 344:
5772 #line 1538 "parse.y"
5773 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5774     break;}
5775 case 345:
5776 #line 1541 "parse.y"
5777 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5778     break;}
5779 case 346:
5780 #line 1543 "parse.y"
5781 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5782     break;}
5783 case 347:
5784 #line 1545 "parse.y"
5785 {
5786                   yyval.ttype = error_mark_node;
5787                 ;
5788     break;}
5789 case 348:
5790 #line 1590 "parse.y"
5791 { yyval.itype = 0; ;
5792     break;}
5793 case 349:
5794 #line 1592 "parse.y"
5795 { got_scope = NULL_TREE; yyval.itype = 1; ;
5796     break;}
5797 case 350:
5798 #line 1597 "parse.y"
5799 { yyval.itype = 0; ;
5800     break;}
5801 case 351:
5802 #line 1599 "parse.y"
5803 { got_scope = NULL_TREE; yyval.itype = 1; ;
5804     break;}
5805 case 352:
5806 #line 1604 "parse.y"
5807 { yyval.ttype = boolean_true_node; ;
5808     break;}
5809 case 353:
5810 #line 1606 "parse.y"
5811 { yyval.ttype = boolean_false_node; ;
5812     break;}
5813 case 355:
5814 #line 1613 "parse.y"
5815 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5816     break;}
5817 case 356:
5818 #line 1618 "parse.y"
5819 {
5820                   if (! current_function_parms_stored)
5821                     store_parm_decls ();
5822                   setup_vtbl_ptr ();
5823                   /* Always keep the BLOCK node associated with the outermost
5824                      pair of curley braces of a function.  These are needed
5825                      for correct operation of dwarfout.c.  */
5826                   keep_next_level ();
5827                 ;
5828     break;}
5829 case 357:
5830 #line 1631 "parse.y"
5831 { got_object = TREE_TYPE (yyval.ttype); ;
5832     break;}
5833 case 358:
5834 #line 1633 "parse.y"
5835 {
5836                   yyval.ttype = build_x_arrow (yyval.ttype); 
5837                   got_object = TREE_TYPE (yyval.ttype);
5838                 ;
5839     break;}
5840 case 359:
5841 #line 1641 "parse.y"
5842 {
5843                   resume_momentary (yyvsp[-1].itype);
5844                   if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5845                     note_got_semicolon (yyvsp[-2].ftype.t);
5846                 ;
5847     break;}
5848 case 360:
5849 #line 1647 "parse.y"
5850 {
5851                   resume_momentary (yyvsp[-1].itype);
5852                   note_list_got_semicolon (yyvsp[-2].ftype.t);
5853                 ;
5854     break;}
5855 case 361:
5856 #line 1652 "parse.y"
5857 { resume_momentary (yyvsp[-1].itype); ;
5858     break;}
5859 case 362:
5860 #line 1654 "parse.y"
5861 {
5862                   shadow_tag (yyvsp[-1].ftype.t);
5863                   note_list_got_semicolon (yyvsp[-1].ftype.t);
5864                 ;
5865     break;}
5866 case 363:
5867 #line 1659 "parse.y"
5868 { warning ("empty declaration"); ;
5869     break;}
5870 case 364:
5871 #line 1661 "parse.y"
5872 { pedantic = yyvsp[-1].itype; ;
5873     break;}
5874 case 367:
5875 #line 1675 "parse.y"
5876 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5877                                              NULL_TREE, NULL_TREE); ;
5878     break;}
5879 case 368:
5880 #line 1678 "parse.y"
5881 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5882                                              NULL_TREE); ;
5883     break;}
5884 case 369:
5885 #line 1685 "parse.y"
5886 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5887                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5888     break;}
5889 case 370:
5890 #line 1688 "parse.y"
5891 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5892                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5893     break;}
5894 case 371:
5895 #line 1691 "parse.y"
5896 { yyval.ftype.t = build_decl_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
5897                                           yyvsp[0].ttype); 
5898                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5899     break;}
5900 case 372:
5901 #line 1695 "parse.y"
5902 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5903                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
5904     break;}
5905 case 373:
5906 #line 1698 "parse.y"
5907 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
5908                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5909     break;}
5910 case 376:
5911 #line 1714 "parse.y"
5912 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
5913                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5914     break;}
5915 case 377:
5916 #line 1717 "parse.y"
5917 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5918                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5919     break;}
5920 case 378:
5921 #line 1720 "parse.y"
5922 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
5923                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5924     break;}
5925 case 379:
5926 #line 1723 "parse.y"
5927 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5928                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5929     break;}
5930 case 380:
5931 #line 1726 "parse.y"
5932 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5933                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5934     break;}
5935 case 381:
5936 #line 1729 "parse.y"
5937 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5938                                          chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
5939                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5940     break;}
5941 case 382:
5942 #line 1736 "parse.y"
5943 { if (extra_warnings)
5944                     warning ("`%s' is not at beginning of declaration",
5945                              IDENTIFIER_POINTER (yyval.ttype));
5946                   yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5947     break;}
5948 case 383:
5949 #line 1741 "parse.y"
5950 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5951     break;}
5952 case 384:
5953 #line 1743 "parse.y"
5954 { if (extra_warnings)
5955                     warning ("`%s' is not at beginning of declaration",
5956                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5957                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5958     break;}
5959 case 385:
5960 #line 1748 "parse.y"
5961 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5962     break;}
5963 case 386:
5964 #line 1750 "parse.y"
5965 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5966     break;}
5967 case 387:
5968 #line 1769 "parse.y"
5969 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5970     break;}
5971 case 388:
5972 #line 1771 "parse.y"
5973 { yyval.ttype = hash_tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
5974     break;}
5975 case 389:
5976 #line 1773 "parse.y"
5977 { yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5978                   TREE_STATIC (yyval.ttype) = 1; ;
5979     break;}
5980 case 390:
5981 #line 1776 "parse.y"
5982 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5983                     warning ("`%s' is not at beginning of declaration",
5984                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5985                   yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5986                   TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5987     break;}
5988 case 391:
5989 #line 1782 "parse.y"
5990 { yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5991     break;}
5992 case 392:
5993 #line 1784 "parse.y"
5994 { yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5995     break;}
5996 case 393:
5997 #line 1795 "parse.y"
5998 { yyval.ftype.t = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); 
5999                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6000     break;}
6001 case 394:
6002 #line 1798 "parse.y"
6003 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
6004                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6005     break;}
6006 case 395:
6007 #line 1801 "parse.y"
6008 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
6009                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6010     break;}
6011 case 396:
6012 #line 1804 "parse.y"
6013 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
6014                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
6015     break;}
6016 case 397:
6017 #line 1810 "parse.y"
6018 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
6019     break;}
6020 case 398:
6021 #line 1812 "parse.y"
6022 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
6023     break;}
6024 case 400:
6025 #line 1822 "parse.y"
6026 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6027     break;}
6028 case 401:
6029 #line 1824 "parse.y"
6030 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6031     break;}
6032 case 402:
6033 #line 1826 "parse.y"
6034 { yyval.ftype.t = finish_typeof (yyvsp[-1].ttype);
6035                   yyval.ftype.new_type_flag = 0; ;
6036     break;}
6037 case 403:
6038 #line 1829 "parse.y"
6039 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
6040                   yyval.ftype.new_type_flag = 0; ;
6041     break;}
6042 case 404:
6043 #line 1832 "parse.y"
6044 { tree type = TREE_TYPE (yyvsp[-1].ttype);
6045
6046                   yyval.ftype.new_type_flag = 0;
6047                   if (IS_AGGR_TYPE (type))
6048                     {
6049                       sorry ("sigof type specifier");
6050                       yyval.ftype.t = type;
6051                     }
6052                   else
6053                     {
6054                       error ("`sigof' applied to non-aggregate expression");
6055                       yyval.ftype.t = error_mark_node;
6056                     }
6057                 ;
6058     break;}
6059 case 405:
6060 #line 1847 "parse.y"
6061 { tree type = groktypename (yyvsp[-1].ftype.t);
6062
6063                   yyval.ftype.new_type_flag = 0;
6064                   if (IS_AGGR_TYPE (type))
6065                     {
6066                       sorry ("sigof type specifier");
6067                       yyval.ftype.t = type;
6068                     }
6069                   else
6070                     {
6071                       error("`sigof' applied to non-aggregate type");
6072                       yyval.ftype.t = error_mark_node;
6073                     }
6074                 ;
6075     break;}
6076 case 406:
6077 #line 1867 "parse.y"
6078 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6079     break;}
6080 case 407:
6081 #line 1869 "parse.y"
6082 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6083     break;}
6084 case 410:
6085 #line 1876 "parse.y"
6086 { check_multiple_declarators (); ;
6087     break;}
6088 case 412:
6089 #line 1882 "parse.y"
6090 { check_multiple_declarators (); ;
6091     break;}
6092 case 414:
6093 #line 1888 "parse.y"
6094 { check_multiple_declarators (); ;
6095     break;}
6096 case 415:
6097 #line 1893 "parse.y"
6098 { yyval.ttype = NULL_TREE; ;
6099     break;}
6100 case 416:
6101 #line 1895 "parse.y"
6102 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
6103     break;}
6104 case 417:
6105 #line 1900 "parse.y"
6106 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
6107                                           yyvsp[-1].ttype, prefix_attributes); ;
6108     break;}
6109 case 418:
6110 #line 1904 "parse.y"
6111 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
6112     break;}
6113 case 419:
6114 #line 1906 "parse.y"
6115 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
6116                                           yyvsp[0].ttype, prefix_attributes);
6117                   cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
6118     break;}
6119 case 420:
6120 #line 1919 "parse.y"
6121 { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, 
6122                                            yyvsp[-1].ttype, 1, &yyval.ttype); ;
6123     break;}
6124 case 421:
6125 #line 1924 "parse.y"
6126 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
6127                                   LOOKUP_ONLYCONVERTING);
6128                   yyval.itype = yyvsp[-2].itype; ;
6129     break;}
6130 case 422:
6131 #line 1928 "parse.y"
6132 { tree d;
6133                   yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
6134                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
6135     break;}
6136 case 423:
6137 #line 1935 "parse.y"
6138 { yyval.itype = yyvsp[0].itype; ;
6139     break;}
6140 case 424:
6141 #line 1939 "parse.y"
6142 { yyval.itype = yyvsp[0].itype; ;
6143     break;}
6144 case 425:
6145 #line 1944 "parse.y"
6146 { /* Set things up as initdcl0_innards expects.  */
6147               yyvsp[0].ttype = yyvsp[-1].ttype; 
6148               yyvsp[-1].ttype = NULL_TREE; ;
6149     break;}
6150 case 426:
6151 #line 1948 "parse.y"
6152 {;
6153     break;}
6154 case 427:
6155 #line 1950 "parse.y"
6156 { tree d;
6157                   parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
6158                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
6159     break;}
6160 case 428:
6161 #line 1959 "parse.y"
6162 { yyval.ttype = NULL_TREE; ;
6163     break;}
6164 case 429:
6165 #line 1961 "parse.y"
6166 { yyval.ttype = yyvsp[0].ttype; ;
6167     break;}
6168 case 430:
6169 #line 1966 "parse.y"
6170 { yyval.ttype = yyvsp[0].ttype; ;
6171     break;}
6172 case 431:
6173 #line 1968 "parse.y"
6174 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6175     break;}
6176 case 432:
6177 #line 1973 "parse.y"
6178 { yyval.ttype = yyvsp[-2].ttype; ;
6179     break;}
6180 case 433:
6181 #line 1978 "parse.y"
6182 { yyval.ttype = yyvsp[0].ttype; ;
6183     break;}
6184 case 434:
6185 #line 1980 "parse.y"
6186 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6187     break;}
6188 case 435:
6189 #line 1985 "parse.y"
6190 { yyval.ttype = NULL_TREE; ;
6191     break;}
6192 case 436:
6193 #line 1987 "parse.y"
6194 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
6195     break;}
6196 case 437:
6197 #line 1989 "parse.y"
6198 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
6199     break;}
6200 case 438:
6201 #line 1991 "parse.y"
6202 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
6203     break;}
6204 case 439:
6205 #line 1993 "parse.y"
6206 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6207     break;}
6208 case 444:
6209 #line 2009 "parse.y"
6210 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
6211     break;}
6212 case 445:
6213 #line 2011 "parse.y"
6214 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6215     break;}
6216 case 446:
6217 #line 2016 "parse.y"
6218 { yyval.ttype = NULL_TREE; ;
6219     break;}
6220 case 447:
6221 #line 2018 "parse.y"
6222 { yyval.ttype = yyvsp[0].ttype; ;
6223     break;}
6224 case 449:
6225 #line 2026 "parse.y"
6226 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
6227                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6228     break;}
6229 case 450:
6230 #line 2029 "parse.y"
6231 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
6232                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6233     break;}
6234 case 451:
6235 #line 2032 "parse.y"
6236 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
6237                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6238     break;}
6239 case 452:
6240 #line 2035 "parse.y"
6241 { yyval.ttype = NULL_TREE; ;
6242     break;}
6243 case 453:
6244 #line 2042 "parse.y"
6245 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6246     break;}
6247 case 454:
6248 #line 2044 "parse.y"
6249 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6250     break;}
6251 case 455:
6252 #line 2047 "parse.y"
6253 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6254     break;}
6255 case 456:
6256 #line 2049 "parse.y"
6257 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
6258     break;}
6259 case 457:
6260 #line 2051 "parse.y"
6261 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6262     break;}
6263 case 458:
6264 #line 2056 "parse.y"
6265 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
6266                                   NULL_TREE, 2);
6267                   reinit_parse_for_function (); ;
6268     break;}
6269 case 459:
6270 #line 2062 "parse.y"
6271 {
6272                   int nested = (hack_decl_function_context
6273                                 (current_function_decl) != NULL_TREE);
6274                   finish_function (lineno, (int)yyvsp[-1].itype | 2, nested);
6275                   process_next_inline (yyvsp[-3].ttype);
6276                 ;
6277     break;}
6278 case 460:
6279 #line 2069 "parse.y"
6280
6281                   int nested = (hack_decl_function_context
6282                                 (current_function_decl) != NULL_TREE);
6283                   finish_function (lineno, (int)yyvsp[0].itype | 2, nested); 
6284                   process_next_inline (yyvsp[-2].ttype);
6285                 ;
6286     break;}
6287 case 461:
6288 #line 2076 "parse.y"
6289 { process_next_inline (yyvsp[-2].ttype); ;
6290     break;}
6291 case 464:
6292 #line 2088 "parse.y"
6293 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6294     break;}
6295 case 465:
6296 #line 2090 "parse.y"
6297 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6298     break;}
6299 case 467:
6300 #line 2095 "parse.y"
6301 { do_pending_defargs (); ;
6302     break;}
6303 case 468:
6304 #line 2097 "parse.y"
6305 { do_pending_defargs (); ;
6306     break;}
6307 case 469:
6308 #line 2102 "parse.y"
6309 { yyvsp[0].itype = suspend_momentary ();
6310                   yyval.ttype = current_enum_type;
6311                   current_enum_type = start_enum (yyvsp[-1].ttype); ;
6312     break;}
6313 case 470:
6314 #line 2106 "parse.y"
6315 { TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
6316                   yyval.ftype.t = finish_enum (current_enum_type);
6317                   yyval.ftype.new_type_flag = 1;
6318                   current_enum_type = yyvsp[-3].ttype;
6319                   resume_momentary ((int) yyvsp[-4].itype);
6320                   check_for_missing_semicolon (yyval.ftype.t); ;
6321     break;}
6322 case 471:
6323 #line 2113 "parse.y"
6324 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype));
6325                   yyval.ftype.new_type_flag = 1;
6326                   check_for_missing_semicolon (yyval.ftype.t); ;
6327     break;}
6328 case 472:
6329 #line 2117 "parse.y"
6330 { yyvsp[0].itype = suspend_momentary ();
6331                   yyval.ttype = current_enum_type;
6332                   current_enum_type = start_enum (make_anon_name ()); ;
6333     break;}
6334 case 473:
6335 #line 2121 "parse.y"
6336 { TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
6337                   yyval.ftype.t = finish_enum (current_enum_type);
6338                   yyval.ftype.new_type_flag = 1;
6339                   current_enum_type = yyvsp[-3].ttype;
6340                   resume_momentary ((int) yyvsp[-5].itype);
6341                   check_for_missing_semicolon (yyval.ftype.t); ;
6342     break;}
6343 case 474:
6344 #line 2128 "parse.y"
6345 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()));
6346                   yyval.ftype.new_type_flag = 1;
6347                   check_for_missing_semicolon (yyval.ftype.t); ;
6348     break;}
6349 case 475:
6350 #line 2132 "parse.y"
6351 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
6352                   yyval.ftype.new_type_flag = 0; ;
6353     break;}
6354 case 476:
6355 #line 2135 "parse.y"
6356 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
6357                   yyval.ftype.new_type_flag = 0; ;
6358     break;}
6359 case 477:
6360 #line 2138 "parse.y"
6361 { yyval.ftype.t = yyvsp[0].ttype;
6362                   yyval.ftype.new_type_flag = 0; 
6363                   if (!processing_template_decl)
6364                     cp_pedwarn ("using `typename' outside of template"); ;
6365     break;}
6366 case 478:
6367 #line 2144 "parse.y"
6368 { yyvsp[-1].ftype.t = begin_class_definition (yyvsp[-1].ftype.t); ;
6369     break;}
6370 case 479:
6371 #line 2146 "parse.y"
6372
6373                   int semi;
6374
6375                   if (yychar == YYEMPTY)
6376                     yychar = YYLEX;
6377                   semi = yychar == ';';
6378
6379                   yyval.ttype = finish_class_definition (yyvsp[-5].ftype.t, yyvsp[0].ttype, semi,
6380                                                        yyvsp[-5].ftype.new_type_flag); 
6381                 ;
6382     break;}
6383 case 480:
6384 #line 2157 "parse.y"
6385 {
6386                   begin_inline_definitions ();
6387                 ;
6388     break;}
6389 case 481:
6390 #line 2161 "parse.y"
6391 {
6392                   finish_inline_definitions ();
6393                   yyval.ftype.t = yyvsp[-3].ttype;
6394                   yyval.ftype.new_type_flag = 1; 
6395                 ;
6396     break;}
6397 case 482:
6398 #line 2167 "parse.y"
6399 {
6400                   if (yyvsp[0].ftype.new_type_flag)
6401                     pop_scope (CP_DECL_CONTEXT (TYPE_MAIN_DECL (yyvsp[0].ftype.t)));
6402                   yyval.ftype.new_type_flag = 0;
6403                   if (TYPE_BINFO (yyvsp[0].ftype.t) == NULL_TREE)
6404                     {
6405                       cp_error ("%T is not a class type", yyvsp[0].ftype.t);
6406                       yyval.ftype.t = error_mark_node;
6407                     } 
6408                   else
6409                     {
6410                       yyval.ftype.t = yyvsp[0].ftype.t;
6411                       /* struct B: public A; is not accepted by the WP grammar.  */
6412                       if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6413                           && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6414                         cp_error ("base clause without member specification for `%#T'",
6415                                   yyval.ftype.t);
6416                     }
6417                 ;
6418     break;}
6419 case 486:
6420 #line 2196 "parse.y"
6421 { if (pedantic && !in_system_header)
6422                     pedwarn ("comma at end of enumerator list"); ;
6423     break;}
6424 case 488:
6425 #line 2203 "parse.y"
6426 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6427     break;}
6428 case 489:
6429 #line 2205 "parse.y"
6430 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6431     break;}
6432 case 490:
6433 #line 2207 "parse.y"
6434 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6435     break;}
6436 case 491:
6437 #line 2209 "parse.y"
6438 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6439     break;}
6440 case 492:
6441 #line 2211 "parse.y"
6442 { yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
6443     break;}
6444 case 493:
6445 #line 2216 "parse.y"
6446
6447                   current_aggr = yyvsp[-1].ttype; 
6448                   yyval.ttype = yyvsp[0].ttype; 
6449                 ;
6450     break;}
6451 case 494:
6452 #line 2224 "parse.y"
6453 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6454     break;}
6455 case 495:
6456 #line 2226 "parse.y"
6457 { yyungetc ('{', 1); ;
6458     break;}
6459 case 496:
6460 #line 2228 "parse.y"
6461 { yyungetc (':', 1); ;
6462     break;}
6463 case 497:
6464 #line 2233 "parse.y"
6465 {
6466                   current_aggr = yyvsp[-2].ttype;
6467                   yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6468                   yyval.ftype.new_type_flag = 1;
6469                 ;
6470     break;}
6471 case 498:
6472 #line 2239 "parse.y"
6473 {
6474                   current_aggr = yyvsp[-3].ttype;
6475                   yyval.ftype.t = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6476                   yyval.ftype.new_type_flag = 1;
6477                 ;
6478     break;}
6479 case 499:
6480 #line 2245 "parse.y"
6481 {
6482                   current_aggr = yyvsp[-2].ttype;
6483                   yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6484                   yyval.ftype.new_type_flag = 1;
6485                 ;
6486     break;}
6487 case 500:
6488 #line 2251 "parse.y"
6489
6490                   current_aggr = yyvsp[-1].ttype; 
6491                   yyval.ftype.t = yyvsp[0].ttype;
6492                   yyval.ftype.new_type_flag = 0;
6493                 ;
6494     break;}
6495 case 501:
6496 #line 2257 "parse.y"
6497
6498                   current_aggr = yyvsp[-2].ttype; 
6499                   yyval.ftype.t = yyvsp[0].ttype;
6500                   if (CP_DECL_CONTEXT (yyval.ftype.t))
6501                     push_scope (CP_DECL_CONTEXT (yyval.ftype.t));
6502                   yyval.ftype.new_type_flag = 1;
6503                 ;
6504     break;}
6505 case 502:
6506 #line 2268 "parse.y"
6507
6508                   yyval.ftype.t = xref_tag (current_aggr, yyvsp[0].ttype, 1); 
6509                   yyval.ftype.new_type_flag = 0;
6510                 ;
6511     break;}
6512 case 503:
6513 #line 2273 "parse.y"
6514 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
6515     break;}
6516 case 504:
6517 #line 2277 "parse.y"
6518
6519                   yyval.ftype.t = yyvsp[-1].ttype;
6520                   yyval.ftype.new_type_flag = 0;
6521                   if (yyvsp[0].ttype)
6522                     xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
6523                 ;
6524     break;}
6525 case 505:
6526 #line 2285 "parse.y"
6527
6528                   if (yyvsp[-1].ftype.t != error_mark_node)
6529                     {
6530                       yyval.ftype.t = TREE_TYPE (yyvsp[-1].ftype.t);
6531                       yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
6532                       if (current_aggr == union_type_node
6533                           && TREE_CODE (yyval.ftype.t) != UNION_TYPE)
6534                         cp_pedwarn ("`union' tag used in declaring `%#T'", 
6535                                     yyval.ftype.t);
6536                       else if (TREE_CODE (yyval.ftype.t) == UNION_TYPE
6537                                && current_aggr != union_type_node)
6538                         cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ftype);
6539                       else if (TREE_CODE (yyval.ftype.t) == RECORD_TYPE)
6540                         /* We might be specializing a template with a different
6541                            class-key; deal.  */
6542                         CLASSTYPE_DECLARED_CLASS (yyval.ftype.t) 
6543                           = (current_aggr == class_type_node);
6544                       if (yyvsp[0].ttype)
6545                         {
6546                           maybe_process_partial_specialization (yyval.ftype.t);
6547                           xref_basetypes (current_aggr, yyvsp[-1].ftype.t, yyval.ftype.t, yyvsp[0].ttype); 
6548                         }
6549                     }
6550                 ;
6551     break;}
6552 case 506:
6553 #line 2313 "parse.y"
6554 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0);
6555                   yyungetc ('{', 1); ;
6556     break;}
6557 case 507:
6558 #line 2323 "parse.y"
6559 {
6560                   yyval.ftype.t = yyvsp[0].ttype;
6561                   yyval.ftype.new_type_flag = 0;
6562                 ;
6563     break;}
6564 case 509:
6565 #line 2332 "parse.y"
6566 { yyval.ttype = NULL_TREE; ;
6567     break;}
6568 case 510:
6569 #line 2334 "parse.y"
6570 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6571     break;}
6572 case 511:
6573 #line 2336 "parse.y"
6574 { yyval.ttype = yyvsp[0].ttype; ;
6575     break;}
6576 case 513:
6577 #line 2342 "parse.y"
6578 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6579     break;}
6580 case 514:
6581 #line 2347 "parse.y"
6582 { yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype,
6583                                               current_aggr 
6584                                               == signature_type_node); ;
6585     break;}
6586 case 515:
6587 #line 2351 "parse.y"
6588 { yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 
6589                                               current_aggr 
6590                                               == signature_type_node); ;
6591     break;}
6592 case 516:
6593 #line 2358 "parse.y"
6594 { if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6595     break;}
6596 case 518:
6597 #line 2361 "parse.y"
6598 {
6599                   if (current_aggr == signature_type_node)
6600                     {
6601                       if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6602                         {
6603                           sorry ("`sigof' as base signature specifier");
6604                           yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6605                         }
6606                       else
6607                         {
6608                           error ("`sigof' applied to non-aggregate expression");
6609                           yyval.ttype = error_mark_node;
6610                         }
6611                     }
6612                   else
6613                     {
6614                       error ("`sigof' in struct or class declaration");
6615                       yyval.ttype = error_mark_node;
6616                     }
6617                 ;
6618     break;}
6619 case 519:
6620 #line 2382 "parse.y"
6621 {
6622                   if (current_aggr == signature_type_node)
6623                     {
6624                       if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6625                         {
6626                           sorry ("`sigof' as base signature specifier");
6627                           yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6628                         }
6629                       else
6630                         {
6631                           error ("`sigof' applied to non-aggregate expression");
6632                           yyval.ttype = error_mark_node;
6633                         }
6634                     }
6635                   else
6636                     {
6637                       error ("`sigof' in struct or class declaration");
6638                       yyval.ttype = error_mark_node;
6639                     }
6640                 ;
6641     break;}
6642 case 521:
6643 #line 2407 "parse.y"
6644 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6645                     cp_error ("`%D' access", yyvsp[-1].ttype);
6646                   yyval.ttype = access_default_virtual_node; ;
6647     break;}
6648 case 522:
6649 #line 2411 "parse.y"
6650 {
6651                   if (yyvsp[-2].ttype != access_default_virtual_node)
6652                     error ("multiple access specifiers");
6653                   else if (yyvsp[-1].ttype == access_public_node)
6654                     yyval.ttype = access_public_virtual_node;
6655                   else if (yyvsp[-1].ttype == access_protected_node)
6656                     yyval.ttype = access_protected_virtual_node;
6657                   else /* $2 == access_private_node */
6658                     yyval.ttype = access_private_virtual_node;
6659                 ;
6660     break;}
6661 case 523:
6662 #line 2422 "parse.y"
6663 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6664                     cp_error ("`%D' access", yyvsp[-1].ttype);
6665                   else if (yyval.ttype == access_public_node)
6666                     yyval.ttype = access_public_virtual_node;
6667                   else if (yyval.ttype == access_protected_node)
6668                     yyval.ttype = access_protected_virtual_node;
6669                   else if (yyval.ttype == access_private_node)
6670                     yyval.ttype = access_private_virtual_node;
6671                   else
6672                     error ("multiple `virtual' specifiers");
6673                 ;
6674     break;}
6675 case 528:
6676 #line 2443 "parse.y"
6677 {
6678                   if (current_aggr == signature_type_node)
6679                     {
6680                       error ("access specifier not allowed in signature");
6681                       yyvsp[-1].ttype = access_public_node;
6682                     }
6683
6684                   current_access_specifier = yyvsp[-1].ttype;
6685                 ;
6686     break;}
6687 case 529:
6688 #line 2458 "parse.y"
6689
6690                   finish_member_declaration (yyvsp[0].ttype);
6691                 ;
6692     break;}
6693 case 530:
6694 #line 2462 "parse.y"
6695
6696                   finish_member_declaration (yyvsp[0].ttype);
6697                 ;
6698     break;}
6699 case 532:
6700 #line 2470 "parse.y"
6701 { error ("missing ';' before right brace");
6702                   yyungetc ('}', 0); ;
6703     break;}
6704 case 533:
6705 #line 2475 "parse.y"
6706 { yyval.ttype = finish_method (yyval.ttype); ;
6707     break;}
6708 case 534:
6709 #line 2477 "parse.y"
6710 { yyval.ttype = finish_method (yyval.ttype); ;
6711     break;}
6712 case 535:
6713 #line 2479 "parse.y"
6714 { yyval.ttype = finish_method (yyval.ttype); ;
6715     break;}
6716 case 536:
6717 #line 2481 "parse.y"
6718 { yyval.ttype = finish_method (yyval.ttype); ;
6719     break;}
6720 case 537:
6721 #line 2483 "parse.y"
6722 { yyval.ttype = NULL_TREE; ;
6723     break;}
6724 case 538:
6725 #line 2485 "parse.y"
6726 { yyval.ttype = yyvsp[0].ttype;
6727                   pedantic = yyvsp[-1].itype; ;
6728     break;}
6729 case 539:
6730 #line 2488 "parse.y"
6731 {  
6732                   if (yyvsp[0].ttype)
6733                     yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
6734                   else
6735                     /* The component was already processed.  */
6736                     yyval.ttype = NULL_TREE;
6737
6738                   finish_template_decl (yyvsp[-1].ttype);
6739                 ;
6740     break;}
6741 case 540:
6742 #line 2498 "parse.y"
6743
6744                   yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); 
6745                   finish_template_decl (yyvsp[-2].ttype);
6746                 ;
6747     break;}
6748 case 541:
6749 #line 2509 "parse.y"
6750 {
6751                   /* Most of the productions for component_decl only
6752                      allow the creation of one new member, so we call
6753                      finish_member_declaration in component_decl_list.
6754                      For this rule and the next, however, there can be
6755                      more than one member, e.g.:
6756
6757                        int i, j;
6758
6759                      and we need the first member to be fully
6760                      registered before the second is processed.
6761                      Therefore, the rules for components take care of
6762                      this processing.  To avoid registering the
6763                      components more than once, we send NULL_TREE up
6764                      here; that lets finish_member_declaration know
6765                      that there is nothing to do.  */
6766                   if (!yyvsp[0].itype)
6767                     grok_x_components (yyvsp[-1].ftype.t);
6768                   yyval.ttype = NULL_TREE;
6769                 ;
6770     break;}
6771 case 542:
6772 #line 2530 "parse.y"
6773
6774                   if (!yyvsp[0].itype)
6775                     grok_x_components (yyvsp[-1].ttype);
6776                   yyval.ttype = NULL_TREE; 
6777                 ;
6778     break;}
6779 case 543:
6780 #line 2536 "parse.y"
6781 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6782                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6783     break;}
6784 case 544:
6785 #line 2539 "parse.y"
6786 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6787                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6788     break;}
6789 case 545:
6790 #line 2542 "parse.y"
6791 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6792     break;}
6793 case 546:
6794 #line 2544 "parse.y"
6795 { yyval.ttype = NULL_TREE; ;
6796     break;}
6797 case 547:
6798 #line 2555 "parse.y"
6799 { tree specs, attrs;
6800                   split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6801                   yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6802                                   build_tree_list (yyvsp[-1].ttype, attrs)); ;
6803     break;}
6804 case 548:
6805 #line 2560 "parse.y"
6806 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6807                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6808     break;}
6809 case 549:
6810 #line 2563 "parse.y"
6811 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6812     break;}
6813 case 550:
6814 #line 2569 "parse.y"
6815 { yyval.itype = 0; ;
6816     break;}
6817 case 551:
6818 #line 2571 "parse.y"
6819
6820                   if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6821                     yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6822                   finish_member_declaration (yyvsp[0].ttype); 
6823                   yyval.itype = 1;
6824                 ;
6825     break;}
6826 case 552:
6827 #line 2578 "parse.y"
6828
6829                   check_multiple_declarators ();
6830                   if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6831                     yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6832                   finish_member_declaration (yyvsp[0].ttype);
6833                   yyval.itype = 2;
6834                 ;
6835     break;}
6836 case 553:
6837 #line 2589 "parse.y"
6838 { yyval.itype = 0; ;
6839     break;}
6840 case 554:
6841 #line 2591 "parse.y"
6842
6843                   if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6844                     yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6845                   finish_member_declaration (yyvsp[0].ttype);
6846                   yyval.itype = 1;
6847                 ;
6848     break;}
6849 case 555:
6850 #line 2598 "parse.y"
6851
6852                   check_multiple_declarators ();
6853                   if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6854                     yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6855                   finish_member_declaration (yyvsp[0].ttype); 
6856                   yyval.itype = 2;
6857                 ;
6858     break;}
6859 case 560:
6860 #line 2619 "parse.y"
6861 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6862                                      &prefix_attributes);
6863                   yyvsp[-4].ttype = current_declspecs;
6864                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6865                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6866     break;}
6867 case 561:
6868 #line 2625 "parse.y"
6869 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6870                                      &prefix_attributes);
6871                   yyvsp[-4].ttype = current_declspecs;
6872                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6873                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6874     break;}
6875 case 562:
6876 #line 2634 "parse.y"
6877 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6878                                      &prefix_attributes);
6879                   yyvsp[-4].ttype = current_declspecs;
6880                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6881                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6882     break;}
6883 case 563:
6884 #line 2640 "parse.y"
6885 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6886                                      &prefix_attributes);
6887                   yyvsp[-4].ttype = current_declspecs;
6888                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6889                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6890     break;}
6891 case 564:
6892 #line 2646 "parse.y"
6893 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6894                                      &prefix_attributes);
6895                   yyvsp[-4].ttype = current_declspecs;
6896                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6897                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6898     break;}
6899 case 565:
6900 #line 2652 "parse.y"
6901 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6902                                      &prefix_attributes);
6903                   yyvsp[-3].ttype = current_declspecs;
6904                   yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6905                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6906     break;}
6907 case 566:
6908 #line 2661 "parse.y"
6909 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6910                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6911     break;}
6912 case 567:
6913 #line 2664 "parse.y"
6914 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6915                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6916     break;}
6917 case 568:
6918 #line 2670 "parse.y"
6919 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6920                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6921     break;}
6922 case 569:
6923 #line 2673 "parse.y"
6924 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6925                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6926     break;}
6927 case 570:
6928 #line 2676 "parse.y"
6929 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6930                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6931     break;}
6932 case 572:
6933 #line 2687 "parse.y"
6934 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6935     break;}
6936 case 573:
6937 #line 2692 "parse.y"
6938 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE, current_enum_type); ;
6939     break;}
6940 case 574:
6941 #line 2694 "parse.y"
6942 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype, current_enum_type); ;
6943     break;}
6944 case 575:
6945 #line 2700 "parse.y"
6946 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
6947                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6948     break;}
6949 case 576:
6950 #line 2703 "parse.y"
6951 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
6952                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6953     break;}
6954 case 577:
6955 #line 2710 "parse.y"
6956 {
6957                   if (pedantic)
6958                     pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6959                   yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6960                   yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6961                   yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6962                 ;
6963     break;}
6964 case 578:
6965 #line 2721 "parse.y"
6966 { yyval.ttype = NULL_TREE; ;
6967     break;}
6968 case 579:
6969 #line 2723 "parse.y"
6970 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6971     break;}
6972 case 580:
6973 #line 2728 "parse.y"
6974 { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
6975                   yyval.ftype.new_type_flag = 0; ;
6976     break;}
6977 case 581:
6978 #line 2731 "parse.y"
6979 { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
6980                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6981     break;}
6982 case 582:
6983 #line 2740 "parse.y"
6984 { yyval.itype = suspend_momentary (); ;
6985     break;}
6986 case 583:
6987 #line 2745 "parse.y"
6988 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6989     break;}
6990 case 584:
6991 #line 2751 "parse.y"
6992 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6993     break;}
6994 case 585:
6995 #line 2753 "parse.y"
6996 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6997     break;}
6998 case 586:
6999 #line 2755 "parse.y"
7000 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
7001     break;}
7002 case 587:
7003 #line 2757 "parse.y"
7004 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
7005     break;}
7006 case 589:
7007 #line 2765 "parse.y"
7008 {
7009                   /* Provide support for '(' attributes '*' declarator ')'
7010                      etc */
7011                   yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7012                 ;
7013     break;}
7014 case 590:
7015 #line 2775 "parse.y"
7016 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7017     break;}
7018 case 591:
7019 #line 2777 "parse.y"
7020 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7021     break;}
7022 case 592:
7023 #line 2779 "parse.y"
7024 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7025     break;}
7026 case 593:
7027 #line 2781 "parse.y"
7028 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7029     break;}
7030 case 594:
7031 #line 2783 "parse.y"
7032 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7033                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7034                 ;
7035     break;}
7036 case 596:
7037 #line 2791 "parse.y"
7038 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7039     break;}
7040 case 597:
7041 #line 2793 "parse.y"
7042 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7043     break;}
7044 case 598:
7045 #line 2795 "parse.y"
7046 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7047     break;}
7048 case 599:
7049 #line 2797 "parse.y"
7050 { yyval.ttype = yyvsp[-1].ttype; ;
7051     break;}
7052 case 600:
7053 #line 2799 "parse.y"
7054 { push_nested_class (yyvsp[-1].ttype, 3);
7055                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
7056                   TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
7057     break;}
7058 case 602:
7059 #line 2807 "parse.y"
7060 {
7061                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7062                     {
7063                       yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
7064                       maybe_note_name_used_in_class (yyvsp[0].ttype, yyval.ttype);
7065                     }
7066                   else
7067                     yyval.ttype = yyvsp[0].ttype;
7068                 ;
7069     break;}
7070 case 603:
7071 #line 2817 "parse.y"
7072 {
7073                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7074                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7075                   else
7076                     yyval.ttype = yyvsp[0].ttype;
7077                   got_scope = NULL_TREE;
7078                 ;
7079     break;}
7080 case 606:
7081 #line 2830 "parse.y"
7082 { yyval.ttype = yyvsp[0].ttype; ;
7083     break;}
7084 case 607:
7085 #line 2835 "parse.y"
7086 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
7087     break;}
7088 case 609:
7089 #line 2844 "parse.y"
7090 {
7091                   /* Provide support for '(' attributes '*' declarator ')'
7092                      etc */
7093                   yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7094                 ;
7095     break;}
7096 case 610:
7097 #line 2853 "parse.y"
7098 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7099     break;}
7100 case 611:
7101 #line 2855 "parse.y"
7102 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7103     break;}
7104 case 612:
7105 #line 2857 "parse.y"
7106 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7107     break;}
7108 case 613:
7109 #line 2859 "parse.y"
7110 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7111     break;}
7112 case 614:
7113 #line 2861 "parse.y"
7114 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7115                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7116                 ;
7117     break;}
7118 case 616:
7119 #line 2869 "parse.y"
7120 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7121     break;}
7122 case 617:
7123 #line 2871 "parse.y"
7124 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7125     break;}
7126 case 618:
7127 #line 2873 "parse.y"
7128 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7129     break;}
7130 case 619:
7131 #line 2875 "parse.y"
7132 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7133     break;}
7134 case 620:
7135 #line 2877 "parse.y"
7136 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7137                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7138                 ;
7139     break;}
7140 case 622:
7141 #line 2885 "parse.y"
7142 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7143     break;}
7144 case 623:
7145 #line 2887 "parse.y"
7146 { yyval.ttype = yyvsp[-1].ttype; ;
7147     break;}
7148 case 624:
7149 #line 2889 "parse.y"
7150 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7151     break;}
7152 case 625:
7153 #line 2891 "parse.y"
7154 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7155     break;}
7156 case 626:
7157 #line 2893 "parse.y"
7158 { enter_scope_of (yyvsp[0].ttype); ;
7159     break;}
7160 case 627:
7161 #line 2895 "parse.y"
7162 { got_scope = NULL_TREE;
7163                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7164                   enter_scope_of (yyval.ttype);
7165                 ;
7166     break;}
7167 case 628:
7168 #line 2903 "parse.y"
7169 { got_scope = NULL_TREE;
7170                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7171     break;}
7172 case 629:
7173 #line 2906 "parse.y"
7174 { got_scope = NULL_TREE;
7175                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7176     break;}
7177 case 630:
7178 #line 2912 "parse.y"
7179 { got_scope = NULL_TREE;
7180                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7181     break;}
7182 case 631:
7183 #line 2915 "parse.y"
7184 { got_scope = NULL_TREE;
7185                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7186     break;}
7187 case 633:
7188 #line 2922 "parse.y"
7189 { yyval.ttype = yyvsp[0].ttype; ;
7190     break;}
7191 case 634:
7192 #line 2927 "parse.y"
7193 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7194     break;}
7195 case 635:
7196 #line 2929 "parse.y"
7197 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7198     break;}
7199 case 636:
7200 #line 2931 "parse.y"
7201 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7202     break;}
7203 case 641:
7204 #line 2942 "parse.y"
7205 { yyval.ttype = yyvsp[0].ttype; ;
7206     break;}
7207 case 642:
7208 #line 2944 "parse.y"
7209 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7210     break;}
7211 case 643:
7212 #line 2951 "parse.y"
7213 {
7214                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7215                     {
7216                       yyval.ttype = lastiddecl;
7217                       maybe_note_name_used_in_class (yyvsp[-1].ttype, yyval.ttype);
7218                     }
7219                   got_scope = yyval.ttype =
7220                     complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype)));
7221                 ;
7222     break;}
7223 case 644:
7224 #line 2961 "parse.y"
7225 {
7226                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7227                     yyval.ttype = lastiddecl;
7228                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7229                 ;
7230     break;}
7231 case 645:
7232 #line 2967 "parse.y"
7233 {
7234                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7235                     yyval.ttype = lastiddecl;
7236                   got_scope = yyval.ttype;
7237                 ;
7238     break;}
7239 case 646:
7240 #line 2973 "parse.y"
7241 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7242     break;}
7243 case 648:
7244 #line 2989 "parse.y"
7245 { yyval.ttype = yyvsp[0].ttype; ;
7246     break;}
7247 case 649:
7248 #line 2994 "parse.y"
7249 {
7250                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7251                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7252                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7253                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7254                   else
7255                     {
7256                       yyval.ttype = yyvsp[0].ttype;
7257                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7258                         yyval.ttype = TREE_TYPE (yyval.ttype);
7259                     }
7260                 ;
7261     break;}
7262 case 650:
7263 #line 3007 "parse.y"
7264 { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
7265     break;}
7266 case 651:
7267 #line 3009 "parse.y"
7268 { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7269     break;}
7270 case 652:
7271 #line 3011 "parse.y"
7272 { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
7273     break;}
7274 case 653:
7275 #line 3016 "parse.y"
7276 {
7277                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7278                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7279                 ;
7280     break;}
7281 case 654:
7282 #line 3021 "parse.y"
7283 {
7284                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7285                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7286                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7287                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7288                   else
7289                     {
7290                       yyval.ttype = yyvsp[0].ttype;
7291                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7292                         yyval.ttype = TREE_TYPE (yyval.ttype);
7293                     }
7294                 ;
7295     break;}
7296 case 655:
7297 #line 3034 "parse.y"
7298 { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
7299     break;}
7300 case 656:
7301 #line 3036 "parse.y"
7302 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7303     break;}
7304 case 657:
7305 #line 3041 "parse.y"
7306 {
7307                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7308                     yyvsp[-1].ttype = lastiddecl;
7309
7310                   /* Retrieve the type for the identifier, which might involve
7311                      some computation. */
7312                   got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));
7313
7314                   if (yyval.ttype == error_mark_node)
7315                     cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
7316                 ;
7317     break;}
7318 case 658:
7319 #line 3053 "parse.y"
7320 {
7321                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7322                     yyval.ttype = lastiddecl;
7323                   got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7324                 ;
7325     break;}
7326 case 659:
7327 #line 3059 "parse.y"
7328 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7329     break;}
7330 case 662:
7331 #line 3063 "parse.y"
7332 {
7333                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7334                     yyval.ttype = lastiddecl;
7335                   got_scope = yyval.ttype;
7336                 ;
7337     break;}
7338 case 663:
7339 #line 3072 "parse.y"
7340 { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7341     break;}
7342 case 664:
7343 #line 3077 "parse.y"
7344 {
7345                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7346                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7347                   else
7348                     yyval.ttype = yyvsp[0].ttype;
7349                   got_scope = NULL_TREE;
7350                 ;
7351     break;}
7352 case 666:
7353 #line 3086 "parse.y"
7354 { yyval.ttype = yyvsp[0].ttype; ;
7355     break;}
7356 case 667:
7357 #line 3091 "parse.y"
7358 { got_scope = NULL_TREE; ;
7359     break;}
7360 case 668:
7361 #line 3093 "parse.y"
7362 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7363     break;}
7364 case 669:
7365 #line 3100 "parse.y"
7366 { got_scope = void_type_node; ;
7367     break;}
7368 case 670:
7369 #line 3106 "parse.y"
7370 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7371     break;}
7372 case 671:
7373 #line 3108 "parse.y"
7374 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7375     break;}
7376 case 672:
7377 #line 3110 "parse.y"
7378 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7379     break;}
7380 case 673:
7381 #line 3112 "parse.y"
7382 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7383     break;}
7384 case 674:
7385 #line 3114 "parse.y"
7386 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7387                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7388                 ;
7389     break;}
7390 case 675:
7391 #line 3118 "parse.y"
7392 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7393                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7394                 ;
7395     break;}
7396 case 677:
7397 #line 3127 "parse.y"
7398 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7399     break;}
7400 case 678:
7401 #line 3129 "parse.y"
7402 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7403     break;}
7404 case 680:
7405 #line 3135 "parse.y"
7406 {
7407                   /* Provide support for '(' attributes '*' declarator ')'
7408                      etc */
7409                   yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7410                 ;
7411     break;}
7412 case 681:
7413 #line 3145 "parse.y"
7414 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7415     break;}
7416 case 682:
7417 #line 3147 "parse.y"
7418 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7419     break;}
7420 case 683:
7421 #line 3149 "parse.y"
7422 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7423     break;}
7424 case 684:
7425 #line 3151 "parse.y"
7426 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7427     break;}
7428 case 685:
7429 #line 3153 "parse.y"
7430 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7431     break;}
7432 case 686:
7433 #line 3155 "parse.y"
7434 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7435     break;}
7436 case 687:
7437 #line 3157 "parse.y"
7438 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7439     break;}
7440 case 688:
7441 #line 3159 "parse.y"
7442 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7443     break;}
7444 case 689:
7445 #line 3161 "parse.y"
7446 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7447                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7448                 ;
7449     break;}
7450 case 690:
7451 #line 3165 "parse.y"
7452 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7453                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7454                 ;
7455     break;}
7456 case 692:
7457 #line 3174 "parse.y"
7458 { yyval.ttype = yyvsp[-1].ttype; ;
7459     break;}
7460 case 694:
7461 #line 3178 "parse.y"
7462 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7463     break;}
7464 case 695:
7465 #line 3180 "parse.y"
7466 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7467     break;}
7468 case 696:
7469 #line 3182 "parse.y"
7470 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7471     break;}
7472 case 697:
7473 #line 3184 "parse.y"
7474 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7475     break;}
7476 case 698:
7477 #line 3186 "parse.y"
7478 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7479     break;}
7480 case 699:
7481 #line 3188 "parse.y"
7482 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7483     break;}
7484 case 700:
7485 #line 3190 "parse.y"
7486 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7487     break;}
7488 case 701:
7489 #line 3192 "parse.y"
7490 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7491     break;}
7492 case 702:
7493 #line 3194 "parse.y"
7494 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7495     break;}
7496 case 709:
7497 #line 3217 "parse.y"
7498 { if (pedantic)
7499                     pedwarn ("ANSI C++ forbids label declarations"); ;
7500     break;}
7501 case 712:
7502 #line 3228 "parse.y"
7503 { tree link;
7504                   for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7505                     {
7506                       tree label = shadow_label (TREE_VALUE (link));
7507                       C_DECLARED_LABEL_FLAG (label) = 1;
7508                       declare_nonlocal_label (label);
7509                     }
7510                 ;
7511     break;}
7512 case 713:
7513 #line 3242 "parse.y"
7514 {;
7515     break;}
7516 case 715:
7517 #line 3248 "parse.y"
7518 { yyval.ttype = begin_compound_stmt (0); ;
7519     break;}
7520 case 716:
7521 #line 3250 "parse.y"
7522 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7523     break;}
7524 case 717:
7525 #line 3255 "parse.y"
7526 {
7527                   yyval.ttype = begin_if_stmt ();
7528                   cond_stmt_keyword = "if";
7529                 ;
7530     break;}
7531 case 718:
7532 #line 3260 "parse.y"
7533 { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7534     break;}
7535 case 719:
7536 #line 3262 "parse.y"
7537 { yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
7538     break;}
7539 case 721:
7540 #line 3267 "parse.y"
7541 { yyval.ttype = begin_compound_stmt (0); ;
7542     break;}
7543 case 722:
7544 #line 3269 "parse.y"
7545 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7546     break;}
7547 case 723:
7548 #line 3274 "parse.y"
7549 {;
7550     break;}
7551 case 725:
7552 #line 3280 "parse.y"
7553 { finish_stmt (); ;
7554     break;}
7555 case 726:
7556 #line 3282 "parse.y"
7557 { finish_expr_stmt (yyvsp[-1].ttype); ;
7558     break;}
7559 case 727:
7560 #line 3284 "parse.y"
7561 { begin_else_clause (); ;
7562     break;}
7563 case 728:
7564 #line 3286 "parse.y"
7565
7566                   finish_else_clause (yyvsp[-3].ttype); 
7567                   finish_if_stmt ();
7568                 ;
7569     break;}
7570 case 729:
7571 #line 3291 "parse.y"
7572 { finish_if_stmt (); ;
7573     break;}
7574 case 730:
7575 #line 3293 "parse.y"
7576 {
7577                   yyval.ttype = begin_while_stmt ();
7578                   cond_stmt_keyword = "while";
7579                 ;
7580     break;}
7581 case 731:
7582 #line 3298 "parse.y"
7583 { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7584     break;}
7585 case 732:
7586 #line 3300 "parse.y"
7587 { finish_while_stmt (yyvsp[-3].ttype); ;
7588     break;}
7589 case 733:
7590 #line 3302 "parse.y"
7591 { yyval.ttype = begin_do_stmt (); ;
7592     break;}
7593 case 734:
7594 #line 3304 "parse.y"
7595 {
7596                   finish_do_body (yyvsp[-2].ttype);
7597                   cond_stmt_keyword = "do";
7598                 ;
7599     break;}
7600 case 735:
7601 #line 3309 "parse.y"
7602 { finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7603     break;}
7604 case 736:
7605 #line 3311 "parse.y"
7606 { yyval.ttype = begin_for_stmt (); ;
7607     break;}
7608 case 737:
7609 #line 3313 "parse.y"
7610 { finish_for_init_stmt (yyvsp[-2].ttype); ;
7611     break;}
7612 case 738:
7613 #line 3315 "parse.y"
7614 { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7615     break;}
7616 case 739:
7617 #line 3317 "parse.y"
7618 { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
7619     break;}
7620 case 740:
7621 #line 3319 "parse.y"
7622 { finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
7623     break;}
7624 case 741:
7625 #line 3321 "parse.y"
7626 { begin_switch_stmt (); ;
7627     break;}
7628 case 742:
7629 #line 3323 "parse.y"
7630 { yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
7631     break;}
7632 case 743:
7633 #line 3325 "parse.y"
7634 { finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7635     break;}
7636 case 744:
7637 #line 3327 "parse.y"
7638 { finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
7639     break;}
7640 case 746:
7641 #line 3330 "parse.y"
7642 { finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7643     break;}
7644 case 748:
7645 #line 3333 "parse.y"
7646 { finish_case_label (NULL_TREE, NULL_TREE); ;
7647     break;}
7648 case 750:
7649 #line 3336 "parse.y"
7650 { finish_break_stmt (); ;
7651     break;}
7652 case 751:
7653 #line 3338 "parse.y"
7654 { finish_continue_stmt (); ;
7655     break;}
7656 case 752:
7657 #line 3340 "parse.y"
7658 { finish_return_stmt (NULL_TREE); ;
7659     break;}
7660 case 753:
7661 #line 3342 "parse.y"
7662 { finish_return_stmt (yyvsp[-1].ttype); ;
7663     break;}
7664 case 754:
7665 #line 3344 "parse.y"
7666
7667                   finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7668                                    NULL_TREE); 
7669                 ;
7670     break;}
7671 case 755:
7672 #line 3350 "parse.y"
7673
7674                   finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7675                                    NULL_TREE); 
7676                 ;
7677     break;}
7678 case 756:
7679 #line 3356 "parse.y"
7680 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
7681     break;}
7682 case 757:
7683 #line 3360 "parse.y"
7684 { finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
7685     break;}
7686 case 758:
7687 #line 3362 "parse.y"
7688
7689                   if (pedantic)
7690                     pedwarn ("ANSI C++ forbids computed gotos");
7691                   finish_goto_stmt (yyvsp[-1].ttype);
7692                 ;
7693     break;}
7694 case 759:
7695 #line 3368 "parse.y"
7696 { finish_goto_stmt (yyvsp[-1].ttype); ;
7697     break;}
7698 case 760:
7699 #line 3370 "parse.y"
7700 { finish_stmt (); ;
7701     break;}
7702 case 761:
7703 #line 3372 "parse.y"
7704 { error ("label must be followed by statement");
7705                   yyungetc ('}', 0);
7706                   finish_stmt (); ;
7707     break;}
7708 case 762:
7709 #line 3376 "parse.y"
7710 { finish_stmt (); ;
7711     break;}
7712 case 765:
7713 #line 3380 "parse.y"
7714 { do_local_using_decl (yyvsp[0].ttype); ;
7715     break;}
7716 case 767:
7717 #line 3386 "parse.y"
7718 {
7719                   if (! current_function_parms_stored)
7720                     store_parm_decls ();
7721                   expand_start_early_try_stmts ();
7722                 ;
7723     break;}
7724 case 768:
7725 #line 3392 "parse.y"
7726
7727                   expand_start_all_catch (); 
7728                 ;
7729     break;}
7730 case 769:
7731 #line 3396 "parse.y"
7732 {
7733                   expand_end_all_catch ();
7734                   yyval.itype = yyvsp[-3].itype;
7735                 ;
7736     break;}
7737 case 770:
7738 #line 3404 "parse.y"
7739 { yyval.ttype = begin_try_block (); ;
7740     break;}
7741 case 771:
7742 #line 3406 "parse.y"
7743 { finish_try_block (yyvsp[-1].ttype); ;
7744     break;}
7745 case 772:
7746 #line 3408 "parse.y"
7747 { finish_handler_sequence (yyvsp[-3].ttype); ;
7748     break;}
7749 case 775:
7750 #line 3418 "parse.y"
7751 { yyval.ttype = begin_handler(); ;
7752     break;}
7753 case 776:
7754 #line 3420 "parse.y"
7755 { finish_handler_parms (yyvsp[-1].ttype); ;
7756     break;}
7757 case 777:
7758 #line 3422 "parse.y"
7759 { finish_handler (yyvsp[-3].ttype); ;
7760     break;}
7761 case 780:
7762 #line 3432 "parse.y"
7763 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7764     break;}
7765 case 781:
7766 #line 3448 "parse.y"
7767 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7768                   expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7769                                             TREE_VALUE (yyvsp[-1].ftype.t)); ;
7770     break;}
7771 case 782:
7772 #line 3455 "parse.y"
7773 { tree label;
7774                 do_label:
7775                   label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7776                   if (label && ! minimal_parse_mode)
7777                     expand_label (label);
7778                 ;
7779     break;}
7780 case 783:
7781 #line 3462 "parse.y"
7782 { goto do_label; ;
7783     break;}
7784 case 784:
7785 #line 3464 "parse.y"
7786 { goto do_label; ;
7787     break;}
7788 case 785:
7789 #line 3466 "parse.y"
7790 { goto do_label; ;
7791     break;}
7792 case 786:
7793 #line 3471 "parse.y"
7794 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
7795     break;}
7796 case 788:
7797 #line 3474 "parse.y"
7798 { if (pedantic)
7799                     pedwarn ("ANSI C++ forbids compound statements inside for initializations");
7800                 ;
7801     break;}
7802 case 789:
7803 #line 3483 "parse.y"
7804 { emit_line_note (input_filename, lineno);
7805                   yyval.ttype = NULL_TREE; ;
7806     break;}
7807 case 790:
7808 #line 3486 "parse.y"
7809 { emit_line_note (input_filename, lineno); ;
7810     break;}
7811 case 791:
7812 #line 3491 "parse.y"
7813 { yyval.ttype = NULL_TREE; ;
7814     break;}
7815 case 793:
7816 #line 3494 "parse.y"
7817 { yyval.ttype = NULL_TREE; ;
7818     break;}
7819 case 794:
7820 #line 3501 "parse.y"
7821 { yyval.ttype = NULL_TREE; ;
7822     break;}
7823 case 797:
7824 #line 3508 "parse.y"
7825 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
7826     break;}
7827 case 798:
7828 #line 3513 "parse.y"
7829 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
7830     break;}
7831 case 799:
7832 #line 3518 "parse.y"
7833 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
7834     break;}
7835 case 800:
7836 #line 3520 "parse.y"
7837 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
7838     break;}
7839 case 801:
7840 #line 3531 "parse.y"
7841 {
7842                   yyval.ttype = empty_parms();
7843                 ;
7844     break;}
7845 case 803:
7846 #line 3536 "parse.y"
7847 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
7848                   check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
7849     break;}
7850 case 804:
7851 #line 3544 "parse.y"
7852 { yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
7853     break;}
7854 case 805:
7855 #line 3546 "parse.y"
7856 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7857     break;}
7858 case 806:
7859 #line 3549 "parse.y"
7860 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7861     break;}
7862 case 807:
7863 #line 3551 "parse.y"
7864 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7865                                                          yyvsp[-1].ftype.t), 1); ;
7866     break;}
7867 case 808:
7868 #line 3554 "parse.y"
7869 { yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
7870     break;}
7871 case 809:
7872 #line 3556 "parse.y"
7873 {
7874                   /* This helps us recover from really nasty
7875                      parse errors, for example, a missing right
7876                      parenthesis.  */
7877                   yyerror ("possibly missing ')'");
7878                   yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
7879                   yyungetc (':', 0);
7880                   yychar = ')';
7881                 ;
7882     break;}
7883 case 810:
7884 #line 3566 "parse.y"
7885 {
7886                   /* This helps us recover from really nasty
7887                      parse errors, for example, a missing right
7888                      parenthesis.  */
7889                   yyerror ("possibly missing ')'");
7890                   yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7891                                                          yyvsp[-1].ftype.t), 0); 
7892                   yyungetc (':', 0);
7893                   yychar = ')';
7894                 ;
7895     break;}
7896 case 811:
7897 #line 3581 "parse.y"
7898 { maybe_snarf_defarg (); ;
7899     break;}
7900 case 812:
7901 #line 3583 "parse.y"
7902 { yyval.ttype = yyvsp[0].ttype; ;
7903     break;}
7904 case 815:
7905 #line 3594 "parse.y"
7906 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7907                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
7908     break;}
7909 case 816:
7910 #line 3597 "parse.y"
7911 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7912                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
7913     break;}
7914 case 817:
7915 #line 3600 "parse.y"
7916 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7917                   yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
7918     break;}
7919 case 818:
7920 #line 3603 "parse.y"
7921 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
7922     break;}
7923 case 819:
7924 #line 3605 "parse.y"
7925 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
7926     break;}
7927 case 821:
7928 #line 3611 "parse.y"
7929 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7930                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
7931     break;}
7932 case 822:
7933 #line 3621 "parse.y"
7934 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7935                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
7936                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
7937     break;}
7938 case 823:
7939 #line 3625 "parse.y"
7940 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
7941                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7942     break;}
7943 case 824:
7944 #line 3628 "parse.y"
7945 { yyval.ftype.t = build_tree_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
7946                                           yyvsp[0].ttype); 
7947                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7948     break;}
7949 case 825:
7950 #line 3632 "parse.y"
7951 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7952                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
7953                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7954     break;}
7955 case 826:
7956 #line 3636 "parse.y"
7957 { tree specs = strip_attrs (yyvsp[0].ftype.t);
7958                   yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
7959                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7960     break;}
7961 case 827:
7962 #line 3640 "parse.y"
7963 { tree specs = strip_attrs (yyvsp[-1].ttype);
7964                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
7965                   yyval.ftype.new_type_flag = 0; ;
7966     break;}
7967 case 828:
7968 #line 3647 "parse.y"
7969 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
7970                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
7971     break;}
7972 case 829:
7973 #line 3650 "parse.y"
7974 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
7975                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
7976     break;}
7977 case 832:
7978 #line 3661 "parse.y"
7979 { see_typename (); ;
7980     break;}
7981 case 833:
7982 #line 3666 "parse.y"
7983 {
7984                   error ("type specifier omitted for parameter");
7985                   yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
7986                 ;
7987     break;}
7988 case 834:
7989 #line 3671 "parse.y"
7990 {
7991                   error ("type specifier omitted for parameter");
7992                   if (TREE_CODE (yyval.ttype) == SCOPE_REF
7993                       && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
7994                           || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
7995                     cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
7996                   yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
7997                 ;
7998     break;}
7999 case 835:
8000 #line 3683 "parse.y"
8001 { yyval.ttype = NULL_TREE; ;
8002     break;}
8003 case 836:
8004 #line 3685 "parse.y"
8005 { yyval.ttype = yyvsp[-1].ttype; ;
8006     break;}
8007 case 837:
8008 #line 3687 "parse.y"
8009 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
8010     break;}
8011 case 838:
8012 #line 3692 "parse.y"
8013 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
8014     break;}
8015 case 840:
8016 #line 3698 "parse.y"
8017 {
8018                   TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
8019                   yyval.ttype = yyvsp[0].ttype;
8020                 ;
8021     break;}
8022 case 841:
8023 #line 3706 "parse.y"
8024 { yyval.ttype = NULL_TREE; ;
8025     break;}
8026 case 842:
8027 #line 3708 "parse.y"
8028 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8029     break;}
8030 case 843:
8031 #line 3710 "parse.y"
8032 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8033     break;}
8034 case 844:
8035 #line 3712 "parse.y"
8036 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8037                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8038                 ;
8039     break;}
8040 case 845:
8041 #line 3719 "parse.y"
8042 { got_scope = NULL_TREE; ;
8043     break;}
8044 case 846:
8045 #line 3724 "parse.y"
8046 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8047     break;}
8048 case 847:
8049 #line 3726 "parse.y"
8050 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8051     break;}
8052 case 848:
8053 #line 3728 "parse.y"
8054 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8055     break;}
8056 case 849:
8057 #line 3730 "parse.y"
8058 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8059     break;}
8060 case 850:
8061 #line 3732 "parse.y"
8062 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8063     break;}
8064 case 851:
8065 #line 3734 "parse.y"
8066 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8067     break;}
8068 case 852:
8069 #line 3736 "parse.y"
8070 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8071     break;}
8072 case 853:
8073 #line 3738 "parse.y"
8074 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8075     break;}
8076 case 854:
8077 #line 3740 "parse.y"
8078 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8079     break;}
8080 case 855:
8081 #line 3742 "parse.y"
8082 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8083     break;}
8084 case 856:
8085 #line 3744 "parse.y"
8086 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8087     break;}
8088 case 857:
8089 #line 3746 "parse.y"
8090 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8091     break;}
8092 case 858:
8093 #line 3748 "parse.y"
8094 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8095     break;}
8096 case 859:
8097 #line 3750 "parse.y"
8098 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8099     break;}
8100 case 860:
8101 #line 3752 "parse.y"
8102 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8103     break;}
8104 case 861:
8105 #line 3754 "parse.y"
8106 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8107     break;}
8108 case 862:
8109 #line 3756 "parse.y"
8110 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8111     break;}
8112 case 863:
8113 #line 3758 "parse.y"
8114 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8115     break;}
8116 case 864:
8117 #line 3760 "parse.y"
8118 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8119     break;}
8120 case 865:
8121 #line 3762 "parse.y"
8122 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8123     break;}
8124 case 866:
8125 #line 3764 "parse.y"
8126 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8127     break;}
8128 case 867:
8129 #line 3766 "parse.y"
8130 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8131     break;}
8132 case 868:
8133 #line 3768 "parse.y"
8134 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8135     break;}
8136 case 869:
8137 #line 3770 "parse.y"
8138 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8139     break;}
8140 case 870:
8141 #line 3772 "parse.y"
8142 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8143     break;}
8144 case 871:
8145 #line 3774 "parse.y"
8146 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8147     break;}
8148 case 872:
8149 #line 3776 "parse.y"
8150 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8151     break;}
8152 case 873:
8153 #line 3778 "parse.y"
8154 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8155     break;}
8156 case 874:
8157 #line 3780 "parse.y"
8158 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8159     break;}
8160 case 875:
8161 #line 3782 "parse.y"
8162 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8163     break;}
8164 case 876:
8165 #line 3784 "parse.y"
8166 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8167     break;}
8168 case 877:
8169 #line 3786 "parse.y"
8170 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8171     break;}
8172 case 878:
8173 #line 3788 "parse.y"
8174 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8175     break;}
8176 case 879:
8177 #line 3791 "parse.y"
8178 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8179     break;}
8180 case 880:
8181 #line 3793 "parse.y"
8182 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8183     break;}
8184 }
8185    /* the action file gets copied in in place of this dollarsign */
8186 #line 498 "/usr/lib/bison.simple"
8187 \f
8188   yyvsp -= yylen;
8189   yyssp -= yylen;
8190 #ifdef YYLSP_NEEDED
8191   yylsp -= yylen;
8192 #endif
8193
8194 #if YYDEBUG != 0
8195   if (yydebug)
8196     {
8197       short *ssp1 = yyss - 1;
8198       fprintf (stderr, "state stack now");
8199       while (ssp1 != yyssp)
8200         fprintf (stderr, " %d", *++ssp1);
8201       fprintf (stderr, "\n");
8202     }
8203 #endif
8204
8205   *++yyvsp = yyval;
8206
8207 #ifdef YYLSP_NEEDED
8208   yylsp++;
8209   if (yylen == 0)
8210     {
8211       yylsp->first_line = yylloc.first_line;
8212       yylsp->first_column = yylloc.first_column;
8213       yylsp->last_line = (yylsp-1)->last_line;
8214       yylsp->last_column = (yylsp-1)->last_column;
8215       yylsp->text = 0;
8216     }
8217   else
8218     {
8219       yylsp->last_line = (yylsp+yylen-1)->last_line;
8220       yylsp->last_column = (yylsp+yylen-1)->last_column;
8221     }
8222 #endif
8223
8224   /* Now "shift" the result of the reduction.
8225      Determine what state that goes to,
8226      based on the state we popped back to
8227      and the rule number reduced by.  */
8228
8229   yyn = yyr1[yyn];
8230
8231   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8232   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8233     yystate = yytable[yystate];
8234   else
8235     yystate = yydefgoto[yyn - YYNTBASE];
8236
8237   goto yynewstate;
8238
8239 yyerrlab:   /* here on detecting error */
8240
8241   if (! yyerrstatus)
8242     /* If not already recovering from an error, report this error.  */
8243     {
8244       ++yynerrs;
8245
8246 #ifdef YYERROR_VERBOSE
8247       yyn = yypact[yystate];
8248
8249       if (yyn > YYFLAG && yyn < YYLAST)
8250         {
8251           int size = 0;
8252           char *msg;
8253           int x, count;
8254
8255           count = 0;
8256           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
8257           for (x = (yyn < 0 ? -yyn : 0);
8258                x < (sizeof(yytname) / sizeof(char *)); x++)
8259             if (yycheck[x + yyn] == x)
8260               size += strlen(yytname[x]) + 15, count++;
8261           msg = (char *) malloc(size + 15);
8262           if (msg != 0)
8263             {
8264               strcpy(msg, "parse error");
8265
8266               if (count < 5)
8267                 {
8268                   count = 0;
8269                   for (x = (yyn < 0 ? -yyn : 0);
8270                        x < (sizeof(yytname) / sizeof(char *)); x++)
8271                     if (yycheck[x + yyn] == x)
8272                       {
8273                         strcat(msg, count == 0 ? ", expecting `" : " or `");
8274                         strcat(msg, yytname[x]);
8275                         strcat(msg, "'");
8276                         count++;
8277                       }
8278                 }
8279               yyerror(msg);
8280               free(msg);
8281             }
8282           else
8283             yyerror ("parse error; also virtual memory exceeded");
8284         }
8285       else
8286 #endif /* YYERROR_VERBOSE */
8287         yyerror("parse error");
8288     }
8289
8290   goto yyerrlab1;
8291 yyerrlab1:   /* here on error raised explicitly by an action */
8292
8293   if (yyerrstatus == 3)
8294     {
8295       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
8296
8297       /* return failure if at end of input */
8298       if (yychar == YYEOF)
8299         YYABORT;
8300
8301 #if YYDEBUG != 0
8302       if (yydebug)
8303         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8304 #endif
8305
8306       yychar = YYEMPTY;
8307     }
8308
8309   /* Else will try to reuse lookahead token
8310      after shifting the error token.  */
8311
8312   yyerrstatus = 3;              /* Each real token shifted decrements this */
8313
8314   goto yyerrhandle;
8315
8316 yyerrdefault:  /* current state does not do anything special for the error token. */
8317
8318 #if 0
8319   /* This is wrong; only states that explicitly want error tokens
8320      should shift them.  */
8321   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
8322   if (yyn) goto yydefault;
8323 #endif
8324
8325 yyerrpop:   /* pop the current state because it cannot handle the error token */
8326
8327   if (yyssp == yyss) YYABORT;
8328   yyvsp--;
8329   yystate = *--yyssp;
8330 #ifdef YYLSP_NEEDED
8331   yylsp--;
8332 #endif
8333
8334 #if YYDEBUG != 0
8335   if (yydebug)
8336     {
8337       short *ssp1 = yyss - 1;
8338       fprintf (stderr, "Error: state stack now");
8339       while (ssp1 != yyssp)
8340         fprintf (stderr, " %d", *++ssp1);
8341       fprintf (stderr, "\n");
8342     }
8343 #endif
8344
8345 yyerrhandle:
8346
8347   yyn = yypact[yystate];
8348   if (yyn == YYFLAG)
8349     goto yyerrdefault;
8350
8351   yyn += YYTERROR;
8352   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8353     goto yyerrdefault;
8354
8355   yyn = yytable[yyn];
8356   if (yyn < 0)
8357     {
8358       if (yyn == YYFLAG)
8359         goto yyerrpop;
8360       yyn = -yyn;
8361       goto yyreduce;
8362     }
8363   else if (yyn == 0)
8364     goto yyerrpop;
8365
8366   if (yyn == YYFINAL)
8367     YYACCEPT;
8368
8369 #if YYDEBUG != 0
8370   if (yydebug)
8371     fprintf(stderr, "Shifting error token, ");
8372 #endif
8373
8374   *++yyvsp = yylval;
8375 #ifdef YYLSP_NEEDED
8376   *++yylsp = yylloc;
8377 #endif
8378
8379   yystate = yyn;
8380   goto yynewstate;
8381 }
8382 #line 3796 "parse.y"
8383
8384
8385 #ifdef SPEW_DEBUG
8386 const char *
8387 debug_yytranslate (value)
8388     int value;
8389 {
8390   return yytname[YYTRANSLATE (value)];
8391 }
8392
8393 #endif