
/*  A Bison parser, made from parse.y
 by  Bison version A2.5 (Andrew Consortium)
  */

#define YYBISON 1  /* Identify Bison output.  */

#define	IDENTIFIER	258
#define	TYPENAME	259
#define	SELFNAME	260
#define	PFUNCNAME	261
#define	SCSPEC	262
#define	TYPESPEC	263
#define	CV_QUALIFIER	264
#define	CONSTANT	265
#define	STRING	266
#define	ELLIPSIS	267
#define	SIZEOF	268
#define	ENUM	269
#define	IF	270
#define	ELSE	271
#define	WHILE	272
#define	DO	273
#define	FOR	274
#define	SWITCH	275
#define	CASE	276
#define	DEFAULT	277
#define	BREAK	278
#define	CONTINUE	279
#define	RETURN	280
#define	GOTO	281
#define	ASM_KEYWORD	282
#define	GCC_ASM_KEYWORD	283
#define	TYPEOF	284
#define	ALIGNOF	285
#define	SIGOF	286
#define	ATTRIBUTE	287
#define	EXTENSION	288
#define	LABEL	289
#define	REALPART	290
#define	IMAGPART	291
#define	AGGR	292
#define	VISSPEC	293
#define	DELETE	294
#define	NEW	295
#define	THIS	296
#define	OPERATOR	297
#define	CXX_TRUE	298
#define	CXX_FALSE	299
#define	NAMESPACE	300
#define	TYPENAME_KEYWORD	301
#define	USING	302
#define	LEFT_RIGHT	303
#define	TEMPLATE	304
#define	TYPEID	305
#define	DYNAMIC_CAST	306
#define	STATIC_CAST	307
#define	REINTERPRET_CAST	308
#define	CONST_CAST	309
#define	SCOPE	310
#define	EMPTY	311
#define	PTYPENAME	312
#define	NSNAME	313
#define	THROW	314
#define	ASSIGN	315
#define	OROR	316
#define	ANDAND	317
#define	MIN_MAX	318
#define	EQCOMPARE	319
#define	ARITHCOMPARE	320
#define	LSHIFT	321
#define	RSHIFT	322
#define	POINTSAT_STAR	323
#define	DOT_STAR	324
#define	UNARY	325
#define	PLUSPLUS	326
#define	MINUSMINUS	327
#define	HYPERUNARY	328
#define	PAREN_STAR_PAREN	329
#define	POINTSAT	330
#define	TRY	331
#define	CATCH	332
#define	TYPENAME_ELLIPSIS	333
#define	PRE_PARSED_FUNCTION_DECL	334
#define	EXTERN_LANG_STRING	335
#define	ALL	336
#define	PRE_PARSED_CLASS_DECL	337
#define	DEFARG	338
#define	DEFARG_MARKER	339
#define	TYPENAME_DEFN	340
#define	IDENTIFIER_DEFN	341
#define	PTYPENAME_DEFN	342
#define	END_OF_LINE	343
#define	END_OF_SAVED_INPUT	344

#line 29 "parse.y"

/* Cause the `yydebug' variable to be defined.  */
#define YYDEBUG 1

#include "config.h"

#include <stdio.h>
#include <errno.h>

#include "tree.h"
#include "input.h"
#include "flags.h"
#include "lex.h"
#include "cp-tree.h"
#include "output.h"
#include "except.h"

/* Since parsers are distinct for each language, put the language string
   definition here.  (fnf) */
char *language_string = "GNU C++";

extern tree void_list_node;
extern struct obstack permanent_obstack;

#ifndef errno
extern int errno;
#endif

extern int end_of_file;
extern int current_class_depth;
extern tree last_tree;

/* FSF LOCAL dje prefix attributes */
extern tree strip_attrs		PROTO((tree));
/* END FSF LOCAL */

/* Like YYERROR but do call yyerror.  */
#define YYERROR1 { yyerror ("syntax error"); YYERROR; }

#define OP0(NODE) (TREE_OPERAND (NODE, 0))
#define OP1(NODE) (TREE_OPERAND (NODE, 1))

/* Contains the statement keyword (if/while/do) to include in an
   error message if the user supplies an empty conditional expression.  */
static char *cond_stmt_keyword;

static tree empty_parms PROTO((void));

/* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
int have_extern_spec;
int used_extern_spec;

/* Cons up an empty parameter list.  */
#ifdef __GNUC__
__inline
#endif
static tree
empty_parms ()
{
  tree parms;

  if (strict_prototype
      || current_class_type != NULL)
    parms = void_list_node;
  else
    parms = NULL_TREE;
  return parms;
}

#line 101 "parse.y"
typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
#line 289 "parse.y"

/* List of types and structure classes of the current declaration.  */
static tree current_declspecs = NULL_TREE;
/* List of prefix attributes in effect.
   Prefix attributes are parsed by the reserved_declspecs and declmods
   rules.  They create a list that contains *both* declspecs and attrs.  */
/* ??? It is not clear yet that all cases where an attribute can now appear in
   a declspec list have been updated.  */
static tree prefix_attributes = NULL_TREE;

/* When defining an aggregate, this is the most recent one being defined.  */
static tree current_aggr;

/* Tell yyparse how to print a token's value, if yydebug is set.  */

#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
extern void yyprint			PROTO((FILE *, int, YYSTYPE));
extern tree combine_strings		PROTO((tree));
#include <stdio.h>

#ifndef __cplusplus
#ifndef __STDC__
#define const
#endif
#endif



#define	YYFINAL		1529
#define	YYFLAG		-32768
#define	YYNTBASE	114

#define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 376)

static const char yytranslate[] = {     0,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,   112,     2,     2,     2,    83,    71,     2,    94,
   110,    81,    79,    60,    80,    93,    82,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    63,    61,    75,
    65,    76,    66,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    95,     2,   113,    70,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,    59,    69,   111,    89,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
    56,    57,    58,    62,    64,    67,    68,    72,    73,    74,
    77,    78,    84,    85,    86,    87,    88,    90,    91,    92,
    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   106,   107,   108,   109
};

#if YYDEBUG != 0
static const short yyprhs[] = {     0,
     0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
    17,    19,    21,    22,    25,    28,    30,    32,    38,    43,
    49,    54,    55,    62,    63,    69,    75,    78,    83,    86,
    89,    93,    97,    99,   101,   104,   107,   109,   112,   113,
   119,   123,   125,   129,   131,   134,   136,   139,   141,   145,
   147,   151,   154,   157,   160,   164,   168,   171,   174,   177,
   180,   183,   185,   187,   189,   190,   192,   195,   196,   198,
   203,   207,   211,   212,   221,   227,   228,   238,   245,   246,
   255,   261,   262,   272,   279,   282,   285,   287,   290,   292,
   299,   304,   311,   316,   319,   321,   324,   327,   329,   332,
   334,   337,   340,   343,   348,   351,   355,   356,   357,   359,
   363,   366,   370,   372,   377,   380,   385,   388,   393,   396,
   398,   400,   402,   404,   406,   408,   410,   412,   414,   416,
   418,   422,   426,   429,   432,   437,   442,   446,   450,   455,
   459,   464,   468,   470,   475,   479,   481,   483,   485,   489,
   491,   493,   495,   497,   499,   501,   503,   505,   507,   509,
   513,   515,   519,   520,   522,   524,   525,   533,   535,   537,
   541,   546,   550,   551,   555,   557,   561,   565,   569,   573,
   575,   577,   579,   582,   585,   588,   591,   594,   597,   600,
   605,   608,   613,   616,   620,   624,   629,   634,   640,   646,
   653,   656,   661,   667,   670,   673,   677,   681,   685,   687,
   691,   694,   698,   703,   705,   708,   714,   716,   720,   724,
   728,   732,   736,   740,   744,   748,   752,   756,   760,   764,
   768,   772,   776,   780,   784,   788,   792,   798,   802,   806,
   808,   811,   815,   817,   819,   821,   823,   825,   830,   834,
   839,   843,   849,   855,   861,   863,   865,   867,   869,   872,
   875,   879,   884,   889,   891,   893,   895,   899,   901,   903,
   905,   907,   911,   915,   919,   920,   925,   930,   933,   938,
   941,   944,   946,   951,   953,   961,   969,   977,   985,   990,
   995,   998,  1001,  1003,  1008,  1011,  1014,  1020,  1024,  1027,
  1030,  1036,  1040,  1046,  1050,  1055,  1062,  1065,  1067,  1070,
  1072,  1075,  1077,  1079,  1081,  1084,  1085,  1088,  1091,  1095,
  1099,  1103,  1106,  1109,  1112,  1114,  1116,  1118,  1121,  1124,
  1127,  1130,  1132,  1134,  1136,  1138,  1141,  1144,  1148,  1152,
  1156,  1161,  1163,  1166,  1169,  1172,  1174,  1176,  1178,  1181,
  1184,  1187,  1189,  1191,  1194,  1197,  1201,  1203,  1206,  1208,
  1210,  1212,  1217,  1222,  1227,  1232,  1234,  1236,  1238,  1240,
  1244,  1246,  1250,  1252,  1256,  1257,  1262,  1263,  1270,  1274,
  1275,  1282,  1286,  1287,  1294,  1298,  1299,  1306,  1310,  1311,
  1313,  1315,  1318,  1325,  1327,  1331,  1332,  1334,  1339,  1346,
  1351,  1353,  1355,  1357,  1359,  1361,  1365,  1366,  1369,  1371,
  1374,  1378,  1383,  1385,  1387,  1391,  1396,  1403,  1407,  1413,
  1415,  1420,  1424,  1428,  1429,  1433,  1437,  1441,  1442,  1445,
  1448,  1449,  1457,  1462,  1463,  1470,  1474,  1477,  1480,  1483,
  1484,  1485,  1486,  1497,  1499,  1500,  1502,  1503,  1505,  1507,
  1510,  1513,  1516,  1519,  1522,  1525,  1529,  1534,  1538,  1541,
  1545,  1546,  1548,  1552,  1555,  1558,  1560,  1562,  1563,  1566,
  1570,  1572,  1577,  1579,  1583,  1585,  1587,  1592,  1597,  1600,
  1603,  1607,  1611,  1613,  1614,  1616,  1619,  1624,  1628,  1630,
  1633,  1636,  1639,  1642,  1645,  1648,  1651,  1653,  1656,  1659,
  1662,  1667,  1672,  1675,  1677,  1683,  1688,  1690,  1693,  1694,
  1696,  1700,  1701,  1703,  1707,  1709,  1711,  1713,  1715,  1720,
  1725,  1730,  1735,  1740,  1744,  1749,  1754,  1759,  1764,  1768,
  1770,  1774,  1776,  1780,  1783,  1785,  1792,  1793,  1796,  1798,
  1801,  1802,  1805,  1810,  1815,  1818,  1823,  1827,  1831,  1834,
  1837,  1841,  1843,  1845,  1848,  1850,  1852,  1855,  1858,  1863,
  1868,  1872,  1876,  1879,  1881,  1885,  1889,  1892,  1895,  1899,
  1901,  1905,  1909,  1912,  1915,  1919,  1921,  1926,  1930,  1935,
  1939,  1941,  1944,  1947,  1950,  1953,  1956,  1958,  1961,  1966,
  1971,  1974,  1976,  1978,  1980,  1982,  1985,  1988,  1991,  1994,
  1997,  1999,  2002,  2005,  2007,  2010,  2013,  2016,  2019,  2022,
  2025,  2028,  2031,  2033,  2036,  2039,  2043,  2045,  2049,  2052,
  2056,  2059,  2062,  2066,  2068,  2072,  2077,  2081,  2084,  2087,
  2089,  2093,  2096,  2099,  2101,  2104,  2108,  2110,  2114,  2116,
  2123,  2128,  2133,  2137,  2143,  2147,  2151,  2155,  2158,  2160,
  2162,  2165,  2168,  2171,  2172,  2173,  2174,  2176,  2178,  2181,
  2185,  2187,  2190,  2191,  2197,  2198,  2199,  2206,  2208,  2209,
  2214,  2216,  2218,  2220,  2223,  2224,  2225,  2232,  2234,  2235,
  2236,  2244,  2245,  2246,  2254,  2255,  2256,  2257,  2258,  2273,
  2274,  2275,  2285,  2286,  2292,  2293,  2301,  2302,  2307,  2310,
  2313,  2316,  2320,  2327,  2336,  2347,  2360,  2365,  2369,  2372,
  2375,  2377,  2379,  2380,  2381,  2388,  2389,  2390,  2396,  2398,
  2401,  2402,  2403,  2404,  2413,  2415,  2417,  2421,  2425,  2428,
  2431,  2434,  2437,  2440,  2442,  2445,  2446,  2448,  2449,  2451,
  2453,  2454,  2456,  2458,  2462,  2467,  2469,  2473,  2474,  2476,
  2478,  2480,  2483,  2486,  2489,  2491,  2493,  2496,  2499,  2502,
  2505,  2506,  2510,  2512,  2514,  2516,  2519,  2522,  2525,  2530,
  2533,  2536,  2539,  2542,  2545,  2548,  2550,  2553,  2555,  2558,
  2560,  2562,  2563,  2564,  2566,  2567,  2572,  2575,  2577,  2579,
  2583,  2584,  2588,  2592,  2596,  2598,  2601,  2604,  2607,  2610,
  2613,  2616,  2619,  2622,  2625,  2628,  2631,  2634,  2637,  2640,
  2643,  2646,  2649,  2652,  2655,  2658,  2661,  2664,  2667,  2671,
  2674,  2677,  2680,  2683,  2687,  2690,  2693,  2698,  2703,  2707
};

static const short yyrhs[] = {    -1,
   115,     0,     0,   116,   122,     0,   115,   122,     0,   115,
     0,     0,     0,     0,    33,     0,    27,     0,    28,     0,
     0,   123,   124,     0,   140,   139,     0,   136,     0,   135,
     0,   121,    94,   194,   110,    61,     0,   129,    59,   117,
   111,     0,   129,   118,   140,   119,   139,     0,   129,   118,
   136,   119,     0,     0,    45,   155,    59,   125,   117,   111,
     0,     0,    45,    59,   126,   117,   111,     0,    45,   155,
    65,   128,    61,     0,   127,    61,     0,    47,    45,   128,
    61,     0,   120,   124,     0,    47,   287,     0,    47,   300,
   287,     0,    47,   300,   185,     0,   185,     0,   287,     0,
   300,   287,     0,   300,   185,     0,   100,     0,   129,   100,
     0,     0,    49,    75,   131,   132,    76,     0,    49,    75,
    76,     0,   134,     0,   132,    60,   134,     0,   244,     0,
   244,   155,     0,    46,     0,    46,   155,     0,   133,     0,
   133,    65,   200,     0,   367,     0,   367,    65,   181,     0,
   130,   124,     0,   130,     1,     0,   211,    61,     0,   204,
   210,    61,     0,   201,   209,    61,     0,   204,    61,     0,
   158,    61,     0,   201,    61,     0,     1,    61,     0,     1,
   111,     0,    61,     0,   195,     0,   151,     0,     0,   150,
     0,   150,    61,     0,     0,   109,     0,   146,   138,   137,
   312,     0,   146,   138,   337,     0,   146,   138,     1,     0,
     0,   292,     5,    94,   142,   358,   110,   274,   370,     0,
   292,     5,    48,   274,   370,     0,     0,   300,   292,     5,
    94,   143,   358,   110,   274,   370,     0,   300,   292,     5,
    48,   274,   370,     0,     0,   292,   160,    94,   144,   358,
   110,   274,   370,     0,   292,   160,    48,   274,   370,     0,
     0,   300,   292,   160,    94,   145,   358,   110,   274,   370,
     0,   300,   292,   160,    48,   274,   370,     0,   201,   198,
     0,   204,   284,     0,   284,     0,   204,   141,     0,   141,
     0,     5,    94,   358,   110,   274,   370,     0,     5,    48,
   274,   370,     0,   160,    94,   358,   110,   274,   370,     0,
   160,    48,   274,   370,     0,   204,   147,     0,   147,     0,
   201,   198,     0,   204,   284,     0,   284,     0,   204,   141,
     0,   141,     0,   130,   148,     0,    25,     3,     0,   149,
   228,     0,   149,    94,   175,   110,     0,   149,    48,     0,
    63,   152,   153,     0,     0,     0,   154,     0,   153,    60,
   154,     0,   153,     1,     0,    94,   175,   110,     0,    48,
     0,   156,    94,   175,   110,     0,   156,    48,     0,   280,
    94,   175,   110,     0,   280,    48,     0,   294,    94,   175,
   110,     0,   294,    48,     0,     3,     0,     4,     0,     5,
     0,    57,     0,    58,     0,     3,     0,    57,     0,    58,
     0,   106,     0,   105,     0,   107,     0,    49,   207,    61,
     0,    49,   201,   198,     0,    49,   284,     0,    49,   141,
     0,     7,    49,   207,    61,     0,     7,    49,   201,   198,
     0,     7,    49,   284,     0,     7,    49,   141,     0,    57,
    75,   162,   161,     0,    57,    75,   161,     0,     4,    75,
   162,   161,     0,     4,    75,   161,     0,   160,     0,     5,
    75,   162,   161,     0,     5,    75,   161,     0,    76,     0,
    78,     0,   163,     0,   162,    60,   163,     0,   200,     0,
   181,     0,    80,     0,    79,     0,    87,     0,    88,     0,
   112,     0,   174,     0,   181,     0,    48,     0,    94,   165,
   110,     0,    48,     0,    94,   169,   110,     0,     0,   169,
     0,     1,     0,     0,   348,   198,   212,   221,    65,   170,
   229,     0,   165,     0,   111,     0,   309,   305,   111,     0,
   309,   305,     1,   111,     0,   309,     1,   111,     0,     0,
    59,   173,   171,     0,   321,     0,   181,    60,   181,     0,
   181,    60,     1,     0,   174,    60,   181,     0,   174,    60,
     1,     0,   181,     0,   174,     0,   189,     0,   120,   180,
     0,    81,   180,     0,    71,   180,     0,    89,   180,     0,
   164,   180,     0,    68,   155,     0,    13,   176,     0,    13,
    94,   200,   110,     0,    30,   176,     0,    30,    94,   200,
   110,     0,   191,   273,     0,   191,   273,   178,     0,   191,
   177,   273,     0,   191,   177,   273,   178,     0,   191,    94,
   200,   110,     0,   191,    94,   200,   110,   178,     0,   191,
   177,    94,   200,   110,     0,   191,   177,    94,   200,   110,
   178,     0,   192,   180,     0,   192,    95,   113,   180,     0,
   192,    95,   165,   113,   180,     0,    35,   180,     0,    36,
   180,     0,    94,   175,   110,     0,    59,   175,   111,     0,
    94,   175,   110,     0,    48,     0,    94,   207,   110,     0,
    65,   229,     0,    94,   200,   110,     0,   179,    94,   200,
   110,     0,   176,     0,   179,   176,     0,   179,    59,   230,
   242,   111,     0,   180,     0,   181,    84,   181,     0,   181,
    85,   181,     0,   181,    79,   181,     0,   181,    80,   181,
     0,   181,    81,   181,     0,   181,    82,   181,     0,   181,
    83,   181,     0,   181,    77,   181,     0,   181,    78,   181,
     0,   181,    74,   181,     0,   181,    75,   181,     0,   181,
    76,   181,     0,   181,    73,   181,     0,   181,    72,   181,
     0,   181,    71,   181,     0,   181,    69,   181,     0,   181,
    70,   181,     0,   181,    68,   181,     0,   181,    67,   181,
     0,   181,    66,   353,    63,   181,     0,   181,    65,   181,
     0,   181,    64,   181,     0,    62,     0,    62,   181,     0,
    89,   368,   155,     0,   183,     0,   375,     0,     3,     0,
    57,     0,    58,     0,     6,    75,   162,   161,     0,     6,
    75,   161,     0,   375,    75,   162,   161,     0,   375,    75,
   161,     0,    49,   155,    75,   162,   161,     0,    49,     6,
    75,   162,   161,     0,    49,   375,    75,   162,   161,     0,
   182,     0,     4,     0,     5,     0,   182,     0,    81,   186,
     0,    71,   186,     0,    94,   186,   110,     0,     3,    75,
   162,   161,     0,    58,    75,   162,   161,     0,   286,     0,
   182,     0,   187,     0,    94,   186,   110,     0,   182,     0,
    10,     0,   193,     0,   194,     0,    94,   165,   110,     0,
    94,   186,   110,     0,    94,     1,   110,     0,     0,    94,
   190,   313,   110,     0,   189,    94,   175,   110,     0,   189,
    48,     0,   189,    95,   165,   113,     0,   189,    87,     0,
   189,    88,     0,    41,     0,     9,    94,   175,   110,     0,
   290,     0,    51,    75,   200,    76,    94,   165,   110,     0,
    52,    75,   200,    76,    94,   165,   110,     0,    53,    75,
   200,    76,    94,   165,   110,     0,    54,    75,   200,    76,
    94,   165,   110,     0,    50,    94,   165,   110,     0,    50,
    94,   200,   110,     0,   300,     3,     0,   300,   375,     0,
   289,     0,   289,    94,   175,   110,     0,   289,    48,     0,
   196,   184,     0,   196,   184,    94,   175,   110,     0,   196,
   184,    48,     0,   196,   185,     0,   196,   289,     0,   196,
   185,    94,   175,   110,     0,   196,   185,    48,     0,   196,
   289,    94,   175,   110,     0,   196,   289,    48,     0,   196,
    89,     8,    48,     0,   196,     8,    55,    89,     8,    48,
     0,   196,     1,     0,    40,     0,   300,    40,     0,    39,
     0,   300,   192,     0,    43,     0,    44,     0,    11,     0,
   194,    11,     0,     0,   189,    93,     0,   189,    92,     0,
   207,   209,    61,     0,   201,   209,    61,     0,   204,   210,
    61,     0,   201,    61,     0,   204,    61,     0,   120,   197,
     0,   279,     0,   284,     0,    48,     0,   199,    48,     0,
   205,   303,     0,   275,   303,     0,   207,   303,     0,   205,
     0,   275,     0,   205,     0,   202,     0,   204,   207,     0,
   207,   203,     0,   207,   206,   203,     0,   204,   207,   203,
     0,   204,   207,   206,     0,   204,   207,   206,   203,     0,
     7,     0,   203,   208,     0,   203,     7,     0,   203,   222,
     0,   222,     0,   275,     0,     7,     0,   204,     9,     0,
   204,     7,     0,   204,   222,     0,   222,     0,   207,     0,
   275,   207,     0,   207,   206,     0,   275,   207,   206,     0,
   208,     0,   206,   208,     0,   236,     0,     8,     0,   281,
     0,    29,    94,   165,   110,     0,    29,    94,   200,   110,
     0,    31,    94,   165,   110,     0,    31,    94,   200,   110,
     0,     8,     0,     9,     0,   236,     0,   213,     0,   209,
    60,   215,     0,   217,     0,   210,    60,   215,     0,   219,
     0,   211,    60,   215,     0,     0,   121,    94,   194,   110,
     0,     0,   198,   212,   221,    65,   214,   229,     0,   198,
   212,   221,     0,     0,   198,   212,   221,    65,   216,   229,
     0,   198,   212,   221,     0,     0,   284,   212,   221,    65,
   218,   229,     0,   284,   212,   221,     0,     0,   284,   212,
   221,    65,   220,   229,     0,   284,   212,   221,     0,     0,
   222,     0,   223,     0,   222,   223,     0,    32,    94,    94,
   224,   110,   110,     0,   225,     0,   224,    60,   225,     0,
     0,   226,     0,   226,    94,     3,   110,     0,   226,    94,
     3,    60,   175,   110,     0,   226,    94,   175,   110,     0,
   155,     0,     7,     0,     8,     0,     9,     0,   155,     0,
   227,    60,   155,     0,     0,    65,   229,     0,   181,     0,
    59,   111,     0,    59,   230,   111,     0,    59,   230,    60,
   111,     0,     1,     0,   229,     0,   230,    60,   229,     0,
    95,   181,   113,   229,     0,   230,    60,    21,   181,    63,
   229,     0,   155,    63,   229,     0,   230,    60,   155,    63,
   229,     0,    99,     0,   231,   138,   137,   312,     0,   231,
   138,   337,     0,   231,   138,     1,     0,     0,   233,   232,
   139,     0,   104,   181,   109,     0,   104,     1,   109,     0,
     0,   235,   234,     0,   235,     1,     0,     0,    14,   155,
    59,   237,   271,   243,   111,     0,    14,   155,    59,   111,
     0,     0,    14,    59,   238,   271,   243,   111,     0,    14,
    59,   111,     0,    14,   155,     0,    14,   298,     0,    46,
   294,     0,     0,     0,     0,   251,   257,   239,   259,   111,
   221,   240,   235,   241,   233,     0,   251,     0,     0,    60,
     0,     0,    60,     0,    37,     0,   244,     7,     0,   244,
     8,     0,   244,     9,     0,   244,    37,     0,   244,   155,
     0,   244,   157,     0,   244,   292,   155,     0,   244,   300,
   292,   155,     0,   244,   300,   155,     0,   244,   159,     0,
   244,   292,   159,     0,     0,   245,     0,   246,   248,   252,
     0,   247,   252,     0,   244,    59,     0,   250,     0,   249,
     0,     0,    63,   368,     0,    63,   368,   253,     0,   254,
     0,   253,    60,   368,   254,     0,   255,     0,   256,   368,
   255,     0,   294,     0,   280,     0,    31,    94,   165,   110,
     0,    31,    94,   200,   110,     0,    38,   368,     0,     7,
   368,     0,   256,    38,   368,     0,   256,     7,   368,     0,
    59,     0,     0,   258,     0,   258,   260,     0,   259,    38,
    63,   260,     0,   259,    38,    63,     0,   261,     0,   260,
   261,     0,   262,    61,     0,   262,   111,     0,   148,    63,
     0,   148,    96,     0,   148,    25,     0,   148,    59,     0,
    61,     0,   120,   261,     0,   201,   263,     0,   204,   264,
     0,   284,   212,   221,   228,     0,   141,   212,   221,   228,
     0,    63,   181,     0,     1,     0,   204,   147,   212,   221,
   228,     0,   147,   212,   221,   228,     0,   127,     0,   130,
   262,     0,     0,   265,     0,   263,    60,   266,     0,     0,
   268,     0,   264,    60,   270,     0,   267,     0,   268,     0,
   269,     0,   270,     0,   279,   212,   221,   228,     0,     4,
    63,   181,   221,     0,   284,   212,   221,   228,     0,   141,
   212,   221,   228,     0,     3,    63,   181,   221,     0,    63,
   181,   221,     0,   279,   212,   221,   228,     0,     4,    63,
   181,   221,     0,   284,   212,   221,   228,     0,     3,    63,
   181,   221,     0,    63,   181,   221,     0,   272,     0,   271,
    60,   272,     0,   155,     0,   155,    65,   181,     0,   348,
   301,     0,   348,     0,    94,   200,   110,    95,   165,   113,
     0,     0,   274,     9,     0,     9,     0,   275,     9,     0,
     0,   276,   165,     0,   276,    94,   175,   110,     0,   276,
    94,   358,   110,     0,   276,    48,     0,   276,    94,     1,
   110,     0,    81,   275,   279,     0,    71,   275,   279,     0,
    81,   279,     0,    71,   279,     0,   299,   274,   279,     0,
   283,     0,   291,     0,   300,   291,     0,   280,     0,   282,
     0,   300,   282,     0,   292,   291,     0,   283,   278,   274,
   370,     0,   283,    95,   277,   113,     0,   283,    95,   113,
     0,    94,   279,   110,     0,   292,   291,     0,   291,     0,
    81,   275,   284,     0,    71,   275,   284,     0,    81,   284,
     0,    71,   284,     0,   299,   274,   284,     0,   188,     0,
    81,   275,   284,     0,    71,   275,   284,     0,    81,   285,
     0,    71,   285,     0,   299,   274,   284,     0,   286,     0,
   188,   278,   274,   370,     0,    94,   285,   110,     0,   188,
    95,   277,   113,     0,   188,    95,   113,     0,   288,     0,
   292,   187,     0,   292,   185,     0,   292,   184,     0,   292,
   182,     0,   292,   184,     0,   288,     0,   300,   288,     0,
   207,    94,   175,   110,     0,   207,    94,   186,   110,     0,
   207,   199,     0,     4,     0,     5,     0,   159,     0,   293,
     0,   292,   293,     0,     4,    55,     0,     5,    55,     0,
    58,    55,     0,   159,    55,     0,   295,     0,   300,   295,
     0,   296,   155,     0,   297,     0,   296,   297,     0,     4,
    55,     0,     5,    55,     0,   159,    55,     0,    57,    55,
     0,     3,    55,     0,    58,    55,     0,   300,   291,     0,
   282,     0,   300,   282,     0,   292,    81,     0,   300,   292,
    81,     0,    55,     0,    81,   274,   301,     0,    81,   274,
     0,    71,   274,   301,     0,    71,   274,     0,   299,   274,
     0,   299,   274,   301,     0,   302,     0,    95,   165,   113,
     0,   302,    95,   277,   113,     0,    81,   275,   303,     0,
    81,   303,     0,    81,   275,     0,    81,     0,    71,   275,
   303,     0,    71,   303,     0,    71,   275,     0,    71,     0,
   299,   274,     0,   299,   274,   303,     0,   304,     0,    94,
   303,   110,     0,    91,     0,   304,    94,   358,   110,   274,
   370,     0,   304,    48,   274,   370,     0,   304,    95,   277,
   113,     0,   304,    95,   113,     0,    94,   359,   110,   274,
   370,     0,   179,   274,   370,     0,   199,   274,   370,     0,
    95,   277,   113,     0,    95,   113,     0,   320,     0,   306,
     0,   305,   320,     0,   305,   306,     0,     1,    61,     0,
     0,     0,     0,   310,     0,   311,     0,   310,   311,     0,
    34,   227,    61,     0,   313,     0,     1,   313,     0,     0,
    59,   314,   307,   171,   308,     0,     0,     0,    15,   316,
   307,   167,   317,   318,     0,   313,     0,     0,   307,   319,
   321,   308,     0,   313,     0,   321,     0,   197,     0,   165,
    61,     0,     0,     0,   315,    16,   322,   318,   323,   308,
     0,   315,     0,     0,     0,    17,   324,   307,   167,   325,
   172,   308,     0,     0,     0,    18,   326,   318,    17,   327,
   166,    61,     0,     0,     0,     0,     0,    19,   328,    94,
   351,   329,   307,   168,    61,   330,   353,   110,   331,   172,
   308,     0,     0,     0,    20,   307,    94,   169,   110,   332,
   318,   333,   308,     0,     0,    21,   181,    63,   334,   320,
     0,     0,    21,   181,    12,   181,    63,   335,   320,     0,
     0,    22,    63,   336,   320,     0,    23,    61,     0,    24,
    61,     0,    25,    61,     0,    25,   165,    61,     0,   121,
   352,    94,   194,   110,    61,     0,   121,   352,    94,   194,
    63,   354,   110,    61,     0,   121,   352,    94,   194,    63,
   354,    63,   354,   110,    61,     0,   121,   352,    94,   194,
    63,   354,    63,   354,    63,   357,   110,    61,     0,    26,
    81,   165,    61,     0,    26,   155,    61,     0,   350,   320,
     0,   350,   111,     0,    61,     0,   340,     0,     0,     0,
    96,   338,   137,   313,   339,   343,     0,     0,     0,    96,
   341,   313,   342,   343,     0,   344,     0,   343,   344,     0,
     0,     0,     0,    97,   345,   307,   349,   346,   313,   347,
   308,     0,   205,     0,   275,     0,    94,    12,   110,     0,
    94,   367,   110,     0,     3,    63,     0,    57,    63,     0,
     4,    63,     0,     5,    63,     0,   353,    61,     0,   197,
     0,    59,   171,     0,     0,     9,     0,     0,   165,     0,
     1,     0,     0,   355,     0,   356,     0,   355,    60,   356,
     0,    11,    94,   165,   110,     0,    11,     0,   357,    60,
    11,     0,     0,   359,     0,   200,     0,   363,     0,   364,
    12,     0,   363,    12,     0,   200,    12,     0,    12,     0,
    98,     0,   363,    98,     0,   200,    98,     0,   363,    63,
     0,   200,    63,     0,     0,    65,   361,   362,     0,   103,
     0,   229,     0,   365,     0,   367,   360,     0,   364,   366,
     0,   364,   369,     0,   364,   369,    65,   229,     0,   363,
    60,     0,   200,    60,     0,   202,   198,     0,   205,   198,
     0,   207,   198,     0,   202,   303,     0,   202,     0,   204,
   284,     0,   367,     0,   367,   360,     0,   365,     0,   200,
     0,     0,     0,   284,     0,     0,    62,    94,   372,   110,
     0,    62,    48,     0,   200,     0,   371,     0,   372,    60,
   371,     0,     0,    81,   274,   373,     0,    71,   274,   373,
     0,   299,   274,   373,     0,    42,     0,   374,    81,     0,
   374,    82,     0,   374,    83,     0,   374,    79,     0,   374,
    80,     0,   374,    71,     0,   374,    69,     0,   374,    70,
     0,   374,    89,     0,   374,    60,     0,   374,    74,     0,
   374,    75,     0,   374,    76,     0,   374,    73,     0,   374,
    64,     0,   374,    65,     0,   374,    77,     0,   374,    78,
     0,   374,    87,     0,   374,    88,     0,   374,    68,     0,
   374,    67,     0,   374,   112,     0,   374,    66,    63,     0,
   374,    72,     0,   374,    92,     0,   374,    84,     0,   374,
    48,     0,   374,    95,   113,     0,   374,    40,     0,   374,
    39,     0,   374,    40,    95,   113,     0,   374,    39,    95,
   113,     0,   374,   348,   373,     0,   374,     1,     0
};

