/*  A Bison parser, made from parse.y
 by  GNU Bison version 1.25
  */

#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_KEYWORD	280
#define	GOTO	281
#define	ASM_KEYWORD	282
#define	TYPEOF	283
#define	ALIGNOF	284
#define	SIGOF	285
#define	ATTRIBUTE	286
#define	EXTENSION	287
#define	LABEL	288
#define	REALPART	289
#define	IMAGPART	290
#define	AGGR	291
#define	VISSPEC	292
#define	DELETE	293
#define	NEW	294
#define	THIS	295
#define	OPERATOR	296
#define	CXX_TRUE	297
#define	CXX_FALSE	298
#define	NAMESPACE	299
#define	TYPENAME_KEYWORD	300
#define	USING	301
#define	LEFT_RIGHT	302
#define	TEMPLATE	303
#define	TYPEID	304
#define	DYNAMIC_CAST	305
#define	STATIC_CAST	306
#define	REINTERPRET_CAST	307
#define	CONST_CAST	308
#define	SCOPE	309
#define	EMPTY	310
#define	PTYPENAME	311
#define	NSNAME	312
#define	THROW	313
#define	ASSIGN	314
#define	OROR	315
#define	ANDAND	316
#define	MIN_MAX	317
#define	EQCOMPARE	318
#define	ARITHCOMPARE	319
#define	LSHIFT	320
#define	RSHIFT	321
#define	POINTSAT_STAR	322
#define	DOT_STAR	323
#define	UNARY	324
#define	PLUSPLUS	325
#define	MINUSMINUS	326
#define	HYPERUNARY	327
#define	PAREN_STAR_PAREN	328
#define	POINTSAT	329
#define	TRY	330
#define	CATCH	331
#define	PRE_PARSED_FUNCTION_DECL	332
#define	EXTERN_LANG_STRING	333
#define	ALL	334
#define	PRE_PARSED_CLASS_DECL	335
#define	DEFARG	336
#define	DEFARG_MARKER	337
#define	TYPENAME_DEFN	338
#define	IDENTIFIER_DEFN	339
#define	PTYPENAME_DEFN	340
#define	END_OF_LINE	341
#define	END_OF_SAVED_INPUT	342

#line 29 "parse.y"

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

#include "config.h"

#include "system.h"

#include "tree.h"
#include "input.h"
#include "flags.h"
#include "lex.h"
#include "cp-tree.h"
#include "output.h"
#include "except.h"
#include "toplev.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;

extern int end_of_file;

/* 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 const char *cond_stmt_keyword;

static tree empty_parms PROTO((void));
static int parse_decl PROTO((tree, tree, tree, int, tree *));

/* 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 93 "parse.y"
typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
#line 287 "parse.y"

/* List of types and structure classes of the current declaration.  */
static tree current_declspecs;

/* 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;

/* When defining an aggregate, this is the kind of the most recent one
   being defined.  (For example, this might be class_type_node.)  */
static tree current_aggr;

/* When defining an enumeration, this is the type of the enumeration.  */
static tree current_enum_type;