#endif

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   310,   312,   326,   329,   330,   334,   336,   339,   344,   348,
   354,   356,   359,   362,   366,   369,   371,   373,   376,   378,
   381,   384,   386,   388,   390,   392,   394,   396,   402,   406,
   409,   411,   415,   417,   418,   420,   424,   427,   433,   436,
   438,   443,   446,   450,   463,   465,   467,   471,   481,   483,
   485,   489,   498,   508,   511,   513,   517,   519,   520,   527,
   528,   529,   532,   535,   539,   541,   542,   545,   547,   550,
   553,   555,   559,   569,   571,   581,   590,   592,   602,   611,
   613,   623,   632,   634,   646,   654,   661,   666,   673,   680,
   683,   685,   687,   693,   703,   705,   708,   711,   713,   716,
   718,   741,   750,   753,   755,   759,   772,   792,   795,   797,
   798,   801,   808,   814,   816,   818,   820,   822,   825,   830,
   832,   833,   834,   835,   838,   840,   841,   844,   846,   847,
   850,   854,   857,   859,   861,   864,   867,   869,   877,   884,
   890,   896,   902,   905,   912,   920,   922,   930,   933,   937,
   940,   943,   946,   948,   950,   952,   956,   959,   962,   967,
   971,   976,   980,   983,   985,   989,  1009,  1016,  1019,  1021,
  1022,  1023,  1026,  1037,  1046,  1050,  1054,  1057,  1059,  1063,
  1066,  1069,  1073,  1076,  1078,  1080,  1082,  1089,  1102,  1104,
  1106,  1108,  1114,  1117,  1120,  1123,  1126,  1130,  1133,  1136,
  1140,  1142,  1146,  1150,  1152,  1156,  1159,  1166,  1169,  1171,
  1179,  1188,  1194,  1201,  1203,  1205,  1218,  1221,  1223,  1225,
  1227,  1229,  1231,  1233,  1235,  1237,  1239,  1241,  1243,  1245,
  1247,  1249,  1251,  1253,  1255,  1257,  1259,  1261,  1265,  1267,
  1269,  1286,  1289,  1290,  1291,  1292,  1293,  1296,  1299,  1301,
  1304,  1309,  1312,  1314,  1318,  1320,  1321,  1324,  1326,  1328,
  1330,  1334,  1337,  1341,  1343,  1344,  1345,  1349,  1357,  1358,
  1359,  1367,  1375,  1383,  1385,  1393,  1414,  1421,  1428,  1430,
  1439,  1444,  1467,  1511,  1512,  1516,  1520,  1524,  1528,  1530,
  1534,  1536,  1544,  1546,  1551,  1557,  1561,  1566,  1571,  1573,
  1578,  1593,  1608,  1619,  1631,  1639,  1648,  1692,  1695,  1699,
  1702,  1706,  1709,  1714,  1716,  1720,  1733,  1736,  1743,  1750,
  1755,  1757,  1762,  1764,  1771,  1773,  1777,  1781,  1787,  1791,
  1794,  1797,  1800,  1810,  1812,  1815,  1819,  1822,  1825,  1828,
  1831,  1837,  1843,  1845,  1850,  1852,  1861,  1864,  1866,  1869,
  1875,  1877,  1887,  1891,  1894,  1897,  1902,  1905,  1913,  1915,
  1917,  1919,  1922,  1925,  1940,  1959,  1962,  1964,  1967,  1969,
  1972,  1974,  1977,  1979,  1982,  1985,  1989,  2008,  2010,  2030,
  2036,  2037,  2043,  2052,  2054,  2064,  2073,  2075,  2087,  2090,
  2094,  2097,  2101,  2106,  2109,  2113,  2116,  2118,  2120,  2122,
  2129,  2131,  2132,  2133,  2137,  2140,  2144,  2147,  2153,  2155,
  2158,  2161,  2164,  2170,  2173,  2176,  2178,  2180,  2182,  2186,
  2192,  2200,  2202,  2206,  2208,  2213,  2216,  2219,  2221,  2223,
  2227,  2231,  2236,  2240,  2243,  2248,  2252,  2255,  2258,  2262,
  2264,  2299,  2305,  2311,  2323,  2325,  2328,  2330,  2335,  2337,
  2339,  2341,  2343,  2347,  2352,  2357,  2363,  2368,  2373,  2375,
  2379,  2384,  2387,  2394,  2422,  2428,  2430,  2433,  2436,  2438,
  2442,  2444,  2448,  2474,  2503,  2506,  2507,  2528,  2551,  2553,
  2557,  2583,  2592,  2675,  2682,  2685,  2693,  2704,  2713,  2717,
  2732,  2735,  2740,  2742,  2744,  2746,  2748,  2750,  2755,  2761,
  2763,  2766,  2769,  2771,  2782,  2787,  2790,  2792,  2816,  2819,
  2820,  2831,  2834,  2835,  2846,  2848,  2851,  2853,  2856,  2863,
  2871,  2878,  2884,  2890,  2898,  2902,  2907,  2911,  2914,  2923,
  2925,  2929,  2932,  2937,  2941,  2946,  2956,  2959,  2963,  2967,
  2975,  2980,  2986,  2989,  2991,  2993,  2999,  3002,  3004,  3006,
  3008,  3012,  3015,  3033,  3043,  3045,  3046,  3050,  3055,  3058,
  3060,  3062,  3064,  3068,  3074,  3077,  3079,  3081,  3083,  3087,
  3090,  3093,  3095,  3097,  3099,  3103,  3106,  3109,  3111,  3113,
  3115,  3122,  3133,  3137,  3142,  3146,  3151,  3153,  3157,  3160,
  3162,  3166,  3168,  3169,  3172,  3174,  3180,  3195,  3201,  3207,
  3221,  3223,  3227,  3239,  3245,  3256,  3263,  3269,  3271,  3272,
  3273,  3281,  3290,  3291,  3295,  3298,  3304,  3310,  3313,  3315,
  3317,  3319,  3323,  3327,  3331,  3334,  3339,  3342,  3344,  3346,
  3348,  3350,  3352,  3354,  3356,  3360,  3364,  3368,  3372,  3373,
  3375,  3377,  3379,  3381,  3383,  3385,  3387,  3389,  3397,  3399,
  3400,  3401,  3404,  3412,  3417,  3424,  3426,  3431,  3433,  3436,
  3450,  3453,  3456,  3465,  3477,  3488,  3508,  3518,  3521,  3529,
  3541,  3544,  3547,  3550,  3566,  3569,  3580,  3581,  3585,  3600,
  3619,  3631,  3645,  3659,  3672,  3691,  3709,  3728,  3736,  3757,
  3775,  3788,  3789,  3792,  3792,  3795,  3795,  3798,  3798,  3804,
  3810,  3813,  3818,  3825,  3834,  3843,  3852,  3860,  3873,  3875,
  3879,  3881,  3884,  3891,  3894,  3902,  3918,  3929,  3941,  3943,
  3946,  3956,  3966,  3977,  3979,  3981,  3984,  4001,  4007,  4015,
  4017,  4019,  4023,  4026,  4027,  4035,  4039,  4043,  4046,  4047,
  4053,  4056,  4059,  4061,  4065,  4070,  4073,  4083,  4088,  4089,
  4097,  4103,  4108,  4112,  4117,  4121,  4125,  4129,  4134,  4145,
  4159,  4163,  4166,  4168,  4172,  4176,  4179,  4182,  4184,  4188,
  4190,  4197,  4204,  4207,  4210,  4214,  4218,  4224,  4228,  4233,
  4235,  4238,  4243,  4249,  4259,  4262,  4264,  4268,  4273,  4275,
  4282,  4285,  4287,  4289,  4295,  4300,  4303,  4305,  4307,  4309,
  4311,  4313,  4315,  4317,  4319,  4321,  4323,  4325,  4327,  4329,
  4331,  4333,  4335,  4337,  4339,  4341,  4343,  4345,  4347,  4349,
  4351,  4353,  4355,  4357,  4359,  4361,  4363,  4365,  4368,  4370
};
#endif


#if YYDEBUG != 0

static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
"TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
"STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
"CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD",
"TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART",
"AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
"TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
"REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
"';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
"EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
"'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
"PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
"PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
"DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
"END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
"@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
"@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
"@5","template_parm_list","template_type_parm","template_parm","template_def",
"datadef","ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef",
"constructor_declarator","@6","@7","@8","@9","fn.def1","component_constructor_declarator",
"fn.def2","return_id","return_init","base_init",".set_base_init","member_init_list",
"member_init","identifier","notype_identifier","identifier_defn","explicit_instantiation",
"template_type","self_template_type","template_close_bracket","template_arg_list",
"template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
"condition","@10","compstmtend","already_scoped_stmt","@11","nontrivial_exprlist",
"nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
"cast_expr","expr_no_commas","notype_unqualified_id","template_id","object_template_id",
"unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
"primary","@12","new","delete","boolean.literal","string","nodecls","object",
"decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
"reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
"typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
"initdcl0","@13","initdcl","@14","notype_initdcl0","@15","nomods_initdcl0","@16",
"maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
"identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
"pending_inlines","defarg_again","pending_defargs","structsp","@17","@18","@19",
"@20","@21","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
"named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
"do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
"base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
"self_reference","opt.component_decl_list","component_decl_list","component_decl",
"component_decl_1","components","notype_components","component_declarator0",
"component_declarator","after_type_component_declarator0","notype_component_declarator0",
"after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
"new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
"maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
"nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
"complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
"functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
"typename_sub","typename_sub0","typename_sub1","typename_sub2","complex_type_name",
"ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl",
"direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel","maybe_label_decls",
"label_decls","label_decl","compstmt_or_error","compstmt","@22","simple_if",
"@23","@24","implicitly_scoped_stmt","@25","stmt","simple_stmt","@26","@27",
"@28","@29","@30","@31","@32","@33","@34","@35","@36","@37","@38","@39","@40",
"function_try_block","@41","@42","try_block","@43","@44","handler_seq","handler",
"@45","@46","@47","type_specifier_seq","handler_args","label_colon","for.init.statement",
"maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands","asm_operand",
"asm_clobbers","parmlist","complex_parmlist","defarg","@48","defarg1","parms",
"parms_comma","named_parm","full_parm","parm","see_typename","bad_parm","exception_specification_opt",
"ansi_raise_identifier","ansi_raise_identifiers","conversion_declarator","operator",
"operator_name", NULL
};
#endif

static const short yyr1[] = {     0,
   114,   114,   116,   115,   115,   117,   117,   118,   119,   120,
   121,   121,   123,   122,   124,   124,   124,   124,   124,   124,
   124,   125,   124,   126,   124,   124,   124,   124,   124,   127,
   127,   127,   128,   128,   128,   128,   129,   129,   131,   130,
   130,   132,   132,   133,   133,   133,   133,   134,   134,   134,
   134,   135,   135,   136,   136,   136,   136,   136,   136,   136,
   136,   136,   137,   137,   138,   138,   138,   139,   139,   140,
   140,   140,   142,   141,   141,   143,   141,   141,   144,   141,
   141,   145,   141,   141,   146,   146,   146,   146,   146,   147,
   147,   147,   147,   148,   148,   148,   148,   148,   148,   148,
   148,   149,   150,   150,   150,   151,   152,   153,   153,   153,
   153,   154,   154,   154,   154,   154,   154,   154,   154,   155,
   155,   155,   155,   155,   156,   156,   156,   157,   157,   157,
   158,   158,   158,   158,   158,   158,   158,   158,   159,   159,
   159,   159,   159,   160,   160,   161,   161,   162,   162,   163,
   163,   164,   164,   164,   164,   164,   165,   165,   166,   166,
   167,   167,   168,   168,   168,   170,   169,   169,   171,   171,
   171,   171,   173,   172,   172,   174,   174,   174,   174,   175,
   175,   176,   176,   176,   176,   176,   176,   176,   176,   176,
   176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
   176,   176,   176,   176,   176,   177,   177,   178,   178,   178,
   178,   179,   179,   180,   180,   180,   181,   181,   181,   181,
   181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
   181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
   181,   182,   182,   182,   182,   182,   182,   183,   183,   183,
   183,   184,   184,   184,   185,   185,   185,   186,   186,   186,
   186,   187,   187,   188,   188,   188,   188,   189,   189,   189,
   189,   189,   189,   189,   190,   189,   189,   189,   189,   189,
   189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
   189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
   189,   189,   189,   189,   189,   189,   189,   191,   191,   192,
   192,   193,   193,   194,   194,   195,   196,   196,   197,   197,
   197,   197,   197,   197,   198,   198,   199,   199,   200,   200,
   200,   200,   200,   201,   201,   202,   202,   202,   202,   202,
   202,   203,   203,   203,   203,   203,   204,   204,   204,   204,
   204,   204,   205,   205,   205,   205,   206,   206,   207,   207,
   207,   207,   207,   207,   207,   208,   208,   208,   209,   209,
   210,   210,   211,   211,   212,   212,   214,   213,   213,   216,
   215,   215,   218,   217,   217,   220,   219,   219,   221,   221,
   222,   222,   223,   224,   224,   225,   225,   225,   225,   225,
   226,   226,   226,   226,   227,   227,   228,   228,   229,   229,
   229,   229,   229,   230,   230,   230,   230,   230,   230,   231,
   232,   232,   232,   233,   233,   234,   234,   235,   235,   235,
   237,   236,   236,   238,   236,   236,   236,   236,   236,   239,
   240,   241,   236,   236,   242,   242,   243,   243,   244,   244,
   244,   244,   244,   245,   246,   247,   247,   247,   247,   247,
   248,   249,   249,   249,   250,   251,   251,   252,   252,   252,
   253,   253,   254,   254,   255,   255,   255,   255,   256,   256,
   256,   256,   257,   258,   259,   259,   259,   259,   260,   260,
   261,   261,   261,   261,   261,   261,   261,   261,   262,   262,
   262,   262,   262,   262,   262,   262,   262,   262,   263,   263,
   263,   264,   264,   264,   265,   265,   266,   266,   267,   267,
   268,   268,   268,   268,   269,   269,   270,   270,   270,   271,
   271,   272,   272,   273,   273,   273,   274,   274,   275,   275,
   276,   277,   278,   278,   278,   278,   279,   279,   279,   279,
   279,   279,   280,   280,   281,   281,   281,   282,   283,   283,
   283,   283,   283,   283,   284,   284,   284,   284,   284,   284,
   285,   285,   285,   285,   285,   285,   286,   286,   286,   286,
   286,   286,   287,   287,   288,   288,   289,   289,   290,   290,
   290,   291,   291,   291,   292,   292,   293,   293,   293,   293,
   294,   294,   295,   296,   296,   297,   297,   297,   297,   297,
   297,   298,   298,   298,   299,   299,   300,   301,   301,   301,
   301,   301,   301,   301,   302,   302,   303,   303,   303,   303,
   303,   303,   303,   303,   303,   303,   303,   304,   304,   304,
   304,   304,   304,   304,   304,   304,   304,   304,   305,   305,
   305,   305,   306,   307,   308,   309,   309,   310,   310,   311,
   312,   312,   314,   313,   316,   317,   315,   318,   319,   318,
   320,   320,   321,   321,   322,   323,   321,   321,   324,   325,
   321,   326,   327,   321,   328,   329,   330,   331,   321,   332,
   333,   321,   334,   321,   335,   321,   336,   321,   321,   321,
   321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
   321,   321,   338,   339,   337,   341,   342,   340,   343,   343,
   345,   346,   347,   344,   348,   348,   349,   349,   350,   350,
   350,   350,   351,   351,   351,   352,   352,   353,   353,   353,
   354,   354,   355,   355,   356,   357,   357,   358,   358,   358,
   359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
   361,   360,   362,   362,   363,   363,   363,   363,   363,   364,
   364,   365,   365,   365,   365,   365,   365,   366,   366,   367,
   367,   368,   369,   369,   370,   370,   370,   371,   372,   372,
   373,   373,   373,   373,   374,   375,   375,   375,   375,   375,
   375,   375,   375,   375,   375,   375,   375,   375,   375,   375,
   375,   375,   375,   375,   375,   375,   375,   375,   375,   375,
   375,   375,   375,   375,   375,   375,   375,   375,   375,   375
};

static const short yyr2[] = {     0,
     0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
     1,     1,     0,     2,     2,     1,     1,     5,     4,     5,
     4,     0,     6,     0,     5,     5,     2,     4,     2,     2,
     3,     3,     1,     1,     2,     2,     1,     2,     0,     5,
     3,     1,     3,     1,     2,     1,     2,     1,     3,     1,
     3,     2,     2,     2,     3,     3,     2,     2,     2,     2,
     2,     1,     1,     1,     0,     1,     2,     0,     1,     4,
     3,     3,     0,     8,     5,     0,     9,     6,     0,     8,
     5,     0,     9,     6,     2,     2,     1,     2,     1,     6,
     4,     6,     4,     2,     1,     2,     2,     1,     2,     1,
     2,     2,     2,     4,     2,     3,     0,     0,     1,     3,
     2,     3,     1,     4,     2,     4,     2,     4,     2,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     3,     3,     2,     2,     4,     4,     3,     3,     4,     3,
     4,     3,     1,     4,     3,     1,     1,     1,     3,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
     1,     3,     0,     1,     1,     0,     7,     1,     1,     3,
     4,     3,     0,     3,     1,     3,     3,     3,     3,     1,
     1,     1,     2,     2,     2,     2,     2,     2,     2,     4,
     2,     4,     2,     3,     3,     4,     4,     5,     5,     6,
     2,     4,     5,     2,     2,     3,     3,     3,     1,     3,
     2,     3,     4,     1,     2,     5,     1,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     5,     3,     3,     1,
     2,     3,     1,     1,     1,     1,     1,     4,     3,     4,
     3,     5,     5,     5,     1,     1,     1,     1,     2,     2,
     3,     4,     4,     1,     1,     1,     3,     1,     1,     1,
     1,     3,     3,     3,     0,     4,     4,     2,     4,     2,
     2,     1,     4,     1,     7,     7,     7,     7,     4,     4,
     2,     2,     1,     4,     2,     2,     5,     3,     2,     2,
     5,     3,     5,     3,     4,     6,     2,     1,     2,     1,
     2,     1,     1,     1,     2,     0,     2,     2,     3,     3,
     3,     2,     2,     2,     1,     1,     1,     2,     2,     2,
     2,     1,     1,     1,     1,     2,     2,     3,     3,     3,
     4,     1,     2,     2,     2,     1,     1,     1,     2,     2,
     2,     1,     1,     2,     2,     3,     1,     2,     1,     1,
     1,     4,     4,     4,     4,     1,     1,     1,     1,     3,
     1,     3,     1,     3,     0,     4,     0,     6,     3,     0,
     6,     3,     0,     6,     3,     0,     6,     3,     0,     1,
     1,     2,     6,     1,     3,     0,     1,     4,     6,     4,
     1,     1,     1,     1,     1,     3,     0,     2,     1,     2,
     3,     4,     1,     1,     3,     4,     6,     3,     5,     1,
     4,     3,     3,     0,     3,     3,     3,     0,     2,     2,
     0,     7,     4,     0,     6,     3,     2,     2,     2,     0,
     0,     0,    10,     1,     0,     1,     0,     1,     1,     2,
     2,     2,     2,     2,     2,     3,     4,     3,     2,     3,
     0,     1,     3,     2,     2,     1,     1,     0,     2,     3,
     1,     4,     1,     3,     1,     1,     4,     4,     2,     2,
     3,     3,     1,     0,     1,     2,     4,     3,     1,     2,
     2,     2,     2,     2,     2,     2,     1,     2,     2,     2,
     4,     4,     2,     1,     5,     4,     1,     2,     0,     1,
     3,     0,     1,     3,     1,     1,     1,     1,     4,     4,
     4,     4,     4,     3,     4,     4,     4,     4,     3,     1,
     3,     1,     3,     2,     1,     6,     0,     2,     1,     2,
     0,     2,     4,     4,     2,     4,     3,     3,     2,     2,
     3,     1,     1,     2,     1,     1,     2,     2,     4,     4,
     3,     3,     2,     1,     3,     3,     2,     2,     3,     1,
     3,     3,     2,     2,     3,     1,     4,     3,     4,     3,
     1,     2,     2,     2,     2,     2,     1,     2,     4,     4,
     2,     1,     1,     1,     1,     2,     2,     2,     2,     2,
     1,     2,     2,     1,     2,     2,     2,     2,     2,     2,
     2,     2,     1,     2,     2,     3,     1,     3,     2,     3,
     2,     2,     3,     1,     3,     4,     3,     2,     2,     1,
     3,     2,     2,     1,     2,     3,     1,     3,     1,     6,
     4,     4,     3,     5,     3,     3,     3,     2,     1,     1,
     2,     2,     2,     0,     0,     0,     1,     1,     2,     3,
     1,     2,     0,     5,     0,     0,     6,     1,     0,     4,
     1,     1,     1,     2,     0,     0,     6,     1,     0,     0,
     7,     0,     0,     7,     0,     0,     0,     0,    14,     0,
     0,     9,     0,     5,     0,     7,     0,     4,     2,     2,
     2,     3,     6,     8,    10,    12,     4,     3,     2,     2,
     1,     1,     0,     0,     6,     0,     0,     5,     1,     2,
     0,     0,     0,     8,     1,     1,     3,     3,     2,     2,
     2,     2,     2,     1,     2,     0,     1,     0,     1,     1,
     0,     1,     1,     3,     4,     1,     3,     0,     1,     1,
     1,     2,     2,     2,     1,     1,     2,     2,     2,     2,
     0,     3,     1,     1,     1,     2,     2,     2,     4,     2,
     2,     2,     2,     2,     2,     1,     2,     1,     2,     1,
     1,     0,     0,     1,     0,     4,     2,     1,     1,     3,
     0,     3,     3,     3,     1,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
     2,     2,     2,     3,     2,     2,     4,     4,     3,     2
};

static const short yydefact[] = {     3,
    13,    13,     5,     0,     4,     0,   245,   592,   593,     0,
   348,   360,   539,     0,    11,    12,     0,     0,     0,    10,
   449,   795,     0,     0,     0,     0,   617,   246,   247,    62,
     0,     0,   782,     0,    37,     0,     0,    14,     0,     8,
     0,    17,    16,    68,    89,    65,     0,   594,   143,   265,
   243,   266,   570,     0,   335,     0,   334,   353,     0,   373,
   352,   391,   359,     0,   462,   461,   468,   467,   466,   444,
   347,   555,   361,   556,    87,   264,   581,   553,     0,   595,
   537,     0,     0,   244,    60,    61,     0,   597,     0,   598,
     0,     0,     0,   120,   121,   122,   123,   124,   434,   437,
     0,   613,     0,   438,     0,     0,     0,     0,   121,   122,
   123,   124,    24,     0,     0,     0,     0,     0,     0,     0,
   439,   601,     0,   604,     0,     0,     0,     0,     0,     0,
    30,     0,     0,   348,    39,   134,     0,     0,   353,   133,
     0,   599,     0,     0,   568,     0,     0,     0,   567,     0,
     0,     0,     0,   265,     0,   541,     0,   264,   537,    29,
     0,    27,     3,    38,     0,    53,    52,    69,    15,     0,
     0,   407,    66,    58,   600,   541,     0,   537,    59,     0,
     0,     0,    85,     0,   369,   325,   552,   326,   564,     0,
   537,   350,   349,    57,    88,   336,     0,   371,   351,    86,
   342,   366,   367,   337,   355,   357,   346,   368,     0,    54,
   392,   450,   451,   452,   453,   465,   129,   128,   130,   454,
   455,   459,     0,     0,   468,   782,   464,   483,   440,   540,
   354,     0,     0,   389,   593,     0,   615,   143,   585,   586,
   582,   558,   596,     0,   557,   554,     0,   830,   826,   825,
   823,   805,   810,   811,     0,   817,   816,   802,   803,   801,
   820,   809,   806,   807,   808,   812,   813,   799,   800,   796,
   797,   798,   822,   814,   815,   804,   821,     0,   818,   725,
   353,   726,   791,     0,   245,   539,   269,   314,     0,     0,
     0,     0,   310,   308,   282,   312,   313,     0,     0,     0,
     0,     0,   247,   240,     0,     0,   153,   152,     0,   154,
   155,     0,     0,   156,     0,     0,   148,     0,   214,     0,
   217,   151,   268,   182,     0,     0,   270,   271,     0,   150,
   332,   353,   333,   587,   293,   284,     0,     0,   146,   147,
   142,     0,   145,     0,   249,     0,   138,     0,   353,   137,
   436,     0,   431,   614,   612,     0,   157,   158,     0,     0,
     0,   396,     3,    22,     0,   610,   606,   607,   609,   611,
   608,   120,   121,   122,   123,   124,   603,   605,   602,   256,
   257,     0,   255,    33,    34,     0,   584,   583,    32,    31,
    41,     0,   132,   131,   140,     0,     0,   566,     0,   565,
   242,   260,     0,   574,   259,     0,   573,     0,   267,   578,
     0,     0,    13,     0,     0,     9,     9,   102,    72,   107,
   713,     0,    64,    63,    71,   105,     0,     0,   103,    67,
   580,     0,     0,   545,     0,   785,     0,   550,     0,   549,
     0,     0,     0,     0,   537,   389,     0,    56,   541,   537,
   563,     0,   339,   340,     0,    55,   389,   344,   343,   345,
   338,   358,   375,   374,   456,   460,   458,     0,   463,   469,
   484,   356,     0,   388,   390,   537,    73,     0,     0,     0,
   537,    79,   538,   569,   593,   616,   143,     0,     0,   819,
   824,   355,   537,   537,     0,   537,   829,   251,     0,     0,
     0,     0,   189,     0,     0,   191,   204,   205,     0,     0,
     0,     0,     0,   241,   188,   185,   184,   186,     0,     0,
     0,     0,     0,   268,     0,     0,     0,   183,     0,   262,
   187,     0,     0,   215,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   278,   280,   281,   318,
   317,     0,     0,     0,     0,     0,   193,   535,     0,   201,
   315,   307,     0,   782,   296,   299,   300,     0,     0,   327,
   634,   630,   639,     0,   541,   537,   537,   537,   329,   637,
     0,   591,   331,     0,     0,   330,   295,     0,   291,   309,
   311,   588,     0,   292,   141,   144,   248,   136,   135,   532,
   447,   530,   433,     0,   362,     0,     0,   363,   364,   365,
   402,   403,   404,   401,     0,   394,   397,     0,     3,     0,
    28,    36,    35,    46,     0,    48,    42,   781,   776,     0,
   332,   353,    44,   333,   780,    50,   139,   263,   572,   571,
   267,   575,     0,    19,    21,    68,   108,   316,     0,   663,
    70,   661,   413,     0,   409,   408,   181,     0,   180,   542,
   579,     0,   755,   756,     0,   750,   353,     0,   749,   751,
   783,   765,     0,     0,   577,   548,   547,     0,     0,   562,
     0,   379,   370,   561,     0,   785,   551,   341,   372,   385,
   389,   457,   592,   593,   782,     0,   782,   594,   470,   471,
   473,   782,   476,   475,     0,     0,     0,     0,   386,   785,
   748,     0,     0,     0,   785,   748,   537,    76,   537,    82,
   828,   827,   791,   791,   791,   250,     0,     0,     0,   591,
     0,     0,     0,     0,   353,     0,     0,     0,   274,     0,
   272,   273,     0,   212,   149,   245,   592,   593,   246,   247,
     0,     0,   414,   445,     0,   239,   238,   740,   739,     0,
   236,   235,   233,   234,   232,   231,   230,   227,   228,   229,
   225,   226,   220,   221,   222,   223,   224,   218,   219,     0,
     0,     0,     0,     0,     0,   195,   209,     0,     0,   194,
   537,   537,     0,   537,   534,   624,     0,     0,     0,     0,
   298,     0,   302,     0,   304,     0,   633,   632,   629,   628,
   781,     0,     0,   648,     0,     0,   785,   328,   785,   635,
   537,   748,   541,   634,   630,     0,     0,   537,     0,     0,
     0,     0,     0,     0,   448,     0,   447,   179,   178,   177,
   176,   396,     0,     0,    25,     0,    26,    47,     0,    40,
     0,   634,   630,     0,   772,   537,   775,   777,     0,   773,
   774,   454,     0,    18,    20,   125,   113,   126,   127,     0,
   106,   109,     0,     0,     0,     0,   662,   654,   410,     0,
   104,   546,   543,   754,   771,   760,   758,     0,   544,   753,
   770,   759,   757,   752,   784,   767,   778,   768,   761,   766,
   787,     0,   377,   560,   559,   383,   382,   480,     0,   479,
   782,   782,   782,     0,   504,   593,     0,     0,   497,     0,
     0,   507,     0,   100,    95,     0,   143,   509,   512,     0,
   489,     0,    98,     0,   389,   376,     0,    75,     0,     0,
     0,     0,    81,     0,   785,   748,   785,   748,   793,   792,
   794,   283,   190,   192,   289,   290,     0,     0,     0,     0,
   273,   276,     0,     0,     0,     0,   213,     0,   277,   279,
   207,   206,   197,     0,   196,   211,     0,     0,   621,   619,
     0,   622,   541,   202,     0,     0,   305,     0,     0,     0,
   631,   627,   638,   537,   647,   645,   646,   636,   785,     0,
   643,     0,   589,   590,     0,   294,   533,   531,   435,     0,
   395,   393,   245,     0,    23,    43,    49,   633,   629,   634,
   630,     0,   553,     0,   537,   635,    51,     0,   111,     0,
   115,     0,   117,     0,   119,     0,   714,   656,     0,   411,
   634,   630,     0,   268,     0,   587,   779,     0,     0,   788,
   789,     0,     0,     0,   380,     0,     0,     0,   482,   481,
   474,   537,   748,   503,   498,   101,   508,   389,   389,   495,
   496,   493,   494,   537,   748,   245,   592,     0,   375,    96,
   499,   510,   515,   516,   375,   375,     0,     0,   375,    94,
   500,   513,   375,   490,   491,   492,   389,     0,   441,   387,
   537,   253,   252,   254,   537,    78,     0,    84,     0,     0,
     0,     0,     0,     0,   418,     0,     0,   415,   216,   237,
     0,   198,   199,   208,   210,   620,   618,   625,   623,     0,
   203,     0,   297,   301,   303,   785,   641,   537,   642,   432,
     0,   398,   400,   633,   629,   558,   635,   112,   110,     0,
     0,     0,     0,     0,   169,   655,     0,   657,   658,   412,
     0,   590,   769,   763,   764,   762,     0,   786,   378,   384,
     0,   477,   478,   472,   785,     0,   407,   407,   785,     0,
     0,     0,   389,   389,     0,   389,   389,     0,   389,     0,
   407,     0,   428,   785,   785,   537,   537,     0,     0,     0,
     0,   416,     0,     0,     0,   200,   626,   306,   644,   785,
     0,   114,   116,   118,   721,   715,   719,   405,     0,   664,
     0,   245,   592,   593,   665,   679,   682,   685,   654,     0,
     0,     0,     0,     0,     0,   246,   711,   716,     0,   736,
     0,   673,     0,     0,   353,     0,   650,   671,   678,   649,
   672,   712,     0,   659,   273,   790,   381,    91,   537,   502,
   506,    93,   537,   389,   389,   524,   407,   245,   592,     0,
   511,   517,   518,   375,   375,   407,   407,     0,   407,   514,
   501,     0,    74,    80,   785,   785,   285,   286,   287,   288,
     0,   419,   536,   640,   399,   654,   720,     0,   660,   653,
   172,   729,   731,   732,   654,   654,   654,     0,     0,     0,
   697,   699,   700,   701,     0,     0,     0,   730,     0,   324,
   737,     0,   674,   322,   375,     0,   323,     0,   375,     0,
     0,     0,   170,   652,   651,   675,   710,   709,   785,   785,
   523,   520,   522,     0,     0,   389,   389,   389,   519,   521,
   505,   430,     0,   429,   424,    77,    83,   417,     0,   406,
     0,     0,   669,   668,     0,     0,     0,     0,   693,     0,
   702,     0,   708,   717,     0,   320,   321,     0,     0,     0,
   319,   171,   654,    90,    92,   389,   389,   529,   407,   407,
     0,     0,   443,     0,   722,   161,     0,   666,   680,     0,
   683,   656,   734,   686,     0,   168,     0,   353,     0,     0,
     0,   698,   707,     0,     0,   676,   528,   526,   525,   527,
   427,   426,   420,    65,    68,     0,     0,     0,     0,   654,
     0,   655,     0,   735,   654,   733,   690,   375,   695,   694,
   718,   741,     0,   655,     0,   425,   727,   728,   723,   162,
   667,   173,   655,   175,   670,   159,     0,     0,     0,   654,
   389,     0,     0,     0,   742,   743,   703,   677,   423,     0,
   422,   655,   656,   681,     0,   684,   165,     0,   164,   691,
     0,   696,     0,   741,     0,     0,   421,   724,   174,   160,
   687,   655,   166,     0,     0,   704,   744,     0,   692,     0,
   745,     0,     0,     0,   167,   746,     0,   705,   688,     0,
     0,     0,   747,   706,   655,   689,     0,     0,     0
};

static const short yydefgoto[] = {  1527,
   413,     2,   414,   165,   655,   315,   233,     3,     4,    38,
   629,   363,   932,   382,    40,   933,   392,   635,   636,   637,
    42,    43,   422,   171,   169,    44,   934,   721,   956,   726,
   958,    46,   935,   936,   172,   173,   423,   657,   881,   882,
   610,   883,   221,    47,    48,    49,   341,   316,   317,   318,
  1251,  1468,  1408,  1488,  1417,  1510,  1166,  1463,  1483,   357,
   837,   319,   566,   800,   320,   321,   358,   323,    51,   240,
   384,   402,    52,    53,   324,   526,   325,   326,   327,   328,
   424,   329,  1252,   463,   587,   330,  1253,    55,   204,   640,
   331,   205,   504,   206,   184,   197,    59,   446,   185,  1063,
   464,  1181,   198,  1064,    60,   947,   474,    61,    62,   625,
   626,   627,  1229,   429,   763,   764,  1434,  1435,  1403,  1364,
  1292,    63,   614,   352,   471,  1203,  1365,   976,   846,    64,
    65,    66,    67,   225,    68,    69,    70,   227,   709,   710,
   711,   712,   229,   716,   717,   940,   941,   942,  1091,  1101,
  1092,  1281,  1093,  1094,  1282,  1283,   611,   612,   567,   827,
   333,   432,   433,   178,   186,    72,    73,    74,   187,   188,
   157,    76,   131,   334,   335,   336,    78,   337,    80,   714,
   122,   123,   124,   104,    81,   338,   805,   806,   822,   590,
  1256,  1257,  1373,  1230,  1167,  1168,  1169,   661,  1258,   888,
  1259,  1315,  1440,  1375,  1410,  1260,  1261,  1393,  1454,  1316,
  1441,  1317,  1443,  1318,  1445,  1508,  1522,  1470,  1502,  1421,
  1472,  1380,   425,   658,  1163,  1262,  1329,  1424,  1226,  1227,
  1306,  1438,  1482,  1419,  1405,  1263,  1414,  1332,   770,  1474,
  1475,  1476,  1517,   678,   679,   910,  1059,  1176,   680,   681,
   682,   906,   683,   150,   908,   685,  1061,  1062,   497,    83,
    84
};