/* 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));

static int
parse_decl(declarator, specs_attrs, attributes, initialized, decl)
  tree declarator;
  tree specs_attrs;
  tree attributes;
  int initialized;
  tree* decl;
{
  int  sm;

  split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
  if (current_declspecs
      && TREE_CODE (current_declspecs) != TREE_LIST)
    current_declspecs = build_decl_list (NULL_TREE, 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;
    }
  sm = suspend_momentary ();
  *decl = start_decl (declarator, current_declspecs, initialized,
		      attributes, prefix_attributes);
  return sm;
}
#include <stdio.h>

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



#define	YYFINAL		1668
#define	YYFLAG		-32768
#define	YYNTBASE	112

#define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 400)

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,   110,     2,     2,     2,    82,    70,     2,    93,
   108,    80,    78,    59,    79,    92,    81,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    62,    60,    74,
    64,    75,    65,     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,
    94,     2,   111,    69,     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,    58,    68,   109,    88,     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,    61,    63,    66,    67,    71,    72,    73,    76,
    77,    83,    84,    85,    86,    87,    89,    90,    91,    95,
    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
   106,   107
};

#if YYDEBUG != 0
static const short yyprhs[] = {     0,
     0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
    17,    19,    20,    23,    26,    28,    30,    36,    41,    47,
    52,    53,    60,    61,    67,    69,    72,    74,    77,    78,
    85,    88,    92,    96,   100,   104,   109,   110,   116,   119,
   123,   125,   127,   130,   133,   135,   138,   139,   145,   149,
   151,   155,   157,   158,   161,   164,   168,   170,   174,   176,
   180,   182,   186,   189,   192,   195,   197,   199,   205,   210,
   213,   216,   220,   224,   227,   230,   234,   238,   241,   244,
   247,   250,   253,   255,   257,   259,   260,   262,   265,   266,
   268,   273,   277,   281,   282,   291,   297,   298,   308,   315,
   316,   325,   331,   332,   342,   349,   352,   355,   357,   360,
   362,   369,   374,   381,   386,   389,   391,   394,   397,   399,
   402,   404,   407,   410,   415,   418,   422,   423,   424,   426,
   430,   433,   437,   439,   444,   447,   452,   455,   460,   463,
   465,   467,   469,   471,   473,   475,   477,   479,   481,   483,
   485,   486,   493,   494,   501,   502,   508,   509,   515,   516,
   524,   525,   533,   534,   541,   542,   549,   550,   551,   557,
   563,   565,   567,   573,   579,   580,   582,   584,   585,   587,
   589,   593,   595,   597,   599,   601,   603,   605,   607,   609,
   611,   613,   615,   619,   621,   625,   626,   628,   630,   631,
   639,   641,   643,   647,   652,   656,   657,   661,   663,   667,
   671,   675,   679,   681,   683,   685,   688,   691,   694,   697,
   700,   703,   706,   711,   714,   719,   722,   726,   730,   735,
   741,   748,   755,   763,   766,   771,   777,   780,   783,   785,
   786,   791,   796,   800,   802,   806,   809,   813,   818,   820,
   823,   829,   831,   835,   839,   843,   847,   851,   855,   859,
   863,   867,   871,   875,   879,   883,   887,   891,   895,   899,
   903,   907,   913,   917,   921,   923,   926,   930,   934,   936,
   938,   940,   942,   944,   945,   951,   957,   963,   969,   975,
   977,   979,   981,   983,   986,   988,   991,   994,   998,  1003,
  1008,  1010,  1012,  1014,  1018,  1020,  1022,  1024,  1026,  1030,
  1034,  1038,  1039,  1044,  1049,  1052,  1057,  1060,  1065,  1068,
  1071,  1073,  1078,  1080,  1088,  1096,  1104,  1112,  1117,  1122,
  1125,  1128,  1131,  1133,  1138,  1141,  1144,  1150,  1154,  1157,
  1160,  1166,  1170,  1176,  1180,  1185,  1192,  1195,  1197,  1200,
  1202,  1205,  1207,  1209,  1211,  1214,  1215,  1218,  1221,  1225,
  1229,  1233,  1236,  1239,  1242,  1244,  1246,  1248,  1251,  1254,
  1257,  1260,  1262,  1264,  1266,  1268,  1271,  1274,  1278,  1282,
  1286,  1291,  1293,  1296,  1299,  1302,  1304,  1306,  1308,  1311,
  1314,  1317,  1319,  1321,  1324,  1327,  1331,  1333,  1336,  1338,
  1340,  1342,  1347,  1352,  1357,  1362,  1364,  1366,  1368,  1370,
  1374,  1376,  1380,  1382,  1386,  1387,  1392,  1393,  1400,  1404,
  1405,  1410,  1412,  1416,  1420,  1421,  1426,  1430,  1431,  1433,
  1435,  1438,  1445,  1447,  1451,  1452,  1454,  1459,  1466,  1471,
  1473,  1475,  1477,  1479,  1481,  1485,  1486,  1489,  1491,  1494,
  1498,  1503,  1505,  1507,  1511,  1516,  1520,  1526,  1528,  1533,
  1537,  1541,  1542,  1546,  1550,  1554,  1555,  1558,  1561,  1562,
  1570,  1575,  1576,  1583,  1587,  1590,  1593,  1596,  1597,  1598,
  1599,  1610,  1612,  1613,  1615,  1616,  1618,  1620,  1623,  1626,
  1629,  1632,  1635,  1638,  1641,  1644,  1647,  1651,  1656,  1660,
  1663,  1667,  1669,  1670,  1674,  1677,  1680,  1682,  1684,  1685,
  1688,  1692,  1694,  1699,  1701,  1705,  1707,  1709,  1714,  1719,
  1722,  1725,  1729,  1733,  1734,  1736,  1740,  1743,  1746,  1748,
  1751,  1754,  1757,  1760,  1763,  1766,  1769,  1771,  1774,  1777,
  1781,  1784,  1787,  1792,  1797,  1800,  1802,  1808,  1813,  1815,
  1816,  1818,  1822,  1823,  1825,  1829,  1831,  1833,  1835,  1837,
  1842,  1847,  1852,  1857,  1862,  1866,  1871,  1876,  1881,  1886,
  1890,  1892,  1896,  1898,  1902,  1905,  1907,  1915,  1916,  1919,
  1921,  1924,  1925,  1928,  1933,  1938,  1941,  1946,  1948,  1951,
  1955,  1959,  1962,  1965,  1969,  1971,  1976,  1981,  1985,  1989,
  1992,  1994,  1996,  1999,  2001,  2003,  2006,  2009,  2011,  2014,
  2018,  2022,  2025,  2028,  2032,  2034,  2038,  2042,  2045,  2048,
  2052,  2054,  2059,  2063,  2068,  2072,  2074,  2077,  2080,  2083,
  2086,  2089,  2091,  2094,  2099,  2104,  2107,  2109,  2111,  2113,
  2115,  2118,  2123,  2126,  2129,  2132,  2135,  2137,  2140,  2143,
  2146,  2149,  2153,  2155,  2158,  2162,  2167,  2170,  2173,  2176,
  2179,  2182,  2185,  2190,  2193,  2195,  2198,  2201,  2205,  2207,
  2211,  2214,  2218,  2221,  2224,  2228,  2230,  2234,  2239,  2241,
  2244,  2248,  2251,  2254,  2256,  2260,  2263,  2266,  2268,  2271,
  2275,  2277,  2281,  2283,  2290,  2295,  2300,  2304,  2310,  2314,
  2318,  2322,  2325,  2327,  2329,  2332,  2335,  2338,  2339,  2341,
  2343,  2346,  2350,  2352,  2355,  2356,  2360,  2361,  2362,  2368,
  2370,  2371,  2374,  2376,  2378,  2380,  2383,  2384,  2389,  2391,
  2392,  2393,  2399,  2400,  2401,  2409,  2410,  2411,  2412,  2413,
  2426,  2427,  2428,  2436,  2437,  2443,  2444,  2452,  2453,  2458,
  2461,  2464,  2467,  2471,  2478,  2487,  2498,  2511,  2516,  2520,
  2523,  2526,  2528,  2530,  2532,  2534,  2536,  2537,  2538,  2545,
  2546,  2547,  2553,  2555,  2558,  2559,  2560,  2566,  2568,  2570,
  2574,  2578,  2581,  2584,  2587,  2590,  2593,  2595,  2598,  2599,
  2601,  2602,  2604,  2606,  2607,  2609,  2611,  2615,  2620,  2622,
  2626,  2627,  2629,  2631,  2633,  2636,  2639,  2642,  2644,  2647,
  2650,  2651,  2655,  2657,  2659,  2661,  2664,  2667,  2670,  2675,
  2678,  2681,  2684,  2687,  2690,  2693,  2695,  2698,  2700,  2703,
  2705,  2707,  2708,  2709,  2711,  2712,  2717,  2720,  2722,  2724,
  2728,  2729,  2733,  2737,  2741,  2743,  2746,  2749,  2752,  2755,
  2758,  2761,  2764,  2767,  2770,  2773,  2776,  2779,  2782,  2785,
  2788,  2791,  2794,  2797,  2800,  2803,  2806,  2809,  2812,  2816,
  2819,  2822,  2825,  2828,  2832,  2835,  2838,  2843,  2848,  2852
};

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

#endif

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   340,   342,   350,   353,   354,   358,   360,   363,   368,   372,
   378,   382,   385,   389,   392,   394,   396,   399,   401,   404,
   407,   409,   411,   413,   415,   416,   418,   419,   423,   426,
   435,   438,   440,   444,   447,   449,   453,   456,   468,   475,
   483,   485,   486,   488,   492,   495,   501,   504,   506,   511,
   514,   518,   521,   524,   527,   531,   536,   546,   548,   550,
   552,   554,   567,   570,   574,   577,   579,   581,   584,   587,
   591,   593,   595,   597,   602,   604,   606,   608,   610,   611,
   618,   619,   620,   623,   626,   630,   632,   633,   636,   638,
   641,   644,   650,   654,   657,   659,   663,   665,   667,   671,
   673,   675,   679,   681,   683,   689,   693,   696,   699,   702,
   707,   710,   712,   714,   720,   732,   735,   740,   745,   748,
   753,   758,   767,   770,   772,   776,   789,   809,   812,   814,
   815,   818,   825,   831,   833,   835,   837,   839,   842,   847,
   849,   850,   851,   852,   855,   857,   858,   861,   863,   864,
   867,   872,   872,   876,   876,   879,   879,   882,   882,   886,
   886,   891,   891,   894,   894,   897,   899,   902,   909,   913,
   916,   919,   921,   925,   931,   940,   942,   950,   953,   956,
   959,   963,   966,   968,   971,   974,   976,   978,   980,   984,
   987,   990,   995,   999,  1004,  1008,  1011,  1012,  1016,  1035,
  1042,  1045,  1047,  1048,  1049,  1052,  1056,  1057,  1061,  1065,
  1068,  1070,  1074,  1077,  1080,  1084,  1087,  1089,  1091,  1093,
  1096,  1100,  1102,  1105,  1107,  1113,  1116,  1119,  1122,  1134,
  1139,  1143,  1147,  1152,  1154,  1158,  1162,  1164,  1173,  1177,
  1180,  1183,  1188,  1191,  1193,  1201,  1214,  1219,  1225,  1227,
  1229,  1242,  1245,  1247,  1249,  1251,  1253,  1255,  1257,  1259,
  1261,  1263,  1265,  1267,  1269,  1271,  1273,  1275,  1277,  1279,
  1281,  1283,  1285,  1289,  1291,  1293,  1310,  1313,  1315,  1316,
  1317,  1318,  1319,  1322,  1334,  1337,  1341,  1344,  1346,  1351,
  1353,  1354,  1357,  1359,  1367,  1369,  1371,  1373,  1377,  1380,
  1384,  1388,  1389,  1390,  1394,  1402,  1403,  1404,  1418,  1420,
  1423,  1425,  1436,  1441,  1443,  1445,  1447,  1449,  1451,  1453,
  1456,  1458,  1475,  1476,  1480,  1484,  1488,  1492,  1494,  1498,
  1500,  1502,  1510,  1512,  1514,  1516,  1520,  1522,  1524,  1526,
  1531,  1533,  1535,  1537,  1540,  1542,  1544,  1588,  1591,  1595,
  1598,  1602,  1605,  1610,  1612,  1616,  1629,  1632,  1639,  1646,
  1651,  1653,  1658,  1660,  1667,  1669,  1673,  1677,  1683,  1687,
  1690,  1694,  1697,  1707,  1709,  1712,  1716,  1719,  1722,  1725,
  1728,  1734,  1740,  1742,  1747,  1749,  1767,  1770,  1772,  1775,
  1781,  1783,  1793,  1797,  1800,  1803,  1808,  1811,  1819,  1821,
  1823,  1825,  1828,  1831,  1846,  1865,  1868,  1870,  1873,  1875,
  1879,  1881,  1885,  1887,  1891,  1894,  1898,  1904,  1905,  1917,
  1924,  1927,  1933,  1937,  1942,  1948,  1949,  1957,  1960,  1964,
  1967,  1971,  1976,  1979,  1983,  1986,  1988,  1990,  1992,  1999,
  2001,  2002,  2003,  2007,  2010,  2014,  2017,  2023,  2025,  2028,
  2031,  2034,  2040,  2043,  2046,  2048,  2050,  2054,  2060,  2068,
  2075,  2079,  2081,  2086,  2089,  2092,  2094,  2096,  2100,  2105,
  2112,  2116,  2120,  2127,  2131,  2134,  2137,  2143,  2145,  2157,
  2161,  2166,  2188,  2190,  2193,  2195,  2200,  2202,  2204,  2206,
  2208,  2210,  2214,  2222,  2225,  2227,  2231,  2238,  2244,  2250,
  2256,  2266,  2272,  2276,  2283,  2311,  2321,  2327,  2330,  2333,
  2335,  2339,  2341,  2345,  2350,  2356,  2359,  2360,  2381,  2404,
  2406,  2410,  2421,  2435,  2436,  2437,  2438,  2441,  2456,  2461,
  2467,  2469,  2474,  2476,  2478,  2480,  2482,  2484,  2487,  2497,
  2504,  2529,  2535,  2538,  2541,  2543,  2554,  2559,  2562,  2567,
  2570,  2577,  2587,  2590,  2597,  2607,  2609,  2612,  2614,  2617,
  2624,  2632,  2639,  2645,  2651,  2659,  2663,  2668,  2672,  2675,
  2684,  2686,  2690,  2693,  2698,  2702,  2708,  2719,  2722,  2726,
  2730,  2738,  2743,  2749,  2752,  2754,  2756,  2762,  2764,  2773,
  2776,  2778,  2780,  2782,  2786,  2789,  2792,  2794,  2796,  2798,
  2802,  2805,  2816,  2826,  2828,  2829,  2833,  2841,  2843,  2851,
  2854,  2856,  2858,  2860,  2864,  2867,  2870,  2872,  2874,  2876,
  2880,  2883,  2886,  2888,  2890,  2892,  2894,  2901,  2905,  2910,
  2914,  2919,  2921,  2925,  2928,  2930,  2933,  2935,  2936,  2939,
  2941,  2943,  2949,  2960,  2966,  2972,  2986,  2988,  2992,  3006,
  3008,  3010,  3014,  3020,  3033,  3035,  3039,  3052,  3058,  3060,
  3061,  3062,  3070,  3075,  3084,  3085,  3089,  3092,  3098,  3104,
  3107,  3109,  3111,  3113,  3117,  3121,  3125,  3128,  3132,  3134,
  3143,  3146,  3148,  3150,  3152,  3154,  3156,  3158,  3160,  3164,
  3168,  3172,  3176,  3177,  3179,  3181,  3183,  3185,  3187,  3189,
  3191,  3193,  3201,  3203,  3204,  3205,  3208,  3214,  3216,  3221,
  3223,  3226,  3240,  3243,  3246,  3250,  3253,  3260,  3262,  3265,
  3267,  3269,  3272,  3275,  3278,  3281,  3283,  3286,  3290,  3292,
  3298,  3300,  3301,  3303,  3308,  3310,  3312,  3314,  3316,  3319,
  3320,  3322,  3325,  3326,  3329,  3329,  3332,  3332,  3335,  3335,
  3337,  3339,  3341,  3343,  3349,  3355,  3358,  3361,  3367,  3369,
  3371,  3375,  3377,  3378,  3379,  3381,  3384,  3391,  3397,  3403,
  3407,  3409,  3412,  3414,  3417,  3421,  3423,  3426,  3428,  3431,
  3448,  3454,  3462,  3464,  3466,  3470,  3473,  3474,  3482,  3486,
  3490,  3493,  3494,  3500,  3503,  3506,  3508,  3512,  3517,  3520,
  3530,  3535,  3536,  3543,  3546,  3549,  3551,  3554,  3556,  3566,
  3580,  3584,  3587,  3589,  3593,  3597,  3600,  3603,  3605,  3609,
  3611,  3618,  3625,  3628,  3632,  3636,  3640,  3646,  3650,  3655,
  3657,  3660,  3665,  3671,  3682,  3685,  3687,  3691,  3696,  3698,
  3705,  3708,  3710,  3712,  3718,  3723,  3726,  3728,  3730,  3732,
  3734,  3736,  3738,  3740,  3742,  3744,  3746,  3748,  3750,  3752,
  3754,  3756,  3758,  3760,  3762,  3764,  3766,  3768,  3770,  3772,
  3774,  3776,  3778,  3780,  3782,  3784,  3786,  3788,  3791,  3793
};
#endif


#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)

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_KEYWORD","GOTO","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","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",
"namespace_alias","@5","using_decl","namespace_using_decl","using_directive",
"@6","namespace_qualifier","any_id","extern_lang_string","template_header","@7",
"template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
"template_parm","template_def","template_extdef","template_datadef","datadef",
"ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef","constructor_declarator",
"@8","@9","@10","@11","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",
"@12","@13","@14","@15","@16","@17","@18","@19","begin_explicit_instantiation",
"end_explicit_instantiation","template_type","apparent_template_type","self_template_type",
".finish_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
"template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
"condition","@20","compstmtend","already_scoped_stmt","@21","nontrivial_exprlist",
"nonnull_exprlist","unary_expr",".finish_new_placement",".begin_new_placement",
"new_placement","new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas",
"notype_unqualified_id","do_id","template_id","object_template_id","unqualified_id",
"expr_or_declarator_intern","expr_or_declarator","notype_template_declarator",
"direct_notype_declarator","primary","@22","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","initdcl","@23","initdcl0_innards","@24","initdcl0",
"notype_initdcl0","nomods_initdcl0","@25","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","@26","@27","@28","@29","@30","maybecomma","maybecomma_warn",
"aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn",
"named_complex_class_head_sans_basetype","named_class_head","@31","unnamed_class_head",
"class_head","maybe_base_class_list","base_class_list","base_class","base_class.1",
"base_class_access_list","opt.component_decl_list","access_specifier","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_intern","after_type_declarator","direct_after_type_declarator",
"nonnested_type","complete_type_name","nested_type","notype_declarator_intern",
"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","explicit_template_type","complex_type_name",
"ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl_intern",
"absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
"label_decls","label_decl","compstmt_or_error","compstmt","@32","simple_if",
"@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt","@36","@37",
"@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","@49","function_try_block",
"@50","@51","try_block","@52","@53","handler_seq","handler","@54","@55","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","@56","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,
   112,   112,   114,   113,   113,   115,   115,   116,   117,   118,
   119,   121,   120,   122,   122,   122,   122,   122,   122,   122,
   123,   122,   124,   122,   122,   122,   122,   122,   126,   125,
   127,   127,   127,   128,   128,   128,   130,   129,   131,   131,
   132,   132,   132,   132,   133,   133,   135,   134,   134,   136,
   136,   137,   137,   138,   138,   139,   140,   140,   140,   140,
   140,   140,   141,   141,   142,   142,   142,   142,   142,   142,
   143,   143,   143,   143,   144,   144,   144,   144,   144,   144,
   144,   144,   144,   145,   145,   146,   146,   146,   147,   147,
   148,   148,   148,   150,   149,   149,   151,   149,   149,   152,
   149,   149,   153,   149,   149,   154,   154,   154,   154,   154,
   155,   155,   155,   155,   156,   156,   156,   156,   156,   156,
   156,   157,   158,   158,   158,   159,   160,   161,   161,   161,
   161,   162,   162,   162,   162,   162,   162,   162,   162,   163,
   163,   163,   163,   163,   164,   164,   164,   165,   165,   165,
   167,   166,   168,   166,   169,   166,   170,   166,   171,   166,
   172,   166,   173,   166,   174,   166,   175,   176,   177,   177,
   177,   178,   178,   179,   180,   181,   181,   182,   182,   183,
   183,   184,   184,   184,   185,   185,   185,   185,   185,   186,
   186,   187,   187,   188,   188,   189,   189,   189,   191,   190,
   190,   192,   192,   192,   192,   194,   193,   193,   195,   195,
   195,   195,   196,   196,   197,   197,   197,   197,   197,   197,
   197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
   197,   197,   197,   197,   197,   197,   197,   197,   198,   199,
   200,   200,   201,   201,   201,   201,   202,   202,   203,   203,
   203,   204,   204,   204,   204,   204,   204,   204,   204,   204,
   204,   204,   204,   204,   204,   204,   204,   204,   204,   204,
   204,   204,   204,   204,   204,   204,   205,   205,   205,   205,
   205,   205,   205,   206,   207,   207,   208,   208,   208,   209,
   209,   209,   210,   210,   211,   211,   211,   211,   212,   212,
   213,   213,   213,   213,   214,   214,   214,   214,   214,   214,
   214,   215,   214,   214,   214,   214,   214,   214,   214,   214,
   214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
   214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
   214,   214,   214,   214,   214,   214,   214,   216,   216,   217,
   217,   218,   218,   219,   219,   220,   221,   221,   222,   222,
   222,   222,   222,   222,   223,   223,   224,   224,   225,   225,
   225,   225,   225,   226,   226,   227,   227,   227,   227,   227,
   227,   228,   228,   228,   228,   228,   229,   229,   229,   229,
   229,   229,   230,   230,   230,   230,   231,   231,   232,   232,
   232,   232,   232,   232,   232,   233,   233,   233,   234,   234,
   235,   235,   236,   236,   237,   237,   239,   238,   238,   241,
   240,   240,   242,   243,   245,   244,   244,   246,   246,   247,
   247,   248,   249,   249,   250,   250,   250,   250,   250,   251,
   251,   251,   251,   252,   252,   253,   253,   254,   254,   254,
   254,   254,   255,   255,   255,   255,   255,   256,   257,   257,
   257,   258,   258,   259,   259,   260,   260,   260,   262,   261,
   261,   263,   261,   261,   261,   261,   261,   264,   265,   266,
   261,   261,   267,   267,   268,   268,   269,   269,   269,   269,
   269,   269,   270,   271,   271,   271,   272,   272,   272,   272,
   272,   273,   274,   273,   273,   275,   276,   276,   277,   277,
   277,   278,   278,   279,   279,   280,   280,   280,   280,   281,
   281,   281,   281,   282,   282,   282,   282,   283,   284,   284,
   285,   285,   285,   285,   285,   285,   285,   285,   285,   285,
   286,   286,   286,   286,   286,   286,   286,   286,   286,   287,
   287,   287,   288,   288,   288,   289,   289,   290,   290,   291,
   291,   292,   292,   292,   292,   293,   293,   294,   294,   294,
   295,   295,   296,   296,   297,   297,   297,   298,   298,   299,
   299,   300,   301,   302,   302,   302,   302,   303,   303,   304,
   304,   304,   304,   304,   304,   305,   305,   305,   305,   305,
   305,   306,   306,   307,   307,   307,   308,   309,   309,   310,
   310,   310,   310,   310,   310,   311,   311,   311,   311,   311,
   311,   312,   312,   312,   312,   312,   312,   313,   313,   314,
   314,   315,   315,   316,   316,   316,   317,   317,   317,   318,
   318,   318,   319,   319,   319,   319,   320,   320,   321,   321,
   321,   321,   322,   322,   322,   322,   323,   323,   323,   323,
   323,   323,   324,   325,   325,   325,   326,   326,   327,   328,
   328,   328,   328,   328,   328,   328,   329,   329,   330,   330,
   331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
   331,   332,   332,   332,   332,   332,   332,   332,   332,   332,
   332,   332,   333,   333,   333,   333,   334,   335,   335,   336,
   336,   337,   338,   338,   340,   339,   342,   343,   341,   344,
   345,   344,   346,   346,   347,   347,   348,   347,   347,   349,
   350,   347,   351,   352,   347,   353,   354,   355,   356,   347,
   357,   358,   347,   359,   347,   360,   347,   361,   347,   347,
   347,   347,   347,   347,   347,   347,   347,   347,   347,   347,
   347,   347,   347,   347,   347,   347,   363,   364,   362,   366,
   367,   365,   368,   368,   370,   371,   369,   372,   372,   373,
   373,   374,   374,   374,   374,   375,   375,   375,   376,   376,
   377,   377,   377,   378,   378,   379,   379,   380,   381,   381,
   382,   382,   382,   383,   383,   383,   383,   383,   383,   383,
   385,   384,   386,   386,   387,   387,   387,   387,   387,   388,
   388,   389,   389,   389,   389,   389,   389,   390,   390,   391,
   391,   392,   393,   393,   394,   394,   394,   395,   396,   396,
   397,   397,   397,   397,   398,   399,   399,   399,   399,   399,
   399,   399,   399,   399,   399,   399,   399,   399,   399,   399,
   399,   399,   399,   399,   399,   399,   399,   399,   399,   399,
   399,   399,   399,   399,   399,   399,   399,   399,   399,   399
};

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

static const short yydefgoto[] = {  1666,
   436,     2,   437,   165,   710,   331,   181,     3,     4,    37,
   673,   373,  1340,   674,   789,  1341,  1342,   393,  1447,   678,
    41,   790,   402,   684,   959,   685,   686,   687,    43,   172,
   173,    44,   455,   184,   180,    45,    46,   804,  1087,   810,
  1089,    47,   792,   793,   185,   186,   456,   717,   995,   996,
   653,   997,   234,    48,   981,   980,   700,   697,  1158,  1157,
   939,   936,   136,   979,    49,   236,    50,   933,   566,   332,
   333,   334,   335,  1343,  1615,  1509,  1617,  1556,  1650,  1202,
  1591,  1612,   367,   925,   336,  1276,   877,   605,   884,   337,
   338,   368,   340,   358,    52,   255,   679,   418,   154,    53,
    54,   341,   561,   342,   343,   344,   345,   457,   346,  1344,
   499,   627,   347,  1345,    56,   217,   690,   348,   218,   539,
   219,   197,   210,    60,   482,   500,  1367,   757,  1224,   198,
   211,    61,   510,   758,    62,    63,   669,   670,   671,  1317,
   462,   847,   848,  1606,  1607,  1583,  1547,  1486,    64,   657,
   361,   508,  1394,  1548,  1108,   942,    65,    66,    67,    68,
    69,   242,    70,    71,   244,   776,   777,   778,   779,   797,
  1074,   798,   799,   800,  1059,  1069,  1060,  1384,  1061,  1062,
  1385,  1386,   654,   655,   606,   915,   350,   465,   466,   191,
   480,   473,   200,    73,    74,    75,   142,   143,   157,    77,
   132,   351,   352,   353,    79,   354,    81,   781,   123,   124,
   125,   515,   105,    82,   355,   889,   890,   910,   905,   630,
  1348,  1349,  1203,  1204,  1205,   721,  1350,  1002,  1351,  1432,
  1559,  1512,  1513,  1352,  1353,  1537,  1433,  1560,  1434,  1593,
  1435,  1595,  1644,  1660,  1436,  1619,  1569,  1620,  1518,   458,
   718,  1315,  1354,  1450,  1574,  1423,  1424,  1504,  1586,  1558,
  1554,  1355,  1565,  1453,   854,  1622,  1623,  1624,  1658,   737,
   911,  1022,  1216,  1363,   739,   740,   741,  1018,   742,   148,
  1020,   744,  1218,  1219,   533,    84,    85
};

static const short yypact[] = {   108,
   127,-32768,-32768,  6638,-32768,    55,    57,    72,   240,    62,
   142,-32768,-32768,   625,-32768,   150,   208,   211,-32768,-32768,
-32768,   756,   883,  1366,   130,-32768,   188,   338,-32768,  2656,
  2656,-32768,   422,-32768,  6638,   223,-32768,-32768,   279,-32768,
    98,  4351,-32768,-32768,   268,   823,   365,   293,   423,-32768,
-32768,-32768,-32768,   123,  3083,-32768,  6545,-32768,  2122,   781,
-32768,   465,-32768,-32768,  2046,   404,-32768,   436,-32768,-32768,
   474,  4127,-32768,-32768,-32768,  1037,-32768,-32768,-32768,  2040,
-32768,-32768,   431,  3562,   460,-32768,-32768, 10933,-32768, 10933,
-32768, 10933,-32768,-32768,-32768,    72,   240,   188,   503,   458,
   523,   423,-32768,   621,-32768,   431, 11019, 11019,   491,-32768,
-32768,-32768,-32768,-32768,   330,   541,   579,   772,   794,   552,
   558,-32768,-32768,   897,-32768,   618,    72,   240,-32768,   188,
   503,-32768,  1941,  1787,   556, 12117, 10933,-32768, 10933,  6884,
  4421,-32768,-32768,  2343,   606,  4421,-32768,   764,  4782,  4782,
   422,   508,   551,-32768,   555,  1198,   577,   589,-32768,-32768,
   676,-32768,   591,-32768,  4576,-32768,-32768,   130,  3913,   613,
-32768,-32768,-32768,   268,  1640, 12172,   868,   655,-32768,-32768,
   628,   465,   745,   137,   283,   695,-32768,-32768,   653,   187,
-32768,-32768,  5207,  5207,  6890,  1037,   903,-32768,-32768,   242,
-32768,-32768,  3275,-32768,-32768,-32768,-32768,-32768,  2122,   909,
-32768,   465,  1037,-32768,-32768,-32768,  2314,  2122,-32768,   465,
-32768,  1640,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   703,-32768,   423,-32768,   465,  1413,  1023,-32768,
-32768,   436,-32768,-32768,-32768,-32768,  1086,   431,-32768,   526,
   777,-32768,   316,-32768,-32768,-32768,-32768,-32768,  5793,-32768,
-32768,   251,-32768,   704,   709,-32768,-32768,-32768,-32768,   760,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   714,-32768,-32768,  1086,  4127,   578,-32768,-32768,
   736,-32768,-32768, 11627, 11713, 11799, 11799,-32768,-32768,-32768,
-32768,-32768,   738,   763,   773,   804,   824,  1205,   503, 11105,
  1446, 11799,-32768,-32768, 11799,-32768,-32768, 11799,  8717,-32768,
 11799,   328,   844,-32768, 11799,-32768, 11191,-32768, 12355,   367,
  1836,  3337, 11277,-32768,   894,  2675,-32768,  2485,  3147,  5599,
-32768,   368,-32768,  2011,  2176,   328,   328, 10933, 12117,-32768,
  1446,   800,  1446,-32768,-32768,   816,   871, 12288,   848,   849,
   872,  1718,   591,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,   541,   579,   772,  1446,   794,   552,   920,   558,-32768,
   955,-32768,  1549,    72,   240,-32768,-32768,-32768,-32768,-32768,
-32768, 12226,-32768,  1640,  5776,  1791,-32768,   328,   817,-32768,
-32768,   466,-32768,   932,   941,-32768,-32768,-32768,  4421,-32768,
-32768,  4421,-32768,   913,-32768,-32768,-32768,  1198,  1198,  1198,
-32768,-32768,-32768,  5793,    95,   914,   925,-32768,-32768,-32768,
-32768, 12117,-32768,   931,   937,-32768,-32768,   676,-32768,   465,
-32768,-32768,-32768,-32768,   111,-32768,-32768,-32768,-32768,  9269,
 11105,-32768,-32768,-32768, 11105,   935,-32768,  5148,   113,  7300,
  5886,-32768,-32768,  5886,-32768,  6144,  6144,  6890,  7304,   943,
-32768,   465,  1640,-32768,   946,-32768,-32768,  6312,  2314,  2122,
  1640,-32768,   465,-32768,-32768,   465,  2314,-32768,  1016,-32768,
 10933,   703,-32768,-32768,  1413,-32768,   944,  5002,  1086,   465,
-32768,-32768,   986,   988,  1013,   995,-32768,-32768,-32768,-32768,
   731,-32768,   427,   967,   970,-32768,-32768,  1086,-32768,-32768,
   647,-32768,-32768, 10933, 11105,   736,  8717,-32768,   500,  8717,
-32768,-32768,-32768, 11019,  6398,  6398,  6398,  6398, 12333,-32768,
-32768,-32768,-32768,   974, 11369, 11369,  8717,   976,    49,   978,
  1032,   984,-32768,-32768,-32768,-32768, 10933,-32768,  8808,  8717,
-32768, 11105, 11105,  7914, 11105, 11105, 11105, 11105, 11105, 11105,
 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105,
 11105, 11105, 11105,-32768, 11105,-32768,-32768,-32768,-32768,-32768,
 11105, 11105,-32768,-32768,  2929,   285,   662,  9810,-32768,-32768,
-32768,  1044,   777,  1094,   509,   515,   522,  2194,   606,-32768,
  1931,  1931,-32768,  6174,   993,  1024,  1059,-32768,-32768,   313,
 10308,  1046,-32768,   805,   431,-32768,-32768, 11105,-32768,-32768,
-32768,-32768,-32768,   192,   460,-32768,-32768,   328,-32768,  1640,
  1850,-32768,  1045,  1057,-32768,-32768,  1446,   920,-32768,  9542,
  9633,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    58,-32768,
  1026,  1029,   591,  1549,  1071, 10933,-32768,  1081,-32768,-32768,
  1787,  1616,  1106,   406,  1079,  1082,-32768,-32768,  2205, 12172,
  2205,  4040,  2046, 11935,-32768,  1083,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  1050,  1051,-32768,  1092,-32768,-32768,
   268,-32768,-32768,-32768,-32768,    99,  1218,  1103,  1032,-32768,
-32768,-32768,-32768,  5532, 12333,-32768,   871,  1060, 12288,-32768,
-32768,  1061,-32768,  1067,   496,  4877,  1073,-32768,    75,  7833,
  1118,  1120,   525,-32768,-32768,-32768,-32768,  5886,  5886,  6444,
  6444,  7304,   805,-32768,-32768,  6312,-32768,  1124,-32768,-32768,
  1056,   113,-32768,  2314,-32768,-32768,   465,  1114,-32768,   579,
   772,-32768,  1098,-32768,   558,  1134,-32768,-32768,   524,-32768,
-32768,  1482,-32768,   896,   928,-32768, 11105, 11867,-32768, 11867,
   122,   122,   315,   557,  6631, 11990,    93,  5893,-32768,    69,
   122,-32768,   113,  4217, 10933, 10933,-32768, 10933,   113,  4217,
-32768,-32768,-32768,-32768,-32768,-32768,   637,   637,   637,   328,
  1087,  1089, 10584,  1059,  1095,  1097,  1099,  1125,  5395,  1133,
  1135,  1138,-32768,  1111,-32768,-32768,  1117,-32768,-32768,  1153,
   733,   734,   432,   171, 11105,  1165,-32768,  1171,  1127, 12333,
 12333,-32768,-32768,  1178, 12373, 12390,  6994,  3455,  3620,  4256,
  3132,  1790,  1790,  1790,  2527,  2527,  1322,  1322,   707,   707,
   707,-32768,-32768,  1139,  1141,  1132, 11105, 11019,-32768,   285,
-32768,  9269, 11105,-32768,-32768,-32768, 11105,-32768,-32768,  1152,
 11799,  1142,  1162,  1185,  1216,-32768, 11105,-32768, 11105,-32768,
 11105,  1948,  3403,-32768,-32768,  3403,-32768,   156,  1948,  1144,
  1158,-32768,  1159,  6398,   113,-32768,   113,  4475,-32768,  4217,
  1166,  4662,  4662,  8438,  1161, 11191,  1168,  3753,  3684,  2176,
  1107,  1175,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 11105,
  1446,  1164,  1057,-32768, 12333,-32768, 12333,  1718,  1177, 11455,
-32768,  1181,  1234,-32768,   328,-32768,-32768,-32768,-32768,-32768,
  1576, 12226,-32768,  6398, 10933,  3002,  3002,  5308,-32768,-32768,
-32768,-32768,  3275,-32768,-32768,-32768,  1239, 11105,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,   268,-32768,   541,
-32768,   794,   552, 11105,  1237,-32768,   641,   652,   661,  1032,
-32768,    83,-32768,    32,-32768,-32768,-32768,-32768,-32768,-32768,
 10400,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1120,  1233,
-32768,-32768,-32768,  6398,   968,   968,  1732,-32768,-32768,-32768,
  1235,-32768,-32768, 11019,-32768,-32768,-32768,-32768,  1475,-32768,
  4217, 12333,-32768,  2422,-32768,   465,   465,-32768,-32768,-32768,
-32768,-32768,  4217,   451,   789, 11105,  1016,-32768,  1242,-32768,
-32768,-32768,   215,   226,  2040,   606,   396,   122,  1245,-32768,
   459,  1244,   465,  7092,-32768,-32768,-32768,   465,-32768,  1199,
   328,   328,   328,-32768,  1200,   113,  4217,   113,  4217,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1217,  1223,
  1229,  1230,  1050,-32768, 12221,  9269,  8902,  1215,-32768, 11105,
-32768,-32768,-32768,  1219,  1224,  1225,  6398,-32768,-32768,  1227,
   190,   861,   861,  1214,   861,-32768,-32768, 11799,  1319, 10933,
-32768,  1228,  1231,  1232,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,   113,  1238,-32768,  1226,  3753,-32768,-32768,
  3264,  3264,  5989,  3811,-32768,-32768,-32768,-32768,-32768, 12333,
-32768,-32768,  1236,-32768,-32768,   153,  1240,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  5660,  3422,  3422,  4112,  4112,  5308,
  5772,    54,  3275,-32768,  4229, 12355,-32768,-32768,-32768,  1246,
-32768,  1218,-32768, 11105,-32768, 11105,-32768, 11105,-32768,  1446,
-32768,-32768,  8345,  1308,-32768,  8993,-32768, 10492, 10492,  8532,
   182,  1247,   250,-32768,  9269,  9084,-32768,-32768,   155,  2164,
  2164,  1688,  1688,  9269,-32768,-32768,  1251,  1254,   944,-32768,
-32768,-32768,   113,  1256,-32768,  1279,  1279,   113,  1257, 11105,
 11105,  7597,   465,  6764,   465,   465,  1129,   465,  7497,-32768,
-32768,  7702,  1279,-32768,-32768,  1296,-32768,-32768,-32768,  1266,
-32768,  1270, 11105, 11105, 11105, 11105,  9269,-32768,  1291,-32768,
-32768, 12333,-32768,-32768,-32768,   471,  1225,-32768,-32768,-32768,
-32768,-32768,-32768,  1268,-32768,  1334,   328,-32768,-32768,-32768,
   113,-32768,-32768,-32768,-32768,-32768,-32768, 11105,-32768,-32768,
  5772,  3422,  3422,  4771,  4771,  7427,-32768,   277,  4229,-32768,
-32768,  1274,  1275,  1277,  1290,-32768,   952,   161,  1329,   810,
   819,-32768,-32768,-32768,-32768,-32768, 11105,  1330,  1335,  1336,
 10670,   262,  1446,   415,   583,-32768,-32768, 10761,  1385,-32768,
-32768,-32768,  1349,-32768,  7537, 12058,  6768,  8235,-32768,-32768,
  1403,-32768,-32768,-32768,  9919,-32768,-32768,  1321,  1381,-32768,
-32768,-32768,-32768,  6398,-32768,-32768,  9269,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,  7597,  7597,-32768,  1279,
   594,   905, 11105,-32768,-32768,-32768,  1016,  1016,  1279,  1279,
   731,  1279,-32768,-32768,-32768,   113,   113,-32768,-32768,  1323,
  1324,  1325,  1340,-32768,  9269, 11105,-32768,   471,-32768,-32768,
-32768,-32768,   113,  1344,  4799,  4799,   805,  6024,-32768,-32768,
-32768,-32768,  1290,-32768,  1446,-32768,-32768,-32768,-32768,-32768,
-32768,   665,   665,  1032,  1337,  1345,  7997,-32768,-32768,-32768,
-32768,  1367, 11105,  1377,  1378,  1390,  1569,  1583,-32768,  1032,
-32768,-32768,  1360,-32768,-32768,  1016,   958,-32768,   994,  1016,
 10847,  1014,   176,-32768,-32768,-32768,-32768,-32768,-32768,   336,
-32768,-32768,   113,   113,-32768,-32768,-32768, 11105, 11105,  7597,
   465,   465,-32768,-32768,-32768,  8103,-32768,-32768,   113,   113,
-32768,-32768,-32768,-32768,-32768,  1347,-32768,-32768,-32768,  7801,
  7801,  6295,  2286,  1369,-32768,-32768,-32768, 11019,-32768,-32768,
-32768,  1442, 10215,  8626, 11019, 11105,-32768, 10027,-32768,  1400,
-32768,-32768,  1409,-32768,  1390,  1569,-32768,-32768,   676,-32768,
-32768, 11541, 11541,  9178,-32768,-32768,  1032,-32768,-32768,  7597,
  7597,-32768,  1279,  1279,-32768,  9724,-32768,-32768,-32768,-32768,
-32768,  2286,  5469,-32768,-32768,  1357,   410,  1640,  1032, 10121,
-32768,-32768,    83,-32768,-32768,  1406,  1363, 12311, 10027,-32768,
-32768,-32768,-32768,  1290,    81,-32768,-32768,-32768,-32768,-32768,
  1365, 12243,  1376,  1373,  1382,  1032,-32768,  1016,-32768,-32768,
-32768,-32768,   673,-32768,  9360,-32768,-32768,-32768,-32768,  1290,
  1466,  1436,-32768,-32768,-32768,   365,   268,-32768,-32768,-32768,
   465,    83,-32768, 11105,  1437,-32768,  1439,-32768,  1032, 10027,
  1414,   667,  1449,-32768,-32768,   186,-32768,  1451,-32768,  1405,
-32768,-32768,-32768,-32768, 11105,  1466,  1463,  1466,-32768,   111,
-32768,-32768,-32768,  9451,  1417,   685,-32768,-32768,-32768,  9269,
  1425,-32768,  1529,  1481,-32768,-32768,-32768,   179,-32768, 10121,
  1533,  1485,-32768,-32768,-32768,  1546,  1548,-32768
};

static const short yypgoto[] = {-32768,
  1558,-32768,  -301,  1393,  -385,    29,     8,  1562,-32768,  1531,
-32768,-32768,   265,-32768,   376,-32768,   382,-32768,   121,   901,
    37,    31,-32768,-32768,  -632,-32768,-32768,   608,    39,  1402,
  1136,  1427,  -703,   -24,  -172,     6,   116,-32768,-32768,-32768,
-32768,-32768,   799,-32768,-32768,-32768,-32768,-32768,-32768,   412,
   687,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,  1502,  -668,  6906,  1364,    79,  -587,  -311,   -67,
  1469,  -518,-32768,  1604,-32768,   181,-32768, -1404,-32768, -1267,
   -45,-32768,  2063,  1435,  -283,   341,  -553,-32768,  -856,  6731,
  1649,  1869,  4947,  1331,  -325,   -99,   -92,  1646,  -129,   -51,
   246,-32768,-32768,-32768,  -339,-32768,  -153,-32768,-32768, -1273,
   -52,  -345,  6249,    40,  1515,  -124,   146,   347,  -191,    -4,
  -128,  -174,  -167,    -2,   174,    85,-32768,  -365,-32768,-32768,
-32768,-32768,-32768,   274,  1342,   -57,-32768,   681,-32768,-32768,
 -1179,  -211,   907,-32768,-32768,-32768,-32768,-32768,    10,-32768,
-32768,-32768,-32768,-32768,-32768,   693,  -366,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  1396,-32768,   418,   611,-32768,-32768,
-32768,   581,  -751,-32768,-32768,-32768,-32768,-32768,-32768,   862,
-32768,   408,  1004,   722,  1062,  2110,   109,    22,  -471,  1465,
  3545,   353,-32768,  -494,-32768,    12,   291,   438,  -143,   740,
   -84,  5317,  1320,-32768,  6267,  2755,  1981,   -12,  -106,-32768,
  1550,   -65,-32768,  5689,  3720,  -372,-32768,  2404,  -165,-32768,
-32768,   327,-32768,-32768,   472,    43,  -335,-32768,-32768,-32768,
-32768, -1459,-32768, -1246, -1436,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    51,
-32768,-32768,-32768,-32768,-32768,   106, -1361,-32768,-32768,   -56,
-32768,-32768,-32768,-32768, -1447,    48,-32768,    50,-32768,  -685,
  -361,   672,-32768,-32768,-32768,-32768,  -392,-32768,  -383,  -180,
-32768,   998,   322,-32768,   169,-32768,  -234
};


#define	YYLAST		12474


static const short yytable[] = {    59,
   444,   443,   196,   632,   224,   420,   423,   435,   445,   695,
   122,    36,   780,   761,  1000,   642,   516,   490,   696,   392,
   538,   541,   356,  1118,   357,   103,   432,   298,   256,   641,
    59,   982,    35,   397,    42,   693,  1043,    59,  1045,   177,
   398,   399,    36,    55,   646,   647,  1075,   174,   839,   400,
   878,   178,   209,   571,   711,   509,  1373,  1374,   391,   934,
   976,  1505,   507,    35,  1451,    42,  1566,   247,   221,   408,
   169,   672,    42,  1395,    55,   190,  1562,  1576,   170,   296,
   171,   175,   224,   349,   489,   349,  1013,   349,   495,   498,
  1206,   610,   256,   497,   260,   594,   701,   702,   224,  1589,
  -601,  1466,   349,   349,   528,   610,   738,    -1,  1469,   610,
  1567,   719,    72,   983,    86,  1200,   948,   364,  1080,   722,
   645,   519,   196,  1592,  1085,    89,    -2,   766,  1076,  1072,
    88,   406,   349,  1014,   349,    93,  1015,   452,   141,   146,
  1207,   595,  1601,    72,   802,    90,  -601,  -601,    15,    57,
    72,   256,  -415,   913,   224,   163,  -295,   528,   253,  1633,
    59,  -601,   224,    87,    59,   949,   177,  1008,   720,  -582,
   440,   209,   208,   743,   174,   404,   190,  1077,   178,   224,
    57,  -415,   629,   633,   636,  -415,  1639,   176,  1602,    94,
  1618,  1201,   297,   824,  -356,   164,  1651,   169,   453,    42,
  1477,  1073,   708,   135,    55,   170,   989,   171,   175,  1483,
  1484,  1298,  1485,  1364,  1009,  -582,   189,  1010,   221,   182,
  1427,   190,   998,  1592,   138,   837,   221,   221,  -302,   308,
  -415,   454,  -144,   467,  1145,  1427,   620,  1661,  1505,  -365,
  1564,    15,   107,  -356,    72,    26,   615,   453,   726,   249,
  -366,   403,    15,   616,     8,   521,   221,   419,   422,   260,
  1299,   137,  1365,   838,    95,   110,   111,  1156,    38,  1428,
  1159,  1570,  -365,    72,  -302,  -302,  -365,    72,   155,   468,
   454,   405,   823,  -366,  1536,   607,  1662,  -366,  -582,  -295,
   648,   208,   247,    91,   716,  1594,  -626,  1279,   363,    38,
   108,   471,   474,   109,   642,   221,   130,   131,   680,  -365,
    57,  1187,  1188,    92,   176,   161,   961,   112,   113,   675,
  -366,   147,  1599,  -600,   349,  1117,   987,   988,  1171,   459,
   522,   881,   420,   423,  -582,   485,   935,   296,   162,  1048,
   523,  1443,  -626,  -626,  1629,   247,   460,   695,   882,   432,
    58,   698,   187,   349,   651,  1234,  1019,  -626,   221,   919,
   495,   498,   517,  1579,  1580,   764,   260,  1239,   495,  -600,
  -600,   952,  1049,  1634,   179,   461,  1050,   883,   516,    39,
   498,    58,  -304,  1001,  -600,    40,   493,   374,    58,   183,
   632,   138,   224,   375,   155,   155,   155,   692,   650,   498,
   209,  1260,   564,  1262,   565,   920,   921,   199,   518,  1051,
    39,   139,   224,   594,   637,   221,    40,   215,   216,  1407,
  -120,   224,    15,    14,     7,   127,   128,    10,  -304,  -304,
   295,   411,   683,   768,     8,     9,   413,    59,   224,   177,
   155,    76,   738,  -298,  1226,    20,  1174,   713,   738,  1147,
   297,   178,    18,  -120,    23,   449,   620,  -120,   129,   595,
   638,   240,    21,   736,   962,   241,   820,    72,    26,   127,
   128,  1446,    76,   813,   649,    26,   188,    27,    28,    76,
   963,   175,    58,  -118,   147,    15,   130,   131,  1295,  1296,
  -120,   149,   201,  -143,   213,    18,   349,   243,   221,   221,
  1075,   150,   823,    59,   405,   137,   221,  1008,  1093,    32,
   694,    58,  1240,   363,   151,    58,  -118,   881,   221,   814,
  -118,   130,   131,   971,    88,   629,   633,   199,   636,   349,
  1037,   245,   349,   299,   882,   349,   788,   221,   986,   349,
   829,   829,   829,   829,   780,   522,   620,   795,   607,   520,
    72,  1497,   349,  -118,  1009,   896,   138,  1010,   738,  -831,
  1038,   898,   349,   883,  1406,   349,   360,   759,   900,   695,
   633,  1023,   511,   407,   199,   765,   694,   410,   696,    91,
   362,   127,   128,   372,   748,   749,   794,   176,   957,   680,
   642,  1033,   823,  1035,   376,   693,   958,   937,  1039,    92,
   296,   897,    76,  1052,   641,   380,    76,   899,   955,   127,
   128,   381,   201,   213,   901,  -295,    72,  1024,   512,   692,
   116,   117,   118,   791,     8,     9,   736,    95,    96,    97,
   401,    26,   377,   130,   131,   495,   969,   528,   974,   975,
   127,   128,   571,  1170,  1449,   519,   260,   529,   189,  1053,
   127,   128,    90,   796,  1284,  1478,   137,   530,   425,   201,
   221,   130,   131,   633,  1199,   127,   128,    88,   363,   122,
  1119,   349,   767,   119,   120,   392,   130,   131,    26,   738,
    98,    99,   100,   975,   433,   209,   303,  1193,   295,   247,
    26,   738,   130,   131,   363,   645,  -621,   998,  1195,    -7,
   101,   221,   130,   131,   999,    58,   529,  1197,   115,   703,
   164,  1507,   704,   297,   447,    26,   530,   130,   131,  1613,
   448,   155,   155,   155,   707,   738,   252,   738,  1636,   903,
   906,   885,   694,  1194,   780,   692,  1135,  1081,  1082,   694,
  1083,   886,  1058,  1135,  1196,   221,  1653,   451,   691,  1280,
  1281,   233,  1283,  1198,   463,   887,   199,  1508,    95,   110,
   111,   411,  1135,   464,   413,  1614,    95,   414,   415,  1255,
  1256,  1257,   158,   221,  1637,   824,   501,   811,   520,    95,
   110,   111,   513,    59,    91,    59,    89,    91,    58,   592,
   593,   209,  1654,    59,  -141,  -142,   652,   524,   432,   692,
   349,   349,   525,   349,    92,   692,    90,    92,     8,     9,
   388,   112,   113,   114,   691,  1189,   788,    21,   788,    98,
   113,   526,   745,   812,   527,   378,   788,   795,   535,  1044,
   544,   745,   112,   113,   416,   199,   545,   795,   221,   222,
   223,   201,    89,   199,   224,    92,   546,   379,   694,    15,
  1241,   224,   363,  -415,    58,  1229,  1230,  1231,  1025,  1026,
   130,   131,    90,    89,   127,   128,   794,   137,   794,   519,
   224,  1430,    91,   349,   794,   567,   794,   547,  1121,    76,
  1431,  -415,  -415,    90,   252,   116,   117,   118,   158,   158,
   158,   564,    92,   565,  1268,  1270,    72,   548,    72,   382,
   383,   384,   567,   791,   610,   791,    72,   410,   656,   829,
  1057,  1067,   694,   791,    26,   692,   130,   131,   694,   736,
   201,   256,  1640,   659,   502,   504,   222,   446,   201,   660,
   885,   127,   128,   796,   158,   796,    26,   514,   119,   120,
   886,   260,  1040,   796,   385,   801,   116,   770,   771,    91,
   772,   295,   386,   387,   887,   662,   663,   692,    89,   829,
   349,   483,   484,   692,  1046,  1047,  1479,   491,   492,    92,
   691,     8,     9,   773,  1078,  1411,   246,   691,    90,   664,
   774,    26,  1135,   130,   131,  1090,  1091,  1092,  1041,   483,
   714,  1058,   683,   676,  1270,   491,   715,    26,    18,   119,
   120,   824,   199,  1360,  1362,    90,   736,   550,   677,  1135,
  1425,  1426,  1366,   256,    92,  1135,   483,  1530,   432,   829,
   705,    26,    -6,   130,   131,    95,    96,    97,   694,   349,
   903,   906,   694,   709,   420,   423,   692,  1220,   703,   704,
  1031,   199,    15,   199,   199,   731,   707,  1221,   692,   658,
   755,   432,   491,  1531,  -578,  1404,   760,  -578,   668,   805,
  1222,   806,  1287,    15,   420,   423,   807,  -415,   808,    59,
   694,   658,   483,  1535,  1176,  1177,   694,   815,    98,    99,
   816,   833,   692,   835,   692,   836,   691,   201,   199,   720,
   224,   838,   916,   215,   216,  -415,  -415,   893,  1511,    14,
  -415,   895,   788,   912,  -578,   916,  -578,  -578,   940,  -578,
     8,     9,   829,   795,  1528,   941,   914,   224,   950,   694,
  -578,    20,  -578,   224,   954,   349,   201,   972,   201,   201,
    23,   256,   127,  1391,    58,  1135,    58,   951,  -578,  -578,
   956,    20,   964,   253,    58,   965,   978,  1063,   692,   694,
   691,   985,   794,  -578,   363,  1472,   691,  -298,   984,  1057,
   695,   694,   130,   131,   453,   224,  1029,  1005,  1006,  1585,
  1457,   432,  1462,   201,  1007,   692,   363,  1017,  1459,   999,
  1012,  -830,    72,  1021,   130,   131,   522,  1028,  1032,   791,
  1034,   769,  1036,  1495,  1094,   694,  1095,   694,  1347,  1099,
   300,  1511,  1096,    10,  1097,   736,  1098,  1100,   522,  1101,
  1339,   824,  1102,   155,  -140,   158,   158,   158,  1103,   796,
   990,   770,   771,  1511,  1104,   801,  1106,   801,    18,  1107,
  1243,  1338,  1064,  1071,  1109,   801,  1245,  1246,    21,  1110,
  1243,  1248,  1113,   224,  1246,  1126,  1111,    59,  1112,  1129,
  1610,  1138,  1128,   426,   427,   846,   155,   147,  1130,   903,
   906,   694,  1131,  -183,   991,  1139,   691,   428,  1149,  1140,
   691,    26,  1162,   992,   993,  1150,  1146,   429,   137,  -183,
   788,  -183,  1155,  1511,  1165,    32,  1302,  1303,   694,  1168,
   430,   795,  1456,  1169,  1456,  1192,  1215,   -52,  1225,   894,
  1244,   692,   -52,  1249,   722,  1250,  1254,  1258,   691,  1263,
   994,    72,   501,   -52,   691,  1264,  1302,  1303,   694,  1236,
  1237,  1265,  1266,  1271,  1282,   523,  1286,  1273,  1025,  1026,
   794,  1274,  1275,  1347,  1278,  1288,  1294,  1135,  1289,  1290,
  1200,   209,   460,  1347,  1297,  1293,  1251,  1300,  1346,  -663,
  1347,  1253,  1405,  1310,  1359,  1339,   221,   691,  1368,   829,
    72,  1369,  1339,  1372,  1376,   528,  1338,   791,   960,   127,
   128,   140,   140,  1398,   156,  1575,  1338,  1399,  1409,   977,
  1410,  1419,  1420,  1338,  1421,  1422,  1135,   691,   420,   423,
  1429,  1438,  -304,  1452,  1439,  1440,  1063,   796,   212,   691,
   220,   589,   590,   591,   592,   593,   237,  -304,  1454,   129,
   846,  -304,  1415,  1416,   694,    95,    96,    97,  1467,    26,
    58,   130,   131,   155,   155,   155,  1519,  -304,  1470,  1514,
  1491,  1492,  1493,   691,  1627,   691,  1521,  1515,  1655,  -304,
  -304,   375,  -304,  1522,  -304,   224,    72,  1494,    95,   110,
   111,  1499,  1529,   155,   155,   155,    72,  1551,  1561,  1571,
   363,  1553,  1572,    72,  1587,  1596,   411,   413,    98,    99,
  1597,  1603,  1605,  -304,  -304,   520,  1621,   116,   770,   771,
  1608,  1064,   140,  1346,   116,   770,   771,   140,  -304,  1609,
   156,   156,   156,  1346,   224,  1625,  1631,   692,  1632,   691,
  1346,   112,   113,  1557,   773,  1588,  1635,  1638,  1347,  1347,
  1557,   801,  1643,  1347,  1642,  1379,  1380,   212,  1389,  1390,
  1339,  1392,  1647,   450,  1652,  1339,   691,   745,    26,   349,
   119,   120,  1656,   745,   470,   470,   479,   119,   120,  1657,
  1659,  1338,  1338,  1664,  1665,  1667,  1338,  1668,   692,    58,
   220,   300,   394,   395,    10,  1347,   691,     1,   496,   220,
  1481,  1482,   442,     5,  1347,   160,   221,  1339,  1526,  1172,
   441,    95,   110,   111,   953,   745,  1339,   712,    95,   110,
   111,  1626,   225,   226,   227,    95,   110,   111,  1338,    21,
  1557,   439,   703,   704,  1068,   359,  1387,  1338,    58,   707,
   140,   503,    26,  1311,    27,   319,    18,   409,  1415,  1416,
   694,   228,   410,  1510,  1663,  1347,   297,  1408,   382,   383,
   384,    72,    72,   297,   112,  1523,    72,  1339,  1164,   534,
  1004,   112,   113,   493,   668,  1163,    32,   506,   112,  1525,
   748,   749,     7,     8,     9,    10,  1370,   960,  1338,  1232,
  1475,  1476,   691,   745,  1252,  1347,  1393,  1070,  1346,  1346,
   943,   694,  1161,  1346,   486,   617,   880,  1339,    72,    26,
   156,   386,   387,   390,  1465,  1356,  1641,    72,   153,  1600,
    21,  1388,  1649,  1646,    58,  1471,  1388,  1648,  1338,   801,
  1214,     8,     9,    26,    58,    27,    28,   199,     0,   199,
     0,    58,     0,   297,     0,  1346,   155,   158,     0,   193,
   366,   370,     0,     0,  1346,     0,     0,     0,    18,   194,
    95,   110,   111,     0,   665,   666,   667,    32,    72,     0,
     0,     0,   195,     0,     0,     8,     9,     0,     0,     0,
   519,    26,     0,   130,   131,     0,   212,   220,     0,     0,
   158,     0,     0,  1542,  1543,  1544,     0,  1220,     0,  1030,
   140,  1611,    18,   140,     0,  1346,     0,  1221,    72,   156,
   156,   156,     0,   112,   113,   140,     0,   155,   155,   155,
  1222,     0,   201,  1460,   201,    26,     0,   130,   131,   300,
   394,   395,    10,  1269,     0,   421,   424,   214,   215,   216,
  1079,  1220,     0,     0,    14,  1346,  1084,     0,     0,     0,
     0,  1221,   470,  1577,  1578,   470,     0,   479,   479,   479,
     0,    18,     0,   450,  1222,     0,    20,    21,     0,   470,
   496,   220,     0,     0,   450,    23,     0,     0,   496,     0,
   153,     0,    27,   319,     0,     0,     0,     0,   691,     0,
   699,   450,     0,     0,   295,   745,   214,   215,   216,    58,
    58,   295,     0,    14,    58,   585,   586,   587,   588,   589,
   590,   591,   592,   593,    32,     0,     0,     0,   156,     0,
    18,   156,   596,     0,  1628,    20,  1316,     0,     0,     0,
     0,     0,  1269,     0,    23,   728,   156,   156,   156,   691,
     0,     0,   734,     0,   745,     0,    58,     0,     0,   938,
   199,   156,  1141,     0,  1142,    58,   689,   158,   158,   158,
     0,   597,   598,     0,     0,     0,   599,   600,   601,   602,
     0,     0,   558,     0,   127,   128,     0,     0,     0,    13,
     0,   295,     0,   300,   394,   395,    10,   158,   158,   158,
     0,   127,   128,     0,   542,   543,   339,     0,   339,     0,
   339,    18,   902,   902,     0,   909,    58,     0,     0,   821,
   551,     0,   928,   552,   560,     0,   553,   620,    18,   563,
     0,    21,   689,   568,    26,     0,   130,   131,   251,     0,
     0,   609,   220,     0,   620,   201,    27,   319,     0,     0,
   621,    26,     0,   130,   131,   339,    58,   339,     0,     0,
   622,     0,     0,   300,     8,     9,    10,   621,  1444,  1445,
   623,     0,     0,   624,   625,     0,     0,   622,    32,   874,
     0,   212,     0,   220,   237,   875,     0,   623,     0,     0,
   624,   625,     7,     8,   250,    10,     0,     0,    95,    96,
    97,    21,   225,   226,   227,     0,     0,     0,   251,     0,
   258,     0,     0,     0,     0,     0,    27,   319,   730,     0,
     0,     0,   932,     0,   421,   706,    18,   220,     0,     0,
    21,   228,     0,  1259,   258,  1261,     0,   251,     0,   470,
   470,   479,   479,   479,     0,    27,    28,   470,    32,    26,
     0,    98,    99,   229,     0,   496,     0,     0,   450,     0,
     0,  1506,     0,   258,     0,     0,     0,     0,     0,   252,
     0,     0,   421,   424,   258,     0,     0,    32,   214,   215,
   216,     0,     0,  1524,  1527,    14,     0,   212,   689,     0,
   558,  1292,     0,   558,     0,   689,     0,   826,   230,   231,
   232,     0,    18,     0,     0,     0,     0,    20,     0,     0,
   558,     0,     0,     0,   156,     0,    23,     8,     9,     0,
     0,     0,    13,   558,     0,     0,     0,   853,   639,     8,
     9,    10,   560,   258,     0,   560,     0,     0,   549,     0,
     0,   259,     0,     0,    18,     0,   300,   127,   128,    10,
   158,   421,   834,   551,   552,   876,     0,     7,     8,     9,
    10,   892,  1573,   308,   640,   560,    21,    26,   258,   130,
   131,     0,     0,     0,     0,     0,   339,     0,     0,    26,
  1371,   130,   131,  1220,    21,  1375,     0,     0,     0,     0,
     0,   251,   258,  1221,   902,    21,     0,   902,     0,    27,
   319,   620,     0,     0,   689,     0,  1222,     0,    26,   902,
    27,    28,     0,  1148,  1148,   928,     0,     0,   434,     0,
     0,   158,   158,   158,   966,     0,   927,     0,     0,     0,
     0,    32,     0,     0,   967,     0,     0,     0,  1412,     8,
     9,     0,    32,     0,   623,     0,     0,   968,   625,     0,
   469,     0,   237,     0,     0,     0,     0,  1175,  1175,  1181,
     0,  1114,  1115,   488,     0,     0,    18,  1120,   689,     0,
   494,   215,   216,     0,   689,     0,     0,    14,   725,   729,
     0,  1132,   620,  1133,   258,  1134,   729,     0,     0,    26,
     0,   130,   131,     0,    18,     7,   127,   128,    10,    20,
     0,     0,  1181,     0,     0,  1500,     0,     0,    23,     0,
     0,     0,     0,     0,     0,  1501,  1223,  1223,  1223,   339,
     0,     0,     0,     0,     0,   623,     0,     0,  1502,   625,
     0,     0,     0,    21,  1167,     0,     0,   450,   450,     0,
   251,     0,   258,  1487,  1488,     0,   421,   706,    27,    28,
     0,     0,   339,   729,     0,     0,     0,     0,     0,     0,
  1498,     0,     0,     0,   450,     0,     0,     0,     0,   450,
     0,     0,   252,     0,  1054,  1055,     9,    10,  1190,     0,
    32,     0,     0,     0,   689,   339,     0,   725,   689,     0,
   850,   851,     0,   855,   856,   857,   858,   859,   860,   861,
   862,   863,   864,   865,   866,   867,   868,   869,   870,   871,
   872,   873,    21,   729,     0,     0,     0,     0,   927,   729,
  1538,  1539,     0,     0,     0,    26,   689,    27,    28,     0,
     0,  1235,   689,  1056,     0,   258,  1549,  1550,   127,   128,
  1124,   193,  1148,  1148,   928,     0,     0,     0,     0,   729,
     0,   194,     0,     0,     0,     0,   729,     0,     0,    32,
     0,   258,     0,     0,   195,     0,     0,  1175,  1175,  1301,
  1301,  1181,     0,   727,     0,   689,  1175,   558,   945,   947,
   727,   620,     0,     0,     0,     0,     0,     0,    26,  1127,
   130,   131,     0,     0,   339,     0,     0,     0,     0,  1301,
  1301,  1181,     0,     0,   621,   689,     0,     0,     0,     0,
     0,  1223,  1223,  1223,   622,     0,     0,   689,   421,   834,
   551,   552,     0,     0,   623,     0,     0,   624,   625,     0,
     0,     0,     0,   450,   450,     0,   450,   450,     0,   450,
   756,     0,   725,     0,     0,   762,     0,   727,   258,     0,
     0,   689,     0,   689,   587,   588,   589,   590,   591,   592,
   593,     0,     0,   153,   258,     0,     0,     0,     0,     0,
   803,     0,     0,     0,     0,     0,   809,     0,  1312,     0,
  1313,     0,  1314,     0,     0,     0,     0,  1227,   817,   818,
     0,   819,     0,  1175,  1175,  1301,  1301,  1181,     0,     0,
  1175,     0,     0,     0,     0,  1042,  1212,   727,     7,   127,
   128,    10,     0,   727,    13,     0,     0,   689,     0,     0,
     0,     0,     0,   339,   339,   611,   339,   300,   394,   395,
    10,     0,   612,     0,     0,     0,    18,   212,   220,     0,
     0,   729,     0,   727,   689,     0,    21,     0,     0,     0,
   727,     0,     0,     0,     0,     0,     0,     0,     0,    26,
     0,    27,    28,  1105,     0,    21,     0,     0,   450,   450,
     0,     0,   613,     0,   689,    30,     0,     0,    26,     0,
    27,   319,  1414,   258,     0,    31,   917,   918,     0,     0,
     0,   917,     0,    32,     0,   729,   729,     0,    33,     0,
   725,   729,     0,     0,     0,     0,  1503,  1503,    80,  1503,
     0,     0,   614,     0,     0,   729,     0,   729,   104,   729,
     0,     0,     0,     0,     0,     0,  1285,     0,   133,     0,
     0,     0,     0,     0,   144,   144,     0,   144,     0,    80,
     0,     0,     0,     0,     0,     0,    80,   421,   706,     0,
     0,     0,   479,     0,     0,     0,     0,     0,  1160,   203,
     0,    80,     0,   558,     0,     0,     0,     0,   729,   238,
   689,   450,   450,   450,   421,   424,   104,     0,     0,     0,
     0,     0,     0,   339,     0,     0,     0,   262,   104,     0,
     0,  1503,  1503,  1552,     0,     0,  1186,     0,     0,     0,
     0,     0,     0,     0,   421,  1358,   551,   552,     0,     0,
   104,     0,   729,  1027,     0,     0,  1400,  1401,  1402,  1403,
     0,     0,     0,   479,   479,   479,     0,     0,     0,   729,
     0,   450,   450,     0,     0,   727,     0,     0,   133,     0,
    80,     0,     0,     0,   144,   144,     0,     0,     0,   412,
   144,     0,     0,   144,   144,   144,     0,     0,     0,   258,
     0,   258,     0,     0,     0,     0,     0,     0,     0,    80,
  1086,     0,  1088,    80,  1242,     0,     0,     0,     0,   203,
    80,     0,     8,     9,  1442,     0,    12,    13,     0,   727,
   727,     0,    14,     0,     0,   727,     0,   203,   203,   203,
   421,   706,   450,   258,     0,     0,    16,     0,    17,   727,
     0,   727,     0,   727,    20,     0,     0,     0,     0,     0,
     0,     0,     0,    23,   725,   725,   203,     0,  1272,     0,
     0,     0,    26,     0,   130,   131,   563,     0,     0,     0,
     0,     0,     0,   505,  1122,  1123,     0,  1125,   339,     0,
     0,     0,   104,     0,     7,     8,     9,    10,     0,  1496,
    13,     0,   727,   144,     0,     0,   689,     0,     0,     0,
     0,   879,     0,     0,   904,   907,     0,     0,  1144,     0,
     0,     0,    18,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    21,     0,     0,   258,  1520,     0,   620,     0,
     0,   104,   531,     0,     0,    26,   727,    27,    28,     0,
     0,     0,   729,     0,   729,     0,   729,   689,     0,     0,
     0,   966,     0,   727,   725,     0,     0,     0,     0,  1185,
     0,   967,     0,   725,   725,     7,     8,     9,    10,    32,
     0,   623,   725,     0,   968,   625,   104,     0,     0,     0,
   618,     0,   531,   531,   634,     0,  1212,     0,  1377,  1378,
     0,  1555,     0,    80,     0,     0,     0,   853,  1555,     0,
     0,     0,     0,    21,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   258,   725,    26,   558,    27,    28,
     0,     0,   192,     0,     0,     0,     0,   133,     0,  1233,
   127,   128,   193,     0,   215,   216,   104,     0,   203,   104,
    14,  1238,   194,   258,     0,     0,   729,     0,     0,     0,
    32,     0,     0,   144,     0,   195,   144,     0,   421,  1358,
   551,   552,    20,     0,     0,     0,     0,     0,   144,     0,
     0,    23,     0,   620,     0,  1437,    80,     0,  1555,     0,
    26,     0,   130,   131,   582,   583,   584,   585,   586,   587,
   588,   589,   590,   591,   592,   593,   621,  1630,     0,     0,
     0,     0,     0,     0,   203,   203,   622,   258,   203,     0,
   203,   203,   203,   753,     0,   725,   623,   203,  1645,   631,
   625,     0,   203,     0,     0,   203,     0,   853,  1291,     0,
     0,  1480,     0,     0,     0,     0,   727,     0,   727,     0,
   727,     0,    80,     0,     0,     0,   300,   127,   128,    10,
     0,     0,    13,   725,     0,     0,     0,     7,     8,     9,
    10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,  1309,    18,     0,     0,     0,     0,   104,
   104,   104,   104,     0,    21,     0,  1136,     0,     0,  1137,
   620,     0,     0,     0,     0,    21,     0,    26,     0,    27,
   319,  1143,   251,     0,     0,   904,   907,     0,     0,   729,
    27,    28,     0,  1151,     0,     0,     0,     0,     0,     0,
     8,     9,     0,  1152,    12,    13,  1540,  1541,     0,     0,
    14,    32,     0,   623,   252,     0,  1153,   625,     0,   104,
   727,   531,    32,  1396,    16,     0,    17,  1397,     0,   904,
   907,     0,    20,   618,     0,   531,   531,     0,   634,     0,
     0,    23,     0,     0,  1568,   929,     0,     0,     0,   931,
    26,     0,   130,   131,   603,     0,     0,   258,     0,     0,
     0,     0,  1413,     0,   203,     0,   127,   128,     0,     0,
     0,   246,     0,     0,  1582,     0,  1418,     0,     0,     0,
     0,     0,     0,     0,     7,     8,     9,    10,   133,   604,
   246,     0,     0,    18,     0,   133,     0,     0,     0,     0,
     0,     0,     0,   203,   973,   203,   203,   238,   634,   620,
     0,     0,    18,     0,     0,     0,    26,     0,   130,   131,
     0,     0,    21,     0,     0,     0,     0,     0,   620,     0,
     0,     0,   621,     0,     0,    26,     0,    27,    28,     0,
     0,  1473,   622,     0,     0,  1474,     0,     0,     0,     0,
   203,   966,   623,     0,   973,   624,   625,     0,     0,     0,
     0,   967,   203,   203,   753,   753,   753,  1489,  1490,    32,
   203,   623,     0,     0,   968,   625,     0,     0,   725,     0,
     0,     0,     0,   727,   579,   580,   581,   582,   583,   584,
   585,   586,   587,   588,   589,   590,   591,   592,   593,   133,
     0,     0,    80,     0,    80,     0,     0,     0,     0,  1065,
    80,     0,    80,     0,   904,   907,     0,     0,   104,     0,
     0,     0,   263,     0,   104,     8,     9,     0,     0,    12,
    13,   531,   531,   531,     0,    14,     0,     0,     0,  1136,
  1137,   904,   907,   531,     0,     0,     0,     0,  1143,    16,
     0,    17,     0,     0,     0,     0,     0,    20,     0,   264,
   265,     0,     0,     0,     0,     0,    23,     0,   266,     0,
     0,   904,   907,     0,     0,    26,     0,   130,   131,     0,
   267,     0,     0,     0,   268,   269,   270,   271,   272,   273,
   274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
   284,   285,   286,   287,   288,     0,     0,   289,   290,   291,
     0,     0,   292,     0,     0,   293,   531,   531,     0,     0,
   531,     0,     0,   531,     0,     0,     0,     0,   104,     0,
     0,   294,   531,     0,   104,     0,   929,   929,   929,     0,
     0,     0,   531,     0,  1154,     0,   300,     8,     9,    10,
   580,   581,   582,   583,   584,   585,   586,   587,   588,   589,
   590,   591,   592,   593,     0,  1136,  1137,   904,   907,     0,
     0,     0,  1143,     0,     0,     0,   104,     0,   104,     0,
   203,   203,  1183,    83,    21,     0,     0,     0,     0,     0,
     0,   251,     0,   106,     0,     0,     0,   472,   475,    27,
   319,     0,   126,   134,     0,     0,     0,     0,     0,   145,
   145,     0,   145,     0,    83,   300,   127,   128,    10,     0,
     0,    83,     0,   252,     0,  1183,     0,     0,     0,     0,
     0,    32,     0,     0,   145,     0,    83,     0,   104,   753,
   753,   753,     0,    18,   239,     0,     0,     0,     0,     0,
     0,   248,     0,    21,     0,   104,     0,     0,  1065,   620,
     0,     0,     0,   248,     0,     0,    26,   104,    27,   319,
     0,     0,     0,   300,     8,     9,    10,     0,  1136,  1137,
  1247,  1143,  1151,     0,     0,     0,     0,     0,    80,     0,
     0,     0,  1152,     0,     0,     0,     0,     0,     0,     0,
    32,   104,   623,   104,     0,  1153,   625,     0,     0,     0,
     0,    21,     0,     0,     0,    83,     0,     0,   251,   145,
   145,     0,     0,     0,     0,   145,    27,   319,   145,   145,
   145,   104,     0,     0,     0,     0,   531,   531,     0,   531,
     0,     0,     0,     0,    83,     0,     0,     0,    83,     0,
   522,     0,     0,     0,   145,    83,     0,     0,    32,     0,
     0,     0,   531,   904,   907,   531,   531,   634,     0,     0,
     0,     0,   145,   145,   145,     7,     8,     9,    10,   167,
    12,    13,     0,     0,     0,     0,    14,     0,     0,   203,
   203,   203,   203,   203,  1183,   753,     0,     0,     0,   203,
    16,   145,    17,    18,    19,     0,     0,     0,    20,     0,
     0,     0,     0,    21,     0,     0,     0,    23,     0,     0,
   168,     0,  1183,  1183,  1183,     0,    26,     0,    27,    28,
     0,     0,     0,     0,   753,   753,   753,   753,   145,     0,
     0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    31,     0,     0,     0,     0,     0,   203,     0,
    32,     0,     0,   144,     0,    33,    80,     0,     0,     0,
    34,     0,     0,     0,     0,   746,   248,   145,   747,     0,
   472,   475,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   763,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     7,     8,     9,    10,   214,   215,   216,     0,
     0,     0,     0,    14,     0,   753,   203,   203,   753,   753,
  1417,   248,     0,   203,     0,   619,     0,   145,   145,   635,
    18,     0,     0,     0,   644,    20,     0,     0,    83,     0,
    21,     0,     0,     0,    23,     0,   620,     0,     0,     0,
     0,     0,     0,    26,     0,    27,    28,     0,     0,   203,
   973,   203,     0,     0,     0,     0,     0,     0,     0,   966,
     0,     0,   681,     0,     7,     8,     9,    10,   104,   967,
    13,   248,     0,   145,   248,     0,     0,    32,     0,   623,
     8,     9,   968,   625,    12,   246,     0,     0,   145,     0,
    14,   145,    18,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    21,   145,    16,     0,    17,     0,   620,     0,
     0,    83,    20,     0,     0,    26,     0,    27,    28,   753,
   753,    23,   753,     0,     0,     0,     0,     0,     0,     0,
    26,  1178,   130,   131,     0,     0,     0,     0,     0,   145,
   145,  1179,     0,   145,     0,   145,   145,   145,   145,    32,
     0,   623,   145,     0,  1180,   625,     0,   145,     0,     0,
   145,     0,     0,     0,     0,  1183,     0,     0,     0,     0,
     8,     9,     0,   167,    12,    13,   782,    83,   733,     0,
    14,     7,     8,     9,    10,     0,     0,   519,     0,     0,
     0,     0,     0,     0,    16,     0,    17,    18,     0,     0,
     0,     0,    20,     0,   753,   753,  1417,   753,     0,    18,
     0,    23,     0,     0,   248,   248,   248,   248,     0,    21,
    26,     0,   130,   131,     0,   620,     0,     0,     0,     0,
     0,     0,    26,     0,    27,    28,  1183,  1183,  1183,     0,
     0,     0,   746,   747,   472,   475,     0,     0,   966,     0,
   763,     0,     0,     0,     0,     0,   753,   104,   967,     0,
     0,     0,   203,     0,     0,     0,    32,     0,   623,     0,
     0,   968,   625,     0,   248,     0,   145,   581,   582,   583,
   584,   585,   586,   587,   588,   589,   590,   591,   592,   593,
   145,   145,     0,   635,     0,     0,     0,     0,     0,     0,
   930,   166,     0,     7,     8,     9,    10,   167,    12,    13,
     0,     0,     0,   644,    14,     0,     0,     0,     0,   145,
     0,     0,     0,     0,     0,     0,     0,     0,    16,     0,
    17,    18,    19,     0,     0,     0,    20,     0,     0,     0,
     0,    21,     0,   681,     0,    23,     0,     0,   168,     0,
     0,   126,     0,     0,    26,     0,    27,    28,   145,   635,
   145,   145,   239,   635,     0,     0,     0,     0,     0,     0,
    30,     0,     0,     7,   127,   128,    10,     0,     0,   246,
    31,     0,     0,     0,     0,     0,   782,     0,    32,     0,
     0,     0,     0,    33,     0,     0,     0,     0,    34,     0,
     0,    18,     0,     0,     0,   145,     0,     0,     0,   635,
     0,    21,     0,     0,     0,     0,     0,   145,   145,   145,
   145,   145,     0,     0,    26,   145,    27,    28,   127,   128,
     0,     0,     0,   519,     0,     0,     0,     0,     0,     0,
    30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    31,     0,     0,     0,   134,    18,     0,    83,    32,    83,
   472,   475,     0,    33,  1066,    83,     0,    83,     0,     0,
     0,   620,     0,   248,     0,     0,     0,     0,    26,   248,
   130,   131,     0,     0,     0,     0,   145,   145,   145,     0,
     0,     0,     0,     0,   621,     0,     0,     0,   145,     0,
     0,     0,     0,     0,   622,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   623,     0,     0,   624,   625,   746,
   747,   763,     0,     0,     0,     0,     6,     0,     7,     8,
     9,    10,    11,    12,    13,     0,     0,     0,     0,    14,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    16,     0,    17,    18,     0,     0,     0,
     0,    20,     0,     0,     0,     0,    21,     0,     0,     0,
    23,   145,   145,   438,     0,   145,     0,     0,   145,    26,
     0,    27,    28,   248,     0,    29,     0,   145,     0,   248,
     0,   930,   930,   930,     0,    30,     0,   145,     0,   644,
     0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
     0,     0,     0,    32,   300,     8,     9,    10,    33,    12,
   301,   302,   303,     0,   304,    14,     0,     0,     0,     0,
     0,   248,     0,   248,     0,   145,   145,   635,     0,    16,
   305,    17,    18,    19,     0,   306,   307,    20,     0,   308,
   309,   310,    21,   311,   312,     0,    23,     0,   620,     0,
   313,   314,   315,   316,   317,    26,     0,    27,   319,     0,
   746,   747,   472,   475,     0,     0,     0,     0,   321,   763,
   930,   922,     0,     0,     0,     0,     0,     0,     0,   323,
   324,   923,     0,   248,   145,   145,   145,   326,   327,   328,
     0,   623,   472,   475,   924,   625,     0,     0,   782,     0,
   248,     0,     0,  1066,   472,   475,     0,     0,     0,     0,
     0,   330,   248,   300,     8,     9,    10,     0,     0,    13,
     0,     0,     0,     0,     7,   127,   128,    10,     0,     0,
    13,     0,     0,    83,     0,     0,     0,     0,     0,     0,
     0,    18,     8,     9,     0,     0,   248,   246,   248,     0,
     0,    21,    18,     0,     0,     0,     0,   620,     0,     0,
     0,     0,    21,     0,    26,     0,    27,   319,     0,    18,
     0,     0,     0,     0,     0,    26,   248,    27,    28,     0,
  1304,   145,   145,     0,   145,   620,   746,   747,   472,   475,
  1305,   149,    26,   763,   130,   131,     0,     0,    32,     0,
   623,   150,     0,  1306,   625,     0,     0,   145,  1500,    32,
   145,   145,   635,     0,   151,     0,     0,     0,  1501,     7,
     8,     9,    10,   214,   215,   216,     0,     0,   623,     0,
    14,  1502,   625,     0,   145,   145,   145,   145,   145,   635,
   145,     0,     0,     0,   145,     0,     0,    18,     0,     0,
     0,   782,    20,     0,     0,     0,     0,    21,     0,     0,
     0,    23,     0,   620,     0,     0,     0,   930,   930,   930,
    26,     0,    27,    28,     0,     0,     0,     0,     0,   145,
   145,   145,   145,     0,     0,     0,   966,     0,   782,     0,
    51,     0,     0,     0,     0,     0,   967,     0,     0,   746,
   747,     0,   763,   145,    32,     0,   623,     0,   145,  1011,
   625,    83,     0,     0,     0,     0,    51,    51,     0,   152,
     0,    51,     0,     0,     0,     0,     0,     0,    51,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    51,   783,    51,     7,     8,   784,    10,   167,    12,
    13,     0,     0,     0,     0,    14,     0,     0,     0,     0,
   145,   145,   145,   145,   145,   635,   254,     0,   145,    16,
     0,    17,    18,    19,     0,     0,     0,    20,  -524,     0,
     0,     0,    21,     0,   472,   475,    23,   785,     0,   168,
     0,     0,     0,  1448,     0,    26,     0,    27,    28,     0,
     0,   786,     0,   787,   145,   635,   145,     0,     0,     0,
     0,    30,     0,     0,     0,     0,   472,   475,     0,   396,
   396,    31,    51,   248,     0,     0,    51,    51,     0,    32,
   254,     0,    51,     0,    33,   152,   152,   152,     0,     0,
     0,     0,   431,     0,     0,     0,     0,     0,     0,     0,
  -524,    51,     0,     0,     0,    51,     0,     0,     0,     0,
     0,    51,    51,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   145,   145,     0,   145,     0,    51,
    51,   152,     0,     0,     0,     0,     0,     0,   732,   254,
   300,     8,     9,    10,   167,    12,   301,   302,   303,   733,
   304,    14,     0,     0,     0,     0,     0,     0,    51,     0,
     0,     0,     0,     0,     0,    16,   305,    17,    18,    19,
   930,   306,   307,    20,     0,   308,   309,   310,    21,   311,
   312,     0,    23,     0,     0,     0,   313,   314,   315,   316,
   317,    26,     0,    27,   319,    51,     0,     0,   320,     7,
     8,     9,    10,     0,   321,    13,     0,   322,     0,   145,
   145,   635,   145,     0,     0,   323,   324,   325,     0,     0,
     0,     0,     0,   326,   327,   328,     0,    18,     0,     0,
   329,     0,     0,     0,     0,     0,     0,    21,     0,     0,
     0,   930,   930,   930,     0,  -801,     0,   330,     0,     0,
    26,     0,    27,    28,     0,     0,     0,     0,     0,     0,
     0,   145,   248,     0,     0,   559,   193,   145,     0,     0,
     0,     0,     0,     0,     0,     0,   194,     0,     0,     0,
     0,     0,   396,     0,    32,     0,     0,     0,     0,   195,
   254,     0,     0,     0,     0,    51,     0,     0,     0,     0,
     7,     8,     9,    10,   167,    12,    13,     0,     0,   733,
    78,    14,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    16,     0,    17,    18,   396,
     0,     0,     0,    20,     0,     0,    78,    78,    21,    78,
    51,    78,    23,     0,   620,     0,     0,     0,    78,     0,
     0,    26,     0,    27,    28,    51,     0,     0,    51,     0,
     0,    78,     0,    78,   431,   431,   431,  1178,     0,     0,
    51,     0,     0,     0,     0,     0,     0,  1179,    51,     0,
     0,     0,     0,     0,     0,    32,     0,   623,   127,   128,
  1180,   625,   215,   216,     0,     0,     0,     0,    14,     0,
     0,     0,     0,     0,     0,     0,    51,    51,     0,     0,
    51,     0,   152,   152,   152,   431,     0,     0,     0,    51,
    20,     0,     0,     0,    51,     0,     0,    51,     0,    23,
     0,   620,     0,     0,     0,     0,     0,     0,    26,     0,
   130,   131,    78,     0,    51,     0,    78,    78,     0,     0,
     0,     0,    78,     0,   621,    78,    78,    78,     0,     0,
     0,     0,     8,     9,   622,   167,    12,    13,     0,     0,
  1584,    78,    14,   559,   623,    78,   559,   624,   625,     0,
     0,    78,    78,     0,     0,     0,    16,     0,    17,    18,
     0,   559,   559,   559,    20,     0,     0,     0,     0,    78,
    78,    78,     0,    23,     0,     0,   559,     0,     0,     0,
     0,     0,    26,     0,   130,   131,     0,     0,     0,     0,
     0,     0,   723,     0,   840,   841,   842,    10,    78,    12,
   536,   302,   303,     0,   304,    14,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
   305,    17,     0,    19,   254,   306,   307,    20,     0,   308,
   309,   310,    21,   311,   312,    78,    23,   559,     0,     0,
   313,   314,   315,   316,   317,    26,     0,   843,   844,   724,
     0,     0,   320,     0,     0,     0,    51,     0,   321,     0,
     0,   322,     8,     9,     0,     0,    12,   246,     0,   323,
   324,   325,    14,     0,     0,     0,     0,   326,   327,   328,
   396,     0,     0,     0,   329,   845,    16,   396,    17,     0,
     0,     0,     0,     0,    20,    51,    51,    51,    51,     0,
  1003,   330,     0,    23,     0,   620,     0,     0,     0,     0,
     0,     0,    26,     0,   130,   131,     0,     0,     0,     0,
     0,     0,     7,     8,     9,    10,     0,     0,   621,     0,
     0,   643,     0,     0,     0,    78,     0,     0,   622,     0,
     0,     0,    51,     0,     0,     0,    51,     0,   623,     0,
    18,   624,   625,     0,    51,    51,   431,   431,   431,     0,
    21,     0,    51,     0,     0,     0,   620,     0,     0,     0,
     0,     0,     0,    26,     0,    27,    28,     0,     0,     0,
    78,   159,     0,     0,     0,     0,     0,     0,     0,   966,
     0,     0,     0,     0,    51,    78,    51,     0,    78,   967,
     0,    51,    51,   204,    51,     0,     0,    32,     0,   623,
    78,     0,   968,   625,     0,     0,     0,     0,    78,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   559,
     0,     0,     0,     0,   300,     8,     9,    10,     0,     8,
     9,     0,   205,    12,   206,     0,    78,    78,     0,    14,
    78,     0,    78,    78,    78,     7,   127,   128,    10,    78,
     0,   519,    18,    16,    78,    17,    18,    78,     0,     0,
     0,    20,    21,     0,     0,     0,     0,     0,   620,     0,
    23,     0,     0,    18,    78,    26,     0,    27,   319,    26,
     0,   130,   131,    21,     0,     0,     0,   159,   159,   159,
     0,  1304,     0,     0,     0,     0,    26,     0,    27,    28,
     0,  1305,     0,     0,     0,     0,     0,     0,     0,    32,
     0,   623,    30,   204,  1306,   625,     0,     0,   559,   559,
   559,     0,    31,     0,   431,   254,     0,     0,     0,     0,
    32,   204,   204,   481,     0,    33,     0,     0,     7,     8,
     9,    10,     0,   783,   246,     7,     8,   784,    10,   167,
    12,    13,     0,     0,     0,     0,    14,     0,     0,     0,
   204,     0,    51,    51,   152,     0,    18,     0,     0,   254,
    16,     0,    17,    18,    19,     0,    21,     0,    20,  -525,
     0,     0,     0,    21,     0,   643,     0,    23,   785,    26,
   168,    27,    28,     0,     0,     0,    26,     0,    27,    28,
     0,     0,   786,     0,   787,   193,     0,  1211,     0,     0,
     0,     0,    30,     0,     0,   194,    78,     0,     0,     0,
     0,     0,    31,    32,     0,     0,     0,     0,   195,     0,
    32,     0,     0,     0,     0,    33,   532,     0,     0,     0,
    51,   300,     8,     9,    10,   167,    12,    13,     0,     0,
   733,  -525,    14,     0,     0,    78,    78,    78,    78,     0,
     0,   254,     0,     0,     0,     0,    16,     0,    17,    18,
    51,     0,     0,     0,    20,     0,     0,     8,     9,    21,
     0,     0,   519,    23,     0,   620,   628,   628,   628,     0,
     0,     0,    26,     0,    27,   319,     0,     0,     0,     0,
     0,     0,    78,     0,    18,     0,    78,     0,  1151,     0,
     0,     0,     0,     0,    78,    78,     0,     0,  1152,     0,
   620,     0,    78,     0,     0,     0,    32,    26,   623,   130,
   131,  1153,   625,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   204,  1500,   431,     0,     0,   431,   431,   431,
   254,     0,     0,  1501,    78,     0,    78,     0,     0,     0,
     0,    78,    78,   623,    78,     0,  1502,   625,     0,     0,
     0,    51,    51,    51,   152,   152,   152,   431,     0,   254,
     0,    51,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     7,     8,     9,    10,
     0,     0,    13,     0,  1211,  1211,  1211,     0,   204,   204,
     0,     0,   204,     0,   481,   481,   481,   754,     0,     0,
     0,   204,     0,     0,    18,     0,   204,     8,     9,   204,
   167,    12,    13,     0,    21,   733,     0,    14,     0,     0,
    51,     0,     0,     0,     0,    51,     0,    26,    51,    27,
    28,    16,     0,    17,    18,     0,     0,     0,     0,    20,
     0,     0,     0,   476,     0,     0,     0,     0,    23,     0,
   620,     0,     0,   477,     0,     0,     0,    26,     0,   130,
   131,    32,     0,     0,     0,     0,   478,     0,     0,     0,
     0,     0,     0,   621,     0,     0,   643,   431,    51,    51,
   431,   431,   431,   622,     0,    51,     0,     0,     0,     0,
     0,     0,     0,   623,     0,     0,   624,   625,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    78,    78,    78,     0,     0,     0,     0,     0,
     0,    51,    51,    51,     0,   888,     0,     0,     8,     9,
     0,   167,    12,    13,     0,     0,   733,     0,    14,   628,
   628,     0,   628,     0,     7,     8,     9,    10,     0,   628,
   519,   202,    16,     0,    17,    18,     0,  1213,     0,     0,
    20,     0,     0,     0,     0,     0,     0,     0,   204,    23,
     0,   620,    18,     0,     0,     0,   257,     0,    26,   261,
   130,   131,    21,     0,     0,   369,   371,     0,     0,     0,
    78,     0,     0,     0,  1500,    26,     0,    27,    28,     0,
   257,     0,   365,     0,  1501,     0,     0,   970,     0,   970,
   970,   193,   628,     0,   623,     0,     0,  1502,   625,     0,
    78,   194,     0,     0,     0,     0,     0,     0,     0,    32,
     0,     8,     9,     0,   195,    12,    13,  1211,     0,     0,
     0,    14,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   970,    16,     0,    17,     0,     0,
     0,     0,     0,    20,     0,     0,   204,   204,   754,   754,
   754,   202,    23,     0,   204,     0,   300,     8,     9,    10,
     0,    26,    13,   130,   131,     0,     0,     0,     0,   202,
   202,   202,     0,     0,     0,     0,     0,     0,     0,   487,
     0,     0,     0,     0,    18,     0,     0,     0,  1211,  1211,
  1211,     0,     0,   204,    21,     0,     0,     0,   202,     0,
     0,    78,    78,    78,    78,    78,    78,    26,     0,    27,
   319,    78,     0,     0,    51,   532,   532,   532,     0,     0,
     0,     0,     0,   750,   261,     0,     0,   628,     0,     0,
     0,     0,     0,   751,  1213,  1213,  1213,     0,   257,     0,
     0,    32,     0,     0,     0,     0,   752,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     7,     8,     9,
    10,   205,    12,   206,     0,     0,     0,     0,    14,     0,
    78,     0,     0,     0,     0,    78,     0,     0,    78,     0,
     0,     0,    16,     0,    17,    18,     0,   562,     0,     0,
    20,     0,     0,     0,     0,    21,     0,     0,     0,    23,
   628,   628,     0,     0,   628,     0,     0,   628,    26,     0,
    27,    28,     0,     0,   207,     0,   628,     0,     0,     0,
   628,   628,   628,     0,    30,     0,   628,     0,    78,    78,
   257,   261,     0,     0,    31,    78,     0,     0,     0,     0,
     0,     0,    32,  1054,  1055,     9,    10,    33,     6,     0,
     7,     8,     9,    10,    11,    12,    13,     0,     0,     0,
   688,    14,     0,     0,   970,   970,  1184,     0,     0,     0,
     0,    78,    78,    78,    15,    16,     0,    17,    18,    19,
   202,    21,     0,    20,     0,     0,     0,     0,    21,     0,
     0,    22,    23,    24,    26,    25,    27,    28,     0,     0,
     0,    26,  1056,    27,    28,     0,     0,    29,     0,  1184,
   193,     0,     0,     0,     0,     0,     0,    30,     0,     0,
   194,     0,     0,   754,   754,   754,   735,    31,    32,     0,
     0,     0,     0,   195,     0,    32,     0,     0,     0,     0,
    33,     0,   204,     0,     0,    34,   202,   202,     0,     0,
   202,     0,   202,   202,   202,   202,     0,     0,     0,   202,
     0,     0,     0,     0,   202,     0,     0,   202,     0,     0,
     0,     0,     0,     0,     0,     0,  1381,  1382,     9,    10,
     7,     8,     9,    10,   214,   215,   216,  1213,     0,     0,
     0,    14,     0,     0,     0,   822,     0,     0,   825,     0,
     0,     0,   827,   828,   830,   831,   832,     0,    18,     0,
     0,     0,     0,    20,    21,   562,     0,     0,    21,     0,
   888,   888,    23,   888,   620,     0,     0,    26,   849,    27,
    28,    26,     0,    27,    28,  1383,     0,     0,     0,     0,
     0,     0,     0,   193,     0,     0,   628,   193,     0,   628,
   628,   628,     0,   194,     0,     0,     0,   194,  1213,  1213,
  1213,    32,     0,     0,     0,    32,   195,     0,     0,     0,
  1461,     0,     0,   970,   970,   970,  1184,  1184,  1184,  1307,
     0,     0,   908,   970,    78,     0,     0,     0,     0,   908,
     0,     0,     0,     0,     0,     0,     7,   127,   128,    10,
     0,     0,     7,     8,     9,    10,  1184,  1184,  1184,     0,
   257,   261,     0,     0,     0,     0,     0,     0,   754,   754,
   754,   754,     0,     0,    18,     0,   202,     0,     0,   102,
    18,     0,     0,     0,    21,     0,     0,     0,   121,   102,
    21,     0,   204,     0,     0,   102,   102,    26,   102,    27,
    28,     0,     0,    26,     0,    27,    28,     0,     0,     0,
     0,     0,     0,    30,     0,   202,     0,   202,   202,   476,
     0,     0,     0,    31,     0,     0,     0,     0,     0,   477,
   235,    32,     0,     0,     0,     0,    33,    32,     0,     0,
     0,     0,   478,     0,     0,     0,     0,     0,   688,  1307,
   970,   970,  1307,  1307,  1307,     0,     0,   970,     0,     0,
     0,     0,   202,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   202,   202,   202,   202,   202,   487,
     0,     0,   202,     0,     0,     0,     0,     0,     0,   389,
     0,   121,     0,   204,     0,   204,     0,     0,   102,   102,
     0,     0,     0,     0,     0,   102,   102,     0,   261,   102,
   102,   102,   735,   417,   102,   102,   102,     0,   735,     0,
     0,   202,   578,   579,   580,   581,   582,   583,   584,   585,
   586,   587,   588,   589,   590,   591,   592,   593,   626,   626,
   626,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   783,     0,     7,     8,   784,    10,   167,    12,
    13,     0,     0,  1307,  1307,    14,  1307,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
     0,    17,    18,    19,     0,     0,  1116,    20,  -527,     0,
     0,     0,    21,     0,     0,     0,    23,   785,     0,   168,
     0,     0,     0,   235,   102,    26,     0,    27,    28,   481,
     0,   786,     0,   787,     0,     0,     0,     0,     0,     0,
     0,    30,   849,     0,   102,     0,     0,     0,   735,     0,
     0,    31,   908,     0,     0,     0,     0,     0,     0,    32,
     0,     0,     0,     0,    33,     0,     0,     0,  1307,  1307,
  1307,  1307,     0,     0,     0,   257,   261,   257,     0,     0,
  -527,     0,     0,   102,     0,     0,     0,     0,     0,     0,
   688,     0,  1173,     0,     0,     0,   908,     0,     0,     0,
   481,   481,   481,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   202,   202,  1182,     0,     0,     0,     0,   257,
  1307,     0,     0,     0,     0,     0,   204,     0,     0,     0,
     0,   102,     0,   102,   102,     0,     0,     0,     0,   908,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,  1217,     0,     0,     0,     0,  1182,     0,     0,
     0,     0,  1228,     0,     0,     0,     0,     0,     0,   735,
     0,   202,   202,   202,     0,     0,     0,     0,   102,     0,
     0,   735,     7,     8,     9,    10,   300,     8,     9,    10,
   202,     0,     0,     0,     0,     0,     0,   102,     0,     0,
     0,     0,     0,     0,   102,     0,     0,   102,     0,     0,
    18,   487,     0,     0,    18,   735,     0,   735,     0,   102,
    21,     0,     0,     0,    21,     0,     0,     0,     0,     0,
     0,   626,   626,    26,   626,    27,    28,    26,     0,    27,
   319,   926,     0,     0,     0,  1277,     0,     0,     0,   193,
     0,     0,     0,   750,     0,     0,     0,     0,     0,   194,
     0,     0,     0,   751,     0,     0,     0,    32,     0,     0,
     0,    32,   195,     0,     0,     0,   752,     0,     0,     0,
     0,   908,     0,     0,     0,     0,     0,     0,     0,     0,
   102,     0,   775,     0,     0,     0,     0,     0,     0,   626,
   257,   626,   626,     0,   626,     0,     0,     0,   908,   300,
     8,     9,    10,   167,    12,    13,   102,     0,   733,     0,
    14,   202,   202,   202,   202,   202,  1182,   202,     0,  1308,
     0,   202,     0,     0,    16,     0,    17,    18,   908,     0,
     0,     0,    20,     0,     0,     0,   626,    21,     0,     0,
     0,    23,     0,   620,  1182,  1182,  1182,     0,     0,     0,
    26,     0,    27,   319,     0,     0,   202,   202,   202,   202,
     0,     0,     0,     0,     0,     0,  1304,     0,     0,  1381,
   127,   128,    10,     0,     0,     0,  1305,     0,     0,     0,
   202,     0,   102,     0,    32,     0,   623,     0,     0,  1306,
   625,     0,     0,   102,   102,     0,   102,   102,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    21,     0,     7,
     8,     9,    10,     0,     0,     0,     0,     0,     0,     0,
    26,     0,    27,    28,   908,     0,     0,     0,  1383,   626,
     0,     0,     0,     0,     0,     0,    30,   202,   202,   202,
   202,   202,  1182,     0,     0,   202,    31,    21,     0,   102,
     0,     0,     0,     0,    32,     0,   102,   121,     0,    33,
    26,     0,    27,    28,     0,     0,  1455,     0,   235,     0,
     0,     0,     0,     0,     0,     0,   193,     0,     0,     0,
     0,   202,  1217,   202,     0,     0,   194,     0,     0,     0,
     0,     0,   775,     0,    32,     0,     0,    18,     0,   195,
     0,     0,   626,   626,     0,     0,   626,     0,     0,   626,
     0,     0,     0,     0,     0,     0,     0,     0,   626,     0,
     0,     0,   926,   926,   926,     0,     0,     0,   626,   572,
   573,   574,   575,   576,   577,   578,   579,   580,   581,   582,
   583,   584,   585,   586,   587,   588,   589,   590,   591,   592,
   593,   202,   202,  1308,   202,     0,     0,   775,     0,     0,
   102,     0,     0,     0,     0,     0,   626,   626,   626,     0,
     0,     0,   783,     0,     7,     8,   784,    10,   167,    12,
    13,     0,     0,     0,     0,    14,     0,     0,     0,     0,
     0,     0,   102,   102,   102,     0,     0,  1182,     0,    16,
     0,    17,    18,    19,   102,     0,     0,    20,  -526,     0,
     0,   926,    21,     0,     0,     0,    23,   785,     0,   168,
   908,     0,     0,     0,     0,    26,     0,    27,    28,     0,
     0,   786,     0,   787,     0,     0,   202,   202,  1182,   202,
     0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    31,   562,     0,     0,     0,     0,     0,     0,    32,
     0,     0,     0,     0,    33,     0,     0,     0,  1182,  1182,
  1182,   688,     0,     0,     8,     9,     0,   102,   102,    13,
  -526,   102,     0,     0,   102,     0,     0,     0,   202,     0,
     0,     0,     0,   102,   202,     0,     0,     0,     0,     0,
     0,    18,     0,   102,     0,     7,     8,     9,    10,   167,
    12,    13,     0,     0,  1016,     0,    14,   620,     0,     0,
     0,     0,     0,     0,    26,     0,   130,   131,     0,     0,
    16,     0,    17,    18,     0,     0,     0,     0,    20,     0,
  1500,     0,     0,    21,     0,     0,     0,    23,   626,     0,
  1501,   626,   626,   626,     0,     0,    26,     0,    27,    28,
   623,     0,     0,  1502,   625,     0,     0,     0,     0,     0,
     0,     0,    30,     0,     0,   626,   626,   626,   626,   626,
   626,   626,    31,     0,   852,   626,   300,     8,     9,    10,
    32,    12,   536,   302,   303,    33,   304,    14,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   926,   926,
   926,    16,   305,    17,   775,    19,     0,   306,   307,    20,
     0,   308,   309,   310,    21,   311,   312,     0,    23,     0,
     0,     0,   313,   314,   315,   316,   317,    26,     0,    27,
   319,   102,     0,     0,   320,  -791,     0,     0,     0,     0,
   321,     0,     0,   322,     0,     0,     0,     0,     0,     0,
     0,   323,   324,   325,     0,     0,     0,     0,     0,   326,
   327,   328,     0,     0,     0,     0,   329,     0,  1516,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   330,     0,     0,     0,   102,   102,     0,
   102,   626,   626,   626,   626,   626,   626,     0,     0,   626,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   102,     0,     0,   102,   102,  1517,   572,
   573,   574,   575,   576,   577,   578,   579,   580,   581,   582,
   583,   584,   585,   586,   587,   588,   589,   590,   591,   592,
   593,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   775,     0,     0,
     0,     0,     0,  1545,     0,  -480,  -480,  -480,  -480,  -480,
  -480,  -480,     0,     0,  -480,     0,  -480,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,  -480,     0,  -480,
     0,     0,     0,  -480,   775,     0,     0,     0,  -480,     0,
     0,     0,     0,  -480,     0,   626,   626,  -480,   626,  -480,
     0,     0,   102,     0,   102,     0,  -480,     0,  -480,  -480,
  -480,  -480,  -480,     0,  -480,  -480,  -480,  -480,  -480,  -480,
  -480,  -480,  -480,  -480,  -480,  -480,  -480,  -480,  -480,  -480,
  -480,  -480,  -480,  -480,  -480,  -480,  -480,     0,  -480,  -480,
  -480,     0,  -480,  -480,  -480,  -480,  -480,  -480,     0,  -480,
     0,     0,     0,     0,  1546,     0,     0,     0,     0,  -480,
  -480,  -480,     0,  -480,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   626,   626,   626,   626,     0,  1463,     0,  1319,  1320,  1321,
    10,   167,    12,   301,   302,   303,     0,   304,    14,  1322,
     0,  1323,  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,
  1332,    15,    16,   305,    17,    18,    19,     0,   306,   307,
    20,     0,   308,   309,   310,    21,   311,   312,  1333,    23,
  1334,     0,   626,   313,   314,   315,   316,   317,    26,     0,
  1335,   319,   720,     0,  1336,   320,     0,     0,     0,     0,
     0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
     0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
   326,   327,   328,     0,     0,     0,     0,   329,     0,  1337,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,  1464,   330,  1318,     0,  1319,  1320,  1321,
    10,   167,    12,   301,   302,   303,     0,   304,    14,  1322,
     0,  1323,  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,
  1332,    15,    16,   305,    17,    18,    19,     0,   306,   307,
    20,     0,   308,   309,   310,    21,   311,   312,  1333,    23,
  1334,     0,     0,   313,   314,   315,   316,   317,    26,     0,
  1335,   319,   720,     0,  1336,   320,     0,     0,     0,     0,
     0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
     0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
   326,   327,   328,     0,     0,     0,     0,   329,   554,  1337,
   300,     8,     9,    10,   167,    12,   301,   302,   303,   733,
   304,    14,     0,     0,   330,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    16,   305,    17,    18,    19,
     0,   306,   307,    20,     0,   308,   309,   310,    21,   311,
   312,     0,    23,     0,   620,     0,   313,   314,   315,   316,
   317,    26,     0,    27,   319,  -312,     0,     0,   320,     0,
     0,     0,     0,     0,   321,     0,     0,   922,     0,     0,
     0,     0,     0,     0,     0,   323,   324,   923,     0,     0,
     0,     0,     0,   326,   327,   328,     0,   623,     0,     0,
   924,   625,   554,     0,     7,     8,     9,    10,   167,    12,
   301,   302,   303,   733,   304,    14,     0,   330,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
   305,    17,    18,    19,     0,   306,   307,    20,     0,   308,
   309,   310,    21,   311,   312,     0,    23,     0,   620,     0,
   313,   314,   315,   316,   317,    26,     0,    27,    28,  -312,
     0,     0,   320,     0,     0,     0,     0,     0,   321,     0,
     0,  1208,     0,     0,     0,     0,     0,     0,     0,   323,
   324,  1209,     0,     0,     0,     0,     0,   326,   327,   328,
     0,   623,     0,     0,  1210,   625,   852,     0,   300,     8,
     9,    10,   167,    12,   301,   302,   303,     0,   304,    14,
     0,   330,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    16,   305,    17,    18,    19,     0,   306,
   307,    20,     0,   308,   309,   310,    21,   311,   312,     0,
    23,     0,     0,     0,   313,   314,   315,   316,   317,    26,
     0,    27,   319,  1563,     0,  -791,   320,     0,     0,     0,
     0,     0,   321,     0,     0,   322,     0,     0,     0,     0,
     0,     0,     0,   323,   324,   325,     0,     0,     0,     0,
     0,   326,   327,   328,     0,     0,     0,   554,   329,   300,
     8,     9,    10,     0,    12,   301,   302,   303,     0,   304,
    14,     0,     0,     0,     0,   330,     0,     0,     0,     0,
     0,     0,     0,     0,    16,   305,    17,    18,    19,     0,
   306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
     0,    23,     0,     0,     0,   313,   314,   315,   316,   317,
    26,     0,    27,   319,  -312,     0,     0,   320,     0,     0,
     0,     0,     0,   321,     0,     0,   555,     0,     0,     0,
     0,     0,     0,     0,   323,   324,   556,     0,     0,     0,
     0,     0,   326,   327,   328,     0,     0,     0,   723,   557,
   840,   841,   842,    10,     0,    12,   536,   302,   303,     0,
   304,    14,     0,     0,     0,     0,   330,     0,     0,     0,
     0,     0,     0,     0,     0,    16,   305,    17,     0,    19,
     0,   306,   307,    20,     0,   308,   309,   310,    21,   311,
   312,     0,    23,     0,     0,     0,   313,   314,   315,   316,
   317,    26,     0,   843,   844,   724,     0,     0,   320,     0,
     0,     0,     0,     0,   321,     0,     0,   322,     0,     0,
     0,     0,     0,     0,     0,   323,   324,   325,     0,     0,
     0,     0,     0,   326,   327,   328,     0,     0,     0,     0,
   329,   845,   723,     0,   840,   841,   842,    10,     0,    12,
   536,   302,   303,     0,   304,    14,     0,   330,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
   305,    17,     0,    19,     0,   306,   307,    20,     0,   308,
   309,   310,    21,   311,   312,     0,    23,     0,     0,     0,
   313,   314,   315,   316,   317,    26,     0,   843,   844,   724,
     0,     0,   320,     0,     0,     0,     0,     0,   321,     0,
     0,   322,     0,     0,     0,     0,     0,     0,     0,   323,
   324,   325,     0,     0,     0,     0,     0,   326,   327,   328,
     0,     0,     0,   723,   329,   840,   841,   842,    10,     0,
    12,   536,   302,   303,     0,   304,    14,     0,     0,     0,
  -484,   330,     0,     0,     0,     0,     0,     0,     0,     0,
    16,   305,    17,     0,    19,     0,   306,   307,    20,     0,
   308,   309,   310,    21,   311,   312,     0,    23,     0,     0,
     0,   313,   314,   315,   316,   317,    26,     0,   843,   844,
   724,     0,     0,   320,     0,     0,     0,     0,     0,   321,
     0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
   323,   324,   325,     0,     0,     0,     0,     0,   326,   327,
   328,     0,     0,     0,   723,   329,   300,     8,     9,    10,
     0,    12,   536,   302,   303,     0,   304,    14,     0,     0,
     0,  1357,   330,     0,     0,     0,     0,     0,     0,     0,
     0,    16,   305,    17,     0,    19,     0,   306,   307,    20,
     0,   308,   309,   310,    21,   311,   312,     0,    23,     0,
     0,     0,   313,   314,   315,   316,   317,    26,     0,    27,
   319,   724,     0,     0,   320,     0,     0,     0,     0,     0,
   321,     0,     0,   322,     0,     0,     0,     0,     0,     0,
     0,   323,   324,   325,     0,     0,     0,     0,     0,   326,
   327,   328,     0,     0,     0,     0,   329,     0,   554,     0,
     7,     8,     9,    10,  1361,    12,   301,   302,   303,     0,
   304,    14,     0,   330,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    16,   305,    17,    18,    19,
     0,   306,   307,    20,     0,   308,   309,   310,    21,   311,
   312,     0,    23,     0,     0,     0,   313,   314,   315,   316,
   317,    26,     0,    27,    28,  -312,     0,     0,   320,     0,
     0,     0,     0,     0,   321,     0,     0,  1532,     0,     0,
     0,     0,     0,     0,     0,   323,   324,  1533,     0,     0,
     0,     0,     0,   326,   327,   328,     0,     0,     0,   723,
  1534,   300,     8,     9,    10,     0,    12,   536,   302,   303,
     0,   304,    14,     0,     0,     0,     0,   330,     0,     0,
     0,     0,     0,     0,     0,     0,    16,   305,    17,     0,
    19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
   311,   312,     0,    23,     0,     0,     0,   313,   314,   315,
   316,   317,    26,     0,    27,   319,   724,     0,     0,   320,
     0,     0,     0,     0,     0,   321,     0,     0,   322,     0,
     0,     0,     0,     0,     0,     0,   323,   324,   325,     0,
     0,     0,     0,     0,   326,   327,   328,     0,     0,     0,
  1616,   329,   300,     8,     9,    10,     0,    12,   301,   302,
   303,     0,   304,    14,     0,     0,     0,     0,   330,     0,
     0,     0,     0,     0,     0,     0,     0,    16,   305,    17,
     0,    19,     0,   306,   307,    20,     0,   308,   309,   310,
    21,   311,   312,     0,    23,     0,     0,     0,   313,   314,
   315,   316,   317,    26,     0,    27,   319,     0,     0,  -196,
   320,     0,     0,     0,     0,     0,   321,     0,     0,   322,
     0,     0,     0,     0,     0,     0,     0,   323,   324,   325,
     0,     0,     0,     0,     0,   326,   327,   328,     0,     0,
     0,   852,   329,   300,     8,     9,    10,     0,    12,   536,
   302,   303,     0,   304,    14,     0,     0,     0,     0,   330,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   305,
    17,     0,    19,     0,   306,   307,    20,     0,   308,   309,
   310,    21,   311,   312,     0,    23,     0,     0,     0,   313,
   314,   315,   316,   317,    26,     0,    27,   319,     0,     0,
     0,   320,     0,     0,     0,     0,     0,   321,     0,     0,
   322,     0,     0,     0,     0,     0,     0,     0,   323,   324,
   325,     0,     0,     0,     0,     0,   326,   327,   328,     0,
     0,     0,   944,   329,   300,     8,     9,    10,     0,    12,
   536,   302,   303,     0,   304,    14,     0,     0,  -791,     0,
   330,     0,     0,     0,     0,     0,     0,     0,     0,    16,
   305,    17,     0,    19,     0,   306,   307,    20,     0,   308,
   309,   310,    21,   311,   312,     0,    23,     0,     0,     0,
   313,   314,   315,   316,   317,    26,     0,    27,   319,     0,
     0,     0,   320,     0,     0,     0,     0,     0,   321,     0,
     0,   322,     0,     0,     0,     0,     0,     0,     0,   323,
   324,   325,     0,     0,     0,     0,     0,   326,   327,   328,
     0,     0,     0,   946,   329,   300,     8,     9,    10,     0,
    12,   536,   302,   303,     0,   304,    14,     0,     0,     0,
     0,   330,     0,     0,     0,     0,     0,     0,     0,     0,
    16,   305,    17,     0,    19,     0,   306,   307,    20,     0,
   308,   309,   310,    21,   311,   312,     0,    23,     0,     0,
     0,   313,   314,   315,   316,   317,    26,     0,    27,   319,
     0,     0,     0,   320,     0,     0,     0,     0,     0,   321,
     0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
   323,   324,   325,     0,     0,     0,     0,     0,   326,   327,
   328,     0,     0,     0,  1581,   329,   300,     8,     9,    10,
     0,    12,   536,   302,   303,     0,   304,    14,     0,     0,
     0,     0,   330,     0,     0,     0,     0,     0,     0,     0,
     0,    16,   305,    17,     0,    19,     0,   306,   307,    20,
     0,   308,   309,   310,    21,   311,   312,     0,    23,     0,
     0,     0,   313,   314,   315,   316,   317,    26,     0,    27,
   319,     0,     0,     0,   320,     0,     0,     0,     0,     0,
   321,     0,     0,   322,     0,     0,     0,     0,     0,     0,
     0,   323,   324,   325,     0,     0,     0,     0,     0,   326,
   327,   328,   300,     8,     9,    10,   329,    12,   536,   302,
   303,     0,   304,    14,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   330,     0,     0,     0,    16,   305,    17,
     0,    19,     0,   306,   307,    20,     0,   308,   309,   310,
    21,   311,   312,     0,    23,     0,     0,     0,   313,   314,
   315,   316,   317,    26,     0,    27,   319,     0,     0,     0,
   320,     0,     0,     0,     0,     0,   321,     0,     0,   322,
     0,     0,     0,     0,     0,     0,     0,   323,   324,   325,
     0,     0,     0,     0,     0,   326,   327,   328,     0,     0,
     0,     0,   329,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   330,
   891,  1319,  1320,  1321,    10,   167,    12,   301,   302,   303,
     0,   304,    14,  1322,     0,  1323,  1324,  1325,  1326,  1327,
  1328,  1329,  1330,  1331,  1332,    15,    16,   305,    17,    18,
    19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
   311,   312,  1333,    23,  1334,     0,     0,   313,   314,   315,
   316,   317,    26,     0,  1335,   319,   720,     0,  1336,   320,
     0,     0,     0,     0,     0,   321,     0,     0,   322,     0,
     0,     0,     0,     0,     0,     0,   323,   324,   325,     0,
     0,     0,     0,     0,   326,   327,   328,     0,     0,     0,
     0,   329,     0,  1337,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,  1468,   330,  1319,
  1320,  1321,    10,   167,    12,   301,   302,   303,     0,   304,
    14,  1322,     0,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
  1330,  1331,  1332,    15,    16,   305,    17,    18,    19,     0,
   306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
  1333,    23,  1334,     0,     0,   313,   314,   315,   316,   317,
    26,     0,  1335,   319,   720,     0,  1336,   320,     0,     0,
     0,     0,     0,   321,     0,     0,   322,     0,     0,     0,
     0,     0,     0,     0,   323,   324,   325,     0,     0,     0,
     0,     0,   326,   327,   328,     0,     0,     0,     0,   329,
     0,  1337,     0,  1319,  1320,  1321,    10,   167,    12,   301,
   302,   303,     0,   304,    14,  1322,   330,  1323,  1324,  1325,
  1326,  1327,  1328,  1329,  1330,  1331,  1332,    15,    16,   305,
    17,    18,    19,     0,   306,   307,    20,     0,   308,   309,
   310,    21,   311,   312,  1333,    23,  1334,     0,     0,   313,
   314,   315,   316,   317,    26,     0,  1335,   319,  1590,     0,
  1336,   320,     0,     0,     0,     0,     0,   321,     0,     0,
   322,     0,     0,     0,     0,     0,     0,     0,   323,   324,
   325,     0,     0,     0,     0,     0,   326,   327,   328,     0,
     0,     0,     0,   329,     0,  1337,     0,  1319,  1320,  1321,
    10,   167,    12,   301,   302,   303,     0,   304,    14,  1322,
   330,  1323,  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,
  1332,    15,    16,   305,    17,    18,    19,     0,   306,   307,
    20,     0,   308,   309,   310,    21,   311,   312,  1333,    23,
  1334,     0,     0,   313,   314,   315,   316,   317,    26,     0,
  1335,   319,     0,     0,  1336,   320,     0,     0,     0,     0,
     0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
     0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
   326,   327,   328,     0,     0,     0,     0,   329,     0,  1337,
   300,     8,     9,    10,   167,    12,   301,   302,   303,   733,
   304,    14,     0,     0,   330,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    16,   305,    17,    18,    19,
     0,   306,   307,    20,     0,   308,   309,   310,    21,   311,
   312,     0,    23,     0,   620,     0,   313,   314,   315,   316,
   317,    26,     0,    27,   319,     0,     0,     0,   320,     0,
     0,     0,     0,     0,   321,     0,     0,   922,     0,     0,
     0,     0,     0,     0,     0,   323,   324,   923,     0,     0,
     0,     0,     0,   326,   327,   328,     0,   623,     0,     0,
   924,   625,     7,     8,     9,    10,   167,    12,   301,   302,
   303,   733,   304,    14,     0,     0,     0,   330,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    16,   305,    17,
    18,    19,     0,   306,   307,    20,     0,   308,   309,   310,
    21,   311,   312,     0,    23,     0,   620,     0,   313,   314,
   315,   316,   317,    26,     0,    27,    28,     0,     0,     0,
   320,     0,     0,     0,     0,     0,   321,     0,     0,  1208,
     0,     0,     0,     0,     0,     0,     0,   323,   324,  1209,
     0,     0,     0,     0,     0,   326,   327,   328,     0,   623,
     0,     0,  1210,   625,     7,     8,     9,    10,     0,    12,
   301,   302,   303,     0,   304,    14,     0,     0,     0,   330,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
   305,    17,    18,    19,     0,   306,   307,    20,     0,   308,
   309,   310,    21,   311,   312,     0,    23,     0,   620,     0,
   313,   314,   315,   316,   317,    26,     0,    27,    28,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   321,     0,
     0,  1208,     0,     0,     0,     0,     0,     0,     0,   323,
   324,  1209,     0,     0,     0,     0,     0,   326,   327,   328,
     0,   623,     0,     0,  1210,   625,   300,     8,     9,    10,
     0,    12,   536,   302,   303,     0,   304,    14,     0,     0,
     0,   330,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    16,   305,    17,    18,    19,     0,   306,   307,    20,
     0,   308,   309,   310,    21,   311,   312,     0,    23,     0,
     0,     0,   313,   314,   315,   316,   317,    26,     0,    27,
   319,     0,     0,     0,   320,     0,     0,     0,     0,     0,
   321,     0,     0,   555,     0,     0,     0,     0,     0,     0,
     0,   323,   324,   556,     0,     0,     0,     0,     0,   326,
   327,   328,   300,     8,     9,    10,   557,    12,   536,   302,
   303,     0,   304,    14,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   330,     0,     0,     0,    16,   305,    17,
     0,    19,     0,   306,   307,    20,     0,   308,   309,   310,
    21,   311,   312,     0,    23,     0,     0,     0,   313,   314,
   315,   316,   317,    26,     0,    27,   319,     0,     0,  1441,
   320,     0,     0,     0,     0,     0,   321,     0,     0,   322,
     0,     0,     0,     0,     0,     0,     0,   323,   324,   325,
     0,     0,     0,     0,     0,   326,   327,   328,     0,     0,
     0,     0,   329,   300,     8,     9,    10,   167,    12,   301,
   302,   303,     0,   304,    14,     0,     0,     0,     0,   330,
     0,     0,     0,     0,     0,     0,     0,     0,    16,   305,
    17,    18,    19,     0,   306,   307,    20,     0,   308,   309,
   310,    21,   311,   312,     0,    23,     0,     0,     0,   313,
   314,   315,   316,   317,    26,     0,    27,   319,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   321,     0,     0,
   322,     0,     0,     0,     0,     0,     0,     0,   323,   324,
   325,     0,     0,     0,     0,     0,   326,   327,   328,     7,
     8,     9,    10,   329,    12,   536,   302,   303,     0,   304,
    14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   330,     0,     0,     0,    16,   305,    17,    18,    19,     0,
   306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
     0,    23,     0,     0,     0,   313,   314,   315,   316,   317,
    26,     0,    27,    28,     0,     0,     0,   320,     0,     0,
     0,     0,     0,   321,     0,     0,  1532,     0,     0,     0,
     0,     0,     0,     0,   323,   324,  1533,     0,     0,     0,
     0,     0,   326,   327,   328,   300,     8,     9,    10,  1534,
    12,   301,   302,   303,     0,   304,    14,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   330,     0,     0,     0,
    16,   305,    17,     0,    19,     0,   306,   307,    20,     0,
   308,   309,   310,    21,   311,   312,     0,    23,     0,     0,
     0,   313,   314,   315,   316,   317,    26,     0,   318,   319,
     0,     0,     0,   320,     0,     0,     0,     0,     0,   321,
     0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
   323,   324,   325,     0,     0,     0,     0,     0,   326,   327,
   328,   300,     8,     9,    10,   329,    12,   301,   302,   303,
     0,   304,    14,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   330,     0,     0,     0,    16,   305,    17,     0,
    19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
   311,   312,     0,    23,     0,     0,     0,   313,   314,   315,
   316,   317,    26,     0,    27,   319,     0,     0,     0,   320,
     0,     0,     0,     0,     0,   321,     0,     0,   322,     0,
     0,     0,     0,     0,     0,     0,   323,   324,   325,     0,
     0,     0,     0,     0,   326,   327,   328,   300,     8,     9,
    10,   329,    12,   536,   302,   303,     0,   304,    14,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   330,     0,
     0,     0,    16,   305,    17,     0,    19,     0,   306,   307,
    20,     0,   308,   309,   310,    21,   311,   312,     0,    23,
     0,     0,     0,   313,   314,   315,   316,   317,    26,     0,
    27,   319,     0,     0,     0,   320,     0,     0,     0,     0,
     0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
     0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
   326,   327,   328,   300,     8,     9,    10,   329,    12,   536,
   302,   303,     0,   304,    14,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   330,     0,     0,     0,    16,   305,
    17,     0,    19,     0,   306,   307,    20,     0,   308,   309,
   310,    21,   311,   312,     0,    23,     0,     0,     0,   313,
   314,   315,   316,   317,    26,     0,    27,   319,   569,     0,
     0,     0,     0,     0,     0,     0,     0,   321,     0,     0,
   322,     0,     0,     0,     0,     0,     0,     0,   323,   324,
   325,     0,     0,     0,     0,     0,   326,   327,   328,   300,
     8,     9,    10,   570,    12,   536,   302,   303,     0,   304,
    14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   330,     0,     0,     0,    16,   305,    17,     0,    19,     0,
   306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
     0,    23,     0,     0,     0,   313,   314,   315,   316,   317,
    26,     0,    27,   319,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   321,     0,     0,   322,     0,     0,     0,
     0,     0,     0,     0,   323,   324,   325,     0,     0,     0,
     0,     0,   326,   327,   328,     0,     0,     0,     0,   329,
   608,   300,     8,     9,    10,     0,    12,   536,   302,   303,
     0,   304,    14,     0,     0,     0,   330,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    16,   305,    17,    18,
    19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
   311,   312,     0,    23,     0,     0,     0,   313,   314,   315,
   316,   317,    26,     0,    27,   319,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   321,     0,     0,   555,     0,
     0,     0,     0,     0,     0,     0,   323,   324,   556,     0,
     0,     0,     0,     0,   326,   327,   328,  1166,     8,     9,
    10,   557,    12,   536,   302,   303,     0,   304,    14,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   330,     0,
     0,     0,    16,   305,    17,     0,    19,     0,   306,   307,
    20,     0,   308,   309,   310,    21,   311,   312,     0,    23,
     0,     0,     0,   313,   314,   315,   316,   317,    26,     0,
    27,   319,     0,     0,     0,   320,     0,     0,     0,     0,
     0,   321,     0,     0,   322,     0,     0,     0,     0,     0,
     0,     0,   323,   324,   325,     0,     0,     0,     0,     0,
   326,   327,   328,     7,     8,     9,    10,   329,    12,   301,
   302,   303,     0,   304,    14,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   330,     0,     0,     0,    16,   305,
    17,    18,    19,     0,   306,   307,    20,     0,   308,   309,
   310,    21,   311,   312,     0,    23,     0,     0,     0,   313,
   314,   315,   316,   317,    26,     0,    27,    28,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   321,     0,     0,
  1532,     0,     0,     0,     0,     0,     0,     0,   323,   324,
  1533,     0,     0,     0,     0,     0,   326,   327,   328,   300,
     8,     9,    10,  1534,    12,   536,   302,   303,     0,   304,
    14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   330,     0,     0,     0,    16,   305,    17,     0,    19,     0,
   306,   307,    20,     0,   308,   309,   310,    21,   311,   312,
     0,    23,     0,     0,     0,   313,   314,   315,   316,   317,
    26,     0,    27,   319,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   321,     0,     0,   322,     0,     0,     0,
     0,     0,     0,     0,   323,   324,   325,     0,     0,     0,
     0,     0,   326,   327,   328,   300,     8,     9,    10,   537,
    12,   536,   302,   303,     0,   304,    14,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   330,     0,     0,     0,
    16,   305,    17,     0,    19,     0,   306,   307,    20,     0,
   308,   309,   310,    21,   311,   312,     0,    23,     0,     0,
     0,   313,   314,   315,   316,   317,    26,     0,    27,   319,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   321,
     0,     0,   322,     0,     0,     0,     0,     0,     0,     0,
   323,   324,   325,     0,     0,     0,     0,     0,   326,   327,
   328,   300,     8,     9,    10,   540,    12,   536,   302,   303,
     0,   304,    14,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   330,     0,     0,     0,    16,   305,    17,     0,
    19,     0,   306,   307,    20,     0,   308,   309,   310,    21,
   311,   312,     0,    23,     0,     0,     0,   313,   314,   315,
   316,   317,    26,     0,    27,   319,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   321,     0,   783,   322,     7,
     8,   784,    10,   167,    12,    13,   323,   324,   325,     0,
    14,     0,     0,     0,   326,   327,   328,     0,     0,     0,
     0,   329,     0,     0,    16,     0,    17,    18,    19,     0,
     0,     0,    20,     0,     0,     0,     0,    21,   330,     0,
     0,    23,   785,     0,   168,     0,     0,     0,     0,     0,
    26,     0,    27,    28,     0,     0,   786,     0,   787,     0,
     0,     0,     0,     0,     0,     0,    30,  -387,     8,     9,
  -387,  -387,    12,   246,     0,     0,    31,     0,    14,     0,
     0,     0,     0,     0,    32,     0,     0,     0,     0,    33,
     0,     0,    16,     0,    17,  -387,     0,     0,     0,     0,
    20,     0,     0,     0,     0,  -387,     0,     0,     0,    23,
     0,   620,     0,     0,     0,     0,     0,     0,    26,     0,
   130,   131,  1054,     8,   784,    10,   205,    12,   206,     0,
     0,     0,     0,    14,   621,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   622,     0,     0,    16,     0,    17,
    18,     0,  -387,     0,   623,    20,     0,   624,   625,     0,
    21,     0,     0,     0,    23,     0,     0,     0,     0,     0,
     0,     0,     0,    26,     0,    27,    28,     0,     0,     0,
     0,  1056,     0,     0,     0,     0,     0,     0,     0,    30,
     7,     8,     9,    10,   205,    12,   206,     0,     0,    31,
     0,    14,     0,     0,     0,     0,     0,    32,     0,     0,
     0,     0,    33,     0,     0,    16,     0,    17,    18,     0,
     0,     0,     0,    20,     0,     0,     0,     0,    21,     0,
     0,     0,    23,     0,     0,     0,     0,     0,     0,     0,
     0,    26,     0,    27,    28,     0,     0,  1458,     0,     7,
     8,     9,    10,   167,    12,    13,     0,    30,     0,     0,
    14,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     0,     0,     0,     0,    16,    32,    17,    18,     0,     0,
    33,     0,    20,     0,     0,     0,     0,    21,     0,     0,
     0,    23,     0,     0,     0,     0,     0,     0,     0,     0,
    26,     0,    27,    28,     7,     8,     9,    10,   205,    12,
   206,     0,     0,     0,     0,    14,    30,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    31,     0,     0,    16,
     0,    17,    18,     0,    32,     0,     0,    20,     0,    33,
     0,     0,    21,     0,     0,     0,    23,     0,     0,     0,
     0,     0,     0,     0,     0,    26,     0,    27,    28,     8,
     9,     0,   167,    12,    13,     0,     0,     0,     0,    14,
     0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    31,     0,    16,     0,    17,    18,     0,     0,    32,
     0,    20,     0,     0,    33,     0,     0,     0,     0,     0,
   682,     0,     0,   168,     0,     0,     0,     0,     0,    26,
     0,   130,   131,   572,   573,   574,   575,   576,   577,   578,
   579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
   589,   590,   591,   592,   593,   572,   573,   574,   575,   576,
   577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
   587,   588,   589,   590,   591,   592,   593,     0,     0,     0,
     0,  1267,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   661,     0,     0,  1604,
   572,   573,   574,   575,   576,   577,   578,   579,   580,   581,
   582,   583,   584,   585,   586,   587,   588,   589,   590,   591,
   592,   593,  1598,   572,   573,   574,   575,   576,   577,   578,
   579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
   589,   590,   591,   592,   593,   572,   573,   574,   575,   576,
   577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
   587,   588,   589,   590,   591,   592,   593,   572,   573,   574,
   575,   576,   577,   578,   579,   580,   581,   582,   583,     0,
   585,   586,   587,   588,   589,   590,   591,   592,   593,   576,
   577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
   587,   588,   589,   590,   591,   592,   593,   577,   578,   579,
   580,   581,   582,   583,   584,   585,   586,   587,   588,   589,
   590,   591,   592,   593
};

static const short yycheck[] = {     4,
   175,   174,    55,   349,    62,   149,   150,   161,   176,   402,
    23,     4,   507,   485,   718,   355,   251,   209,   402,   126,
   304,   305,    90,   880,    92,    14,   156,    84,    80,   355,
    35,   700,     4,   133,     4,   402,   788,    42,   790,    42,
   133,   134,    35,     4,   356,   357,   798,    42,   567,   134,
   604,    42,    57,   337,   440,   247,  1236,  1237,   124,   647,
   693,  1423,   243,    35,  1338,    35,  1514,    72,    59,   137,
    42,   373,    42,  1253,    35,    54,  1513,  1537,    42,    84,
    42,    42,   140,    88,   209,    90,    12,    92,   217,   218,
    59,    11,   144,   218,    83,    47,   408,   409,   156,  1559,
    47,  1348,   107,   108,   296,    11,   468,     0,  1355,    11,
  1515,     1,     4,   701,    60,    33,    59,   106,   804,   455,
   355,     9,   175,  1560,   810,    54,     0,   493,    60,    37,
    74,   136,   137,    59,   139,    74,    62,     1,    30,    31,
   109,    93,    62,    35,   510,    74,    93,    94,    27,     4,
    42,   203,    31,   625,   212,    58,   108,   349,    80,  1619,
   165,   108,   220,   109,   169,   108,   169,    12,    58,    47,
   165,   176,    57,    61,   169,   136,   155,   109,   169,   237,
    35,    60,   348,   349,   350,    64,     1,    42,   108,    48,
  1595,   109,    84,   539,    58,    98,  1644,   169,    62,   169,
  1380,   109,   108,    74,   165,   169,   108,   169,   169,  1389,
  1390,    59,  1392,    59,    59,    93,    94,    62,   209,    46,
    60,   200,   717,  1660,    54,   561,   217,   218,    47,    38,
   109,    95,    62,    47,   920,    60,    47,    59,  1600,    25,
  1514,    27,    93,    58,   136,    54,   346,    62,   460,    76,
    25,   136,    27,   346,     4,     5,   247,   149,   150,   248,
   108,    74,   108,   108,     3,     4,     5,   936,     4,   109,
   939,  1518,    58,   165,    93,    94,    62,   169,    33,    93,
    95,   136,    93,    58,   109,   342,   108,    62,    47,   108,
   358,   176,   297,    54,   448,  1563,    47,   108,    48,    35,
    93,   193,   194,    93,   644,   296,    56,    57,   393,    95,
   165,   980,   981,    74,   169,    93,   683,    56,    57,   385,
    95,    31,  1569,    47,   329,   879,   712,   713,   961,    47,
    80,    47,   476,   477,    93,    94,   648,   342,    60,    25,
   262,    80,    93,    94,  1612,   350,    64,   740,    64,   479,
     4,   404,    60,   358,   359,  1041,   740,   108,   349,    47,
   489,   490,    47,  1543,  1544,   490,   355,  1053,   497,    93,
    94,   673,    58,  1620,   107,    93,    62,    93,   613,     4,
   509,    35,    47,   719,   108,     4,   213,    58,    42,    25,
   736,    54,   450,    64,   149,   150,   151,   402,   359,   528,
   405,  1087,    75,  1089,    77,    93,    94,    55,    93,    95,
    35,    74,   470,    47,    47,   406,    35,     8,     9,  1276,
    25,   479,    27,    14,     3,     4,     5,     6,    93,    94,
    84,   141,   402,   501,     4,     5,   146,   442,   496,   442,
   195,     4,   804,   108,  1032,    36,   965,   442,   810,   921,
   342,   442,    31,    58,    45,   182,    47,    62,    44,    93,
    93,    58,    41,   468,    59,    62,   534,   359,    54,     4,
     5,    57,    35,    47,   359,    54,    54,    56,    57,    42,
    75,   442,   136,    25,   194,    27,    56,    57,  1157,  1158,
    95,    70,    55,    62,    57,    31,   501,    62,   489,   490,
  1252,    80,    93,   508,   359,    74,   497,    12,   820,    88,
   402,   165,    62,    48,    93,   169,    58,    47,   509,    93,
    62,    56,    57,   689,    74,   691,   692,   175,   694,   534,
     7,    58,   537,    74,    64,   540,   508,   528,   711,   544,
   545,   546,   547,   548,  1039,    80,    47,   508,   605,   259,
   442,  1408,   557,    95,    59,    47,    54,    62,   920,    64,
    37,    47,   567,    93,    94,   570,   109,   483,    47,   962,
   736,    47,    47,   136,   222,   491,   468,   140,   962,    54,
    58,     4,     5,    93,   476,   477,   508,   442,   681,   674,
   930,   772,    93,   774,    54,   962,   681,   650,   779,    74,
   605,    93,   165,    47,   930,    54,   169,    93,   676,     4,
     5,    54,   175,   176,    93,   108,   508,    93,    93,   624,
     3,     4,     5,   508,     4,     5,   631,     3,     4,     5,
    75,    54,    54,    56,    57,   764,   689,   829,   691,   692,
     4,     5,   926,   955,    62,     9,   635,    70,    94,    93,
     4,     5,    74,   508,  1126,    62,    74,    80,   108,   222,
   651,    56,    57,   829,  1000,     4,     5,    74,    48,   682,
   882,   676,   499,    56,    57,   782,    56,    57,    54,  1041,
    56,    57,    58,   736,   108,   690,    11,    47,   342,   694,
    54,  1053,    56,    57,    48,   930,   108,  1192,    47,   109,
    14,   692,    56,    57,   717,   359,    70,    47,    22,   419,
    98,    47,   422,   605,    60,    54,    80,    56,    57,    47,
    93,   476,   477,   478,   434,  1087,    80,  1089,    62,   621,
   622,    70,   624,    93,  1229,   740,   902,   805,   806,   631,
   808,    80,   795,   909,    93,   736,    62,     3,   402,  1122,
  1123,    65,  1125,    93,    60,    94,   404,    93,     3,     4,
     5,   471,   928,   111,   474,    93,     3,     4,     5,  1081,
  1082,  1083,    33,   764,   108,  1121,    74,    47,   488,     3,
     4,     5,     6,   788,    54,   790,    54,    54,   442,    83,
    84,   796,   108,   798,    62,    62,   359,    94,   928,   804,
   805,   806,    94,   808,    74,   810,    74,    74,     4,     5,
   124,    56,    57,    58,   468,   988,   788,    41,   790,    56,
    57,    62,   470,    93,   111,    54,   798,   788,    93,   790,
    93,   479,    56,    57,   148,   483,    74,   798,   829,    59,
    60,   404,    54,   491,   902,    74,    74,    54,   740,    27,
    62,   909,    48,    31,   508,  1036,  1037,  1038,   750,   751,
    56,    57,    74,    54,     4,     5,   788,    74,   790,     9,
   928,    62,    54,   878,   796,    59,   798,    74,   883,   442,
    62,    59,    60,    74,    80,     3,     4,     5,   149,   150,
   151,    75,    74,    77,  1106,  1107,   788,    74,   790,     3,
     4,     5,    59,   788,    11,   790,   798,   470,   109,   914,
   795,   796,   804,   798,    54,   920,    56,    57,   810,   924,
   483,   973,  1626,   108,   238,   239,    59,    60,   491,    59,
    70,     4,     5,   788,   195,   790,    54,   251,    56,    57,
    80,   930,    47,   798,    48,   508,     3,     4,     5,    54,
     7,   605,    56,    57,    94,   108,   108,   962,    54,   964,
   965,    59,    60,   968,   791,   792,    62,    59,    60,    74,
   624,     4,     5,    30,   801,  1287,     9,   631,    74,   108,
    37,    54,  1148,    56,    57,   817,   818,   819,    93,    59,
    60,  1044,   962,    74,  1206,    59,    60,    54,    31,    56,
    57,  1347,   650,  1215,  1216,    74,  1011,   321,    54,  1175,
    59,    60,  1224,  1065,    74,  1181,    59,    60,  1148,  1024,
   108,    54,   109,    56,    57,     3,     4,     5,   920,  1034,
   922,   923,   924,   109,  1178,  1179,  1041,    70,   748,   749,
   767,   689,    27,   691,   692,   111,   756,    80,  1053,   363,
   108,  1181,    59,    60,     9,  1267,   111,    12,   372,    74,
    93,    74,  1130,    27,  1208,  1209,    54,    31,    74,  1074,
   962,   385,    59,    60,   966,   967,   968,   111,    56,    57,
   111,   108,  1087,   108,  1089,   108,   740,   650,   736,    58,
  1148,   108,    47,     8,     9,    59,    60,    54,  1434,    14,
    64,     8,  1074,   111,    59,    47,    61,    62,    64,    64,
     4,     5,  1117,  1074,  1450,    59,    93,  1175,    93,  1011,
    75,    36,    77,  1181,    54,  1130,   689,   690,   691,   692,
    45,  1183,     4,     5,   788,  1301,   790,   109,    93,    94,
    60,    36,    64,  1065,   798,    64,    64,   795,  1153,  1041,
   804,    60,  1074,   108,    48,  1367,   810,   108,   108,  1044,
  1553,  1053,    56,    57,    62,  1223,   111,   108,   108,  1553,
  1345,  1301,  1347,   736,   108,  1180,    48,   740,  1346,  1192,
   108,    64,  1074,    64,    56,    57,    80,    64,    75,  1074,
    93,   505,    59,  1405,   108,  1087,   108,  1089,  1203,    75,
     3,  1537,   108,     6,   108,  1210,   108,    75,    80,    75,
  1203,  1557,    75,   968,    62,   476,   477,   478,   108,  1074,
     3,     4,     5,  1559,   108,   788,    62,   790,    31,    59,
  1057,  1203,   795,   796,   108,   798,  1063,  1064,    41,    62,
  1067,  1068,   111,  1301,  1071,    94,   108,  1252,   108,    88,
  1586,   108,   111,    56,    57,   569,  1011,   967,    74,  1151,
  1152,  1153,    47,    59,    47,   108,   920,    70,   108,   111,
   924,    54,   109,    56,    57,   108,   111,    80,    74,    75,
  1252,    77,   108,  1619,   108,    88,  1178,  1179,  1180,   109,
    93,  1252,  1345,    60,  1347,    59,    64,    59,    64,   613,
    59,  1306,    64,    59,  1640,    62,   108,   108,   962,    93,
    93,  1203,    74,    75,   968,    93,  1208,  1209,  1210,  1046,
  1047,    93,    93,   109,   111,  1247,     8,   109,  1220,  1221,
  1252,   108,   108,  1338,   108,   108,   111,  1503,   108,   108,
    33,  1346,    64,  1348,   109,   108,  1073,   108,  1203,    54,
  1355,  1078,    62,   108,   108,  1348,  1347,  1011,   108,  1364,
  1252,   108,  1355,   108,   108,  1557,  1338,  1252,   682,     4,
     5,    30,    31,   108,    33,  1529,  1348,   108,   111,   693,
    47,   108,   108,  1355,   108,    96,  1552,  1041,  1532,  1533,
    62,    62,    12,     9,    60,    60,  1044,  1252,    57,  1053,
    59,    80,    81,    82,    83,    84,    65,    27,    60,    44,
   724,    31,  1304,  1305,  1306,     3,     4,     5,    16,    54,
  1074,    56,    57,  1178,  1179,  1180,    60,    47,   108,    93,
   108,   108,   108,  1087,  1607,  1089,    60,    93,  1650,    59,
    60,    64,    62,    54,    64,  1503,  1338,   108,     3,     4,
     5,   108,    93,  1208,  1209,  1210,  1348,   111,    17,    60,
    48,    93,    54,  1355,   108,    60,  1176,  1177,    56,    57,
   108,   107,    97,    93,    94,  1185,    11,     3,     4,     5,
   108,  1044,   141,  1338,     3,     4,     5,   146,   108,   108,
   149,   150,   151,  1348,  1552,    60,    60,  1502,    60,  1153,
  1355,    56,    57,  1508,    30,  1558,    93,    59,  1513,  1514,
  1515,  1074,   108,  1518,    64,  1242,  1243,   176,  1245,  1246,
  1513,  1248,    60,   182,   108,  1518,  1180,  1175,    54,  1534,
    56,    57,   108,  1181,   193,   194,   195,    56,    57,    11,
    60,  1513,  1514,    11,    60,     0,  1518,     0,  1553,  1203,
   209,     3,     4,     5,     6,  1560,  1210,     0,   217,   218,
  1387,  1388,   170,     2,  1569,    35,  1557,  1560,  1448,   962,
   169,     3,     4,     5,   674,  1223,  1569,   442,     3,     4,
     5,  1606,     7,     8,     9,     3,     4,     5,  1560,    41,
  1595,   165,  1302,  1303,   796,    94,  1244,  1569,  1252,  1309,
   259,   238,    54,  1192,    56,    57,    31,   139,  1500,  1501,
  1502,    36,  1175,  1433,  1660,  1620,  1508,  1277,     3,     4,
     5,  1513,  1514,  1515,    56,    57,  1518,  1620,   948,   299,
   724,    56,    57,  1460,   948,   943,    88,   242,    56,    57,
  1532,  1533,     3,     4,     5,     6,  1229,   961,  1620,  1039,
  1377,  1378,  1306,  1301,  1074,  1660,  1249,   796,  1513,  1514,
   657,  1553,   941,  1518,   200,   346,   605,  1660,  1560,    54,
   329,    56,    57,   124,  1348,  1204,  1626,  1569,    33,  1574,
    41,  1244,  1640,  1636,  1338,  1364,  1249,  1638,  1660,  1252,
  1019,     4,     5,    54,  1348,    56,    57,  1345,    -1,  1347,
    -1,  1355,    -1,  1595,    -1,  1560,  1461,   968,    -1,    70,
   107,   108,    -1,    -1,  1569,    -1,    -1,    -1,    31,    80,
     3,     4,     5,    -1,     7,     8,     9,    88,  1620,    -1,
    -1,    -1,    93,    -1,    -1,     4,     5,    -1,    -1,    -1,
     9,    54,    -1,    56,    57,    -1,   405,   406,    -1,    -1,
  1011,    -1,    -1,  1480,  1481,  1482,    -1,    70,    -1,   762,
   419,  1588,    31,   422,    -1,  1620,    -1,    80,  1660,   428,
   429,   430,    -1,    56,    57,   434,    -1,  1532,  1533,  1534,
    93,    -1,  1345,  1346,  1347,    54,    -1,    56,    57,     3,
     4,     5,     6,  1107,    -1,   150,   151,     7,     8,     9,
   803,    70,    -1,    -1,    14,  1660,   809,    -1,    -1,    -1,
    -1,    80,   471,  1540,  1541,   474,    -1,   476,   477,   478,
    -1,    31,    -1,   482,    93,    -1,    36,    41,    -1,   488,
   489,   490,    -1,    -1,   493,    45,    -1,    -1,   497,    -1,
   195,    -1,    56,    57,    -1,    -1,    -1,    -1,  1502,    -1,
    60,   510,    -1,    -1,  1508,  1503,     7,     8,     9,  1513,
  1514,  1515,    -1,    14,  1518,    76,    77,    78,    79,    80,
    81,    82,    83,    84,    88,    -1,    -1,    -1,   537,    -1,
    31,   540,    47,    -1,  1611,    36,  1200,    -1,    -1,    -1,
    -1,    -1,  1206,    -1,    45,   461,   555,   556,   557,  1553,
    -1,    -1,   468,    -1,  1552,    -1,  1560,    -1,    -1,    60,
  1558,   570,   915,    -1,   917,  1569,   402,  1178,  1179,  1180,
    -1,    86,    87,    -1,    -1,    -1,    91,    92,    93,    94,
    -1,    -1,   329,    -1,     4,     5,    -1,    -1,    -1,     9,
    -1,  1595,    -1,     3,     4,     5,     6,  1208,  1209,  1210,
    -1,     4,     5,    -1,   306,   307,    88,    -1,    90,    -1,
    92,    31,   621,   622,    -1,   624,  1620,    -1,    -1,   535,
   322,    -1,   631,   325,   329,    -1,   328,    47,    31,   331,
    -1,    41,   468,   335,    54,    -1,    56,    57,    48,    -1,
    -1,   343,   651,    -1,    47,  1558,    56,    57,    -1,    -1,
    70,    54,    -1,    56,    57,   137,  1660,   139,    -1,    -1,
    80,    -1,    -1,     3,     4,     5,     6,    70,  1332,  1333,
    90,    -1,    -1,    93,    94,    -1,    -1,    80,    88,   595,
    -1,   690,    -1,   692,   693,   601,    -1,    90,    -1,    -1,
    93,    94,     3,     4,     5,     6,    -1,    -1,     3,     4,
     5,    41,     7,     8,     9,    -1,    -1,    -1,    48,    -1,
    80,    -1,    -1,    -1,    -1,    -1,    56,    57,   465,    -1,
    -1,    -1,   638,    -1,   429,   430,    31,   736,    -1,    -1,
    41,    36,    -1,  1086,   104,  1088,    -1,    48,    -1,   748,
   749,   750,   751,   752,    -1,    56,    57,   756,    88,    54,
    -1,    56,    57,    58,    -1,   764,    -1,    -1,   767,    -1,
    -1,  1425,    -1,   133,    -1,    -1,    -1,    -1,    -1,    80,
    -1,    -1,   477,   478,   144,    -1,    -1,    88,     7,     8,
     9,    -1,    -1,  1447,  1448,    14,    -1,   796,   624,    -1,
   537,  1144,    -1,   540,    -1,   631,    -1,   544,   103,   104,
   105,    -1,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
   557,    -1,    -1,    -1,   823,    -1,    45,     4,     5,    -1,
    -1,    -1,     9,   570,    -1,    -1,    -1,   574,     3,     4,
     5,     6,   537,   203,    -1,   540,    -1,    -1,   320,    -1,
    -1,    82,    -1,    -1,    31,    -1,     3,     4,     5,     6,
  1461,   556,   557,   555,   556,   602,    -1,     3,     4,     5,
     6,   608,  1526,    38,    39,   570,    41,    54,   238,    56,
    57,    -1,    -1,    -1,    -1,    -1,   358,    -1,    -1,    54,
  1233,    56,    57,    70,    41,  1238,    -1,    -1,    -1,    -1,
    -1,    48,   262,    80,   903,    41,    -1,   906,    -1,    56,
    57,    47,    -1,    -1,   740,    -1,    93,    -1,    54,   918,
    56,    57,    -1,   922,   923,   924,    -1,    -1,   159,    -1,
    -1,  1532,  1533,  1534,    70,    -1,   631,    -1,    -1,    -1,
    -1,    88,    -1,    -1,    80,    -1,    -1,    -1,  1291,     4,
     5,    -1,    88,    -1,    90,    -1,    -1,    93,    94,    -1,
   191,    -1,   961,    -1,    -1,    -1,    -1,   966,   967,   968,
    -1,   877,   878,   204,    -1,    -1,    31,   883,   804,    -1,
     7,     8,     9,    -1,   810,    -1,    -1,    14,   460,   461,
    -1,   897,    47,   899,   354,   901,   468,    -1,    -1,    54,
    -1,    56,    57,    -1,    31,     3,     4,     5,     6,    36,
    -1,    -1,  1011,    -1,    -1,    70,    -1,    -1,    45,    -1,
    -1,    -1,    -1,    -1,    -1,    80,  1025,  1026,  1027,   501,
    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    93,    94,
    -1,    -1,    -1,    41,   950,    -1,    -1,  1046,  1047,    -1,
    48,    -1,   412,  1396,  1397,    -1,   751,   752,    56,    57,
    -1,    -1,   534,   535,    -1,    -1,    -1,    -1,    -1,    -1,
  1413,    -1,    -1,    -1,  1073,    -1,    -1,    -1,    -1,  1078,
    -1,    -1,    80,    -1,     3,     4,     5,     6,   994,    -1,
    88,    -1,    -1,    -1,   920,   567,    -1,   569,   924,    -1,
   572,   573,    -1,   575,   576,   577,   578,   579,   580,   581,
   582,   583,   584,   585,   586,   587,   588,   589,   590,   591,
   592,   593,    41,   595,    -1,    -1,    -1,    -1,   823,   601,
  1473,  1474,    -1,    -1,    -1,    54,   962,    56,    57,    -1,
    -1,    60,   968,    62,    -1,   505,  1489,  1490,     4,     5,
   887,    70,  1151,  1152,  1153,    -1,    -1,    -1,    -1,   631,
    -1,    80,    -1,    -1,    -1,    -1,   638,    -1,    -1,    88,
    -1,   531,    -1,    -1,    93,    -1,    -1,  1176,  1177,  1178,
  1179,  1180,    -1,   461,    -1,  1011,  1185,   924,   660,   661,
   468,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,   891,
    56,    57,    -1,    -1,   676,    -1,    -1,    -1,    -1,  1208,
  1209,  1210,    -1,    -1,    70,  1041,    -1,    -1,    -1,    -1,
    -1,  1220,  1221,  1222,    80,    -1,    -1,  1053,   923,   924,
   922,   923,    -1,    -1,    90,    -1,    -1,    93,    94,    -1,
    -1,    -1,    -1,  1242,  1243,    -1,  1245,  1246,    -1,  1248,
   481,    -1,   724,    -1,    -1,   486,    -1,   535,   618,    -1,
    -1,  1087,    -1,  1089,    78,    79,    80,    81,    82,    83,
    84,    -1,    -1,   968,   634,    -1,    -1,    -1,    -1,    -1,
   511,    -1,    -1,    -1,    -1,    -1,   517,    -1,  1194,    -1,
  1196,    -1,  1198,    -1,    -1,    -1,    -1,  1034,   529,   530,
    -1,   532,    -1,  1302,  1303,  1304,  1305,  1306,    -1,    -1,
  1309,    -1,    -1,    -1,    -1,   787,  1011,   595,     3,     4,
     5,     6,    -1,   601,     9,    -1,    -1,  1153,    -1,    -1,
    -1,    -1,    -1,   805,   806,     1,   808,     3,     4,     5,
     6,    -1,     8,    -1,    -1,    -1,    31,  1346,  1347,    -1,
    -1,   823,    -1,   631,  1180,    -1,    41,    -1,    -1,    -1,
   638,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,
    -1,    56,    57,   845,    -1,    41,    -1,    -1,  1377,  1378,
    -1,    -1,    48,    -1,  1210,    70,    -1,    -1,    54,    -1,
    56,    57,  1298,   753,    -1,    80,   627,   628,    -1,    -1,
    -1,   632,    -1,    88,    -1,   877,   878,    -1,    93,    -1,
   882,   883,    -1,    -1,    -1,    -1,  1415,  1416,     4,  1418,
    -1,    -1,    88,    -1,    -1,   897,    -1,   899,    14,   901,
    -1,    -1,    -1,    -1,    -1,    -1,  1128,    -1,    24,    -1,
    -1,    -1,    -1,    -1,    30,    31,    -1,    33,    -1,    35,
    -1,    -1,    -1,    -1,    -1,    -1,    42,  1152,  1153,    -1,
    -1,    -1,  1461,    -1,    -1,    -1,    -1,    -1,   940,    55,
    -1,    57,    -1,  1210,    -1,    -1,    -1,    -1,   950,    65,
  1306,  1480,  1481,  1482,  1179,  1180,    72,    -1,    -1,    -1,
    -1,    -1,    -1,   965,    -1,    -1,    -1,    83,    84,    -1,
    -1,  1500,  1501,  1502,    -1,    -1,   978,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1209,  1210,  1208,  1209,    -1,    -1,
   106,    -1,   994,   754,    -1,    -1,  1263,  1264,  1265,  1266,
    -1,    -1,    -1,  1532,  1533,  1534,    -1,    -1,    -1,  1011,
    -1,  1540,  1541,    -1,    -1,   823,    -1,    -1,   134,    -1,
   136,    -1,    -1,    -1,   140,   141,    -1,    -1,    -1,   145,
   146,    -1,    -1,   149,   150,   151,    -1,    -1,    -1,   929,
    -1,   931,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   165,
   811,    -1,   813,   169,  1056,    -1,    -1,    -1,    -1,   175,
   176,    -1,     4,     5,  1331,    -1,     8,     9,    -1,   877,
   878,    -1,    14,    -1,    -1,   883,    -1,   193,   194,   195,
  1305,  1306,  1611,   973,    -1,    -1,    28,    -1,    30,   897,
    -1,   899,    -1,   901,    36,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    45,  1106,  1107,   222,    -1,  1110,    -1,
    -1,    -1,    54,    -1,    56,    57,  1338,    -1,    -1,    -1,
    -1,    -1,    -1,   239,   885,   886,    -1,   888,  1130,    -1,
    -1,    -1,   248,    -1,     3,     4,     5,     6,    -1,  1406,
     9,    -1,   950,   259,    -1,    -1,  1502,    -1,    -1,    -1,
    -1,    93,    -1,    -1,   621,   622,    -1,    -1,   919,    -1,
    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    41,    -1,    -1,  1065,  1443,    -1,    47,    -1,
    -1,   297,   298,    -1,    -1,    54,   994,    56,    57,    -1,
    -1,    -1,  1194,    -1,  1196,    -1,  1198,  1553,    -1,    -1,
    -1,    70,    -1,  1011,  1206,    -1,    -1,    -1,    -1,   970,
    -1,    80,    -1,  1215,  1216,     3,     4,     5,     6,    88,
    -1,    90,  1224,    -1,    93,    94,   342,    -1,    -1,    -1,
   346,    -1,   348,   349,   350,    -1,  1461,    -1,  1240,  1241,
    -1,  1508,    -1,   359,    -1,    -1,    -1,  1514,  1515,    -1,
    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1154,  1267,    54,  1534,    56,    57,
    -1,    -1,    60,    -1,    -1,    -1,    -1,   393,    -1,  1040,
     4,     5,    70,    -1,     8,     9,   402,    -1,   404,   405,
    14,  1052,    80,  1183,    -1,    -1,  1298,    -1,    -1,    -1,
    88,    -1,    -1,   419,    -1,    93,   422,    -1,  1533,  1534,
  1532,  1533,    36,    -1,    -1,    -1,    -1,    -1,   434,    -1,
    -1,    45,    -1,    47,    -1,  1327,   442,    -1,  1595,    -1,
    54,    -1,    56,    57,    73,    74,    75,    76,    77,    78,
    79,    80,    81,    82,    83,    84,    70,  1614,    -1,    -1,
    -1,    -1,    -1,    -1,   470,   471,    80,  1247,   474,    -1,
   476,   477,   478,   479,    -1,  1367,    90,   483,  1635,    93,
    94,    -1,   488,    -1,    -1,   491,    -1,  1644,  1139,    -1,
    -1,  1383,    -1,    -1,    -1,    -1,  1194,    -1,  1196,    -1,
  1198,    -1,   508,    -1,    -1,    -1,     3,     4,     5,     6,
    -1,    -1,     9,  1405,    -1,    -1,    -1,     3,     4,     5,
     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1184,    31,    -1,    -1,    -1,    -1,   545,
   546,   547,   548,    -1,    41,    -1,   903,    -1,    -1,   906,
    47,    -1,    -1,    -1,    -1,    41,    -1,    54,    -1,    56,
    57,   918,    48,    -1,    -1,   922,   923,    -1,    -1,  1461,
    56,    57,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
     4,     5,    -1,    80,     8,     9,  1478,  1479,    -1,    -1,
    14,    88,    -1,    90,    80,    -1,    93,    94,    -1,   605,
  1298,   607,    88,  1254,    28,    -1,    30,  1258,    -1,   966,
   967,    -1,    36,   619,    -1,   621,   622,    -1,   624,    -1,
    -1,    45,    -1,    -1,  1516,   631,    -1,    -1,    -1,   635,
    54,    -1,    56,    57,    58,    -1,    -1,  1417,    -1,    -1,
    -1,    -1,  1293,    -1,   650,    -1,     4,     5,    -1,    -1,
    -1,     9,    -1,    -1,  1546,    -1,  1307,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,     3,     4,     5,     6,   674,    93,
     9,    -1,    -1,    31,    -1,   681,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   689,   690,   691,   692,   693,   694,    47,
    -1,    -1,    31,    -1,    -1,    -1,    54,    -1,    56,    57,
    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    47,    -1,
    -1,    -1,    70,    -1,    -1,    54,    -1,    56,    57,    -1,
    -1,  1372,    80,    -1,    -1,  1376,    -1,    -1,    -1,    -1,
   736,    70,    90,    -1,   740,    93,    94,    -1,    -1,    -1,
    -1,    80,   748,   749,   750,   751,   752,  1398,  1399,    88,
   756,    90,    -1,    -1,    93,    94,    -1,    -1,  1650,    -1,
    -1,    -1,    -1,  1461,    70,    71,    72,    73,    74,    75,
    76,    77,    78,    79,    80,    81,    82,    83,    84,   785,
    -1,    -1,   788,    -1,   790,    -1,    -1,    -1,    -1,   795,
   796,    -1,   798,    -1,  1151,  1152,    -1,    -1,   804,    -1,
    -1,    -1,     1,    -1,   810,     4,     5,    -1,    -1,     8,
     9,   817,   818,   819,    -1,    14,    -1,    -1,    -1,  1176,
  1177,  1178,  1179,   829,    -1,    -1,    -1,    -1,  1185,    28,
    -1,    30,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,
    39,    -1,    -1,    -1,    -1,    -1,    45,    -1,    47,    -1,
    -1,  1208,  1209,    -1,    -1,    54,    -1,    56,    57,    -1,
    59,    -1,    -1,    -1,    63,    64,    65,    66,    67,    68,
    69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
    79,    80,    81,    82,    83,    -1,    -1,    86,    87,    88,
    -1,    -1,    91,    -1,    -1,    94,   902,   903,    -1,    -1,
   906,    -1,    -1,   909,    -1,    -1,    -1,    -1,   914,    -1,
    -1,   110,   918,    -1,   920,    -1,   922,   923,   924,    -1,
    -1,    -1,   928,    -1,   930,    -1,     3,     4,     5,     6,
    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
    81,    82,    83,    84,    -1,  1302,  1303,  1304,  1305,    -1,
    -1,    -1,  1309,    -1,    -1,    -1,   962,    -1,   964,    -1,
   966,   967,   968,     4,    41,    -1,    -1,    -1,    -1,    -1,
    -1,    48,    -1,    14,    -1,    -1,    -1,   193,   194,    56,
    57,    -1,    23,    24,    -1,    -1,    -1,    -1,    -1,    30,
    31,    -1,    33,    -1,    35,     3,     4,     5,     6,    -1,
    -1,    42,    -1,    80,    -1,  1011,    -1,    -1,    -1,    -1,
    -1,    88,    -1,    -1,    55,    -1,    57,    -1,  1024,  1025,
  1026,  1027,    -1,    31,    65,    -1,    -1,    -1,    -1,    -1,
    -1,    72,    -1,    41,    -1,  1041,    -1,    -1,  1044,    47,
    -1,    -1,    -1,    84,    -1,    -1,    54,  1053,    56,    57,
    -1,    -1,    -1,     3,     4,     5,     6,    -1,  1415,  1416,
  1066,  1418,    70,    -1,    -1,    -1,    -1,    -1,  1074,    -1,
    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    88,  1087,    90,  1089,    -1,    93,    94,    -1,    -1,    -1,
    -1,    41,    -1,    -1,    -1,   136,    -1,    -1,    48,   140,
   141,    -1,    -1,    -1,    -1,   146,    56,    57,   149,   150,
   151,  1117,    -1,    -1,    -1,    -1,  1122,  1123,    -1,  1125,
    -1,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,    -1,
    80,    -1,    -1,    -1,   175,   176,    -1,    -1,    88,    -1,
    -1,    -1,  1148,  1500,  1501,  1151,  1152,  1153,    -1,    -1,
    -1,    -1,   193,   194,   195,     3,     4,     5,     6,     7,
     8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,  1175,
  1176,  1177,  1178,  1179,  1180,  1181,    -1,    -1,    -1,  1185,
    28,   222,    30,    31,    32,    -1,    -1,    -1,    36,    -1,
    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,
    48,    -1,  1208,  1209,  1210,    -1,    54,    -1,    56,    57,
    -1,    -1,    -1,    -1,  1220,  1221,  1222,  1223,   259,    -1,
    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,  1244,    -1,
    88,    -1,    -1,  1249,    -1,    93,  1252,    -1,    -1,    -1,
    98,    -1,    -1,    -1,    -1,   471,   297,   298,   474,    -1,
   476,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   488,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
    -1,    -1,    -1,    14,    -1,  1301,  1302,  1303,  1304,  1305,
  1306,   342,    -1,  1309,    -1,   346,    -1,   348,   349,   350,
    31,    -1,    -1,    -1,   355,    36,    -1,    -1,   359,    -1,
    41,    -1,    -1,    -1,    45,    -1,    47,    -1,    -1,    -1,
    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,  1345,
  1346,  1347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
    -1,    -1,   393,    -1,     3,     4,     5,     6,  1364,    80,
     9,   402,    -1,   404,   405,    -1,    -1,    88,    -1,    90,
     4,     5,    93,    94,     8,     9,    -1,    -1,   419,    -1,
    14,   422,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    41,   434,    28,    -1,    30,    -1,    47,    -1,
    -1,   442,    36,    -1,    -1,    54,    -1,    56,    57,  1415,
  1416,    45,  1418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    54,    70,    56,    57,    -1,    -1,    -1,    -1,    -1,   470,
   471,    80,    -1,   474,    -1,   476,   477,   478,   479,    88,
    -1,    90,   483,    -1,    93,    94,    -1,   488,    -1,    -1,
   491,    -1,    -1,    -1,    -1,  1461,    -1,    -1,    -1,    -1,
     4,     5,    -1,     7,     8,     9,   507,   508,    12,    -1,
    14,     3,     4,     5,     6,    -1,    -1,     9,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    -1,    30,    31,    -1,    -1,
    -1,    -1,    36,    -1,  1500,  1501,  1502,  1503,    -1,    31,
    -1,    45,    -1,    -1,   545,   546,   547,   548,    -1,    41,
    54,    -1,    56,    57,    -1,    47,    -1,    -1,    -1,    -1,
    -1,    -1,    54,    -1,    56,    57,  1532,  1533,  1534,    -1,
    -1,    -1,   748,   749,   750,   751,    -1,    -1,    70,    -1,
   756,    -1,    -1,    -1,    -1,    -1,  1552,  1553,    80,    -1,
    -1,    -1,  1558,    -1,    -1,    -1,    88,    -1,    90,    -1,
    -1,    93,    94,    -1,   605,    -1,   607,    72,    73,    74,
    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
   621,   622,    -1,   624,    -1,    -1,    -1,    -1,    -1,    -1,
   631,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
    -1,    -1,    -1,   644,    14,    -1,    -1,    -1,    -1,   650,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,
    30,    31,    32,    -1,    -1,    -1,    36,    -1,    -1,    -1,
    -1,    41,    -1,   674,    -1,    45,    -1,    -1,    48,    -1,
    -1,   682,    -1,    -1,    54,    -1,    56,    57,   689,   690,
   691,   692,   693,   694,    -1,    -1,    -1,    -1,    -1,    -1,
    70,    -1,    -1,     3,     4,     5,     6,    -1,    -1,     9,
    80,    -1,    -1,    -1,    -1,    -1,   717,    -1,    88,    -1,
    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    98,    -1,
    -1,    31,    -1,    -1,    -1,   736,    -1,    -1,    -1,   740,
    -1,    41,    -1,    -1,    -1,    -1,    -1,   748,   749,   750,
   751,   752,    -1,    -1,    54,   756,    56,    57,     4,     5,
    -1,    -1,    -1,     9,    -1,    -1,    -1,    -1,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    80,    -1,    -1,    -1,   785,    31,    -1,   788,    88,   790,
   966,   967,    -1,    93,   795,   796,    -1,   798,    -1,    -1,
    -1,    47,    -1,   804,    -1,    -1,    -1,    -1,    54,   810,
    56,    57,    -1,    -1,    -1,    -1,   817,   818,   819,    -1,
    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,   829,    -1,
    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    90,    -1,    -1,    93,    94,  1025,
  1026,  1027,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
     5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    28,    -1,    30,    31,    -1,    -1,    -1,
    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,
    45,   902,   903,    48,    -1,   906,    -1,    -1,   909,    54,
    -1,    56,    57,   914,    -1,    60,    -1,   918,    -1,   920,
    -1,   922,   923,   924,    -1,    70,    -1,   928,    -1,   930,
    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    88,     3,     4,     5,     6,    93,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
    -1,   962,    -1,   964,    -1,   966,   967,   968,    -1,    28,
    29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
  1176,  1177,  1178,  1179,    -1,    -1,    -1,    -1,    67,  1185,
  1011,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,  1024,  1025,  1026,  1027,    86,    87,    88,
    -1,    90,  1208,  1209,    93,    94,    -1,    -1,  1039,    -1,
  1041,    -1,    -1,  1044,  1220,  1221,    -1,    -1,    -1,    -1,
    -1,   110,  1053,     3,     4,     5,     6,    -1,    -1,     9,
    -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,    -1,
     9,    -1,    -1,  1074,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    31,     4,     5,    -1,    -1,  1087,     9,  1089,    -1,
    -1,    41,    31,    -1,    -1,    -1,    -1,    47,    -1,    -1,
    -1,    -1,    41,    -1,    54,    -1,    56,    57,    -1,    31,
    -1,    -1,    -1,    -1,    -1,    54,  1117,    56,    57,    -1,
    70,  1122,  1123,    -1,  1125,    47,  1302,  1303,  1304,  1305,
    80,    70,    54,  1309,    56,    57,    -1,    -1,    88,    -1,
    90,    80,    -1,    93,    94,    -1,    -1,  1148,    70,    88,
  1151,  1152,  1153,    -1,    93,    -1,    -1,    -1,    80,     3,
     4,     5,     6,     7,     8,     9,    -1,    -1,    90,    -1,
    14,    93,    94,    -1,  1175,  1176,  1177,  1178,  1179,  1180,
  1181,    -1,    -1,    -1,  1185,    -1,    -1,    31,    -1,    -1,
    -1,  1192,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    -1,    45,    -1,    47,    -1,    -1,    -1,  1208,  1209,  1210,
    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,  1220,
  1221,  1222,  1223,    -1,    -1,    -1,    70,    -1,  1229,    -1,
     4,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,  1415,
  1416,    -1,  1418,  1244,    88,    -1,    90,    -1,  1249,    93,
    94,  1252,    -1,    -1,    -1,    -1,    30,    31,    -1,    33,
    -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    55,     1,    57,     3,     4,     5,     6,     7,     8,
     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,
  1301,  1302,  1303,  1304,  1305,  1306,    80,    -1,  1309,    28,
    -1,    30,    31,    32,    -1,    -1,    -1,    36,    37,    -1,
    -1,    -1,    41,    -1,  1500,  1501,    45,    46,    -1,    48,
    -1,    -1,    -1,  1334,    -1,    54,    -1,    56,    57,    -1,
    -1,    60,    -1,    62,  1345,  1346,  1347,    -1,    -1,    -1,
    -1,    70,    -1,    -1,    -1,    -1,  1532,  1533,    -1,   133,
   134,    80,   136,  1364,    -1,    -1,   140,   141,    -1,    88,
   144,    -1,   146,    -1,    93,   149,   150,   151,    -1,    -1,
    -1,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   109,   165,    -1,    -1,    -1,   169,    -1,    -1,    -1,    -1,
    -1,   175,   176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1415,  1416,    -1,  1418,    -1,   193,
   194,   195,    -1,    -1,    -1,    -1,    -1,    -1,     1,   203,
     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,   222,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
  1461,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,   259,    -1,    -1,    61,     3,
     4,     5,     6,    -1,    67,     9,    -1,    70,    -1,  1500,
  1501,  1502,  1503,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,    -1,    31,    -1,    -1,
    93,    -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    -1,  1532,  1533,  1534,    -1,   108,    -1,   110,    -1,    -1,
    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1552,  1553,    -1,    -1,   329,    70,  1558,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,
    -1,    -1,   346,    -1,    88,    -1,    -1,    -1,    -1,    93,
   354,    -1,    -1,    -1,    -1,   359,    -1,    -1,    -1,    -1,
     3,     4,     5,     6,     7,     8,     9,    -1,    -1,    12,
     4,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    31,   393,
    -1,    -1,    -1,    36,    -1,    -1,    30,    31,    41,    33,
   404,    35,    45,    -1,    47,    -1,    -1,    -1,    42,    -1,
    -1,    54,    -1,    56,    57,   419,    -1,    -1,   422,    -1,
    -1,    55,    -1,    57,   428,   429,   430,    70,    -1,    -1,
   434,    -1,    -1,    -1,    -1,    -1,    -1,    80,   442,    -1,
    -1,    -1,    -1,    -1,    -1,    88,    -1,    90,     4,     5,
    93,    94,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   470,   471,    -1,    -1,
   474,    -1,   476,   477,   478,   479,    -1,    -1,    -1,   483,
    36,    -1,    -1,    -1,   488,    -1,    -1,   491,    -1,    45,
    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
    56,    57,   136,    -1,   508,    -1,   140,   141,    -1,    -1,
    -1,    -1,   146,    -1,    70,   149,   150,   151,    -1,    -1,
    -1,    -1,     4,     5,    80,     7,     8,     9,    -1,    -1,
    12,   165,    14,   537,    90,   169,   540,    93,    94,    -1,
    -1,   175,   176,    -1,    -1,    -1,    28,    -1,    30,    31,
    -1,   555,   556,   557,    36,    -1,    -1,    -1,    -1,   193,
   194,   195,    -1,    45,    -1,    -1,   570,    -1,    -1,    -1,
    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
    -1,    -1,     1,    -1,     3,     4,     5,     6,   222,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,   618,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,   259,    45,   631,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
    -1,    -1,    61,    -1,    -1,    -1,   650,    -1,    67,    -1,
    -1,    70,     4,     5,    -1,    -1,     8,     9,    -1,    78,
    79,    80,    14,    -1,    -1,    -1,    -1,    86,    87,    88,
   674,    -1,    -1,    -1,    93,    94,    28,   681,    30,    -1,
    -1,    -1,    -1,    -1,    36,   689,   690,   691,   692,    -1,
   109,   110,    -1,    45,    -1,    47,    -1,    -1,    -1,    -1,
    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
    -1,    -1,     3,     4,     5,     6,    -1,    -1,    70,    -1,
    -1,   355,    -1,    -1,    -1,   359,    -1,    -1,    80,    -1,
    -1,    -1,   736,    -1,    -1,    -1,   740,    -1,    90,    -1,
    31,    93,    94,    -1,   748,   749,   750,   751,   752,    -1,
    41,    -1,   756,    -1,    -1,    -1,    47,    -1,    -1,    -1,
    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,
   404,    33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
    -1,    -1,    -1,    -1,   788,   419,   790,    -1,   422,    80,
    -1,   795,   796,    55,   798,    -1,    -1,    88,    -1,    90,
   434,    -1,    93,    94,    -1,    -1,    -1,    -1,   442,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   823,
    -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,     4,
     5,    -1,     7,     8,     9,    -1,   470,   471,    -1,    14,
   474,    -1,   476,   477,   478,     3,     4,     5,     6,   483,
    -1,     9,    31,    28,   488,    30,    31,   491,    -1,    -1,
    -1,    36,    41,    -1,    -1,    -1,    -1,    -1,    47,    -1,
    45,    -1,    -1,    31,   508,    54,    -1,    56,    57,    54,
    -1,    56,    57,    41,    -1,    -1,    -1,   149,   150,   151,
    -1,    70,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
    -1,    90,    70,   175,    93,    94,    -1,    -1,   922,   923,
   924,    -1,    80,    -1,   928,   929,    -1,    -1,    -1,    -1,
    88,   193,   194,   195,    -1,    93,    -1,    -1,     3,     4,
     5,     6,    -1,     1,     9,     3,     4,     5,     6,     7,
     8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,
   222,    -1,   966,   967,   968,    -1,    31,    -1,    -1,   973,
    28,    -1,    30,    31,    32,    -1,    41,    -1,    36,    37,
    -1,    -1,    -1,    41,    -1,   619,    -1,    45,    46,    54,
    48,    56,    57,    -1,    -1,    -1,    54,    -1,    56,    57,
    -1,    -1,    60,    -1,    62,    70,    -1,  1011,    -1,    -1,
    -1,    -1,    70,    -1,    -1,    80,   650,    -1,    -1,    -1,
    -1,    -1,    80,    88,    -1,    -1,    -1,    -1,    93,    -1,
    88,    -1,    -1,    -1,    -1,    93,   298,    -1,    -1,    -1,
  1044,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
    12,   109,    14,    -1,    -1,   689,   690,   691,   692,    -1,
    -1,  1065,    -1,    -1,    -1,    -1,    28,    -1,    30,    31,
  1074,    -1,    -1,    -1,    36,    -1,    -1,     4,     5,    41,
    -1,    -1,     9,    45,    -1,    47,   348,   349,   350,    -1,
    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
    -1,    -1,   736,    -1,    31,    -1,   740,    -1,    70,    -1,
    -1,    -1,    -1,    -1,   748,   749,    -1,    -1,    80,    -1,
    47,    -1,   756,    -1,    -1,    -1,    88,    54,    90,    56,
    57,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   404,    70,  1148,    -1,    -1,  1151,  1152,  1153,
  1154,    -1,    -1,    80,   788,    -1,   790,    -1,    -1,    -1,
    -1,   795,   796,    90,   798,    -1,    93,    94,    -1,    -1,
    -1,  1175,  1176,  1177,  1178,  1179,  1180,  1181,    -1,  1183,
    -1,  1185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    -1,    -1,     9,    -1,  1208,  1209,  1210,    -1,   470,   471,
    -1,    -1,   474,    -1,   476,   477,   478,   479,    -1,    -1,
    -1,   483,    -1,    -1,    31,    -1,   488,     4,     5,   491,
     7,     8,     9,    -1,    41,    12,    -1,    14,    -1,    -1,
  1244,    -1,    -1,    -1,    -1,  1249,    -1,    54,  1252,    56,
    57,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,
    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    45,    -1,
    47,    -1,    -1,    80,    -1,    -1,    -1,    54,    -1,    56,
    57,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    -1,    -1,    -1,    70,    -1,    -1,   930,  1301,  1302,  1303,
  1304,  1305,  1306,    80,    -1,  1309,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    90,    -1,    -1,    93,    94,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   966,   967,   968,    -1,    -1,    -1,    -1,    -1,
    -1,  1345,  1346,  1347,    -1,   607,    -1,    -1,     4,     5,
    -1,     7,     8,     9,    -1,    -1,    12,    -1,    14,   621,
   622,    -1,   624,    -1,     3,     4,     5,     6,    -1,   631,
     9,    55,    28,    -1,    30,    31,    -1,  1011,    -1,    -1,
    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   650,    45,
    -1,    47,    31,    -1,    -1,    -1,    80,    -1,    54,    83,
    56,    57,    41,    -1,    -1,   107,   108,    -1,    -1,    -1,
  1044,    -1,    -1,    -1,    70,    54,    -1,    56,    57,    -1,
   104,    -1,   106,    -1,    80,    -1,    -1,   689,    -1,   691,
   692,    70,   694,    -1,    90,    -1,    -1,    93,    94,    -1,
  1074,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
    -1,     4,     5,    -1,    93,     8,     9,  1461,    -1,    -1,
    -1,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   736,    28,    -1,    30,    -1,    -1,
    -1,    -1,    -1,    36,    -1,    -1,   748,   749,   750,   751,
   752,   175,    45,    -1,   756,    -1,     3,     4,     5,     6,
    -1,    54,     9,    56,    57,    -1,    -1,    -1,    -1,   193,
   194,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,
    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,  1532,  1533,
  1534,    -1,    -1,   795,    41,    -1,    -1,    -1,   222,    -1,
    -1,  1175,  1176,  1177,  1178,  1179,  1180,    54,    -1,    56,
    57,  1185,    -1,    -1,  1558,   817,   818,   819,    -1,    -1,
    -1,    -1,    -1,    70,   248,    -1,    -1,   829,    -1,    -1,
    -1,    -1,    -1,    80,  1208,  1209,  1210,    -1,   262,    -1,
    -1,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
     6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,
  1244,    -1,    -1,    -1,    -1,  1249,    -1,    -1,  1252,    -1,
    -1,    -1,    28,    -1,    30,    31,    -1,   329,    -1,    -1,
    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,
   902,   903,    -1,    -1,   906,    -1,    -1,   909,    54,    -1,
    56,    57,    -1,    -1,    60,    -1,   918,    -1,    -1,    -1,
   922,   923,   924,    -1,    70,    -1,   928,    -1,  1302,  1303,
   354,   355,    -1,    -1,    80,  1309,    -1,    -1,    -1,    -1,
    -1,    -1,    88,     3,     4,     5,     6,    93,     1,    -1,
     3,     4,     5,     6,     7,     8,     9,    -1,    -1,    -1,
   402,    14,    -1,    -1,   966,   967,   968,    -1,    -1,    -1,
    -1,  1345,  1346,  1347,    27,    28,    -1,    30,    31,    32,
   404,    41,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,
    -1,    44,    45,    46,    54,    48,    56,    57,    -1,    -1,
    -1,    54,    62,    56,    57,    -1,    -1,    60,    -1,  1011,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
    80,    -1,    -1,  1025,  1026,  1027,   468,    80,    88,    -1,
    -1,    -1,    -1,    93,    -1,    88,    -1,    -1,    -1,    -1,
    93,    -1,  1044,    -1,    -1,    98,   470,   471,    -1,    -1,
   474,    -1,   476,   477,   478,   479,    -1,    -1,    -1,   483,
    -1,    -1,    -1,    -1,   488,    -1,    -1,   491,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
     3,     4,     5,     6,     7,     8,     9,  1461,    -1,    -1,
    -1,    14,    -1,    -1,    -1,   537,    -1,    -1,   540,    -1,
    -1,    -1,   544,   545,   546,   547,   548,    -1,    31,    -1,
    -1,    -1,    -1,    36,    41,   557,    -1,    -1,    41,    -1,
  1122,  1123,    45,  1125,    47,    -1,    -1,    54,   570,    56,
    57,    54,    -1,    56,    57,    62,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    70,    -1,    -1,  1148,    70,    -1,  1151,
  1152,  1153,    -1,    80,    -1,    -1,    -1,    80,  1532,  1533,
  1534,    88,    -1,    -1,    -1,    88,    93,    -1,    -1,    -1,
    93,    -1,    -1,  1175,  1176,  1177,  1178,  1179,  1180,  1181,
    -1,    -1,   624,  1185,  1558,    -1,    -1,    -1,    -1,   631,
    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    -1,    -1,     3,     4,     5,     6,  1208,  1209,  1210,    -1,
   634,   635,    -1,    -1,    -1,    -1,    -1,    -1,  1220,  1221,
  1222,  1223,    -1,    -1,    31,    -1,   650,    -1,    -1,    14,
    31,    -1,    -1,    -1,    41,    -1,    -1,    -1,    23,    24,
    41,    -1,  1244,    -1,    -1,    30,    31,    54,    33,    56,
    57,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,
    -1,    -1,    -1,    70,    -1,   689,    -1,   691,   692,    70,
    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    80,
    65,    88,    -1,    -1,    -1,    -1,    93,    88,    -1,    -1,
    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,   740,  1301,
  1302,  1303,  1304,  1305,  1306,    -1,    -1,  1309,    -1,    -1,
    -1,    -1,   736,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   748,   749,   750,   751,   752,   753,
    -1,    -1,   756,    -1,    -1,    -1,    -1,    -1,    -1,   124,
    -1,   126,    -1,  1345,    -1,  1347,    -1,    -1,   133,   134,
    -1,    -1,    -1,    -1,    -1,   140,   141,    -1,   782,   144,
   145,   146,   804,   148,   149,   150,   151,    -1,   810,    -1,
    -1,   795,    69,    70,    71,    72,    73,    74,    75,    76,
    77,    78,    79,    80,    81,    82,    83,    84,   348,   349,
   350,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
     9,    -1,    -1,  1415,  1416,    14,  1418,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    -1,    30,    31,    32,    -1,    -1,   878,    36,    37,    -1,
    -1,    -1,    41,    -1,    -1,    -1,    45,    46,    -1,    48,
    -1,    -1,    -1,   238,   239,    54,    -1,    56,    57,  1461,
    -1,    60,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    70,   914,    -1,   259,    -1,    -1,    -1,   920,    -1,
    -1,    80,   924,    -1,    -1,    -1,    -1,    -1,    -1,    88,
    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,  1500,  1501,
  1502,  1503,    -1,    -1,    -1,   929,   930,   931,    -1,    -1,
   109,    -1,    -1,   298,    -1,    -1,    -1,    -1,    -1,    -1,
   962,    -1,   964,    -1,    -1,    -1,   968,    -1,    -1,    -1,
  1532,  1533,  1534,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   966,   967,   968,    -1,    -1,    -1,    -1,   973,
  1552,    -1,    -1,    -1,    -1,    -1,  1558,    -1,    -1,    -1,
    -1,   346,    -1,   348,   349,    -1,    -1,    -1,    -1,  1011,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1024,    -1,    -1,    -1,    -1,  1011,    -1,    -1,
    -1,    -1,  1034,    -1,    -1,    -1,    -1,    -1,    -1,  1041,
    -1,  1025,  1026,  1027,    -1,    -1,    -1,    -1,   393,    -1,
    -1,  1053,     3,     4,     5,     6,     3,     4,     5,     6,
  1044,    -1,    -1,    -1,    -1,    -1,    -1,   412,    -1,    -1,
    -1,    -1,    -1,    -1,   419,    -1,    -1,   422,    -1,    -1,
    31,  1065,    -1,    -1,    31,  1087,    -1,  1089,    -1,   434,
    41,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    -1,   621,   622,    54,   624,    56,    57,    54,    -1,    56,
    57,   631,    -1,    -1,    -1,  1117,    -1,    -1,    -1,    70,
    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    80,
    -1,    -1,    -1,    80,    -1,    -1,    -1,    88,    -1,    -1,
    -1,    88,    93,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    -1,  1153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   505,    -1,   507,    -1,    -1,    -1,    -1,    -1,    -1,   689,
  1154,   691,   692,    -1,   694,    -1,    -1,    -1,  1180,     3,
     4,     5,     6,     7,     8,     9,   531,    -1,    12,    -1,
    14,  1175,  1176,  1177,  1178,  1179,  1180,  1181,    -1,  1183,
    -1,  1185,    -1,    -1,    28,    -1,    30,    31,  1210,    -1,
    -1,    -1,    36,    -1,    -1,    -1,   736,    41,    -1,    -1,
    -1,    45,    -1,    47,  1208,  1209,  1210,    -1,    -1,    -1,
    54,    -1,    56,    57,    -1,    -1,  1220,  1221,  1222,  1223,
    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,     3,
     4,     5,     6,    -1,    -1,    -1,    80,    -1,    -1,    -1,
  1244,    -1,   607,    -1,    88,    -1,    90,    -1,    -1,    93,
    94,    -1,    -1,   618,   619,    -1,   621,   622,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,     3,
     4,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    54,    -1,    56,    57,  1306,    -1,    -1,    -1,    62,   829,
    -1,    -1,    -1,    -1,    -1,    -1,    70,  1301,  1302,  1303,
  1304,  1305,  1306,    -1,    -1,  1309,    80,    41,    -1,   674,
    -1,    -1,    -1,    -1,    88,    -1,   681,   682,    -1,    93,
    54,    -1,    56,    57,    -1,    -1,    60,    -1,   693,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
    -1,  1345,  1364,  1347,    -1,    -1,    80,    -1,    -1,    -1,
    -1,    -1,   717,    -1,    88,    -1,    -1,    31,    -1,    93,
    -1,    -1,   902,   903,    -1,    -1,   906,    -1,    -1,   909,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
    -1,    -1,   922,   923,   924,    -1,    -1,    -1,   928,    63,
    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
    84,  1415,  1416,  1417,  1418,    -1,    -1,   782,    -1,    -1,
   785,    -1,    -1,    -1,    -1,    -1,   966,   967,   968,    -1,
    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,
    -1,    -1,   817,   818,   819,    -1,    -1,  1461,    -1,    28,
    -1,    30,    31,    32,   829,    -1,    -1,    36,    37,    -1,
    -1,  1011,    41,    -1,    -1,    -1,    45,    46,    -1,    48,
  1502,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,
    -1,    60,    -1,    62,    -1,    -1,  1500,  1501,  1502,  1503,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    80,  1534,    -1,    -1,    -1,    -1,    -1,    -1,    88,
    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,  1532,  1533,
  1534,  1553,    -1,    -1,     4,     5,    -1,   902,   903,     9,
   109,   906,    -1,    -1,   909,    -1,    -1,    -1,  1552,    -1,
    -1,    -1,    -1,   918,  1558,    -1,    -1,    -1,    -1,    -1,
    -1,    31,    -1,   928,    -1,     3,     4,     5,     6,     7,
     8,     9,    -1,    -1,    12,    -1,    14,    47,    -1,    -1,
    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
    70,    -1,    -1,    41,    -1,    -1,    -1,    45,  1148,    -1,
    80,  1151,  1152,  1153,    -1,    -1,    54,    -1,    56,    57,
    90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    70,    -1,    -1,  1175,  1176,  1177,  1178,  1179,
  1180,  1181,    80,    -1,     1,  1185,     3,     4,     5,     6,
    88,     8,     9,    10,    11,    93,    13,    14,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1208,  1209,
  1210,    28,    29,    30,  1039,    32,    -1,    34,    35,    36,
    -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
    57,  1066,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    12,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   110,    -1,    -1,    -1,  1122,  1123,    -1,
  1125,  1301,  1302,  1303,  1304,  1305,  1306,    -1,    -1,  1309,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1148,    -1,    -1,  1151,  1152,    62,    63,
    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1192,    -1,    -1,
    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
     8,     9,    -1,    -1,    12,    -1,    14,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    -1,    27,
    -1,    -1,    -1,    31,  1229,    -1,    -1,    -1,    36,    -1,
    -1,    -1,    -1,    41,    -1,  1415,  1416,    45,  1418,    47,
    -1,    -1,  1247,    -1,  1249,    -1,    54,    -1,    56,    57,
    58,    59,    60,    -1,    62,    63,    64,    65,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    88,    -1,    90,    91,    92,    93,    94,    95,    -1,    97,
    -1,    -1,    -1,    -1,   102,    -1,    -1,    -1,    -1,   107,
   108,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1500,  1501,  1502,  1503,    -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,    -1,    34,    35,
    36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
    46,    -1,  1552,    49,    50,    51,    52,    53,    54,    -1,
    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    95,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   109,   110,     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,    -1,    34,    35,
    36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
    46,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    86,    87,    88,    -1,    -1,    -1,    -1,    93,     1,    95,
     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    13,    14,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    -1,    45,    -1,    47,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,    -1,
    93,    94,     1,    -1,     3,     4,     5,     6,     7,     8,
     9,    10,    11,    12,    13,    14,    -1,   110,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
    -1,    90,    -1,    -1,    93,    94,     1,    -1,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,
    35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
    -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,
    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
     4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,
    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
    -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,
     3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
    13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,
    93,    94,     1,    -1,     3,     4,     5,     6,    -1,     8,
     9,    10,    11,    -1,    13,    14,    -1,   110,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
   109,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,
    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,   109,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
    -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
    57,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
    87,    88,    -1,    -1,    -1,    -1,    93,    -1,     1,    -1,
     3,     4,     5,     6,   101,     8,     9,    10,    11,    -1,
    13,    14,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,
    93,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,
    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
    52,    53,    54,    -1,    56,    57,    58,    -1,    -1,    61,
    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
     1,    93,     3,     4,     5,     6,    -1,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    60,
    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
    -1,     1,    93,     3,     4,     5,     6,    -1,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,   108,    -1,
   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,
    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
    -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
    87,    88,     3,     4,     5,     6,    93,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
   111,     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,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
    42,    43,    44,    45,    46,    -1,    -1,    49,    50,    51,
    52,    53,    54,    -1,    56,    57,    58,    -1,    60,    61,
    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
    -1,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,   110,     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,    -1,
    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
    44,    45,    46,    -1,    -1,    49,    50,    51,    52,    53,
    54,    -1,    56,    57,    58,    -1,    60,    61,    -1,    -1,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
    -1,    95,    -1,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    -1,    13,    14,    15,   110,    17,    18,    19,
    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    44,    45,    46,    -1,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
    60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
    -1,    -1,    -1,    93,    -1,    95,    -1,     3,     4,     5,
     6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
   110,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
    36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
    46,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
    56,    57,    -1,    -1,    60,    61,    -1,    -1,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    95,
     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    13,    14,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
    -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
    43,    -1,    45,    -1,    47,    -1,    49,    50,    51,    52,
    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,
    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
    -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,    -1,
    93,    94,     3,     4,     5,     6,     7,     8,     9,    10,
    11,    12,    13,    14,    -1,    -1,    -1,   110,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
    31,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    90,
    -1,    -1,    93,    94,     3,     4,     5,     6,    -1,     8,
     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,   110,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
    29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
    39,    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,
    49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
    -1,    90,    -1,    -1,    93,    94,     3,     4,     5,     6,
    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
    -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
    87,    88,     3,     4,     5,     6,    93,     8,     9,    10,
    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,
    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    60,
    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
    -1,    -1,    93,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
     4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   110,    -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,
    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
    54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
    -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
    88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
    -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
     6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
    36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
     4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
    94,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,   110,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
    -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
     6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
    36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
    30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
    50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
     4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
    34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
    -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
    28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
    38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
    -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
    88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
    32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    67,    -1,     1,    70,     3,
     4,     5,     6,     7,     8,     9,    78,    79,    80,    -1,
    14,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
    -1,    93,    -1,    -1,    28,    -1,    30,    31,    32,    -1,
    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,   110,    -1,
    -1,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
    54,    -1,    56,    57,    -1,    -1,    60,    -1,    62,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    70,     3,     4,     5,
     6,     7,     8,     9,    -1,    -1,    80,    -1,    14,    -1,
    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    93,
    -1,    -1,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,
    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,
    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
    56,    57,     3,     4,     5,     6,     7,     8,     9,    -1,
    -1,    -1,    -1,    14,    70,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    80,    -1,    -1,    28,    -1,    30,
    31,    -1,    88,    -1,    90,    36,    -1,    93,    94,    -1,
    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    -1,
    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
     3,     4,     5,     6,     7,     8,     9,    -1,    -1,    80,
    -1,    14,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,
    -1,    -1,    93,    -1,    -1,    28,    -1,    30,    31,    -1,
    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,
    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    54,    -1,    56,    57,    -1,    -1,    60,    -1,     3,
     4,     5,     6,     7,     8,     9,    -1,    70,    -1,    -1,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    88,    30,    31,    -1,    -1,
    93,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    54,    -1,    56,    57,     3,     4,     5,     6,     7,     8,
     9,    -1,    -1,    -1,    -1,    14,    70,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    28,
    -1,    30,    31,    -1,    88,    -1,    -1,    36,    -1,    93,
    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,     4,
     5,    -1,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    80,    -1,    28,    -1,    30,    31,    -1,    -1,    88,
    -1,    36,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
    45,    -1,    -1,    48,    -1,    -1,    -1,    -1,    -1,    54,
    -1,    56,    57,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    80,    81,    82,    83,    84,    63,    64,    65,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    -1,    -1,    -1,
    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,   107,
    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
    83,    84,    62,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    80,    81,    82,    83,    84,    63,    64,    65,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    63,    64,    65,
    66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
    76,    77,    78,    79,    80,    81,    82,    83,    84,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    78,    79,    80,    81,    82,    83,    84,    68,    69,    70,
    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
    81,    82,    83,    84
};
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "/usr/cygnus/gnupro-98r2/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(TO,FROM,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 (to, from, count)
     char *to;
     char *from;
     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 *to, char *from, int count)
{
  register char *f = from;
  register char *t = to;
  register int i = count;

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

#endif
#endif

#line 196 "/usr/cygnus/gnupro-98r2/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
#ifdef __cplusplus
#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
#define YYPARSE_PARAM_DECL
#else /* not __cplusplus */
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
#endif /* not __cplusplus */
#else /* not YYPARSE_PARAM */
#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
#endif /* not YYPARSE_PARAM */

int
yyparse(YYPARSE_PARAM_ARG)
     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 *)yyss, (char *)yyss1, size * sizeof (*yyssp));
      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
      __yy_memcpy ((char *)yyls, (char *)yyls1, 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 343 "parse.y"
{ finish_translation_unit (); ;
    break;}
case 3:
#line 351 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 4:
#line 353 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 5:
#line 355 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 8:
#line 364 "parse.y"
{ have_extern_spec = 1;
		  used_extern_spec = 0;
		  yyval.ttype = NULL_TREE; ;
    break;}
case 9:
#line 369 "parse.y"
{ have_extern_spec = 0; ;
    break;}
case 10:
#line 374 "parse.y"
{ yyval.itype = pedantic;
		  pedantic = 0; ;
    break;}
case 12:
#line 383 "parse.y"
{ if (pending_lang_change) do_pending_lang_change(); ;
    break;}
case 13:
#line 385 "parse.y"
{ if (! toplevel_bindings_p () && ! pseudo_global_level_p())
		  pop_everything (); ;
    break;}
case 14:
#line 391 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 15:
#line 393 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 16:
#line 395 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 17:
#line 397 "parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
		  assemble_asm (yyvsp[-2].ttype); ;
    break;}
case 18:
#line 400 "parse.y"
{ pop_lang_context (); ;
    break;}