static const short yypact[] = {   114,
   129,-32768,-32768, 10013,-32768,    40,    57,    45,    73,    68,
   155,-32768,-32768,  1229,-32768,-32768,   202,   239,   260,-32768,
-32768,-32768,  1097,  1036,   915, 10243,-32768,   264,   168,-32768,
  2214,  2214,-32768,  2014,-32768, 10013,   323,-32768,   317,   182,
 10072,-32768,-32768,   311,-32768,   398,   366,   389,-32768,-32768,
-32768,-32768,   246,  3367,-32768,  4571,-32768,   975,   284,-32768,
   414,-32768,-32768,  1604,-32768,-32768,   415,-32768,-32768,   438,
 10673,-32768,-32768,-32768,  1694,-32768,-32768,-32768,  2132,-32768,
-32768,   609,  7413,   377,-32768,-32768,  8981,-32768,  8529,-32768,
  8529,  8529, 10450,-32768,    45,    73,   264,   447,   408,   467,
   389,-32768,   609,-32768,   609,  8981,  8981,   450,-32768,-32768,
-32768,-32768,-32768,   207,   528,   419,   503,   556,   537,   578,
-32768,-32768,   814,-32768,  1121,    45,    73,   508,   264,   447,
-32768,  1164,  1000,-32768,   495,-32768,  5263,  5847,  1894,-32768,
  8529,-32768,  8981,  4134,-32768,  2240,   649,  4134,-32768,  1259,
  4258,  4258,  2014,   531,   552,   570,   559,   562,-32768,-32768,
   670,-32768,   573,-32768,  5005,    40,-32768,-32768,-32768,   694,
   130,   370,   642,-32768,-32768,   610,   212,-32768,-32768,  4314,
  4314,  5429,  1694,   399,-32768,-32768,   256,-32768,-32768,  2528,
-32768,-32768,-32768,-32768,-32768,   975,   492,-32768,   414,  1694,
-32768,-32768,-32768,  1501,   975,-32768,   414,-32768,  5263,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,   389,  1289,  1289,   415,-32768,-32768,-32768,-32768,-32768,
   767,   609,   627,   414,   441,  1133,-32768,   338,-32768,-32768,
-32768,-32768,-32768,  4666,-32768,-32768,   231,-32768,   632,   645,
-32768,-32768,-32768,-32768,   674,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,   620,-32768,-32768,
   767, 10673,   820,  8529,-32768,   668,-32768,-32768,  9596,  9683,
  9770,  9770,-32768,-32768,-32768,-32768,-32768,   679,   704,   708,
   714,   719,   447,  9068,  1259,  9770,-32768,-32768,  9770,-32768,
-32768,  9770,  6885,-32768,  9770,   270,-32768,  9770,-32768,  9155,
-32768, 10546,-32768,  1405,  3136,  9242,-32768,   786,  1307,-32768,
   752,  3651,  3496,-32768,   360,-32768,  1295,  2118,-32768,-32768,
-32768,   270,-32768,   270,-32768,   270,-32768,  5263,  1999,-32768,
-32768,  1259,   697,-32768,-32768,   693,   745, 10765,   705,   716,
   724,  1784,   573,-32768,   508,-32768,-32768,-32768,-32768,-32768,
-32768,   528,   419,   503,   556,   537,-32768,-32768,-32768,    45,
    73,   784,-32768,-32768,-32768,  1000,-32768,-32768,-32768,-32768,
-32768, 10666,-32768,-32768,-32768,   270,   270,-32768,   536,-32768,
-32768,-32768,  4134,-32768,-32768,  4134,-32768,   732,-32768,-32768,
  4666,    36,   741,   748, 10450,-32768,-32768,-32768,-32768,-32768,
-32768,   124,-32768,-32768,-32768,-32768,  6977,  9068,-32768,-32768,
-32768,  9068,   750,-32768,  6213,   103,  4770,-32768,  4770,-32768,
  4797,  4797,  5429,   757,-32768,   414,  5263,-32768,   761,-32768,
-32768,  5108,  1501,   975,  5263,-32768,   414,-32768,-32768,   414,
  1501,-32768,   673,-32768,-32768,   389,-32768,  1289,-32768,  1596,
-32768,   767,   670,   762,   414,-32768,-32768,   801,   807,   809,
-32768,-32768,-32768,-32768,   580,-32768,   374,   772,   775,-32768,
-32768,   767,-32768,-32768,   551,-32768,-32768,-32768,   270,  9068,
   668,  6885,-32768,   451,  6885,-32768,-32768,-32768,  8981, 10680,
 10680, 10680, 10680, 10833,-32768,-32768,-32768,-32768,   782,  9857,
  9857,  6885,   785,   531,   789,   841,   795,-32768,  8981,-32768,
-32768,  6694,  6885,-32768,  9068,  9068,  7069,  9068,  9068,  9068,
  9068,  9068,  9068,  9068,  9068,  9068,  9068,  9068,  9068,  9068,
  9068,  9068,  9068,  9068,  9068,  9068,-32768,-32768,-32768,-32768,
-32768,  9068,  9068,  9068,  8981,  4897,   439,   876,  7777,-32768,
-32768,-32768,   859,   914,   491,   516,   525,  1537,   649,-32768,
  1863,  1863,-32768,  2957,   813,   834,   882,-32768,-32768,   269,
  8337,   648,-32768,   730,   609,-32768,-32768,  9068,-32768,-32768,
-32768,-32768,   200,-32768,-32768,-32768,-32768,-32768,-32768,   872,
   881,-32768,-32768,  1259,-32768,  7506,  7598,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,    78,-32768,   849,   835,   573,   884,
-32768,-32768,-32768,  1058,   187,   885,-32768,-32768,  3026, 10506,
  3026, 10131,  1604,  5167,-32768,   886,-32768,-32768,-32768,-32768,
   848,-32768,   898,-32768,-32768,   311,   322,   903,   841,-32768,
-32768,-32768,-32768,  6415, 10833,-32768,   745,   866, 10765,-32768,
-32768,   867,-32768,-32768,   869,   188, 10187,   870,-32768,   245,
 10299,   922,   923,   526,-32768,-32768,-32768,  4770,  4770,-32768,
  5108,   926,-32768,-32768,   883,   103,-32768,  1501,-32768,   933,
   414,-32768,   419,   503,-32768,   906,-32768,   578,   942,-32768,
-32768,   220,-32768,-32768,  1330,  3254,    58,    66,-32768,   103,
  1767,  8981,  8981,  8981,   103,  1767,-32768,-32768,-32768,-32768,
-32768,-32768,   618,   618,   618,-32768,   899,   904,  9335,   882,
   905,   913,   917,   948,  4231,   955,   958,   961,-32768,   934,
-32768,-32768,   941,-32768,-32768,   980,   684,   717,   286,   201,
  9068,   990,-32768,   994,   945, 10833, 10833,-32768,-32768,   993,
  3688,  4340,  3916,  4445,  4416,  2273,  2982,  2009,  2009,  2009,
  1064,  1064,  1243,  1243,   664,   664,   664,-32768,-32768,   950,
   957,   962,   966,   967, 10680,   439,-32768,  6977,  9068,-32768,
-32768,-32768,  9068,-32768,-32768,   977,  9770,   971,  1010,  1031,
-32768,  9068,-32768,  9068,-32768,  9068,  3128,-32768,  3128,-32768,
   205,   995,   999,-32768,  1007, 10680,   103,-32768,   103,  3833,
-32768,  1767,  1008,  8616,  8616,  6002,  1013,  9155,  1017,  3489,
  2118,   773,  1018,  9068,  1259,   992,   881,-32768, 10833,-32768,
 10833,  1784,  1021,  9422,-32768,  1029,-32768,-32768, 10666,-32768,
 10680,  2070,  2070,  3775,-32768,-32768,-32768,-32768,  2528,-32768,
-32768,    59,  9068,-32768,-32768,   528,-32768,   556,   537,  9068,
  1069,-32768,   553,   591,   611,   841,-32768,-32768,-32768,    31,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  8433,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   923,  1076,-32768,-32768,
-32768, 10680,-32768,-32768,-32768,-32768,  1085,-32768,  8981,-32768,
-32768,-32768,-32768,  1404,-32768,   608,  1191,  1082,-32768,  9068,
  5357,-32768,  3428,   291,   291,   365,   622,  1689, 10344,  5508,
-32768,   110,   291,  1095,   414,-32768,  6977,-32768,  1049,   270,
   270,   270,-32768,  1051,   103,  1767,   103,  1767,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,  1070,  1072,  1077,  1078,
   848,-32768, 10697,  6977,  6510,  1073,-32768,  9068,-32768,-32768,
-32768,-32768,   388,  1071,-32768,-32768,  1083,    42,   633,   633,
  1074,   633,-32768,-32768,  9770,  1175,-32768,  1087,  1089,  1093,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   103,  1099,
-32768,  1092,-32768,-32768,  3635,-32768, 10833,-32768,-32768,  1096,
-32768,-32768,   142,  1100,-32768,-32768,-32768,  2358,  2358,  2480,
  2480,  3775,-32768,  2528,-32768,  2623, 10546,  1102,-32768,   322,
-32768,  9068,-32768,  9068,-32768,  9068,-32768,    64,  6602,-32768,
  8709,  8709,  6098,   305,  1106,   356,-32768,  6977,  6789,-32768,
-32768,   151,  6977,  6977,-32768,  1108,  1109,  1596,-32768,-32768,
-32768,-32768,  1767, 10833,-32768,-32768,-32768,   414,   414,-32768,
-32768,-32768,-32768,-32768,  1767,   297,   727,  9068,   673,-32768,
  1160,-32768,-32768,-32768,   181,   879,  2132,   649,   936,   291,
  1163,-32768,  1055,-32768,-32768,-32768,   414,  5635,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,  1115,-32768,  1119,  9068,
  9068,  9068,  9068,  6977,-32768,  9068,  1168,-32768,-32768, 10833,
  9068,-32768,   388,-32768,-32768,-32768,-32768,-32768,-32768,  1122,
-32768,  1189,-32768,-32768,-32768,   103,-32768,-32768,-32768,-32768,
  9068,-32768,-32768,  2358,  2358,-32768,  2623,-32768,-32768,  1129,
  1130,  1132,  1147,  1259,-32768,-32768,  5908,  1217,-32768,-32768,
  1144,  1610,-32768,-32768,-32768,-32768, 10680,-32768,-32768,-32768,
  6977,-32768,-32768,-32768,   103,  1145,  1192,  1192,   103,  1146,
  9068,  9068, 10675,   414,  3067,   414,   414,   780,   414,  4911,
  1192,  7846,-32768,   103,   103,-32768,-32768,  1157,  1166,  1167,
  1170,-32768, 10788,  6977,  1161,-32768,-32768,-32768,-32768,   103,
  1171,-32768,-32768,-32768,-32768,  1147,-32768,-32768,   692,-32768,
   158,  1207,   766,   781,-32768,-32768,-32768,-32768,-32768,  9068,
  1226,  1234,  1235,  8802,   518,   428,-32768,-32768,  8894,  1296,
  1245,-32768,  5246, 10405, 10551,  5754,-32768,-32768,  1288,-32768,
-32768,-32768,  7941,-32768,   436,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 10675, 10675,-32768,  1192,   605,   893,  9068,
-32768,-32768,-32768,   673,   673,  1192,  1192,   580,  1192,-32768,
-32768,  4001,-32768,-32768,   103,   103,-32768,-32768,-32768,-32768,
  6977,-32768,-32768,-32768,-32768,-32768,-32768,  1259,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   841,  1213,  1215, 10584,
-32768,-32768,-32768,-32768,  1253,  9068,  1261,-32768,   841,-32768,
-32768,  1236,-32768,-32768,   673,   707,-32768,   779,   673,  9509,
   788,   164,-32768,-32768,-32768,-32768,-32768,-32768,   103,   103,
-32768,-32768,-32768,  9068,  9068, 10675,   414,   414,-32768,-32768,
-32768,-32768,  7690,-32768,-32768,-32768,-32768,-32768,  1237,-32768,
   638,   638,-32768,-32768,  1321,  6323,  8981,  9068,-32768,  8051,
-32768,  1281,-32768,-32768,   670,-32768,-32768,  9944,  9944,  7161,
-32768,-32768,   841,-32768,-32768, 10675, 10675,-32768,  1192,  1192,
  1239, 10719,  1246,  5696,-32768,-32768,  8981,-32768,-32768,  8243,
-32768,    64,-32768,-32768,  1290,-32768,  1240,   373,  5263, 10811,
  8051,-32768,-32768,  1147,    44,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,   398,   311,  1244,  1247,   841,  1251,   841,
  8147,-32768,   647,-32768,-32768,-32768,-32768,   673,-32768,-32768,
  1147,  1352,  1305,-32768,   132,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,  9068,  1306,  7253,   841,
   414,  8051,  1275,   257,  1310,-32768,-32768,-32768,-32768,   124,
-32768,-32768,    64,-32768,  1264,-32768,-32768,  1314,-32768,-32768,
  1312,-32768,  9068,  1352,  1332,  1352,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,  1272,   274,-32768,-32768,  7345,-32768,  6977,
-32768,  1380,  1333,  1285,-32768,-32768,   171,-32768,-32768,  1386,
  1340,  8147,-32768,-32768,-32768,-32768,  1412,  1413,-32768
};

static const short yypgoto[] = {-32768,
  1415,-32768,  -329,-32768,  1001,     9,    10,  1414,-32768,    69,
-32768,-32768,   226,  1056,-32768,   393,-32768,-32768,-32768,   565,
-32768,  1260,  -657,    -8,  -649,  1262,   136,-32768,-32768,-32768,
-32768,-32768,   489,   496,-32768,-32768,-32768,-32768,-32768,   394,
   219,-32768,-32768,-32768,  5249,    77,   146,   -30,   907,-32768,
  1490,-32768,    61,-32768, -1303,-32768, -1330,   -83,-32768,  1186,
  -230,  -249,-32768,  -767,  3615,    83,  1019,  3530,-32768,   -97,
   -79,    15,   -49,   288,-32768,-32768,-32768,  -313,-32768,  -157,
-32768,-32768, -1173,   -51,  -330,  1866,   119,   808,  -163,    22,
    80,  -188,    -4,   -96,  -917,   186,-32768,   -70,-32768,-32768,
  -176,-32768,-32768,-32768,-32768,-32768,   845,   540,    11,-32768,
   590,-32768,-32768, -1107,  -415,   794,-32768,-32768,-32768,-32768,
-32768,   -47,-32768,-32768,-32768,-32768,-32768,-32768,   598,  -374,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1223,-32768,   381,
   542,-32768,-32768,-32768,-32768,   344,  -904,   534,-32768,-32768,
-32768,-32768,-32768,   530,-32768,   273,   856,   629,   910,  2154,
    34,     3,  -421,  1291,  1443,  -461,-32768,    17,-32768,  2697,
  -128,   328,   -55,  4100,  1148,-32768,  4430,  1823,  2703,    -5,
  -110,-32768,  1357,-32768,  4154,  2763,  -422,-32768,  4073,-32768,
-32768,   227,  -868, -1069,-32768,-32768,   318,     8,  -348,-32768,
-32768,-32768,-32768, -1246,-32768, -1199, -1315,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,    41,-32768,-32768,-32768,-32768,-32768,    67, -1205,
-32768,-32768,-32768,   -66,-32768,-32768,-32768,-32768, -1307,     1,
-32768,     6,-32768,  -682,  -371,   597,-32768,-32768,-32768,-32768,
  -386,-32768,  -382,  -158,-32768,   978,   330,-32768,   176,-32768,
  -220
};


#define	YYLAST		10918


static const short yytable[] = {    58,
   886,   592,   183,   412,   234,   645,   875,   454,   713,   646,
   208,   666,    36,    37,   379,   480,   283,   643,   121,  1048,
  1307,   139,   404,   407,   601,    56,  1075,   695,   985,   241,
   102,    58,   453,   628,   387,  1104,    58,    71,   949,   503,
   506,   461,   472,   954,    36,    37,   571,   138,   155,    36,
    37,   196,   388,   389,   571,   177,  1345,    56,   342,    71,
   344,   346,    56,  1348,   144,   148,   231,   470,  1415,    71,
   534,   211,   385,   662,    71,  1330,   571,   390,   281,  1270,
  1271,  1444,   332,    57,   332,   393,   332,   332,   349,   580,
  1049,   208,   492,  1291,  1442,   944,   241,  1164,   245,    88,
    85,   332,   332,  1439,   160,    57,  1452,   459,   462,   167,
   396,   483,   397,    -1,   138,    57,   282,   604,   -45,    89,
    57,   354,    54,   -45,   659,  1464,    71,    90,    -2,   457,
   419,    87,  1479,   196,   -45,   739,   332,   852,   332,    45,
   241,  1050,    92,   492,   137,   653,  1426,    91,   208,  1010,
    86,  1135,  1499,  1453,    54,   238,   208,   208,   177,    54,
    58,   136,   280,   825,   684,  1489,   405,   408,   945,  1353,
  1105,    45,    57,   740,  1165,   946,    45,   753,  1359,  1360,
  1422,  1361,   660,   208,   403,   406,    56,   853,  -316,   177,
  -316,   195,   420,  1461,   420,   884,   155,   668,    71,   894,
  1514,  1151,  1413,    93,   675,  -325,  1464,    15,    16,   211,
  1177,   348,   823,   437,   439,  1132,   894,   211,  1310,   823,
  1106,  1450,   142,  1490,  1310,   421,   922,   421,   347,    39,
  1520,   575,   100,   208,     8,   485,   343,   345,   293,  -325,
   163,   114,   143,  -325,    57,  1307,   859,   895,   245,   576,
   896,  1152,  -781,   499,    27,   142,   900,   923,   568,   434,
  1178,    39,   860,  -124,   895,   364,    39,   896,  1311,   737,
   693,   365,  1492,  1117,  1392,  1119,  -325,   231,   699,   332,
  1521,   164,   220,    54,   208,   897,   395,   129,   130,   601,
   698,  1429,  1430,  -541,   645,   106,   608,  1104,   907,   856,
    45,   208,   897,  -541,   901,   435,   632,   902,   332,   385,
   887,   486,   404,   407,   754,   718,   831,    15,    16,  1494,
   281,   156,  -375,   487,   876,   703,   704,   525,   231,   529,
   633,   790,   107,   792,   793,  1336,  1512,  1341,   141,  -541,
   176,   377,   903,   209,   210,   339,   592,   340,  -123,  -541,
   449,  -375,  -265,   108,   245,  -375,   459,   462,   282,  1191,
   141,   158,   832,   833,   459,  1216,  1495,   843,   401,   877,
  1319,    87,  1465,   507,   508,   462,    27,   162,   878,   879,
   202,   203,   986,  1513,  1478,   481,    14,   642,   516,  1080,
  1186,   517,   701,  1484,   518,   462,    41,   528,  -265,  -265,
   531,  -375,  1190,  -581,   280,   208,   208,   597,   570,    21,
   139,  1012,  1498,   208,  -258,   880,   161,   426,    24,   168,
   580,   729,   170,  1081,   208,   644,   174,  1082,    41,   498,
   677,   482,  1509,    41,   427,   797,   138,  1369,   156,   156,
   156,   465,   467,   175,   208,    19,  1371,  1372,    71,  -581,
  -581,   284,   798,   598,   479,  1526,   405,   408,   447,   448,
  1083,   530,   713,   428,   823,  -581,   739,   730,   644,   156,
   211,   641,   645,   367,   688,   689,   646,   226,   158,   158,
   158,   799,  1131,  -267,   643,   211,   797,   605,   476,   606,
  1328,   607,   823,    89,    57,    90,   228,   332,   580,   568,
   332,   142,   141,   798,   332,   745,   745,   745,   745,   158,
   285,   380,   381,    10,   641,    91,   525,   332,   351,   525,
    94,   109,   110,   515,   332,   353,   823,   601,   332,  -267,
  -267,  1110,   799,   137,   477,   405,   750,  1047,   811,   126,
   127,   647,   648,   362,   739,  -261,   918,   525,   920,    22,
   136,   455,   456,   924,   126,   127,   492,   368,  1125,  1128,
   332,   281,    27,   813,    28,   303,  1136,  1137,   987,  1139,
   391,  1140,   815,   911,   111,   112,  1469,    91,   884,   642,
   624,   998,   366,   999,   812,  1000,   677,   865,   534,   870,
   871,   370,   129,   130,   208,   199,    33,   207,  1326,   282,
  1041,   459,   516,   517,   379,   839,   713,   129,   130,   814,
   369,   245,     8,     9,   817,   819,   486,   644,   816,   912,
   604,   126,   127,  1024,   644,   871,   483,   727,   121,   208,
   141,   237,   371,  1128,    90,   196,   126,   127,  1043,   231,
  -258,   483,  1173,  1175,   736,   280,  1042,  1179,  1180,  1038,
   208,   885,   126,   127,    91,  1072,  -537,   740,  1045,  -537,
   823,   409,    90,   641,   176,   129,   130,  1354,   410,  1084,
   641,  -576,    27,   728,   129,   130,   642,   199,   207,    87,
   288,   823,    91,    -7,  1044,  1406,   702,    27,   493,   129,
   130,   950,   951,   952,  1466,   828,   418,   208,   494,    15,
    16,  1073,   430,   801,  1046,   129,   130,  -537,  1212,  -537,
  -537,    58,  -537,   802,   644,  1085,   642,   332,   332,   332,
   473,   642,   431,  -537,   931,  -537,   488,   803,   156,   156,
   156,  1407,   491,     8,     9,   207,   490,   939,    88,   489,
  1467,  -537,  -537,   460,   207,  -537,  -121,   555,   556,    71,
   762,  1308,  1309,   839,   644,   126,   127,  -537,    89,   644,
   641,   500,  1068,  1069,  1070,  1267,   447,  1386,   158,   158,
   158,    90,   509,   475,   202,   203,     8,     9,   510,  -122,
    14,    88,   511,   126,  1288,  1456,   129,   130,   512,  1192,
   745,    91,   937,   513,   988,    57,   571,  1480,  1302,   580,
   641,    89,   615,    21,   616,   641,    27,   613,   129,   130,
   237,  1160,    24,  1161,   618,  1162,   372,   373,   374,   241,
    88,   745,   581,   126,   127,   619,   719,   642,  1313,   129,
   130,   677,   582,   620,   938,    90,   129,   130,   455,  1387,
    89,   651,   583,  1314,   631,   584,   585,   447,  1391,   405,
   750,    -6,   858,   486,   642,    91,   745,   245,   654,   642,
   486,   872,   671,  1078,  1079,   644,   690,   817,   819,   644,
   375,   376,  1107,   694,    27,   722,   129,   130,   155,   126,
   127,   723,   762,   724,   731,  1368,  1090,   732,   207,   994,
   493,   749,   644,   677,   751,  1028,  1029,   644,   752,   660,
   494,   404,   407,  -326,   754,    15,    16,   745,   959,   960,
   961,   641,  1055,   809,   332,   641,   516,   517,   126,   127,
  1221,   810,   404,   407,   740,   824,    58,   826,    58,   828,
    27,   644,   129,   130,   196,    58,   844,  -326,   641,   931,
   845,  -326,   854,   641,   857,   855,   801,    88,   931,   861,
   873,   642,   939,   642,   939,  1355,   802,  -261,   874,   128,
   -99,   939,    15,    16,    71,   420,    71,    89,  1374,    27,
   803,   129,   130,    71,  -326,   891,   892,   641,   893,   899,
  1384,   201,   202,   203,   241,   475,  -780,   909,    14,   644,
   913,   644,   460,   207,   -99,   914,   475,   916,   -99,   919,
   460,   921,   285,   380,   381,    10,    19,   937,   962,   937,
    57,    21,    57,   963,   964,   937,   937,   645,  1194,    57,
    24,  1437,   965,   967,  1196,  1197,   966,   642,  1194,  1199,
   968,   -99,  1197,   969,   885,   641,   970,   641,   115,   116,
   117,    22,  -120,   971,  1374,   405,   408,   241,   677,   938,
   972,   938,   974,   975,   977,   978,    28,   303,   938,   979,
   372,   373,   374,  1154,  1155,   644,   405,  1171,   642,   980,
   624,   993,   981,  1089,  1099,   982,   983,  1141,   997,   -97,
   642,    15,    16,   995,  1154,  1155,   644,   740,    33,  1459,
    27,  1374,   118,   119,  1515,  1112,  1113,  1114,   996,    94,
   109,   110,  1019,    58,  1003,   322,   644,   322,  1004,   322,
   322,   641,    27,   -97,   375,   376,   931,   -97,   644,  1005,
  1011,  1374,  1013,   115,   116,   117,  1014,  1016,  1040,   939,
  1022,   662,   641,   516,   517,    94,   109,   110,   478,  1025,
  1058,    71,   550,   551,   552,   553,   554,   555,   556,  1065,
   -97,   156,   641,   111,   112,   113,   135,  1108,  1111,   322,
  1115,   322,  1255,  1120,   641,  1121,   285,   380,   381,    10,
  1122,  1123,   745,   238,    22,  1249,  1250,   118,   119,   199,
  1133,   207,  1142,  1129,   937,   156,  1138,    57,  1254,   111,
   112,   158,  1134,  1127,   126,   127,  1143,    58,  1144,   639,
    71,  1335,  1145,  1335,  1149,    22,  1150,   208,  1148,  1153,
   931,  1158,   236,  1357,  1358,  1172,   207,  1182,  1183,  1195,
    28,   303,  1200,   939,  1206,   158,   938,  1425,  1207,   492,
  1214,    94,    95,    96,  1217,    71,  1218,   460,  1222,  1223,
   475,  1224,   639,  1225,  1255,    27,    57,   129,   130,   196,
  1164,  1255,    33,  1265,  1269,  1273,   427,  1249,  1255,   404,
   407,    94,   109,   110,  1249,  1250,  1297,  1127,   457,  1312,
  1254,  1249,  1250,  1303,   487,  1298,  1299,  1254,   937,  1300,
  1305,    57,    71,    27,  1254,    97,    98,    99,  1321,    71,
   692,    94,    95,    96,  1322,  1323,    71,   285,     8,     9,
    10,   700,   322,  1346,  1331,  1333,  1376,   572,  1377,   285,
   380,   381,    10,  1381,   573,   111,   112,   156,   156,   156,
   938,  1383,   514,   552,   553,   554,   555,   556,    57,  1385,
  1404,   528,   115,   703,   704,    57,    22,  1411,   156,   156,
   156,  1423,    57,   236,  1433,    97,    98,  1431,    22,  1447,
  1446,    28,   303,  1457,  1055,   236,  1458,   158,   158,   158,
  1460,    27,  1473,    28,   303,  1477,  1486,  1448,  1493,  1496,
   208,  1255,  1418,  1500,  1501,  1255,  1503,  1471,   158,   158,
   158,  1511,  1228,    33,  1249,   332,   118,   119,  1249,  1250,
  1516,   639,  1506,  1518,  1519,   574,  1523,  1254,   639,   642,
  1524,  1254,  1418,   405,  1171,  1255,   115,   703,   704,    71,
   282,  1528,  1529,    71,     1,     5,  1255,   656,  1249,  1250,
   630,   688,   689,  1026,   416,  1455,   417,  1100,  1076,  1249,
  1250,  1254,  1409,  1159,   706,   755,  1255,   644,  1525,  1338,
   282,  1021,  1254,    71,  1020,   665,   669,   469,  1184,  1249,
  1250,  1202,   557,   669,    71,    57,   280,   890,    27,    57,
   118,   119,  1254,  1327,  1418,  1071,  1077,  1255,  1102,   847,
   516,   517,  1290,  1018,    71,   796,   577,   450,   199,   378,
  1249,  1250,  1344,   641,   475,  1264,   280,  1497,   639,    57,
  1451,   558,   559,  1254,  1505,  1481,   560,   561,   562,   563,
    57,  1507,   282,  1057,     0,    71,  1266,   458,   202,   203,
     0,     0,     0,     0,    14,     0,     0,  1255,   669,     0,
    57,     0,     0,     0,     0,     0,  1370,     0,   639,     0,
  1249,  1250,    19,   639,     0,     0,     0,    21,     0,   285,
   126,   127,    10,  1254,     0,   917,    24,   322,   280,     0,
   665,    57,     0,   766,   767,    71,   771,   772,   773,   774,
   775,   776,   777,   778,   779,   780,   781,   782,   783,   784,
   785,   786,   787,   788,   789,     0,     0,     0,    22,     0,
   669,     0,   669,   669,     0,   236,     0,     0,     0,     0,
     0,     0,     0,    28,   303,   356,   360,     0,   115,   703,
   704,    57,   705,     0,     0,     0,    94,    95,    96,   669,
   212,   213,   214,   667,     0,     0,   669,   475,   475,     0,
   667,  -267,   438,   440,   444,    33,   706,   156,     0,     0,
     0,     0,     0,   707,   849,   851,  -267,  -267,     0,   639,
   215,  -267,     0,   639,     0,     0,   475,     0,     0,     0,
    27,     0,   118,   119,     0,     0,     0,  -267,    27,     0,
    97,    98,   216,     0,     0,     0,   639,   158,     0,  -267,
  -267,   639,  -267,   915,  -267,   156,   156,   156,     0,     0,
     0,     0,   665,     0,     0,   667,     0,     0,     0,     0,
     0,  1086,  1087,     9,    10,     0,     0,   948,     0,     0,
     0,     0,   953,  -267,  -267,   639,     0,  -267,   217,   218,
   219,     0,     0,     0,     0,   158,   158,   158,     0,  -267,
    15,    16,     0,     0,     0,  -375,     0,     0,     0,     0,
    22,     0,   475,   475,     0,   475,   475,     0,   475,     0,
   322,   322,   322,    27,     0,    28,    29,   667,     0,   667,
   667,  1088,     0,  -375,  -375,     0,     0,   669,  -375,   180,
     0,     0,     0,   639,     0,   639,     0,     0,     0,   181,
     8,     9,     0,   134,    12,    13,   667,    33,   673,   973,
    14,     0,   182,   667,     0,     0,    94,   109,   110,  1109,
   621,   622,   623,   199,   207,    17,     0,    18,    19,     0,
     0,     0,   523,    21,  1006,     0,  1007,     0,     0,     0,
     0,     0,    24,   475,   475,     0,   665,   669,     0,     0,
     0,    27,     0,   129,   130,     0,    79,     0,     0,     0,
   669,     0,   669,     0,   669,     0,   103,     0,     0,   639,
   111,   112,     0,     0,     0,     0,     0,   132,    79,     0,
     0,     0,     0,   146,   146,     0,   146,     0,    79,     0,
   639,     0,  1017,    79,   674,     0,   126,   127,     0,     0,
     0,    13,   669,     0,     0,     0,   190,     0,    79,   686,
   639,   687,     0,   438,   440,   444,   223,     0,     0,     0,
     0,  1037,   639,   103,   697,   475,   475,   475,   669,     0,
   201,   202,   203,     0,   247,   103,     0,    14,     0,     0,
   580,     0,     0,     0,     0,    79,   669,    27,     0,   129,
   130,   670,  1187,  1188,   667,    19,     0,   103,     0,     0,
    21,     0,  1116,   581,  1118,   475,   475,     0,     0,    24,
     0,     0,     0,   582,     0,     0,     0,     0,  1074,     0,
   132,  1201,     0,   583,   394,   132,   584,   585,     0,   190,
   103,     0,     0,     0,     0,   665,   146,     0,     0,   399,
   146,   359,   361,   146,   146,   146,     0,     0,     0,     0,
     0,     0,     0,     0,   667,     0,  1147,    79,     0,     0,
     0,   523,   665,   665,   523,     0,  1130,   667,   742,   667,
     0,   667,   190,   190,   190,   201,   202,   203,     0,     0,
   475,   523,    14,     0,     0,     0,     7,   126,   127,    10,
     0,     0,   523,     0,     0,     0,   769,     0,     0,     0,
    19,   190,     0,     0,     0,    21,     0,  1276,  1277,   667,
  1286,  1287,     0,  1289,    24,     0,   468,     0,     0,     0,
     0,     0,   791,     0,   103,    22,     0,     0,   808,   609,
   669,     0,   669,     0,   669,   667,   146,   665,    27,     0,
    28,    29,     7,     8,     9,    10,   665,   665,    13,     0,
     0,   665,   665,   667,   151,   548,   549,   550,   551,   552,
   553,   554,   555,   556,   152,     0,     0,     0,     0,     0,
     0,     0,    33,     0,   103,   495,  1193,   153,     0,     0,
     0,    22,     0,     0,     0,     0,     0,   580,  1351,  1352,
   599,     8,     9,  1219,    27,     0,    28,    29,     0,     0,
   686,   687,     0,   697,     7,     8,   235,    10,     0,     0,
   862,     0,   665,     0,  1213,     0,     0,   103,     0,     0,
   863,   578,     0,   495,   495,   594,   293,   600,    33,    22,
   583,     0,  1268,   864,   585,     0,  1272,     0,     0,   669,
   190,     0,    27,    22,   129,   130,     0,     0,   527,     0,
   236,  1293,  1294,     0,     0,     0,     0,   132,    28,    29,
     0,     0,     0,     0,     0,     0,     0,  1304,     0,   665,
  1398,  1399,  1400,     0,     0,     0,     0,     0,   132,  1274,
  1275,   639,   237,     0,   103,     0,     7,   126,   127,    10,
    33,     0,    13,     0,     0,   146,     0,   667,   146,   667,
     0,   667,   665,   146,   244,     0,     0,    79,     0,     0,
  1427,  1428,     7,   126,   127,    10,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    22,     0,   638,  1320,   190,
     0,   190,     0,   190,   190,   190,     0,     0,    27,   190,
    28,    29,  1366,  1367,   190,     0,     0,   190,     0,     0,
     0,    22,     0,     0,    31,     0,     0,     0,   236,     0,
     0,     0,   991,     0,    32,     0,    28,    29,  1356,     0,
   676,     0,    33,     0,   438,   440,   444,    34,     0,     0,
     0,     0,   411,     0,     0,  1491,     0,     0,     0,   665,
   237,     0,     0,     0,     0,   523,  1394,  1395,    33,     0,
     0,   436,   103,   103,   103,   103,   667,     0,     0,     0,
   444,     0,     0,     0,   452,   544,   545,   546,   547,   548,
   549,   550,   551,   552,   553,   554,   555,   556,   669,     0,
     7,     8,     9,    10,     0,     0,   230,   738,     0,     0,
   741,     0,  1396,  1397,   743,   744,   746,   747,   748,     0,
  1095,  1402,     0,     0,     0,     0,     0,   527,   103,     0,
   495,     0,     0,     0,     0,     0,  1420,     0,   765,    22,
     0,   578,     0,   495,   495,   580,   594,     0,  1066,     0,
     0,     0,    27,   840,    28,    29,     0,   842,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   862,     0,
   794,     0,     0,     0,     0,     0,     0,     0,   863,     0,
     0,     0,     0,     0,     0,     0,    33,     0,   583,   821,
     0,   864,   585,     0,     0,     0,   821,     0,     0,     0,
     0,   190,   869,   190,   190,   223,   594,     0,     0,     0,
   686,   687,   438,   440,   444,     0,     0,     0,   697,     0,
     0,     0,     7,     8,     9,    10,     0,     0,    13,     0,
     0,     0,     0,   438,   440,   444,     0,     0,     0,   190,
     0,     0,     0,   869,     0,     0,     0,     0,     0,     0,
   190,   190,     0,   190,     0,     0,     0,     0,     0,     0,
     0,    22,     0,     0,     0,   667,     0,   580,   665,     0,
     7,     8,     9,    10,    27,     0,    28,    29,    79,     0,
     0,     0,   523,   103,     0,     0,   638,     0,   103,     0,
  1030,     0,     0,     0,     0,   495,   495,   495,     0,     0,
  1031,     0,     0,     0,     0,     0,     0,   495,    33,    22,
   583,     0,     0,  1032,   585,     0,   236,     0,     0,     0,
     0,     0,     0,     0,    28,    29,   676,     0,     0,     0,
     0,   676,     0,     0,     0,     0,   686,   687,   691,   697,
     0,     0,     0,   696,     0,     0,     0,     0,   237,  1208,
  1209,  1210,  1211,     0,     0,     0,    33,   103,     0,     0,
  1215,     0,     0,     0,     0,     7,     8,     9,    10,   720,
     0,   483,     0,     0,   725,     0,     0,  1284,     0,   495,
     0,   495,     0,     0,     0,     0,   733,   734,   103,   735,
     0,     0,   495,     0,   103,     0,   840,   840,   840,     0,
   984,     0,     0,  1015,    22,     0,     0,     0,     0,     0,
   580,     0,     0,     0,     0,     0,     0,    27,     0,    28,
    29,   103,     0,   103,   190,   190,  1034,     0,     0,     0,
     0,   765,     0,   862,     0,     0,     0,   676,     0,     0,
    75,   821,     0,   863,     0,     0,     0,     0,     0,     0,
     0,    33,     0,   583,     0,     0,   864,   585,     0,     0,
  1034,     0,   140,     0,   638,     0,  1027,   145,   149,   821,
     0,     0,    75,  1325,   103,     0,     0,    75,     0,     0,
   829,   830,     0,     0,     0,   829,     0,     0,     0,   132,
     0,     0,   200,    79,     0,    79,     0,     0,     0,     0,
  1097,    79,    79,   821,     0,     0,    82,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   105,  1060,   103,     0,
   103,   243,   444,     0,  1067,     0,   125,   133,    82,   350,
     0,     0,     0,   147,   147,     0,   147,     0,    82,     0,
     0,     0,     0,    82,     0,   243,     0,     0,     0,     0,
     0,   495,   495,     0,   495,  1382,   147,     0,    82,     0,
     0,   676,     0,   676,     0,     0,   224,     0,     0,     0,
   438,   440,   444,   232,   243,     0,     0,     0,     0,     0,
   398,     0,     0,     0,   400,   232,     0,     0,   243,     0,
   190,   190,   190,   190,  1034,    82,     0,     0,   190,     0,
     0,    75,     0,     0,     0,   769,  1416,     0,     0,     0,
     0,     0,     0,  1034,  1034,  1034,   145,   149,     0,   523,
   955,     0,   957,     0,     0,     0,     0,     0,     0,     0,
   386,     0,   243,     0,     0,   103,  1416,   821,     0,   147,
   232,     0,     0,     0,     0,     0,   147,   103,     0,     0,
   147,     0,     0,   147,   147,   147,     0,     0,   821,     0,
  1198,     0,     0,     0,     0,   243,     0,    82,     0,     0,
    79,     0,     0,     0,     0,     0,     0,     0,   676,     0,
   484,     0,   147,   147,   147,     0,     0,     0,     0,   243,
   676,     0,     0,     0,   989,   990,  1485,   992,  1416,     0,
     8,     9,     0,   134,    12,    13,     0,     0,   673,     0,
    14,   147,     0,     0,     0,     0,   190,   190,     0,   190,
     0,     0,  1504,     0,  1009,    17,     0,    18,    19,     0,
     0,     0,     0,    21,     0,     0,     0,   769,     0,   103,
     0,     0,    24,     0,   580,     0,   147,     0,     0,     0,
     0,    27,     0,   129,   130,     0,     0,   190,     0,  1036,
     0,     0,   146,     0,    79,     0,     0,   581,     7,     8,
     9,    10,     0,     0,     0,     0,     0,   582,     0,   243,
     0,     0,  1060,     0,   232,   147,     0,   583,     0,     0,
   584,   585,     0,     0,   674,   545,   546,   547,   548,   549,
   550,   551,   552,   553,   554,   555,   556,    22,     0,  1278,
  1279,     9,    10,   580,     0,   190,   869,   190,     0,     0,
    27,     0,    28,    29,     0,     0,     0,   232,     0,     0,
     0,   579,     0,   147,   147,   595,   862,     0,     0,   649,
   603,   243,   650,     0,     0,     0,   863,   652,    22,     0,
   147,   140,     0,     0,    33,     0,   583,     0,     0,   864,
   585,    27,     0,    28,    29,     0,     0,   386,     0,  1280,
     0,   126,   127,   398,     0,   400,   230,   180,     0,     8,
     9,     0,     0,    12,    13,     0,     0,   181,   484,    14,
     0,     0,     0,     0,   232,    33,     0,  1146,     0,     0,
   182,     0,  1034,     0,    17,   147,    18,     0,   147,     0,
   243,     0,    21,   147,     0,   580,     0,    82,     0,     0,
     0,    24,    27,     0,   129,   130,     0,     0,  1157,     0,
    27,     0,   129,   130,   564,     0,     0,   243,   581,   147,
     0,   147,     0,   147,   147,   147,     0,     0,   582,   147,
  1034,  1034,  1034,     0,   147,     0,     0,   147,   583,     0,
     0,   584,   585,     0,     0,  1185,   103,     0,     0,   565,
     0,     0,   715,     0,     0,     0,     0,  1189,     0,     0,
     0,   190,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   925,   527,     7,     8,   926,    10,
   134,    12,    13,     0,  1204,     0,     0,    14,  1205,   638,
     0,     0,   232,   232,   232,   232,     0,     0,     0,     0,
   243,     0,    17,     0,    18,    19,    20,     0,     0,     0,
    21,  -485,     0,     0,     0,    22,   243,     0,     0,    24,
   927,  1220,   928,     0,     0,     0,     0,     0,    27,     0,
    28,    29,     0,     0,   929,     0,   930,     0,     0,     0,
     0,     0,     0,     0,    31,     0,     0,     0,   232,     0,
   147,     0,     0,     0,    32,     0,   868,     0,     0,     0,
     0,     0,    33,   147,   147,     0,   595,    34,     0,     0,
     0,     0,     0,   841,     0,     0,     0,     0,     0,  1295,
  1296,     0,     0,     0,  -485,   603,     0,     0,     0,     7,
     8,     9,    10,     0,     0,     0,     0,   905,     0,     0,
     0,     0,     0,     0,   649,   650,     0,   652,     0,     0,
     0,     0,     0,     0,     0,     0,   125,     0,     0,     0,
     0,   147,   595,   147,   147,   224,   595,     0,    22,     0,
     0,     0,   943,     0,     0,     0,     0,     0,     0,   715,
     0,    27,  1349,    28,    29,     0,  1350,   179,   925,     0,
     7,     8,   926,    10,   134,    12,    13,   180,     0,   147,
     0,    14,     0,   595,     0,     0,     0,   181,     0,     0,
   147,   147,     0,   147,     0,    33,    17,     0,    18,    19,
   182,     0,     0,     0,    21,     0,     0,     0,     0,    22,
     0,     0,     0,    24,   927,     0,   928,     0,    82,     0,
     0,     0,    27,   232,    28,    29,     0,     0,   232,     0,
   930,   285,     8,     9,    10,   147,   147,   147,    31,     8,
     9,     0,     0,    12,   230,     0,     0,   147,    32,    14,
     0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     0,    34,     0,     0,    17,     0,    18,     0,     0,     0,
    22,     0,    21,    50,     0,     0,     0,   236,     0,     0,
     0,    24,   243,   580,   243,    28,   303,     0,     0,     0,
    27,     0,   129,   130,     0,    50,     0,   232,   145,   149,
    50,    50,     0,   154,     0,    50,   581,     0,     0,   237,
    50,   243,     0,     0,     0,     0,   582,    33,     0,   147,
     0,   147,     0,    50,     0,    50,   583,     0,   232,   584,
   585,     0,   147,     0,   232,     0,   841,   841,   841,     0,
     0,     0,     0,   603,     0,     0,     0,     0,   239,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   232,    50,   232,   147,   147,   595,   943,     0,   943,
     0,     0,     0,     0,  1096,  1103,   943,   285,     8,     9,
    10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   126,   127,     0,   383,   202,   203,
   841,   383,   383,     0,    14,     0,    50,     0,     0,     0,
     0,     0,     0,    50,   232,   239,    22,    50,     0,     0,
   154,   154,   154,   236,     0,     0,   715,    21,     0,   133,
     0,    28,   303,    82,    50,    82,    24,     0,   580,     0,
  1098,    82,    82,     0,     0,    27,     0,   129,   130,    50,
    50,   154,     0,     0,     0,   486,     0,   243,   232,   239,
   232,   581,     0,    33,   398,   400,     0,     0,     0,     0,
     0,   582,   484,     0,     0,     0,   243,     0,    50,     0,
     0,   583,     0,     0,   591,   585,     0,     0,     0,     0,
     0,   147,   147,     0,   147,   539,   540,   541,   542,   543,
   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
   554,   555,   556,    50,     0,     0,     0,     7,     8,     9,
    10,   134,    12,    13,     0,     0,   673,     0,    14,     0,
   147,   147,   147,   147,   595,     0,     0,     0,   147,   243,
     0,     0,   715,    17,   943,    18,    19,     0,     0,     0,
     0,    21,     0,   841,   841,   841,    22,     0,     0,     0,
    24,     0,   580,     0,     0,     0,     0,     0,     0,    27,
   715,    28,    29,     0,     0,   232,   126,   127,     0,     0,
     0,   483,   524,     0,     0,  1030,     0,   232,     0,     0,
   649,   650,     0,   652,     0,  1031,     0,     0,   383,     0,
     0,     0,     0,    33,     0,   583,   239,     0,  1032,   585,
    82,     0,   674,     0,     0,     0,     0,    50,     0,     0,
   580,     0,     0,     0,     0,     0,     0,    27,     0,   129,
   130,  1285,     0,     0,   383,     0,  1285,     0,   943,     0,
   243,     0,     0,   581,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   582,     0,   383,   147,   147,     0,   147,
     0,     0,     0,   583,     0,     0,   584,   585,     0,     0,
     0,     0,    50,     0,     0,    50,     0,     0,     0,   232,
    50,     0,     0,     0,    50,   586,   586,   586,     0,     0,
  1339,     0,     0,     0,     0,     0,     0,   147,     0,     0,
     0,     0,   147,     0,    82,     0,    50,     0,    50,     0,
   154,   154,   154,     0,     0,     0,    50,     0,     0,     0,
     0,    50,     0,     0,    50,   541,   542,   543,   544,   545,
   546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
   556,  1362,     0,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
     0,     0,  -442,     0,  -442,   147,   595,   147,     0,     0,
     0,     0,     0,     0,     0,  -442,     0,  -442,  -442,     0,
     0,   524,  -442,     0,   524,     0,     0,  -442,     0,     0,
     0,     0,  -442,     0,     0,     0,  -442,     0,  -442,   524,
   524,   524,     0,     0,     0,  -442,     0,  -442,  -442,  -442,
  -442,  -442,   524,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
  -442,  -442,  -442,  -442,  -442,  -442,     0,  -442,  -442,  -442,
     0,  -442,  -442,  -442,  -442,  -442,  -442,     0,  -442,  -442,
     0,     0,   841,    77,  1363,     0,     0,   239,     0,  -442,
  -442,  -442,     0,  -442,     0,     0,     0,     0,     0,     0,
   524,     0,     0,     0,     0,    77,     0,     0,     0,     0,
    77,    77,     0,    77,     0,    77,     7,   126,   127,    10,
    77,     0,   230,     0,     0,     0,     0,     0,     0,     0,
   841,   841,   841,    77,     0,    77,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   232,     0,    50,    50,
    50,    50,     0,     0,     0,    22,     0,     0,     0,     0,
     0,   147,     0,     0,     0,     0,     0,   159,    27,     0,
    28,    29,    77,     0,     0,   586,   586,     0,   586,     0,
     0,     0,     0,     0,    31,   838,    50,   191,     0,     0,
    50,     0,     0,     0,    32,     0,     0,    50,    50,     0,
    50,     0,    33,     0,     0,     0,     0,    34,     0,     0,
     0,     0,     0,     0,   126,   127,    77,     0,   202,   203,
     0,     0,     0,    77,    14,    50,     0,    77,     0,     0,
    77,    77,    77,   586,     0,   586,   586,     0,   586,     0,
     7,   126,   127,    10,    77,     0,    13,    21,   524,     0,
     0,     0,     0,     0,     0,     0,    24,     0,   580,    77,
    77,    77,     0,     0,     0,    27,     0,   129,   130,     0,
   191,   586,     0,     0,     0,     0,     0,     0,     0,    22,
     0,   581,     0,     0,   159,   159,   159,     0,    77,     0,
     0,   582,    27,     0,    28,    29,     7,     8,     9,    10,
     0,   583,    13,     0,   584,   585,     0,     0,   151,     0,
     0,     0,     0,   191,   191,   445,     0,     0,   152,     0,
     0,     0,     0,    77,     0,     0,    33,     0,     0,     0,
     0,   153,     0,     0,     0,    22,     0,     0,     0,   586,
     0,     0,   191,   524,   524,   524,     0,     0,    27,   239,
    28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   180,     0,     0,     0,     0,     0,
     0,    50,    50,   154,   181,     0,     0,     0,   239,     0,
     0,     0,    33,   589,   593,   596,     0,   182,   540,   541,
   542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
   552,   553,   554,   555,   556,     0,     0,  1054,     0,     0,
     0,   586,     0,   586,     0,     0,   496,   602,     0,     0,
     0,     0,     0,     0,   586,     0,     0,    77,   838,   838,
   838,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    50,     0,    50,     0,     0,     0,     0,    50,    50,    50,
     0,     0,     0,     0,     0,     0,   586,   586,   586,     0,
     0,     0,     0,   189,   588,   588,   588,   543,   544,   545,
   546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
   556,   191,    77,     0,     0,    77,     0,     0,   242,     0,
    77,   246,   838,     0,    77,   542,   543,   544,   545,   546,
   547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
     0,     0,   242,     0,   355,     0,    77,     0,    77,     0,
    77,    77,    77,     0,   239,     0,    77,     0,     0,     0,
     0,    77,     0,     0,    77,     0,     0,    50,    50,   154,
   154,   154,     0,   239,     0,    50,   189,     0,     0,     0,
     0,     0,     0,     7,     8,     9,    10,   192,    12,   193,
  1054,  1054,  1054,     0,    14,     0,     0,     0,     0,     0,
   191,     0,   191,     0,   445,   445,   445,     0,     0,    17,
   191,    18,    19,     0,     0,   191,     0,    21,   191,   189,
   189,   189,    22,     0,     0,     0,    24,     0,     0,   451,
     0,     0,     0,     0,     0,    27,   239,    28,    29,     0,
     0,   194,     0,     0,     0,     0,     0,    50,   189,     0,
     0,    31,   586,   586,   586,   586,   586,     0,     0,     0,
   586,    32,     0,   818,   820,     0,     0,     0,     0,    33,
     0,   246,     0,     0,    34,   838,   838,   838,     7,   126,
   127,    10,     0,     0,   483,     0,   242,     0,   602,     0,
     0,     0,     0,    50,    50,     0,    50,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    22,     0,     0,
     0,   867,     0,   589,   593,     0,   596,     0,     0,     0,
    27,   804,    28,    29,    50,     0,     0,     0,     0,    50,
     0,    50,     0,     0,   588,   588,    31,   588,    77,    77,
    77,    77,     0,     0,   588,     0,    32,     0,     0,   593,
     0,     0,     0,     0,    33,     0,     0,     0,     0,    34,
     0,     0,     0,     0,     0,     0,   242,   246,   586,   586,
     0,   586,     7,     8,     9,    10,    77,   189,   230,     0,
    77,     0,    50,    50,    50,     0,     0,    77,    77,     0,
    77,     0,   866,     0,   866,   866,     0,   588,     0,     7,
     8,     9,    10,     0,     0,    13,     0,     0,     0,     0,
     0,    22,     0,     0,     0,    77,     0,   593,     0,     0,
     0,     0,     0,     0,    27,     0,    28,    29,     0,     0,
   866,     0,     0,     0,     0,     0,     0,     0,    22,     0,
   180,   191,   191,     0,   191,     0,     0,     0,     0,     0,
   181,    27,     0,    28,    29,     0,     0,     0,    33,     0,
     0,     0,     0,   182,     0,     0,   189,   441,   189,  1054,
   189,   189,   189,     0,     0,     0,   189,   442,     0,     0,
     0,   189,     0,     0,   189,    33,   496,   496,   496,  1001,
   443,  1002,     0,     0,     0,     0,     0,     0,   588,     0,
     8,     9,  1008,     0,    12,    13,   818,   820,     0,     0,
    14,     0,     0,  1278,   126,   127,    10,  1054,  1054,  1054,
     0,     0,     0,     0,     0,    17,     0,    18,     0,     0,
     0,     0,     0,    21,   818,   820,     0,     0,     0,     0,
   602,     0,    24,     0,     0,     0,     0,     0,    50,     0,
     0,    27,    22,   129,   130,     0,     0,     0,     0,     0,
     0,    77,    77,    77,     0,    27,     0,    28,    29,     0,
   588,     0,   588,  1280,     0,     0,     0,     0,     0,     0,
     0,    31,     0,   588,     0,     0,     0,   588,   588,   588,
   795,    32,     0,     0,     0,     0,     0,  1056,     0,    33,
     0,     0,     0,     0,    34,     6,     0,     7,     8,     9,
    10,    11,    12,    13,     0,   866,   866,  1035,    14,     0,
     0,     0,     0,   242,   246,     0,     0,     0,     0,     0,
    77,     0,    77,    17,     0,    18,    19,    77,    77,    77,
     0,    21,     0,     0,     0,     0,    22,     0,     0,     0,
    24,  1035,     0,   415,     0,     0,     0,     0,     0,    27,
     0,    28,    29,     0,     0,    30,     0,     0,   189,     0,
   189,   189,     0,     0,     0,    31,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    32,     0,     0,     0,     0,
     0,   191,     0,    33,     0,     0,     0,     0,    34,     0,
  1001,  1002,   818,   820,     0,     0,   189,     0,  1008,     0,
     7,     8,     9,    10,     0,     0,   483,   189,   189,     0,
   189,     0,     0,   818,   820,     0,     0,    77,    77,    77,
    77,    77,     0,     0,     0,    77,     0,     0,     0,     0,
     0,     0,   804,   804,   246,   804,     0,     0,     0,    22,
  1056,  1056,  1056,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    27,     0,    28,    29,     0,     0,     0,  -347,
     8,     9,  -347,  -347,    12,   230,     0,     0,   180,     0,
    14,   866,   866,  1035,  1035,  1035,     0,     0,   181,   866,
     0,     0,     0,     0,     0,    17,    33,    18,  -347,     0,
     0,   182,     0,    21,  1035,  1035,  1035,    77,  -347,     0,
     0,     0,    24,     0,   580,     0,     0,     0,     0,     0,
     0,    27,     0,   129,   130,     0,  1001,  1002,     0,  1008,
     0,     0,     0,     0,     0,     0,     0,   581,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   582,     7,     8,
     9,    10,     0,    77,    77,  -347,    77,   583,     0,     0,
   584,   585,   101,     0,     0,     7,     8,     9,    10,   242,
   246,   242,   120,   101,     0,     0,     0,     0,     0,   101,
   101,     0,   101,     0,     0,     0,     0,    22,     0,     0,
     0,   189,   189,  1033,    77,     0,     0,     0,   242,    77,
    27,    77,    28,    29,    22,     0,  1334,   866,   866,     0,
   866,     0,   222,     0,     0,     0,   180,    27,     0,    28,
    29,     0,     0,     0,     0,     0,   181,  1033,     0,     0,
     0,     0,     0,   180,    33,     0,     0,     0,     0,   182,
     0,     0,     0,   181,     0,     0,     0,     0,   191,     0,
     0,    33,    77,    77,    77,     0,   182,   925,     0,     7,
     8,   926,    10,   134,    12,    13,     0,   189,     0,     0,
    14,   120,     0,   120,     0,     0,   101,     0,     0,     0,
   101,   101,     0,     0,     0,    17,     0,    18,    19,    20,
     0,     0,   101,    21,   101,   101,   101,     0,    22,   101,
   101,   101,    24,   927,     0,   928,   191,     0,   191,     0,
     0,    27,     0,    28,    29,     0,     0,   929,     0,   930,
     0,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     0,     7,     8,     9,    10,     0,     0,    32,     0,  1056,
     0,     0,     0,     0,   242,    33,     0,     0,     0,     0,
    34,     0,     0,     0,     0,     0,     0,   189,   189,   189,
   189,  1033,     0,  1156,     0,   189,     0,     0,     0,     0,
    22,   466,   101,     0,     0,     0,     0,     0,     0,     0,
  1033,  1033,  1033,    27,     0,    28,    29,  1056,  1056,  1056,
     0,     0,   101,   445,     0,     0,     0,     0,     0,   441,
     0,     0,     0,     0,     0,     0,     0,     0,   925,   442,
     7,     8,   926,    10,   134,    12,    13,    33,    77,     0,
     0,    14,   443,     0,     0,     0,   451,     0,     0,     0,
     0,   101,     0,     0,     0,     0,    17,     0,    18,    19,
    20,   445,   445,   445,    21,  -486,     0,     0,     0,    22,
     0,     0,     0,    24,   927,     0,   928,     0,     0,     0,
     0,     0,    27,     0,    28,    29,     0,     0,   929,     0,
   930,     0,   191,     0,     0,     0,     0,   101,    31,   101,
   101,     0,     0,   189,   189,     0,   189,     0,    32,     0,
     0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   101,     0,     0,     0,     0,  -486,     0,
     0,     0,     0,     0,   189,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   101,   925,     0,     7,     8,   926,
    10,   134,    12,    13,     0,     0,     0,   101,    14,     0,
     0,   101,     0,     0,   101,     0,     0,     0,     0,   101,
     0,     0,     0,    17,     0,    18,    19,    20,     0,     0,
     0,    21,  -488,     0,     0,     0,    22,     0,     0,     0,
    24,   927,   189,   928,   189,     0,     0,     0,     0,    27,
     0,    28,    29,     0,     0,   929,     0,   930,     0,     8,
     9,     0,   134,    12,    13,    31,     0,  1436,     0,    14,
     0,     0,     0,     0,     0,    32,   101,     0,   708,     0,
     0,     0,     0,    33,    17,     0,    18,    19,    34,     0,
     0,     0,    21,     0,     0,     0,     0,     0,     0,     0,
     0,    24,     0,   101,     0,  -488,     0,     0,     0,     0,
    27,     0,   129,   130,  1342,     0,  1232,  1233,  1234,    10,
   134,    12,   286,   287,   288,     0,   289,    14,  1235,  1033,
  1236,  1237,  1238,  1239,  1240,  1241,  1242,  1243,  1244,  1245,
    15,    16,    17,   290,    18,    19,    20,     0,   291,   292,
    21,     0,   293,   294,   295,    22,   296,   297,     0,    24,
     0,     0,     0,   298,   299,   300,   301,   302,    27,     0,
  1246,   303,   660,     0,  1247,   304,   101,  1033,  1033,  1033,
     0,   305,     0,     0,   306,     0,   101,   101,     0,   101,
   101,     0,   307,   308,   309,     0,     0,     0,     0,     0,
   310,   311,   312,     0,     0,     0,     0,   313,   189,  1248,
     8,     9,     0,   192,    12,   193,     0,     0,     0,     0,
    14,     0,     0,     0,  1343,   314,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    17,     0,    18,    19,     0,
     0,     0,   120,    21,     0,     0,     0,     0,     0,     0,
     0,   222,    24,     0,     0,     0,     0,     0,     0,     0,
     0,    27,     0,   129,   130,   708,     0,     0,  1231,     0,
  1232,  1233,  1234,    10,   134,    12,   286,   287,   288,     0,
   289,    14,  1235,     0,  1236,  1237,  1238,  1239,  1240,  1241,
  1242,  1243,  1244,  1245,    15,    16,    17,   290,    18,    19,
    20,     0,   291,   292,    21,     0,   293,   294,   295,    22,
   296,   297,     0,    24,     0,     0,     0,   298,   299,   300,
   301,   302,    27,   708,  1246,   303,   660,     0,  1247,   304,
     0,     0,     0,     0,     0,   305,     0,     0,   306,     0,
     0,   101,   101,   101,     0,     0,   307,   308,   309,     0,
     0,     0,     0,   101,   310,   311,   312,     0,     0,     0,
     0,   313,   519,  1248,   285,     8,     9,    10,   134,    12,
   286,   287,   288,   673,   289,    14,     0,     0,     0,   314,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    17,   290,    18,    19,    20,     0,   291,   292,    21,     0,
   293,   294,   295,    22,   296,   297,     0,    24,     0,   580,
     0,   298,   299,   300,   301,   302,    27,     0,    28,   303,
  -275,     0,     0,   304,     0,   101,     0,   101,     0,   305,
     0,     0,   834,     0,     0,     0,     0,     0,   101,     0,
   307,   308,   835,     0,     0,     0,     0,     0,   310,   311,
   312,     0,   583,     0,     0,   836,   585,     0,   519,   674,
     7,     8,     9,    10,   134,    12,   286,   287,   288,   673,
   289,    14,     0,   314,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    17,   290,    18,    19,
    20,     0,   291,   292,    21,     0,   293,   294,   295,    22,
   296,   297,     0,    24,     0,   580,     0,   298,   299,   300,
   301,   302,    27,     0,    28,    29,  -275,     0,     0,   304,
     0,     0,     0,     0,     0,   305,     0,     0,  1051,     0,
     0,     0,   708,     0,     0,   101,   307,   308,  1052,     0,
     0,     0,     0,     0,   310,   311,   312,     0,   583,     0,
     0,  1053,   585,     0,     0,   674,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   314,
     0,     0,     0,   672,     0,   285,     8,     9,    10,   134,
    12,   286,   287,   288,   673,   289,    14,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   101,   101,     0,
   101,    17,   290,    18,    19,    20,     0,   291,   292,    21,
     0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
     0,     0,   298,   299,   300,   301,   302,    27,     0,    28,
   303,     0,     0,     0,   304,     0,     0,     0,     0,     0,
   305,     0,     0,   306,     0,     0,     0,     0,   708,     0,
     0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
   311,   312,     0,     0,     0,     0,   313,     0,     0,     0,
   674,     0,     0,     0,     0,     0,   708,     0,     0,     0,
     0,     0,  -748,   768,   314,   285,     8,     9,    10,   134,
    12,   286,   287,   288,     0,   289,    14,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   101,     0,     0,     0,
     0,    17,   290,    18,    19,    20,     0,   291,   292,    21,
     0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
     0,     0,   298,   299,   300,   301,   302,    27,     0,    28,
   303,  1412,     0,  -738,   304,     0,     0,     0,     0,     0,
   305,     0,     0,   306,     0,     0,     0,     0,     0,     0,
     0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
   311,   312,     0,     0,     0,   663,   313,   756,   757,   758,
    10,     0,    12,   501,   287,   288,     0,   289,    14,     0,
     0,     0,     0,     0,   314,     0,     0,     0,     0,     0,
     0,     0,     0,    17,   290,    18,   101,    20,   101,   291,
   292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
    24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
     0,   759,   760,   664,     0,     0,   304,     0,     0,     0,
     0,     0,   305,     0,     0,   306,     0,     0,     0,     0,
     0,     0,     0,   307,   308,   309,     0,     0,     0,     0,
     0,   310,   311,   312,     0,     0,     0,     0,   313,   761,
   663,     0,   756,   757,   758,    10,     0,    12,   501,   287,
   288,     0,   289,    14,     0,   889,   314,     0,     0,     0,
  1126,     0,     0,     0,     0,     0,     0,     0,    17,   290,
    18,     0,    20,     0,   291,   292,    21,     0,   293,   294,
   295,    22,   296,   297,     0,    24,     0,     0,     0,   298,
   299,   300,   301,   302,    27,     0,   759,   760,   664,     0,
     0,   304,     0,     0,     0,     0,     0,   305,     0,     0,
   306,     0,     0,     0,     0,     0,     0,     0,   307,   308,
   309,     0,     0,     0,     0,     0,   310,   311,   312,     0,
     0,     0,   663,   313,   756,   757,   758,    10,     0,    12,
   501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
  -446,   314,  1126,     0,     0,     0,     0,     0,     0,     0,
    17,   290,    18,     0,    20,     0,   291,   292,    21,     0,
   293,   294,   295,    22,   296,   297,     0,    24,     0,     0,
     0,   298,   299,   300,   301,   302,    27,     0,   759,   760,
   664,     0,     0,   304,     0,     0,     0,     0,     0,   305,
     0,     0,   306,     0,     0,     0,     0,     0,     0,     0,
   307,   308,   309,     0,     0,     0,     0,     0,   310,   311,
   312,     0,     0,     0,   663,   313,   756,   757,   758,    10,
     0,    12,   501,   287,   288,     0,   289,    14,     0,     0,
     0,     0,  1170,   314,     0,     0,     0,     0,     0,     0,
     0,     0,    17,   290,    18,     0,    20,     0,   291,   292,
    21,     0,   293,   294,   295,    22,   296,   297,     0,    24,
     0,     0,     0,   298,   299,   300,   301,   302,    27,     0,
   759,   760,   664,     0,     0,   304,     0,     0,     0,     0,
     0,   305,     0,     0,   306,     0,     0,     0,     0,     0,
     0,     0,   307,   308,   309,     0,     0,     0,     0,     0,
   310,   311,   312,     0,     0,     0,     0,   313,   761,   663,
     0,   285,     8,     9,    10,     0,    12,   501,   287,   288,
     0,   289,    14,     0,     0,   314,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    17,   290,    18,
     0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
    22,   296,   297,     0,    24,     0,     0,     0,   298,   299,
   300,   301,   302,    27,     0,    28,   303,   664,     0,     0,
   304,     0,     0,     0,     0,     0,   305,     0,     0,   306,
     0,     0,     0,     0,     0,     0,     0,   307,   308,   309,
     0,     0,     0,     0,     0,   310,   311,   312,     0,     0,
     0,     0,   313,     0,     0,   519,     0,   285,     8,     9,
    10,  1174,    12,   286,   287,   288,     0,   289,    14,     0,
   314,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    17,   290,    18,     0,    20,     0,   291,
   292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
    24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
     0,    28,   303,  -275,     0,     0,   304,     0,     0,     0,
     0,     0,   305,     0,     0,   520,     0,     0,     0,     0,
     0,     0,     0,   307,   308,   521,     0,     0,     0,     0,
     0,   310,   311,   312,     0,     0,     0,   663,   522,   285,
     8,     9,    10,     0,    12,   501,   287,   288,     0,   289,
    14,     0,     0,     0,     0,     0,   314,     0,     0,     0,
     0,     0,     0,     0,     0,    17,   290,    18,     0,    20,
     0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
   297,     0,    24,     0,     0,     0,   298,   299,   300,   301,
   302,    27,     0,    28,   303,   664,     0,     0,   304,     0,
     0,     0,     0,     0,   305,     0,     0,   306,     0,     0,
     0,     0,     0,     0,     0,   307,   308,   309,     0,     0,
     0,     0,     0,   310,   311,   312,     0,     0,     0,   768,
   313,   285,     8,     9,    10,     0,    12,   501,   287,   288,
     0,   289,    14,     0,     0,     0,     0,     0,   314,     0,
     0,     0,     0,     0,     0,     0,     0,    17,   290,    18,
     0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
    22,   296,   297,     0,    24,     0,     0,     0,   298,   299,
   300,   301,   302,    27,     0,    28,   303,     0,     0,     0,
   304,  -738,     0,     0,     0,     0,   305,     0,     0,   306,
     0,     0,     0,     0,     0,     0,     0,   307,   308,   309,
     0,     0,     0,     0,     0,   310,   311,   312,     0,     0,
     0,   519,   313,     7,     8,     9,    10,     0,    12,   286,
   287,   288,     0,   289,    14,     0,     0,     0,     0,     0,
   314,     0,     0,     0,     0,     0,     0,     0,     0,    17,
   290,    18,     0,    20,     0,   291,   292,    21,     0,   293,
   294,   295,    22,   296,   297,     0,    24,     0,     0,     0,
   298,   299,   300,   301,   302,    27,     0,    28,    29,  -275,
     0,     0,   304,     0,     0,     0,     0,     0,   305,     0,
     0,  1388,     0,     0,     0,     0,     0,     0,     0,   307,
   308,  1389,     0,     0,     0,     0,     0,   310,   311,   312,
     0,     0,     0,  1487,  1390,   285,     8,     9,    10,     0,
    12,   286,   287,   288,     0,   289,    14,     0,     0,     0,
     0,     0,   314,     0,     0,     0,     0,     0,     0,     0,
     0,    17,   290,    18,     0,    20,     0,   291,   292,    21,
     0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
     0,     0,   298,   299,   300,   301,   302,    27,     0,    28,
   303,     0,     0,  -163,   304,     0,     0,     0,     0,     0,
   305,     0,     0,   306,     0,     0,     0,     0,     0,     0,
     0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
   311,   312,     0,     0,     0,   768,   313,   285,     8,     9,
    10,     0,    12,   501,   287,   288,     0,   289,    14,     0,
     0,     0,     0,     0,   314,     0,     0,     0,     0,     0,
     0,     0,     0,    17,   290,    18,     0,    20,     0,   291,
   292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
    24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
     0,    28,   303,     0,     0,     0,   304,     0,     0,     0,
     0,     0,   305,   248,     0,   306,     8,     9,     0,     0,
    12,    13,     0,   307,   308,   309,    14,     0,     0,     0,
     0,   310,   311,   312,     0,     0,     0,     0,   313,     0,
     0,    17,     0,    18,     0,     0,     0,     0,     0,    21,
     0,   249,   250,     0,  -738,     0,   314,     0,    24,     0,
   251,     0,     0,     0,     0,     0,     0,    27,     0,   129,
   130,     0,   252,     0,     0,     0,   253,   254,   255,   256,
   257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
   267,   268,   269,   270,   271,   272,   273,     0,     0,   274,
   275,   276,     0,     0,   277,     0,   848,   278,   285,     8,
     9,    10,     0,    12,   501,   287,   288,     0,   289,    14,
     0,     0,     0,     0,   279,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    17,   290,    18,     0,    20,     0,
   291,   292,    21,     0,   293,   294,   295,    22,   296,   297,
     0,    24,     0,     0,     0,   298,   299,   300,   301,   302,
    27,     0,    28,   303,     0,     0,     0,   304,     0,     0,
     0,     0,     0,   305,     0,     0,   306,     0,     0,     0,
     0,     0,     0,     0,   307,   308,   309,     0,     0,     0,
     0,     0,   310,   311,   312,     0,     0,     0,   850,   313,
   285,     8,     9,    10,     0,    12,   501,   287,   288,     0,
   289,    14,     0,     0,     0,     0,     0,   314,     0,     0,
     0,     0,     0,     0,     0,     0,    17,   290,    18,     0,
    20,     0,   291,   292,    21,     0,   293,   294,   295,    22,
   296,   297,     0,    24,     0,     0,     0,   298,   299,   300,
   301,   302,    27,     0,    28,   303,     0,     0,     0,   304,
     0,     0,     0,     0,     0,   305,     0,     0,   306,     0,
     0,     0,     0,     0,     0,     0,   307,   308,   309,     0,
     0,     0,     0,     0,   310,   311,   312,     0,     0,     0,
  1401,   313,   285,     8,     9,    10,     0,    12,   501,   287,
   288,     0,   289,    14,     0,     0,     0,     0,     0,   314,
     0,     0,     0,     0,     0,     0,     0,     0,    17,   290,
    18,     0,    20,     0,   291,   292,    21,     0,   293,   294,
   295,    22,   296,   297,     0,    24,     0,     0,     0,   298,
   299,   300,   301,   302,    27,     0,    28,   303,     0,     0,
     0,   304,     0,     0,     0,     0,     0,   305,     0,     0,
   306,     0,     0,     0,     0,     0,     0,     0,   307,   308,
   309,     0,     0,     0,     0,     0,   310,   311,   312,   285,
     8,     9,    10,   313,    12,   501,   287,   288,     0,   289,
    14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   314,     0,     0,     0,    17,   290,    18,     0,    20,
     0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
   297,     0,    24,     0,     0,     0,   298,   299,   300,   301,
   302,    27,     0,    28,   303,     0,     0,     0,   304,     0,
     0,     0,     0,     0,   305,     0,   925,   306,     7,     8,
   926,    10,   134,    12,    13,   307,   308,   309,     0,    14,
     0,     0,     0,   310,   311,   312,     0,     0,     0,     0,
   313,     0,     0,     0,    17,     0,    18,    19,    20,     0,
     0,     0,    21,  -487,     0,     0,     0,    22,   314,   807,
     0,    24,   927,     0,   928,     0,     0,     0,     0,     0,
    27,     0,    28,    29,     0,     0,   929,     0,   930,     0,
     0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    32,     0,     0,     0,
     0,     0,     0,     0,    33,     0,     0,     0,     0,    34,
     0,     0,     0,  1232,  1233,  1234,    10,   134,    12,   286,
   287,   288,     0,   289,    14,  1235,  -487,  1236,  1237,  1238,
  1239,  1240,  1241,  1242,  1243,  1244,  1245,    15,    16,    17,
   290,    18,    19,    20,     0,   291,   292,    21,     0,   293,
   294,   295,    22,   296,   297,     0,    24,     0,     0,     0,
   298,   299,   300,   301,   302,    27,     0,  1246,   303,   660,
     0,  1247,   304,     0,     0,     0,     0,     0,   305,     0,
     0,   306,     0,     0,     0,     0,     0,     0,     0,   307,
   308,   309,     0,     0,     0,     0,     0,   310,   311,   312,
     0,     0,     0,     0,   313,     0,  1248,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,  1347,   314,  1232,  1233,  1234,    10,   134,    12,   286,
   287,   288,     0,   289,    14,  1235,     0,  1236,  1237,  1238,
  1239,  1240,  1241,  1242,  1243,  1244,  1245,    15,    16,    17,
   290,    18,    19,    20,     0,   291,   292,    21,     0,   293,
   294,   295,    22,   296,   297,     0,    24,     0,     0,     0,
   298,   299,   300,   301,   302,    27,     0,  1246,   303,   660,
     0,  1247,   304,     0,     0,     0,     0,     0,   305,     0,
     0,   306,     0,     0,     0,     0,     0,     0,     0,   307,
   308,   309,     0,     0,     0,     0,     0,   310,   311,   312,
     0,     0,     0,     0,   313,     0,  1248,     0,     0,  1232,
  1233,  1234,    10,   134,    12,   286,   287,   288,     0,   289,
    14,  1235,   314,  1236,  1237,  1238,  1239,  1240,  1241,  1242,
  1243,  1244,  1245,    15,    16,    17,   290,    18,    19,    20,
     0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
   297,     0,    24,     0,     0,     0,   298,   299,   300,   301,
   302,    27,     0,  1246,   303,  1462,     0,  1247,   304,     0,
     0,     0,     0,     0,   305,     0,     0,   306,     0,     0,
     0,     0,     0,     0,     0,   307,   308,   309,     0,     0,
     0,     0,     0,   310,   311,   312,     0,     0,     0,     0,
   313,     0,  1248,     0,     0,  1232,  1233,  1234,    10,   134,
    12,   286,   287,   288,     0,   289,    14,  1235,   314,  1236,
  1237,  1238,  1239,  1240,  1241,  1242,  1243,  1244,  1245,    15,
    16,    17,   290,    18,    19,    20,     0,   291,   292,    21,
     0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
     0,     0,   298,   299,   300,   301,   302,    27,     0,  1246,
   303,     0,     0,  1247,   304,     0,     0,     0,     0,     0,
   305,     0,     0,   306,     0,     0,     0,     0,     0,     0,
     0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
   311,   312,     0,     0,     0,     0,   313,     0,  1248,   285,
     8,     9,    10,   134,    12,   286,   287,   288,   673,   289,
    14,     0,     0,     0,   314,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    17,   290,    18,    19,    20,
     0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
   297,     0,    24,     0,   580,     0,   298,   299,   300,   301,
   302,    27,     0,    28,   303,     0,     0,     0,   304,     0,
     0,     0,     0,     0,   305,     0,     0,   834,     0,     0,
     0,     0,     0,     0,     0,   307,   308,   835,     0,     0,
     0,     0,     0,   310,   311,   312,     0,   583,     0,     0,
   836,   585,     0,     0,   674,     7,     8,     9,    10,   134,
    12,   286,   287,   288,   673,   289,    14,     0,   314,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    17,   290,    18,    19,    20,     0,   291,   292,    21,
     0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
   580,     0,   298,   299,   300,   301,   302,    27,     0,    28,
    29,     0,     0,     0,   304,     0,     0,     0,     0,     0,
   305,     0,     0,  1051,     0,     0,     0,     0,     0,     0,
     0,   307,   308,  1052,     0,     0,     0,     0,     0,   310,
   311,   312,     0,   583,     0,     0,  1053,   585,     0,     0,
   674,   285,     8,     9,    10,     0,    12,   286,   287,   288,
     0,   289,    14,     0,   314,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    17,   290,    18,
     0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
    22,   296,   297,     0,    24,     0,     0,     0,   298,   299,
   300,   301,   302,    27,     0,    28,   303,     0,     0,     0,
   304,     0,     0,     0,     0,     0,   305,     0,     0,   306,
     0,     0,     0,     0,   339,     0,   340,   307,   308,   309,
     0,     0,     0,     0,     0,   310,   311,   312,   285,     8,
     9,    10,   313,    12,   286,   287,   288,     0,   289,    14,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   314,     0,     0,     0,    17,   290,    18,     0,    20,     0,
   291,   292,    21,     0,   293,   294,   295,    22,   296,   297,
     0,    24,     0,   580,     0,   298,   299,   300,   301,   302,
    27,     0,    28,   303,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   305,     0,     0,   834,     0,     0,     0,
     0,     0,     0,     0,   307,   308,   835,     0,     0,     0,
     0,     0,   310,   311,   312,     0,   583,     0,     0,   836,
   585,     7,     8,     9,    10,     0,    12,   286,   287,   288,
     0,   289,    14,     0,     0,     0,     0,   314,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    17,   290,    18,
     0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
    22,   296,   297,     0,    24,     0,   580,     0,   298,   299,
   300,   301,   302,    27,     0,    28,    29,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   305,     0,     0,  1051,
     0,     0,     0,     0,     0,     0,     0,   307,   308,  1052,
     0,     0,     0,     0,     0,   310,   311,   312,     0,   583,
     0,     0,  1053,   585,   285,     8,     9,    10,     0,    12,
   501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
   314,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    17,   290,    18,     0,    20,     0,   291,   292,    21,     0,
   293,   294,   295,    22,   296,   297,     0,    24,     0,     0,
     0,   298,   299,   300,   301,   302,    27,     0,    28,   303,
     0,     0,  1324,   304,     0,     0,     0,     0,     0,   305,
     0,     0,   306,     0,     0,     0,     0,     0,     0,     0,
   307,   308,   309,     0,     0,     0,     0,     0,   310,   311,
   312,     0,     0,     0,     0,   313,   285,     8,     9,    10,
   134,    12,   286,   287,   288,     0,   289,    14,     0,     0,
     0,     0,     0,   314,     0,     0,     0,     0,     0,     0,
     0,     0,    17,   290,    18,    19,    20,     0,   291,   292,
    21,     0,   293,   294,   295,    22,   296,   297,     0,    24,
     0,     0,     0,   298,   299,   300,   301,   302,    27,     0,
    28,   303,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   305,     0,     0,   306,     0,     0,     0,     0,     0,
     0,     0,   307,   308,   309,     0,     0,     0,     0,     0,
   310,   311,   312,   285,     8,     9,    10,   313,    12,   286,
   287,   288,     0,   289,    14,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   314,     0,     0,     0,    17,
   290,    18,     0,    20,     0,   291,   292,    21,     0,   293,
   294,   295,    22,   296,   297,     0,    24,     0,     0,     0,
   298,   299,   300,   301,   302,    27,     0,    28,   303,     0,
     0,     0,   304,     0,     0,     0,     0,     0,   305,     0,
     0,   306,     0,     0,     0,     0,     0,     0,     0,   307,
   308,   309,     0,     0,     0,     0,     0,   310,   311,   312,
   285,     8,     9,    10,   313,    12,   501,   287,   288,     0,
   289,    14,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   314,     0,     0,     0,    17,   290,    18,     0,
    20,     0,   291,   292,    21,     0,   293,   294,   295,    22,
   296,   297,     0,    24,     0,     0,     0,   298,   299,   300,
   301,   302,    27,     0,    28,   303,     0,     0,     0,   304,
     0,     0,     0,     0,     0,   305,     0,     0,   306,     0,
     0,     0,     0,     0,     0,     0,   307,   308,   309,     0,
     0,     0,     0,     0,   310,   311,   312,   285,     8,     9,
    10,   313,    12,   501,   287,   288,     0,   289,    14,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   314,
     0,     0,     0,    17,   290,    18,     0,    20,     0,   291,
   292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
    24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
     0,    28,   303,   532,     0,     0,     0,     0,     0,     0,
     0,     0,   305,     0,     0,   306,     0,     0,     0,     0,
     0,     0,     0,   307,   308,   309,     0,     0,     0,     0,
     0,   310,   311,   312,   285,     8,     9,    10,   533,    12,
   501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   314,     0,     0,     0,
    17,   290,    18,     0,    20,     0,   291,   292,    21,     0,
   293,   294,   295,    22,   296,   297,     0,    24,     0,     0,
     0,   298,   299,   300,   301,   302,    27,     0,    28,   303,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   305,
     0,     0,   306,     0,     0,     0,     0,     0,     0,     0,
   307,   308,   309,     0,     0,     0,     0,     0,   310,   311,
   312,     0,     0,     0,     0,   313,   569,   285,     8,     9,
    10,     0,    12,   501,   287,   288,     0,   289,    14,     0,
     0,     0,     0,   314,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    17,   290,    18,     0,    20,     0,   291,
   292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
    24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
     0,    28,   303,     0,     0,     0,   304,     0,     0,     0,
     0,     0,   305,     0,     0,   520,     0,     0,     0,     0,
     0,     0,     0,   307,   308,   521,     0,     0,     0,     0,
     0,   310,   311,   312,  1023,     8,     9,    10,   522,    12,
   501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   314,     0,     0,     0,
    17,   290,    18,     0,    20,     0,   291,   292,    21,     0,
   293,   294,   295,    22,   296,   297,     0,    24,     0,     0,
     0,   298,   299,   300,   301,   302,    27,     0,    28,   303,
     0,     0,     0,   304,     0,     0,     0,     0,     0,   305,
     0,     0,   306,     0,     0,     0,     0,     0,     0,     0,
   307,   308,   309,     0,     0,     0,     0,     0,   310,   311,
   312,     7,     8,     9,    10,   313,    12,   501,   287,   288,
     0,   289,    14,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   314,     0,     0,     0,    17,   290,    18,
     0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
    22,   296,   297,     0,    24,     0,     0,     0,   298,   299,
   300,   301,   302,    27,     0,    28,    29,     0,     0,     0,
   304,     0,     0,     0,     0,     0,   305,     0,     0,  1388,
     0,     0,     0,     0,     0,     0,     0,   307,   308,  1389,
     0,     0,     0,     0,     0,   310,   311,   312,   285,     8,
     9,    10,  1390,    12,   501,   287,   288,     0,   289,    14,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   314,     0,     0,     0,    17,   290,    18,     0,    20,     0,
   291,   292,    21,     0,   293,   294,   295,    22,   296,   297,
     0,    24,     0,     0,     0,   298,   299,   300,   301,   302,
    27,     0,    28,   303,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   305,     0,     0,   306,     0,     0,     0,
     0,     0,     0,     0,   307,   308,   309,     0,     0,     0,
     0,     0,   310,   311,   312,   285,     8,     9,    10,   502,
    12,   501,   287,   288,     0,   289,    14,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   314,     0,     0,
     0,    17,   290,    18,     0,    20,     0,   291,   292,    21,
     0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
     0,     0,   298,   299,   300,   301,   302,    27,     0,    28,
   303,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   305,     0,     0,   306,     0,     0,     0,     0,     0,     0,
     0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
   311,   312,   285,     8,     9,    10,   505,    12,   501,   287,
   288,     0,   289,    14,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   314,     0,     0,     0,    17,   290,
    18,     0,    20,     0,   291,   292,    21,     0,   293,   294,
   295,    22,   296,   297,     0,    24,     0,     0,     0,   298,
   299,   300,   301,   302,    27,     0,    28,   303,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   305,     0,     0,
   306,     0,     0,     0,     0,     0,     0,     0,   307,   308,
   309,     0,     0,     0,     0,     0,   310,   311,   312,   285,
     8,     9,    10,   313,    12,   501,   287,   288,     0,   289,
    14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   314,     0,     0,     0,    17,   290,    18,     0,    20,
     0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
   297,     0,    24,     0,     0,     0,   298,   299,   300,   301,
   302,    27,     0,    28,   303,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   305,     0,     0,   520,     0,     0,
     0,     0,     0,     0,     0,   307,   308,   521,     0,     0,
     0,     0,     0,   310,   311,   312,     7,     8,     9,    10,
   522,    12,   286,   287,   288,     0,   289,    14,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   314,     0,
     0,     0,    17,   290,    18,     0,    20,     0,   291,   292,
    21,     0,   293,   294,   295,    22,   296,   297,     0,    24,
     0,     0,     0,   298,   299,   300,   301,   302,    27,     0,
    28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   305,     0,     6,  1388,     7,     8,     9,    10,    11,
    12,    13,   307,   308,  1389,     0,    14,     0,     0,     0,
   310,   311,   312,     0,     0,     0,     0,  1390,     0,    15,
    16,    17,     0,    18,    19,    20,     0,     0,     0,    21,
     0,     0,     0,     0,    22,   314,     0,    23,    24,    25,
     0,    26,     0,     0,     0,     0,     0,    27,     0,    28,
    29,     0,   166,    30,     7,     8,     9,    10,    11,    12,
    13,     0,     0,    31,     0,    14,     0,     0,     0,     0,
     0,     0,     0,    32,     0,     0,     0,     0,    15,    16,
    17,    33,    18,    19,    20,     0,    34,     0,    21,     0,
     0,     0,    35,    22,     0,     0,    23,    24,    25,     0,
    26,     0,     0,     0,     0,     0,    27,     0,    28,    29,
     0,     0,    30,     7,     8,     9,    10,   201,   202,   203,
     0,     0,    31,     0,    14,     0,     0,     0,     0,     0,
     0,     0,    32,     0,     0,     0,     0,     0,     0,     0,
    33,     0,    19,     0,     0,    34,     0,    21,     0,     0,
     0,    35,    22,     0,     0,     0,    24,     0,   580,     0,
     0,     0,     0,     0,     0,    27,     0,    28,    29,     7,
     8,     9,    10,   201,   202,   203,     0,     0,     0,     0,
    14,   862,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   863,     0,     0,     0,     0,     0,     0,    19,    33,
     0,   583,     0,    21,   864,   585,     0,     0,    22,     0,
     0,     0,    24,     0,   580,     0,     0,     0,     0,     0,
     0,    27,     0,    28,    29,     7,     8,     9,    10,   134,
    12,    13,     0,     0,     0,     0,    14,   862,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   863,     0,     0,
     0,    17,     0,    18,    19,    33,     0,   583,     0,    21,
   898,   585,     0,     0,    22,     0,     0,     0,    24,     0,
     0,     0,     0,     0,     0,     0,     0,    27,     0,    28,
    29,     7,     8,     9,    10,   134,    12,    13,     0,     0,
   904,     0,    14,    31,     0,     0,     0,   135,     0,     0,
     0,     0,     0,    32,     0,     0,     0,    17,     0,    18,
    19,    33,     0,     0,     0,    21,    34,     0,     0,     0,
    22,     0,     0,     0,    24,     0,  1086,     8,   926,    10,
   192,    12,   193,    27,     0,    28,    29,    14,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
     0,     0,    17,     0,    18,    19,     0,     0,     0,    32,
    21,     0,     0,     0,     0,    22,     0,    33,     0,    24,
     0,     0,    34,     0,     0,     0,     0,     0,    27,     0,
    28,    29,     0,     0,     0,     0,  1088,     7,     8,     9,
    10,   192,    12,   193,    31,     0,     0,     0,    14,     0,
     0,     0,     0,     0,    32,     0,     0,     0,     0,     0,
     0,     0,    33,    17,     0,    18,    19,    34,     0,     0,
     0,    21,     0,     0,     0,     0,    22,     0,     0,     0,
    24,     0,     7,     8,     9,    10,   134,    12,    13,    27,
     0,    28,    29,    14,     0,  1337,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    31,     0,     0,    17,     0,
    18,    19,     0,     0,     0,    32,    21,     0,     0,     0,
     0,    22,     0,    33,     0,    24,     0,     0,    34,     0,
     0,     0,     0,     0,    27,     0,    28,    29,     7,     8,
     9,    10,   192,    12,   193,     0,     0,     0,     0,    14,
    31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    32,     0,     0,     0,    17,     0,    18,    19,    33,     0,
     0,     0,    21,    34,     0,     0,     0,    22,     0,     0,
     0,    24,     0,     7,     8,     9,    10,   201,   202,   203,
    27,     0,    28,    29,    14,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
     0,     0,    19,     0,     0,     0,    32,    21,     0,     0,
     0,     0,    22,     0,    33,  1378,    24,     0,   580,    34,
     0,     0,     0,     0,     0,    27,     0,    28,    29,   535,
   536,   537,   538,   539,   540,   541,   542,   543,   544,   545,
   546,   180,   548,   549,   550,   551,   552,   553,   554,   555,
   556,   181,     0,     0,     0,     0,     0,     0,     0,    33,
     0,     0,     0,     0,  1340,     0,  1379,   535,   536,   537,
   538,   539,   540,   541,   542,   543,   544,   545,   546,   547,
   548,   549,   550,   551,   552,   553,   554,   555,   556,     8,
     9,     0,   134,    12,    13,     0,     8,     9,     0,    14,
    12,   230,     0,     8,     9,     0,    14,    12,    13,     0,
     0,     0,     0,    14,    17,     0,    18,    19,     0,     0,
     0,    17,    21,    18,     0,     0,    19,     0,    17,    21,
    18,   634,     0,     0,     0,     0,    21,     0,    24,     0,
    27,     0,   129,   130,     0,    24,     0,    27,     0,   129,
   130,     0,     0,     0,    27,     0,   129,   130,   535,   536,
   537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
   547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
   535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
   545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
   555,   556,   535,   536,   537,   538,   539,   540,   541,   542,
   543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
   553,   554,   555,   556,     0,     0,     0,     0,     0,  1124,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   617,     0,     0,  1432,   535,   536,
   537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
   547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
  1301,   535,   536,   537,   538,   539,   540,   541,   542,   543,
   544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
   554,   555,   556,  1449,   535,   536,   537,   538,   539,   540,
   541,   542,   543,   544,   545,   546,   547,   548,   549,   550,
   551,   552,   553,   554,   555,   556,   535,   536,   537,   538,
   539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
   549,   550,   551,   552,   553,   554,   555,   556
};