case 19:
#line 402 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 20:
#line 405 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 21:
#line 408 "parse.y"
{ push_namespace (yyvsp[-1].ttype); ;
    break;}
case 22:
#line 410 "parse.y"
{ pop_namespace (); ;
    break;}
case 23:
#line 412 "parse.y"
{ push_namespace (NULL_TREE); ;
    break;}
case 24:
#line 414 "parse.y"
{ pop_namespace (); ;
    break;}
case 26:
#line 417 "parse.y"
{ do_toplevel_using_decl (yyvsp[-1].ttype); ;
    break;}
case 28:
#line 420 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 29:
#line 425 "parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 30:
#line 427 "parse.y"
{
		  end_only_namespace_names ();
		  if (lastiddecl)
		    yyvsp[-1].ttype = lastiddecl;
		  do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
		;
    break;}
case 31:
#line 437 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 32:
#line 439 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 33:
#line 441 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 34:
#line 446 "parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 35:
#line 448 "parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
    break;}
case 36:
#line 450 "parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 37:
#line 455 "parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 38:
#line 457 "parse.y"
{
		  end_only_namespace_names ();
		  /* If no declaration was found, the using-directive is
		     invalid. Since that was not reported, we need the
		     identifier for the error message. */
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
		    yyvsp[-1].ttype = lastiddecl;
		  do_using_directive (yyvsp[-1].ttype);
		;
    break;}