static const short yycheck[] = {     4,
   658,   332,    54,   161,    75,   392,   656,   196,   470,   392,
    58,   427,     4,     4,   125,   236,    83,   392,    24,   888,
  1226,    26,   151,   152,   338,     4,   931,   449,   796,    79,
    14,    36,   196,   363,   132,   940,    41,     4,   721,   289,
   290,   205,   231,   726,    36,    36,    11,    26,    34,    41,
    41,    56,   132,   133,    11,    53,  1256,    36,    89,    26,
    91,    92,    41,  1263,    31,    32,    71,   226,  1376,    36,
   320,    61,   128,   422,    41,  1249,    11,   133,    83,  1187,
  1188,  1412,    87,     4,    89,   137,    91,    92,    93,    48,
    60,   139,   281,  1201,  1410,    38,   146,    34,    82,    55,
    61,   106,   107,  1407,    36,    26,    63,   204,   205,    41,
   141,     9,   143,     0,    93,    36,    83,   338,    60,    75,
    41,   105,     4,    65,     1,  1441,    93,    55,     0,   200,
     1,    75,     1,   138,    76,    94,   141,    60,   143,     4,
   190,   111,    75,   332,    26,   110,  1393,    75,   196,   832,
   111,   110,  1483,   110,    36,    79,   204,   205,   156,    41,
   165,    26,    83,   585,    62,  1469,   152,   153,   111,  1277,
    61,    36,    93,   504,   111,   110,    41,   526,  1286,  1287,
  1380,  1289,    59,   231,   151,   152,   165,   110,    59,   187,
    59,    56,    63,  1440,    63,   657,   182,   428,   165,    12,
  1508,    60,  1376,    49,   435,    25,  1522,    27,    28,   199,
    60,    93,   584,   180,   181,   983,    12,   207,    61,   591,
   111,  1421,    55,  1470,    61,    96,     7,    96,    93,     4,
    60,   329,    14,   281,     4,     5,    91,    92,    39,    59,
    59,    23,    75,    63,   165,  1451,    60,    60,   232,   329,
    63,   110,    65,   284,    55,    55,    12,    38,   325,    48,
   110,    36,    76,    63,    60,    59,    41,    63,   111,   500,
   447,    65,  1472,   956,   111,   958,    96,   282,   455,   284,
   110,   100,    64,   165,   332,    98,   141,    57,    58,   603,
   454,  1399,  1400,    48,   681,    94,   348,  1202,   681,   629,
   165,   349,    98,    48,    60,    94,   386,    63,   313,   365,
   659,    81,   441,   442,   110,   473,    48,    27,    28,    63,
   325,    34,    32,   247,     3,     4,     5,   313,   333,    60,
   386,   562,    94,   564,   565,  1253,    63,  1255,    75,    94,
    95,   123,    98,    60,    61,    76,   677,    78,    63,    94,
    95,    61,    48,    94,   338,    65,   453,   454,   325,    63,
    75,    34,    94,    95,   461,  1133,   110,   598,   150,    48,
  1239,    75,  1442,   291,   292,   472,    55,    61,    57,    58,
     8,     9,   798,   110,  1454,    48,    14,   392,   306,    25,
  1073,   309,   463,  1463,   312,   492,     4,   315,    94,    95,
   318,   111,  1085,    48,   325,   453,   454,    48,   326,    37,
   415,   833,  1482,   461,   110,    94,    94,    48,    46,   109,
    48,    48,    25,    59,   472,   392,    61,    63,    36,   284,
   435,    94,  1502,    41,    65,    48,   415,  1306,   151,   152,
   153,   223,   224,    55,   492,    32,  1315,  1316,   415,    94,
    95,    75,    65,    94,   236,  1525,   442,   443,    60,    61,
    96,   316,   924,    94,   836,   110,    94,    94,   435,   182,
   460,   392,   859,    55,   441,   442,   859,    63,   151,   152,
   153,    94,    95,    48,   859,   475,    48,   342,    48,   344,
    63,   346,   864,    75,   415,    55,    59,   502,    48,   566,
   505,    55,    75,    65,   509,   510,   511,   512,   513,   182,
     3,     4,     5,     6,   435,    75,   502,   522,   111,   505,
     3,     4,     5,   305,   529,    59,   898,   841,   533,    94,
    95,   947,    94,   415,    94,   521,   522,   886,    48,     4,
     5,   396,   397,    94,    94,   110,   705,   533,   707,    42,
   415,    60,    61,   712,     4,     5,   745,    55,   974,   975,
   565,   566,    55,    48,    57,    58,   989,   990,   799,   992,
    76,   993,    48,    48,    57,    58,  1445,    75,  1040,   584,
   362,   812,    55,   814,    94,   816,   591,   639,   838,   641,
   642,    55,    57,    58,   642,    56,    89,    58,    81,   566,
    48,   698,   520,   521,   715,   591,  1068,    57,    58,    94,
    55,   595,     4,     5,   581,   582,    81,   584,    94,    94,
   841,     4,     5,   854,   591,   677,     9,    48,   634,   677,
    75,    81,    55,  1049,    55,   640,     4,     5,    48,   644,
   110,     9,  1058,  1059,   499,   566,    94,  1063,  1064,   880,
   698,   657,     4,     5,    75,    48,     9,   988,    48,    12,
  1032,   110,    55,   584,    95,    57,    58,    63,   110,    48,
   591,   110,    55,    94,    57,    58,   681,   138,   139,    75,
    11,  1053,    75,   111,    94,    48,   468,    55,    71,    57,
    58,   722,   723,   724,    48,    48,     3,   745,    81,    27,
    28,    94,    61,    71,    94,    57,    58,    60,  1124,    62,
    63,   716,    65,    81,   681,    94,   721,   722,   723,   724,
    94,   726,   113,    76,   716,    78,    95,    95,   441,   442,
   443,    94,   113,     4,     5,   196,    63,   716,    55,    95,
    94,    94,    95,   204,   205,    98,    63,    84,    85,   716,
   532,    60,    61,   739,   721,     4,     5,   110,    75,   726,
   681,    94,   921,   922,   923,  1181,    60,    61,   441,   442,
   443,    55,    94,   234,     8,     9,     4,     5,    75,    63,
    14,    55,    75,     4,     5,  1435,    57,    58,    75,    63,
   795,    75,   716,    75,   799,   716,    11,  1455,  1214,    48,
   721,    75,   110,    37,    60,   726,    55,   111,    57,    58,
    81,  1042,    46,  1044,   110,  1046,     3,     4,     5,   869,
    55,   826,    71,     4,     5,   110,    65,   832,    63,    57,
    58,   836,    81,   110,   716,    55,    57,    58,    60,    61,
    75,   110,    91,    63,    61,    94,    95,    60,    61,   835,
   836,   111,   634,    81,   859,    75,   861,   841,   111,   864,
    81,   643,   113,   934,   935,   832,   110,   834,   835,   836,
    57,    58,   943,   113,    55,    75,    57,    58,   864,     4,
     5,    75,   664,    75,   113,  1301,   938,   113,   349,   807,
    71,   110,   859,   898,   110,   862,   863,   864,   110,    59,
    81,  1030,  1031,    25,   110,    27,    28,   912,   733,   734,
   735,   832,   898,    55,   919,   836,   834,   835,     4,     5,
  1151,     8,  1051,  1052,  1255,   113,   931,    94,   933,    48,
    55,   898,    57,    58,   939,   940,    65,    59,   859,   931,
    60,    63,    94,   864,    61,   111,    71,    55,   940,    65,
    65,   956,   931,   958,   933,    63,    81,   110,    61,    45,
    25,   940,    27,    28,   931,    63,   933,    75,  1317,    55,
    95,    57,    58,   940,    96,   110,   110,   898,   110,   110,
  1329,     7,     8,     9,  1034,   446,    65,    65,    14,   956,
    65,   958,   453,   454,    59,   113,   457,    65,    63,    94,
   461,    60,     3,     4,     5,     6,    32,   931,   110,   933,
   931,    37,   933,   110,   110,   939,   940,  1404,  1089,   940,
    46,  1404,   110,    76,  1095,  1096,   110,  1032,  1099,  1100,
    76,    96,  1103,    76,  1040,   956,    76,   958,     3,     4,
     5,    42,    63,   110,  1393,  1031,  1032,  1097,  1053,   931,
   110,   933,    63,    60,   110,    63,    57,    58,   940,   110,
     3,     4,     5,  1030,  1031,  1032,  1052,  1053,  1073,   113,
   852,    95,   111,   938,   939,   110,   110,   995,    48,    25,
  1085,    27,    28,   113,  1051,  1052,  1053,  1418,    89,  1438,
    55,  1440,    57,    58,  1510,   950,   951,   952,    89,     3,
     4,     5,   111,  1108,   110,    87,  1073,    89,   110,    91,
    92,  1032,    55,    59,    57,    58,  1108,    63,  1085,   113,
   113,  1470,   110,     3,     4,     5,   110,   110,    60,  1108,
   110,  1480,  1053,  1051,  1052,     3,     4,     5,     6,   111,
    65,  1108,    79,    80,    81,    82,    83,    84,    85,    65,
    96,   864,  1073,    57,    58,    59,    75,    63,   110,   141,
   110,   143,  1167,    94,  1085,    94,     3,     4,     5,     6,
    94,    94,  1177,  1097,    42,  1167,  1167,    57,    58,   640,
   110,   642,     8,   111,  1108,   898,   113,  1108,  1167,    57,
    58,   864,   110,   975,     4,     5,   110,  1202,   110,   392,
  1167,  1253,   110,  1255,   113,    42,   111,  1255,   110,   110,
  1202,   110,    49,  1284,  1285,   110,   677,   110,   110,    60,
    57,    58,    60,  1202,   110,   898,  1108,  1385,   110,  1418,
    63,     3,     4,     5,   113,  1202,    48,   698,   110,   110,
   701,   110,   435,    97,  1249,    55,  1167,    57,    58,  1254,
    34,  1256,    89,   110,   110,   110,    65,  1249,  1263,  1388,
  1389,     3,     4,     5,  1256,  1256,   110,  1049,  1339,    63,
  1249,  1263,  1263,   113,  1198,   110,   110,  1256,  1202,   110,
   110,  1202,  1249,    55,  1263,    57,    58,    59,    63,  1256,
   446,     3,     4,     5,    61,    61,  1263,     3,     4,     5,
     6,   457,   284,    16,     9,    61,    94,     1,    94,     3,
     4,     5,     6,    61,     8,    57,    58,  1030,  1031,  1032,
  1202,    61,   304,    81,    82,    83,    84,    85,  1249,    94,
    94,  1249,     3,     4,     5,  1256,    42,    17,  1051,  1052,
  1053,    61,  1263,    49,    99,    57,    58,   109,    42,   110,
    61,    57,    58,   110,  1340,    49,   110,  1030,  1031,  1032,
   110,    55,    11,    57,    58,    61,    61,  1419,    94,    60,
  1418,  1376,  1377,   110,    61,  1380,    65,  1448,  1051,  1052,
  1053,   110,  1164,    89,  1376,  1390,    57,    58,  1380,  1380,
    11,   584,    61,    61,   110,    89,    11,  1376,   591,  1404,
    61,  1380,  1407,  1389,  1390,  1410,     3,     4,     5,  1376,
  1377,     0,     0,  1380,     0,     2,  1421,   417,  1410,  1410,
   365,  1388,  1389,   859,   165,  1434,   165,   939,   933,  1421,
  1421,  1410,  1372,  1040,    31,   529,  1441,  1404,  1522,  1254,
  1407,   852,  1421,  1410,   847,   427,   428,   225,  1068,  1441,
  1441,  1108,    48,   435,  1421,  1376,  1377,   664,    55,  1380,
    57,    58,  1441,  1245,  1469,   924,   933,  1472,   939,   614,
  1388,  1389,  1200,   845,  1441,   566,   329,   187,   939,   123,
  1472,  1472,  1256,  1404,   945,  1168,  1407,  1480,   681,  1410,
  1424,    87,    88,  1472,  1494,  1455,    92,    93,    94,    95,
  1421,  1496,  1469,   907,    -1,  1472,  1177,     7,     8,     9,
    -1,    -1,    -1,    -1,    14,    -1,    -1,  1522,   500,    -1,
  1441,    -1,    -1,    -1,    -1,    -1,  1308,    -1,   721,    -1,
  1522,  1522,    32,   726,    -1,    -1,    -1,    37,    -1,     3,
     4,     5,     6,  1522,    -1,   701,    46,   529,  1469,    -1,
   532,  1472,    -1,   535,   536,  1522,   538,   539,   540,   541,
   542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
   552,   553,   554,   555,   556,    -1,    -1,    -1,    42,    -1,
   562,    -1,   564,   565,    -1,    49,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    57,    58,   106,   107,    -1,     3,     4,
     5,  1522,     7,    -1,    -1,    -1,     3,     4,     5,   591,
     7,     8,     9,   428,    -1,    -1,   598,  1078,  1079,    -1,
   435,    12,   180,   181,   182,    89,    31,  1340,    -1,    -1,
    -1,    -1,    -1,    38,   616,   617,    27,    28,    -1,   832,
    37,    32,    -1,   836,    -1,    -1,  1107,    -1,    -1,    -1,
    55,    -1,    57,    58,    -1,    -1,    -1,    48,    55,    -1,
    57,    58,    59,    -1,    -1,    -1,   859,  1340,    -1,    60,
    61,   864,    63,   696,    65,  1388,  1389,  1390,    -1,    -1,
    -1,    -1,   664,    -1,    -1,   500,    -1,    -1,    -1,    -1,
    -1,     3,     4,     5,     6,    -1,    -1,   720,    -1,    -1,
    -1,    -1,   725,    94,    95,   898,    -1,    98,   105,   106,
   107,    -1,    -1,    -1,    -1,  1388,  1389,  1390,    -1,   110,
    27,    28,    -1,    -1,    -1,    32,    -1,    -1,    -1,    -1,
    42,    -1,  1193,  1194,    -1,  1196,  1197,    -1,  1199,    -1,
   722,   723,   724,    55,    -1,    57,    58,   562,    -1,   564,
   565,    63,    -1,    60,    61,    -1,    -1,   739,    65,    71,
    -1,    -1,    -1,   956,    -1,   958,    -1,    -1,    -1,    81,
     4,     5,    -1,     7,     8,     9,   591,    89,    12,   761,
    14,    -1,    94,   598,    -1,    -1,     3,     4,     5,   945,
     7,     8,     9,  1254,  1255,    29,    -1,    31,    32,    -1,
    -1,    -1,   313,    37,   827,    -1,   829,    -1,    -1,    -1,
    -1,    -1,    46,  1274,  1275,    -1,   798,   799,    -1,    -1,
    -1,    55,    -1,    57,    58,    -1,     4,    -1,    -1,    -1,
   812,    -1,   814,    -1,   816,    -1,    14,    -1,    -1,  1032,
    57,    58,    -1,    -1,    -1,    -1,    -1,    25,    26,    -1,
    -1,    -1,    -1,    31,    32,    -1,    34,    -1,    36,    -1,
  1053,    -1,   844,    41,    98,    -1,     4,     5,    -1,    -1,
    -1,     9,   854,    -1,    -1,    -1,    54,    -1,    56,   437,
  1073,   439,    -1,   441,   442,   443,    64,    -1,    -1,    -1,
    -1,   873,  1085,    71,   452,  1356,  1357,  1358,   880,    -1,
     7,     8,     9,    -1,    82,    83,    -1,    14,    -1,    -1,
    48,    -1,    -1,    -1,    -1,    93,   898,    55,    -1,    57,
    58,   432,  1078,  1079,   739,    32,    -1,   105,    -1,    -1,
    37,    -1,   955,    71,   957,  1396,  1397,    -1,    -1,    46,
    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,   930,    -1,
   128,  1107,    -1,    91,    61,   133,    94,    95,    -1,   137,
   138,    -1,    -1,    -1,    -1,   947,   144,    -1,    -1,   147,
   148,   106,   107,   151,   152,   153,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   799,    -1,  1009,   165,    -1,    -1,
    -1,   502,   974,   975,   505,    -1,   978,   812,   509,   814,
    -1,   816,   180,   181,   182,     7,     8,     9,    -1,    -1,
  1471,   522,    14,    -1,    -1,    -1,     3,     4,     5,     6,
    -1,    -1,   533,    -1,    -1,    -1,   537,    -1,    -1,    -1,
    32,   209,    -1,    -1,    -1,    37,    -1,  1193,  1194,   854,
  1196,  1197,    -1,  1199,    46,    -1,   224,    -1,    -1,    -1,
    -1,    -1,   563,    -1,   232,    42,    -1,    -1,   569,    61,
  1042,    -1,  1044,    -1,  1046,   880,   244,  1049,    55,    -1,
    57,    58,     3,     4,     5,     6,  1058,  1059,     9,    -1,
    -1,  1063,  1064,   898,    71,    77,    78,    79,    80,    81,
    82,    83,    84,    85,    81,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    89,    -1,   282,   283,  1088,    94,    -1,    -1,
    -1,    42,    -1,    -1,    -1,    -1,    -1,    48,  1274,  1275,
     3,     4,     5,  1146,    55,    -1,    57,    58,    -1,    -1,
   688,   689,    -1,   691,     3,     4,     5,     6,    -1,    -1,
    71,    -1,  1124,    -1,  1126,    -1,    -1,   325,    -1,    -1,
    81,   329,    -1,   331,   332,   333,    39,    40,    89,    42,
    91,    -1,  1185,    94,    95,    -1,  1189,    -1,    -1,  1151,
   348,    -1,    55,    42,    57,    58,    -1,    -1,   313,    -1,
    49,  1204,  1205,    -1,    -1,    -1,    -1,   365,    57,    58,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1220,    -1,  1181,
  1356,  1357,  1358,    -1,    -1,    -1,    -1,    -1,   386,  1191,
  1192,  1404,    81,    -1,   392,    -1,     3,     4,     5,     6,
    89,    -1,     9,    -1,    -1,   403,    -1,  1042,   406,  1044,
    -1,  1046,  1214,   411,    81,    -1,    -1,   415,    -1,    -1,
  1396,  1397,     3,     4,     5,     6,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    42,    -1,   392,  1240,   437,
    -1,   439,    -1,   441,   442,   443,    -1,    -1,    55,   447,
    57,    58,  1295,  1296,   452,    -1,    -1,   455,    -1,    -1,
    -1,    42,    -1,    -1,    71,    -1,    -1,    -1,    49,    -1,
    -1,    -1,   803,    -1,    81,    -1,    57,    58,  1280,    -1,
   435,    -1,    89,    -1,   862,   863,   864,    94,    -1,    -1,
    -1,    -1,   159,    -1,    -1,  1471,    -1,    -1,    -1,  1301,
    81,    -1,    -1,    -1,    -1,   836,  1349,  1350,    89,    -1,
    -1,   178,   510,   511,   512,   513,  1151,    -1,    -1,    -1,
   898,    -1,    -1,    -1,   191,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    85,  1340,    -1,
     3,     4,     5,     6,    -1,    -1,     9,   502,    -1,    -1,
   505,    -1,  1354,  1355,   509,   510,   511,   512,   513,    -1,
   938,  1363,    -1,    -1,    -1,    -1,    -1,   522,   566,    -1,
   568,    -1,    -1,    -1,    -1,    -1,  1378,    -1,   533,    42,
    -1,   579,    -1,   581,   582,    48,   584,    -1,   919,    -1,
    -1,    -1,    55,   591,    57,    58,    -1,   595,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,
   565,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    91,   584,
    -1,    94,    95,    -1,    -1,    -1,   591,    -1,    -1,    -1,
    -1,   639,   640,   641,   642,   643,   644,    -1,    -1,    -1,
  1028,  1029,  1030,  1031,  1032,    -1,    -1,    -1,  1036,    -1,
    -1,    -1,     3,     4,     5,     6,    -1,    -1,     9,    -1,
    -1,    -1,    -1,  1051,  1052,  1053,    -1,    -1,    -1,   677,
    -1,    -1,    -1,   681,    -1,    -1,    -1,    -1,    -1,    -1,
   688,   689,    -1,   691,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    42,    -1,    -1,    -1,  1340,    -1,    48,  1510,    -1,
     3,     4,     5,     6,    55,    -1,    57,    58,   716,    -1,
    -1,    -1,  1053,   721,    -1,    -1,   681,    -1,   726,    -1,
    71,    -1,    -1,    -1,    -1,   733,   734,   735,    -1,    -1,
    81,    -1,    -1,    -1,    -1,    -1,    -1,   745,    89,    42,
    91,    -1,    -1,    94,    95,    -1,    49,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    57,    58,   721,    -1,    -1,    -1,
    -1,   726,    -1,    -1,    -1,    -1,  1154,  1155,   445,  1157,
    -1,    -1,    -1,   450,    -1,    -1,    -1,    -1,    81,  1120,
  1121,  1122,  1123,    -1,    -1,    -1,    89,   795,    -1,    -1,
  1131,    -1,    -1,    -1,    -1,     3,     4,     5,     6,   476,
    -1,     9,    -1,    -1,   481,    -1,    -1,  1195,    -1,   817,
    -1,   819,    -1,    -1,    -1,    -1,   493,   494,   826,   496,
    -1,    -1,   830,    -1,   832,    -1,   834,   835,   836,    -1,
   795,    -1,    -1,   841,    42,    -1,    -1,    -1,    -1,    -1,
    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
    58,   859,    -1,   861,   862,   863,   864,    -1,    -1,    -1,
    -1,   826,    -1,    71,    -1,    -1,    -1,   832,    -1,    -1,
     4,   836,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    89,    -1,    91,    -1,    -1,    94,    95,    -1,    -1,
   898,    -1,    26,    -1,   859,    -1,   861,    31,    32,   864,
    -1,    -1,    36,  1244,   912,    -1,    -1,    41,    -1,    -1,
   587,   588,    -1,    -1,    -1,   592,    -1,    -1,    -1,   927,
    -1,    -1,    56,   931,    -1,   933,    -1,    -1,    -1,    -1,
   938,   939,   940,   898,    -1,    -1,     4,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    14,   912,   956,    -1,
   958,    79,  1340,    -1,   919,    -1,    24,    25,    26,    93,
    -1,    -1,    -1,    31,    32,    -1,    34,    -1,    36,    -1,
    -1,    -1,    -1,    41,    -1,   103,    -1,    -1,    -1,    -1,
    -1,   989,   990,    -1,   992,  1326,    54,    -1,    56,    -1,
    -1,   956,    -1,   958,    -1,    -1,    64,    -1,    -1,    -1,
  1388,  1389,  1390,    71,   132,    -1,    -1,    -1,    -1,    -1,
   144,    -1,    -1,    -1,   148,    83,    -1,    -1,   146,    -1,
  1028,  1029,  1030,  1031,  1032,    93,    -1,    -1,  1036,    -1,
    -1,   165,    -1,    -1,    -1,  1376,  1377,    -1,    -1,    -1,
    -1,    -1,    -1,  1051,  1052,  1053,   180,   181,    -1,  1390,
   727,    -1,   729,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   128,    -1,   190,    -1,    -1,  1073,  1407,  1032,    -1,   137,
   138,    -1,    -1,    -1,    -1,    -1,   144,  1085,    -1,    -1,
   148,    -1,    -1,   151,   152,   153,    -1,    -1,  1053,    -1,
  1098,    -1,    -1,    -1,    -1,   223,    -1,   165,    -1,    -1,
  1108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1073,    -1,
   244,    -1,   180,   181,   182,    -1,    -1,    -1,    -1,   247,
  1085,    -1,    -1,    -1,   801,   802,  1467,   804,  1469,    -1,
     4,     5,    -1,     7,     8,     9,    -1,    -1,    12,    -1,
    14,   209,    -1,    -1,    -1,    -1,  1154,  1155,    -1,  1157,
    -1,    -1,  1493,    -1,   831,    29,    -1,    31,    32,    -1,
    -1,    -1,    -1,    37,    -1,    -1,    -1,  1508,    -1,  1177,
    -1,    -1,    46,    -1,    48,    -1,   244,    -1,    -1,    -1,
    -1,    55,    -1,    57,    58,    -1,    -1,  1195,    -1,   866,
    -1,    -1,  1200,    -1,  1202,    -1,    -1,    71,     3,     4,
     5,     6,    -1,    -1,    -1,    -1,    -1,    81,    -1,   337,
    -1,    -1,  1177,    -1,   282,   283,    -1,    91,    -1,    -1,
    94,    95,    -1,    -1,    98,    74,    75,    76,    77,    78,
    79,    80,    81,    82,    83,    84,    85,    42,    -1,     3,
     4,     5,     6,    48,    -1,  1253,  1254,  1255,    -1,    -1,
    55,    -1,    57,    58,    -1,    -1,    -1,   325,    -1,    -1,
    -1,   329,    -1,   331,   332,   333,    71,    -1,    -1,   403,
   338,   399,   406,    -1,    -1,    -1,    81,   411,    42,    -1,
   348,   415,    -1,    -1,    89,    -1,    91,    -1,    -1,    94,
    95,    55,    -1,    57,    58,    -1,    -1,   365,    -1,    63,
    -1,     4,     5,   437,    -1,   439,     9,    71,    -1,     4,
     5,    -1,    -1,     8,     9,    -1,    -1,    81,   452,    14,
    -1,    -1,    -1,    -1,   392,    89,    -1,  1004,    -1,    -1,
    94,    -1,  1340,    -1,    29,   403,    31,    -1,   406,    -1,
   468,    -1,    37,   411,    -1,    48,    -1,   415,    -1,    -1,
    -1,    46,    55,    -1,    57,    58,    -1,    -1,  1035,    -1,
    55,    -1,    57,    58,    59,    -1,    -1,   495,    71,   437,
    -1,   439,    -1,   441,   442,   443,    -1,    -1,    81,   447,
  1388,  1389,  1390,    -1,   452,    -1,    -1,   455,    91,    -1,
    -1,    94,    95,    -1,    -1,  1072,  1404,    -1,    -1,    94,
    -1,    -1,   470,    -1,    -1,    -1,    -1,  1084,    -1,    -1,
    -1,  1419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,     1,  1390,     3,     4,     5,     6,
     7,     8,     9,    -1,  1111,    -1,    -1,    14,  1115,  1404,
    -1,    -1,   510,   511,   512,   513,    -1,    -1,    -1,    -1,
   578,    -1,    29,    -1,    31,    32,    33,    -1,    -1,    -1,
    37,    38,    -1,    -1,    -1,    42,   594,    -1,    -1,    46,
    47,  1148,    49,    -1,    -1,    -1,    -1,    -1,    55,    -1,
    57,    58,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,   566,    -1,
   568,    -1,    -1,    -1,    81,    -1,   640,    -1,    -1,    -1,
    -1,    -1,    89,   581,   582,    -1,   584,    94,    -1,    -1,
    -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,  1206,
  1207,    -1,    -1,    -1,   111,   603,    -1,    -1,    -1,     3,
     4,     5,     6,    -1,    -1,    -1,    -1,   681,    -1,    -1,
    -1,    -1,    -1,    -1,   688,   689,    -1,   691,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   634,    -1,    -1,    -1,
    -1,   639,   640,   641,   642,   643,   644,    -1,    42,    -1,
    -1,    -1,   716,    -1,    -1,    -1,    -1,    -1,    -1,   657,
    -1,    55,  1269,    57,    58,    -1,  1273,    61,     1,    -1,
     3,     4,     5,     6,     7,     8,     9,    71,    -1,   677,
    -1,    14,    -1,   681,    -1,    -1,    -1,    81,    -1,    -1,
   688,   689,    -1,   691,    -1,    89,    29,    -1,    31,    32,
    94,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    42,
    -1,    -1,    -1,    46,    47,    -1,    49,    -1,   716,    -1,
    -1,    -1,    55,   721,    57,    58,    -1,    -1,   726,    -1,
    63,     3,     4,     5,     6,   733,   734,   735,    71,     4,
     5,    -1,    -1,     8,     9,    -1,    -1,   745,    81,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
    -1,    94,    -1,    -1,    29,    -1,    31,    -1,    -1,    -1,
    42,    -1,    37,     4,    -1,    -1,    -1,    49,    -1,    -1,
    -1,    46,   840,    48,   842,    57,    58,    -1,    -1,    -1,
    55,    -1,    57,    58,    -1,    26,    -1,   795,   862,   863,
    31,    32,    -1,    34,    -1,    36,    71,    -1,    -1,    81,
    41,   869,    -1,    -1,    -1,    -1,    81,    89,    -1,   817,
    -1,   819,    -1,    54,    -1,    56,    91,    -1,   826,    94,
    95,    -1,   830,    -1,   832,    -1,   834,   835,   836,    -1,
    -1,    -1,    -1,   841,    -1,    -1,    -1,    -1,    79,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   859,    93,   861,   862,   863,   864,   931,    -1,   933,
    -1,    -1,    -1,    -1,   938,   939,   940,     3,     4,     5,
     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,     4,     5,    -1,   128,     8,     9,
   898,   132,   133,    -1,    14,    -1,   137,    -1,    -1,    -1,
    -1,    -1,    -1,   144,   912,   146,    42,   148,    -1,    -1,
   151,   152,   153,    49,    -1,    -1,   924,    37,    -1,   927,
    -1,    57,    58,   931,   165,   933,    46,    -1,    48,    -1,
   938,   939,   940,    -1,    -1,    55,    -1,    57,    58,   180,
   181,   182,    -1,    -1,    -1,    81,    -1,  1015,   956,   190,
   958,    71,    -1,    89,  1028,  1029,    -1,    -1,    -1,    -1,
    -1,    81,  1036,    -1,    -1,    -1,  1034,    -1,   209,    -1,
    -1,    91,    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,
    -1,   989,   990,    -1,   992,    68,    69,    70,    71,    72,
    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
    83,    84,    85,   244,    -1,    -1,    -1,     3,     4,     5,
     6,     7,     8,     9,    -1,    -1,    12,    -1,    14,    -1,
  1028,  1029,  1030,  1031,  1032,    -1,    -1,    -1,  1036,  1097,
    -1,    -1,  1040,    29,  1108,    31,    32,    -1,    -1,    -1,
    -1,    37,    -1,  1051,  1052,  1053,    42,    -1,    -1,    -1,
    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,
  1068,    57,    58,    -1,    -1,  1073,     4,     5,    -1,    -1,
    -1,     9,   313,    -1,    -1,    71,    -1,  1085,    -1,    -1,
  1154,  1155,    -1,  1157,    -1,    81,    -1,    -1,   329,    -1,
    -1,    -1,    -1,    89,    -1,    91,   337,    -1,    94,    95,
  1108,    -1,    98,    -1,    -1,    -1,    -1,   348,    -1,    -1,
    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
    58,  1195,    -1,    -1,   365,    -1,  1200,    -1,  1202,    -1,
  1198,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    81,    -1,   386,  1154,  1155,    -1,  1157,
    -1,    -1,    -1,    91,    -1,    -1,    94,    95,    -1,    -1,
    -1,    -1,   403,    -1,    -1,   406,    -1,    -1,    -1,  1177,
   411,    -1,    -1,    -1,   415,   331,   332,   333,    -1,    -1,
  1254,    -1,    -1,    -1,    -1,    -1,    -1,  1195,    -1,    -1,
    -1,    -1,  1200,    -1,  1202,    -1,   437,    -1,   439,    -1,
   441,   442,   443,    -1,    -1,    -1,   447,    -1,    -1,    -1,
    -1,   452,    -1,    -1,   455,    70,    71,    72,    73,    74,
    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    85,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
    -1,    -1,    12,    -1,    14,  1253,  1254,  1255,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    25,    -1,    27,    28,    -1,
    -1,   502,    32,    -1,   505,    -1,    -1,    37,    -1,    -1,
    -1,    -1,    42,    -1,    -1,    -1,    46,    -1,    48,   520,
   521,   522,    -1,    -1,    -1,    55,    -1,    57,    58,    59,
    60,    61,   533,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    80,    81,    82,    83,    84,    85,    -1,    87,    88,    89,
    -1,    91,    92,    93,    94,    95,    96,    -1,    98,    99,
    -1,    -1,  1340,     4,   104,    -1,    -1,   578,    -1,   109,
   110,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,    -1,
   591,    -1,    -1,    -1,    -1,    26,    -1,    -1,    -1,    -1,
    31,    32,    -1,    34,    -1,    36,     3,     4,     5,     6,
    41,    -1,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1388,  1389,  1390,    54,    -1,    56,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,  1404,    -1,   639,   640,
   641,   642,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,
    -1,  1419,    -1,    -1,    -1,    -1,    -1,    34,    55,    -1,
    57,    58,    93,    -1,    -1,   581,   582,    -1,   584,    -1,
    -1,    -1,    -1,    -1,    71,   591,   677,    54,    -1,    -1,
   681,    -1,    -1,    -1,    81,    -1,    -1,   688,   689,    -1,
   691,    -1,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    -1,    -1,    -1,    -1,     4,     5,   137,    -1,     8,     9,
    -1,    -1,    -1,   144,    14,   716,    -1,   148,    -1,    -1,
   151,   152,   153,   639,    -1,   641,   642,    -1,   644,    -1,
     3,     4,     5,     6,   165,    -1,     9,    37,   739,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    48,   180,
   181,   182,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,
   137,   677,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
    -1,    71,    -1,    -1,   151,   152,   153,    -1,   209,    -1,
    -1,    81,    55,    -1,    57,    58,     3,     4,     5,     6,
    -1,    91,     9,    -1,    94,    95,    -1,    -1,    71,    -1,
    -1,    -1,    -1,   180,   181,   182,    -1,    -1,    81,    -1,
    -1,    -1,    -1,   244,    -1,    -1,    89,    -1,    -1,    -1,
    -1,    94,    -1,    -1,    -1,    42,    -1,    -1,    -1,   745,
    -1,    -1,   209,   834,   835,   836,    -1,    -1,    55,   840,
    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
    -1,   862,   863,   864,    81,    -1,    -1,    -1,   869,    -1,
    -1,    -1,    89,   331,   332,   333,    -1,    94,    69,    70,
    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
    81,    82,    83,    84,    85,    -1,    -1,   898,    -1,    -1,
    -1,   817,    -1,   819,    -1,    -1,   283,   338,    -1,    -1,
    -1,    -1,    -1,    -1,   830,    -1,    -1,   348,   834,   835,
   836,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   931,    -1,   933,    -1,    -1,    -1,    -1,   938,   939,   940,
    -1,    -1,    -1,    -1,    -1,    -1,   862,   863,   864,    -1,
    -1,    -1,    -1,    54,   331,   332,   333,    72,    73,    74,
    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    85,   348,   403,    -1,    -1,   406,    -1,    -1,    79,    -1,
   411,    82,   898,    -1,   415,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
    -1,    -1,   103,    -1,   105,    -1,   437,    -1,   439,    -1,
   441,   442,   443,    -1,  1015,    -1,   447,    -1,    -1,    -1,
    -1,   452,    -1,    -1,   455,    -1,    -1,  1028,  1029,  1030,
  1031,  1032,    -1,  1034,    -1,  1036,   137,    -1,    -1,    -1,
    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
  1051,  1052,  1053,    -1,    14,    -1,    -1,    -1,    -1,    -1,
   437,    -1,   439,    -1,   441,   442,   443,    -1,    -1,    29,
   447,    31,    32,    -1,    -1,   452,    -1,    37,   455,   180,
   181,   182,    42,    -1,    -1,    -1,    46,    -1,    -1,   190,
    -1,    -1,    -1,    -1,    -1,    55,  1097,    57,    58,    -1,
    -1,    61,    -1,    -1,    -1,    -1,    -1,  1108,   209,    -1,
    -1,    71,  1028,  1029,  1030,  1031,  1032,    -1,    -1,    -1,
  1036,    81,    -1,   581,   582,    -1,    -1,    -1,    -1,    89,
    -1,   232,    -1,    -1,    94,  1051,  1052,  1053,     3,     4,
     5,     6,    -1,    -1,     9,    -1,   247,    -1,   579,    -1,
    -1,    -1,    -1,  1154,  1155,    -1,  1157,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,
    -1,   639,    -1,   641,   642,    -1,   644,    -1,    -1,    -1,
    55,   568,    57,    58,  1195,    -1,    -1,    -1,    -1,  1200,
    -1,  1202,    -1,    -1,   581,   582,    71,   584,   639,   640,
   641,   642,    -1,    -1,   591,    -1,    81,    -1,    -1,   677,
    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    94,
    -1,    -1,    -1,    -1,    -1,    -1,   337,   338,  1154,  1155,
    -1,  1157,     3,     4,     5,     6,   677,   348,     9,    -1,
   681,    -1,  1253,  1254,  1255,    -1,    -1,   688,   689,    -1,
   691,    -1,   639,    -1,   641,   642,    -1,   644,    -1,     3,
     4,     5,     6,    -1,    -1,     9,    -1,    -1,    -1,    -1,
    -1,    42,    -1,    -1,    -1,   716,    -1,   745,    -1,    -1,
    -1,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,
   677,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
    71,   688,   689,    -1,   691,    -1,    -1,    -1,    -1,    -1,
    81,    55,    -1,    57,    58,    -1,    -1,    -1,    89,    -1,
    -1,    -1,    -1,    94,    -1,    -1,   437,    71,   439,  1340,
   441,   442,   443,    -1,    -1,    -1,   447,    81,    -1,    -1,
    -1,   452,    -1,    -1,   455,    89,   733,   734,   735,   817,
    94,   819,    -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,
     4,     5,   830,    -1,     8,     9,   834,   835,    -1,    -1,
    14,    -1,    -1,     3,     4,     5,     6,  1388,  1389,  1390,
    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    -1,
    -1,    -1,    -1,    37,   862,   863,    -1,    -1,    -1,    -1,
   841,    -1,    46,    -1,    -1,    -1,    -1,    -1,  1419,    -1,
    -1,    55,    42,    57,    58,    -1,    -1,    -1,    -1,    -1,
    -1,   862,   863,   864,    -1,    55,    -1,    57,    58,    -1,
   817,    -1,   819,    63,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    71,    -1,   830,    -1,    -1,    -1,   834,   835,   836,
    94,    81,    -1,    -1,    -1,    -1,    -1,   898,    -1,    89,
    -1,    -1,    -1,    -1,    94,     1,    -1,     3,     4,     5,
     6,     7,     8,     9,    -1,   862,   863,   864,    14,    -1,
    -1,    -1,    -1,   594,   595,    -1,    -1,    -1,    -1,    -1,
   931,    -1,   933,    29,    -1,    31,    32,   938,   939,   940,
    -1,    37,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,
    46,   898,    -1,    49,    -1,    -1,    -1,    -1,    -1,    55,
    -1,    57,    58,    -1,    -1,    61,    -1,    -1,   639,    -1,
   641,   642,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,
    -1,   938,    -1,    89,    -1,    -1,    -1,    -1,    94,    -1,
  1028,  1029,  1030,  1031,    -1,    -1,   677,    -1,  1036,    -1,
     3,     4,     5,     6,    -1,    -1,     9,   688,   689,    -1,
   691,    -1,    -1,  1051,  1052,    -1,    -1,  1028,  1029,  1030,
  1031,  1032,    -1,    -1,    -1,  1036,    -1,    -1,    -1,    -1,
    -1,    -1,   989,   990,   715,   992,    -1,    -1,    -1,    42,
  1051,  1052,  1053,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    55,    -1,    57,    58,    -1,    -1,    -1,     3,
     4,     5,     6,     7,     8,     9,    -1,    -1,    71,    -1,
    14,  1028,  1029,  1030,  1031,  1032,    -1,    -1,    81,  1036,
    -1,    -1,    -1,    -1,    -1,    29,    89,    31,    32,    -1,
    -1,    94,    -1,    37,  1051,  1052,  1053,  1108,    42,    -1,
    -1,    -1,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
    -1,    55,    -1,    57,    58,    -1,  1154,  1155,    -1,  1157,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,     3,     4,
     5,     6,    -1,  1154,  1155,    89,  1157,    91,    -1,    -1,
    94,    95,    14,    -1,    -1,     3,     4,     5,     6,   840,
   841,   842,    24,    25,    -1,    -1,    -1,    -1,    -1,    31,
    32,    -1,    34,    -1,    -1,    -1,    -1,    42,    -1,    -1,
    -1,   862,   863,   864,  1195,    -1,    -1,    -1,   869,  1200,
    55,  1202,    57,    58,    42,    -1,    61,  1154,  1155,    -1,
  1157,    -1,    64,    -1,    -1,    -1,    71,    55,    -1,    57,
    58,    -1,    -1,    -1,    -1,    -1,    81,   898,    -1,    -1,
    -1,    -1,    -1,    71,    89,    -1,    -1,    -1,    -1,    94,
    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,  1195,    -1,
    -1,    89,  1253,  1254,  1255,    -1,    94,     1,    -1,     3,
     4,     5,     6,     7,     8,     9,    -1,   938,    -1,    -1,
    14,   123,    -1,   125,    -1,    -1,   128,    -1,    -1,    -1,
   132,   133,    -1,    -1,    -1,    29,    -1,    31,    32,    33,
    -1,    -1,   144,    37,   146,   147,   148,    -1,    42,   151,
   152,   153,    46,    47,    -1,    49,  1253,    -1,  1255,    -1,
    -1,    55,    -1,    57,    58,    -1,    -1,    61,    -1,    63,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,
    -1,     3,     4,     5,     6,    -1,    -1,    81,    -1,  1340,
    -1,    -1,    -1,    -1,  1015,    89,    -1,    -1,    -1,    -1,
    94,    -1,    -1,    -1,    -1,    -1,    -1,  1028,  1029,  1030,
  1031,  1032,    -1,  1034,    -1,  1036,    -1,    -1,    -1,    -1,
    42,   223,   224,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1051,  1052,  1053,    55,    -1,    57,    58,  1388,  1389,  1390,
    -1,    -1,   244,  1340,    -1,    -1,    -1,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    81,
     3,     4,     5,     6,     7,     8,     9,    89,  1419,    -1,
    -1,    14,    94,    -1,    -1,    -1,  1097,    -1,    -1,    -1,
    -1,   283,    -1,    -1,    -1,    -1,    29,    -1,    31,    32,
    33,  1388,  1389,  1390,    37,    38,    -1,    -1,    -1,    42,
    -1,    -1,    -1,    46,    47,    -1,    49,    -1,    -1,    -1,
    -1,    -1,    55,    -1,    57,    58,    -1,    -1,    61,    -1,
    63,    -1,  1419,    -1,    -1,    -1,    -1,   329,    71,   331,
   332,    -1,    -1,  1154,  1155,    -1,  1157,    -1,    81,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   365,    -1,    -1,    -1,    -1,   111,    -1,
    -1,    -1,    -1,    -1,  1195,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   386,     1,    -1,     3,     4,     5,
     6,     7,     8,     9,    -1,    -1,    -1,   399,    14,    -1,
    -1,   403,    -1,    -1,   406,    -1,    -1,    -1,    -1,   411,
    -1,    -1,    -1,    29,    -1,    31,    32,    33,    -1,    -1,
    -1,    37,    38,    -1,    -1,    -1,    42,    -1,    -1,    -1,
    46,    47,  1253,    49,  1255,    -1,    -1,    -1,    -1,    55,
    -1,    57,    58,    -1,    -1,    61,    -1,    63,    -1,     4,
     5,    -1,     7,     8,     9,    71,    -1,    12,    -1,    14,
    -1,    -1,    -1,    -1,    -1,    81,   468,    -1,   470,    -1,
    -1,    -1,    -1,    89,    29,    -1,    31,    32,    94,    -1,
    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    46,    -1,   495,    -1,   111,    -1,    -1,    -1,    -1,
    55,    -1,    57,    58,     1,    -1,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    -1,    13,    14,    15,  1340,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
    57,    58,    59,    -1,    61,    62,   568,  1388,  1389,  1390,
    -1,    68,    -1,    -1,    71,    -1,   578,   579,    -1,   581,
   582,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
    87,    88,    89,    -1,    -1,    -1,    -1,    94,  1419,    96,
     4,     5,    -1,     7,     8,     9,    -1,    -1,    -1,    -1,
    14,    -1,    -1,    -1,   111,   112,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    32,    -1,
    -1,    -1,   634,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   643,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    55,    -1,    57,    58,   657,    -1,    -1,     1,    -1,
     3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
    13,    14,    15,    -1,    17,    18,    19,    20,    21,    22,
    23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
    53,    54,    55,   715,    57,    58,    59,    -1,    61,    62,
    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
    -1,   733,   734,   735,    -1,    -1,    79,    80,    81,    -1,
    -1,    -1,    -1,   745,    87,    88,    89,    -1,    -1,    -1,
    -1,    94,     1,    96,     3,     4,     5,     6,     7,     8,
     9,    10,    11,    12,    13,    14,    -1,    -1,    -1,   112,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    29,    30,    31,    32,    33,    -1,    35,    36,    37,    -1,
    39,    40,    41,    42,    43,    44,    -1,    46,    -1,    48,
    -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
    59,    -1,    -1,    62,    -1,   817,    -1,   819,    -1,    68,
    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,   830,    -1,
    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
    89,    -1,    91,    -1,    -1,    94,    95,    -1,     1,    98,
     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    13,    14,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
    33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
    43,    44,    -1,    46,    -1,    48,    -1,    50,    51,    52,
    53,    54,    55,    -1,    57,    58,    59,    -1,    -1,    62,
    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
    -1,    -1,   924,    -1,    -1,   927,    79,    80,    81,    -1,
    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    91,    -1,
    -1,    94,    95,    -1,    -1,    98,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   989,   990,    -1,
   992,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,  1040,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
    98,    -1,    -1,    -1,    -1,    -1,  1068,    -1,    -1,    -1,
    -1,    -1,   110,     1,   112,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,  1098,    -1,    -1,    -1,
    -1,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,    59,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,    -1,    -1,    -1,     1,    94,     3,     4,     5,
     6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    29,    30,    31,  1198,    33,  1200,    35,
    36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
    -1,    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,
    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
    -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,    95,
     1,    -1,     3,     4,     5,     6,    -1,     8,     9,    10,
    11,    -1,    13,    14,    -1,   111,   112,    -1,    -1,    -1,
    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,
    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
    51,    52,    53,    54,    55,    -1,    57,    58,    59,    -1,
    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,
    -1,    -1,     1,    94,     3,     4,     5,     6,    -1,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
   111,   112,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    29,    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,
    39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
    -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
    59,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,
    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
    89,    -1,    -1,    -1,     1,    94,     3,     4,     5,     6,
    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,    -1,   111,   112,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,    -1,
    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
    87,    88,    89,    -1,    -1,    -1,    -1,    94,    95,     1,
    -1,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,   112,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
    52,    53,    54,    55,    -1,    57,    58,    59,    -1,    -1,
    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
    -1,    -1,    94,    -1,    -1,     1,    -1,     3,     4,     5,
     6,   103,     8,     9,    10,    11,    -1,    13,    14,    -1,
   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
    36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
    -1,    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,
    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
    -1,    87,    88,    89,    -1,    -1,    -1,     1,    94,     3,
     4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
    -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    59,    -1,    -1,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,     1,
    94,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,   112,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
    62,    63,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
    -1,     1,    94,     3,     4,     5,     6,    -1,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
    -1,    -1,    -1,     1,    94,     3,     4,     5,     6,    -1,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,    -1,    -1,    -1,     1,    94,     3,     4,     5,
     6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
    36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
    -1,    57,    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,
    -1,    -1,    68,     1,    -1,    71,     4,     5,    -1,    -1,
     8,     9,    -1,    79,    80,    81,    14,    -1,    -1,    -1,
    -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,    -1,
    -1,    29,    -1,    31,    -1,    -1,    -1,    -1,    -1,    37,
    -1,    39,    40,    -1,   110,    -1,   112,    -1,    46,    -1,
    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
    58,    -1,    60,    -1,    -1,    -1,    64,    65,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    -1,    -1,    87,
    88,    89,    -1,    -1,    92,    -1,     1,    95,     3,     4,
     5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,
    55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,    -1,
    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
    -1,    -1,    87,    88,    89,    -1,    -1,    -1,     1,    94,
     3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
    13,    14,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,
    33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,
    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,
     1,    94,     3,     4,     5,     6,    -1,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,   112,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,
    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
    51,    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,
    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,
     4,     5,     6,    94,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
    -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,     1,    71,     3,     4,
     5,     6,     7,     8,     9,    79,    80,    81,    -1,    14,
    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,
    94,    -1,    -1,    -1,    29,    -1,    31,    32,    33,    -1,
    -1,    -1,    37,    38,    -1,    -1,    -1,    42,   112,   113,
    -1,    46,    47,    -1,    49,    -1,    -1,    -1,    -1,    -1,
    55,    -1,    57,    58,    -1,    -1,    61,    -1,    63,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    94,
    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    -1,    13,    14,    15,   111,    17,    18,    19,
    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    30,    31,    32,    33,    -1,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
    -1,    -1,    -1,    -1,    94,    -1,    96,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   111,   112,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    -1,    13,    14,    15,    -1,    17,    18,    19,
    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    30,    31,    32,    33,    -1,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
    -1,    -1,    -1,    -1,    94,    -1,    96,    -1,    -1,     3,
     4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
    14,    15,   112,    17,    18,    19,    20,    21,    22,    23,
    24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
    -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    59,    -1,    61,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,
    94,    -1,    96,    -1,    -1,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    -1,    13,    14,    15,   112,    17,
    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,    -1,    -1,    -1,    -1,    94,    -1,    96,     3,
     4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    14,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
    -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    -1,    46,    -1,    48,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,    -1,    91,    -1,    -1,
    94,    95,    -1,    -1,    98,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    12,    13,    14,    -1,   112,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    48,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,    -1,    91,    -1,    -1,    94,    95,    -1,    -1,
    98,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
    -1,    13,    14,    -1,   112,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    76,    -1,    78,    79,    80,    81,
    -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,
     5,     6,    94,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
    -1,    46,    -1,    48,    -1,    50,    51,    52,    53,    54,
    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
    -1,    -1,    87,    88,    89,    -1,    91,    -1,    -1,    94,
    95,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,    -1,   112,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
    42,    43,    44,    -1,    46,    -1,    48,    -1,    50,    51,
    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    91,
    -1,    -1,    94,    95,     3,     4,     5,     6,    -1,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    29,    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,
    39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
    -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    68,
    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
    89,    -1,    -1,    -1,    -1,    94,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    29,    30,    31,    32,    33,    -1,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
    87,    88,    89,     3,     4,     5,     6,    94,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    29,
    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
    50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
     3,     4,     5,     6,    94,     8,     9,    10,    11,    -1,
    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   112,    -1,    -1,    -1,    29,    30,    31,    -1,
    33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,
    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
    -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,     5,
     6,    94,     8,     9,    10,    11,    -1,    13,    14,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
    36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
    -1,    57,    58,    59,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
    -1,    87,    88,    89,     3,     4,     5,     6,    94,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
    29,    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,
    39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
    -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
    89,    -1,    -1,    -1,    -1,    94,    95,     3,     4,     5,
     6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
    36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
    -1,    57,    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,
    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
    -1,    87,    88,    89,     3,     4,     5,     6,    94,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
    29,    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,
    39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
    -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,
    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
    89,     3,     4,     5,     6,    94,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   112,    -1,    -1,    -1,    29,    30,    31,
    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
    -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,
     5,     6,    94,     8,     9,    10,    11,    -1,    13,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,
    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
    -1,    -1,    87,    88,    89,     3,     4,     5,     6,    94,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
    -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
    88,    89,     3,     4,     5,     6,    94,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    29,    30,
    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,
    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
    51,    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,
     4,     5,     6,    94,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
    -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
    54,    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
    -1,    -1,    -1,    87,    88,    89,     3,     4,     5,     6,
    94,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    68,    -1,     1,    71,     3,     4,     5,     6,     7,
     8,     9,    79,    80,    81,    -1,    14,    -1,    -1,    -1,
    87,    88,    89,    -1,    -1,    -1,    -1,    94,    -1,    27,
    28,    29,    -1,    31,    32,    33,    -1,    -1,    -1,    37,
    -1,    -1,    -1,    -1,    42,   112,    -1,    45,    46,    47,
    -1,    49,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
    58,    -1,     1,    61,     3,     4,     5,     6,     7,     8,
     9,    -1,    -1,    71,    -1,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    27,    28,
    29,    89,    31,    32,    33,    -1,    94,    -1,    37,    -1,
    -1,    -1,   100,    42,    -1,    -1,    45,    46,    47,    -1,
    49,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,
    -1,    -1,    61,     3,     4,     5,     6,     7,     8,     9,
    -1,    -1,    71,    -1,    14,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    89,    -1,    32,    -1,    -1,    94,    -1,    37,    -1,    -1,
    -1,   100,    42,    -1,    -1,    -1,    46,    -1,    48,    -1,
    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,     3,
     4,     5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,
    14,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    32,    89,
    -1,    91,    -1,    37,    94,    95,    -1,    -1,    42,    -1,
    -1,    -1,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
    -1,    55,    -1,    57,    58,     3,     4,     5,     6,     7,
     8,     9,    -1,    -1,    -1,    -1,    14,    71,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,
    -1,    29,    -1,    31,    32,    89,    -1,    91,    -1,    37,
    94,    95,    -1,    -1,    42,    -1,    -1,    -1,    46,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
    58,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
    12,    -1,    14,    71,    -1,    -1,    -1,    75,    -1,    -1,
    -1,    -1,    -1,    81,    -1,    -1,    -1,    29,    -1,    31,
    32,    89,    -1,    -1,    -1,    37,    94,    -1,    -1,    -1,
    42,    -1,    -1,    -1,    46,    -1,     3,     4,     5,     6,
     7,     8,     9,    55,    -1,    57,    58,    14,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
    -1,    -1,    29,    -1,    31,    32,    -1,    -1,    -1,    81,
    37,    -1,    -1,    -1,    -1,    42,    -1,    89,    -1,    46,
    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    55,    -1,
    57,    58,    -1,    -1,    -1,    -1,    63,     3,     4,     5,
     6,     7,     8,     9,    71,    -1,    -1,    -1,    14,    -1,
    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    89,    29,    -1,    31,    32,    94,    -1,    -1,
    -1,    37,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,
    46,    -1,     3,     4,     5,     6,     7,     8,     9,    55,
    -1,    57,    58,    14,    -1,    61,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    29,    -1,
    31,    32,    -1,    -1,    -1,    81,    37,    -1,    -1,    -1,
    -1,    42,    -1,    89,    -1,    46,    -1,    -1,    94,    -1,
    -1,    -1,    -1,    -1,    55,    -1,    57,    58,     3,     4,
     5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    81,    -1,    -1,    -1,    29,    -1,    31,    32,    89,    -1,
    -1,    -1,    37,    94,    -1,    -1,    -1,    42,    -1,    -1,
    -1,    46,    -1,     3,     4,     5,     6,     7,     8,     9,
    55,    -1,    57,    58,    14,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
    -1,    -1,    32,    -1,    -1,    -1,    81,    37,    -1,    -1,
    -1,    -1,    42,    -1,    89,    12,    46,    -1,    48,    94,
    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,    64,
    65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
    75,    71,    77,    78,    79,    80,    81,    82,    83,    84,
    85,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
    -1,    -1,    -1,    -1,    94,    -1,    63,    64,    65,    66,
    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    77,    78,    79,    80,    81,    82,    83,    84,    85,     4,
     5,    -1,     7,     8,     9,    -1,     4,     5,    -1,    14,
     8,     9,    -1,     4,     5,    -1,    14,     8,     9,    -1,
    -1,    -1,    -1,    14,    29,    -1,    31,    32,    -1,    -1,
    -1,    29,    37,    31,    -1,    -1,    32,    -1,    29,    37,
    31,    46,    -1,    -1,    -1,    -1,    37,    -1,    46,    -1,
    55,    -1,    57,    58,    -1,    46,    -1,    55,    -1,    57,
    58,    -1,    -1,    -1,    55,    -1,    57,    58,    64,    65,
    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
    84,    85,    64,    65,    66,    67,    68,    69,    70,    71,
    72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    82,    83,    84,    85,    -1,    -1,    -1,    -1,    -1,   113,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    60,    -1,    -1,   109,    64,    65,
    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
    83,    84,    85,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    80,    81,    82,    83,    84,    85,    64,    65,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    85
};
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "/usr/share/bison.simple"

/* Skeleton output parser for bison,
   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

#ifndef alloca
#ifdef __GNUC__
#define alloca __builtin_alloca
#else /* not GNU C.  */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
#include <alloca.h>
#else /* not sparc */
#if defined (MSDOS) && !defined (__TURBOC__)
#include <malloc.h>
#else /* not MSDOS, or __TURBOC__ */
#if defined(_AIX)
#include <malloc.h>
 #pragma alloca
#else /* not MSDOS, __TURBOC__, or _AIX */
#ifdef __hpux
#ifdef __cplusplus
extern "C" {
void *alloca (unsigned int);
};
#else /* not __cplusplus */
void *alloca ();
#endif /* not __cplusplus */
#endif /* __hpux */
#endif /* not _AIX */
#endif /* not MSDOS, or __TURBOC__ */
#endif /* not sparc.  */
#endif /* not GNU C.  */
#endif /* alloca not defined.  */

/* This is the parser code that is written into each bison parser
  when the %semantic_parser declaration is not specified in the grammar.
  It was written by Richard Stallman by simplifying the hairy parser
  used when %semantic_parser is specified.  */

/* Note: there must be only one dollar sign in this file.
   It is replaced by the list of actions, each action
   as one case of the switch.  */

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		-2
#define YYEOF		0
#define YYACCEPT	return(0)
#define YYABORT 	return(1)
#define YYERROR		goto yyerrlab1
/* Like YYERROR except do call yyerror.
   This remains here temporarily to ease the
   transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */
#define YYFAIL		goto yyerrlab
#define YYRECOVERING()  (!!yyerrstatus)
#define YYBACKUP(token, value) \
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    { yychar = (token), yylval = (value);			\
      yychar1 = YYTRANSLATE (yychar);				\
      YYPOPSTACK;						\
      goto yybackup;						\
    }								\
  else								\
    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
while (0)

#define YYTERROR	1
#define YYERRCODE	256

#ifndef YYPURE
#define YYLEX		yylex()
#endif

#ifdef YYPURE
#ifdef YYLSP_NEEDED
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval, &yylloc)
#endif
#else /* not YYLSP_NEEDED */
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval)
#endif
#endif /* not YYLSP_NEEDED */
#endif

/* If nonreentrant, generate the variables here */

#ifndef YYPURE

int	yychar;			/*  the lookahead symbol		*/
YYSTYPE	yylval;			/*  the semantic value of the		*/
				/*  lookahead symbol			*/

#ifdef YYLSP_NEEDED
YYLTYPE yylloc;			/*  location data for the lookahead	*/
				/*  symbol				*/
#endif

int yynerrs;			/*  number of parse errors so far       */
#endif  /* not YYPURE */

#if YYDEBUG != 0
int yydebug;			/*  nonzero means print parse trace	*/
/* Since this is uninitialized, it does not stop multiple parsers
   from coexisting.  */
#endif

/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/

#ifndef	YYINITDEPTH
#define YYINITDEPTH 200
#endif

/*  YYMAXDEPTH is the maximum size the stacks can grow to
    (effective only if the built-in stack extension method is used).  */

#if YYMAXDEPTH == 0
#undef YYMAXDEPTH
#endif

#ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000
#endif

/* Prevent warning if -Wstrict-prototypes.  */
#ifdef __GNUC__
int yyparse (void);
#endif