case 39:
#line 470 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 40:
#line 476 "parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 43:
#line 487 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 44:
#line 489 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 45:
#line 494 "parse.y"
{ push_lang_context (yyvsp[0].ttype); ;
    break;}
case 46:
#line 496 "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 47:
#line 503 "parse.y"
{ begin_template_parm_list (); ;
    break;}
case 48:
#line 505 "parse.y"
{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
    break;}
case 49:
#line 507 "parse.y"
{ begin_specialization(); 
		  yyval.ttype = NULL_TREE; ;
    break;}
case 50:
#line 513 "parse.y"
{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 51:
#line 515 "parse.y"
{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 52:
#line 520 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 53:
#line 522 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 54:
#line 526 "parse.y"
{ yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 55:
#line 528 "parse.y"
{ yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
    break;}
case 56:
#line 533 "parse.y"
{ yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 57:
#line 545 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 58:
#line 547 "parse.y"
{ yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
    break;}
case 59:
#line 549 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 60:
#line 551 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
    break;}
case 61:
#line 553 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 62:
#line 555 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
		      && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
		      && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
		    {
		      error ("invalid default template argument");
		      yyvsp[0].ttype = error_mark_node;
		    }
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
		;
    break;}
case 63:
#line 569 "parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
    break;}
case 64:
#line 571 "parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
    break;}
case 65:
#line 576 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 66:
#line 578 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 67:
#line 580 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 68:
#line 582 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 69:
#line 585 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 70:
#line 588 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 72:
#line 594 "parse.y"
{;
    break;}
case 73:
#line 596 "parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
    break;}
case 74:
#line 598 "parse.y"
{ maybe_process_partial_specialization (yyvsp[-1].ftype.t);
		  note_got_semicolon (yyvsp[-1].ftype.t); ;
    break;}
case 76:
#line 605 "parse.y"
{;
    break;}
case 77:
#line 607 "parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
    break;}
case 78:
#line 609 "parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 80:
#line 612 "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 84:
#line 625 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 85:
#line 627 "parse.y"
{ yyval.itype = 1; ;
    break;}
case 91:
#line 643 "parse.y"
{ finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
    break;}
case 92:
#line 645 "parse.y"
{ 
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[0].itype, nested); 
		;
    break;}
case 93:
#line 651 "parse.y"
{ ;
    break;}
case 94:
#line 656 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 95:
#line 658 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 96:
#line 660 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 97:
#line 664 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 98:
#line 666 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 99:
#line 668 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 100:
#line 672 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 101:
#line 674 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 102:
#line 676 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 103:
#line 680 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 104:
#line 682 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 105:
#line 684 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 106:
#line 691 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 107:
#line 694 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 108:
#line 697 "parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 109:
#line 700 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 110:
#line 703 "parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 111:
#line 709 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 112:
#line 711 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 113:
#line 713 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 114:
#line 715 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 115:
#line 722 "parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs);
		 rest_of_mdef:
		  if (! yyval.ttype)
		    YYERROR1;
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  reinit_parse_for_method (yychar, yyval.ttype); ;
    break;}