#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
#define __yy_memcpy(FROM,TO,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
#else				/* not GNU C or C++ */
#ifndef __cplusplus

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (from, to, count)
     char *from;
     char *to;
     int count;
{
  register char *f = from;
  register char *t = to;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#else /* __cplusplus */

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (char *from, char *to, int count)
{
  register char *f = from;
  register char *t = to;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#endif
#endif

#line 192 "/usr/share/bison.simple"

/* The user can define YYPARSE_PARAM as the name of an argument to be passed
   into yyparse.  The argument should have type void *.
   It should actually point to an object.
   Grammar actions can access the variable by casting it
   to the proper pointer type.  */

#ifdef YYPARSE_PARAM
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
#else
#define YYPARSE_PARAM
#define YYPARSE_PARAM_DECL
#endif

int
yyparse(YYPARSE_PARAM)
     YYPARSE_PARAM_DECL
{
  register int yystate;
  register int yyn;
  register short *yyssp;
  register YYSTYPE *yyvsp;
  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */

  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/

  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */

#ifdef YYLSP_NEEDED
  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;

#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
#else
#define YYPOPSTACK   (yyvsp--, yyssp--)
#endif

  int yystacksize = YYINITDEPTH;

#ifdef YYPURE
  int yychar;
  YYSTYPE yylval;
  int yynerrs;
#ifdef YYLSP_NEEDED
  YYLTYPE yylloc;
#endif
#endif

  YYSTYPE yyval;		/*  the variable used to return		*/
				/*  semantic values from the action	*/
				/*  routines				*/

  int yylen;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Starting parse\n");
#endif

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */

  yyssp = yyss - 1;
  yyvsp = yyvs;
#ifdef YYLSP_NEEDED
  yylsp = yyls;
#endif

/* Push a new state, which is found in  yystate  .  */
/* In all cases, when you get here, the value and location stacks
   have just been pushed. so pushing a state here evens the stacks.  */
yynewstate:

  *++yyssp = yystate;

  if (yyssp >= yyss + yystacksize - 1)
    {
      /* Give user a chance to reallocate the stack */
      /* Use copies of these so that the &'s don't force the real ones into memory. */
      YYSTYPE *yyvs1 = yyvs;
      short *yyss1 = yyss;
#ifdef YYLSP_NEEDED
      YYLTYPE *yyls1 = yyls;
#endif

      /* Get the current used size of the three stacks, in elements.  */
      int size = yyssp - yyss + 1;

#ifdef yyoverflow
      /* Each stack pointer address is followed by the size of
	 the data in use in that stack, in bytes.  */
#ifdef YYLSP_NEEDED
      /* This used to be a conditional around just the two extra args,
	 but that might be undefined if yyoverflow is a macro.  */
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yyls1, size * sizeof (*yylsp),
		 &yystacksize);
#else
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yystacksize);
#endif

      yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED
      yyls = yyls1;
#endif
#else /* no yyoverflow */
      /* Extend the stack our own way.  */
      if (yystacksize >= YYMAXDEPTH)
	{
	  yyerror("parser stack overflow");
	  return 2;
	}
      yystacksize *= 2;
      if (yystacksize > YYMAXDEPTH)
	yystacksize = YYMAXDEPTH;
      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
      __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
      __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
      __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
#endif
#endif /* no yyoverflow */

      yyssp = yyss + size - 1;
      yyvsp = yyvs + size - 1;
#ifdef YYLSP_NEEDED
      yylsp = yyls + size - 1;
#endif

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif

      if (yyssp >= yyss + yystacksize - 1)
	YYABORT;
    }

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Entering state %d\n", yystate);
#endif

  goto yybackup;
 yybackup:

/* Do appropriate processing given the current state.  */
/* Read a lookahead token if we need one and don't already have one.  */
/* yyresume: */

  /* First try to decide what to do without reference to lookahead token.  */

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* yychar is either YYEMPTY or YYEOF
     or a valid token in external form.  */

  if (yychar == YYEMPTY)
    {
#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Reading a token: ");
#endif
      yychar = YYLEX;
    }

  /* Convert token to internal form (in yychar1) for indexing tables with */

  if (yychar <= 0)		/* This means end of input. */
    {
      yychar1 = 0;
      yychar = YYEOF;		/* Don't call YYLEX any more */

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Now at end of input.\n");
#endif
    }
  else
    {
      yychar1 = YYTRANSLATE(yychar);

#if YYDEBUG != 0
      if (yydebug)
	{
	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
	  /* Give the individual parser a way to print the precise meaning
	     of a token, for further debugging info.  */
#ifdef YYPRINT
	  YYPRINT (stderr, yychar, yylval);
#endif
	  fprintf (stderr, ")\n");
	}
#endif
    }

  yyn += yychar1;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
    goto yydefault;

  yyn = yytable[yyn];

  /* yyn is what to do for this token type in this state.
     Negative => reduce, -yyn is rule number.
     Positive => shift, yyn is new state.
       New state is final state => don't bother to shift,
       just return success.
     0, or most negative number => error.  */

  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrlab;

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Shift the lookahead token.  */

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif

  /* Discard the token being shifted unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  /* count tokens shifted since error; after three, turn off error status.  */
  if (yyerrstatus) yyerrstatus--;

  yystate = yyn;
  goto yynewstate;

/* Do the default action for the current state.  */
yydefault:

  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;

/* Do a reduction.  yyn is the number of a rule to reduce with.  */
yyreduce:
  yylen = yyr2[yyn];
  if (yylen > 0)
    yyval = yyvsp[1-yylen]; /* implement default value of the action */

#if YYDEBUG != 0
  if (yydebug)
    {
      int i;

      fprintf (stderr, "Reducing via rule %d (line %d), ",
	       yyn, yyrline[yyn]);

      /* Print the symbols being reduced, and their result.  */
      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
    }
#endif


  switch (yyn) {

case 2:
#line 313 "parse.y"
{
		  /* In case there were missing closebraces,
		     get us back to the global binding level.  */
		  while (! global_bindings_p ())
		    poplevel (0, 0, 0);
		  finish_file ();
		;
    break;}
case 3:
#line 327 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 4:
#line 329 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 5:
#line 331 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 8:
#line 340 "parse.y"
{ have_extern_spec = 1;
		  used_extern_spec = 0;
		  yyval.ttype = NULL_TREE; ;
    break;}
case 9:
#line 345 "parse.y"
{ have_extern_spec = 0; ;
    break;}
case 10:
#line 350 "parse.y"
{ yyval.itype = pedantic;
		  pedantic = 0; ;
    break;}
case 13:
#line 360 "parse.y"
{ if (pending_lang_change) do_pending_lang_change(); ;
    break;}
case 14:
#line 362 "parse.y"
{ if (! toplevel_bindings_p () && ! pseudo_global_level_p())
		  pop_everything (); ;
    break;}
case 15:
#line 368 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 16:
#line 370 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 17:
#line 372 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 18:
#line 374 "parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
		  assemble_asm (yyvsp[-2].ttype); ;
    break;}
case 19:
#line 377 "parse.y"
{ pop_lang_context (); ;
    break;}
case 20:
#line 379 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 21:
#line 382 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 22:
#line 385 "parse.y"
{ push_namespace (yyvsp[-1].ttype); ;
    break;}
case 23:
#line 387 "parse.y"
{ pop_namespace (); ;
    break;}
case 24:
#line 389 "parse.y"
{ push_namespace (NULL_TREE); ;
    break;}
case 25:
#line 391 "parse.y"
{ pop_namespace (); ;
    break;}
case 26:
#line 393 "parse.y"
{ do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 27:
#line 395 "parse.y"
{ do_toplevel_using_decl (yyvsp[-1].ttype); ;
    break;}
case 28:
#line 397 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    yyvsp[-1].ttype = lastiddecl;
		  do_using_directive (yyvsp[-1].ttype);
		;
    break;}
case 29:
#line 403 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 30:
#line 408 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 31:
#line 410 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 32:
#line 412 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 35:
#line 419 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 36:
#line 421 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 37:
#line 426 "parse.y"
{ push_lang_context (yyvsp[0].ttype); ;
    break;}
case 38:
#line 428 "parse.y"
{ if (current_lang_name != yyvsp[0].ttype)
		    cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
		  pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
    break;}
case 39:
#line 435 "parse.y"
{ begin_template_parm_list (); ;
    break;}
case 40:
#line 437 "parse.y"
{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
    break;}
case 41:
#line 439 "parse.y"
{ begin_specialization(); 
		  yyval.ttype = NULL_TREE; ;
    break;}
case 42:
#line 445 "parse.y"
{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 43:
#line 447 "parse.y"
{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 44:
#line 452 "parse.y"
{ 
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
		 ttpa:
		  if (TREE_PURPOSE (yyval.ttype) == signature_type_node)
		    sorry ("signature as template type parameter");
		  else if (TREE_PURPOSE (yyval.ttype) != class_type_node)
		    {
		      pedwarn ("template type parameters must use the keyword `class'");
		      TREE_PURPOSE (yyval.ttype) = class_type_node;
		    }
		;
    break;}
case 45:
#line 464 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); goto ttpa; ;
    break;}
case 46:
#line 466 "parse.y"
{ yyval.ttype = build_tree_list (class_type_node, NULL_TREE); ;
    break;}
case 47:
#line 468 "parse.y"
{ yyval.ttype = build_tree_list (class_type_node, yyvsp[0].ttype); ;
    break;}
case 48:
#line 480 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 49:
#line 482 "parse.y"
{ yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
    break;}
case 50:
#line 484 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 51:
#line 486 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
    break;}
case 52:
#line 492 "parse.y"
{ 
                  if (yyvsp[-1].ttype) 
                    end_template_decl (); 
		  else
		    end_specialization ();
		;
    break;}
case 53:
#line 500 "parse.y"
{ 
                  if (yyvsp[-1].ttype) 
                    end_template_decl ();
		  else
		    end_specialization (); 
                ;
    break;}
case 54:
#line 510 "parse.y"
{;
    break;}
case 55:
#line 512 "parse.y"
{;
    break;}
case 56:
#line 514 "parse.y"
{
		  note_list_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 57:
#line 518 "parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 59:
#line 521 "parse.y"
{
		  tree t, attrs;
		  split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
		  shadow_tag (t);
		  note_list_got_semicolon (yyvsp[-1].ftype.t);
		;
    break;}
case 63:
#line 534 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 64:
#line 536 "parse.y"
{ yyval.itype = 1; ;
    break;}
case 70:
#line 552 "parse.y"
{ finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
    break;}
case 71:
#line 554 "parse.y"
{ ;
    break;}
case 72:
#line 556 "parse.y"
{ ;
    break;}
case 73:
#line 561 "parse.y"
{
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
		  if (yyvsp[-2].ttype != current_class_type)
		    {
		      push_nested_class (yyvsp[-2].ttype, 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		;
    break;}
case 74:
#line 570 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 75:
#line 572 "parse.y"
{
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
		  if (yyvsp[-4].ttype != current_class_type)
		    {
		      push_nested_class (yyvsp[-4].ttype, 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 76:
#line 582 "parse.y"
{
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
		  if (yyvsp[-2].ttype != current_class_type)
		    {
		      push_nested_class (yyvsp[-2].ttype, 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		;
    break;}
case 77:
#line 591 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 78:
#line 593 "parse.y"
{
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
		  if (yyvsp[-4].ttype != current_class_type)
		    {
		      push_nested_class (yyvsp[-4].ttype, 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 79:
#line 603 "parse.y"
{
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
		  if (yyvsp[-2].ttype != current_class_type)
		    {
		      push_nested_class (yyvsp[-2].ttype, 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		;
    break;}
case 80:
#line 612 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 81:
#line 614 "parse.y"
{
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
		  if (yyvsp[-4].ttype != current_class_type)
		    {
		      push_nested_class (yyvsp[-4].ttype, 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 82:
#line 624 "parse.y"
{
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
		  if (yyvsp[-2].ttype != current_class_type)
		    {
		      push_nested_class (yyvsp[-2].ttype, 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		;
    break;}
case 83:
#line 633 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 84:
#line 635 "parse.y"
{
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
		  if (yyvsp[-4].ttype != current_class_type)
		    {
		      push_nested_class (yyvsp[-4].ttype, 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 85:
#line 648 "parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
		  if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
		    YYERROR1;
		  reinit_parse_for_function ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 86:
#line 655 "parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
		    YYERROR1;
		  reinit_parse_for_function ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 87:
#line 662 "parse.y"
{ if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
		    YYERROR1;
		  reinit_parse_for_function ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 88:
#line 667 "parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
		    YYERROR1;
		  reinit_parse_for_function ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 89:
#line 674 "parse.y"
{ if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
		    YYERROR1;
		  reinit_parse_for_function ();
		  yyval.ttype = NULL_TREE; ;
    break;}
case 90:
#line 682 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 91:
#line 684 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 92:
#line 686 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 93:
#line 688 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 94:
#line 695 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype);
		 rest_of_mdef:
		  if (! yyval.ttype)
		    YYERROR1;
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  reinit_parse_for_method (yychar, yyval.ttype); ;
    break;}
case 95:
#line 704 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 96:
#line 706 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 97:
#line 709 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 98:
#line 712 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
    break;}
case 99:
#line 714 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
    break;}
case 100:
#line 717 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
    break;}
case 101:
#line 719 "parse.y"
{ 
                  if (yyvsp[-1].ttype)
                    end_template_decl (); 
		  else
		    end_specialization ();

		  if (yyvsp[0].ttype && DECL_TEMPLATE_INFO (yyvsp[0].ttype)
		      && !DECL_TEMPLATE_SPECIALIZATION (yyvsp[0].ttype))
		    {
		      yyval.ttype = DECL_TI_TEMPLATE (yyvsp[0].ttype); 
		      check_member_template (yyval.ttype);
		    }
		  else if (yyvsp[0].ttype)
		    yyval.ttype = yyvsp[0].ttype;
		  else 
		    {
		      cp_error("invalid member template declaration");
		      yyval.ttype = NULL_TREE;
		    }
		;
    break;}
case 102:
#line 743 "parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 103:
#line 752 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 104:
#line 754 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 105:
#line 756 "parse.y"
{ store_return_init (yyval.ttype, NULL_TREE); ;
    break;}
case 106:
#line 761 "parse.y"
{
		  if (yyvsp[0].itype == 0)
		    error ("no base initializers given following ':'");
		  setup_vtbl_ptr ();
		  /* Always keep the BLOCK node associated with the outermost
		     pair of curly braces of a function.  These are needed
		     for correct operation of dwarfout.c.  */
		  keep_next_level ();
		;
    break;}
case 107:
#line 774 "parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();

		  if (DECL_CONSTRUCTOR_P (current_function_decl))
		    {
		      /* Make a contour for the initializer list.  */
		      pushlevel (0);
		      clear_last_expr ();
		      expand_start_bindings (0);
		    }
		  else if (current_class_type == NULL_TREE)
		    error ("base initializers not allowed for non-member functions");
		  else if (! DECL_CONSTRUCTOR_P (current_function_decl))
		    error ("only constructors take base initializers");
		;
    break;}
case 108:
#line 794 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 109:
#line 796 "parse.y"
{ yyval.itype = 1; ;
    break;}
case 112:
#line 803 "parse.y"
{
		  if (current_class_name)
		    pedwarn ("anachronistic old style base class initializer");
		  expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
		;
    break;}
case 113:
#line 809 "parse.y"
{
		  if (current_class_name)
		    pedwarn ("anachronistic old style base class initializer");
		  expand_member_init (current_class_ref, NULL_TREE, void_type_node);
		;
    break;}
case 114:
#line 815 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 115:
#line 817 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 116:
#line 819 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 117:
#line 821 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 118:
#line 823 "parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
				      yyvsp[-1].ttype); ;
    break;}
case 119:
#line 826 "parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
				      void_type_node); ;
    break;}
case 131:
#line 852 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
		  yyungetc (';', 1); ;
    break;}
case 132:
#line 855 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 133:
#line 858 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 134:
#line 860 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 135:
#line 862 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-3].ttype);
		  yyungetc (';', 1); ;
    break;}
case 136:
#line 865 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 137:
#line 868 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
    break;}
case 138:
#line 870 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
    break;}
case 139:
#line 879 "parse.y"
{
		  yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
		  if (yyval.ttype != error_mark_node)
		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
		;
    break;}
case 140:
#line 885 "parse.y"
{
		  yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
		  if (yyval.ttype != error_mark_node)
		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
		;
    break;}
case 141:
#line 891 "parse.y"
{
		  yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
		  if (yyval.ttype != error_mark_node)
		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
		;
    break;}
case 142:
#line 897 "parse.y"
{
		  yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
		  if (yyval.ttype != error_mark_node)
		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
		;
    break;}
case 144:
#line 907 "parse.y"
{
		  yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
		  if (yyval.ttype != error_mark_node)
		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
		;
    break;}
case 145:
#line 913 "parse.y"
{
		  yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
		  if (yyval.ttype != error_mark_node)
		    yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
		;
    break;}
case 147:
#line 923 "parse.y"
{
		  /* Handle `Class<Class<Type>>' without space in the `>>' */
		  pedwarn ("`>>' should be `> >' in template class name");
		  yyungetc ('>', 1);
		;
    break;}
case 148:
#line 932 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 149:
#line 934 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 150:
#line 939 "parse.y"
{ yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
    break;}
case 152:
#line 945 "parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 153:
#line 947 "parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 154:
#line 949 "parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 155:
#line 951 "parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 156:
#line 953 "parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 157:
#line 958 "parse.y"
{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
    break;}
case 159:
#line 964 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 160:
#line 968 "parse.y"
{ yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
    break;}
case 161:
#line 973 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 162:
#line 977 "parse.y"
{ yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
    break;}
case 163:
#line 982 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 164:
#line 984 "parse.y"
{ yyval.ttype = condition_conversion (yyval.ttype); ;
    break;}
case 165:
#line 986 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 166:
#line 991 "parse.y"
{ {
		  tree d;
		  for (d = getdecls (); d; d = TREE_CHAIN (d))
		    if (TREE_CODE (d) == TYPE_DECL) {
		      tree s = TREE_TYPE (d);
		      if (TREE_CODE (s) == RECORD_TYPE)
			cp_error ("definition of class `%T' in condition", s);
		      else if (TREE_CODE (s) == ENUMERAL_TYPE)
			cp_error ("definition of enum `%T' in condition", s);
		    }
		  }
		  current_declspecs = yyvsp[-4].ftype.t;
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype,
					 /*prefix_attributes*/ NULL_TREE);
		;
    break;}
case 167:
#line 1009 "parse.y"
{ 
		  cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
		  resume_momentary (yyvsp[-2].itype);
		  yyval.ttype = yyvsp[-1].ttype; 
		  if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
		    cp_error ("definition of array `%#D' in condition", yyval.ttype); 
		;
    break;}
case 173:
#line 1028 "parse.y"
{
		  if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
		      COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1;
		      add_tree (yyval.ttype);
		    }
		;
    break;}
case 174:
#line 1037 "parse.y"
{ 
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
		      TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
		      last_tree = yyvsp[-1].ttype;
		    }
		  finish_stmt (); 
		;
    break;}
case 176:
#line 1052 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
		                  build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 177:
#line 1055 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
		                  build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 178:
#line 1058 "parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 179:
#line 1060 "parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 180:
#line 1065 "parse.y"
{ yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
    break;}
case 182:
#line 1071 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 183:
#line 1074 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 184:
#line 1077 "parse.y"
{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 185:
#line 1079 "parse.y"
{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 186:
#line 1081 "parse.y"
{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 187:
#line 1083 "parse.y"
{ yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
		  if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
		    TREE_NEGATED_INT (yyval.ttype) = 1;
		  overflow_warning (yyval.ttype);
		;
    break;}
case 188:
#line 1090 "parse.y"
{ tree label = lookup_label (yyvsp[0].ttype);
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids `&&'");
		  if (label == NULL_TREE)
		    yyval.ttype = null_pointer_node;
		  else
		    {
		      TREE_USED (label) = 1;
		      yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
		      TREE_CONSTANT (yyval.ttype) = 1;
		    }
		;
    break;}
case 189:
#line 1103 "parse.y"
{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
    break;}
case 190:
#line 1105 "parse.y"
{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
    break;}
case 191:
#line 1107 "parse.y"
{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
    break;}
case 192:
#line 1109 "parse.y"
{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
		  check_for_new_type ("alignof", yyvsp[-1].ftype); ;
    break;}
case 193:
#line 1115 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
		  check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 194:
#line 1118 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 195:
#line 1121 "parse.y"
{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
		  check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 196:
#line 1124 "parse.y"
{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 197:
#line 1127 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
				  NULL_TREE, yyvsp[-3].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 198:
#line 1131 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 199:
#line 1134 "parse.y"
{ yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 200:
#line 1137 "parse.y"
{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 201:
#line 1141 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
    break;}
case 202:
#line 1143 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 203:
#line 1147 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 204:
#line 1151 "parse.y"
{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 205:
#line 1153 "parse.y"
{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 206:
#line 1158 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 207:
#line 1160 "parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype; 
		  pedwarn ("old style placement syntax, use () instead");
		;
    break;}
case 208:
#line 1168 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 209:
#line 1170 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 210:
#line 1172 "parse.y"
{
		  cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
		  yyval.ttype = error_mark_node;
		;
    break;}
case 211:
#line 1180 "parse.y"
{
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids initialization of new expression with `='");
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 212:
#line 1190 "parse.y"
{ yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
		  TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
		  yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 213:
#line 1195 "parse.y"
{ yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
		  TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
		  yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 215:
#line 1204 "parse.y"
{ yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 216:
#line 1206 "parse.y"
{ 
		  tree init = build_nt (CONSTRUCTOR, NULL_TREE,
					nreverse (yyvsp[-2].ttype)); 
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids constructor-expressions");
		  /* Indicate that this was a GNU C constructor expression.  */
		  TREE_HAS_CONSTRUCTOR (init) = 1;

		  yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
		;
    break;}
case 218:
#line 1222 "parse.y"
{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 219:
#line 1224 "parse.y"
{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 220:
#line 1226 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 221:
#line 1228 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 222:
#line 1230 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 223:
#line 1232 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 224:
#line 1234 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 225:
#line 1236 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 226:
#line 1238 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 227:
#line 1240 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 228:
#line 1242 "parse.y"
{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 229:
#line 1244 "parse.y"
{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 230:
#line 1246 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 231:
#line 1248 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 232:
#line 1250 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 233:
#line 1252 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 234:
#line 1254 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 235:
#line 1256 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 236:
#line 1258 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 237:
#line 1260 "parse.y"
{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 238:
#line 1262 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
		  if (yyval.ttype != error_mark_node)
                    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
    break;}
case 239:
#line 1266 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 240:
#line 1268 "parse.y"
{ yyval.ttype = build_throw (NULL_TREE); ;
    break;}
case 241:
#line 1270 "parse.y"
{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
    break;}
case 242:
#line 1288 "parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 248:
#line 1298 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 249:
#line 1300 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 250:
#line 1302 "parse.y"
{ yyval.ttype = lookup_template_function 
		    (do_identifier (yyvsp[-3].ttype, 1), yyvsp[-1].ttype); ;
    break;}
case 251:
#line 1305 "parse.y"
{ yyval.ttype = lookup_template_function 
		    (do_identifier (yyvsp[-2].ttype, 1), NULL_TREE); ;
    break;}
case 252:
#line 1311 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 253:
#line 1313 "parse.y"
{ yyval.ttype = lookup_template_function (DECL_NAME (yyvsp[-3].ttype), yyvsp[-1].ttype); ;
    break;}
case 254:
#line 1315 "parse.y"
{ yyval.ttype = lookup_template_function (DECL_NAME (yyvsp[-3].ttype), yyvsp[-1].ttype); ;
    break;}
case 259:
#line 1327 "parse.y"
{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
    break;}
case 260:
#line 1329 "parse.y"
{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 261:
#line 1331 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 262:
#line 1336 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 263:
#line 1338 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 267:
#line 1346 "parse.y"
{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
    break;}
case 268:
#line 1351 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
		    yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
		  else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
		    yyval.ttype = do_identifier (yyval.ttype, 1);
		;
    break;}
case 271:
#line 1360 "parse.y"
{
		  if (processing_template_decl)
		    push_obstacks (&permanent_obstack, &permanent_obstack);
		  yyval.ttype = combine_strings (yyval.ttype);
		  if (processing_template_decl)
		    pop_obstacks ();
		;
    break;}
case 272:
#line 1368 "parse.y"
{ char class;
		  yyval.ttype = yyvsp[-1].ttype;
		  class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
		  if (class == 'e' || class == '1'
		      || class == '2' || class == '<')
                    /* This inhibits warnings in truthvalue_conversion.  */
		    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
    break;}
case 273:
#line 1376 "parse.y"
{ char class;
		  yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
		  class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
		  if (class == 'e' || class == '1'
		      || class == '2' || class == '<')
                    /* This inhibits warnings in truthvalue_conversion.  */
		    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
    break;}
case 274:
#line 1384 "parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 275:
#line 1386 "parse.y"
{ if (current_function_decl == 0)
		    {
		      error ("braced-group within expression allowed only inside a function");
		      YYERROR;
		    }
		  keep_next_level ();
		  yyval.ttype = expand_start_stmt_expr (); ;
    break;}
case 276:
#line 1394 "parse.y"
{ tree rtl_exp;
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids braced-groups within expressions");
		  rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
		  /* The statements have side effects, so the group does.  */
		  TREE_SIDE_EFFECTS (rtl_exp) = 1;

		  if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
		    {
		      /* Make a BIND_EXPR for the BLOCK already made.  */
		      yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
				  NULL_TREE, rtl_exp, yyvsp[-1].ttype);
		      /* Remove the block from the tree at this point.
			 It gets put back at the proper place
			 when the BIND_EXPR is expanded.  */
		      delete_block (yyvsp[-1].ttype);
		    }
		  else
		    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 277:
#line 1415 "parse.y"
{
                  yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref); 
                  if (TREE_CODE (yyval.ttype) == CALL_EXPR
                      && TREE_TYPE (yyval.ttype) != void_type_node)
	            yyval.ttype = require_complete_type (yyval.ttype);
                ;
    break;}
case 278:
#line 1422 "parse.y"
{
		  yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref);
		  if (TREE_CODE (yyval.ttype) == CALL_EXPR
		      && TREE_TYPE (yyval.ttype) != void_type_node)
		    yyval.ttype = require_complete_type (yyval.ttype);
                ;
    break;}
case 279:
#line 1429 "parse.y"
{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 280:
#line 1431 "parse.y"
{ /* If we get an OFFSET_REF, turn it into what it really
		     means (e.g., a COMPONENT_REF).  This way if we've got,
		     say, a reference to a static member that's being operated
		     on, we don't end up trying to find a member operator for
		     the class it's in.  */
		  if (TREE_CODE (yyval.ttype) == OFFSET_REF)
		    yyval.ttype = resolve_offset_ref (yyval.ttype);
		  yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
    break;}
case 281:
#line 1440 "parse.y"
{ if (TREE_CODE (yyval.ttype) == OFFSET_REF)
		    yyval.ttype = resolve_offset_ref (yyval.ttype);
		  yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
    break;}
case 282:
#line 1445 "parse.y"
{ if (current_class_ptr)
		    {
#ifdef WARNING_ABOUT_CCD
		      TREE_USED (current_class_ptr) = 1;
#endif
		      yyval.ttype = current_class_ptr;
		    }
		  else if (current_function_decl
			   && DECL_STATIC_FUNCTION_P (current_function_decl))
		    {
		      error ("`this' is unavailable for static member functions");
		      yyval.ttype = error_mark_node;
		    }
		  else
		    {
		      if (current_function_decl)
			error ("invalid use of `this' in non-member function");
		      else
			error ("invalid use of `this' at top level");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 283:
#line 1468 "parse.y"
{
		  tree type;
		  tree id = yyval.ttype;

		  /* This is a C cast in C++'s `functional' notation.  */
		  if (yyvsp[-1].ttype == error_mark_node)
		    {
		      yyval.ttype = error_mark_node;
		      break;
		    }
#if 0
		  if (yyvsp[-1].ttype == NULL_TREE)
		    {
		      error ("cannot cast null list to type `%s'",
		             IDENTIFIER_POINTER (TYPE_NAME (id)));
		      yyval.ttype = error_mark_node;
		      break;
		    }
#endif
#if 0
		  /* type is not set! (mrs) */
		  if (type == error_mark_node)
		    yyval.ttype = error_mark_node;
		  else
#endif
		    {
		      if (id == ridpointers[(int) RID_CONST])
		        type = build_type_variant (integer_type_node, 1, 0);
		      else if (id == ridpointers[(int) RID_VOLATILE])
		        type = build_type_variant (integer_type_node, 0, 1);
#if 0
		      /* should not be able to get here (mrs) */
		      else if (id == ridpointers[(int) RID_FRIEND])
		        {
		          error ("cannot cast expression to `friend' type");
		          yyval.ttype = error_mark_node;
		          break;
		        }
#endif
		      else my_friendly_abort (79);
		      yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
		    }
		;
    break;}
case 285:
#line 1513 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
    break;}
case 286:
#line 1517 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("static_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
    break;}
case 287:
#line 1521 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
    break;}
case 288:
#line 1525 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("const_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
    break;}
case 289:
#line 1529 "parse.y"
{ yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
    break;}
case 290:
#line 1531 "parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);
		  check_for_new_type ("typeid", yyvsp[-1].ftype);
		  yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
    break;}
case 291:
#line 1535 "parse.y"
{ yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
    break;}
case 292:
#line 1537 "parse.y"
{
		  got_scope = NULL_TREE;
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 293:
#line 1545 "parse.y"
{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
    break;}
case 294:
#line 1547 "parse.y"
{ if (processing_template_decl)
		    yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE);
		  else
		    yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
    break;}
case 295:
#line 1552 "parse.y"
{ if (processing_template_decl)
		    yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype), 
				       NULL_TREE, NULL_TREE);
		  else
		    yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
    break;}
case 296:
#line 1558 "parse.y"
{ 
		  yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
		;
    break;}
case 297:
#line 1562 "parse.y"
{
		  yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, 
					  NULL_TREE, LOOKUP_NORMAL); 
                ;
    break;}
case 298:
#line 1567 "parse.y"
{
		  yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE,
					  NULL_TREE, LOOKUP_NORMAL); 
                ;
    break;}
case 299:
#line 1572 "parse.y"
{ yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 300:
#line 1574 "parse.y"
{ if (processing_template_decl)
		    yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
		  else
		    yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
    break;}
case 301:
#line 1579 "parse.y"
{
#if 0
		  /* This is a future direction of this code, but because
		     build_x_function_call cannot always undo what is done
		     in build_component_ref entirely yet, we cannot do this.  */
		  yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, current_class_ref);
		  if (TREE_CODE (yyval.ttype) == CALL_EXPR
		      && TREE_TYPE (yyval.ttype) != void_type_node)
		    yyval.ttype = require_complete_type (yyval.ttype);
#else
		  yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
					  LOOKUP_NORMAL);
#endif
		;
    break;}
case 302:
#line 1594 "parse.y"
{
#if 0
		  /* This is a future direction of this code, but because
		     build_x_function_call cannot always undo what is done
		     in build_component_ref entirely yet, we cannot do this.  */
		  yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, current_class_ref);
		  if (TREE_CODE (yyval.ttype) == CALL_EXPR
		      && TREE_TYPE (yyval.ttype) != void_type_node)
		    yyval.ttype = require_complete_type (yyval.ttype);
#else
		  yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
					  LOOKUP_NORMAL);
#endif
		;
    break;}
case 303:
#line 1609 "parse.y"
{
		  if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype)))
		    {
		      warning ("signature name in scope resolution ignored");
		      yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
					      LOOKUP_NORMAL);
		    }
		  else
		    yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
		;
    break;}
case 304:
#line 1620 "parse.y"
{
		  if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype)))
		    {
		      warning ("signature name in scope resolution ignored");
		      yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
					      LOOKUP_NORMAL);
		    }
		  else
		    yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
		;
    break;}
case 305:
#line 1632 "parse.y"
{
		  if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)
		      && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) 
			  != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)))))
		    cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
		  yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype);
		;
    break;}
case 306:
#line 1640 "parse.y"
{
		  if (yyvsp[-4].ttype != yyvsp[-1].ttype)
		    cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
		  if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
		      != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
		    cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
		  yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype);
		;
    break;}
case 307:
#line 1649 "parse.y"
{
		  yyval.ttype = error_mark_node;
		;
    break;}
case 308:
#line 1694 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 309:
#line 1696 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 310:
#line 1701 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 311:
#line 1703 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 312:
#line 1708 "parse.y"
{ yyval.ttype = boolean_true_node; ;
    break;}
case 313:
#line 1710 "parse.y"
{ yyval.ttype = boolean_false_node; ;
    break;}
case 315:
#line 1717 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 316:
#line 1722 "parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  setup_vtbl_ptr ();
		  /* Always keep the BLOCK node associated with the outermost
		     pair of curly braces of a function.  These are needed
		     for correct operation of dwarfout.c.  */
		  keep_next_level ();
		;
    break;}
case 317:
#line 1735 "parse.y"
{ got_object = TREE_TYPE (yyval.ttype); ;
    break;}
case 318:
#line 1737 "parse.y"
{
		  yyval.ttype = build_x_arrow (yyval.ttype); 
		  got_object = TREE_TYPE (yyval.ttype);
		;
    break;}
case 319:
#line 1745 "parse.y"
{
		  resume_momentary (yyvsp[-1].itype);
		  if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
		    note_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 320:
#line 1751 "parse.y"
{
		  resume_momentary (yyvsp[-1].itype);
		  note_list_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 321:
#line 1756 "parse.y"
{ resume_momentary (yyvsp[-1].itype); ;
    break;}
case 322:
#line 1758 "parse.y"
{
		  shadow_tag (yyvsp[-1].ftype.t);
		  note_list_got_semicolon (yyvsp[-1].ftype.t);
		;
    break;}
case 323:
#line 1763 "parse.y"
{ warning ("empty declaration"); ;
    break;}
case 324:
#line 1765 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 327:
#line 1779 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
					     NULL_TREE, NULL_TREE); ;
    break;}
case 328:
#line 1782 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
					     NULL_TREE); ;
    break;}
case 329:
#line 1789 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 330:
#line 1792 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 331:
#line 1795 "parse.y"
{ yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 332:
#line 1798 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 333:
#line 1801 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 336:
#line 1817 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 337:
#line 1820 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 338:
#line 1823 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 339:
#line 1826 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 340:
#line 1829 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 341:
#line 1832 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
					 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 342:
#line 1839 "parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyval.ttype));
		  yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
    break;}
case 343:
#line 1844 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
    break;}
case 344:
#line 1846 "parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 345:
#line 1851 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 346:
#line 1853 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 347:
#line 1863 "parse.y"
{ yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 348:
#line 1865 "parse.y"
{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
    break;}
case 349:
#line 1867 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 350:
#line 1870 "parse.y"
{ if (extra_warnings && TREE_STATIC (yyval.ttype))
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
		  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
    break;}
case 351:
#line 1876 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 352:
#line 1878 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 353:
#line 1889 "parse.y"
{ yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 354:
#line 1892 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 355:
#line 1895 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 356:
#line 1898 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 357:
#line 1904 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 358:
#line 1906 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 360:
#line 1916 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 361:
#line 1918 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 362:
#line 1920 "parse.y"
{ yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 363:
#line 1923 "parse.y"
{ yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 364:
#line 1926 "parse.y"
{ tree type = TREE_TYPE (yyvsp[-1].ttype);

                  yyval.ftype.new_type_flag = 0;
		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ftype.t = type;
		    }
		  else
		    {
		      error ("`sigof' applied to non-aggregate expression");
		      yyval.ftype.t = error_mark_node;
		    }
		;
    break;}
case 365:
#line 1941 "parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);

                  yyval.ftype.new_type_flag = 0;
		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ftype.t = type;
		    }
		  else
		    {
		      error("`sigof' applied to non-aggregate type");
		      yyval.ftype.t = error_mark_node;
		    }
		;
    break;}
case 366:
#line 1961 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 367:
#line 1963 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 375:
#line 1984 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 376:
#line 1986 "parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 377:
#line 1991 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  if (current_declspecs
		      && TREE_CODE (current_declspecs) != TREE_LIST)
		    current_declspecs = get_decl_list (current_declspecs);
		  if (have_extern_spec && !used_extern_spec)
		    {
		      current_declspecs = decl_tree_cons
			(NULL_TREE, get_identifier ("extern"), 
			 current_declspecs);
		      used_extern_spec = 1;
		    }
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
    break;}
case 378:
#line 2008 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
		  yyval.itype = yyvsp[-2].itype; ;
    break;}
case 379:
#line 2011 "parse.y"
{ tree d;
		  split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
				     &prefix_attributes);
		  if (current_declspecs
		      && TREE_CODE (current_declspecs) != TREE_LIST)
		    current_declspecs = get_decl_list (current_declspecs);
		  if (have_extern_spec && !used_extern_spec)
		    {
		      current_declspecs = decl_tree_cons
			(NULL_TREE, get_identifier ("extern"), 
			 current_declspecs);
		      used_extern_spec = 1;
		    }
		  yyval.itype = suspend_momentary ();
		  d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
		  cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 380:
#line 2032 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
    break;}
case 381:
#line 2036 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
    break;}
case 382:
#line 2038 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes);
		  cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 383:
#line 2045 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
    break;}
case 384:
#line 2052 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
		  yyval.itype = yyvsp[-2].itype; ;
    break;}
case 385:
#line 2055 "parse.y"
{ tree d;
		  split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyval.itype = suspend_momentary ();
		  d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
		  cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 386:
#line 2066 "parse.y"
{ current_declspecs = NULL_TREE;
		  prefix_attributes = NULL_TREE;
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
		  cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
    break;}
case 387:
#line 2073 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
		  yyval.itype = yyvsp[-2].itype; ;
    break;}
case 388:
#line 2076 "parse.y"
{ tree d;
		  current_declspecs = NULL_TREE;
		  prefix_attributes = NULL_TREE;
		  yyval.itype = suspend_momentary ();
		  d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
		  cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 389:
#line 2089 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 390:
#line 2091 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 391:
#line 2096 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 392:
#line 2098 "parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 393:
#line 2103 "parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 394:
#line 2108 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 395:
#line 2110 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 396:
#line 2115 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 397:
#line 2117 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 398:
#line 2119 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 399:
#line 2121 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 400:
#line 2123 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 405:
#line 2139 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 406:
#line 2141 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 407:
#line 2146 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 408:
#line 2148 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 410:
#line 2156 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 411:
#line 2159 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 412:
#line 2162 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 413:
#line 2165 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 414:
#line 2172 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 415:
#line 2174 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 416:
#line 2177 "parse.y"
{ yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 417:
#line 2179 "parse.y"
{ yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 418:
#line 2181 "parse.y"
{ yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 419:
#line 2183 "parse.y"
{ yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 420:
#line 2188 "parse.y"
{ start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
				  NULL_TREE, 1);
		  reinit_parse_for_function (); ;
    break;}
case 421:
#line 2194 "parse.y"
{
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[-1].itype, nested);
		  process_next_inline (yyvsp[-3].ttype);
		;
    break;}
case 422:
#line 2201 "parse.y"
{ process_next_inline (yyvsp[-2].ttype); ;
    break;}
case 423:
#line 2203 "parse.y"
{ process_next_inline (yyvsp[-2].ttype); ;
    break;}
case 426:
#line 2215 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 427:
#line 2217 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
    break;}
case 429:
#line 2222 "parse.y"
{ do_pending_defargs (); ;
    break;}
case 430:
#line 2224 "parse.y"
{ do_pending_defargs (); ;
    break;}
case 431:
#line 2229 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
    break;}
case 432:
#line 2232 "parse.y"
{ yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
		  yyval.ftype.new_type_flag = 1;
		  resume_momentary ((int) yyvsp[-4].itype);
		  check_for_missing_semicolon (yyvsp[-3].ttype); ;
    break;}
case 433:
#line 2237 "parse.y"
{ yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
		  yyval.ftype.new_type_flag = 1;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 434:
#line 2241 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (make_anon_name ()); ;
    break;}
case 435:
#line 2244 "parse.y"
{ yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
		  resume_momentary ((int) yyvsp[-5].itype);
		  check_for_missing_semicolon (yyvsp[-3].ttype);
		  yyval.ftype.new_type_flag = 1; ;
    break;}
case 436:
#line 2249 "parse.y"
{ yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
		  yyval.ftype.new_type_flag = 1;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 437:
#line 2253 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 438:
#line 2256 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 439:
#line 2259 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 440:
#line 2263 "parse.y"
{ reset_specialization(); ;
    break;}
case 441:
#line 2265 "parse.y"
{
		  int semi;
		  tree id;

		  yyval.ttype = yyvsp[-5].ttype;
#if 0
		  /* Need to rework class nesting in the
		     presence of nested classes, etc.  */
		  shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-5].ttype)); */
#endif
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  semi = yychar == ';';
		  /* finish_struct nukes this anyway; if
		     finish_exception does too, then it can go.  */
		  if (semi)
		    note_got_semicolon (yyvsp[-5].ttype);

		  if (TREE_CODE (yyvsp[-5].ttype) == ENUMERAL_TYPE)
		    ;
		  else
		    {
		      yyval.ttype = finish_struct (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
		      if (semi) note_got_semicolon (yyval.ttype);
		    }

		  pop_obstacks ();

		  if (! semi)
		    check_for_missing_semicolon (yyvsp[-5].ttype); 
		  if (current_scope () == current_function_decl)
		    do_pending_defargs ();
		;
    break;}
case 442:
#line 2299 "parse.y"
{
		  if (pending_inlines 
		      && current_scope () == current_function_decl)
		    do_pending_inlines ();
		;
    break;}
case 443:
#line 2305 "parse.y"
{ 
		  yyval.ftype.t = yyvsp[-3].ttype;
		  yyval.ftype.new_type_flag = 1; 
		  if (current_class_type == NULL_TREE)
		    clear_inline_text_obstack (); 
		;
    break;}
case 444:
#line 2312 "parse.y"
{
		  yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0;
		  /* struct B: public A; is not accepted by the WP grammar.  */
		  if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
		      && ! TYPE_BEING_DEFINED (yyval.ftype.t))
		    cp_error ("base clause without member specification for `%#T'",
			      yyval.ftype.t);
		;
    break;}
case 448:
#line 2331 "parse.y"
{ if (pedantic && !in_system_header)
		    pedwarn ("comma at end of enumerator list"); ;
    break;}