case 116:
#line 733 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 117:
#line 736 "parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
    break;}
case 118:
#line 741 "parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
    break;}
case 119:
#line 746 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 120:
#line 749 "parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
    break;}
case 121:
#line 754 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 122:
#line 760 "parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 123:
#line 769 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 124:
#line 771 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 125:
#line 773 "parse.y"
{ store_return_init (yyval.ttype, NULL_TREE); ;
    break;}
case 126:
#line 778 "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 curley braces of a function.  These are needed
		     for correct operation of dwarfout.c.  */
		  keep_next_level ();
		;
    break;}
case 127:
#line 791 "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 128:
#line 811 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 129:
#line 813 "parse.y"
{ yyval.itype = 1; ;
    break;}
case 132:
#line 820 "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 133:
#line 826 "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 134:
#line 832 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 135:
#line 834 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 136:
#line 836 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 137:
#line 838 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 138:
#line 840 "parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
				      yyvsp[-1].ttype); ;
    break;}
case 139:
#line 843 "parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
				      void_type_node); ;
    break;}
case 151:
#line 869 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
		  yyungetc (';', 1); ;
    break;}
case 153:
#line 873 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 155:
#line 877 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 157:
#line 880 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 159:
#line 883 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
		  yyungetc (';', 1); ;
    break;}
case 161:
#line 888 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 163:
#line 892 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 165:
#line 895 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 167:
#line 900 "parse.y"
{ begin_explicit_instantiation(); ;
    break;}
case 168:
#line 903 "parse.y"
{ end_explicit_instantiation(); ;
    break;}
case 169:
#line 912 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 170:
#line 915 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 173:
#line 923 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 174:
#line 928 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 175:
#line 932 "parse.y"
{ 
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;

		  yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype, 
					     yychar == SCOPE);
		;
    break;}
case 177:
#line 943 "parse.y"
{
		  /* Handle `Class<Class<Type>>' without space in the `>>' */
		  pedwarn ("`>>' should be `> >' in template class name");
		  yyungetc ('>', 1);
		;
    break;}
case 178:
#line 952 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 180:
#line 958 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 181:
#line 960 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 182:
#line 965 "parse.y"
{ yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
    break;}
case 183:
#line 967 "parse.y"
{ yyval.ttype = lastiddecl; ;
    break;}
case 185:
#line 973 "parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 186:
#line 975 "parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 187:
#line 977 "parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 188:
#line 979 "parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 189:
#line 981 "parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 190:
#line 986 "parse.y"
{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
    break;}
case 192:
#line 992 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 193:
#line 996 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 194:
#line 1001 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 195:
#line 1005 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 196:
#line 1010 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 198:
#line 1013 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 199:
#line 1018 "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,
					  yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
		;
    break;}
case 200:
#line 1035 "parse.y"
{ 
		  cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
		  resume_momentary (yyvsp[-2].itype);
		  yyval.ttype = convert_from_reference (yyvsp[-1].ttype); 
		  if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
		    cp_error ("definition of array `%#D' in condition", yyval.ttype); 
		;
    break;}
case 206:
#line 1054 "parse.y"
{ yyval.ttype = begin_compound_stmt (1); ;
    break;}
case 207:
#line 1056 "parse.y"
{ finish_compound_stmt (1, yyvsp[-1].ttype); ;
    break;}
case 209:
#line 1063 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
		                  build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 210:
#line 1066 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
		                  build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 211:
#line 1069 "parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 212:
#line 1071 "parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 213:
#line 1076 "parse.y"
{ yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
    break;}
case 215:
#line 1082 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 216:
#line 1085 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 217:
#line 1088 "parse.y"
{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 218:
#line 1090 "parse.y"
{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 219:
#line 1092 "parse.y"
{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 220:
#line 1094 "parse.y"
{ yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 221:
#line 1097 "parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids `&&'");
  		  yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
    break;}
case 222:
#line 1101 "parse.y"
{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
    break;}
case 223:
#line 1103 "parse.y"
{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t));
		  check_for_new_type ("sizeof", yyvsp[-1].ftype); ;
    break;}
case 224:
#line 1106 "parse.y"
{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
    break;}
case 225:
#line 1108 "parse.y"
{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
		  check_for_new_type ("alignof", yyvsp[-1].ftype); ;
    break;}
case 226:
#line 1114 "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 227:
#line 1117 "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 228:
#line 1120 "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 229:
#line 1123 "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 230:
#line 1136 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
				  NULL_TREE, yyvsp[-4].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 231:
#line 1141 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 232:
#line 1145 "parse.y"
{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 233:
#line 1149 "parse.y"
{ yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 234:
#line 1153 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
    break;}
case 235:
#line 1155 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 236:
#line 1159 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 237:
#line 1163 "parse.y"
{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 238:
#line 1165 "parse.y"
{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 239:
#line 1175 "parse.y"
{ finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
    break;}
case 240:
#line 1178 "parse.y"
{ yyval.itype = begin_new_placement (); ;
    break;}
case 241:
#line 1182 "parse.y"
{ yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
    break;}
case 242:
#line 1184 "parse.y"
{ cp_pedwarn ("old style placement syntax, use () instead");
		  yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
    break;}
case 243:
#line 1190 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 244:
#line 1192 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 245:
#line 1194 "parse.y"
{
		  cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
		  yyval.ttype = error_mark_node;
		;
    break;}
case 246:
#line 1202 "parse.y"
{
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids initialization of new expression with `='");
		  if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
		      && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
		    yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 247:
#line 1216 "parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
		  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 248:
#line 1220 "parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); 
		  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 250:
#line 1228 "parse.y"
{ yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 251:
#line 1230 "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 253:
#line 1246 "parse.y"
{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 254:
#line 1248 "parse.y"
{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 255:
#line 1250 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 256:
#line 1252 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 257:
#line 1254 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 258:
#line 1256 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 259:
#line 1258 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 260:
#line 1260 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 261:
#line 1262 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 262:
#line 1264 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 263:
#line 1266 "parse.y"
{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 264:
#line 1268 "parse.y"
{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 265:
#line 1270 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 266:
#line 1272 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 267:
#line 1274 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 268:
#line 1276 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 269:
#line 1278 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 270:
#line 1280 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 271:
#line 1282 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 272:
#line 1284 "parse.y"
{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 273:
#line 1286 "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 274:
#line 1290 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 275:
#line 1292 "parse.y"
{ yyval.ttype = build_throw (NULL_TREE); ;
    break;}
case 276:
#line 1294 "parse.y"
{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
    break;}
case 277:
#line 1312 "parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 278:
#line 1314 "parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 284:
#line 1323 "parse.y"
{
		  /* If lastiddecl is a TREE_LIST, it's a baselink, which
		     means that we're in an expression like S::f<int>, so
		     don't do_identifier; we only do that for unqualified
		     identifiers.  */
		  if (lastiddecl && TREE_CODE (lastiddecl) != TREE_LIST)
		    yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE);
		  else
		    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 285:
#line 1336 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 286:
#line 1338 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 287:
#line 1343 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 288:
#line 1345 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 289:
#line 1348 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 294:
#line 1360 "parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 296:
#line 1370 "parse.y"
{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
    break;}
case 297:
#line 1372 "parse.y"
{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 298:
#line 1374 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 299:
#line 1379 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 300:
#line 1381 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 304:
#line 1391 "parse.y"
{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
    break;}
case 305:
#line 1396 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
		    yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
		  else 
		    yyval.ttype = finish_id_expr (yyvsp[0].ttype);
		;
    break;}
case 308:
#line 1405 "parse.y"
{
		  if (processing_template_decl)
		    push_obstacks (&permanent_obstack, &permanent_obstack);
		  yyval.ttype = combine_strings (yyval.ttype);
		  /* combine_strings doesn't set up TYPE_MAIN_VARIANT of
		     a const array the way we want, so fix it.  */
		  if (flag_const_strings)
		    TREE_TYPE (yyval.ttype) = build_cplus_array_type
		      (TREE_TYPE (TREE_TYPE (yyval.ttype)),
		       TYPE_DOMAIN (TREE_TYPE (yyval.ttype)));
		  if (processing_template_decl)
		    pop_obstacks ();
		;
    break;}
case 309:
#line 1419 "parse.y"
{ yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 310:
#line 1421 "parse.y"
{ yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
		  yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 311:
#line 1424 "parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 312:
#line 1426 "parse.y"
{ tree scope = current_scope ();
		  if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
		    {
		      error ("braced-group within expression allowed only inside a function");
		      YYERROR;
		    }
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids braced-groups within expressions");  
		  yyval.ttype = begin_stmt_expr (); 
		;
    break;}
case 313:
#line 1437 "parse.y"
{ yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 314:
#line 1442 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
    break;}
case 315:
#line 1444 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
    break;}
case 316:
#line 1446 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
    break;}
case 317:
#line 1448 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
    break;}
case 318:
#line 1450 "parse.y"
{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 319:
#line 1452 "parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
    break;}
case 320:
#line 1454 "parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
    break;}
case 321:
#line 1457 "parse.y"
{ yyval.ttype = finish_this_expr (); ;
    break;}
case 322:
#line 1459 "parse.y"
{
		  /* This is a C cast in C++'s `functional' notation
		     using the "implicit int" extension so that:
		     `const (3)' is equivalent to `const int (3)'.  */
		  tree type;

		  if (yyvsp[-1].ttype == error_mark_node)
		    {
		      yyval.ttype = error_mark_node;
		      break;
		    }

		  type = cp_build_qualified_type (integer_type_node,
						  cp_type_qual_from_rid (yyvsp[-3].ttype));
		  yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
		;
    break;}
case 324:
#line 1477 "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 325:
#line 1481 "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 326:
#line 1485 "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 327:
#line 1489 "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 328:
#line 1493 "parse.y"
{ yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
    break;}
case 329:
#line 1495 "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 330:
#line 1499 "parse.y"
{ yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
    break;}
case 331:
#line 1501 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 332:
#line 1503 "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 333:
#line 1511 "parse.y"
{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
    break;}
case 334:
#line 1513 "parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 335:
#line 1515 "parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 336:
#line 1517 "parse.y"
{ 
		  yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
		;
    break;}
case 337:
#line 1521 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 338:
#line 1523 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 339:
#line 1525 "parse.y"
{ yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 340:
#line 1527 "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 341:
#line 1532 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 342:
#line 1534 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 343:
#line 1536 "parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 344:
#line 1538 "parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 345:
#line 1541 "parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 346:
#line 1543 "parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 347:
#line 1545 "parse.y"
{
		  yyval.ttype = error_mark_node;
		;
    break;}
case 348:
#line 1590 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 349:
#line 1592 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 350:
#line 1597 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 351:
#line 1599 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 352:
#line 1604 "parse.y"
{ yyval.ttype = boolean_true_node; ;
    break;}
case 353:
#line 1606 "parse.y"
{ yyval.ttype = boolean_false_node; ;
    break;}
case 355:
#line 1613 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 356:
#line 1618 "parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  setup_vtbl_ptr ();
		  /* Always keep the BLOCK node associated with the outermost
		     pair of curley braces of a function.  These are needed
		     for correct operation of dwarfout.c.  */
		  keep_next_level ();
		;
    break;}
case 357:
#line 1631 "parse.y"
{ got_object = TREE_TYPE (yyval.ttype); ;
    break;}
case 358:
#line 1633 "parse.y"
{
		  yyval.ttype = build_x_arrow (yyval.ttype); 
		  got_object = TREE_TYPE (yyval.ttype);
		;
    break;}
case 359:
#line 1641 "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 360:
#line 1647 "parse.y"
{
		  resume_momentary (yyvsp[-1].itype);
		  note_list_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 361:
#line 1652 "parse.y"
{ resume_momentary (yyvsp[-1].itype); ;
    break;}
case 362:
#line 1654 "parse.y"
{
		  shadow_tag (yyvsp[-1].ftype.t);
		  note_list_got_semicolon (yyvsp[-1].ftype.t);
		;
    break;}
case 363:
#line 1659 "parse.y"
{ warning ("empty declaration"); ;
    break;}
case 364:
#line 1661 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 367:
#line 1675 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
					     NULL_TREE, NULL_TREE); ;
    break;}
case 368:
#line 1678 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
					     NULL_TREE); ;
    break;}
case 369:
#line 1685 "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 370:
#line 1688 "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 371:
#line 1691 "parse.y"
{ yyval.ftype.t = build_decl_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
					  yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 372:
#line 1695 "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 373:
#line 1698 "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 376:
#line 1714 "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 377:
#line 1717 "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 378:
#line 1720 "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 379:
#line 1723 "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 380:
#line 1726 "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 381:
#line 1729 "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 382:
#line 1736 "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 383:
#line 1741 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
    break;}
case 384:
#line 1743 "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 385:
#line 1748 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 386:
#line 1750 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 387:
#line 1769 "parse.y"
{ yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 388:
#line 1771 "parse.y"
{ yyval.ttype = hash_tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
    break;}
case 389:
#line 1773 "parse.y"
{ yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 390:
#line 1776 "parse.y"
{ if (extra_warnings && TREE_STATIC (yyval.ttype))
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
		  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
    break;}
case 391:
#line 1782 "parse.y"
{ yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 392:
#line 1784 "parse.y"
{ yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 393:
#line 1795 "parse.y"
{ yyval.ftype.t = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 394:
#line 1798 "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 395:
#line 1801 "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 396:
#line 1804 "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 397:
#line 1810 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 398:
#line 1812 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 400:
#line 1822 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 401:
#line 1824 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 402:
#line 1826 "parse.y"
{ yyval.ftype.t = finish_typeof (yyvsp[-1].ttype);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 403:
#line 1829 "parse.y"
{ yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 404:
#line 1832 "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 405:
#line 1847 "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 406:
#line 1867 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 407:
#line 1869 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 410:
#line 1876 "parse.y"
{ check_multiple_declarators (); ;
    break;}
case 412:
#line 1882 "parse.y"
{ check_multiple_declarators (); ;
    break;}
case 414:
#line 1888 "parse.y"
{ check_multiple_declarators (); ;
    break;}
case 415:
#line 1893 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 416:
#line 1895 "parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 417:
#line 1900 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
					  yyvsp[-1].ttype, prefix_attributes); ;
    break;}
case 418:
#line 1904 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
    break;}
case 419:
#line 1906 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
					  yyvsp[0].ttype, prefix_attributes);
		  cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 420:
#line 1919 "parse.y"
{ yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, 
					   yyvsp[-1].ttype, 1, &yyval.ttype); ;
    break;}
case 421:
#line 1924 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
				  LOOKUP_ONLYCONVERTING);
		  yyval.itype = yyvsp[-2].itype; ;
    break;}
case 422:
#line 1928 "parse.y"
{ tree d;
		  yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 423:
#line 1935 "parse.y"
{ yyval.itype = yyvsp[0].itype; ;
    break;}
case 424:
#line 1939 "parse.y"
{ yyval.itype = yyvsp[0].itype; ;
    break;}
case 425:
#line 1944 "parse.y"
{ /* Set things up as initdcl0_innards expects.  */
	      yyvsp[0].ttype = yyvsp[-1].ttype; 
              yyvsp[-1].ttype = NULL_TREE; ;
    break;}
case 426:
#line 1948 "parse.y"
{;
    break;}
case 427:
#line 1950 "parse.y"
{ tree d;
		  parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 428:
#line 1959 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 429:
#line 1961 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 430:
#line 1966 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 431:
#line 1968 "parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 432:
#line 1973 "parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 433:
#line 1978 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 434:
#line 1980 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 435:
#line 1985 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 436:
#line 1987 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 437:
#line 1989 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 438:
#line 1991 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 439:
#line 1993 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 444:
#line 2009 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 445:
#line 2011 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 446:
#line 2016 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 447:
#line 2018 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 449:
#line 2026 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 450:
#line 2029 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 451:
#line 2032 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 452:
#line 2035 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 453:
#line 2042 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 454:
#line 2044 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 455:
#line 2047 "parse.y"
{ yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 456:
#line 2049 "parse.y"
{ yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 457:
#line 2051 "parse.y"
{ yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 458:
#line 2056 "parse.y"
{ start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
				  NULL_TREE, 2);
		  reinit_parse_for_function (); ;
    break;}
case 459:
#line 2062 "parse.y"
{
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[-1].itype | 2, nested);
		  process_next_inline (yyvsp[-3].ttype);
		;
    break;}
case 460:
#line 2069 "parse.y"
{ 
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[0].itype | 2, nested); 
                  process_next_inline (yyvsp[-2].ttype);
		;
    break;}
case 461:
#line 2076 "parse.y"
{ process_next_inline (yyvsp[-2].ttype); ;
    break;}
case 464:
#line 2088 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 465:
#line 2090 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
    break;}
case 467:
#line 2095 "parse.y"
{ do_pending_defargs (); ;
    break;}
case 468:
#line 2097 "parse.y"
{ do_pending_defargs (); ;
    break;}
case 469:
#line 2102 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = current_enum_type;
		  current_enum_type = start_enum (yyvsp[-1].ttype); ;
    break;}
case 470:
#line 2106 "parse.y"
{ TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
		  yyval.ftype.t = finish_enum (current_enum_type);
		  yyval.ftype.new_type_flag = 1;
		  current_enum_type = yyvsp[-3].ttype;
		  resume_momentary ((int) yyvsp[-4].itype);
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 471:
#line 2113 "parse.y"
{ yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype));
		  yyval.ftype.new_type_flag = 1;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 472:
#line 2117 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = current_enum_type;
		  current_enum_type = start_enum (make_anon_name ()); ;
    break;}
case 473:
#line 2121 "parse.y"
{ TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
		  yyval.ftype.t = finish_enum (current_enum_type);
		  yyval.ftype.new_type_flag = 1;
		  current_enum_type = yyvsp[-3].ttype;
		  resume_momentary ((int) yyvsp[-5].itype);
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 474:
#line 2128 "parse.y"
{ yyval.ftype.t = finish_enum (start_enum (make_anon_name()));
		  yyval.ftype.new_type_flag = 1;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 475:
#line 2132 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 476:
#line 2135 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 477:
#line 2138 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0; 
		  if (!processing_template_decl)
		    cp_pedwarn ("using `typename' outside of template"); ;
    break;}
case 478:
#line 2144 "parse.y"
{ yyvsp[-1].ftype.t = begin_class_definition (yyvsp[-1].ftype.t); ;
    break;}
case 479:
#line 2146 "parse.y"
{ 
		  int semi;

		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  semi = yychar == ';';

		  yyval.ttype = finish_class_definition (yyvsp[-5].ftype.t, yyvsp[0].ttype, semi,
						       yyvsp[-5].ftype.new_type_flag); 
		;
    break;}
case 480:
#line 2157 "parse.y"
{
		  begin_inline_definitions ();
		;
    break;}
case 481:
#line 2161 "parse.y"
{
		  finish_inline_definitions ();
		  yyval.ftype.t = yyvsp[-3].ttype;
		  yyval.ftype.new_type_flag = 1; 
		;
    break;}
case 482:
#line 2167 "parse.y"
{
		  if (yyvsp[0].ftype.new_type_flag)
		    pop_scope (CP_DECL_CONTEXT (TYPE_MAIN_DECL (yyvsp[0].ftype.t)));
		  yyval.ftype.new_type_flag = 0;
		  if (TYPE_BINFO (yyvsp[0].ftype.t) == NULL_TREE)
		    {
		      cp_error ("%T is not a class type", yyvsp[0].ftype.t);
		      yyval.ftype.t = error_mark_node;
		    } 
		  else
		    {
		      yyval.ftype.t = yyvsp[0].ftype.t;
		      /* 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 486:
#line 2196 "parse.y"
{ if (pedantic && !in_system_header)
		    pedwarn ("comma at end of enumerator list"); ;
    break;}
case 488:
#line 2203 "parse.y"
{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 489:
#line 2205 "parse.y"
{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 490:
#line 2207 "parse.y"
{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 491:
#line 2209 "parse.y"
{ error ("no body nor ';' separates two class, struct or union declarations"); ;
    break;}
case 492:
#line 2211 "parse.y"
{ yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 493:
#line 2216 "parse.y"
{ 
		  current_aggr = yyvsp[-1].ttype; 
		  yyval.ttype = yyvsp[0].ttype; 
		;
    break;}
case 494:
#line 2224 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 495:
#line 2226 "parse.y"
{ yyungetc ('{', 1); ;
    break;}
case 496:
#line 2228 "parse.y"
{ yyungetc (':', 1); ;
    break;}
case 497:
#line 2233 "parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 498:
#line 2239 "parse.y"
{
		  current_aggr = yyvsp[-3].ttype;
		  yyval.ftype.t = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 499:
#line 2245 "parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 500:
#line 2251 "parse.y"
{ 
		  current_aggr = yyvsp[-1].ttype; 
		  yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 501:
#line 2257 "parse.y"
{ 
		  current_aggr = yyvsp[-2].ttype; 
		  yyval.ftype.t = yyvsp[0].ttype;
		  if (CP_DECL_CONTEXT (yyval.ftype.t))
		    push_scope (CP_DECL_CONTEXT (yyval.ftype.t));
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 502:
#line 2268 "parse.y"
{ 
		  yyval.ftype.t = xref_tag (current_aggr, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 503:
#line 2273 "parse.y"
{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
    break;}
case 504:
#line 2277 "parse.y"
{ 
		  yyval.ftype.t = yyvsp[-1].ttype;
		  yyval.ftype.new_type_flag = 0;
		  if (yyvsp[0].ttype)
                    xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
		;
    break;}
case 505:
#line 2285 "parse.y"
{ 
		  if (yyvsp[-1].ftype.t != error_mark_node)
		    {
		      yyval.ftype.t = TREE_TYPE (yyvsp[-1].ftype.t);
		      yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
		      if (current_aggr == union_type_node
			  && TREE_CODE (yyval.ftype.t) != UNION_TYPE)
			cp_pedwarn ("`union' tag used in declaring `%#T'", 
				    yyval.ftype.t);
		      else if (TREE_CODE (yyval.ftype.t) == UNION_TYPE
			       && current_aggr != union_type_node)
			cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ftype);
		      else if (TREE_CODE (yyval.ftype.t) == RECORD_TYPE)
			/* We might be specializing a template with a different
			   class-key; deal.  */
			CLASSTYPE_DECLARED_CLASS (yyval.ftype.t) 
			  = (current_aggr == class_type_node);
		      if (yyvsp[0].ttype)
			{
			  maybe_process_partial_specialization (yyval.ftype.t);
			  xref_basetypes (current_aggr, yyvsp[-1].ftype.t, yyval.ftype.t, yyvsp[0].ttype); 
			}
		    }
		;
    break;}
case 506:
#line 2313 "parse.y"
{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0);
		  yyungetc ('{', 1); ;
    break;}
case 507:
#line 2323 "parse.y"
{
		  yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 509:
#line 2332 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 510:
#line 2334 "parse.y"
{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
    break;}
case 511:
#line 2336 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 513:
#line 2342 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 514:
#line 2347 "parse.y"
{ yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype,
					      current_aggr 
					      == signature_type_node); ;
    break;}
case 515:
#line 2351 "parse.y"
{ yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 
					      current_aggr 
					      == signature_type_node); ;
    break;}
case 516:
#line 2358 "parse.y"
{ if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
    break;}
case 518:
#line 2361 "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 519:
#line 2382 "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 521:
#line 2407 "parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
		    cp_error ("`%D' access", yyvsp[-1].ttype);
		  yyval.ttype = access_default_virtual_node; ;
    break;}
case 522:
#line 2411 "parse.y"
{
		  if (yyvsp[-2].ttype != access_default_virtual_node)
		    error ("multiple access specifiers");
		  else if (yyvsp[-1].ttype == access_public_node)
		    yyval.ttype = access_public_virtual_node;
		  else if (yyvsp[-1].ttype == access_protected_node)
		    yyval.ttype = access_protected_virtual_node;
		  else /* $2 == access_private_node */
		    yyval.ttype = access_private_virtual_node;
		;
    break;}
case 523:
#line 2422 "parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
		    cp_error ("`%D' access", yyvsp[-1].ttype);
		  else if (yyval.ttype == access_public_node)
		    yyval.ttype = access_public_virtual_node;
		  else if (yyval.ttype == access_protected_node)
		    yyval.ttype = access_protected_virtual_node;
		  else if (yyval.ttype == access_private_node)
		    yyval.ttype = access_private_virtual_node;
		  else
		    error ("multiple `virtual' specifiers");
		;
    break;}
case 528:
#line 2443 "parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      error ("access specifier not allowed in signature");
		      yyvsp[-1].ttype = access_public_node;
		    }

		  current_access_specifier = yyvsp[-1].ttype;
                ;
    break;}
case 529:
#line 2458 "parse.y"
{ 
		  finish_member_declaration (yyvsp[0].ttype);
		;
    break;}
case 530:
#line 2462 "parse.y"
{ 
		  finish_member_declaration (yyvsp[0].ttype);
		;
    break;}
case 532:
#line 2470 "parse.y"
{ error ("missing ';' before right brace");
		  yyungetc ('}', 0); ;
    break;}
case 533:
#line 2475 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 534:
#line 2477 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 535:
#line 2479 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 536:
#line 2481 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 537:
#line 2483 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 538:
#line 2485 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 539:
#line 2488 "parse.y"
{  
		  if (yyvsp[0].ttype)
		    yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
		  else
		    /* The component was already processed.  */
		    yyval.ttype = NULL_TREE;

		  finish_template_decl (yyvsp[-1].ttype);
		;
    break;}
case 540:
#line 2498 "parse.y"
{ 
		  yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); 
		  finish_template_decl (yyvsp[-2].ttype);
		;
    break;}
case 541:
#line 2509 "parse.y"
{
		  /* Most of the productions for component_decl only
		     allow the creation of one new member, so we call
		     finish_member_declaration in component_decl_list.
		     For this rule and the next, however, there can be
		     more than one member, e.g.:

		       int i, j;

		     and we need the first member to be fully
		     registered before the second is processed.
		     Therefore, the rules for components take care of
		     this processing.  To avoid registering the
		     components more than once, we send NULL_TREE up
		     here; that lets finish_member_declaration know
		     that there is nothing to do.  */
		  if (!yyvsp[0].itype)
		    grok_x_components (yyvsp[-1].ftype.t);
		  yyval.ttype = NULL_TREE;
		;
    break;}
case 542:
#line 2530 "parse.y"
{ 
		  if (!yyvsp[0].itype)
		    grok_x_components (yyvsp[-1].ttype);
		  yyval.ttype = NULL_TREE; 
		;
    break;}
case 543:
#line 2536 "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 544:
#line 2539 "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 545:
#line 2542 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 546:
#line 2544 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 547:
#line 2555 "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 548:
#line 2560 "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 549:
#line 2563 "parse.y"
{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
    break;}
case 550:
#line 2569 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 551:
#line 2571 "parse.y"
{ 
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype); 
		  yyval.itype = 1;
		;
    break;}
case 552:
#line 2578 "parse.y"
{ 
		  check_multiple_declarators ();
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype);
		  yyval.itype = 2;
		;
    break;}
case 553:
#line 2589 "parse.y"
{ yyval.itype = 0; ;
    break;}
case 554:
#line 2591 "parse.y"
{ 
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype);
		  yyval.itype = 1;
		;
    break;}
case 555:
#line 2598 "parse.y"
{ 
		  check_multiple_declarators ();
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype); 
		  yyval.itype = 2;
		;
    break;}
case 560:
#line 2619 "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 561:
#line 2625 "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 562:
#line 2634 "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 563:
#line 2640 "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 564:
#line 2646 "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 565:
#line 2652 "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 566:
#line 2661 "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 567:
#line 2664 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 568:
#line 2670 "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 569:
#line 2673 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 570:
#line 2676 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 572:
#line 2687 "parse.y"
{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 573:
#line 2692 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE, current_enum_type); ;
    break;}
case 574:
#line 2694 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype, current_enum_type); ;
    break;}
case 575:
#line 2700 "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 576:
#line 2703 "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 577:
#line 2710 "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 578:
#line 2721 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 579:
#line 2723 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 580:
#line 2728 "parse.y"
{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 581:
#line 2731 "parse.y"
{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 582:
#line 2740 "parse.y"
{ yyval.itype = suspend_momentary (); ;
    break;}
case 583:
#line 2745 "parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 584:
#line 2751 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 585:
#line 2753 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 586:
#line 2755 "parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
    break;}
case 587:
#line 2757 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
    break;}
case 589:
#line 2765 "parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 590:
#line 2775 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 591:
#line 2777 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 592:
#line 2779 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 593:
#line 2781 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 594:
#line 2783 "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 596:
#line 2791 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 597:
#line 2793 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 598:
#line 2795 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 599:
#line 2797 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 600:
#line 2799 "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 602:
#line 2807 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
		      maybe_note_name_used_in_class (yyvsp[0].ttype, yyval.ttype);
		    }
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 603:
#line 2817 "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 606:
#line 2830 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 607:
#line 2835 "parse.y"
{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
    break;}
case 609:
#line 2844 "parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 610:
#line 2853 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 611:
#line 2855 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 612:
#line 2857 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 613:
#line 2859 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 614:
#line 2861 "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 616:
#line 2869 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 617:
#line 2871 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 618:
#line 2873 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 619:
#line 2875 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 620:
#line 2877 "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 622:
#line 2885 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 623:
#line 2887 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 624:
#line 2889 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 625:
#line 2891 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 626:
#line 2893 "parse.y"
{ enter_scope_of (yyvsp[0].ttype); ;
    break;}
case 627:
#line 2895 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
		  enter_scope_of (yyval.ttype);
		;
    break;}
case 628:
#line 2903 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 629:
#line 2906 "parse.y"
{ got_scope = NULL_TREE;
 		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 630:
#line 2912 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 631:
#line 2915 "parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 633:
#line 2922 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 634:
#line 2927 "parse.y"
{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 635:
#line 2929 "parse.y"
{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 636:
#line 2931 "parse.y"
{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 641:
#line 2942 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 642:
#line 2944 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 643:
#line 2951 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lastiddecl;
		      maybe_note_name_used_in_class (yyvsp[-1].ttype, yyval.ttype);
		    }
		  got_scope = yyval.ttype =
		    complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype)));
		;
    break;}
case 644:
#line 2961 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
		;
    break;}
case 645:
#line 2967 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 646:
#line 2973 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
    break;}
case 648:
#line 2989 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 649:
#line 2994 "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;
		      if (TREE_CODE (yyval.ttype) == TYPE_DECL)
			yyval.ttype = TREE_TYPE (yyval.ttype);
		    }
		;
    break;}
case 650:
#line 3007 "parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
    break;}
case 651:
#line 3009 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 652:
#line 3011 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 653:
#line 3016 "parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		;
    break;}
case 654:
#line 3021 "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;
		      if (TREE_CODE (yyval.ttype) == TYPE_DECL)
			yyval.ttype = TREE_TYPE (yyval.ttype);
		    }
		;
    break;}
case 655:
#line 3034 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 656:
#line 3036 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 657:
#line 3041 "parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
		    yyvsp[-1].ttype = lastiddecl;

		  /* Retrieve the type for the identifier, which might involve
		     some computation. */
		  got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));

		  if (yyval.ttype == error_mark_node)
		    cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
		;
    break;}
case 658:
#line 3053 "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 659:
#line 3059 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
    break;}
case 662:
#line 3063 "parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 663:
#line 3072 "parse.y"
{ yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 664:
#line 3077 "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 666:
#line 3086 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 667:
#line 3091 "parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 668:
#line 3093 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
    break;}
case 669:
#line 3100 "parse.y"
{ got_scope = void_type_node; ;
    break;}
case 670:
#line 3106 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 671:
#line 3108 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 672:
#line 3110 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 673:
#line 3112 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 674:
#line 3114 "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 675:
#line 3118 "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 677:
#line 3127 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 678:
#line 3129 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 680:
#line 3135 "parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 681:
#line 3145 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 682:
#line 3147 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 683:
#line 3149 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 684:
#line 3151 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 685:
#line 3153 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 686:
#line 3155 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 687:
#line 3157 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 688:
#line 3159 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 689:
#line 3161 "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 690:
#line 3165 "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 692:
#line 3174 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 694:
#line 3178 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 695:
#line 3180 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 696:
#line 3182 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 697:
#line 3184 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 698:
#line 3186 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 699:
#line 3188 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 700:
#line 3190 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 701:
#line 3192 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 702:
#line 3194 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 709:
#line 3217 "parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids label declarations"); ;
    break;}
case 712:
#line 3228 "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 713:
#line 3242 "parse.y"
{;
    break;}
case 715:
#line 3248 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
    break;}
case 716:
#line 3250 "parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
    break;}
case 717:
#line 3255 "parse.y"
{
		  yyval.ttype = begin_if_stmt ();
		  cond_stmt_keyword = "if";
		;
    break;}
case 718:
#line 3260 "parse.y"
{ finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 719:
#line 3262 "parse.y"
{ yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
    break;}
case 721:
#line 3267 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
    break;}
case 722:
#line 3269 "parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
    break;}
case 723:
#line 3274 "parse.y"
{;
    break;}
case 725:
#line 3280 "parse.y"
{ finish_stmt (); ;
    break;}
case 726:
#line 3282 "parse.y"
{ finish_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 727:
#line 3284 "parse.y"
{ begin_else_clause (); ;
    break;}
case 728:
#line 3286 "parse.y"
{ 
		  finish_else_clause (yyvsp[-3].ttype); 
		  finish_if_stmt ();
		;
    break;}
case 729:
#line 3291 "parse.y"
{ finish_if_stmt (); ;
    break;}
case 730:
#line 3293 "parse.y"
{
		  yyval.ttype = begin_while_stmt ();
		  cond_stmt_keyword = "while";
		;
    break;}
case 731:
#line 3298 "parse.y"
{ finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 732:
#line 3300 "parse.y"
{ finish_while_stmt (yyvsp[-3].ttype); ;
    break;}
case 733:
#line 3302 "parse.y"
{ yyval.ttype = begin_do_stmt (); ;
    break;}
case 734:
#line 3304 "parse.y"
{
		  finish_do_body (yyvsp[-2].ttype);
		  cond_stmt_keyword = "do";
		;
    break;}
case 735:
#line 3309 "parse.y"
{ finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 736:
#line 3311 "parse.y"
{ yyval.ttype = begin_for_stmt (); ;
    break;}
case 737:
#line 3313 "parse.y"
{ finish_for_init_stmt (yyvsp[-2].ttype); ;
    break;}
case 738:
#line 3315 "parse.y"
{ finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 739:
#line 3317 "parse.y"
{ finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
    break;}
case 740:
#line 3319 "parse.y"
{ finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
    break;}
case 741:
#line 3321 "parse.y"
{ begin_switch_stmt (); ;
    break;}
case 742:
#line 3323 "parse.y"
{ yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
    break;}
case 743:
#line 3325 "parse.y"
{ finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 744:
#line 3327 "parse.y"
{ finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 746:
#line 3330 "parse.y"
{ finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 748:
#line 3333 "parse.y"
{ finish_case_label (NULL_TREE, NULL_TREE); ;
    break;}
case 750:
#line 3336 "parse.y"
{ finish_break_stmt (); ;
    break;}
case 751:
#line 3338 "parse.y"
{ finish_continue_stmt (); ;
    break;}
case 752:
#line 3340 "parse.y"
{ finish_return_stmt (NULL_TREE); ;
    break;}
case 753:
#line 3342 "parse.y"
{ finish_return_stmt (yyvsp[-1].ttype); ;
    break;}
case 754:
#line 3344 "parse.y"
{ 
		  finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
				   NULL_TREE); 
		;
    break;}
case 755:
#line 3350 "parse.y"
{ 
		  finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
				   NULL_TREE); 
		;
    break;}
case 756:
#line 3356 "parse.y"
{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 757:
#line 3360 "parse.y"
{ finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
    break;}
case 758:
#line 3362 "parse.y"
{ 
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids computed gotos");
		  finish_goto_stmt (yyvsp[-1].ttype);
		;
    break;}
case 759:
#line 3368 "parse.y"
{ finish_goto_stmt (yyvsp[-1].ttype); ;
    break;}
case 760:
#line 3370 "parse.y"
{ finish_stmt (); ;
    break;}
case 761:
#line 3372 "parse.y"
{ error ("label must be followed by statement");
		  yyungetc ('}', 0);
		  finish_stmt (); ;
    break;}
case 762:
#line 3376 "parse.y"
{ finish_stmt (); ;
    break;}
case 765:
#line 3380 "parse.y"
{ do_local_using_decl (yyvsp[0].ttype); ;
    break;}
case 767:
#line 3386 "parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  expand_start_early_try_stmts ();
		;
    break;}
case 768:
#line 3392 "parse.y"
{ 
		  end_protect_partials ();
                  expand_start_all_catch (); 
                ;
    break;}
case 769:
#line 3397 "parse.y"
{
		  expand_end_all_catch ();
		  yyval.itype = yyvsp[-3].itype;
		;
    break;}
case 770:
#line 3405 "parse.y"
{ yyval.ttype = begin_try_block (); ;
    break;}
case 771:
#line 3407 "parse.y"
{ finish_try_block (yyvsp[-1].ttype); ;
    break;}
case 772:
#line 3409 "parse.y"
{ finish_handler_sequence (yyvsp[-3].ttype); ;
    break;}
case 775:
#line 3419 "parse.y"
{ yyval.ttype = begin_handler(); ;
    break;}
case 776:
#line 3421 "parse.y"
{ finish_handler_parms (yyvsp[-1].ttype); ;
    break;}
case 777:
#line 3423 "parse.y"
{ finish_handler (yyvsp[-3].ttype); ;
    break;}
case 780:
#line 3433 "parse.y"
{ expand_start_catch_block (NULL_TREE, NULL_TREE); ;
    break;}
case 781:
#line 3449 "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 782:
#line 3456 "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 783:
#line 3463 "parse.y"
{ goto do_label; ;
    break;}
case 784:
#line 3465 "parse.y"
{ goto do_label; ;
    break;}
case 785:
#line 3467 "parse.y"
{ goto do_label; ;
    break;}
case 786:
#line 3472 "parse.y"
{ if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 788:
#line 3475 "parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids compound statements inside for initializations");
		;
    break;}
case 789:
#line 3484 "parse.y"
{ emit_line_note (input_filename, lineno);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 790:
#line 3487 "parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 791:
#line 3492 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 793:
#line 3495 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 794:
#line 3502 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 797:
#line 3509 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 798:
#line 3514 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 799:
#line 3519 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
    break;}
case 800:
#line 3521 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 801:
#line 3532 "parse.y"
{
		  yyval.ttype = empty_parms();
		;
    break;}
case 803:
#line 3537 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
		  check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
    break;}
case 804:
#line 3545 "parse.y"
{ yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
    break;}
case 805:
#line 3547 "parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 806:
#line 3550 "parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 807:
#line 3552 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
							 yyvsp[-1].ftype.t), 1); ;
    break;}
case 808:
#line 3555 "parse.y"
{ yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
    break;}
case 809:
#line 3557 "parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 810:
#line 3567 "parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
							 yyvsp[-1].ftype.t), 0); 
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 811:
#line 3582 "parse.y"
{ maybe_snarf_defarg (); ;
    break;}
case 812:
#line 3584 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 815:
#line 3595 "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 816:
#line 3598 "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 817:
#line 3601 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
		  yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
    break;}
case 818:
#line 3604 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 819:
#line 3606 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
    break;}
case 821:
#line 3612 "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 822:
#line 3622 "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 823:
#line 3626 "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 824:
#line 3629 "parse.y"
{ yyval.ftype.t = build_tree_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
					  yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 825:
#line 3633 "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 826:
#line 3637 "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 827:
#line 3641 "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 828:
#line 3648 "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 829:
#line 3651 "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 832:
#line 3662 "parse.y"
{ see_typename (); ;
    break;}
case 833:
#line 3667 "parse.y"
{
		  error ("type specifier omitted for parameter");
		  yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
		;
    break;}
case 834:
#line 3672 "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
			  || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_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 835:
#line 3684 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 836:
#line 3686 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 837:
#line 3688 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
    break;}
case 838:
#line 3693 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
    break;}
case 840:
#line 3699 "parse.y"
{
		  TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 841:
#line 3707 "parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 842:
#line 3709 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 843:
#line 3711 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 844:
#line 3713 "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 845:
#line 3720 "parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 846:
#line 3725 "parse.y"
{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
    break;}
case 847:
#line 3727 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
    break;}
case 848:
#line 3729 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
    break;}
case 849:
#line 3731 "parse.y"
{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
    break;}
case 850:
#line 3733 "parse.y"
{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
    break;}
case 851:
#line 3735 "parse.y"
{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
    break;}
case 852:
#line 3737 "parse.y"
{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
    break;}
case 853:
#line 3739 "parse.y"
{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
    break;}
case 854:
#line 3741 "parse.y"
{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
    break;}
case 855:
#line 3743 "parse.y"
{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
    break;}
case 856:
#line 3745 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 857:
#line 3747 "parse.y"
{ yyval.ttype = ansi_opname[LT_EXPR]; ;
    break;}
case 858:
#line 3749 "parse.y"
{ yyval.ttype = ansi_opname[GT_EXPR]; ;
    break;}
case 859:
#line 3751 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 860:
#line 3753 "parse.y"
{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
    break;}
case 861:
#line 3755 "parse.y"
{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
    break;}
case 862:
#line 3757 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 863:
#line 3759 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 864:
#line 3761 "parse.y"
{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
    break;}
case 865:
#line 3763 "parse.y"
{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
    break;}
case 866:
#line 3765 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
    break;}
case 867:
#line 3767 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
    break;}
case 868:
#line 3769 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
    break;}
case 869:
#line 3771 "parse.y"
{ yyval.ttype = ansi_opname[COND_EXPR]; ;
    break;}
case 870:
#line 3773 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 871:
#line 3775 "parse.y"
{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
    break;}
case 872:
#line 3777 "parse.y"
{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
    break;}
case 873:
#line 3779 "parse.y"
{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
    break;}
case 874:
#line 3781 "parse.y"
{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
    break;}
case 875:
#line 3783 "parse.y"
{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
    break;}
case 876:
#line 3785 "parse.y"
{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
    break;}
case 877:
#line 3787 "parse.y"
{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
    break;}
case 878:
#line 3789 "parse.y"
{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
    break;}
case 879:
#line 3792 "parse.y"
{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 880:
#line 3794 "parse.y"
{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 498 "/usr/cygnus/gnupro-98r2/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 3797 "parse.y"


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

#endif


syntax highlighted by Code2HTML, v. 0.9.1