case 450:
#line 2338 "parse.y"
{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 451:
#line 2340 "parse.y"
{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 452:
#line 2342 "parse.y"
{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 453:
#line 2344 "parse.y"
{ error ("no body nor ';' separates two class, struct or union declarations"); ;
    break;}
case 454:
#line 2349 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 455:
#line 2354 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 456:
#line 2359 "parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 457:
#line 2364 "parse.y"
{
		  current_aggr = yyvsp[-3].ttype;
		  yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 458:
#line 2369 "parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 459:
#line 2374 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 460:
#line 2376 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 461:
#line 2381 "parse.y"
{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
    break;}
case 462:
#line 2386 "parse.y"
{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 463:
#line 2389 "parse.y"
{ 
		  yyval.ttype = yyvsp[-1].ttype;
		  if (yyvsp[0].ttype)
                    xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
		;
    break;}
case 464:
#line 2395 "parse.y"
{ 
		  yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
		  if (TREE_INT_CST_LOW (current_aggr) == union_type 
		      && TREE_CODE (yyval.ttype) != UNION_TYPE)
		    cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
		  else if (TREE_CODE (yyval.ttype) == UNION_TYPE
			   && TREE_INT_CST_LOW (current_aggr) != union_type)
		    cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
		  if (yyvsp[0].ttype)
		    {
		      if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
		        {
		          if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
			      && TYPE_SIZE (yyval.ttype) == NULL_TREE)
			    {
			      SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
			      if (processing_template_decl)
				push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
			    }
			  else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
			    cp_error ("specialization after instantiation of `%T'", yyval.ttype);
			}
		      xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype); 
		    }
		;
    break;}
case 465:
#line 2424 "parse.y"
{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
		  yyungetc ('{', 1); ;
    break;}
case 468:
#line 2435 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 469:
#line 2437 "parse.y"
{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
    break;}
case 470:
#line 2439 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 472:
#line 2445 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 473:
#line 2450 "parse.y"
{
		  tree type = TREE_TYPE (yyvsp[0].ttype);
		  if (! is_aggr_type (type, 1))
		    yyval.ttype = NULL_TREE;
		  else if (current_aggr == signature_type_node
			   && (! type) && (! IS_SIGNATURE (type)))
		    {
		      error ("class name not allowed as base signature");
		      yyval.ttype = NULL_TREE;
		    }
		  else if (current_aggr == signature_type_node)
		    {
		      sorry ("signature inheritance, base type `%s' ignored",
			     IDENTIFIER_POINTER (yyval.ttype));
		      yyval.ttype = build_tree_list (access_public_node, type);
		    }
		  else if (type && IS_SIGNATURE (type))
		    {
		      error ("signature name not allowed as base class");
		      yyval.ttype = NULL_TREE;
		    }
		  else
		    yyval.ttype = build_tree_list (access_default_node, type);
		;
    break;}
case 474:
#line 2475 "parse.y"
{
		  tree type = TREE_TYPE (yyvsp[0].ttype);
		  if (current_aggr == signature_type_node)
		    error ("access and source specifiers not allowed in signature");
		  if (! IS_AGGR_TYPE (type))
		    yyval.ttype = NULL_TREE;
		  else if (current_aggr == signature_type_node
			   && (! type) && (! IS_SIGNATURE (type)))
		    {
		      error ("class name not allowed as base signature");
		      yyval.ttype = NULL_TREE;
		    }
		  else if (current_aggr == signature_type_node)
		    {
		      sorry ("signature inheritance, base type `%s' ignored",
			     IDENTIFIER_POINTER (yyval.ttype));
		      yyval.ttype = build_tree_list (access_public_node, type);
		    }
		  else if (type && IS_SIGNATURE (type))
		    {
		      error ("signature name not allowed as base class");
		      yyval.ttype = NULL_TREE;
		    }
		  else
		    yyval.ttype = build_tree_list (yyval.ttype, type);
		;
    break;}
case 475:
#line 2505 "parse.y"
{ yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
    break;}
case 477:
#line 2508 "parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
			{
			  sorry ("`sigof' as base signature specifier");
			  yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
			}
		      else
			{
			  error ("`sigof' applied to non-aggregate expression");
			  yyval.ttype = error_mark_node;
			}
		    }
		  else
		    {
		      error ("`sigof' in struct or class declaration");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 478:
#line 2529 "parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
			{
			  sorry ("`sigof' as base signature specifier");
			  yyval.ttype = groktypename (yyvsp[-1].ftype.t);
			}
		      else
			{
			  error ("`sigof' applied to non-aggregate expression");
			  yyval.ttype = error_mark_node;
			}
		    }
		  else
		    {
		      error ("`sigof' in struct or class declaration");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 480:
#line 2554 "parse.y"
{ if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
		    sorry ("non-virtual access");
		  yyval.ttype = access_default_virtual_node; ;
    break;}
case 481:
#line 2558 "parse.y"
{ int err = 0;
		  if (yyvsp[-1].ttype == access_protected_node)
		    {
		      warning ("`protected' access not implemented");
		      yyvsp[-1].ttype = access_public_node;
		      err++;
		    }
		  else if (yyvsp[-1].ttype == access_public_node)
		    {
		      if (yyvsp[-2].ttype == access_private_node)
			{
			mixed:
			  error ("base class cannot be public and private");
			}
		      else if (yyvsp[-2].ttype == access_default_virtual_node)
			yyval.ttype = access_public_virtual_node;
		    }
		  else /* $2 == access_private_node */
		    {
		      if (yyvsp[-2].ttype == access_public_node)
			goto mixed;
		      else if (yyvsp[-2].ttype == access_default_virtual_node)
			yyval.ttype = access_private_virtual_node;
		    }
		;
    break;}
case 482:
#line 2584 "parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
		    sorry ("non-virtual access");
		  if (yyval.ttype == access_public_node)
		    yyval.ttype = access_public_virtual_node;
		  else if (yyval.ttype == access_private_node)
		    yyval.ttype = access_private_virtual_node; ;
    break;}
case 483:
#line 2594 "parse.y"
{ tree t = yyvsp[-1].ttype;
		  push_obstacks_nochange ();
		  end_temporary_allocation ();

		  if (t == error_mark_node
		      || ! IS_AGGR_TYPE (t))
		    {
		      t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
		      pushtag (make_anon_name (), t, 0);
		    }
		  if (TYPE_SIZE (t))
		    duplicate_tag_error (t);
                  if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
                    {
                      t = make_lang_type (TREE_CODE (t));
                      pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
                      yyvsp[-1].ttype = t;
                    }
		  if (processing_template_decl && TYPE_CONTEXT (t)
		      && ! current_class_type)
		    push_template_decl (TYPE_STUB_DECL (t));
		  pushclass (t, 0);
		  TYPE_BEING_DEFINED (t) = 1;
		  if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
		    {
		      if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
			  && TYPE_SIZE (t) == NULL_TREE)
			{
			  SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
			  if (processing_template_decl)
			    push_template_decl (TYPE_MAIN_DECL (t));
			}
		      else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
			cp_error ("specialization after instantiation of `%T'", t);
		    }
		  /* Reset the interface data, at the earliest possible
		     moment, as it might have been set via a class foo;
		     before.  */
		  /* Don't change signatures.  */
		  if (! IS_SIGNATURE (t))
		    {
		      extern tree pending_vtables;
		      int needs_writing;
		      tree name = TYPE_IDENTIFIER (t);

		      if (! ANON_AGGRNAME_P (name))
			{
			  CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
			  SET_CLASSTYPE_INTERFACE_UNKNOWN_X
			    (t, interface_unknown);
			}

		      /* Record how to set the access of this class's
			 virtual functions.  If write_virtuals == 2 or 3, then
			 inline virtuals are ``extern inline''.  */
		      switch (write_virtuals)
			{
			case 0:
			case 1:
			  needs_writing = 1;
			  break;
			case 2:
			  needs_writing = !! value_member (name, pending_vtables);
			  break;
			case 3:
			  needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
			    && CLASSTYPE_INTERFACE_KNOWN (t);
			  break;
			default:
			  needs_writing = 0;
			}
		      CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
		    }
#if 0
		  t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
		  if (t && IDENTIFIER_TEMPLATE (t))
		    overload_template_name (t, 1);
#endif
		;
    break;}
case 484:
#line 2677 "parse.y"
{
		    yyval.ttype = build_self_reference ();
		;
    break;}
case 485:
#line 2684 "parse.y"
{ if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
    break;}
case 486:
#line 2686 "parse.y"
{
		  if (current_aggr == signature_type_node)
		    yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
		  else
		    yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
		  if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
		;
    break;}
case 487:
#line 2694 "parse.y"
{
		  tree visspec = yyvsp[-2].ttype;

		  if (current_aggr == signature_type_node)
		    {
		      error ("access specifier not allowed in signature");
		      visspec = access_public_node;
		    }
		  yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
		;
    break;}
case 488:
#line 2705 "parse.y"
{
		  if (current_aggr == signature_type_node)
		    error ("access specifier not allowed in signature");
		;
    break;}
case 489:
#line 2715 "parse.y"
{ if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; 
		;
    break;}
case 490:
#line 2718 "parse.y"
{ /* In pushdecl, we created a reverse list of names
		     in this binding level.  Make sure that the chain
		     of what we're trying to add isn't the item itself
		     (which can happen with what pushdecl's doing).  */
		  if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
		    {
		      if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
			yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
		      else
			yyval.ttype = yyvsp[0].ttype;
		    }
		;
    break;}
case 491:
#line 2734 "parse.y"
{ ;
    break;}
case 492:
#line 2736 "parse.y"
{ error ("missing ';' before right brace");
		  yyungetc ('}', 0); ;
    break;}
case 493:
#line 2741 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 494:
#line 2743 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 495:
#line 2745 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 496:
#line 2747 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 497:
#line 2749 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 498:
#line 2751 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 499:
#line 2760 "parse.y"
{ yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 500:
#line 2762 "parse.y"
{ yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 501:
#line 2764 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 502:
#line 2767 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 503:
#line 2770 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 504:
#line 2772 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 505:
#line 2783 "parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
		  yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, attrs)); ;
    break;}
case 506:
#line 2788 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 507:
#line 2791 "parse.y"
{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
    break;}
case 508:
#line 2793 "parse.y"
{ 
                  if (yyvsp[-1].ttype)
		    end_template_decl (); 
                  else
                    end_specialization ();

		  if (yyvsp[0].ttype && DECL_TEMPLATE_INFO (yyvsp[0].ttype)
		      && !DECL_TEMPLATE_SPECIALIZATION (yyvsp[0].ttype))
		    {
		      yyval.ttype = DECL_TI_TEMPLATE (yyvsp[0].ttype); 
		      check_member_template (yyval.ttype);
		    }
		  else if (yyvsp[0].ttype)
		    yyval.ttype = yyvsp[0].ttype;
		  else
		    {
		      cp_error("invalid member template declaration");
		      yyval.ttype = NULL_TREE;
		    }
		;
    break;}
case 509:
#line 2818 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 511:
#line 2821 "parse.y"
{
		  /* In this context, void_type_node encodes
		     friends.  They have been recorded elsewhere.  */
		  if (yyval.ttype == void_type_node)
		    yyval.ttype = yyvsp[0].ttype;
		  else
		    yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
		;
    break;}
case 512:
#line 2833 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 514:
#line 2836 "parse.y"
{
		  /* In this context, void_type_node encodes
		     friends.  They have been recorded elsewhere.  */
		  if (yyval.ttype == void_type_node)
		    yyval.ttype = yyvsp[0].ttype;
		  else
		    yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
		;
    break;}
case 519:
#line 2858 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 520:
#line 2864 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 521:
#line 2873 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 522:
#line 2879 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 523:
#line 2885 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 524:
#line 2891 "parse.y"
{ split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-3].ttype = current_declspecs;
		  yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 525:
#line 2900 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 526:
#line 2903 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 527:
#line 2909 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 528:
#line 2912 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 529:
#line 2915 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 531:
#line 2926 "parse.y"
{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 532:
#line 2931 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
    break;}
case 533:
#line 2933 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 534:
#line 2939 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 535:
#line 2942 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 536:
#line 2947 "parse.y"
{
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
		  yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
		  yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
		;
    break;}
case 537:
#line 2958 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 538:
#line 2960 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 539:
#line 2965 "parse.y"
{ yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 540:
#line 2968 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 541:
#line 2977 "parse.y"
{ yyval.itype = suspend_momentary (); ;
    break;}
case 542:
#line 2982 "parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 543:
#line 2988 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 544:
#line 2990 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 545:
#line 2992 "parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
    break;}
case 546:
#line 2994 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
    break;}
case 547:
#line 3001 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 548:
#line 3003 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 549:
#line 3005 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 550:
#line 3007 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 551:
#line 3009 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 553:
#line 3017 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
		      if (current_class_type
			  && TYPE_BEING_DEFINED (current_class_type)
			  && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
			{
			  /* Remember that this name has been used in the class
			     definition, as per [class.scope0] */
			  pushdecl_class_level (yyval.ttype);
			}
		    }
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 554:
#line 3034 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		  got_scope = NULL_TREE;
		;
    break;}
case 557:
#line 3047 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 558:
#line 3052 "parse.y"
{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
    break;}
case 559:
#line 3057 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 560:
#line 3059 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 561:
#line 3061 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 562:
#line 3063 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 563:
#line 3065 "parse.y"
{ push_nested_class (yyvsp[-1].ttype, 3);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
		  TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
    break;}
case 565:
#line 3076 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 566:
#line 3078 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 567:
#line 3080 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 568:
#line 3082 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 569:
#line 3084 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 571:
#line 3092 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 572:
#line 3094 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 573:
#line 3096 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 574:
#line 3098 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 575:
#line 3100 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 577:
#line 3108 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 578:
#line 3110 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 579:
#line 3112 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 580:
#line 3114 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 581:
#line 3116 "parse.y"
{ if (OP0 (yyval.ttype) != current_class_type)
		    {
		      push_nested_class (OP0 (yyval.ttype), 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		;
    break;}
case 582:
#line 3123 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
		  if (yyvsp[-1].ttype != current_class_type)
		    {
		      push_nested_class (yyvsp[-1].ttype, 3);
		      TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
		    }
		;
    break;}
case 583:
#line 3135 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 584:
#line 3138 "parse.y"
{ got_scope = NULL_TREE;
 		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 585:
#line 3144 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 586:
#line 3147 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 588:
#line 3154 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 589:
#line 3159 "parse.y"
{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 590:
#line 3161 "parse.y"
{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 591:
#line 3163 "parse.y"
{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 596:
#line 3175 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 597:
#line 3182 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lastiddecl;
		      /* Remember that this name has been used in the class
			 definition, as per [class.scope0] */
		      if (current_class_type
			  && TYPE_BEING_DEFINED (current_class_type)
			  && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
			pushdecl_class_level (yyval.ttype);
		    }
		  got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
		;
    break;}
case 598:
#line 3196 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
		;
    break;}
case 599:
#line 3202 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 600:
#line 3208 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
    break;}
case 602:
#line 3224 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 603:
#line 3229 "parse.y"
{
		  if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
		    yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
		  else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 604:
#line 3241 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		;
    break;}
case 605:
#line 3246 "parse.y"
{
		  if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
		    yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
		  else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 606:
#line 3258 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
		;
    break;}
case 607:
#line 3264 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
		;
    break;}
case 608:
#line 3270 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
    break;}
case 611:
#line 3274 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 612:
#line 3283 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		  got_scope = NULL_TREE;
		;
    break;}
case 614:
#line 3292 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 615:
#line 3297 "parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 616:
#line 3299 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
    break;}
case 617:
#line 3306 "parse.y"
{ got_scope = void_type_node; ;
    break;}
case 618:
#line 3312 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 619:
#line 3314 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 620:
#line 3316 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 621:
#line 3318 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 622:
#line 3320 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
		;
    break;}
case 623:
#line 3324 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 625:
#line 3333 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 626:
#line 3335 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 627:
#line 3341 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 628:
#line 3343 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 629:
#line 3345 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 630:
#line 3347 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 631:
#line 3349 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 632:
#line 3351 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 633:
#line 3353 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 634:
#line 3355 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 635:
#line 3357 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
		;
    break;}
case 636:
#line 3361 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 638:
#line 3370 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 640:
#line 3374 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 641:
#line 3376 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 642:
#line 3378 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 643:
#line 3380 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 644:
#line 3382 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 645:
#line 3384 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 646:
#line 3386 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 647:
#line 3388 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 648:
#line 3390 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 654:
#line 3414 "parse.y"
{ do_pushlevel (); ;
    break;}
case 655:
#line 3419 "parse.y"
{ yyval.ttype = do_poplevel (); ;
    break;}
case 657:
#line 3427 "parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids label declarations"); ;
    break;}
case 660:
#line 3438 "parse.y"
{ tree link;
		  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
		    {
		      tree label = shadow_label (TREE_VALUE (link));
		      C_DECLARED_LABEL_FLAG (label) = 1;
		      declare_nonlocal_label (label);
		    }
		;
    break;}
case 661:
#line 3452 "parse.y"
{;
    break;}
case 663:
#line 3458 "parse.y"
{
		  if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
		      add_tree (yyval.ttype);
		    }
		;
    break;}
case 664:
#line 3466 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype);
		      TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
		      last_tree = yyvsp[-3].ttype;
		    }
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 665:
#line 3479 "parse.y"
{
		  if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE,
					        NULL_TREE);
		      add_tree (yyval.ttype);
		    }
                  cond_stmt_keyword = "if";
		;
    break;}
case 666:
#line 3489 "parse.y"
{
		  if (processing_template_decl)
		    {
		      if (last_tree != yyvsp[-2].ttype)
		        {
			  TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
			  TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
			  last_tree = yyvsp[-2].ttype;
			}
		      else
		        TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
		    }
		  else
		    {
		      emit_line_note (input_filename, lineno);
		      expand_start_cond (yyvsp[0].ttype, 0);
		    }
		;
    break;}
case 667:
#line 3508 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
		      TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
		      yyval.ttype = last_tree = yyvsp[-4].ttype;
		    }
		;
    break;}
case 668:
#line 3520 "parse.y"
{ finish_stmt (); ;
    break;}
case 669:
#line 3522 "parse.y"
{
		  if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
		      add_tree (yyval.ttype);
		    }
		;
    break;}
case 670:
#line 3530 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
		      TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
		      last_tree = yyvsp[-2].ttype;
		    }
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 671:
#line 3543 "parse.y"
{ finish_stmt (); ;
    break;}
case 673:
#line 3549 "parse.y"
{ finish_stmt (); ;
    break;}
case 674:
#line 3551 "parse.y"
{
		  tree expr = yyvsp[-1].ttype;
		  if (! processing_template_decl)
		    {
		      emit_line_note (input_filename, lineno);
		      /* Do default conversion if safe and possibly important,
		         in case within ({...}).  */
		      if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
		           && lvalue_p (expr))
		          || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
		        expr = default_conversion (expr);
		    }
		  cplus_expand_expr_stmt (expr);
		  clear_momentary ();
		  finish_stmt (); ;
    break;}
case 675:
#line 3567 "parse.y"
{ if (! processing_template_decl) expand_start_else (); ;
    break;}
case 676:
#line 3569 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype);
		      TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
		      last_tree = yyvsp[-3].ttype;
		    }
		  else
		    expand_end_cond ();
		;
    break;}
case 677:
#line 3580 "parse.y"
{ finish_stmt (); ;
    break;}
case 678:
#line 3582 "parse.y"
{ if (! processing_template_decl) expand_end_cond ();
		  do_poplevel ();
		  finish_stmt (); ;
    break;}
case 679:
#line 3586 "parse.y"
{
		  if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE);
		      add_tree (yyval.ttype);
		    }
		  else
		    {
		      emit_nop ();
		      emit_line_note (input_filename, lineno);
		      expand_start_loop (1); 
		    }
		  cond_stmt_keyword = "while";
		;
    break;}
case 680:
#line 3601 "parse.y"
{
		  if (processing_template_decl)
		    {
		      if (last_tree != yyvsp[-2].ttype)
		        {
			  TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
			  TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
			  last_tree = yyvsp[-2].ttype;
			}
		      else
		        TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
		    }
		  else
		    {
		      emit_line_note (input_filename, lineno);
		      expand_exit_loop_if_false (0, yyvsp[0].ttype);
		    }
		;
    break;}
case 681:
#line 3620 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype);
		      TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE;
		      last_tree = yyvsp[-5].ttype;
		    }
		  else
		    expand_end_loop ();
		  finish_stmt ();
		;
    break;}
case 682:
#line 3632 "parse.y"
{
		  if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE);
		      add_tree (yyval.ttype);
		    }
		  else
		    {
		      emit_nop ();
		      emit_line_note (input_filename, lineno);
		      expand_start_loop_continue_elsewhere (1);
		    }
		;
    break;}
case 683:
#line 3646 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
		      TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
		      last_tree = yyvsp[-2].ttype;
		    }
		  else
		    {
		      expand_loop_continue_here ();
		      cond_stmt_keyword = "do";
		    }
		;
    break;}
case 684:
#line 3660 "parse.y"
{
		  if (processing_template_decl)
		    TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
		  else
		    {
		      emit_line_note (input_filename, lineno);
		      expand_exit_loop_if_false (0, yyvsp[-1].ttype);
		      expand_end_loop ();
		    }
		  clear_momentary ();
		  finish_stmt ();
		;
    break;}
case 685:
#line 3673 "parse.y"
{ if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE, 
					        NULL_TREE, NULL_TREE);
		      add_tree (yyval.ttype);
		    }
                  else
		    emit_line_note (input_filename, lineno);
		  if (flag_new_for_scope > 0)
		    {
		      /* Conditionalize .pushlevel */
		      pushlevel (0);
		      note_level_for_for ();
		      clear_last_expr ();
		      push_momentary ();
		      expand_start_bindings (0);
		    }
		;
    break;}
case 686:
#line 3692 "parse.y"
{
		  if (processing_template_decl)
		    {
		      if (last_tree != yyvsp[-2].ttype)
			{
			  TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
			  TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
			  last_tree = yyvsp[-2].ttype;
			}
		    }
		  else
		    {
		      emit_nop ();
		      emit_line_note (input_filename, lineno);
		      expand_start_loop_continue_elsewhere (1); 
		    }
		;
    break;}
case 687:
#line 3710 "parse.y"
{
		  if (processing_template_decl)
		    {
		      if (last_tree != yyvsp[-6].ttype)
		        {
			  TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree;
			  TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE;
			  last_tree = yyvsp[-6].ttype;
			}
		      else
		        TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype;
		    }
		  else
		    {
		      emit_line_note (input_filename, lineno);
		      if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype);
		    }
		;
    break;}
case 688:
#line 3731 "parse.y"
{
		  if (processing_template_decl)
		    TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
		  push_momentary ();
		;
    break;}
case 689:
#line 3737 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype);
		      TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE;
		      last_tree = yyvsp[-12].ttype;
		    }
		  else
		    {
		      emit_line_note (input_filename, lineno);
		      expand_loop_continue_here ();
		      if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype);
		      expand_end_loop ();
		    }
		  pop_momentary ();
		  if (flag_new_for_scope > 0)
		    {
		      do_poplevel ();
		    }
		  finish_stmt (); ;
    break;}
case 690:
#line 3758 "parse.y"
{
		  if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE);
		      add_tree (yyval.ttype);
		    }
		  else
		    {
		      emit_line_note (input_filename, lineno);
		      c_expand_start_case (yyvsp[-1].ttype);
		    }
		  push_switch ();
		  /* Don't let the tree nodes for $4 be discarded by
		     clear_momentary during the parsing of the next stmt.  */
		  push_momentary ();
		;
    break;}
case 691:
#line 3775 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype);
		      TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
		      last_tree = yyvsp[-1].ttype;
		    }
		  else
		    expand_end_case (yyvsp[-3].ttype);
		  pop_momentary ();
		  pop_switch (); 
		;
    break;}
case 692:
#line 3788 "parse.y"
{ finish_stmt (); ;
    break;}
case 693:
#line 3790 "parse.y"
{ do_case (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 695:
#line 3793 "parse.y"
{ do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 697:
#line 3796 "parse.y"
{ do_case (NULL_TREE, NULL_TREE); ;
    break;}
case 699:
#line 3799 "parse.y"
{ emit_line_note (input_filename, lineno);
		  if (processing_template_decl)
		    add_tree (build_min_nt (BREAK_STMT));
		  else if ( ! expand_exit_something ())
		    error ("break statement not within loop or switch"); ;
    break;}
case 700:
#line 3805 "parse.y"
{ emit_line_note (input_filename, lineno);
		  if (processing_template_decl)
		    add_tree (build_min_nt (CONTINUE_STMT));
		  else if (! expand_continue_loop (0))
		    error ("continue statement not within a loop"); ;
    break;}
case 701:
#line 3811 "parse.y"
{ emit_line_note (input_filename, lineno);
		  c_expand_return (NULL_TREE); ;
    break;}
case 702:
#line 3814 "parse.y"
{ emit_line_note (input_filename, lineno);
		  c_expand_return (yyvsp[-1].ttype);
		  finish_stmt ();
		;
    break;}
case 703:
#line 3819 "parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
		  emit_line_note (input_filename, lineno);
		  expand_asm (yyvsp[-2].ttype);
		  finish_stmt ();
		;
    break;}
case 704:
#line 3826 "parse.y"
{ if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
		  emit_line_note (input_filename, lineno);
		  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
					 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
					 input_filename, lineno);
		  finish_stmt ();
		;
    break;}
case 705:
#line 3835 "parse.y"
{ if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
		  emit_line_note (input_filename, lineno);
		  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
					 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
					 input_filename, lineno);
		  finish_stmt ();
		;
    break;}
case 706:
#line 3845 "parse.y"
{ if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
		  emit_line_note (input_filename, lineno);
		  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
					 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
					 input_filename, lineno);
		  finish_stmt ();
		;
    break;}
case 707:
#line 3853 "parse.y"
{
		  if (processing_template_decl)
		    add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
		  else
		    { emit_line_note (input_filename, lineno);
		      expand_computed_goto (yyvsp[-1].ttype); }
		;
    break;}
case 708:
#line 3861 "parse.y"
{
		  if (processing_template_decl)
		    add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
		  else
		    {
		      tree decl;
		      emit_line_note (input_filename, lineno);
		      decl = lookup_label (yyvsp[-1].ttype);
		      TREE_USED (decl) = 1;
		      expand_goto (decl); 
		    }
		;
    break;}
case 709:
#line 3874 "parse.y"
{ finish_stmt (); ;
    break;}
case 710:
#line 3876 "parse.y"
{ error ("label must be followed by statement");
		  yyungetc ('}', 0);
		  finish_stmt (); ;
    break;}
case 711:
#line 3880 "parse.y"
{ finish_stmt (); ;
    break;}
case 713:
#line 3886 "parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  expand_start_early_try_stmts ();
		;
    break;}
case 714:
#line 3892 "parse.y"
{ expand_start_all_catch (); ;
    break;}
case 715:
#line 3894 "parse.y"
{
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  expand_end_all_catch ();
		  finish_function (lineno, (int)yyvsp[-3].itype, nested);
		;
    break;}
case 716:
#line 3904 "parse.y"
{
		  if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE,
						NULL_TREE);
		      add_tree (yyval.ttype);
		    }
		  else
		    {
		      emit_line_note (input_filename, lineno);
		      expand_start_try_stmts ();
		    }
		;
    break;}
case 717:
#line 3918 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
		      TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
		      last_tree = yyvsp[-1].ttype;
		    }
		  else
		    expand_start_all_catch ();
		;
    break;}
case 718:
#line 3929 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype);
		      TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
		      last_tree = yyvsp[-3].ttype;
		    }
		  else
		    expand_end_all_catch ();
		;
    break;}
case 721:
#line 3948 "parse.y"
{
		  if (processing_template_decl)
		    {
		      yyval.ttype = build_min_nt (HANDLER, NULL_TREE,
						NULL_TREE);
		      add_tree (yyval.ttype);
		    }
		;
    break;}
case 722:
#line 3957 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
		      TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
		      last_tree = yyvsp[-2].ttype;
		    }
		;
    break;}
case 723:
#line 3966 "parse.y"
{
		  if (processing_template_decl)
		    {
		      TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
		      TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
		      last_tree = yyvsp[-4].ttype;
		    }
		  else
		    expand_end_catch_block ();
		;
    break;}
case 727:
#line 3986 "parse.y"
{ expand_start_catch_block (NULL_TREE, NULL_TREE); ;
    break;}
case 728:
#line 4002 "parse.y"
{ check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
		  expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
					    TREE_VALUE (yyvsp[-1].ftype.t)); ;
    break;}
case 729:
#line 4009 "parse.y"
{ tree label;
		do_label:
		  label = define_label (input_filename, lineno, yyvsp[-1].ttype);
		  if (label && ! minimal_parse_mode)
		    expand_label (label);
		;
    break;}
case 730:
#line 4016 "parse.y"
{ goto do_label; ;
    break;}
case 731:
#line 4018 "parse.y"
{ goto do_label; ;
    break;}
case 732:
#line 4020 "parse.y"
{ goto do_label; ;
    break;}
case 733:
#line 4025 "parse.y"
{ if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 735:
#line 4028 "parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids compound statements inside for initializations");
		;
    break;}
case 736:
#line 4037 "parse.y"
{ emit_line_note (input_filename, lineno);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 737:
#line 4040 "parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 738:
#line 4045 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 740:
#line 4048 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 741:
#line 4055 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 744:
#line 4062 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 745:
#line 4067 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 746:
#line 4072 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
    break;}
case 747:
#line 4074 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 748:
#line 4085 "parse.y"
{
		  yyval.ttype = empty_parms();
		;
    break;}
case 750:
#line 4090 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
		  TREE_PARMLIST (yyval.ttype) = 1; 
		  check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
    break;}
case 751:
#line 4099 "parse.y"
{
		  yyval.ttype = chainon (yyval.ttype, void_list_node);
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 752:
#line 4104 "parse.y"
{
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 753:
#line 4109 "parse.y"
{
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 754:
#line 4113 "parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); 
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 755:
#line 4118 "parse.y"
{
		  yyval.ttype = NULL_TREE;
		;
    break;}
case 756:
#line 4122 "parse.y"
{
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 757:
#line 4126 "parse.y"
{
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 758:
#line 4130 "parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
		  TREE_PARMLIST (yyval.ttype) = 1;
		;
    break;}
case 759:
#line 4135 "parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = chainon (yyval.ttype, void_list_node);
		  TREE_PARMLIST (yyval.ttype) = 1;
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 760:
#line 4146 "parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
		  TREE_PARMLIST (yyval.ttype) = 1;
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 761:
#line 4161 "parse.y"
{ maybe_snarf_defarg (); ;
    break;}
case 762:
#line 4163 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 765:
#line 4174 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 766:
#line 4177 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
    break;}
case 767:
#line 4180 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
		  yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
    break;}
case 768:
#line 4183 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 769:
#line 4185 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
    break;}
case 771:
#line 4191 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
    break;}
case 772:
#line 4201 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
    break;}
case 773:
#line 4205 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 774:
#line 4208 "parse.y"
{ yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 775:
#line 4211 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 776:
#line 4215 "parse.y"
{ tree specs = strip_attrs (yyvsp[0].ftype.t);
		  yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 777:
#line 4219 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 778:
#line 4226 "parse.y"
{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 779:
#line 4229 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
    break;}
case 782:
#line 4240 "parse.y"
{ see_typename (); ;
    break;}
case 783:
#line 4245 "parse.y"
{
		  error ("type specifier omitted for parameter");
		  yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
		;
    break;}
case 784:
#line 4250 "parse.y"
{
		  error ("type specifier omitted for parameter");
		  if (TREE_CODE (yyval.ttype) == SCOPE_REF
		      && TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM)
		    cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
		  yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
		;
    break;}
case 785:
#line 4261 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 786:
#line 4263 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 787:
#line 4265 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
    break;}
case 788:
#line 4270 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
    break;}
case 790:
#line 4276 "parse.y"
{
		  TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 791:
#line 4284 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 792:
#line 4286 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 793:
#line 4288 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 794:
#line 4290 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 795:
#line 4297 "parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 796:
#line 4302 "parse.y"
{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
    break;}
case 797:
#line 4304 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
    break;}
case 798:
#line 4306 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
    break;}
case 799:
#line 4308 "parse.y"
{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
    break;}
case 800:
#line 4310 "parse.y"
{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
    break;}
case 801:
#line 4312 "parse.y"
{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
    break;}
case 802:
#line 4314 "parse.y"
{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
    break;}
case 803:
#line 4316 "parse.y"
{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
    break;}
case 804:
#line 4318 "parse.y"
{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
    break;}
case 805:
#line 4320 "parse.y"
{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
    break;}
case 806:
#line 4322 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 807:
#line 4324 "parse.y"
{ yyval.ttype = ansi_opname[LT_EXPR]; ;
    break;}
case 808:
#line 4326 "parse.y"
{ yyval.ttype = ansi_opname[GT_EXPR]; ;
    break;}
case 809:
#line 4328 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 810:
#line 4330 "parse.y"
{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
    break;}
case 811:
#line 4332 "parse.y"
{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
    break;}
case 812:
#line 4334 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 813:
#line 4336 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 814:
#line 4338 "parse.y"
{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
    break;}
case 815:
#line 4340 "parse.y"
{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
    break;}
case 816:
#line 4342 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
    break;}
case 817:
#line 4344 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
    break;}
case 818:
#line 4346 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
    break;}
case 819:
#line 4348 "parse.y"
{ yyval.ttype = ansi_opname[COND_EXPR]; ;
    break;}
case 820:
#line 4350 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 821:
#line 4352 "parse.y"
{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
    break;}
case 822:
#line 4354 "parse.y"
{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
    break;}
case 823:
#line 4356 "parse.y"
{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
    break;}
case 824:
#line 4358 "parse.y"
{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
    break;}
case 825:
#line 4360 "parse.y"
{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
    break;}
case 826:
#line 4362 "parse.y"
{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
    break;}
case 827:
#line 4364 "parse.y"
{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
    break;}
case 828:
#line 4366 "parse.y"
{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
    break;}
case 829:
#line 4369 "parse.y"
{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 830:
#line 4371 "parse.y"
{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 487 "/usr/share/bison.simple"

  yyvsp -= yylen;
  yyssp -= yylen;
#ifdef YYLSP_NEEDED
  yylsp -= yylen;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

  *++yyvsp = yyval;

#ifdef YYLSP_NEEDED
  yylsp++;
  if (yylen == 0)
    {
      yylsp->first_line = yylloc.first_line;
      yylsp->first_column = yylloc.first_column;
      yylsp->last_line = (yylsp-1)->last_line;
      yylsp->last_column = (yylsp-1)->last_column;
      yylsp->text = 0;
    }
  else
    {
      yylsp->last_line = (yylsp+yylen-1)->last_line;
      yylsp->last_column = (yylsp+yylen-1)->last_column;
    }
#endif

  /* Now "shift" the result of the reduction.
     Determine what state that goes to,
     based on the state we popped back to
     and the rule number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTBASE];

  goto yynewstate;

yyerrlab:   /* here on detecting error */

  if (! yyerrstatus)
    /* If not already recovering from an error, report this error.  */
    {
      ++yynerrs;

#ifdef YYERROR_VERBOSE
      yyn = yypact[yystate];

      if (yyn > YYFLAG && yyn < YYLAST)
	{
	  int size = 0;
	  char *msg;
	  int x, count;

	  count = 0;
	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
	  for (x = (yyn < 0 ? -yyn : 0);
	       x < (sizeof(yytname) / sizeof(char *)); x++)
	    if (yycheck[x + yyn] == x)
	      size += strlen(yytname[x]) + 15, count++;
	  msg = (char *) malloc(size + 15);
	  if (msg != 0)
	    {
	      strcpy(msg, "parse error");

	      if (count < 5)
		{
		  count = 0;
		  for (x = (yyn < 0 ? -yyn : 0);
		       x < (sizeof(yytname) / sizeof(char *)); x++)
		    if (yycheck[x + yyn] == x)
		      {
			strcat(msg, count == 0 ? ", expecting `" : " or `");
			strcat(msg, yytname[x]);
			strcat(msg, "'");
			count++;
		      }
		}
	      yyerror(msg);
	      free(msg);
	    }
	  else
	    yyerror ("parse error; also virtual memory exceeded");
	}
      else
#endif /* YYERROR_VERBOSE */
	yyerror("parse error");
    }

  goto yyerrlab1;
yyerrlab1:   /* here on error raised explicitly by an action */

  if (yyerrstatus == 3)
    {
      /* if just tried and failed to reuse lookahead token after an error, discard it.  */

      /* return failure if at end of input */
      if (yychar == YYEOF)
	YYABORT;

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
#endif

      yychar = YYEMPTY;
    }

  /* Else will try to reuse lookahead token
     after shifting the error token.  */

  yyerrstatus = 3;		/* Each real token shifted decrements this */

  goto yyerrhandle;

yyerrdefault:  /* current state does not do anything special for the error token. */

#if 0
  /* This is wrong; only states that explicitly want error tokens
     should shift them.  */
  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  if (yyn) goto yydefault;
#endif

yyerrpop:   /* pop the current state because it cannot handle the error token */

  if (yyssp == yyss) YYABORT;
  yyvsp--;
  yystate = *--yyssp;
#ifdef YYLSP_NEEDED
  yylsp--;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "Error: state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

yyerrhandle:

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yyerrdefault;

  yyn += YYTERROR;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
    goto yyerrdefault;

  yyn = yytable[yyn];
  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrpop;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrpop;

  if (yyn == YYFINAL)
    YYACCEPT;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting error token, ");
#endif

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  yystate = yyn;
  goto yynewstate;
}
#line 4374 "parse.y"


#ifdef SPEW_DEBUG
const char *
debug_yytranslate (value)
    int value;
{
  return yytname[YYTRANSLATE (value)];
}

#endif
