Ignore:
Timestamp:
Aug 16, 2016, 3:20:06 PM (9 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
1f6d4624
Parents:
950f7a7 (diff), 7880579 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r950f7a7 r7527e63  
    8989TypedefTable typedefTable;
    9090
     91void appendStr( std::string &to, std::string *from ) {
     92        // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
     93        to.insert( to.length() - 1, from->substr( 1, from->length() - 2 ) );
     94} // appendStr
     95
    9196
    9297/* Line 268 of yacc.c  */
    93 #line 94 "Parser/parser.cc"
     98#line 99 "Parser/parser.cc"
    9499
    95100/* Enabling traces.  */
     
    342347
    343348/* Line 293 of yacc.c  */
    344 #line 110 "parser.yy"
     349#line 115 "parser.yy"
    345350
    346351        Token tok;
     
    351356        DeclarationNode::TypeClass tclass;
    352357        StatementNode *sn;
    353         ConstantNode *constant;
     358        ConstantExpr *constant;
     359        ForCtl *fctl;
    354360        LabelNode *label;
    355361        InitializerNode *in;
     362        OperKinds op;
    356363        bool flag;
    357364
     
    359366
    360367/* Line 293 of yacc.c  */
    361 #line 362 "Parser/parser.cc"
     368#line 369 "Parser/parser.cc"
    362369} YYSTYPE;
    363370# define YYSTYPE_IS_TRIVIAL 1
     
    371378
    372379/* Line 343 of yacc.c  */
    373 #line 374 "Parser/parser.cc"
     380#line 381 "Parser/parser.cc"
    374381
    375382#ifdef short
     
    588595
    589596/* YYFINAL -- State number of the termination state.  */
    590 #define YYFINAL  252
     597#define YYFINAL  251
    591598/* YYLAST -- Last index in YYTABLE.  */
    592 #define YYLAST   12080
     599#define YYLAST   10816
    593600
    594601/* YYNTOKENS -- Number of terminals.  */
     
    597604#define YYNNTS  241
    598605/* YYNRULES -- Number of rules.  */
    599 #define YYNRULES  755
     606#define YYNRULES  750
    600607/* YYNRULES -- Number of states.  */
    601 #define YYNSTATES  1579
     608#define YYNSTATES  1554
    602609
    603610/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    614621       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    615622       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    616        2,     2,     2,   122,     2,     2,     2,   125,   119,     2,
    617      109,   110,   118,   120,   116,   121,   113,   124,     2,     2,
    618        2,     2,     2,     2,     2,     2,     2,     2,   117,   132,
    619      126,   131,   127,   130,     2,     2,     2,     2,     2,     2,
     623       2,     2,     2,   121,     2,     2,     2,   124,   118,     2,
     624     109,   110,   117,   119,   116,   120,   113,   123,     2,     2,
     625       2,     2,     2,     2,     2,     2,     2,     2,   130,   132,
     626     125,   131,   126,   129,     2,     2,     2,     2,     2,     2,
    620627       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    621628       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    622        2,   111,     2,   112,   128,     2,     2,     2,     2,     2,
     629       2,   111,     2,   112,   127,     2,     2,     2,     2,     2,
    623630       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    624631       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    625        2,     2,     2,   114,   129,   115,   123,     2,     2,     2,
     632       2,     2,     2,   114,   128,   115,   122,     2,     2,     2,
    626633       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    627634       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    658665      17,    19,    21,    23,    25,    27,    29,    31,    34,    36,
    659666      38,    42,    46,    48,    55,    60,    64,    72,    76,    84,
    660       87,    90,    98,   103,   105,   109,   110,   112,   116,   124,
    661      134,   136,   140,   142,   146,   154,   158,   166,   168,   170,
    662      172,   175,   178,   181,   184,   187,   190,   195,   202,   204,
    663      209,   214,   217,   222,   224,   226,   228,   230,   232,   234,
    664      236,   238,   243,   248,   250,   254,   258,   262,   264,   268,
    665      272,   274,   278,   282,   284,   288,   292,   296,   300,   302,
    666      306,   310,   312,   316,   318,   322,   324,   328,   330,   334,
    667      336,   340,   342,   348,   353,   359,   361,   363,   367,   371,
    668      374,   375,   377,   380,   386,   393,   401,   403,   407,   409,
    669      411,   413,   415,   417,   419,   421,   423,   425,   427,   429,
    670      433,   434,   436,   438,   440,   442,   444,   446,   448,   450,
    671      452,   459,   464,   467,   475,   477,   481,   483,   486,   488,
    672      491,   493,   496,   499,   505,   513,   519,   529,   535,   545,
    673      547,   551,   553,   555,   559,   563,   566,   568,   571,   574,
    674      575,   577,   580,   584,   585,   587,   590,   594,   598,   603,
    675      604,   606,   608,   611,   617,   625,   632,   639,   644,   648,
    676      653,   656,   660,   663,   667,   671,   675,   679,   685,   689,
    677      693,   698,   700,   706,   713,   719,   726,   736,   747,   757,
    678      768,   771,   773,   776,   779,   782,   784,   791,   800,   811,
    679      824,   839,   840,   842,   843,   845,   847,   851,   856,   864,
    680      865,   867,   871,   873,   877,   879,   881,   883,   887,   889,
    681      891,   893,   897,   898,   900,   904,   909,   911,   915,   917,
    682      919,   923,   927,   931,   935,   939,   942,   946,   953,   957,
    683      961,   966,   968,   971,   974,   978,   984,   993,  1001,  1009,
    684     1015,  1025,  1028,  1031,  1037,  1041,  1047,  1052,  1056,  1061,
    685     1066,  1074,  1078,  1082,  1086,  1090,  1095,  1102,  1104,  1106,
    686     1108,  1110,  1112,  1114,  1116,  1118,  1119,  1121,  1123,  1126,
    687     1128,  1130,  1132,  1134,  1136,  1138,  1140,  1141,  1147,  1149,
    688     1152,  1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1173,
    689     1175,  1177,  1179,  1181,  1183,  1185,  1187,  1189,  1191,  1193,
    690     1195,  1197,  1199,  1201,  1203,  1205,  1207,  1210,  1213,  1217,
    691     1221,  1223,  1227,  1229,  1232,  1235,  1238,  1243,  1248,  1253,
    692     1258,  1260,  1263,  1266,  1270,  1272,  1275,  1278,  1280,  1283,
    693     1286,  1290,  1292,  1295,  1298,  1300,  1302,  1307,  1310,  1311,
    694     1318,  1326,  1329,  1332,  1335,  1336,  1339,  1342,  1346,  1349,
    695     1353,  1355,  1358,  1362,  1365,  1368,  1373,  1374,  1376,  1379,
    696     1382,  1384,  1385,  1387,  1390,  1393,  1399,  1402,  1403,  1411,
    697     1414,  1419,  1420,  1423,  1424,  1426,  1428,  1430,  1436,  1442,
    698     1448,  1450,  1456,  1462,  1472,  1474,  1480,  1481,  1483,  1485,
    699     1491,  1493,  1495,  1501,  1507,  1509,  1513,  1517,  1522,  1524,
    700     1526,  1528,  1530,  1533,  1535,  1539,  1543,  1545,  1548,  1550,
    701     1554,  1556,  1558,  1560,  1562,  1564,  1566,  1568,  1570,  1572,
    702     1574,  1576,  1579,  1581,  1583,  1585,  1588,  1589,  1592,  1595,
    703     1597,  1602,  1603,  1605,  1608,  1612,  1617,  1620,  1623,  1625,
    704     1628,  1630,  1633,  1639,  1645,  1653,  1660,  1662,  1665,  1668,
    705     1672,  1674,  1677,  1680,  1685,  1688,  1693,  1694,  1699,  1702,
    706     1704,  1706,  1708,  1709,  1712,  1718,  1724,  1738,  1740,  1742,
    707     1746,  1750,  1753,  1757,  1761,  1764,  1769,  1771,  1778,  1788,
    708     1789,  1801,  1803,  1807,  1811,  1815,  1817,  1819,  1825,  1828,
    709     1834,  1835,  1837,  1839,  1843,  1844,  1846,  1848,  1850,  1852,
    710     1853,  1860,  1863,  1865,  1868,  1873,  1876,  1880,  1884,  1888,
    711     1893,  1899,  1905,  1911,  1918,  1920,  1922,  1924,  1928,  1929,
    712     1935,  1936,  1938,  1940,  1943,  1950,  1952,  1956,  1957,  1959,
    713     1964,  1966,  1968,  1970,  1972,  1975,  1977,  1980,  1983,  1985,
    714     1989,  1992,  1996,  2000,  2003,  2008,  2013,  2017,  2026,  2030,
    715     2033,  2035,  2038,  2045,  2054,  2058,  2061,  2065,  2069,  2074,
    716     2079,  2083,  2085,  2087,  2089,  2094,  2101,  2105,  2108,  2112,
    717     2116,  2121,  2126,  2130,  2133,  2135,  2138,  2141,  2143,  2147,
    718     2150,  2154,  2158,  2161,  2166,  2171,  2175,  2182,  2191,  2195,
    719     2198,  2200,  2203,  2206,  2209,  2213,  2217,  2220,  2225,  2230,
    720     2234,  2241,  2250,  2254,  2257,  2259,  2262,  2265,  2267,  2269,
    721     2272,  2276,  2280,  2283,  2288,  2295,  2304,  2306,  2309,  2312,
    722     2314,  2317,  2320,  2324,  2328,  2330,  2335,  2340,  2344,  2350,
    723     2359,  2363,  2366,  2370,  2372,  2378,  2384,  2391,  2398,  2400,
    724     2403,  2406,  2408,  2411,  2414,  2418,  2422,  2424,  2429,  2434,
    725     2438,  2444,  2453,  2457,  2459,  2462,  2464,  2467,  2474,  2480,
    726     2487,  2495,  2503,  2505,  2508,  2511,  2513,  2516,  2519,  2523,
    727     2527,  2529,  2534,  2539,  2543,  2552,  2556,  2558,  2560,  2563,
    728     2565,  2567,  2570,  2574,  2577,  2581,  2584,  2588,  2592,  2595,
    729     2600,  2604,  2607,  2611,  2614,  2619,  2623,  2626,  2633,  2640,
    730     2647,  2655,  2657,  2660,  2662,  2664,  2666,  2669,  2673,  2676,
    731     2680,  2683,  2687,  2691,  2696,  2699,  2703,  2708,  2711,  2717,
    732     2723,  2730,  2737,  2738,  2740,  2741
     667      87,    90,    98,   103,   105,   109,   110,   112,   114,   118,
     668     120,   124,   132,   136,   144,   146,   148,   150,   153,   156,
     669     159,   162,   165,   168,   173,   176,   181,   188,   190,   195,
     670     200,   202,   204,   206,   208,   210,   212,   214,   219,   224,
     671     226,   230,   234,   238,   240,   244,   248,   250,   254,   258,
     672     260,   264,   268,   272,   276,   278,   282,   286,   288,   292,
     673     294,   298,   300,   304,   306,   310,   312,   316,   318,   324,
     674     329,   335,   337,   339,   343,   346,   347,   349,   351,   353,
     675     355,   357,   359,   361,   363,   365,   367,   369,   371,   374,
     676     380,   387,   395,   397,   401,   403,   407,   408,   410,   412,
     677     414,   416,   418,   420,   422,   424,   426,   433,   438,   441,
     678     449,   451,   455,   457,   460,   462,   465,   467,   470,   473,
     679     479,   487,   493,   503,   509,   519,   521,   525,   527,   529,
     680     533,   537,   540,   542,   545,   548,   549,   551,   554,   558,
     681     559,   561,   564,   568,   572,   577,   578,   580,   582,   585,
     682     591,   599,   606,   613,   618,   622,   627,   630,   634,   637,
     683     641,   645,   649,   653,   659,   663,   667,   672,   674,   680,
     684     687,   693,   700,   710,   721,   731,   742,   745,   747,   750,
     685     753,   756,   758,   765,   774,   785,   798,   813,   814,   816,
     686     817,   819,   821,   825,   830,   838,   839,   841,   845,   847,
     687     851,   853,   855,   857,   861,   863,   865,   867,   871,   872,
     688     874,   878,   883,   885,   889,   891,   893,   897,   901,   905,
     689     909,   913,   916,   920,   927,   931,   935,   940,   942,   945,
     690     948,   952,   958,   967,   975,   983,   989,   999,  1002,  1005,
     691    1011,  1015,  1021,  1026,  1030,  1035,  1040,  1048,  1052,  1056,
     692    1060,  1064,  1069,  1076,  1078,  1080,  1082,  1084,  1086,  1088,
     693    1090,  1092,  1093,  1095,  1097,  1100,  1102,  1104,  1106,  1108,
     694    1110,  1112,  1114,  1115,  1121,  1123,  1126,  1130,  1132,  1135,
     695    1137,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
     696    1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
     697    1177,  1179,  1181,  1184,  1187,  1191,  1195,  1197,  1201,  1203,
     698    1206,  1209,  1212,  1217,  1222,  1227,  1232,  1234,  1237,  1240,
     699    1244,  1246,  1249,  1252,  1254,  1257,  1260,  1264,  1266,  1269,
     700    1272,  1274,  1276,  1281,  1284,  1285,  1292,  1300,  1303,  1306,
     701    1309,  1310,  1313,  1316,  1320,  1323,  1327,  1329,  1332,  1336,
     702    1339,  1342,  1347,  1348,  1350,  1353,  1356,  1358,  1359,  1361,
     703    1364,  1367,  1373,  1376,  1377,  1385,  1388,  1393,  1394,  1397,
     704    1398,  1400,  1402,  1404,  1410,  1416,  1422,  1424,  1430,  1436,
     705    1446,  1448,  1454,  1455,  1457,  1459,  1465,  1467,  1469,  1475,
     706    1481,  1483,  1487,  1491,  1496,  1498,  1500,  1502,  1504,  1507,
     707    1509,  1513,  1517,  1519,  1522,  1524,  1528,  1530,  1532,  1534,
     708    1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1553,  1555,
     709    1557,  1559,  1562,  1563,  1566,  1569,  1571,  1576,  1577,  1579,
     710    1582,  1586,  1591,  1594,  1597,  1599,  1602,  1605,  1611,  1617,
     711    1625,  1632,  1634,  1637,  1640,  1644,  1646,  1649,  1652,  1657,
     712    1660,  1665,  1666,  1671,  1674,  1676,  1678,  1680,  1681,  1684,
     713    1690,  1696,  1710,  1712,  1714,  1718,  1722,  1725,  1729,  1733,
     714    1736,  1741,  1743,  1750,  1760,  1761,  1773,  1775,  1779,  1783,
     715    1787,  1789,  1791,  1797,  1800,  1806,  1807,  1809,  1811,  1815,
     716    1816,  1818,  1820,  1822,  1824,  1825,  1832,  1835,  1837,  1840,
     717    1845,  1848,  1852,  1856,  1860,  1865,  1871,  1877,  1883,  1890,
     718    1892,  1894,  1896,  1900,  1901,  1907,  1908,  1910,  1912,  1915,
     719    1922,  1924,  1928,  1929,  1931,  1936,  1938,  1940,  1942,  1944,
     720    1947,  1949,  1952,  1955,  1957,  1961,  1964,  1968,  1972,  1975,
     721    1980,  1985,  1989,  1998,  2002,  2005,  2007,  2010,  2017,  2026,
     722    2030,  2033,  2037,  2041,  2046,  2051,  2055,  2057,  2059,  2061,
     723    2066,  2073,  2077,  2080,  2084,  2088,  2093,  2098,  2102,  2105,
     724    2107,  2110,  2113,  2115,  2119,  2122,  2126,  2130,  2133,  2138,
     725    2143,  2147,  2154,  2163,  2167,  2170,  2172,  2175,  2178,  2181,
     726    2185,  2189,  2192,  2197,  2202,  2206,  2213,  2222,  2226,  2229,
     727    2231,  2234,  2237,  2239,  2241,  2244,  2248,  2252,  2255,  2260,
     728    2267,  2276,  2278,  2281,  2284,  2286,  2289,  2292,  2296,  2300,
     729    2302,  2307,  2312,  2316,  2322,  2331,  2335,  2338,  2342,  2344,
     730    2350,  2356,  2363,  2370,  2372,  2375,  2378,  2380,  2383,  2386,
     731    2390,  2394,  2396,  2401,  2406,  2410,  2416,  2425,  2429,  2431,
     732    2434,  2436,  2439,  2446,  2452,  2459,  2467,  2475,  2477,  2480,
     733    2483,  2485,  2488,  2491,  2495,  2499,  2501,  2506,  2511,  2515,
     734    2524,  2528,  2530,  2532,  2535,  2537,  2539,  2542,  2546,  2549,
     735    2553,  2556,  2560,  2564,  2567,  2572,  2576,  2579,  2583,  2586,
     736    2591,  2595,  2598,  2605,  2612,  2619,  2627,  2629,  2632,  2634,
     737    2636,  2638,  2641,  2645,  2648,  2652,  2655,  2659,  2663,  2668,
     738    2671,  2675,  2680,  2683,  2689,  2695,  2702,  2709,  2710,  2712,
     739    2713
    733740};
    734741
     
    747754     109,   275,   110,   114,   279,   372,   115,    -1,   143,   114,
    748755     144,   115,    -1,   145,    -1,   144,   116,   145,    -1,    -1,
    749      164,    -1,   139,   117,   164,    -1,   111,   134,   164,   135,
    750      112,   117,   164,    -1,   111,   134,   164,   116,   167,   135,
    751      112,   117,   164,    -1,   147,    -1,   146,   116,   147,    -1,
    752      139,    -1,   139,   113,   147,    -1,   139,   113,   111,   134,
    753      146,   135,   112,    -1,   139,    85,   147,    -1,   139,    85,
    754      111,   134,   146,   135,   112,    -1,   143,    -1,   136,    -1,
    755      141,    -1,    40,   151,    -1,   149,   151,    -1,   150,   151,
    756       -1,    86,   148,    -1,    87,   148,    -1,    37,   148,    -1,
    757       37,   109,   275,   110,    -1,    38,   109,   275,   116,   139,
    758      110,    -1,    76,    -1,    76,   109,   276,   110,    -1,    76,
    759      109,   145,   110,    -1,    66,   148,    -1,    66,   109,   275,
    760      110,    -1,   118,    -1,   119,    -1,    94,    -1,   120,    -1,
    761      121,    -1,   122,    -1,   123,    -1,   148,    -1,   109,   275,
    762      110,   151,    -1,   109,   275,   110,   166,    -1,   151,    -1,
    763      152,   118,   151,    -1,   152,   124,   151,    -1,   152,   125,
    764      151,    -1,   152,    -1,   153,   120,   152,    -1,   153,   121,
    765      152,    -1,   153,    -1,   154,    88,   153,    -1,   154,    89,
    766      153,    -1,   154,    -1,   155,   126,   154,    -1,   155,   127,
    767      154,    -1,   155,    90,   154,    -1,   155,    91,   154,    -1,
    768      155,    -1,   156,    92,   155,    -1,   156,    93,   155,    -1,
    769      156,    -1,   157,   119,   156,    -1,   157,    -1,   158,   128,
    770      157,    -1,   158,    -1,   159,   129,   158,    -1,   159,    -1,
    771      160,    94,   159,    -1,   160,    -1,   161,    95,   160,    -1,
    772      161,    -1,   161,   130,   169,   117,   162,    -1,   161,   130,
    773      117,   162,    -1,   161,   130,   169,   117,   166,    -1,   162,
    774       -1,   162,    -1,   148,   131,   164,    -1,   148,   168,   164,
    775       -1,   166,   373,    -1,    -1,   164,    -1,   111,   112,    -1,
    776      111,   134,   164,   135,   112,    -1,   111,   134,   116,   167,
    777      135,   112,    -1,   111,   134,   164,   116,   167,   135,   112,
    778       -1,   165,    -1,   167,   116,   165,    -1,    97,    -1,    98,
    779       -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,   103,
    780       -1,   104,    -1,   105,    -1,   106,    -1,   164,    -1,   169,
    781      116,   164,    -1,    -1,   169,    -1,   172,    -1,   173,    -1,
    782      177,    -1,   178,    -1,   190,    -1,   192,    -1,   193,    -1,
    783      198,    -1,   128,   143,   114,   144,   115,   132,    -1,    72,
    784      117,   312,   171,    -1,   114,   115,    -1,   114,   134,   134,
    785      209,   174,   135,   115,    -1,   175,    -1,   174,   134,   175,
    786       -1,   212,    -1,    40,   212,    -1,   308,    -1,   171,   135,
    787       -1,   171,    -1,   176,   171,    -1,   170,   132,    -1,    41,
    788      109,   169,   110,   171,    -1,    41,   109,   169,   110,   171,
    789       42,   171,    -1,    43,   109,   169,   110,   183,    -1,    43,
    790      109,   169,   110,   114,   134,   205,   184,   115,    -1,    53,
    791      109,   169,   110,   183,    -1,    53,   109,   169,   110,   114,
    792      134,   205,   186,   115,    -1,   163,    -1,   163,    96,   163,
    793       -1,   310,    -1,   179,    -1,   180,   116,   179,    -1,    44,
    794      180,   117,    -1,    45,   117,    -1,   181,    -1,   182,   181,
    795       -1,   182,   171,    -1,    -1,   185,    -1,   182,   176,    -1,
    796      185,   182,   176,    -1,    -1,   187,    -1,   182,   189,    -1,
    797      182,   176,   188,    -1,   187,   182,   189,    -1,   187,   182,
    798      176,   188,    -1,    -1,   189,    -1,    56,    -1,    56,   132,
    799       -1,    47,   109,   169,   110,   171,    -1,    46,   171,    47,
    800      109,   169,   110,   132,    -1,    48,   109,   134,   191,   110,
    801      171,    -1,   170,   135,   132,   170,   132,   170,    -1,   212,
    802      170,   132,   170,    -1,    51,    72,   132,    -1,    51,   118,
    803      169,   132,    -1,    50,   132,    -1,    50,    72,   132,    -1,
    804       49,   132,    -1,    49,    72,   132,    -1,    52,   170,   132,
    805       -1,    61,   165,   132,    -1,    62,   165,   132,    -1,    62,
    806      165,    63,   164,   132,    -1,    57,   173,   194,    -1,    57,
    807      173,   196,    -1,    57,   173,   194,   196,    -1,   195,    -1,
    808       58,   109,    96,   110,   173,    -1,   195,    58,   109,    96,
    809      110,   173,    -1,    59,   109,    96,   110,   173,    -1,   195,
    810       59,   109,    96,   110,   173,    -1,    58,   109,   134,   134,
    811      197,   135,   110,   173,   135,    -1,   195,    58,   109,   134,
    812      134,   197,   135,   110,   173,   135,    -1,    59,   109,   134,
    813      134,   197,   135,   110,   173,   135,    -1,   195,    59,   109,
    814      134,   134,   197,   135,   110,   173,   135,    -1,    60,   173,
    815       -1,   225,    -1,   225,   309,    -1,   225,   357,    -1,   366,
    816      139,    -1,   366,    -1,    64,   199,   109,   141,   110,   132,
    817       -1,    64,   199,   109,   141,   117,   200,   110,   132,    -1,
    818       64,   199,   109,   141,   117,   200,   117,   200,   110,   132,
    819       -1,    64,   199,   109,   141,   117,   200,   117,   200,   117,
    820      203,   110,   132,    -1,    64,   199,    51,   109,   141,   117,
    821      117,   200,   117,   203,   117,   204,   110,   132,    -1,    -1,
    822       11,    -1,    -1,   201,    -1,   202,    -1,   201,   116,   202,
    823       -1,   141,   109,   163,   110,    -1,   111,   163,   112,   141,
    824      109,   163,   110,    -1,    -1,   141,    -1,   203,   116,   141,
    825       -1,   139,    -1,   204,   116,   139,    -1,   135,    -1,   206,
    826       -1,   212,    -1,   206,   134,   212,    -1,   135,    -1,   208,
    827       -1,   222,    -1,   208,   134,   222,    -1,    -1,   210,    -1,
    828       29,   211,   132,    -1,   210,    29,   211,   132,    -1,   274,
    829       -1,   211,   116,   274,    -1,   213,    -1,   222,    -1,   214,
    830      135,   132,    -1,   219,   135,   132,    -1,   216,   135,   132,
    831       -1,   293,   135,   132,    -1,   296,   135,   132,    -1,   215,
    832      277,    -1,   231,   215,   277,    -1,   214,   135,   116,   134,
    833      272,   277,    -1,   367,   272,   311,    -1,   370,   272,   311,
    834       -1,   227,   370,   272,   311,    -1,   217,    -1,   227,   217,
    835       -1,   231,   217,    -1,   231,   227,   217,    -1,   216,   135,
    836      116,   134,   272,    -1,   111,   112,   272,   109,   134,   260,
    837      135,   110,    -1,   370,   272,   109,   134,   260,   135,   110,
    838       -1,   218,   272,   109,   134,   260,   135,   110,    -1,   111,
    839      134,   262,   135,   112,    -1,   111,   134,   262,   135,   116,
    840      134,   263,   135,   112,    -1,     3,   215,    -1,     3,   217,
    841       -1,   219,   135,   116,   134,   139,    -1,     3,   225,   309,
    842       -1,   220,   135,   116,   134,   309,    -1,   227,     3,   225,
    843      309,    -1,   225,     3,   309,    -1,   225,     3,   227,   309,
    844       -1,     3,   139,   131,   164,    -1,   221,   135,   116,   134,
    845      139,   131,   164,    -1,   223,   135,   132,    -1,   220,   135,
    846      132,    -1,   221,   135,   132,    -1,   240,   135,   132,    -1,
    847      224,   309,   311,   277,    -1,   223,   116,   312,   309,   311,
    848      277,    -1,   236,    -1,   240,    -1,   242,    -1,   283,    -1,
    849      237,    -1,   241,    -1,   243,    -1,   284,    -1,    -1,   227,
    850       -1,   228,    -1,   227,   228,    -1,   229,    -1,   314,    -1,
    851       10,    -1,    12,    -1,    11,    -1,    14,    -1,    67,    -1,
    852       -1,    13,   109,   230,   286,   110,    -1,   232,    -1,   227,
    853      232,    -1,   231,   227,   232,    -1,   233,    -1,   232,   233,
    854       -1,   234,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
    855       -1,     8,    -1,     9,    -1,    69,    -1,    71,    -1,    16,
    856       -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,    17,
    857       -1,    22,    -1,    23,    -1,    15,    -1,    25,    -1,    26,
    858       -1,    27,    -1,    24,    -1,   237,    -1,   231,   237,    -1,
    859      236,   233,    -1,   236,   233,   227,    -1,   236,   233,   237,
    860       -1,   238,    -1,   226,   239,   226,    -1,   235,    -1,   227,
    861      235,    -1,   238,   228,    -1,   238,   235,    -1,    28,   109,
    862      276,   110,    -1,    28,   109,   169,   110,    -1,    78,   109,
    863      276,   110,    -1,    78,   109,   169,   110,    -1,   241,    -1,
    864      231,   241,    -1,   240,   233,    -1,   240,   233,   227,    -1,
    865      244,    -1,   227,   244,    -1,   241,   228,    -1,   243,    -1,
    866      231,   243,    -1,   242,   233,    -1,   242,   233,   227,    -1,
    867       74,    -1,   227,    74,    -1,   243,   228,    -1,   245,    -1,
    868      256,    -1,   247,   114,   248,   115,    -1,   247,   274,    -1,
    869       -1,   247,   274,   246,   114,   248,   115,    -1,   247,   109,
    870      292,   110,   114,   248,   115,    -1,   247,   285,    -1,    31,
    871      312,    -1,    32,   312,    -1,    -1,   248,   249,    -1,   250,
    872      132,    -1,    40,   250,   132,    -1,   251,   132,    -1,    40,
    873      251,   132,    -1,   366,    -1,   366,   274,    -1,   250,   116,
    874      274,    -1,   250,   116,    -1,   225,   252,    -1,   251,   116,
    875      312,   252,    -1,    -1,   254,    -1,   318,   253,    -1,   331,
    876      253,    -1,   357,    -1,    -1,   254,    -1,   117,   163,    -1,
    877       30,   312,    -1,   255,   114,   258,   372,   115,    -1,   255,
    878      274,    -1,    -1,   255,   274,   257,   114,   258,   372,   115,
    879       -1,   274,   259,    -1,   258,   116,   274,   259,    -1,    -1,
    880      131,   163,    -1,    -1,   261,    -1,   263,    -1,   262,    -1,
    881      262,   135,   116,   134,   263,    -1,   263,   135,   116,   134,
    882       96,    -1,   262,   135,   116,   134,    96,    -1,   267,    -1,
    883      263,   135,   116,   134,   267,    -1,   262,   135,   116,   134,
    884      267,    -1,   262,   135,   116,   134,   263,   135,   116,   134,
    885      267,    -1,   268,    -1,   263,   135,   116,   134,   268,    -1,
    886       -1,   265,    -1,   266,    -1,   266,   135,   116,   134,    96,
    887       -1,   270,    -1,   269,    -1,   266,   135,   116,   134,   270,
    888       -1,   266,   135,   116,   134,   269,    -1,   269,    -1,   362,
    889      272,   373,    -1,   370,   272,   373,    -1,   227,   370,   272,
    890      373,    -1,   217,    -1,   270,    -1,   362,    -1,   370,    -1,
    891      227,   370,    -1,   371,    -1,   224,   336,   373,    -1,   224,
    892      340,   373,    -1,   224,    -1,   224,   351,    -1,   139,    -1,
    893      271,   116,   139,    -1,   137,    -1,    74,    -1,    75,    -1,
    894      138,    -1,    74,    -1,    75,    -1,   139,    -1,    74,    -1,
    895       75,    -1,   366,    -1,   225,    -1,   225,   357,    -1,   366,
    896       -1,   371,    -1,   225,    -1,   225,   345,    -1,    -1,   131,
    897      278,    -1,   107,   278,    -1,   164,    -1,   114,   279,   372,
    898      115,    -1,    -1,   278,    -1,   280,   278,    -1,   279,   116,
    899      278,    -1,   279,   116,   280,   278,    -1,   281,   117,    -1,
    900      274,   117,    -1,   282,    -1,   281,   282,    -1,    80,    -1,
    901      113,   274,    -1,   111,   134,   164,   135,   112,    -1,   111,
    902      134,   310,   135,   112,    -1,   111,   134,   163,    96,   163,
    903      135,   112,    -1,   113,   111,   134,   146,   135,   112,    -1,
    904      284,    -1,   231,   284,    -1,   283,   233,    -1,   283,   233,
    905      227,    -1,   285,    -1,   227,   285,    -1,   284,   228,    -1,
    906       75,   109,   292,   110,    -1,   287,   373,    -1,   286,   116,
    907      287,   373,    -1,    -1,   289,   274,   288,   290,    -1,   225,
    908      336,    -1,    33,    -1,    35,    -1,    34,    -1,    -1,   290,
    909      291,    -1,   129,   274,   109,   292,   110,    -1,   129,   114,
    910      134,   298,   115,    -1,   129,   109,   134,   286,   135,   110,
    911      114,   134,   298,   115,   109,   292,   110,    -1,   276,    -1,
    912      164,    -1,   292,   116,   276,    -1,   292,   116,   164,    -1,
    913       33,   294,    -1,   232,    33,   294,    -1,   293,   116,   294,
    914       -1,   295,   290,    -1,   295,   290,   131,   276,    -1,   274,
    915       -1,   273,   109,   134,   286,   135,   110,    -1,    36,   274,
    916      109,   134,   286,   135,   110,   114,   115,    -1,    -1,    36,
    917      274,   109,   134,   286,   135,   110,   114,   297,   298,   115,
    918       -1,   299,    -1,   298,   134,   299,    -1,   300,   135,   132,
    919       -1,   301,   135,   132,    -1,   215,    -1,   217,    -1,   300,
    920      135,   116,   134,   272,    -1,   225,   309,    -1,   301,   135,
    921      116,   134,   309,    -1,    -1,   303,    -1,   305,    -1,   303,
    922      134,   305,    -1,    -1,   303,    -1,   212,    -1,   307,    -1,
    923      198,    -1,    -1,     5,    82,   306,   114,   304,   115,    -1,
    924       40,   305,    -1,   308,    -1,   323,   173,    -1,   327,   134,
    925      207,   173,    -1,   216,   173,    -1,   224,   323,   173,    -1,
    926      227,   323,   173,    -1,   231,   323,   173,    -1,   231,   227,
    927      323,   173,    -1,   224,   327,   134,   207,   173,    -1,   227,
    928      327,   134,   207,   173,    -1,   231,   327,   134,   207,   173,
    929       -1,   231,   227,   327,   134,   207,   173,    -1,   318,    -1,
    930      331,    -1,   323,    -1,   163,   123,   163,    -1,    -1,    64,
    931      109,   141,   110,   312,    -1,    -1,   313,    -1,   314,    -1,
    932      313,   314,    -1,    39,   109,   109,   315,   110,   110,    -1,
    933      316,    -1,   315,   116,   316,    -1,    -1,   317,    -1,   317,
    934      109,   170,   110,    -1,   272,    -1,   234,    -1,   235,    -1,
    935      228,    -1,   319,   312,    -1,   320,    -1,   321,   312,    -1,
    936      322,   312,    -1,   137,    -1,   109,   319,   110,    -1,   149,
    937      318,    -1,   149,   227,   318,    -1,   109,   320,   110,    -1,
    938      319,   349,    -1,   109,   320,   110,   349,    -1,   109,   321,
    939      110,   350,    -1,   109,   321,   110,    -1,   109,   320,   110,
    940      109,   134,   264,   135,   110,    -1,   109,   322,   110,    -1,
    941      324,   312,    -1,   325,    -1,   326,   312,    -1,   319,   109,
    942      134,   264,   135,   110,    -1,   109,   325,   110,   109,   134,
    943      264,   135,   110,    -1,   109,   324,   110,    -1,   149,   323,
    944       -1,   149,   227,   323,    -1,   109,   325,   110,    -1,   109,
    945      325,   110,   349,    -1,   109,   326,   110,   350,    -1,   109,
    946      326,   110,    -1,   328,    -1,   329,    -1,   330,    -1,   319,
    947      109,   271,   110,    -1,   109,   329,   110,   109,   271,   110,
    948       -1,   109,   328,   110,    -1,   149,   327,    -1,   149,   227,
    949      327,    -1,   109,   329,   110,    -1,   109,   329,   110,   349,
    950       -1,   109,   330,   110,   350,    -1,   109,   330,   110,    -1,
    951      332,   312,    -1,   333,    -1,   334,   312,    -1,   335,   312,
    952       -1,   341,    -1,   109,   332,   110,    -1,   149,   331,    -1,
    953      149,   227,   331,    -1,   109,   333,   110,    -1,   332,   349,
    954       -1,   109,   333,   110,   349,    -1,   109,   334,   110,   350,
    955       -1,   109,   334,   110,    -1,   332,   109,   134,   264,   135,
    956      110,    -1,   109,   333,   110,   109,   134,   264,   135,   110,
    957       -1,   109,   335,   110,    -1,   319,   312,    -1,   337,    -1,
    958      338,   312,    -1,   339,   312,    -1,   149,   336,    -1,   149,
    959      227,   336,    -1,   109,   337,   110,    -1,   319,   355,    -1,
    960      109,   337,   110,   349,    -1,   109,   338,   110,   350,    -1,
    961      109,   338,   110,    -1,   319,   109,   134,   264,   135,   110,
    962       -1,   109,   337,   110,   109,   134,   264,   135,   110,    -1,
    963      109,   339,   110,    -1,   341,   312,    -1,   342,    -1,   343,
    964      312,    -1,   344,   312,    -1,    74,    -1,    75,    -1,   149,
    965      340,    -1,   149,   227,   340,    -1,   109,   342,   110,    -1,
    966      341,   355,    -1,   109,   342,   110,   355,    -1,   341,   109,
    967      134,   264,   135,   110,    -1,   109,   342,   110,   109,   134,
    968      264,   135,   110,    -1,   346,    -1,   347,   312,    -1,   348,
    969      312,    -1,   149,    -1,   149,   227,    -1,   149,   345,    -1,
    970      149,   227,   345,    -1,   109,   346,   110,    -1,   349,    -1,
    971      109,   346,   110,   349,    -1,   109,   347,   110,   350,    -1,
    972      109,   347,   110,    -1,   109,   134,   264,   135,   110,    -1,
    973      109,   346,   110,   109,   134,   264,   135,   110,    -1,   109,
    974      348,   110,    -1,   111,   112,    -1,   111,   112,   350,    -1,
    975      350,    -1,   111,   134,   164,   135,   112,    -1,   111,   134,
    976      118,   135,   112,    -1,   350,   111,   134,   164,   135,   112,
    977       -1,   350,   111,   134,   118,   135,   112,    -1,   352,    -1,
    978      353,   312,    -1,   354,   312,    -1,   149,    -1,   149,   227,
    979       -1,   149,   351,    -1,   149,   227,   351,    -1,   109,   352,
    980      110,    -1,   355,    -1,   109,   352,   110,   355,    -1,   109,
    981      353,   110,   350,    -1,   109,   353,   110,    -1,   109,   134,
    982      264,   135,   110,    -1,   109,   352,   110,   109,   134,   264,
    983      135,   110,    -1,   109,   354,   110,    -1,   356,    -1,   356,
    984      350,    -1,   350,    -1,   111,   112,    -1,   111,   134,   227,
    985      118,   135,   112,    -1,   111,   134,   227,   135,   112,    -1,
    986      111,   134,   227,   164,   135,   112,    -1,   111,   134,     7,
    987      226,   164,   135,   112,    -1,   111,   134,   227,     7,   164,
    988      135,   112,    -1,   358,    -1,   359,   312,    -1,   360,   312,
    989       -1,   149,    -1,   149,   227,    -1,   149,   357,    -1,   149,
    990      227,   357,    -1,   109,   358,   110,    -1,   349,    -1,   109,
    991      358,   110,   349,    -1,   109,   359,   110,   350,    -1,   109,
    992      359,   110,    -1,   109,   358,   110,   109,   134,   264,   135,
    993      110,    -1,   109,   360,   110,    -1,   362,    -1,   370,    -1,
    994      227,   370,    -1,   363,    -1,   364,    -1,   149,   225,    -1,
    995      227,   149,   225,    -1,   149,   371,    -1,   227,   149,   371,
    996       -1,   149,   361,    -1,   227,   149,   361,    -1,   111,   112,
    997      225,    -1,   365,   225,    -1,   111,   112,   350,   225,    -1,
    998      365,   350,   225,    -1,   350,   225,    -1,   111,   112,   363,
    999       -1,   365,   363,    -1,   111,   112,   350,   363,    -1,   365,
    1000      350,   363,    -1,   350,   363,    -1,   111,   134,   227,   118,
    1001      135,   112,    -1,   111,   134,   227,   164,   135,   112,    -1,
    1002      111,   134,   231,   164,   135,   112,    -1,   111,   134,   231,
    1003      227,   164,   135,   112,    -1,   370,    -1,   227,   370,    -1,
    1004      367,    -1,   368,    -1,   369,    -1,   149,   225,    -1,   227,
    1005      149,   225,    -1,   149,   371,    -1,   227,   149,   371,    -1,
    1006      149,   366,    -1,   227,   149,   366,    -1,   111,   112,   225,
    1007       -1,   111,   112,   350,   225,    -1,   350,   225,    -1,   111,
    1008      112,   368,    -1,   111,   112,   350,   368,    -1,   350,   368,
    1009       -1,   111,   134,   263,   135,   112,    -1,   111,   112,   109,
    1010      260,   110,    -1,   370,   109,   134,   260,   135,   110,    -1,
    1011      218,   109,   134,   260,   135,   110,    -1,    -1,   116,    -1,
    1012       -1,   131,   164,    -1
     756     164,    -1,   147,    -1,   146,   116,   147,    -1,   139,    -1,
     757     139,   113,   147,    -1,   139,   113,   111,   134,   146,   135,
     758     112,    -1,   139,    85,   147,    -1,   139,    85,   111,   134,
     759     146,   135,   112,    -1,   143,    -1,   136,    -1,   141,    -1,
     760      40,   151,    -1,   149,   151,    -1,   150,   151,    -1,    86,
     761     148,    -1,    87,   148,    -1,    37,   148,    -1,    37,   109,
     762     275,   110,    -1,    66,   148,    -1,    66,   109,   275,   110,
     763      -1,    38,   109,   275,   116,   139,   110,    -1,    76,    -1,
     764      76,   109,   145,   110,    -1,    76,   109,   276,   110,    -1,
     765     117,    -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,
     766     122,    -1,   148,    -1,   109,   275,   110,   151,    -1,   109,
     767     275,   110,   167,    -1,   151,    -1,   152,   117,   151,    -1,
     768     152,   123,   151,    -1,   152,   124,   151,    -1,   152,    -1,
     769     153,   119,   152,    -1,   153,   120,   152,    -1,   153,    -1,
     770     154,    88,   153,    -1,   154,    89,   153,    -1,   154,    -1,
     771     155,   125,   154,    -1,   155,   126,   154,    -1,   155,    90,
     772     154,    -1,   155,    91,   154,    -1,   155,    -1,   156,    92,
     773     155,    -1,   156,    93,   155,    -1,   156,    -1,   157,   118,
     774     156,    -1,   157,    -1,   158,   127,   157,    -1,   158,    -1,
     775     159,   128,   158,    -1,   159,    -1,   160,    94,   159,    -1,
     776     160,    -1,   161,    95,   160,    -1,   161,    -1,   161,   129,
     777     169,   130,   162,    -1,   161,   129,   130,   162,    -1,   161,
     778     129,   169,   130,   167,    -1,   162,    -1,   162,    -1,   148,
     779     166,   164,    -1,   167,   373,    -1,    -1,   164,    -1,   131,
     780      -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,   101,
     781      -1,   102,    -1,   103,    -1,   104,    -1,   105,    -1,   106,
     782      -1,   111,   112,    -1,   111,   134,   164,   135,   112,    -1,
     783     111,   134,   116,   168,   135,   112,    -1,   111,   134,   164,
     784     116,   168,   135,   112,    -1,   165,    -1,   168,   116,   165,
     785      -1,   164,    -1,   169,   116,   164,    -1,    -1,   169,    -1,
     786     172,    -1,   173,    -1,   177,    -1,   178,    -1,   190,    -1,
     787     192,    -1,   193,    -1,   198,    -1,   127,   143,   114,   144,
     788     115,   132,    -1,    72,   130,   312,   171,    -1,   114,   115,
     789      -1,   114,   134,   134,   209,   174,   135,   115,    -1,   175,
     790      -1,   174,   134,   175,    -1,   212,    -1,    40,   212,    -1,
     791     308,    -1,   171,   135,    -1,   171,    -1,   176,   171,    -1,
     792     170,   132,    -1,    41,   109,   169,   110,   171,    -1,    41,
     793     109,   169,   110,   171,    42,   171,    -1,    43,   109,   169,
     794     110,   183,    -1,    43,   109,   169,   110,   114,   134,   205,
     795     184,   115,    -1,    53,   109,   169,   110,   183,    -1,    53,
     796     109,   169,   110,   114,   134,   205,   186,   115,    -1,   163,
     797      -1,   163,    96,   163,    -1,   310,    -1,   179,    -1,   180,
     798     116,   179,    -1,    44,   180,   130,    -1,    45,   130,    -1,
     799     181,    -1,   182,   181,    -1,   182,   171,    -1,    -1,   185,
     800      -1,   182,   176,    -1,   185,   182,   176,    -1,    -1,   187,
     801      -1,   182,   189,    -1,   182,   176,   188,    -1,   187,   182,
     802     189,    -1,   187,   182,   176,   188,    -1,    -1,   189,    -1,
     803      56,    -1,    56,   132,    -1,    47,   109,   169,   110,   171,
     804      -1,    46,   171,    47,   109,   169,   110,   132,    -1,    48,
     805     109,   134,   191,   110,   171,    -1,   170,   135,   132,   170,
     806     132,   170,    -1,   212,   170,   132,   170,    -1,    51,    72,
     807     132,    -1,    51,   117,   169,   132,    -1,    50,   132,    -1,
     808      50,    72,   132,    -1,    49,   132,    -1,    49,    72,   132,
     809      -1,    52,   170,   132,    -1,    61,   165,   132,    -1,    62,
     810     165,   132,    -1,    62,   165,    63,   164,   132,    -1,    57,
     811     173,   194,    -1,    57,   173,   196,    -1,    57,   173,   194,
     812     196,    -1,   195,    -1,    58,   109,    96,   110,   173,    -1,
     813     195,    58,   109,    96,   110,   173,    -1,    59,   109,    96,
     814     110,   173,    -1,   195,    59,   109,    96,   110,   173,    -1,
     815      58,   109,   134,   134,   197,   135,   110,   173,   135,    -1,
     816     195,    58,   109,   134,   134,   197,   135,   110,   173,   135,
     817      -1,    59,   109,   134,   134,   197,   135,   110,   173,   135,
     818      -1,   195,    59,   109,   134,   134,   197,   135,   110,   173,
     819     135,    -1,    60,   173,    -1,   225,    -1,   225,   309,    -1,
     820     225,   357,    -1,   366,   139,    -1,   366,    -1,    64,   199,
     821     109,   141,   110,   132,    -1,    64,   199,   109,   141,   130,
     822     200,   110,   132,    -1,    64,   199,   109,   141,   130,   200,
     823     130,   200,   110,   132,    -1,    64,   199,   109,   141,   130,
     824     200,   130,   200,   130,   203,   110,   132,    -1,    64,   199,
     825      51,   109,   141,   130,   130,   200,   130,   203,   130,   204,
     826     110,   132,    -1,    -1,    11,    -1,    -1,   201,    -1,   202,
     827      -1,   201,   116,   202,    -1,   141,   109,   163,   110,    -1,
     828     111,   163,   112,   141,   109,   163,   110,    -1,    -1,   141,
     829      -1,   203,   116,   141,    -1,   139,    -1,   204,   116,   139,
     830      -1,   135,    -1,   206,    -1,   212,    -1,   206,   134,   212,
     831      -1,   135,    -1,   208,    -1,   222,    -1,   208,   134,   222,
     832      -1,    -1,   210,    -1,    29,   211,   132,    -1,   210,    29,
     833     211,   132,    -1,   274,    -1,   211,   116,   274,    -1,   213,
     834      -1,   222,    -1,   214,   135,   132,    -1,   219,   135,   132,
     835      -1,   216,   135,   132,    -1,   293,   135,   132,    -1,   296,
     836     135,   132,    -1,   215,   277,    -1,   231,   215,   277,    -1,
     837     214,   135,   116,   134,   272,   277,    -1,   367,   272,   311,
     838      -1,   370,   272,   311,    -1,   227,   370,   272,   311,    -1,
     839     217,    -1,   227,   217,    -1,   231,   217,    -1,   231,   227,
     840     217,    -1,   216,   135,   116,   134,   272,    -1,   111,   112,
     841     272,   109,   134,   260,   135,   110,    -1,   370,   272,   109,
     842     134,   260,   135,   110,    -1,   218,   272,   109,   134,   260,
     843     135,   110,    -1,   111,   134,   262,   135,   112,    -1,   111,
     844     134,   262,   135,   116,   134,   263,   135,   112,    -1,     3,
     845     215,    -1,     3,   217,    -1,   219,   135,   116,   134,   139,
     846      -1,     3,   225,   309,    -1,   220,   135,   116,   134,   309,
     847      -1,   227,     3,   225,   309,    -1,   225,     3,   309,    -1,
     848     225,     3,   227,   309,    -1,     3,   139,   131,   164,    -1,
     849     221,   135,   116,   134,   139,   131,   164,    -1,   223,   135,
     850     132,    -1,   220,   135,   132,    -1,   221,   135,   132,    -1,
     851     240,   135,   132,    -1,   224,   309,   311,   277,    -1,   223,
     852     116,   312,   309,   311,   277,    -1,   236,    -1,   240,    -1,
     853     242,    -1,   283,    -1,   237,    -1,   241,    -1,   243,    -1,
     854     284,    -1,    -1,   227,    -1,   228,    -1,   227,   228,    -1,
     855     229,    -1,   314,    -1,    10,    -1,    12,    -1,    11,    -1,
     856      14,    -1,    67,    -1,    -1,    13,   109,   230,   286,   110,
     857      -1,   232,    -1,   227,   232,    -1,   231,   227,   232,    -1,
     858     233,    -1,   232,   233,    -1,   234,    -1,     5,    -1,     7,
     859      -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,    69,
     860      -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,    18,
     861      -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,    15,
     862      -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,   237,
     863      -1,   231,   237,    -1,   236,   233,    -1,   236,   233,   227,
     864      -1,   236,   233,   237,    -1,   238,    -1,   226,   239,   226,
     865      -1,   235,    -1,   227,   235,    -1,   238,   228,    -1,   238,
     866     235,    -1,    28,   109,   276,   110,    -1,    28,   109,   169,
     867     110,    -1,    78,   109,   276,   110,    -1,    78,   109,   169,
     868     110,    -1,   241,    -1,   231,   241,    -1,   240,   233,    -1,
     869     240,   233,   227,    -1,   244,    -1,   227,   244,    -1,   241,
     870     228,    -1,   243,    -1,   231,   243,    -1,   242,   233,    -1,
     871     242,   233,   227,    -1,    74,    -1,   227,    74,    -1,   243,
     872     228,    -1,   245,    -1,   256,    -1,   247,   114,   248,   115,
     873      -1,   247,   274,    -1,    -1,   247,   274,   246,   114,   248,
     874     115,    -1,   247,   109,   292,   110,   114,   248,   115,    -1,
     875     247,   285,    -1,    31,   312,    -1,    32,   312,    -1,    -1,
     876     248,   249,    -1,   250,   132,    -1,    40,   250,   132,    -1,
     877     251,   132,    -1,    40,   251,   132,    -1,   366,    -1,   366,
     878     274,    -1,   250,   116,   274,    -1,   250,   116,    -1,   225,
     879     252,    -1,   251,   116,   312,   252,    -1,    -1,   254,    -1,
     880     318,   253,    -1,   331,   253,    -1,   357,    -1,    -1,   254,
     881      -1,   130,   163,    -1,    30,   312,    -1,   255,   114,   258,
     882     372,   115,    -1,   255,   274,    -1,    -1,   255,   274,   257,
     883     114,   258,   372,   115,    -1,   274,   259,    -1,   258,   116,
     884     274,   259,    -1,    -1,   131,   163,    -1,    -1,   261,    -1,
     885     263,    -1,   262,    -1,   262,   135,   116,   134,   263,    -1,
     886     263,   135,   116,   134,    96,    -1,   262,   135,   116,   134,
     887      96,    -1,   267,    -1,   263,   135,   116,   134,   267,    -1,
     888     262,   135,   116,   134,   267,    -1,   262,   135,   116,   134,
     889     263,   135,   116,   134,   267,    -1,   268,    -1,   263,   135,
     890     116,   134,   268,    -1,    -1,   265,    -1,   266,    -1,   266,
     891     135,   116,   134,    96,    -1,   270,    -1,   269,    -1,   266,
     892     135,   116,   134,   270,    -1,   266,   135,   116,   134,   269,
     893      -1,   269,    -1,   362,   272,   373,    -1,   370,   272,   373,
     894      -1,   227,   370,   272,   373,    -1,   217,    -1,   270,    -1,
     895     362,    -1,   370,    -1,   227,   370,    -1,   371,    -1,   224,
     896     336,   373,    -1,   224,   340,   373,    -1,   224,    -1,   224,
     897     351,    -1,   139,    -1,   271,   116,   139,    -1,   137,    -1,
     898      74,    -1,    75,    -1,   138,    -1,    74,    -1,    75,    -1,
     899     139,    -1,    74,    -1,    75,    -1,   366,    -1,   225,    -1,
     900     225,   357,    -1,   366,    -1,   371,    -1,   225,    -1,   225,
     901     345,    -1,    -1,   131,   278,    -1,   107,   278,    -1,   164,
     902      -1,   114,   279,   372,   115,    -1,    -1,   278,    -1,   280,
     903     278,    -1,   279,   116,   278,    -1,   279,   116,   280,   278,
     904      -1,   281,   130,    -1,   274,   130,    -1,   282,    -1,   281,
     905     282,    -1,   113,   274,    -1,   111,   134,   164,   135,   112,
     906      -1,   111,   134,   310,   135,   112,    -1,   111,   134,   163,
     907      96,   163,   135,   112,    -1,   113,   111,   134,   146,   135,
     908     112,    -1,   284,    -1,   231,   284,    -1,   283,   233,    -1,
     909     283,   233,   227,    -1,   285,    -1,   227,   285,    -1,   284,
     910     228,    -1,    75,   109,   292,   110,    -1,   287,   373,    -1,
     911     286,   116,   287,   373,    -1,    -1,   289,   274,   288,   290,
     912      -1,   225,   336,    -1,    33,    -1,    35,    -1,    34,    -1,
     913      -1,   290,   291,    -1,   128,   274,   109,   292,   110,    -1,
     914     128,   114,   134,   298,   115,    -1,   128,   109,   134,   286,
     915     135,   110,   114,   134,   298,   115,   109,   292,   110,    -1,
     916     276,    -1,   164,    -1,   292,   116,   276,    -1,   292,   116,
     917     164,    -1,    33,   294,    -1,   232,    33,   294,    -1,   293,
     918     116,   294,    -1,   295,   290,    -1,   295,   290,   131,   276,
     919      -1,   274,    -1,   273,   109,   134,   286,   135,   110,    -1,
     920      36,   274,   109,   134,   286,   135,   110,   114,   115,    -1,
     921      -1,    36,   274,   109,   134,   286,   135,   110,   114,   297,
     922     298,   115,    -1,   299,    -1,   298,   134,   299,    -1,   300,
     923     135,   132,    -1,   301,   135,   132,    -1,   215,    -1,   217,
     924      -1,   300,   135,   116,   134,   272,    -1,   225,   309,    -1,
     925     301,   135,   116,   134,   309,    -1,    -1,   303,    -1,   305,
     926      -1,   303,   134,   305,    -1,    -1,   303,    -1,   212,    -1,
     927     307,    -1,   198,    -1,    -1,     5,    82,   306,   114,   304,
     928     115,    -1,    40,   305,    -1,   308,    -1,   323,   173,    -1,
     929     327,   134,   207,   173,    -1,   216,   173,    -1,   224,   323,
     930     173,    -1,   227,   323,   173,    -1,   231,   323,   173,    -1,
     931     231,   227,   323,   173,    -1,   224,   327,   134,   207,   173,
     932      -1,   227,   327,   134,   207,   173,    -1,   231,   327,   134,
     933     207,   173,    -1,   231,   227,   327,   134,   207,   173,    -1,
     934     318,    -1,   331,    -1,   323,    -1,   163,   122,   163,    -1,
     935      -1,    64,   109,   141,   110,   312,    -1,    -1,   313,    -1,
     936     314,    -1,   313,   314,    -1,    39,   109,   109,   315,   110,
     937     110,    -1,   316,    -1,   315,   116,   316,    -1,    -1,   317,
     938      -1,   317,   109,   170,   110,    -1,   272,    -1,   234,    -1,
     939     235,    -1,   228,    -1,   319,   312,    -1,   320,    -1,   321,
     940     312,    -1,   322,   312,    -1,   137,    -1,   109,   319,   110,
     941      -1,   149,   318,    -1,   149,   227,   318,    -1,   109,   320,
     942     110,    -1,   319,   349,    -1,   109,   320,   110,   349,    -1,
     943     109,   321,   110,   350,    -1,   109,   321,   110,    -1,   109,
     944     320,   110,   109,   134,   264,   135,   110,    -1,   109,   322,
     945     110,    -1,   324,   312,    -1,   325,    -1,   326,   312,    -1,
     946     319,   109,   134,   264,   135,   110,    -1,   109,   325,   110,
     947     109,   134,   264,   135,   110,    -1,   109,   324,   110,    -1,
     948     149,   323,    -1,   149,   227,   323,    -1,   109,   325,   110,
     949      -1,   109,   325,   110,   349,    -1,   109,   326,   110,   350,
     950      -1,   109,   326,   110,    -1,   328,    -1,   329,    -1,   330,
     951      -1,   319,   109,   271,   110,    -1,   109,   329,   110,   109,
     952     271,   110,    -1,   109,   328,   110,    -1,   149,   327,    -1,
     953     149,   227,   327,    -1,   109,   329,   110,    -1,   109,   329,
     954     110,   349,    -1,   109,   330,   110,   350,    -1,   109,   330,
     955     110,    -1,   332,   312,    -1,   333,    -1,   334,   312,    -1,
     956     335,   312,    -1,   341,    -1,   109,   332,   110,    -1,   149,
     957     331,    -1,   149,   227,   331,    -1,   109,   333,   110,    -1,
     958     332,   349,    -1,   109,   333,   110,   349,    -1,   109,   334,
     959     110,   350,    -1,   109,   334,   110,    -1,   332,   109,   134,
     960     264,   135,   110,    -1,   109,   333,   110,   109,   134,   264,
     961     135,   110,    -1,   109,   335,   110,    -1,   319,   312,    -1,
     962     337,    -1,   338,   312,    -1,   339,   312,    -1,   149,   336,
     963      -1,   149,   227,   336,    -1,   109,   337,   110,    -1,   319,
     964     355,    -1,   109,   337,   110,   349,    -1,   109,   338,   110,
     965     350,    -1,   109,   338,   110,    -1,   319,   109,   134,   264,
     966     135,   110,    -1,   109,   337,   110,   109,   134,   264,   135,
     967     110,    -1,   109,   339,   110,    -1,   341,   312,    -1,   342,
     968      -1,   343,   312,    -1,   344,   312,    -1,    74,    -1,    75,
     969      -1,   149,   340,    -1,   149,   227,   340,    -1,   109,   342,
     970     110,    -1,   341,   355,    -1,   109,   342,   110,   355,    -1,
     971     341,   109,   134,   264,   135,   110,    -1,   109,   342,   110,
     972     109,   134,   264,   135,   110,    -1,   346,    -1,   347,   312,
     973      -1,   348,   312,    -1,   149,    -1,   149,   227,    -1,   149,
     974     345,    -1,   149,   227,   345,    -1,   109,   346,   110,    -1,
     975     349,    -1,   109,   346,   110,   349,    -1,   109,   347,   110,
     976     350,    -1,   109,   347,   110,    -1,   109,   134,   264,   135,
     977     110,    -1,   109,   346,   110,   109,   134,   264,   135,   110,
     978      -1,   109,   348,   110,    -1,   111,   112,    -1,   111,   112,
     979     350,    -1,   350,    -1,   111,   134,   164,   135,   112,    -1,
     980     111,   134,   117,   135,   112,    -1,   350,   111,   134,   164,
     981     135,   112,    -1,   350,   111,   134,   117,   135,   112,    -1,
     982     352,    -1,   353,   312,    -1,   354,   312,    -1,   149,    -1,
     983     149,   227,    -1,   149,   351,    -1,   149,   227,   351,    -1,
     984     109,   352,   110,    -1,   355,    -1,   109,   352,   110,   355,
     985      -1,   109,   353,   110,   350,    -1,   109,   353,   110,    -1,
     986     109,   134,   264,   135,   110,    -1,   109,   352,   110,   109,
     987     134,   264,   135,   110,    -1,   109,   354,   110,    -1,   356,
     988      -1,   356,   350,    -1,   350,    -1,   111,   112,    -1,   111,
     989     134,   227,   117,   135,   112,    -1,   111,   134,   227,   135,
     990     112,    -1,   111,   134,   227,   164,   135,   112,    -1,   111,
     991     134,     7,   226,   164,   135,   112,    -1,   111,   134,   227,
     992       7,   164,   135,   112,    -1,   358,    -1,   359,   312,    -1,
     993     360,   312,    -1,   149,    -1,   149,   227,    -1,   149,   357,
     994      -1,   149,   227,   357,    -1,   109,   358,   110,    -1,   349,
     995      -1,   109,   358,   110,   349,    -1,   109,   359,   110,   350,
     996      -1,   109,   359,   110,    -1,   109,   358,   110,   109,   134,
     997     264,   135,   110,    -1,   109,   360,   110,    -1,   362,    -1,
     998     370,    -1,   227,   370,    -1,   363,    -1,   364,    -1,   149,
     999     225,    -1,   227,   149,   225,    -1,   149,   371,    -1,   227,
     1000     149,   371,    -1,   149,   361,    -1,   227,   149,   361,    -1,
     1001     111,   112,   225,    -1,   365,   225,    -1,   111,   112,   350,
     1002     225,    -1,   365,   350,   225,    -1,   350,   225,    -1,   111,
     1003     112,   363,    -1,   365,   363,    -1,   111,   112,   350,   363,
     1004      -1,   365,   350,   363,    -1,   350,   363,    -1,   111,   134,
     1005     227,   117,   135,   112,    -1,   111,   134,   227,   164,   135,
     1006     112,    -1,   111,   134,   231,   164,   135,   112,    -1,   111,
     1007     134,   231,   227,   164,   135,   112,    -1,   370,    -1,   227,
     1008     370,    -1,   367,    -1,   368,    -1,   369,    -1,   149,   225,
     1009      -1,   227,   149,   225,    -1,   149,   371,    -1,   227,   149,
     1010     371,    -1,   149,   366,    -1,   227,   149,   366,    -1,   111,
     1011     112,   225,    -1,   111,   112,   350,   225,    -1,   350,   225,
     1012      -1,   111,   112,   368,    -1,   111,   112,   350,   368,    -1,
     1013     350,   368,    -1,   111,   134,   263,   135,   112,    -1,   111,
     1014     112,   109,   260,   110,    -1,   370,   109,   134,   260,   135,
     1015     110,    -1,   218,   109,   134,   260,   135,   110,    -1,    -1,
     1016     116,    -1,    -1,   131,   164,    -1
    10131017};
    10141018
     
    10161020static const yytype_uint16 yyrline[] =
    10171021{
    1018        0,   290,   290,   296,   305,   306,   307,   311,   312,   313,
    1019      317,   318,   322,   323,   327,   328,   332,   333,   339,   341,
    1020      343,   345,   350,   351,   357,   361,   363,   364,   366,   367,
    1021      369,   371,   373,   381,   382,   388,   389,   390,   395,   397,
    1022      402,   403,   407,   411,   413,   415,   417,   422,   425,   427,
    1023      429,   431,   436,   438,   440,   442,   444,   446,   448,   450,
    1024      452,   454,   456,   463,   464,   466,   470,   471,   472,   473,
    1025      477,   478,   480,   485,   486,   488,   490,   495,   496,   498,
    1026      503,   504,   506,   511,   512,   514,   516,   518,   523,   524,
    1027      526,   531,   532,   537,   538,   543,   544,   549,   550,   555,
    1028      556,   561,   562,   564,   566,   571,   576,   577,   579,   581,
    1029      587,   588,   594,   596,   598,   600,   605,   606,   611,   612,
    1030      613,   614,   615,   616,   617,   618,   619,   620,   624,   625,
    1031      631,   632,   638,   639,   640,   641,   642,   643,   644,   645,
    1032      646,   656,   663,   665,   675,   676,   681,   683,   689,   691,
    1033      695,   696,   701,   706,   709,   711,   713,   722,   724,   735,
    1034      736,   738,   742,   743,   748,   749,   754,   755,   759,   764,
    1035      765,   769,   771,   777,   778,   782,   784,   786,   788,   794,
    1036      795,   799,   801,   806,   808,   810,   815,   817,   822,   824,
    1037      828,   831,   835,   838,   842,   844,   848,   850,   857,   859,
    1038      861,   870,   872,   874,   876,   878,   883,   885,   887,   889,
    1039      894,   907,   908,   913,   915,   920,   924,   926,   928,   930,
    1040      932,   938,   939,   945,   946,   950,   951,   956,   958,   964,
    1041      965,   967,   972,   974,   981,   983,   987,   988,   993,   995,
    1042      999,  1000,  1004,  1006,  1010,  1011,  1015,  1016,  1020,  1021,
    1043     1036,  1037,  1038,  1039,  1040,  1044,  1049,  1056,  1066,  1071,
    1044     1076,  1084,  1089,  1094,  1099,  1104,  1112,  1134,  1139,  1146,
    1045     1148,  1155,  1160,  1165,  1176,  1181,  1186,  1191,  1196,  1205,
    1046     1210,  1218,  1219,  1220,  1221,  1227,  1232,  1240,  1241,  1242,
    1047     1243,  1247,  1248,  1249,  1250,  1255,  1256,  1265,  1266,  1271,
    1048     1272,  1277,  1279,  1281,  1283,  1285,  1288,  1287,  1299,  1300,
    1049     1302,  1312,  1313,  1318,  1322,  1324,  1326,  1328,  1330,  1332,
    1050     1334,  1336,  1341,  1343,  1345,  1347,  1349,  1351,  1353,  1355,
    1051     1357,  1359,  1361,  1363,  1365,  1371,  1372,  1374,  1376,  1378,
    1052     1383,  1384,  1390,  1391,  1393,  1395,  1400,  1402,  1404,  1406,
    1053     1411,  1412,  1414,  1416,  1421,  1422,  1424,  1429,  1430,  1432,
    1054     1434,  1439,  1441,  1443,  1448,  1449,  1453,  1455,  1461,  1460,
    1055     1464,  1466,  1471,  1473,  1479,  1480,  1485,  1486,  1488,  1489,
    1056     1498,  1499,  1501,  1503,  1508,  1510,  1516,  1517,  1519,  1522,
    1057     1525,  1530,  1531,  1536,  1541,  1545,  1547,  1553,  1552,  1559,
    1058     1561,  1567,  1568,  1576,  1577,  1581,  1582,  1583,  1585,  1587,
    1059     1594,  1595,  1597,  1599,  1604,  1605,  1611,  1612,  1616,  1617,
    1060     1622,  1623,  1624,  1626,  1634,  1635,  1637,  1640,  1642,  1646,
    1061     1647,  1648,  1650,  1652,  1656,  1661,  1669,  1670,  1679,  1681,
    1062     1686,  1687,  1688,  1692,  1693,  1694,  1698,  1699,  1700,  1704,
    1063     1705,  1706,  1711,  1712,  1713,  1714,  1720,  1721,  1723,  1728,
    1064     1729,  1734,  1735,  1736,  1737,  1738,  1753,  1754,  1759,  1760,
    1065     1768,  1770,  1772,  1775,  1777,  1779,  1802,  1803,  1805,  1807,
    1066     1812,  1813,  1815,  1820,  1825,  1826,  1832,  1831,  1835,  1839,
    1067     1841,  1843,  1849,  1850,  1855,  1860,  1862,  1867,  1869,  1870,
    1068     1872,  1877,  1879,  1881,  1886,  1888,  1893,  1898,  1906,  1912,
    1069     1911,  1925,  1926,  1931,  1932,  1936,  1941,  1946,  1954,  1959,
    1070     1970,  1971,  1982,  1983,  1989,  1990,  1994,  1995,  1996,  1999,
    1071     1998,  2009,  2018,  2024,  2030,  2039,  2045,  2051,  2057,  2063,
    1072     2071,  2077,  2085,  2091,  2100,  2101,  2102,  2106,  2110,  2112,
    1073     2117,  2118,  2122,  2123,  2128,  2134,  2135,  2138,  2140,  2141,
    1074     2145,  2146,  2147,  2148,  2182,  2184,  2185,  2187,  2192,  2197,
    1075     2202,  2204,  2206,  2211,  2213,  2215,  2217,  2222,  2224,  2233,
    1076     2235,  2236,  2241,  2243,  2245,  2250,  2252,  2254,  2259,  2261,
    1077     2263,  2272,  2273,  2274,  2278,  2280,  2282,  2287,  2289,  2291,
    1078     2296,  2298,  2300,  2315,  2317,  2318,  2320,  2325,  2326,  2331,
    1079     2333,  2335,  2340,  2342,  2344,  2346,  2351,  2353,  2355,  2365,
    1080     2367,  2368,  2370,  2375,  2377,  2379,  2384,  2386,  2388,  2390,
    1081     2395,  2397,  2399,  2430,  2432,  2433,  2435,  2440,  2445,  2453,
    1082     2455,  2457,  2462,  2464,  2469,  2471,  2485,  2486,  2488,  2493,
    1083     2495,  2497,  2499,  2501,  2506,  2507,  2509,  2511,  2516,  2518,
    1084     2520,  2526,  2528,  2530,  2534,  2536,  2538,  2540,  2554,  2555,
    1085     2557,  2562,  2564,  2566,  2568,  2570,  2575,  2576,  2578,  2580,
    1086     2585,  2587,  2589,  2595,  2596,  2598,  2607,  2610,  2612,  2615,
    1087     2617,  2619,  2632,  2633,  2635,  2640,  2642,  2644,  2646,  2648,
    1088     2653,  2654,  2656,  2658,  2663,  2665,  2673,  2674,  2675,  2680,
    1089     2681,  2685,  2687,  2689,  2691,  2693,  2695,  2702,  2704,  2706,
    1090     2708,  2710,  2712,  2714,  2716,  2718,  2720,  2725,  2727,  2729,
    1091     2734,  2760,  2761,  2763,  2767,  2768,  2772,  2774,  2776,  2778,
    1092     2780,  2782,  2789,  2791,  2793,  2795,  2797,  2799,  2804,  2809,
    1093     2811,  2813,  2831,  2833,  2838,  2839
     1022       0,   298,   298,   304,   313,   314,   315,   319,   320,   321,
     1023     325,   326,   330,   331,   335,   336,   340,   341,   352,   354,
     1024     356,   358,   363,   364,   370,   374,   376,   377,   379,   380,
     1025     382,   384,   386,   395,   396,   402,   403,   407,   408,   412,
     1026     416,   418,   420,   422,   427,   430,   432,   434,   439,   452,
     1027     454,   456,   458,   460,   462,   464,   466,   468,   470,   472,
     1028     479,   480,   486,   487,   488,   489,   493,   494,   496,   501,
     1029     502,   504,   506,   511,   512,   514,   519,   520,   522,   527,
     1030     528,   530,   532,   534,   539,   540,   542,   547,   548,   553,
     1031     554,   559,   560,   565,   566,   571,   572,   577,   578,   581,
     1032     583,   588,   593,   594,   596,   602,   603,   607,   608,   609,
     1033     610,   611,   612,   613,   614,   615,   616,   617,   623,   625,
     1034     627,   629,   634,   635,   640,   641,   647,   648,   654,   655,
     1035     656,   657,   658,   659,   660,   661,   662,   672,   679,   681,
     1036     691,   692,   697,   699,   705,   707,   711,   712,   717,   722,
     1037     725,   727,   729,   739,   741,   752,   753,   755,   759,   761,
     1038     765,   766,   771,   772,   776,   781,   782,   786,   788,   794,
     1039     795,   799,   801,   803,   805,   811,   812,   816,   818,   823,
     1040     825,   827,   832,   834,   839,   841,   845,   848,   852,   855,
     1041     859,   861,   863,   865,   870,   872,   874,   879,   881,   883,
     1042     885,   887,   892,   894,   896,   898,   903,   915,   916,   921,
     1043     923,   928,   932,   934,   936,   938,   940,   946,   947,   953,
     1044     954,   958,   959,   964,   966,   972,   973,   975,   980,   982,
     1045     989,   991,   995,   996,  1001,  1003,  1007,  1008,  1012,  1014,
     1046    1018,  1019,  1023,  1024,  1028,  1029,  1044,  1045,  1046,  1047,
     1047    1048,  1052,  1057,  1064,  1074,  1079,  1084,  1092,  1097,  1102,
     1048    1107,  1112,  1120,  1142,  1147,  1154,  1156,  1163,  1168,  1173,
     1049    1184,  1189,  1194,  1199,  1204,  1213,  1218,  1226,  1227,  1228,
     1050    1229,  1235,  1240,  1248,  1249,  1250,  1251,  1255,  1256,  1257,
     1051    1258,  1263,  1264,  1273,  1274,  1279,  1280,  1285,  1287,  1289,
     1052    1291,  1293,  1296,  1295,  1307,  1308,  1310,  1320,  1321,  1326,
     1053    1330,  1332,  1334,  1336,  1338,  1340,  1342,  1344,  1349,  1351,
     1054    1353,  1355,  1357,  1359,  1361,  1363,  1365,  1367,  1369,  1371,
     1055    1373,  1379,  1380,  1382,  1384,  1386,  1391,  1392,  1398,  1399,
     1056    1401,  1403,  1408,  1410,  1412,  1414,  1419,  1420,  1422,  1424,
     1057    1429,  1430,  1432,  1437,  1438,  1440,  1442,  1447,  1449,  1451,
     1058    1456,  1457,  1461,  1463,  1469,  1468,  1472,  1474,  1479,  1481,
     1059    1487,  1488,  1493,  1494,  1496,  1497,  1506,  1507,  1509,  1511,
     1060    1516,  1518,  1524,  1525,  1527,  1530,  1533,  1538,  1539,  1544,
     1061    1549,  1553,  1555,  1561,  1560,  1567,  1569,  1575,  1576,  1584,
     1062    1585,  1589,  1590,  1591,  1593,  1595,  1602,  1603,  1605,  1607,
     1063    1612,  1613,  1619,  1620,  1624,  1625,  1630,  1631,  1632,  1634,
     1064    1642,  1643,  1645,  1648,  1650,  1654,  1655,  1656,  1658,  1660,
     1065    1664,  1669,  1677,  1678,  1687,  1689,  1694,  1695,  1696,  1700,
     1066    1701,  1702,  1706,  1707,  1708,  1712,  1713,  1714,  1719,  1720,
     1067    1721,  1722,  1728,  1729,  1731,  1736,  1737,  1742,  1743,  1744,
     1068    1745,  1746,  1761,  1762,  1767,  1768,  1774,  1776,  1779,  1781,
     1069    1783,  1806,  1807,  1809,  1811,  1816,  1817,  1819,  1824,  1829,
     1070    1830,  1836,  1835,  1839,  1843,  1845,  1847,  1853,  1854,  1859,
     1071    1864,  1866,  1871,  1873,  1874,  1876,  1881,  1883,  1885,  1890,
     1072    1892,  1897,  1902,  1910,  1916,  1915,  1929,  1930,  1935,  1936,
     1073    1940,  1945,  1950,  1958,  1963,  1974,  1975,  1986,  1987,  1993,
     1074    1994,  1998,  1999,  2000,  2003,  2002,  2013,  2022,  2028,  2034,
     1075    2043,  2049,  2055,  2061,  2067,  2075,  2081,  2089,  2095,  2104,
     1076    2105,  2106,  2110,  2114,  2116,  2121,  2122,  2126,  2127,  2132,
     1077    2138,  2139,  2142,  2144,  2145,  2149,  2150,  2151,  2152,  2186,
     1078    2188,  2189,  2191,  2196,  2201,  2206,  2208,  2210,  2215,  2217,
     1079    2219,  2221,  2226,  2228,  2237,  2239,  2240,  2245,  2247,  2249,
     1080    2254,  2256,  2258,  2263,  2265,  2267,  2276,  2277,  2278,  2282,
     1081    2284,  2286,  2291,  2293,  2295,  2300,  2302,  2304,  2319,  2321,
     1082    2322,  2324,  2329,  2330,  2335,  2337,  2339,  2344,  2346,  2348,
     1083    2350,  2355,  2357,  2359,  2369,  2371,  2372,  2374,  2379,  2381,
     1084    2383,  2388,  2390,  2392,  2394,  2399,  2401,  2403,  2434,  2436,
     1085    2437,  2439,  2444,  2449,  2457,  2459,  2461,  2466,  2468,  2473,
     1086    2475,  2489,  2490,  2492,  2497,  2499,  2501,  2503,  2505,  2510,
     1087    2511,  2513,  2515,  2520,  2522,  2524,  2530,  2532,  2534,  2538,
     1088    2540,  2542,  2544,  2558,  2559,  2561,  2566,  2568,  2570,  2572,
     1089    2574,  2579,  2580,  2582,  2584,  2589,  2591,  2593,  2599,  2600,
     1090    2602,  2611,  2614,  2616,  2619,  2621,  2623,  2636,  2637,  2639,
     1091    2644,  2646,  2648,  2650,  2652,  2657,  2658,  2660,  2662,  2667,
     1092    2669,  2677,  2678,  2679,  2684,  2685,  2689,  2691,  2693,  2695,
     1093    2697,  2699,  2706,  2708,  2710,  2712,  2714,  2716,  2718,  2720,
     1094    2722,  2724,  2729,  2731,  2733,  2738,  2764,  2765,  2767,  2771,
     1095    2772,  2776,  2778,  2780,  2782,  2784,  2786,  2793,  2795,  2797,
     1096    2799,  2801,  2803,  2808,  2813,  2815,  2817,  2835,  2837,  2842,
     1097    2843
    10941098};
    10951099#endif
     
    11171121  "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
    11181122  "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
    1119   "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "':'", "'*'",
    1120   "'&'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'",
    1121   "'|'", "'?'", "'='", "';'", "$accept", "push", "pop", "constant",
     1123  "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'",
     1124  "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'",
     1125  "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
    11221126  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
    11231127  "string_literal_list", "primary_expression", "postfix_expression",
     
    11291133  "logical_AND_expression", "logical_OR_expression",
    11301134  "conditional_expression", "constant_expression", "assignment_expression",
    1131   "assignment_expression_opt", "tuple", "tuple_expression_list",
    1132   "assignment_operator", "comma_expression", "comma_expression_opt",
     1135  "assignment_expression_opt", "assignment_operator", "tuple",
     1136  "tuple_expression_list", "comma_expression", "comma_expression_opt",
    11331137  "statement", "labeled_statement", "compound_statement",
    11341138  "block_item_list", "block_item", "statement_list",
     
    12241228     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    12251229     355,   356,   357,   358,   359,   360,   361,   362,   363,    40,
    1226       41,    91,    93,    46,   123,   125,    44,    58,    42,    38,
    1227       43,    45,    33,   126,    47,    37,    60,    62,    94,   124,
    1228       63,    61,    59
     1230      41,    91,    93,    46,   123,   125,    44,    42,    38,    43,
     1231      45,    33,   126,    47,    37,    60,    62,    94,   124,    63,
     1232      58,    61,    59
    12291233};
    12301234# endif
     
    12361240     138,   138,   139,   139,   140,   140,   141,   141,   142,   142,
    12371241     142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
    1238      143,   143,   143,   144,   144,   145,   145,   145,   145,   145,
    1239      146,   146,   147,   147,   147,   147,   147,   148,   148,   148,
     1242     143,   143,   143,   144,   144,   145,   145,   146,   146,   147,
     1243     147,   147,   147,   147,   148,   148,   148,   148,   148,   148,
    12401244     148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
    1241      148,   148,   148,   149,   149,   149,   150,   150,   150,   150,
    1242      151,   151,   151,   152,   152,   152,   152,   153,   153,   153,
    1243      154,   154,   154,   155,   155,   155,   155,   155,   156,   156,
    1244      156,   157,   157,   158,   158,   159,   159,   160,   160,   161,
    1245      161,   162,   162,   162,   162,   163,   164,   164,   164,   164,
    1246      165,   165,   166,   166,   166,   166,   167,   167,   168,   168,
    1247      168,   168,   168,   168,   168,   168,   168,   168,   169,   169,
    1248      170,   170,   171,   171,   171,   171,   171,   171,   171,   171,
    1249      171,   172,   173,   173,   174,   174,   175,   175,   175,   175,
    1250      176,   176,   177,   178,   178,   178,   178,   178,   178,   179,
    1251      179,   179,   180,   180,   181,   181,   182,   182,   183,   184,
    1252      184,   185,   185,   186,   186,   187,   187,   187,   187,   188,
    1253      188,   189,   189,   190,   190,   190,   191,   191,   192,   192,
    1254      192,   192,   192,   192,   192,   192,   192,   192,   193,   193,
    1255      193,   194,   194,   194,   194,   194,   195,   195,   195,   195,
    1256      196,   197,   197,   197,   197,   197,   198,   198,   198,   198,
    1257      198,   199,   199,   200,   200,   201,   201,   202,   202,   203,
    1258      203,   203,   204,   204,   205,   205,   206,   206,   207,   207,
    1259      208,   208,   209,   209,   210,   210,   211,   211,   212,   212,
    1260      213,   213,   213,   213,   213,   214,   214,   214,   215,   215,
    1261      215,   216,   216,   216,   216,   216,   217,   217,   217,   218,
    1262      218,   219,   219,   219,   220,   220,   220,   220,   220,   221,
    1263      221,   222,   222,   222,   222,   223,   223,   224,   224,   224,
    1264      224,   225,   225,   225,   225,   226,   226,   227,   227,   228,
    1265      228,   229,   229,   229,   229,   229,   230,   229,   231,   231,
    1266      231,   232,   232,   233,   234,   234,   234,   234,   234,   234,
    1267      234,   234,   235,   235,   235,   235,   235,   235,   235,   235,
    1268      235,   235,   235,   235,   235,   236,   236,   236,   236,   236,
    1269      237,   237,   238,   238,   238,   238,   239,   239,   239,   239,
    1270      240,   240,   240,   240,   241,   241,   241,   242,   242,   242,
    1271      242,   243,   243,   243,   244,   244,   245,   245,   246,   245,
    1272      245,   245,   247,   247,   248,   248,   249,   249,   249,   249,
    1273      250,   250,   250,   250,   251,   251,   252,   252,   252,   252,
    1274      252,   253,   253,   254,   255,   256,   256,   257,   256,   258,
    1275      258,   259,   259,   260,   260,   261,   261,   261,   261,   261,
    1276      262,   262,   262,   262,   263,   263,   264,   264,   265,   265,
    1277      266,   266,   266,   266,   267,   267,   267,   267,   267,   268,
    1278      268,   268,   268,   268,   269,   269,   270,   270,   271,   271,
    1279      272,   272,   272,   273,   273,   273,   274,   274,   274,   275,
    1280      275,   275,   276,   276,   276,   276,   277,   277,   277,   278,
    1281      278,   279,   279,   279,   279,   279,   280,   280,   281,   281,
    1282      282,   282,   282,   282,   282,   282,   283,   283,   283,   283,
    1283      284,   284,   284,   285,   286,   286,   288,   287,   287,   289,
    1284      289,   289,   290,   290,   291,   291,   291,   292,   292,   292,
    1285      292,   293,   293,   293,   294,   294,   295,   295,   296,   297,
    1286      296,   298,   298,   299,   299,   300,   300,   300,   301,   301,
    1287      302,   302,   303,   303,   304,   304,   305,   305,   305,   306,
    1288      305,   305,   307,   307,   307,   308,   308,   308,   308,   308,
    1289      308,   308,   308,   308,   309,   309,   309,   310,   311,   311,
    1290      312,   312,   313,   313,   314,   315,   315,   316,   316,   316,
    1291      317,   317,   317,   317,   318,   318,   318,   318,   319,   319,
    1292      320,   320,   320,   321,   321,   321,   321,   322,   322,   323,
    1293      323,   323,   324,   324,   324,   325,   325,   325,   326,   326,
    1294      326,   327,   327,   327,   328,   328,   328,   329,   329,   329,
    1295      330,   330,   330,   331,   331,   331,   331,   332,   332,   333,
    1296      333,   333,   334,   334,   334,   334,   335,   335,   335,   336,
    1297      336,   336,   336,   337,   337,   337,   338,   338,   338,   338,
    1298      339,   339,   339,   340,   340,   340,   340,   341,   341,   342,
    1299      342,   342,   343,   343,   344,   344,   345,   345,   345,   346,
    1300      346,   346,   346,   346,   347,   347,   347,   347,   348,   348,
    1301      348,   349,   349,   349,   350,   350,   350,   350,   351,   351,
    1302      351,   352,   352,   352,   352,   352,   353,   353,   353,   353,
    1303      354,   354,   354,   355,   355,   355,   356,   356,   356,   356,
    1304      356,   356,   357,   357,   357,   358,   358,   358,   358,   358,
    1305      359,   359,   359,   359,   360,   360,   361,   361,   361,   362,
    1306      362,   363,   363,   363,   363,   363,   363,   364,   364,   364,
    1307      364,   364,   364,   364,   364,   364,   364,   365,   365,   365,
    1308      365,   366,   366,   366,   367,   367,   368,   368,   368,   368,
    1309      368,   368,   369,   369,   369,   369,   369,   369,   370,   371,
    1310      371,   371,   372,   372,   373,   373
     1245     149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
     1246     152,   152,   152,   153,   153,   153,   154,   154,   154,   155,
     1247     155,   155,   155,   155,   156,   156,   156,   157,   157,   158,
     1248     158,   159,   159,   160,   160,   161,   161,   162,   162,   162,
     1249     162,   163,   164,   164,   164,   165,   165,   166,   166,   166,
     1250     166,   166,   166,   166,   166,   166,   166,   166,   167,   167,
     1251     167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
     1252     171,   171,   171,   171,   171,   171,   171,   172,   173,   173,
     1253     174,   174,   175,   175,   175,   175,   176,   176,   177,   178,
     1254     178,   178,   178,   178,   178,   179,   179,   179,   180,   180,
     1255     181,   181,   182,   182,   183,   184,   184,   185,   185,   186,
     1256     186,   187,   187,   187,   187,   188,   188,   189,   189,   190,
     1257     190,   190,   191,   191,   192,   192,   192,   192,   192,   192,
     1258     192,   192,   192,   192,   193,   193,   193,   194,   194,   194,
     1259     194,   194,   195,   195,   195,   195,   196,   197,   197,   197,
     1260     197,   197,   198,   198,   198,   198,   198,   199,   199,   200,
     1261     200,   201,   201,   202,   202,   203,   203,   203,   204,   204,
     1262     205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
     1263     210,   210,   211,   211,   212,   212,   213,   213,   213,   213,
     1264     213,   214,   214,   214,   215,   215,   215,   216,   216,   216,
     1265     216,   216,   217,   217,   217,   218,   218,   219,   219,   219,
     1266     220,   220,   220,   220,   220,   221,   221,   222,   222,   222,
     1267     222,   223,   223,   224,   224,   224,   224,   225,   225,   225,
     1268     225,   226,   226,   227,   227,   228,   228,   229,   229,   229,
     1269     229,   229,   230,   229,   231,   231,   231,   232,   232,   233,
     1270     234,   234,   234,   234,   234,   234,   234,   234,   235,   235,
     1271     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
     1272     235,   236,   236,   236,   236,   236,   237,   237,   238,   238,
     1273     238,   238,   239,   239,   239,   239,   240,   240,   240,   240,
     1274     241,   241,   241,   242,   242,   242,   242,   243,   243,   243,
     1275     244,   244,   245,   245,   246,   245,   245,   245,   247,   247,
     1276     248,   248,   249,   249,   249,   249,   250,   250,   250,   250,
     1277     251,   251,   252,   252,   252,   252,   252,   253,   253,   254,
     1278     255,   256,   256,   257,   256,   258,   258,   259,   259,   260,
     1279     260,   261,   261,   261,   261,   261,   262,   262,   262,   262,
     1280     263,   263,   264,   264,   265,   265,   266,   266,   266,   266,
     1281     267,   267,   267,   267,   267,   268,   268,   268,   268,   268,
     1282     269,   269,   270,   270,   271,   271,   272,   272,   272,   273,
     1283     273,   273,   274,   274,   274,   275,   275,   275,   276,   276,
     1284     276,   276,   277,   277,   277,   278,   278,   279,   279,   279,
     1285     279,   279,   280,   280,   281,   281,   282,   282,   282,   282,
     1286     282,   283,   283,   283,   283,   284,   284,   284,   285,   286,
     1287     286,   288,   287,   287,   289,   289,   289,   290,   290,   291,
     1288     291,   291,   292,   292,   292,   292,   293,   293,   293,   294,
     1289     294,   295,   295,   296,   297,   296,   298,   298,   299,   299,
     1290     300,   300,   300,   301,   301,   302,   302,   303,   303,   304,
     1291     304,   305,   305,   305,   306,   305,   305,   307,   307,   307,
     1292     308,   308,   308,   308,   308,   308,   308,   308,   308,   309,
     1293     309,   309,   310,   311,   311,   312,   312,   313,   313,   314,
     1294     315,   315,   316,   316,   316,   317,   317,   317,   317,   318,
     1295     318,   318,   318,   319,   319,   320,   320,   320,   321,   321,
     1296     321,   321,   322,   322,   323,   323,   323,   324,   324,   324,
     1297     325,   325,   325,   326,   326,   326,   327,   327,   327,   328,
     1298     328,   328,   329,   329,   329,   330,   330,   330,   331,   331,
     1299     331,   331,   332,   332,   333,   333,   333,   334,   334,   334,
     1300     334,   335,   335,   335,   336,   336,   336,   336,   337,   337,
     1301     337,   338,   338,   338,   338,   339,   339,   339,   340,   340,
     1302     340,   340,   341,   341,   342,   342,   342,   343,   343,   344,
     1303     344,   345,   345,   345,   346,   346,   346,   346,   346,   347,
     1304     347,   347,   347,   348,   348,   348,   349,   349,   349,   350,
     1305     350,   350,   350,   351,   351,   351,   352,   352,   352,   352,
     1306     352,   353,   353,   353,   353,   354,   354,   354,   355,   355,
     1307     355,   356,   356,   356,   356,   356,   356,   357,   357,   357,
     1308     358,   358,   358,   358,   358,   359,   359,   359,   359,   360,
     1309     360,   361,   361,   361,   362,   362,   363,   363,   363,   363,
     1310     363,   363,   364,   364,   364,   364,   364,   364,   364,   364,
     1311     364,   364,   365,   365,   365,   365,   366,   366,   366,   367,
     1312     367,   368,   368,   368,   368,   368,   368,   369,   369,   369,
     1313     369,   369,   369,   370,   371,   371,   371,   372,   372,   373,
     1314     373
    13111315};
    13121316
     
    13171321       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
    13181322       3,     3,     1,     6,     4,     3,     7,     3,     7,     2,
    1319        2,     7,     4,     1,     3,     0,     1,     3,     7,     9,
    1320        1,     3,     1,     3,     7,     3,     7,     1,     1,     1,
    1321        2,     2,     2,     2,     2,     2,     4,     6,     1,     4,
    1322        4,     2,     4,     1,     1,     1,     1,     1,     1,     1,
    1323        1,     4,     4,     1,     3,     3,     3,     1,     3,     3,
    1324        1,     3,     3,     1,     3,     3,     3,     3,     1,     3,
    1325        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
    1326        3,     1,     5,     4,     5,     1,     1,     3,     3,     2,
    1327        0,     1,     2,     5,     6,     7,     1,     3,     1,     1,
    1328        1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
    1329        0,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1330        6,     4,     2,     7,     1,     3,     1,     2,     1,     2,
    1331        1,     2,     2,     5,     7,     5,     9,     5,     9,     1,
    1332        3,     1,     1,     3,     3,     2,     1,     2,     2,     0,
    1333        1,     2,     3,     0,     1,     2,     3,     3,     4,     0,
    1334        1,     1,     2,     5,     7,     6,     6,     4,     3,     4,
    1335        2,     3,     2,     3,     3,     3,     3,     5,     3,     3,
    1336        4,     1,     5,     6,     5,     6,     9,    10,     9,    10,
    1337        2,     1,     2,     2,     2,     1,     6,     8,    10,    12,
    1338       14,     0,     1,     0,     1,     1,     3,     4,     7,     0,
    1339        1,     3,     1,     3,     1,     1,     1,     3,     1,     1,
    1340        1,     3,     0,     1,     3,     4,     1,     3,     1,     1,
    1341        3,     3,     3,     3,     3,     2,     3,     6,     3,     3,
    1342        4,     1,     2,     2,     3,     5,     8,     7,     7,     5,
    1343        9,     2,     2,     5,     3,     5,     4,     3,     4,     4,
    1344        7,     3,     3,     3,     3,     4,     6,     1,     1,     1,
    1345        1,     1,     1,     1,     1,     0,     1,     1,     2,     1,
    1346        1,     1,     1,     1,     1,     1,     0,     5,     1,     2,
    1347        3,     1,     2,     1,     1,     1,     1,     1,     1,     1,
     1323       2,     7,     4,     1,     3,     0,     1,     1,     3,     1,
     1324       3,     7,     3,     7,     1,     1,     1,     2,     2,     2,
     1325       2,     2,     2,     4,     2,     4,     6,     1,     4,     4,
     1326       1,     1,     1,     1,     1,     1,     1,     4,     4,     1,
     1327       3,     3,     3,     1,     3,     3,     1,     3,     3,     1,
     1328       3,     3,     3,     3,     1,     3,     3,     1,     3,     1,
     1329       3,     1,     3,     1,     3,     1,     3,     1,     5,     4,
     1330       5,     1,     1,     3,     2,     0,     1,     1,     1,     1,
     1331       1,     1,     1,     1,     1,     1,     1,     1,     2,     5,
     1332       6,     7,     1,     3,     1,     3,     0,     1,     1,     1,
     1333       1,     1,     1,     1,     1,     1,     6,     4,     2,     7,
     1334       1,     3,     1,     2,     1,     2,     1,     2,     2,     5,
     1335       7,     5,     9,     5,     9,     1,     3,     1,     1,     3,
     1336       3,     2,     1,     2,     2,     0,     1,     2,     3,     0,
     1337       1,     2,     3,     3,     4,     0,     1,     1,     2,     5,
     1338       7,     6,     6,     4,     3,     4,     2,     3,     2,     3,
     1339       3,     3,     3,     5,     3,     3,     4,     1,     5,     6,
     1340       5,     6,     9,    10,     9,    10,     2,     1,     2,     2,
     1341       2,     1,     6,     8,    10,    12,    14,     0,     1,     0,
     1342       1,     1,     3,     4,     7,     0,     1,     3,     1,     3,
     1343       1,     1,     1,     3,     1,     1,     1,     3,     0,     1,
     1344       3,     4,     1,     3,     1,     1,     3,     3,     3,     3,
     1345       3,     2,     3,     6,     3,     3,     4,     1,     2,     2,
     1346       3,     5,     8,     7,     7,     5,     9,     2,     2,     5,
     1347       3,     5,     4,     3,     4,     4,     7,     3,     3,     3,
     1348       3,     4,     6,     1,     1,     1,     1,     1,     1,     1,
     1349       1,     0,     1,     1,     2,     1,     1,     1,     1,     1,
     1350       1,     1,     0,     5,     1,     2,     3,     1,     2,     1,
    13481351       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1349        1,     1,     1,     1,     1,     1,     2,     2,     3,     3,
    1350        1,     3,     1,     2,     2,     2,     4,     4,     4,     4,
    1351        1,     2,     2,     3,     1,     2,     2,     1,     2,     2,
    1352        3,     1,     2,     2,     1,     1,     4,     2,     0,     6,
    1353        7,     2,     2,     2,     0,     2,     2,     3,     2,     3,
    1354        1,     2,     3,     2,     2,     4,     0,     1,     2,     2,
    1355        1,     0,     1,     2,     2,     5,     2,     0,     7,     2,
    1356        4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
    1357        1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
    1358        1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
    1359        1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
    13601352       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1361        1,     2,     1,     1,     1,     2,     0,     2,     2,     1,
    1362        4,     0,     1,     2,     3,     4,     2,     2,     1,     2,
    1363        1,     2,     5,     5,     7,     6,     1,     2,     2,     3,
    1364        1,     2,     2,     4,     2,     4,     0,     4,     2,     1,
    1365        1,     1,     0,     2,     5,     5,    13,     1,     1,     3,
    1366        3,     2,     3,     3,     2,     4,     1,     6,     9,     0,
    1367       11,     1,     3,     3,     3,     1,     1,     5,     2,     5,
    1368        0,     1,     1,     3,     0,     1,     1,     1,     1,     0,
    1369        6,     2,     1,     2,     4,     2,     3,     3,     3,     4,
    1370        5,     5,     5,     6,     1,     1,     1,     3,     0,     5,
    1371        0,     1,     1,     2,     6,     1,     3,     0,     1,     4,
    1372        1,     1,     1,     1,     2,     1,     2,     2,     1,     3,
    1373        2,     3,     3,     2,     4,     4,     3,     8,     3,     2,
    1374        1,     2,     6,     8,     3,     2,     3,     3,     4,     4,
    1375        3,     1,     1,     1,     4,     6,     3,     2,     3,     3,
    1376        4,     4,     3,     2,     1,     2,     2,     1,     3,     2,
    1377        3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
    1378        1,     2,     2,     2,     3,     3,     2,     4,     4,     3,
    1379        6,     8,     3,     2,     1,     2,     2,     1,     1,     2,
    1380        3,     3,     2,     4,     6,     8,     1,     2,     2,     1,
    1381        2,     2,     3,     3,     1,     4,     4,     3,     5,     8,
    1382        3,     2,     3,     1,     5,     5,     6,     6,     1,     2,
    1383        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    1384        5,     8,     3,     1,     2,     1,     2,     6,     5,     6,
    1385        7,     7,     1,     2,     2,     1,     2,     2,     3,     3,
    1386        1,     4,     4,     3,     8,     3,     1,     1,     2,     1,
    1387        1,     2,     3,     2,     3,     2,     3,     3,     2,     4,
    1388        3,     2,     3,     2,     4,     3,     2,     6,     6,     6,
    1389        7,     1,     2,     1,     1,     1,     2,     3,     2,     3,
    1390        2,     3,     3,     4,     2,     3,     4,     2,     5,     5,
    1391        6,     6,     0,     1,     0,     2
     1353       1,     1,     2,     2,     3,     3,     1,     3,     1,     2,
     1354       2,     2,     4,     4,     4,     4,     1,     2,     2,     3,
     1355       1,     2,     2,     1,     2,     2,     3,     1,     2,     2,
     1356       1,     1,     4,     2,     0,     6,     7,     2,     2,     2,
     1357       0,     2,     2,     3,     2,     3,     1,     2,     3,     2,
     1358       2,     4,     0,     1,     2,     2,     1,     0,     1,     2,
     1359       2,     5,     2,     0,     7,     2,     4,     0,     2,     0,
     1360       1,     1,     1,     5,     5,     5,     1,     5,     5,     9,
     1361       1,     5,     0,     1,     1,     5,     1,     1,     5,     5,
     1362       1,     3,     3,     4,     1,     1,     1,     1,     2,     1,
     1363       3,     3,     1,     2,     1,     3,     1,     1,     1,     1,
     1364       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     1365       1,     2,     0,     2,     2,     1,     4,     0,     1,     2,
     1366       3,     4,     2,     2,     1,     2,     2,     5,     5,     7,
     1367       6,     1,     2,     2,     3,     1,     2,     2,     4,     2,
     1368       4,     0,     4,     2,     1,     1,     1,     0,     2,     5,
     1369       5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
     1370       4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
     1371       1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
     1372       1,     1,     1,     1,     0,     6,     2,     1,     2,     4,
     1373       2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
     1374       1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
     1375       1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
     1376       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     1377       4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
     1378       2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
     1379       6,     3,     2,     3,     3,     4,     4,     3,     2,     1,
     1380       2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
     1381       3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
     1382       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1383       2,     2,     1,     1,     2,     3,     3,     2,     4,     6,
     1384       8,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     1385       4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
     1386       5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
     1387       3,     1,     4,     4,     3,     5,     8,     3,     1,     2,
     1388       1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
     1389       1,     2,     2,     3,     3,     1,     4,     4,     3,     8,
     1390       3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
     1391       2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
     1392       3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
     1393       1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
     1394       3,     4,     2,     5,     5,     6,     6,     0,     1,     0,
     1395       2
    13921396};
    13931397
     
    13971401static const yytype_uint16 yydefact[] =
    13981402{
    1399      295,   295,   316,   314,   317,   315,   318,   319,   301,   303,
    1400      302,     0,   304,   330,   322,   327,   325,   326,   324,   323,
    1401      328,   329,   334,   331,   332,   333,   550,   550,   550,     0,
    1402        0,     0,   295,   221,   305,   320,   321,     7,   361,     0,
    1403        8,    14,    15,    65,     0,     2,    63,    64,   568,     9,
    1404      295,   528,   526,   248,     3,   456,     3,   261,     0,     3,
    1405        3,     3,   249,     3,     0,     0,     0,   296,   297,   299,
    1406      295,   308,   311,   313,   342,   287,   335,   340,   288,   350,
    1407      289,   357,   354,   364,     0,     0,   365,   290,   476,   480,
    1408        3,     3,     0,     2,   522,   527,   532,   300,     0,     0,
    1409      550,   580,   550,     2,   591,   592,   593,   295,     0,   734,
    1410      735,     0,    12,     0,    13,   295,   271,   272,     0,   296,
    1411      291,   292,   293,   294,   529,   306,   394,   551,   552,   372,
    1412      373,    12,   447,   448,    11,   443,   446,     0,   506,   501,
    1413      492,   447,   448,     0,     0,   531,   222,     0,   295,     0,
    1414        0,     0,     0,     0,     0,     0,     0,   295,   295,     2,
    1415        0,   736,   296,   585,   597,   740,   733,   731,   738,     0,
    1416        0,     0,   255,     2,     0,   535,   441,   442,   440,     0,
    1417        0,     0,     0,   550,     0,   637,   638,     0,     0,   548,
    1418      544,   550,   565,   550,   550,   546,     2,   545,   550,   604,
    1419      550,   550,   607,     0,     0,     0,   295,   295,   314,   362,
    1420        2,   295,   262,   298,   309,   343,   355,   481,     0,     2,
    1421        0,   456,   263,   296,   336,   351,   358,   477,     0,     2,
    1422        0,   312,   337,   344,   345,     0,   352,   356,   359,   363,
    1423      448,   295,   374,   367,   371,     0,   396,   478,   482,     0,
    1424        0,     0,     1,   295,     2,   533,   579,   581,   295,     2,
    1425      744,   296,   747,   548,   548,     0,   296,     0,     0,   274,
    1426      550,   546,     2,   295,     0,     0,   295,   553,     2,   504,
    1427        2,   557,     0,     0,     0,     0,     0,     0,    18,    58,
    1428        4,     5,     6,    16,     0,     0,   295,     2,    66,    67,
    1429       68,    69,    48,    19,    49,    22,    47,    70,   295,     0,
    1430       73,    77,    80,    83,    88,    91,    93,    95,    97,    99,
    1431      101,   106,   498,   754,   454,   497,     0,   452,   453,     0,
    1432      569,   584,   587,   590,   596,   599,   602,   361,     0,     2,
    1433      742,     0,   295,   745,     2,    63,   295,     3,   428,     0,
    1434      436,   296,   295,   308,   335,   288,   350,   357,     3,     3,
    1435      410,   414,   424,   429,   476,   295,   430,   709,   710,   295,
    1436      431,   433,   295,     2,   586,   598,   732,     2,     2,   250,
    1437        2,   461,     0,   459,   458,   457,   142,     2,     2,   252,
    1438        2,     2,   251,     2,   282,     2,   283,     0,   281,     0,
    1439        0,     0,     0,     0,     0,     0,     0,     0,   570,   609,
    1440        0,   456,     2,   564,   573,   663,   566,   567,   536,   295,
    1441        2,   603,   612,   605,   606,     0,   277,   295,   295,   341,
    1442      296,     0,   296,     0,   295,   737,   741,   739,   537,   295,
    1443      548,   256,   264,   310,     0,     2,   538,   295,   502,   338,
    1444      339,   284,   353,   360,     0,   295,     0,   752,   401,     0,
    1445      479,   503,   253,   254,   523,   295,   438,     0,   295,   238,
    1446        0,     2,   240,     0,   296,     0,   258,     2,   259,   279,
    1447        0,     0,     2,   295,   548,   295,   489,   491,   490,     0,
    1448        0,   754,     0,   295,     0,   295,   493,   295,   563,   561,
    1449      562,   560,     0,   555,   558,     0,     0,   295,    55,   295,
    1450       70,    50,   295,    61,   295,   295,    53,    54,     2,   128,
    1451        0,     0,   450,     0,   449,   731,   112,   295,    17,     0,
    1452       29,    30,    35,     2,     0,    35,   118,   119,   120,   121,
    1453      122,   123,   124,   125,   126,   127,     0,     0,    51,    52,
     1403     291,   291,   312,   310,   313,   311,   314,   315,   297,   299,
     1404     298,     0,   300,   326,   318,   323,   321,   322,   320,   319,
     1405     324,   325,   330,   327,   328,   329,   545,   545,   545,     0,
     1406       0,     0,   291,   217,   301,   316,   317,     7,   357,     0,
     1407       8,    14,    15,     0,     2,    60,    61,   563,     9,   291,
     1408     523,   521,   244,     3,   452,     3,   257,     0,     3,     3,
     1409       3,   245,     3,     0,     0,     0,   292,   293,   295,   291,
     1410     304,   307,   309,   338,   283,   331,   336,   284,   346,   285,
     1411     353,   350,   360,     0,     0,   361,   286,   471,   475,     3,
     1412       3,     0,     2,   517,   522,   527,   296,     0,     0,   545,
     1413     575,   545,     2,   586,   587,   588,   291,     0,   729,   730,
     1414       0,    12,     0,    13,   291,   267,   268,     0,   292,   287,
     1415     288,   289,   290,   524,   302,   390,   546,   547,   368,   369,
     1416      12,   443,   444,    11,   439,   442,     0,   501,   496,   487,
     1417     443,   444,     0,     0,   526,   218,     0,   291,     0,     0,
     1418       0,     0,     0,     0,     0,     0,   291,   291,     2,     0,
     1419     731,   292,   580,   592,   735,   728,   726,   733,     0,     0,
     1420       0,   251,     2,     0,   530,   437,   438,   436,     0,     0,
     1421       0,     0,   545,     0,   632,   633,     0,     0,   543,   539,
     1422     545,   560,   545,   545,   541,     2,   540,   545,   599,   545,
     1423     545,   602,     0,     0,     0,   291,   291,   310,   358,     2,
     1424     291,   258,   294,   305,   339,   351,   476,     0,     2,     0,
     1425     452,   259,   292,   332,   347,   354,   472,     0,     2,     0,
     1426     308,   333,   340,   341,     0,   348,   352,   355,   359,   444,
     1427     291,   370,   363,   367,     0,   392,   473,   477,     0,     0,
     1428       0,     1,   291,     2,   528,   574,   576,   291,     2,   739,
     1429     292,   742,   543,   543,     0,   292,     0,     0,   270,   545,
     1430     541,     2,   291,     0,     0,   291,   548,     2,   499,     2,
     1431     552,     0,     0,     0,     0,     0,     0,    18,    57,     4,
     1432       5,     6,    16,     0,     0,   291,     2,    62,    63,    64,
     1433      65,    45,    19,    46,    22,    44,    66,   291,     0,    69,
     1434      73,    76,    79,    84,    87,    89,    91,    93,    95,    97,
     1435     102,   493,   749,   450,   492,     0,   448,   449,     0,   564,
     1436     579,   582,   585,   591,   594,   597,   357,     0,     2,   737,
     1437       0,   291,   740,     2,    60,   291,     3,   424,     0,   432,
     1438     292,   291,   304,   331,   284,   346,   353,     3,     3,   406,
     1439     410,   420,   425,   471,   291,   426,   704,   705,   291,   427,
     1440     429,   291,     2,   581,   593,   727,     2,     2,   246,     2,
     1441     457,     0,   455,   454,   453,   138,     2,     2,   248,     2,
     1442       2,   247,     2,   278,     2,   279,     0,   277,     0,     0,
     1443       0,     0,     0,     0,     0,     0,     0,   565,   604,     0,
     1444     452,     2,   559,   568,   658,   561,   562,   531,   291,     2,
     1445     598,   607,   600,   601,     0,   273,   291,   291,   337,   292,
     1446       0,   292,     0,   291,   732,   736,   734,   532,   291,   543,
     1447     252,   260,   306,     0,     2,   533,   291,   497,   334,   335,
     1448     280,   349,   356,     0,   291,     0,   747,   397,     0,   474,
     1449     498,   249,   250,   518,   291,   434,     0,   291,   234,     0,
     1450       2,   236,     0,   292,     0,   254,     2,   255,   275,     0,
     1451       0,     2,   291,   543,   291,   484,   486,   485,     0,     0,
     1452     749,     0,   291,     0,   291,   488,   291,   558,   556,   557,
     1453     555,     0,   550,   553,     0,     0,   291,    52,   291,    66,
     1454      47,   291,    54,   291,   291,    50,    51,     2,   124,     0,
     1455       0,   446,     0,   445,   726,   118,   291,    17,     0,    29,
     1456      30,    35,     2,     0,    35,   108,   109,   110,   111,   112,
     1457     113,   114,   115,   116,   117,   107,     0,    48,    49,     0,
    14541458       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1455        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1456      109,     2,   649,   455,   646,   550,   550,   654,   483,   295,
    1457        2,   588,   589,     0,   600,   601,     0,     2,   743,   746,
    1458      112,   295,     0,     2,   711,   296,   715,   706,   707,   713,
    1459        0,     2,     2,   671,   550,   754,   620,   550,   550,   754,
    1460      550,   634,   550,   550,   685,   437,   668,   550,   550,   676,
    1461      683,   295,   432,   296,     0,     0,   295,   721,   296,   726,
    1462      754,   718,   295,   723,   754,   295,   295,   295,     0,   112,
    1463        0,    18,     5,     2,     0,    19,     0,   462,   752,     0,
    1464        0,   468,   242,     0,   295,     0,     0,     0,   548,   572,
    1465      576,   578,   608,   611,   615,   618,   571,   610,     0,   285,
    1466      661,     0,   295,   278,     0,     0,     0,     0,   276,     2,
    1467        0,   260,   539,   295,     0,     0,   295,     2,   366,   386,
    1468      375,     0,     0,   380,   374,   753,     0,     0,   399,     0,
    1469      296,     3,   417,     3,   421,   420,   594,     0,   534,   295,
    1470       63,     3,   295,   436,   296,     3,   430,   431,     2,     0,
    1471        0,     0,   488,   307,   295,   484,   486,     3,     2,     2,
    1472        0,   505,     3,     0,   557,   130,     0,     0,   223,     0,
    1473        0,     0,     2,     0,     0,    36,     0,     0,   112,   295,
    1474       20,     0,    21,     0,   695,   700,   451,   692,   550,   550,
    1475        0,   110,     3,     2,    27,     2,     0,    33,     0,     2,
    1476       25,     0,   107,   108,    74,    75,    76,    78,    79,    81,
    1477       82,    86,    87,    84,    85,    89,    90,    92,    94,    96,
    1478       98,   100,     0,     0,   755,   295,     0,     0,     0,   650,
    1479      651,   647,   648,   500,   499,   295,     0,   295,   717,   295,
    1480      722,   296,   295,   665,   295,   295,   708,   664,     2,   295,
    1481        0,     0,     0,     0,     0,     0,     0,     0,   686,     0,
    1482      672,   623,   639,   673,     2,   619,   626,   434,   621,   622,
    1483      435,     2,   633,   642,   635,   636,   669,   670,   684,   712,
    1484      716,   714,   754,   269,     2,   748,     2,   425,   720,   725,
    1485      426,     0,   404,     3,     3,     3,     3,   456,     3,     0,
    1486        2,   471,   467,   753,     0,   463,   470,     2,   466,   469,
    1487        0,   295,   243,   265,     3,   273,   275,     0,   456,     2,
    1488      574,   575,     2,   613,   614,     0,   662,   540,     3,   347,
    1489      346,   349,   348,   295,   541,     0,   542,   374,     0,     0,
    1490      295,   295,     0,     0,   695,   384,   387,   391,   550,   391,
    1491      390,   383,   376,   550,   378,   381,   295,   401,   395,   105,
    1492      402,   752,     0,     0,   439,   241,     0,     0,     3,     2,
    1493      671,   432,     0,   530,     0,   754,   492,     0,   295,   295,
    1494      295,     0,   554,   556,   131,     0,     0,   216,     0,     0,
    1495        0,   224,   225,    56,     0,    62,   295,     0,    60,    59,
    1496        0,     2,   129,     0,     0,     0,   696,   697,   693,   694,
    1497      461,    71,    72,   111,   116,     3,   110,     0,     0,     0,
    1498       24,    35,     3,     0,    32,   103,     0,     3,   653,   657,
    1499      660,   652,     3,   595,     3,   719,   724,     2,    63,   295,
    1500        3,     3,   296,     0,     3,   625,   629,   632,   641,   675,
    1501      679,   682,   295,     3,   624,   640,   674,   295,   295,   427,
    1502      295,   295,   749,     0,     0,     0,     0,   257,     0,   105,
    1503        0,     3,     3,     0,   464,     0,   460,     0,     0,   246,
    1504      295,     0,     0,   130,     0,     0,     0,     0,     0,   130,
    1505        0,     0,   110,   110,    18,     2,     0,     0,     3,   132,
    1506      133,     2,   144,   134,   135,   136,   137,   138,   139,   146,
    1507      148,     0,     0,     0,   286,   295,   295,   550,     0,   543,
    1508      295,   377,   379,     0,   393,   696,   388,   392,   389,   382,
    1509      386,   369,   400,     0,   582,     2,   667,   666,     0,   672,
    1510        2,   485,   487,   507,     3,   515,   516,     0,     2,   511,
    1511        3,     3,     0,     0,   559,   223,     0,     0,     0,   223,
    1512        0,     0,     3,    37,   112,   699,   703,   705,   698,   752,
    1513      110,     0,     3,   664,    42,     3,    40,     3,    34,     0,
    1514        3,   102,   104,     0,     2,   655,   656,     0,     0,   295,
    1515        0,     0,     0,     3,   641,     0,     2,   627,   628,     2,
    1516      643,     2,   677,   678,     0,     0,    63,     0,     3,     3,
    1517        3,     3,   412,   411,   415,     2,     2,   751,   750,   113,
    1518        0,     0,     0,     0,     3,   465,     3,     0,   244,   147,
    1519        3,   296,   295,     0,     0,     0,     0,     2,     0,   192,
    1520        0,   190,     0,     0,     0,     0,     0,     0,     0,   550,
    1521      112,     0,   152,   149,   295,     0,     0,   268,   280,     3,
    1522        3,   549,   616,   370,   385,   398,   295,   267,   295,     0,
    1523      518,   495,   295,     0,     0,   494,   509,     0,     0,     0,
    1524      217,     0,   226,    57,   110,     0,     2,   701,   702,     0,
    1525      117,   114,     0,     0,     0,     0,     0,     0,    23,     0,
    1526      658,   295,   583,   266,   727,   728,   729,     0,   680,   295,
    1527      295,   295,     3,     3,     0,   688,     0,     0,     0,     0,
    1528      295,   295,     3,   547,   472,   473,     0,     0,   247,   296,
    1529        0,     0,     0,     0,   295,   193,   191,   188,     0,   194,
    1530        0,     0,     0,     0,   198,   201,   199,   195,     0,   196,
    1531      130,    35,   145,   143,   245,     0,     0,   419,   423,   422,
    1532        0,   512,     2,   513,     2,   514,   508,   295,   229,     0,
    1533      227,     0,   229,     3,   664,   295,    31,   115,     2,    45,
    1534        2,    43,    41,    28,   113,    26,     3,   730,     3,     3,
    1535        3,     0,     0,   687,   689,   630,   644,   270,     2,   409,
    1536        3,   408,     0,   475,   472,   130,     0,     0,   130,     3,
    1537        0,   130,   189,     0,     2,     2,   210,   200,     0,     0,
    1538        0,   141,     0,   577,   617,     2,     0,     0,     2,   230,
    1539        0,     0,   218,     0,     0,     0,     3,     0,     0,     0,
    1540        0,     0,     0,   690,   691,   295,     0,   474,   153,     0,
    1541        0,     2,   166,   130,   155,     0,   183,     0,   130,     0,
    1542        2,   157,     0,     2,     0,     2,     2,     2,   197,    32,
    1543      295,   517,   519,   510,     0,     0,     0,     0,   115,    38,
    1544        0,     3,     3,   659,   631,   645,   681,   413,   130,   159,
    1545      162,     0,   161,   165,     3,   168,   167,     0,   130,   185,
    1546      130,     3,     0,   295,     0,   295,     0,     2,     0,     2,
    1547      140,     2,   231,   232,     0,   228,   219,     0,   704,     0,
    1548        0,   154,     0,     0,   164,   234,   169,     2,   236,   184,
    1549        0,   187,   173,   202,     3,   211,   215,   204,     3,     0,
    1550      295,     0,   295,     0,     0,     0,    39,    46,    44,   160,
    1551      163,   130,     0,   170,   295,   130,   130,     0,   174,     0,
    1552        0,   695,   212,   213,   214,     0,   203,     3,   205,     3,
    1553      295,   220,   233,   150,   171,   156,   130,   237,   186,   181,
    1554      179,   175,   158,   130,     0,   696,     0,     0,     0,     0,
    1555      151,   172,   182,   176,   180,   179,   177,     3,     3,     0,
    1556        0,   496,   178,   206,   208,     3,     3,   207,   209
     1459       0,     0,     0,     0,     0,     0,     0,     0,     0,   104,
     1460       2,   644,   451,   641,   545,   545,   649,   478,   291,     2,
     1461     583,   584,     0,   595,   596,     0,     2,   738,   741,   118,
     1462     291,     0,     2,   706,   292,   710,   701,   702,   708,     0,
     1463       2,     2,   666,   545,   749,   615,   545,   545,   749,   545,
     1464     629,   545,   545,   680,   433,   663,   545,   545,   671,   678,
     1465     291,   428,   292,     0,     0,   291,   716,   292,   721,   749,
     1466     713,   291,   718,   749,   291,   291,   291,     0,   118,     0,
     1467      18,     2,     0,    19,     0,   458,   747,     0,     0,   464,
     1468     238,     0,   291,     0,     0,     0,   543,   567,   571,   573,
     1469     603,   606,   610,   613,   566,   605,     0,   281,   656,     0,
     1470     291,   274,     0,     0,     0,     0,   272,     2,     0,   256,
     1471     534,   291,     0,     0,   291,     2,   362,   382,   371,     0,
     1472       0,   376,   370,   748,     0,     0,   395,     0,   292,     3,
     1473     413,     3,   417,   416,   589,     0,   529,   291,    60,     3,
     1474     291,   432,   292,     3,   426,   427,     2,     0,     0,     0,
     1475     483,   303,   291,   479,   481,     3,     2,     2,     0,   500,
     1476       3,     0,   552,   126,     0,     0,   219,     0,     0,     0,
     1477       0,    36,     0,     0,   118,   291,    20,     0,    21,     0,
     1478     690,   695,   447,   687,   545,   545,     0,   105,     3,     2,
     1479      27,     0,    33,     0,     2,    25,     0,   103,    70,    71,
     1480      72,    74,    75,    77,    78,    82,    83,    80,    81,    85,
     1481      86,    88,    90,    92,    94,    96,     0,     0,   750,   291,
     1482       0,     0,     0,   645,   646,   642,   643,   495,   494,   291,
     1483       0,   291,   712,   291,   717,   292,   291,   660,   291,   291,
     1484     703,   659,     2,   291,     0,     0,     0,     0,     0,     0,
     1485       0,     0,   681,     0,   667,   618,   634,   668,     2,   614,
     1486     621,   430,   616,   617,   431,     2,   628,   637,   630,   631,
     1487     664,   665,   679,   707,   711,   709,   749,   265,     2,   743,
     1488       2,   421,   715,   720,   422,     0,   400,     3,     3,     3,
     1489       3,   452,     3,     0,     2,   466,   463,   748,     0,   459,
     1490       2,   462,   465,     0,   291,   239,   261,     3,   269,   271,
     1491       0,   452,     2,   569,   570,     2,   608,   609,     0,   657,
     1492     535,     3,   343,   342,   345,   344,   291,   536,     0,   537,
     1493     370,     0,     0,   291,   291,     0,     0,   690,   380,   383,
     1494     387,   545,   387,   386,   379,   372,   545,   374,   377,   291,
     1495     397,   391,   101,   398,   747,     0,     0,   435,   237,     0,
     1496       0,     3,     2,   666,   428,     0,   525,     0,   749,   487,
     1497       0,   291,   291,   291,     0,   549,   551,   127,     0,     0,
     1498     212,     0,     0,     0,   220,   221,    53,     0,    55,    58,
     1499      59,     0,     2,   125,     0,     0,     0,   691,   692,   688,
     1500     689,   457,    67,    68,   106,   122,     3,   105,     0,     0,
     1501      24,    35,     3,     0,    32,    99,     0,     3,   648,   652,
     1502     655,   647,     3,   590,     3,   714,   719,     2,    60,   291,
     1503       3,     3,   292,     0,     3,   620,   624,   627,   636,   670,
     1504     674,   677,   291,     3,   619,   635,   669,   291,   291,   423,
     1505     291,   291,   744,     0,     0,     0,     0,   253,     0,   101,
     1506       0,     3,     3,     0,   460,     0,   456,     0,     0,   242,
     1507     291,     0,     0,   126,     0,     0,     0,     0,     0,   126,
     1508       0,     0,   105,   105,    18,     2,     0,     0,     3,   128,
     1509     129,     2,   140,   130,   131,   132,   133,   134,   135,   142,
     1510     144,     0,     0,     0,   282,   291,   291,   545,     0,   538,
     1511     291,   373,   375,     0,   389,   691,   384,   388,   385,   378,
     1512     382,   365,   396,     0,   577,     2,   662,   661,     0,   667,
     1513       2,   480,   482,   502,     3,   510,   511,     0,     2,   506,
     1514       3,     3,     0,     0,   554,   219,     0,     0,     0,   219,
     1515       0,     0,   118,   694,   698,   700,   693,   747,   105,     0,
     1516       3,   659,    39,     3,    37,    34,     0,     3,    98,   100,
     1517       0,     2,   650,   651,     0,     0,   291,     0,     0,     0,
     1518       3,   636,     0,     2,   622,   623,     2,   638,     2,   672,
     1519     673,     0,     0,    60,     0,     3,     3,     3,     3,   408,
     1520     407,   411,     2,     2,   746,   745,   119,     0,     0,     0,
     1521       0,     3,   461,     3,     0,   240,   143,     3,   292,   291,
     1522       0,     0,     0,     0,     2,     0,   188,     0,   186,     0,
     1523       0,     0,     0,     0,     0,     0,   545,   118,     0,   148,
     1524     145,   291,     0,     0,   264,   276,     3,     3,   544,   611,
     1525     366,   381,   394,   291,   263,   291,     0,   513,   490,   291,
     1526       0,     0,   489,   504,     0,     0,     0,   213,     0,   222,
     1527      56,     2,   696,   697,     0,   123,   120,     0,     0,     0,
     1528       0,     0,    23,     0,   653,   291,   578,   262,   722,   723,
     1529     724,     0,   675,   291,   291,   291,     3,     3,     0,   683,
     1530       0,     0,     0,     0,   291,   291,     3,   542,   119,   468,
     1531       0,     0,   243,   292,     0,     0,     0,     0,   291,   189,
     1532     187,   184,     0,   190,     0,     0,     0,     0,   194,   197,
     1533     195,   191,     0,   192,   126,    35,   141,   139,   241,     0,
     1534       0,   415,   419,   418,     0,   507,     2,   508,     2,   509,
     1535     503,   291,   225,     0,   223,     0,   225,   291,    31,   121,
     1536       2,    42,     2,    40,    38,    28,    26,     3,   725,     3,
     1537       3,     3,     0,     0,   682,   684,   625,   639,   266,     2,
     1538     405,     3,   404,     0,   470,   467,   126,     0,     0,   126,
     1539       3,     0,   126,   185,     0,     2,     2,   206,   196,     0,
     1540       0,     0,   137,     0,   572,   612,     2,     0,     0,     2,
     1541     226,     0,     0,   214,     0,     3,     0,     0,     0,     0,
     1542       0,     0,   685,   686,   291,     0,   469,   149,     0,     0,
     1543       2,   162,   126,   151,     0,   179,     0,   126,     0,     2,
     1544     153,     0,     2,     0,     2,     2,     2,   193,    32,   291,
     1545     512,   514,   505,     0,     0,     0,     0,     0,     3,     3,
     1546     654,   626,   640,   676,   409,   126,   155,   158,     0,   157,
     1547     161,     3,   164,   163,     0,   126,   181,   126,     3,     0,
     1548     291,     0,   291,     0,     2,     0,     2,   136,     2,   227,
     1549     228,     0,   224,   215,   699,     0,     0,   150,     0,     0,
     1550     160,   230,   165,     2,   232,   180,     0,   183,   169,   198,
     1551       3,   207,   211,   200,     3,     0,   291,     0,   291,     0,
     1552       0,     0,    43,    41,   156,   159,   126,     0,   166,   291,
     1553     126,   126,     0,   170,     0,     0,   690,   208,   209,   210,
     1554       0,   199,     3,   201,     3,   291,   216,   229,   146,   167,
     1555     152,   126,   233,   182,   177,   175,   171,   154,   126,     0,
     1556     691,     0,     0,     0,     0,   147,   168,   178,   172,   176,
     1557     175,   173,     3,     3,     0,     0,   491,   174,   202,   204,
     1558       3,     3,   203,   205
    15571559};
    15581560
     
    15601562static const yytype_int16 yydefgoto[] =
    15611563{
    1562       -1,   819,   469,   302,    48,   135,   136,   303,   304,   305,
    1563      306,   766,   767,  1145,  1146,   307,   382,   309,   310,   311,
    1564      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
    1565     1040,   519,   984,   323,   985,   547,   954,  1067,  1543,  1069,
    1566     1070,  1071,  1072,  1544,  1073,  1074,  1460,  1461,  1422,  1423,
    1567     1424,  1522,  1523,  1527,  1528,  1563,  1564,  1075,  1380,  1076,
    1568     1077,  1314,  1315,  1316,  1504,  1078,   147,   960,   961,   962,
    1569     1400,  1484,  1496,  1497,   470,   471,   881,   882,  1048,    52,
    1570       53,    54,    55,    56,   348,   160,    59,    60,    61,    62,
    1571       63,   350,    65,    66,   266,    68,    69,   276,   352,   353,
    1572       72,    73,    74,    75,   120,    77,   206,   355,   121,    80,
    1573      122,    82,    83,   456,    84,   455,   690,   691,   692,   915,
    1574     1096,   916,    85,    86,   459,   457,   698,   861,   862,   358,
    1575      359,   701,   702,   703,   360,   361,   362,   363,   467,   341,
    1576      137,   138,   523,   325,   172,   647,   648,   649,   650,   651,
    1577       87,   123,    89,   490,   491,   946,   492,   279,   496,   326,
    1578       90,   139,   140,    91,  1337,  1118,  1119,  1120,  1121,    92,
    1579       93,   719,    94,   275,    95,    96,   189,  1042,   681,   413,
    1580      127,    97,   502,   503,   504,   190,   270,   192,   193,   194,
    1581      271,   100,   101,   102,   103,   104,   105,   106,   197,   198,
    1582      199,   200,   201,   831,   606,   607,   608,   609,   202,   611,
    1583      612,   613,   573,   574,   575,   576,   755,   107,   615,   616,
    1584      617,   618,   619,   620,   977,   757,   758,   759,   596,   366,
    1585      367,   368,   369,   327,   166,   109,   110,   111,   371,   696,
    1586      570
     1564      -1,   813,   468,   301,    47,   134,   135,   302,   303,   304,
     1565     305,   761,   762,  1133,  1134,   306,   381,   308,   309,   310,
     1566     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     1567    1030,   518,   975,   546,   322,   976,   947,  1057,  1518,  1059,
     1568    1060,  1061,  1062,  1519,  1063,  1064,  1437,  1438,  1401,  1402,
     1569    1403,  1497,  1498,  1502,  1503,  1538,  1539,  1065,  1361,  1066,
     1570    1067,  1298,  1299,  1300,  1480,  1068,   146,   953,   954,   955,
     1571    1381,  1461,  1472,  1473,   469,   470,   874,   875,  1038,    51,
     1572      52,    53,    54,    55,   347,   159,    58,    59,    60,    61,
     1573      62,   349,    64,    65,   265,    67,    68,   275,   351,   352,
     1574      71,    72,    73,    74,   119,    76,   205,   354,   120,    79,
     1575     121,    81,    82,   455,    83,   454,   688,   689,   690,   908,
     1576    1086,   909,    84,    85,   458,   456,   696,   855,   856,   857,
     1577     858,   699,   700,   701,   359,   360,   361,   362,   466,   340,
     1578     136,   137,   522,   324,   171,   645,   646,   647,   648,   649,
     1579      86,   122,    88,   489,   490,   939,   491,   278,   495,   325,
     1580      89,   138,   139,    90,  1321,  1108,  1109,  1110,  1111,    91,
     1581      92,   717,    93,   274,    94,    95,   188,  1032,   679,   412,
     1582     126,    96,   501,   502,   503,   189,   269,   191,   192,   193,
     1583     270,    99,   100,   101,   102,   103,   104,   105,   196,   197,
     1584     198,   199,   200,   825,   605,   606,   607,   608,   201,   610,
     1585     611,   612,   572,   573,   574,   575,   751,   106,   614,   615,
     1586     616,   617,   618,   619,   968,   753,   754,   755,   595,   365,
     1587     366,   367,   368,   326,   165,   108,   109,   110,   370,   694,
     1588     569
    15871589};
    15881590
    15891591/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15901592   STATE-NUM.  */
    1591 #define YYPACT_NINF -1414
     1593#define YYPACT_NINF -1310
    15921594static const yytype_int16 yypact[] =
    15931595{
    1594     4857,  9883, -1414,    35, -1414, -1414, -1414, -1414, -1414, -1414,
    1595    -1414,   142, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1596    -1414, -1414, -1414, -1414, -1414, -1414,    98,    98,    98,  1334,
    1597      684,   153,  7496,   290, -1414, -1414, -1414, -1414, -1414,   204,
    1598    -1414, -1414, -1414, -1414,   901,   229, -1414, -1414, -1414, -1414,
    1599     9565, -1414, -1414, -1414, -1414,   -15,   301, -1414,  1624, -1414,
    1600    -1414, -1414, -1414,   302,  1806,   471,   143,  7613, -1414, -1414,
    1601     9603,  1367, -1414, -1414, -1414,  1721,   510,  3394,  1032,  1137,
    1602     1721,  1303, -1414, -1414,  1174,  1520, -1414,  1721,  1532, -1414,
    1603      385, -1414,   421,   523, -1414, -1414, -1414, -1414,   460,   301,
    1604       98, -1414,    98, -1414, -1414, -1414, -1414, 10414,  1624, -1414,
    1605    -1414,  1624, -1414,   447, -1414, 10444, -1414, -1414,  2082, 10554,
    1606    -1414,   399,   399,   399, -1414, -1414, -1414,    98, -1414, -1414,
    1607    -1414,   544,   555,   575, -1414, -1414, -1414,   617, -1414, -1414,
    1608    -1414, -1414, -1414,   621,   629, -1414, -1414,    11,  9069,  3253,
    1609      578,   492,   499,   631,   635,   642,   647,  9853,  7015,   649,
    1610      656, -1414,  9713, -1414, -1414, -1414, -1414,   661, -1414,   193,
    1611     3453,  3453, -1414,   667,   251, -1414, -1414, -1414, -1414,   692,
    1612      327,   346,   368,    98,   673, -1414, -1414,  1806,  3136,   748,
    1613    -1414,    12, -1414,    98,    98,   301, -1414, -1414,    75, -1414,
    1614       98,    98, -1414,  3167,   711,   722,   399,  6806, -1414, -1414,
    1615      726,  9565, -1414, -1414,  1721, -1414, -1414, -1414,   301, -1414,
    1616     1624,   -15, -1414,  7963, -1414,   399,   399,   399,   301, -1414,
    1617     1334, -1414,  5769, -1414, -1414,   709,   399, -1414,   399, -1414,
    1618      204,  9069, -1414,   763, -1414,   684,   765,   399, -1414,  1334,
    1619      750,   766, -1414,  7496,   705, -1414, -1414, -1414,  9532, -1414,
    1620    -1414, 10864, -1414,   748,    63,  6244, 10554,  2082,  3167, -1414,
    1621       85, -1414, -1414, 10444,  1624,   804,  7644, -1414, -1414,   319,
    1622    -1414, 11778,   782,   851,  4657,   828,  4994, 11639, -1414,   839,
    1623    -1414, -1414, -1414, -1414, 11658, 11658,  8841,   844, -1414, -1414,
    1624    -1414, -1414, -1414, -1414,   869, -1414,   759,  2440,  9183,  4994,
    1625    -1414,   593,   571,   645,   313,   861,   842,   858,   843,   911,
    1626      -20, -1414, -1414,   876,   326, -1414,    83, -1414, -1414,  3253,
    1627    -1414, -1414,   139,   900, -1414,   422,   900,   905,   204, -1414,
    1628    -1414,   909, 10414, -1414,   912,   917,  9297, -1414, -1414,  1382,
    1629     2358,  8427,  6806,  1721, -1414,  1721,   399,   399, -1414, -1414,
    1630    -1414, -1414, -1414, -1414,   399, 10414,  1624, -1414, -1414, 10584,
    1631     1776, -1414, 10304, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1632      936, 11446,  4994, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1633    -1414, -1414, -1414, -1414, -1414, -1414, -1414,  2082, -1414,   836,
    1634      947,   962,   963,   923,   965,   970,   972,  3136, -1414, -1414,
    1635      959,   -15,   975, -1414, -1414,   978, -1414, -1414, -1414,  9532,
    1636    -1414, -1414, -1414, -1414, -1414,  3167, -1414,  9069,  9069, -1414,
    1637      399,  2082,  6926,  1624,  8543, -1414, -1414, -1414, -1414,  9532,
    1638       63, -1414, -1414,  1721,   301, -1414, -1414,  9532, -1414,  6689,
    1639    -1414, -1414,   399,   399,   271, 10023,   907,   977,   960,   988,
    1640      399, -1414, -1414, -1414, -1414, 10980, -1414,   500,  6556, -1414,
    1641      301,   990, -1414,  2082, 11860, 11504, -1414, -1414, -1414, -1414,
    1642      935,  3167, -1414,  8659,   748,  6228, -1414, -1414, -1414,  1482,
    1643      550,   876,   684,  7644,  1180, 10444, -1414,  7644, -1414, -1414,
    1644    -1414, -1414,   561, -1414,   997,   851,   -13,  8841, -1414, 10694,
    1645    -1414, -1414,  8841, -1414,  8955,  8841, -1414, -1414,   996, -1414,
    1646      585,  1003,   455,  1017, -1414, -1414,  9993,  6037, -1414,   419,
    1647    -1414, -1414, 11562, -1414,   469, 11562, -1414, -1414, -1414, -1414,
    1648    -1414, -1414, -1414, -1414, -1414, -1414,  6244,  6244, -1414, -1414,
    1649     4994,  4994,  4994,  4994,  4994,  4994,  4994,  4994,  4994,  4994,
    1650     4994,  4994,  4994,  4994,  4994,  4994,  4994,  4994,  3735,  6244,
    1651    -1414,   326,  1049, -1414, -1414,    98,    98, -1414, -1414,  9069,
    1652    -1414, -1414,   978,   705, -1414,   978, 11581, -1414, -1414, -1414,
    1653     3645,  6037,  1016,  1018, -1414, 10554, -1414, -1414,   661, -1414,
    1654     1020,  1157,  1025,  2611,    95,   876, -1414,    98,    98,   876,
    1655      134, -1414,    98,    98,   978, -1414, -1414,    98,    98, -1414,
    1656      900, 10724,  1624, 12005,    69,   227, 10724, -1414, 10864, -1414,
    1657      876, -1414, 10414, -1414,   218,  8079,  8079,  8079,  1624, -1414,
    1658     5555,  1012,   260,   936,   778,  1021,  1024, -1414,  1026,  3453,
    1659      343, -1414,  1115,  1624,  8079,   705,  2082,   705,   748,   534,
    1660      900, -1414, -1414,   596,   900, -1414, -1414, -1414,   851, -1414,
    1661      900,   301, 10980, -1414,   687,  1042,   700,  1043, -1414,  1044,
    1662      301, -1414, -1414,  9532,   301,  1041, 10694,  1045, -1414,  2066,
    1663    -1414,   408,   416,   684, -1414,   684,  1047,  4994, -1414,   684,
    1664    12005, -1414, -1414,  1053, -1414, -1414, -1414,   705, -1414, 11933,
    1665      917, -1414,  8079,   489,  8427, -1414, -1414,   661,  1055,  1056,
    1666     1482,  3284, -1414, -1414,  7644, -1414, -1414,  1038, -1414, -1414,
    1667     1064, -1414,  1038,  1070, 11778,  6244,    93,  1051,   138,  1074,
    1668     1058,  1075,   844,  1069,  1077, -1414,  1079,  1081, 10133,  6775,
    1669    -1414,  6244, -1414,   455,  1974, -1414, -1414, -1414,    98,    98,
    1670     6104,  6244,  1076, -1414, -1414,   936,   707, -1414,  6244, -1414,
    1671    -1414,   677, -1414, -1414, -1414, -1414, -1414,   593,   593,   571,
    1672      571,   645,   645,   645,   645,   313,   313,   861,   842,   858,
    1673      843,   911,  4994,   847, -1414, 10980,  1083,  1084,  1088,  1049,
    1674    -1414, -1414, -1414, -1414, -1414, 10980,   717,  8079, -1414, 10414,
    1675    -1414,  7135,  9411, -1414, 10304,  7015, -1414, -1414,  1157, 10980,
    1676      945,  1089,  1090,  1095,  1096,  1099,  1100,  1105, -1414,  4392,
    1677     2611, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1678    -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,   978, -1414,
    1679    -1414, -1414,   876, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1680    -1414,  1112, -1414,  1113,  1118, -1414, -1414,   -15,  1076,  5555,
    1681    -1414, -1414, -1414, 11446,  1116, -1414, -1414, -1414, -1414, -1414,
    1682      684,  6369,  1201, -1414, -1414, -1414, -1414,  1103,   -15, -1414,
    1683    -1414,   978, -1414, -1414,   978,   126,   978, -1414, -1414, -1414,
    1684    -1414, -1414, -1414,  9743, -1414,   301, -1414, -1414,   438,   452,
    1685    10584,  7255,  2372,  4994,  2870, -1414, -1414,  1127,    39,  1127,
    1686    -1414,   684, -1414,    98, -1414, -1414, 10163,   960, -1414, -1414,
    1687    -1414,   977,  1143,  1131, -1414, -1414,  1150,  1153, -1414,   489,
    1688     1995, -1414,   363, -1414,  3284,   876, -1414,  1160,  7644, 10834,
    1689     9069,  1161, -1414, -1414,  1151,  1162,  1156, -1414,  4994,   120,
    1690      279,  1163, -1414,  1166,   705,  1166,  6037,  6244, -1414, -1414,
    1691     1166,  1165, -1414,  1176,  1182,  1185,  1974, -1414, -1414, -1414,
    1692    11446, -1414, -1414, -1414, -1414,  1168,  6244,  1188,   705,  5555,
    1693    -1414, 11562, -1414,   705, -1414, -1414,  6244, -1414,   614,   900,
    1694    -1414, -1414, -1414, -1414, -1414, -1414, -1414,   936,   917,  9297,
    1695    -1414, -1414,  7375,  1187, -1414,   758,   900, -1414,   785,   797,
    1696      900, -1414,   399,  5912, -1414, -1414, -1414, 10980, 10980, -1414,
    1697     8543,  8543, -1414,  1186,  1189,  1191,  1199, -1414,  1206,   439,
    1698      119,  1076, -1414,   705, -1414,  3453, -1414,  6244,   480, -1414,
    1699     6655,  1211,  1212, 11388,  1213,  1217,    -6,    58,   117,  6244,
    1700     1221,   301,  6244,  6244,  1215,  1222,   610,  1203, -1414, -1414,
    1701    -1414,  1218, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1702    -1414,   684,  1226,  6244, -1414, 10980, 10980,    98,  1228, -1414,
    1703    10273, -1414, -1414,   864, -1414,  2870, -1414, -1414, -1414, -1414,
    1704     2066, -1414, -1414,  1230, -1414, -1414, -1414, -1414,  1231,  1995,
    1705    -1414, -1414,  1223, -1414,  1038, -1414, -1414,  2082,  1235, -1414,
    1706    -1414, -1414,   744,  1237, -1414,   138,  1245,  4994,  1232,   138,
    1707      138,  1250,  1246, -1414,  9993,   825,   900, -1414, -1414,  1026,
    1708     6244,  1251,  1168,   536,   161,  1261, -1414,  1246, -1414,  1254,
    1709     1261, -1414, -1414,  1257, -1414, -1414,   978,  1270,  1271,  6895,
    1710     1272,  1275,  1280, -1414, -1414,  1283, -1414, -1414,   978, -1414,
    1711    -1414, -1414, -1414,   978,  6244,  6244,   917,  1282, -1414, -1414,
    1712    -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1713     4994,  4994,  1284,  1286,  1261, -1414, -1414,   684, -1414, -1414,
    1714    -1414,  5291, 10834,  6244,  6244,  1335,  6244, -1414,  1263, -1414,
    1715     1267, -1414,  1281,  6244,  1288,  6244,  1039,  1290,    28,    98,
    1716     5165,   856, -1414, -1414,  6369,  1287,   488, -1414, -1414, -1414,
    1717    -1414, -1414, -1414, -1414, -1414, -1414, 11206, -1414,  8659,  1304,
    1718    -1414, -1414, 10834,   490,   498, -1414,  1301,  1306,   851,  1317,
    1719    -1414,   418, -1414, -1414,  6244,  1316, -1414, -1414,   978,  1314,
    1720    -1414, -1414,  1318,   589,   691,   705,  1320,  1322, -1414,  1329,
    1721    -1414, 10980, -1414, -1414, -1414, -1414, -1414,  1330, -1414, 10980,
    1722    10980, 10980, -1414, -1414,  1332, -1414,  1333,  1336,  1339,   517,
    1723     8195,  8311, -1414, -1414,   123, -1414,  1343,  1348, -1414,  8775,
    1724      755,   768,  1342,   770,  6525, -1414, -1414, -1414,   508, -1414,
    1725      777,  1352,  1353,   301,  1403,   933, -1414, -1414,  6244, -1414,
    1726    11388, 11562, -1414, -1414, -1414,  1359,  1364, -1414, -1414, -1414,
    1727     1363, -1414, -1414, -1414, -1414, -1414, -1414, 10834,   851,   273,
    1728    -1414,  1347,   851,  1168,   268, 10980, -1414, -1414, -1414, -1414,
    1729    -1414, -1414, -1414, -1414,  1365, -1414, -1414, -1414, -1414, -1414,
    1730    -1414,  1368,  1371, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1731     1375, -1414,  1374, -1414, -1414, 11388,    91,  6244, 11388, -1414,
    1732     1385,  6244, -1414,   288,  1402,  1405, -1414, -1414,  1390,  1393,
    1733     1376, -1414,   882, -1414, -1414, -1414,  1624,  2082,  1388,   869,
    1734      884,  4994, -1414,   803,  1394,  6244, -1414,   705,   705,  1399,
    1735     1406,  1407,  1409, -1414, -1414,  8543,  1397, -1414,  1473,  4994,
    1736     1404, -1414, -1414, 11299, -1414,   811, -1414,  1395, 11388,  1401,
    1737    -1414, -1414,  1410, -1414,  1412, -1414,  1433,  1441, -1414,  1415,
    1738    10834, -1414, -1414, -1414,   851,   705,  1429,  1417,  1436, -1414,
    1739     1446,  1261,  1261, -1414, -1414, -1414, -1414, -1414, 11388,   278,
    1740    -1414,   910, -1414, -1414,  7730, -1414, -1414,  1435,  6244, -1414,
    1741     6244,  7730,   301, 10694,   301, 10694,  1462, -1414,  1463, -1414,
    1742    -1414,  1460,   869, -1414,   812, -1414, -1414,  6244, -1414,  1465,
    1743     1466, -1414,  4994,  4994, -1414, -1414,  1007,    37, -1414, -1414,
    1744     1447, -1414,  1007, -1414, -1414,  2485,   705, -1414, -1414,   301,
    1745    10694,   301, 10694,  1472,  1450,   705, -1414, -1414, -1414, -1414,
    1746    -1414, 11299,  1468,  1007,  7847,  6244, 11210,  1475,  1007,  1477,
    1747     2485,  2994, -1414, -1414, -1414,  1495, -1414, -1414, -1414, -1414,
    1748     9069, -1414, -1414, -1414, 11077, -1414, 11299, -1414, -1414,  1476,
    1749    10984, -1414, -1414, 11210,   301,  2994,   301,  1502,  1506,   813,
    1750    -1414, 11077, -1414, -1414, -1414, 10984, -1414, -1414, -1414,   301,
    1751      301, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414
     1596    7316,  8697, -1310,    16, -1310, -1310, -1310, -1310, -1310, -1310,
     1597   -1310,    22, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1598   -1310, -1310, -1310, -1310, -1310, -1310,   101,   101,   101,  1152,
     1599     941,    64,  7548,   141, -1310, -1310, -1310, -1310, -1310,    87,
     1600   -1310, -1310, -1310,   868,   134, -1310, -1310, -1310, -1310,  9158,
     1601   -1310, -1310, -1310, -1310,   149,   144, -1310,  1337, -1310, -1310,
     1602   -1310, -1310,   139,   935,   260,   102,  2892, -1310, -1310,  9196,
     1603     790, -1310, -1310, -1310,   904,   293,  5512,   547,   778,   904,
     1604    1166, -1310, -1310,   554,   624, -1310,   904,  1343, -1310,   187,
     1605   -1310,   308,   336, -1310, -1310, -1310, -1310,   251,   144,   101,
     1606   -1310,   101, -1310, -1310, -1310, -1310,  8923,  1337, -1310, -1310,
     1607    1337, -1310,   337, -1310,  9043, -1310, -1310,  1053,  9381, -1310,
     1608    1729,  1729,  1729, -1310, -1310, -1310,   101, -1310, -1310, -1310,
     1609     410,   413,   418, -1310, -1310, -1310,   433, -1310, -1310, -1310,
     1610   -1310, -1310,   468,   477, -1310, -1310,    37,  8666,  2607,   742,
     1611     369,   496,   509,   523,   530,   535,  8584,  6836,   536,   546,
     1612   -1310,  9234, -1310, -1310, -1310, -1310,   561, -1310,   245,  4633,
     1613    4633, -1310,   562,   361, -1310, -1310, -1310, -1310,   574,   383,
     1614     408,   429,   101,   577, -1310, -1310,   935,  3015,   664, -1310,
     1615      86, -1310,   101,   101,   144, -1310, -1310,    89, -1310,   101,
     1616     101, -1310,  3541,   634,   653,  1729,  6748, -1310, -1310,   623,
     1617    9158, -1310, -1310,   904, -1310, -1310, -1310,   144, -1310,  1337,
     1618     149, -1310,  7737, -1310,  1729,  1729,  1729,   144, -1310,  1152,
     1619   -1310,  5996, -1310, -1310,   642,  1729, -1310,  1729, -1310,    87,
     1620    8666, -1310,   672, -1310,   941,   697,  1729, -1310,  1152,   699,
     1621     702, -1310,  7548,   567, -1310, -1310, -1310,  9125, -1310, -1310,
     1622    4167, -1310,   664,    10,  5116,  9381,  1053,  3541, -1310,    94,
     1623   -1310, -1310,  9043,  1337,   715, 10741, -1310, -1310,    11, -1310,
     1624   10483,   740,   772, 10231,   759, 10288, 10307, -1310,   763, -1310,
     1625   -1310, -1310, -1310, 10364, 10364,  8440,   765, -1310, -1310, -1310,
     1626   -1310, -1310, -1310,   799, -1310,   616,  2256,  8779, 10288, -1310,
     1627     475,   860,   810,   276,   913,   766,   767,   793,   832,    41,
     1628   -1310, -1310,   807,   704, -1310,   331, -1310, -1310,  2607, -1310,
     1629   -1310,   242,   835, -1310,   421,   835,   841,    87, -1310, -1310,
     1630     846,  8923, -1310,   847,   857,  8892, -1310, -1310,  1352,  2069,
     1631    8155,  6748,   904, -1310,   904,  1729,  1729, -1310, -1310, -1310,
     1632   -1310, -1310, -1310,  1729,  8923,  1337, -1310, -1310,  9419,  1457,
     1633   -1310,  7886, -1310, -1310, -1310, -1310, -1310, -1310, -1310,   875,
     1634   10098, 10288, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1635   -1310, -1310, -1310, -1310, -1310, -1310,  1053, -1310,   928,   862,
     1636     891,   893,  1023,   916,   937,   951,  3015, -1310, -1310,   942,
     1637     149,   958, -1310, -1310,   970, -1310, -1310, -1310,  9125, -1310,
     1638   -1310, -1310, -1310, -1310,  3541, -1310,  8666,  8666, -1310,  1729,
     1639    1053,  6867,  1337,  8228, -1310, -1310, -1310, -1310,  9125,    10,
     1640   -1310, -1310,   904,   144, -1310, -1310,  9125, -1310,  6513, -1310,
     1641   -1310,  1729,  1729,   382,  5342,   969,   972,   960,  1031,  1729,
     1642   -1310, -1310, -1310, -1310,  9605, -1310,   450,  6629, -1310,   144,
     1643    1033, -1310,  1053, 10565, 10155, -1310, -1310, -1310, -1310,  1039,
     1644    3541, -1310,  8301,   664,  7432, -1310, -1310, -1310,   984,   626,
     1645     807,   941, 10741,   606,  9043, -1310, 10741, -1310, -1310, -1310,
     1646   -1310,   690, -1310,  1044,   772,   255,  8440, -1310,  9457, -1310,
     1647   -1310,  8440, -1310,  8553,  8440, -1310, -1310,  1042, -1310,   722,
     1648    1047,   818,  1048, -1310, -1310,  9310,  6479, -1310,   321, -1310,
     1649   -1310,  5116, -1310,   602,  5116, -1310, -1310, -1310, -1310, -1310,
     1650   -1310, -1310, -1310, -1310, -1310, -1310,  5116, -1310, -1310, 10288,
     1651   10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288,
     1652   10288, 10288, 10288, 10288, 10288, 10288, 10288,  2426,  5116, -1310,
     1653     704,   830, -1310, -1310,   101,   101, -1310, -1310,  8666, -1310,
     1654   -1310,   970,   567, -1310,   970, 10212, -1310, -1310, -1310,  4524,
     1655    6479,  1049,  1054, -1310,  9381, -1310, -1310,   561, -1310,  1056,
     1656     774,  1073,  2515,    95,   807, -1310,   101,   101,   807,    98,
     1657   -1310,   101,   101,   970, -1310, -1310,   101,   101, -1310,   835,
     1658    9490,  1337, 10710,   283,   326,  9490, -1310,  4167, -1310,   807,
     1659   -1310,  8923, -1310,    80,  7852,  7852,  7852,  1337, -1310,  4787,
     1660    1065,   875,   744,  1066,  1067, -1310,  1070,  4633,   333, -1310,
     1661    1134,  1337,  7852,   567,  1053,   567,   664,   494,   835, -1310,
     1662   -1310,   584,   835, -1310, -1310, -1310,   772, -1310,   835,   144,
     1663    9605, -1310,   737,  1083,   750,  1090, -1310,  1089,   144, -1310,
     1664   -1310,  9125,   144,  1088,  9457,  1092, -1310,  1677, -1310,   441,
     1665     448,   941, -1310,   941,  1091, 10288, -1310,   941, 10710, -1310,
     1666   -1310,  1098, -1310, -1310, -1310,   567, -1310, 10638,   857, -1310,
     1667    7852,   853,  8155, -1310, -1310,   561,  1095,  1097,   984,  3316,
     1668   -1310, -1310, 10741, -1310, -1310,  1099, -1310, -1310,  1105, -1310,
     1669    1099,  1111, 10483,  5116,    62,  1102,   167,  1113,  1121,  1129,
     1670    1130, -1310,  1131,  1132,  9348,  6598, -1310,  5116, -1310,   818,
     1671     978, -1310, -1310, -1310,   101,   101,  5540,  5116,  1135, -1310,
     1672   -1310,   757, -1310,  5116, -1310, -1310,   914, -1310, -1310, -1310,
     1673   -1310,   475,   475,   860,   860,   810,   810,   810,   810,   276,
     1674     276,   913,   766,   767,   793,   832, 10288,   282, -1310,  9605,
     1675    1136,  1137,  1140,   830, -1310, -1310, -1310, -1310, -1310,  9605,
     1676     779,  7852, -1310,  8923, -1310,  6955,  9005, -1310,  7886,  6836,
     1677   -1310, -1310,   774,  9605,  1063,  1142,  1143,  1145,  1146,  1147,
     1678    1148,  1154, -1310,  3759,  2515, -1310, -1310, -1310, -1310, -1310,
     1679   -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1680   -1310, -1310,   970, -1310, -1310, -1310,   807, -1310, -1310, -1310,
     1681   -1310, -1310, -1310, -1310, -1310,  1156, -1310,  1159,  1160, -1310,
     1682   -1310,   149,  1135,  4787, -1310, -1310, -1310, 10098,  1157, -1310,
     1683   -1310, -1310, -1310,   941,  6225,  1247, -1310, -1310, -1310, -1310,
     1684    1150,   149, -1310, -1310,   970, -1310, -1310,   970,   137,   970,
     1685   -1310, -1310, -1310, -1310, -1310, -1310,  9272, -1310,   144, -1310,
     1686   -1310,   451,   452,  9419,  7074,  2178, 10288,  3429, -1310, -1310,
     1687    1149,    39,  1149, -1310,   941, -1310,   101, -1310, -1310,  8073,
     1688     960, -1310, -1310, -1310,   972,  1168,  1169, -1310, -1310,  1170,
     1689    1172, -1310,   853,  1305, -1310,   359, -1310,  3316,   807, -1310,
     1690    1177, 10741,  9528,  8666,  1180, -1310, -1310,  1175,  1182,  1164,
     1691   -1310, 10288,    56,   233,  1179, -1310,  1183,   567,  1183, -1310,
     1692   -1310,  1183,  1184, -1310,  1189,  1190,  1192,   978, -1310, -1310,
     1693   -1310, 10098, -1310, -1310, -1310, -1310,  1188,  5116,  1193,   567,
     1694   -1310,  5116, -1310,   567, -1310, -1310,  5116, -1310,   595,   835,
     1695   -1310, -1310, -1310, -1310, -1310, -1310, -1310,   875,   857,  8892,
     1696   -1310, -1310,  7193,  1196, -1310,   622,   835, -1310,   644,   649,
     1697     835, -1310,  1729,  4053, -1310, -1310, -1310,  9605,  9605, -1310,
     1698    8228,  8228, -1310,  1194,  1195,  1198,  1199, -1310,  1200,   531,
     1699      27,  1135, -1310,   567, -1310,  4633, -1310,  5116,   453, -1310,
     1700    6359,  1213,  1217, 10041,  1222,  1223,    43,    49,   106,  5116,
     1701    1228,   144,  5116,  5116,  1208,  1237,   142,  1218, -1310, -1310,
     1702   -1310,  1236, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1703   -1310,   941,  1249,  5116, -1310,  9605,  9605,   101,  1252, -1310,
     1704    8810, -1310, -1310,   987, -1310,  3429, -1310, -1310, -1310, -1310,
     1705    1677, -1310, -1310,  1253, -1310, -1310, -1310, -1310,  1254,  1305,
     1706   -1310, -1310,  1239, -1310,  1099, -1310, -1310,  1053,  1258, -1310,
     1707   -1310, -1310,   806,  1262, -1310,   167,  1267, 10288,  1248,   167,
     1708     167,  1273,  9310,   693,   835, -1310, -1310,  1070,  5116,  1274,
     1709    1188,   208,   157,  1269, -1310, -1310,  1278,  1269, -1310, -1310,
     1710    1282, -1310, -1310,   970,  1286,  1288,  6717,  1287,  1289,  1291,
     1711   -1310, -1310,  1290, -1310, -1310,   970, -1310, -1310, -1310, -1310,
     1712     970,  5116,  5116,   857,  1292, -1310, -1310, -1310, -1310, -1310,
     1713   -1310, -1310, -1310, -1310, -1310, -1310, -1310, 10288, 10288,  1294,
     1714    1295,  1269, -1310, -1310,   941, -1310, -1310, -1310,  5073,  9528,
     1715    5116,  5116,  1370,  5116, -1310,  1298, -1310,  1299, -1310,  1302,
     1716    5116,  1306,  5116,  1123,  1307,    30,   101,  5821,  1435, -1310,
     1717   -1310,  6225,  1303,   456, -1310, -1310, -1310, -1310, -1310, -1310,
     1718   -1310, -1310, -1310,  9861, -1310,  8301,  1330, -1310, -1310,  9528,
     1719     463,   481, -1310,  1328,  1314,   772,  1341, -1310,   306, -1310,
     1720   -1310, -1310, -1310,   970,  1332, -1310, -1310,  1342,   753,   834,
     1721     567,  1345, -1310,  1350, -1310,  9605, -1310, -1310, -1310, -1310,
     1722   -1310,  1351, -1310,  9605,  9605,  9605, -1310, -1310,  1359, -1310,
     1723    1362,  1365,  1366,   557,  7925,  8040, -1310, -1310,   420, -1310,
     1724    1368,  1371, -1310,  8374,   815,   844,  1346,   866,  6094, -1310,
     1725   -1310, -1310,   485, -1310,   888,  1369,  1375,   144,  1417,  1051,
     1726   -1310, -1310,  5116, -1310, 10041,  5116, -1310, -1310, -1310,  1377,
     1727    1379, -1310, -1310, -1310,  1376, -1310, -1310, -1310, -1310, -1310,
     1728   -1310,  9528,   772,   195, -1310,  1353,   772,  9605, -1310, -1310,
     1729   -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310,
     1730   -1310, -1310,  1384,  1388, -1310, -1310, -1310, -1310, -1310, -1310,
     1731   -1310,  1394, -1310,  1397, -1310, -1310, 10041,   217,  5116, 10041,
     1732   -1310,  1400,  5116, -1310,   289,  1421,  1423, -1310, -1310,  1403,
     1733    1415,  1393, -1310,  1001, -1310, -1310, -1310,  1337,  1053,  1412,
     1734     799,   323, 10288, -1310,   953, -1310,   567,   567,  1418,  1425,
     1735    1426,  1428, -1310, -1310,  8228,  1427, -1310,  1497, 10288,  1420,
     1736   -1310, -1310,  9953, -1310,   955, -1310,  1419, 10041,  1424, -1310,
     1737   -1310,  1442, -1310,  1445, -1310,  1461,  1462, -1310,  1430,  9528,
     1738   -1310, -1310, -1310,   772,   567,  1453,  1436,  1459,  1269,  1269,
     1739   -1310, -1310, -1310, -1310, -1310, 10041,   204, -1310,   370, -1310,
     1740   -1310,  3684, -1310, -1310,  1439,  5116, -1310,  5116,  3684,   144,
     1741    9457,   144,  9457,  1463, -1310,  1465, -1310, -1310,  1464,   799,
     1742   -1310,   968, -1310, -1310, -1310,  1460,  1466, -1310, 10288, 10288,
     1743   -1310, -1310,  1075,   122, -1310, -1310,  1444, -1310,  1075, -1310,
     1744   -1310,  2191,   567, -1310, -1310,   144,  9457,   144,  9457,  1472,
     1745    1450,   567, -1310, -1310, -1310, -1310,  9953,  1469,  1075,  7664,
     1746    5116,  9865,  1470,  1075,  1479,  2191,  3509, -1310, -1310, -1310,
     1747    1482, -1310, -1310, -1310, -1310,  8666, -1310, -1310, -1310,  9732,
     1748   -1310,  9953, -1310, -1310,  1468,  9644, -1310, -1310,  9865,   144,
     1749    3509,   144,  1484,  1486,   976, -1310,  9732, -1310, -1310, -1310,
     1750    9644, -1310, -1310, -1310,   144,   144, -1310, -1310, -1310, -1310,
     1751   -1310, -1310, -1310, -1310
    17521752};
    17531753
     
    17551755static const yytype_int16 yypgoto[] =
    17561756{
    1757    -1414,  4377,  3077, -1414,  1645, -1414,   305,   958,   -11, -1414,
    1758      552,  -530,  -487,  -944,  -142,  3604,     0, -1414,  1277,   511,
    1759      529,   298,   549,  1057,  1060,  1054,  1062,  1065, -1414,  -211,
    1760     -327,  5116,  -961,  -725,  -952, -1414,  -200,  -594,   572, -1414,
    1761     1379, -1414,   397, -1413, -1414, -1414,   129, -1414, -1160,  -935,
    1762      246, -1414, -1414, -1414, -1414,    68, -1131, -1414, -1414, -1414,
    1763    -1414, -1414, -1414,   321, -1152,    33, -1414,  -696, -1414,   506,
    1764      296, -1414,   169, -1414,  -339, -1414, -1414, -1414,   558,  -728,
    1765    -1414, -1414,    19,  -974,   177,  2303, -1414, -1414, -1414,   -91,
    1766    -1414,   166,   269,  -194,  1705,  3615, -1414, -1414,    36,   224,
    1767      628,  -235,  1694, -1414,  1557, -1414, -1414,   200,  2163, -1414,
    1768     2278,   185, -1414, -1414, -1414,  -607, -1414,   956,   957,   545,
    1769      725,  -320, -1414, -1414, -1414,   950,   719,  -493, -1414,  -472,
    1770     -355,  1296, -1414, -1414,  -899,  -946,   440,   524,  1067,   168,
    1771    -1414,  1040,   317,  -281,  -198,  -141,   672,   781, -1414,  1005,
    1772    -1414,  2834,    55,  -450,   932, -1414, -1414,   712, -1414,  -228,
    1773    -1414,   104, -1414, -1414, -1414, -1285,   420, -1414, -1414, -1414,
    1774     1178, -1414,    31, -1414, -1414,  -862,   -94, -1364,  -152,  1641,
    1775    -1414,  3733, -1414,   927, -1414,  -170,   493,  -184,  -183,  -181,
    1776        7,   -42,   -36,   -33,  1610,     4,    10,    14,  -143,  -177,
    1777     -172,  -162,  -161,  -319,  -513,  -508,  -498,  -547,  -310,  -528,
    1778    -1414, -1414,  -511,  1101,  1102,  1110,  1575,  4802,  -565,  -560,
    1779     -559,  -541,  -551, -1414,  -506,  -744,  -736,  -732,  -593,  -267,
    1780     -227, -1414, -1414,   624,   294,   -85, -1414,  3753,    44,  -634,
    1781     -173
     1757   -1310,  4585,  3220, -1310,  1680, -1310,    79,   965,  -162, -1310,
     1758     542,  -525,  -472,  -928,   -58,  5006,     0, -1310,   115,   571,
     1759     588,   220,   578,  1041,  1045,  1037,  1040,  1043, -1310,   682,
     1760    -568,  4467,  -949, -1310,  -743,   627,  -136,  -680,   399, -1310,
     1761     364, -1310,   400, -1052, -1310, -1310,   143, -1310, -1280, -1058,
     1762     249, -1310, -1310, -1310, -1310,    74, -1199, -1310, -1310, -1310,
     1763   -1310, -1310, -1310,   317, -1213,    36, -1310,  -398, -1310,   501,
     1764     296, -1310,   175, -1310,  -322, -1310, -1310, -1310,   558,  -827,
     1765   -1310, -1310,    14,  -963,    60,  1949, -1310, -1310, -1310,   -66,
     1766   -1310,    19,  1219,  -202,  1852,  4238, -1310, -1310,    54,    75,
     1767     689,  -242,  1416, -1310,  1975, -1310, -1310,   158,  2131, -1310,
     1768    2701,  1038, -1310, -1310, -1310,  -621, -1310,   944,   946,   541,
     1769     713,  -254, -1310, -1310, -1310,   938,   714,  -169, -1310,  -117,
     1770    -134,  1167, -1310, -1310,  -857,  -878,   837,   910,  1055,    25,
     1771   -1310,   900,   597,   -39,  -190,  -145,   668,   773, -1310,   993,
     1772   -1310,  2728,  1561,  -434,   920, -1310, -1310,   708, -1310,  -238,
     1773   -1310,   241, -1310, -1310, -1310, -1226,   414, -1310, -1310, -1310,
     1774    1165, -1310,    35, -1310, -1310,  -830,  -111, -1309,  -151,  3288,
     1775   -1310,  3069, -1310,   921, -1310,  -170,   169,  -182,  -181,  -166,
     1776       7,   -35,   -33,   -32,   813,     2,    29,    44,  -122,  -165,
     1777    -164,  -158,  -153,  -314,  -519,  -491,  -490,  -538,  -301,  -501,
     1778   -1310, -1310,  -512,  1078,  1084,  1085,  2540,  5063,  -571,  -588,
     1779    -558,  -543,  -557, -1310,  -503,  -733,  -723,  -722,  -570,  -311,
     1780    -274, -1310, -1310,   240,   176,   -77, -1310,  3991,   136,  -632,
     1781    -222
    17821782};
    17831783
     
    17851785   positive, shift that token.  If negative, reduce the rule which
    17861786   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1787 #define YYTABLE_NINF -526
     1787#define YYTABLE_NINF -521
    17881788static const yytype_int16 yytable[] =
    17891789{
    1790       50,   115,   151,   400,   401,   771,   402,    99,   152,   973,
    1791      403,   153,   429,   454,   874,   404,   756,   974,   408,  1080,
    1792      116,   975,   262,   441,   269,   405,   406,   744,   850,   384,
    1793      385,   605,    50,    51,  1142,   982,    70,   411,   833,    99,
    1794      610,   825,   826,   727,   149,   409,   499,   732,   154,  1150,
    1795       50,    31,  1398,   836,   155,  1462,   832,   163,   156,   843,
    1796      827,   800,   282,   145,   188,    51,  1208,   211,    70,   528,
    1797       50,   195,   343,   824,   218,   567,  1200,   228,    31,   597,
    1798      671,  -235,  -235,   400,   401,  1184,   402,   926,   821,   221,
    1799      403,  1318,   170,   822,   168,   404,   520,   737,   408,  1194,
    1800      680,  1217,  1218,   823,   738,   405,   406,   115,   684,   426,
    1801      568,   476,   478,  1550,    31,   115,   171,   124,   268,   273,
    1802      283,   254,   217,   412,    31,   409,  1209,   410,   715,  1462,
    1803     1210,  1182,  1183,  1561,    31,  1419,  1420,    31,   629,   244,
    1804     1565,   955,   633,   865,   866,   151,   675,   677,   308,   149,
    1805      412,   152,  -235,  1079,   153,  1481,   163,   115,   346,   168,
    1806     1319,   884,   211,   863,   863,   863,    64,   472,   973,   374,
    1807      722,   204,   477,    31,   217,   528,   974,    57,   117,  1260,
    1808      975,   853,   863,   920,   420,   854,   412,   188,   188,  1212,
    1809     1211,   154,   328,   578,   482,   163,   412,   155,    64,   579,
    1810       78,   156,   528,   268,   834,  1421,   602,   821,   528,    57,
    1811      956,    50,   822,   669,   731,  1190,   716,   217,   163,   938,
    1812      293,   205,   823,   211,    71,   151,   179,   674,   676,  1127,
    1813      444,   152,    78,   746,   153,  1213,  1087,   666,  -113,  -113,
    1814      863,   308,  1191,   841,   212,   602,  1263,   222,   580,   958,
    1815      412,   125,   216,    50,  -113,   437,    71,   589,   825,   826,
    1816       99,   273,   144,  1466,   667,  1026,   273,   268,   268,   836,
    1817      118,  1152,   506,   115,  1264,   163,   263,   827,   217,   264,
    1818      864,   864,   864,  1025,   464,   328,    51,   343,  1001,    70,
    1819     1013,   214,  1184,   610,   108,   108,   308,  1103,   804,   864,
    1820     1090,   146,  1343,   658,   216,   821,   113,   520,   308,   378,
    1821      822,   666,   520,   148,  1004,   520,   217,   437,   725,   161,
    1822      823,   217,  1199,  1508,   572,   379,   108,   477,   472,   149,
    1823     1200,   673,  1419,  1420,   448,   863,   374,   678,   667,   855,
    1824     -470,   157,   115,   856,   905,  1184,   346,   216,   472,   569,
    1825      603,   621,   168,   461,   597,   528,   472,   864,  1537,   597,
    1826     1539,  1466,  1080,   810,   108,   626,  1466,   388,   793,   626,
    1827      930,  -470,   115,  -470,  1492,   833,   260,  -470,  -113,   825,
    1828      826,   685,  1401,   389,   161,  1405,  1466,   579,   440,  1128,
    1829      599,  1182,  1183,  1466,   715,  1551,  1129,   268,   827,  -113,
    1830      442,  1191,  1430,   557,   558,   859,   217,   188,   216,     8,
    1831        9,    10,    11,    12,   374,   173,   850,   324,   183,    64,
    1832       43,   252,  1566,   876,   473,   268,   340,   308,   308,  1247,
    1833       57,   268,   837,  1251,   626,   571,   840,   412,    31,   559,
    1834      560,   343,   484,   391,    46,    47,   216,   443,   494,   501,
    1835      495,   216,   864,    78,   877,   115,   644,   857,    78,   392,
    1836      878,   860,   393,  1451,  1452,  1214,    34,  1170,  1172,  1184,
    1837     1138,   328,   328,   268,   203,   855,   431,    71,   394,  1110,
    1838      435,   268,   716,   626,   395,    50,   929,   217,   374,   721,
    1839     1200,   112,    99,    98,   736,   115,  1079,  1200,  1114,   499,
    1840      396,   249,    41,    42,  1148,  1259,   888,   308,   875,   115,
    1841      324,  1024,   308,  -291,   308,   308,  1457,   179,    51,   917,
    1842      610,    70,   754,  -521,   921,    98,   115,   346,  1341,   217,
    1843      763,   583,   923,   412,   630,  1342,   216,   150,   634,   328,
    1844      922,   112,   435,    98,  1026,   489,   919,   108,   924,    43,
    1845     1200,  -106,    41,    42,   921,  -106,   715,   191,   328,   466,
    1846       98,  1521,   886,    98,   753,   522,   412,  1526,   923,   254,
    1847     1091,   572,   572,    46,    47,   214,  1381,   161,   265,   308,
    1848      769,   995,  1006,    43,  1092,   473,  1094,   810,  1546,  1138,
    1849      626,   346,   472,  1553,   920,   621,  1197,  1097,   939,  1097,
    1850      602,   603,   331,   603,  1197,   473,  1332,    46,    47,   332,
    1851      706,   588,  1198,   473,  1334,   594,   707,   216,   935,    78,
    1852     1324,   626,  1333,   328,   751,  1024,   626,   812,   621,  1367,
    1853     1335,  1126,   626,  1368,   627,   626,   626,   626,   631,    78,
    1854     1382,   340,    98,   889,   716,   412,  -113,    78,  -113,   713,
    1855      217,    64,  -113,   -10,   626,    98,   268,   895,  1039,   216,
    1856      723,   112,    57,   343,  -444,   851,   724,  -113,  -113,  1037,
    1857      599,   733,    41,    42,   165,  1181,   810,   734,   217,  1029,
    1858      399,   191,   288,   217,  -445,    78,   115,   254,   330,   914,
    1859     1084,   553,   554,    41,    42,   750,   324,   324,   214,   231,
    1860     1348,   751,   929,   232,    98,   892,   236,   412,   238,    71,
    1861     1379,   550,   626,   940,   621,   247,    98,   551,   552,   515,
    1862      721,   721,  1122,  1154,   689,   412,   278,   959,   400,   401,
    1863      280,   402,  1044,   555,   556,   403,  1498,   118,   281,   165,
    1864      404,   333,   597,  1498,   408,   334,    98,   929,   115,   346,
    1865      405,   406,   335,   754,   754,   217,   112,   336,   141,   142,
    1866      480,   372,   489,   112,   324,   373,   489,    41,    42,   217,
    1867      377,   409,  1111,   113,    41,    42,   522,   112,   522,   108,
    1868      216,   522,   386,   324,   522,  1151,   973,  1429,    41,    42,
    1869      852,  1392,   994,   991,   974,   340,  1547,   899,   975,   572,
    1870     1249,   390,  1350,   751,   715,   398,   867,   626,   216,   626,
    1871      901,  1009,   410,   216,   626,   346,   751,   990,   603,   743,
    1872      427,   883,    98,   991,   739,   343,   740,  1003,  1174,   741,
    1873      603,   428,   747,   707,   764,   436,  1039,   743,   433,   770,
    1874      743,   451,   231,   604,   529,   530,   531,   443,   324,   473,
    1875      112,   812,   141,   142,  1245,   781,   782,   783,   784,   808,
    1876      579,    41,    42,  1292,  1293,  1375,   217,  1166,   532,   412,
    1877      533,   751,   534,   535,  1500,   473,  1501,  -368,  1376,  -397,
    1878     1378,   308,   462,    78,   751,   216,   751,  1383,   466,   870,
    1879      849,   505,   716,   751,  1169,   594,   602,   436,   463,   216,
    1880      191,   858,   501,   626,  1195,   704,  1171,   810,   602,    78,
    1881      115,   346,   914,  1447,   914,   713,   929,    70,   485,  1444,
    1882      524,  1467,  1514,  1571,   214,   666,   115,   751,  1515,   579,
    1883      917,  1548,   165,   293,  1256,  1370,   412,   509,   214,   940,
    1884      940,   529,   530,   531,   721,   254,   330,   412,   514,   115,
    1885      308,   528,   667,   561,   562,   689,   526,   919,    49,   114,
    1886      885,   563,   887,   751,   996,   532,   346,   533,  1115,   534,
    1887     1321,   716,   565,    37,   330,   412,   754,    40,    98,   929,
    1888      929,   231,   604,   236,    41,    42,   564,   114,   114,   705,
    1889       49,  1388,  1389,   489,   328,    43,   216,  1439,   991,  1533,
    1890     1444,  1445,    49,  1300,  1301,   566,  1303,   569,    49,   346,
    1891       44,   339,   934,  1308,  -441,  1310,    49,   340,   587,    46,
    1892       47,   694,    49,  1240,   590,    49,  1493,  1494,    49,    -3,
    1893      626,   626,   420,   662,   412,   214,     2,   208,     4,     5,
    1894        6,     7,   114,   114,   482,   330,   412,    64,   639,  1138,
    1895      308,  1419,  1420,   851,   834,   330,   602,   659,    57,     8,
    1896        9,    10,    11,    12,   777,   778,    49,   217,   668,    49,
    1897      143,   231,   660,   661,  1446,   663,    49,   713,  1005,   693,
    1898      664,    78,   665,   808,   779,   780,  1202,   670,    31,   259,
    1899      115,   697,  1459,   695,   820,   914,   604,  1311,  1312,  1313,
    1900      914,    35,   699,    36,  -239,    71,   735,    49,   748,   940,
    1901      785,   786,   704,   752,   959,    49,    34,   268,   959,   959,
    1902       49,  1349,  1351,  1352,   243,   246,  1116,   760,   813,   -12,
    1903      814,   524,   817,   524,   626,   343,   524,   828,   -13,   524,
    1904     -292,   872,   873,    43,   880,    49,    49,     8,     9,    10,
    1905       11,    12,   900,   902,   724,   907,   903,   910,   571,   346,
    1906      412,    49,   928,  -418,    -3,  1519,  1459,    46,    47,    49,
    1907     -525,   943,   808,   950,   964,   108,    31,  1425,    49,   340,
    1908      952,    49,   918,   957,   963,   965,   967,   968,   114,   969,
    1909      929,   970,   986,   998,   999,   689,   705,   216,  1000,  1015,
    1910     1016,   273,   115,   114,    34,  1017,  1018,   114,   929,  1019,
    1911     1020,    49,   114,   820,   604,  1021,   473,   489,  1117,   324,
    1912      115,   221,  1032,  -406,   308,    49,    49,    57,  -405,    37,
    1913     1081,  1046,    49,    40,  1083,   704,   443,  1339,   626,    49,
    1914       41,    42,   115,   108,   913,   704,   112,  1105,   141,   240,
    1915       78,    43,   112,  1104,   141,   142,   217,    41,    42,   704,
    1916       70,  1115,  1106,    41,    42,  1107,   818,   751,   602,  1131,
    1917     1113,  1123,  1124,  1125,    71,    46,    47,  1134,   849,  1130,
    1918      980,   929,   929,   241,  1140,   458,  1135,    49,   242,   728,
    1919      626,   626,  1136,  1144,   729,  1137,   743,  1164,  1144,   273,
    1920     1143,  1187,  1185,  1442,   308,  1186,  -293,    49,    49,  1188,
    1921      693,   820,  1559,     8,     9,    10,    11,    12,  1189,   705,
    1922     1203,  1204,  1206,   604,    49,   713,  1207,  1399,    49,   705,
    1923     1215,  1399,  1219,    -3,  1220,  1222,  1227,   115,  1232,   645,
    1924     1202,  1237,    31,   705,   108,  1235,   400,   401,  1144,   402,
    1925     1241,  1246,   494,   403,   217,    49,  1115,  1248,   404,   689,
    1926     1253,   408,  1254,  1261,  1250,    49,  1268,  1270,   405,   406,
    1927       34,     2,   208,     4,     5,     6,     7,  1265,   212,   222,
    1928     1272,  1273,  1302,    49,  1274,   666,   216,  1275,   409,    49,
    1929       64,    49,  1276,  1278,  1285,  1305,  1294,   268,  1295,  1306,
    1930      230,    57,  1323,   808,   713,  1093,   131,   918,   132,   133,
    1931      134,  1532,   667,  1307,  1330,   626,  1336,    41,    42,  1116,
    1932     1309,   646,  1317,  1338,    78,   214,   114,  1340,  1344,  1346,
    1933     1347,    49,  1353,  1482,  1354,   175,    35,   604,    36,    49,
    1934      115,  1355,  1357,    49,  1363,  1364,  1365,    49,    71,  1366,
    1935      114,  1377,   114,  1068,    37,  1373,   176,   177,    40,  1115,
    1936     1374,  1384,  1385,  1313,   115,    41,    42,   704,   704,  1393,
    1937      473,   115,   645,   115,  1394,   115,   442,  1395,   255,  1402,
    1938     1413,    57,  1405,  1414,   216,  -407,  1417,   114,   151,   340,
    1939      645,   373,   114,   645,   152,  1428,   108,   153,  1432,  1436,
    1940     1202,  1434,  1437,  1443,    78,  1531,  1448,  1202,  1438,  1453,
    1941      115,  1117,   115,  1368,  1116,  1458,  1454,  1455,   108,  1456,
    1942     1472,  1463,  1474,   443,   115,   704,   704,  1468,    71,  1476,
    1943     1531,  1531,   726,  1470,   730,  -294,   108,  1478,   163,  1485,
    1944      308,   114,     8,     9,    10,    11,    12,  1480,    49,  1486,
    1945      693,   705,   705,  1487,    37,  1531,  1488,    76,    40,    49,
    1946     1202,    49,   374,   511,  1441,    41,    42,  1499,  1144,  1144,
    1947     1144,    31,  1509,  1511,   418,  1513,    43,  1517,  1518,  1525,
    1948       49,  1540,  1541,  1545,   328,   548,   549,  1554,   918,    76,
    1949     1552,   720,   112,   918,   141,   142,    49,   438,   108,    34,
    1950       46,    47,   114,    41,    42,  1556,  1117,   446,  1562,   705,
    1951      705,    49,  1569,   114,    49,   114,  1570,  1116,  1221,   789,
    1952      787,  1322,  1520,   548,   788,  1205,   743,   224,   790,  1431,
    1953      473,   108,   791,  1572,   245,  1387,  1252,   473,  1403,  1226,
    1954     1502,    57,   908,   909,  1098,  1234,  1102,    49,    57,   931,
    1955      806,   114,  1139,   114,  1045,   879,   945,   114,  1112,   548,
    1956      164,   953,  1331,   718,    78,   114,     0,   126,   129,   130,
    1957        0,    78,   796,   797,   196,   521,  1328,   219,    49,    49,
    1958      229,   798,     0,     0,   871,     0,     0,     0,    71,     0,
    1959      473,     0,    49,     0,     0,    71,    37,     0,   176,   177,
    1960       40,    57,     0,   178,     0,    67,   119,    41,    42,  1117,
    1961        0,   704,  1144,  1144,   693,   354,     0,     0,     0,   704,
    1962      704,   704,     0,     0,    78,     2,   208,     4,     5,     6,
    1963        7,     0,     0,   925,   108,   927,     0,    67,     0,   458,
    1964        0,   256,  1505,   257,  1505,     0,     0,     0,    71,     0,
    1965     1483,     0,     0,   178,     0,   162,   178,     0,   108,   164,
    1966     1329,   215,     0,     0,     0,   108,   414,     0,     0,     0,
    1967        0,   234,   375,   422,     0,   223,    49,     0,     0,  1505,
    1968        0,  1505,     0,     0,     0,   704,     0,     0,    49,   450,
    1969       35,     0,    36,     0,     0,   705,  1068,     0,   164,     0,
    1970        0,     0,   178,   705,   705,   705,     0,     0,     0,   324,
    1971       76,  1534,   261,   215,     0,    76,     0,     0,   108,     0,
    1972     1542,   164,     0,   682,   397,     0,     0,   774,   775,   776,
    1973        0,   645,     0,   445,   416,   417,     0,     0,   114,   421,
    1974        0,   423,   424,     0,     0,   414,     0,     0,    37,   708,
    1975      176,   177,    40,     0,   329,     0,   215,     0,     0,    41,
    1976       42,    49,   261,   351,     0,   178,     0,     0,     0,   705,
    1977       49,     0,    49,     0,     0,     0,     0,     0,    37,   114,
    1978      185,   186,    40,     0,     0,   377,   521,     0,     0,    41,
    1979       42,   521,  1391,   407,   521,     0,     0,     0,     0,   577,
    1980       43,     0,    49,     0,     0,     0,     0,   581,   425,   224,
    1981      584,   430,   432,   646,     0,   187,   162,   215,     0,   178,
    1982     1049,     0,   114,     0,    46,    47,   178,     0,     0,     0,
    1983        0,     0,     0,     0,     0,     0,     0,   449,   645,   375,
    1984        0,   452,     0,   453,     0,     0,   114,  1418,     0,   645,
    1985     1426,   114,   460,     0,     0,   215,     0,     0,    67,     0,
    1986      215,  1099,     0,   474,     0,     0,     0,     0,   898,     0,
    1987        0,     0,     0,   481,   414,   500,    76,     0,   422,     0,
    1988        0,   432,     0,     0,     8,     9,    10,    11,    12,     0,
    1989        0,   354,     0,     0,   178,  1465,    76,     0,     0,     0,
    1990     1469,   114,     0,     0,    76,     8,     9,    10,    11,    12,
    1991        0,   178,     0,    31,     0,   178,     0,   375,     0,     0,
    1992      646,     0,   354,   480,     0,     0,     0,     0,     0,     0,
    1993     1491,     0,     0,     0,    31,     0,     0,   981,     0,   114,
    1994      354,    34,    76,     0,     0,   215,     0,   261,     0,     0,
    1995      897,   595,     0,    49,     0,   414,     0,   623,    49,   904,
    1996        0,     0,    34,   906,     0,     0,     0,     0,    43,     0,
    1997      628,     0,     0,     0,   628,    49,     0,   261,   178,     0,
    1998        0,     0,     0,   753,   354,   412,     0,     0,     0,    43,
    1999        0,   997,    46,    47,     0,     0,     0,  1506,     0,  1506,
    2000        0,  1002,     0,     0,   939,     0,   602,     0,     0,     0,
    2001        0,     0,     0,    46,    47,  1014,  1560,     0,     0,     0,
    2002        0,  1049,  1560,     0,   474,     0,   215,     0,     0,     0,
    2003        0,     0,     0,  1560,  1506,     0,  1506,  1560,    37,   351,
    2004      185,   186,    40,   215,   474,     0,   577,   577,   354,    41,
    2005       42,     0,   474,     0,    37,   114,   185,   186,    40,     0,
    2006       43,     0,     0,    79,     0,    41,    42,     0,   215,     0,
    2007      700,     0,     0,   432,     0,   912,    43,   412,    49,     0,
    2008        0,     0,     0,   913,    46,    47,     0,     0,   714,     0,
    2009       67,   267,   354,   354,   354,    79,     0,     0,   432,     0,
    2010       46,    47,   432,     0,     0,     0,     0,     0,     0,     0,
    2011        0,   354,     0,     0,     0,     0,   801,   802,     0,     0,
    2012        0,   114,   114,   114,     0,     0,     0,     0,     0,   354,
    2013        0,   261,   351,   225,   890,   178,     0,  1298,   893,     0,
    2014       76,     0,     0,     0,     0,   835,     0,     0,   838,   839,
    2015        0,   842,     0,   844,   845,     0,     0,     0,   846,   847,
    2016        0,     0,     0,     0,     0,     0,    76,   178,     0,   354,
    2017        0,     0,     0,     0,     0,     0,     0,   799,    81,   645,
    2018        0,     0,     0,   178,  1089,     0,   548,     0,     0,   215,
    2019        0,     0,     0,     0,     0,   628,   811,     0,   178,     0,
    2020        0,     0,     0,    58,    58,     0,   354,     0,   830,     0,
    2021       81,     0,     0,     0,     0,     0,     0,   215,     0,     0,
    2022        0,   356,   215,  1179,  1180,     0,   595,   511,     0,     0,
    2023        0,   595,     0,     0,     0,    58,     0,   628,     0,     0,
    2024      351,   351,   351,     0,     0,     0,     0,     0,   226,     0,
    2025        0,     0,   354,     0,    49,    49,     0,     0,     0,   351,
    2026        0,     0,   354,     0,   354,   114,   114,     0,     0,   224,
    2027       58,     0,   354,    58,   577,     0,   354,   700,     0,   178,
    2028        0,  1229,  1230,     0,     0,     0,     0,     0,   474,     0,
    2029        0,     0,     0,     0,   215,     0,     0,     0,     0,   978,
    2030      979,     0,     0,   114,     0,     0,     0,     0,   215,     0,
    2031        0,     0,     0,     0,   474,     0,    79,   351,     0,     0,
    2032        0,    79,     0,     0,     0,     0,   944,     0,   500,   432,
    2033       37,     0,   185,   186,    40,     0,   357,     0,    76,     0,
    2034     1216,    41,    42,     0,    37,     0,   185,   186,    40,     0,
    2035        0,     0,    43,   261,   714,    41,    42,     0,     0,   976,
    2036        0,   349,     0,    49,   114,     0,    43,   601,   354,   602,
    2037        0,     0,     0,   114,     0,     0,    46,    47,     0,     0,
    2038        0,   912,     0,   412,     0,     0,     0,     0,    49,    49,
    2039       46,    47,     0,   414,     0,     0,     0,     0,     0,     0,
    2040      700,     0,     0,     0,     0,   215,     0,     0,     0,     0,
    2041      700,     0,   351,    49,   628,   225,     0,  1012,     0,   628,
    2042      811,     0,     0,   354,   700,     0,    58,     0,     0,     0,
    2043        0,    81,     0,     0,  1023,     0,    81,   536,   537,   538,
    2044      539,   540,   541,   542,   543,   544,   545,     0,   178,     0,
    2045        0,     0,     0,     0,     0,     0,    58,    37,     0,   185,
    2046      186,    40,     0,     0,  1100,     0,     0,  1356,    41,    42,
    2047        0,   546,     0,  1155,     0,  1358,  1359,  1360,     0,    43,
    2048        0,     0,    79,     0,   354,   354,    67,   354,   354,     0,
    2049     1167,     0,     0,     0,  1530,     0,   412,   356,     0,     0,
    2050        0,     0,    79,    46,    47,     0,     0,    76,   628,     0,
    2051       79,     0,     0,     0,     0,   261,   714,     0,     0,  1095,
    2052        0,     8,     9,    10,    11,    12,     0,     0,   356,     0,
    2053      226,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2054        0,  1406,   354,   354,     0,  1109,   356,     0,    79,     0,
    2055       31,     0,     0,   432,   119,     0,     0,     0,     0,     0,
    2056        0,     0,     0,     0,     0,     0,     0,     0,   414,     0,
    2057        0,   351,     0,     0,     0,     0,     0,     0,    34,     0,
    2058        0,     0,     0,    37,     0,   185,   186,    40,     0,     0,
    2059      356,     0,  1386,     0,    41,    42,     0,    81,     0,     0,
    2060        0,     0,     0,     0,     0,    43,   215,     0,     0,     0,
    2061     1257,     0,   357,     0,   595,     0,   354,    81,     0,     0,
    2062      601,     0,   602,     0,     0,    81,     0,   430,  1231,    46,
    2063       47,     0,   700,   700,     0,   351,   351,   349,     0,     0,
    2064        0,     0,     0,   357,     0,     0,     0,     0,     0,     0,
    2065        0,     0,     0,     0,   356,  1201,     0,     0,     0,   224,
    2066        0,   357,     0,    81,     0,     0,     0,     0,     0,     0,
     1790      49,   114,   453,   428,   399,   400,   268,    98,   150,   766,
     1791     151,   152,   819,   973,   868,   115,   964,   407,   752,    63,
     1792     401,   402,   403,   358,   383,   384,   965,   966,   404,   261,
     1793     440,   827,    49,   405,   596,   604,    50,   410,   498,    98,
     1794     357,   740,   820,   148,  1070,   153,   830,  1069,   609,    49,
     1795     844,    63,   837,   948,    69,  1137,   162,   821,   725,   794,
     1796      56,   116,   730,   187,   826,   408,   210,   144,    50,    49,
     1797     194,   919,   154,   217,   409,    70,   227,  1187,    31,   342,
     1798     112,   815,   178,   220,   399,   400,    69,   155,   281,  1439,
     1799     628,   425,    56,  1302,   632,  1379,   669,   407,   123,   818,
     1800     401,   402,   403,  1204,  1205,  1181,   114,    70,   404,   816,
     1801     817,   475,   477,   405,   114,  1195,   678,   267,   272,   476,
     1802     505,  1197,  1443,  1177,   682,    31,   211,   923,    31,   221,
     1803     203,   124,   262,    31,    31,   263,   566,    31,   527,   493,
     1804      31,   213,   494,  1171,   527,   408,   282,   307,   148,  1178,
     1805     411,   150,   145,   151,   152,   162,   114,   345,    77,   519,
     1806    1439,   210,  1303,  1169,  1170,  1117,  -231,  -231,   373,    97,
     1807     567,   714,   964,   143,   720,  1196,   107,   107,  1199,  1245,
     1808     204,  1198,   965,   966,   913,   167,   187,   187,   153,   476,
     1809      77,   471,   949,  1458,   162,   253,   147,   411,   419,   815,
     1810     411,    97,   267,   481,   828,   411,   601,   835,   107,   601,
     1811      49,   568,   149,  1186,   287,   154,  1443,   162,    97,   527,
     1812     667,  1443,   210,  1200,   819,    41,    42,   816,   817,   443,
     1813     155,   150,   190,   151,   152,    97,   664,  -231,    97,  1484,
     1814     307,  1443,  1248,  1139,   439,   107,   156,  1077,  1443,   292,
     1815     167,   514,    49,  1016,   820,   182,   169,   830,   172,    98,
     1816     272,  1398,  1399,   202,   588,   272,   267,   267,   723,   821,
     1817    1249,    63,   114,  1512,   162,  1514,   472,   527,   951,  1080,
     1818     170,   991,   441,   327,   665,   656,  1015,   463,    50,   164,
     1819     672,   674,  1093,   815,   342,   307,  -287,   442,   483,   358,
     1820    1468,   609,  1526,   248,  1382,   500,    69,   307,   251,   596,
     1821     664,  1003,    56,   671,   596,   804,   357,    97,  -119,   676,
     1822    -119,   816,   817,   571,  -119,  1187,  1178,    70,   148,  1541,
     1823      97,  1400,   465,  1398,  1399,   373,  -516,   527,  1084,  -119,
     1824    -119,   114,   734,  1118,   819,   345,   436,  1171,   713,   602,
     1825     620,   579,   471,   411,   164,   398,   190,   853,   665,   898,
     1826     253,   377,   827,  1119,   625,   735,   556,   557,   625,  1201,
     1827     519,   114,   471,   178,   820,   519,   327,   378,   519,    97,
     1828     471,  1070,   831,  1116,  1069,   736,   834,   673,   675,   821,
     1829     629,    97,   358,   111,   633,   847,   267,  1171,   747,   848,
     1830     510,   558,   559,  1409,    41,    42,   187,   851,   436,   357,
     1831      77,   854,   986,   373,  1496,    77,  1325,  1169,  1170,   174,
     1832    1501,    97,   547,   548,   267,   213,   307,   307,   107,   844,
     1833     267,   787,   759,   625,   714,   479,  1326,   472,   849,  1423,
     1834    1521,   577,   850,   167,   870,  1528,   642,   578,   342,  1525,
     1835     435,  1157,  1159,  1424,   114,   729,   358,   472,  1428,  1429,
     1836     547,  1362,   254,   871,  1126,   472,   859,   860,   264,  1536,
     1837     447,   849,   267,   357,   742,  1100,  1540,   387,  1187,   330,
     1838     267,   598,   625,   877,    49,  1187,  1469,   373,   719,   460,
     1839     498,    98,   683,   388,   114,  1244,   547,    97,   578,   390,
     1840    1470,   711,   869,    63,   888,   881,   307,  1104,   114,  1135,
     1841    1014,   307,   435,   307,   307,   391,  1171,   910,   603,   -10,
     1842      50,   750,  -440,   609,   392,   114,   345,  -441,  1016,   996,
     1843     582,  -467,   411,  -467,   804,   523,  1187,  1434,    69,   798,
     1844     393,   931,   277,   879,    56,   394,   112,   164,   213,  1236,
     1845    -467,     2,   207,     4,     5,     6,     7,   914,   417,    70,
     1846     704,   395,   327,   327,   916,   912,   705,   914,   916,  1184,
     1847     571,   571,  1184,   915,   952,   190,    77,   279,   307,  1316,
     1848     917,   437,  1126,  1081,  1082,  1185,   280,   913,  1308,   625,
     1849     345,   445,   549,   714,   620,  1317,    77,  1318,   550,   551,
     1850     602,   747,   602,   882,    77,   411,   331,   760,  1360,  1276,
     1851    1277,   713,   765,  1319,  1474,   471,    35,  1363,    36,   332,
     1852     625,  1474,   804,  1014,  1019,   625,   111,   620,   140,   239,
     1853     327,   625,   994,   333,   625,   625,   625,    41,    42,   111,
     1854     334,   928,    77,  -102,   806,   335,   846,  -102,   371,   327,
     1855      41,    42,   625,    97,   267,   372,  1087,   603,  1087,   520,
     1856     107,   465,   861,   240,   768,   769,   770,   342,   241,  1348,
     1857     376,  1027,  1522,  1349,   111,   358,   876,   385,   111,    -3,
     1858     140,   141,  1408,   389,   114,    41,    42,   907,   596,    41,
     1859      42,  1074,   357,   885,   691,   411,   111,   442,   140,   141,
     1860     472,   528,   529,   530,  1141,  1112,   411,    41,    42,   397,
     1861     625,   933,   620,   764,   327,   726,  1101,  1234,   719,   719,
     1862     727,  1238,  1034,   399,   400,   531,   472,   532,   409,   533,
     1863     534,  1153,   878,   411,   880,   432,   721,   407,   244,   401,
     1864     402,   403,   722,   426,   114,   345,   523,   404,   523,   750,
     1865     750,   523,   405,  1156,   523,   601,   845,   500,  1158,   230,
     1866     601,   598,   427,   231,   711,  1476,   235,  1477,   237,   814,
     1867     713,   603,   964,   213,   450,   246,   775,   776,   777,   778,
     1868    1373,  -288,   965,   966,   927,   408,  -364,   213,     8,     9,
     1869      10,    11,    12,   571,     2,   207,     4,     5,     6,     7,
     1870     731,   625,  1241,   625,   411,   999,   732,   680,   625,   345,
     1871    1161,  -393,   602,   570,  1425,   411,   111,    31,   140,   141,
     1872    1523,    45,    46,   229,   602,   111,   342,    41,    42,   484,
     1873    1436,   461,   746,   706,   462,   714,    41,    42,   747,    77,
     1874       8,     9,    10,    11,    12,    34,    37,   892,   804,   504,
     1875      40,   253,   329,   747,   292,   864,   911,    41,    42,    35,
     1876     894,    36,   163,   806,  1330,    77,   747,   980,   508,    31,
     1877     520,   972,   513,   981,   307,   520,   195,   525,   520,   218,
     1878     213,   527,   228,   812,   562,   601,  1168,   814,   603,   993,
     1879    1182,    45,    46,    63,   563,   705,   625,    34,   554,   555,
     1880    1494,  1436,   230,   114,   345,   907,   111,   907,     2,   207,
     1881       4,     5,     6,     7,   714,   664,  1232,    41,    42,   114,
     1882     910,   564,   578,   711,   691,  1356,   565,   749,    69,   411,
     1883     142,   747,   933,   933,    56,    45,    46,   719,   568,   570,
     1884      37,   411,   114,   307,    40,  1332,   338,    45,    46,    70,
     1885    -437,    41,    42,   952,  1357,   586,  1105,   952,   952,   589,
     1886     747,   163,   932,   665,   601,    48,   113,   750,   912,    -3,
     1887      45,    46,   657,    35,   374,    36,  1359,    43,  1508,   552,
     1888     553,   814,   747,   242,   245,    45,    46,   638,     8,     9,
     1889      10,    11,    12,   603,   113,   113,  1227,    48,  1364,   345,
     1890     163,   658,  1106,   659,   747,   560,   561,    37,    48,   184,
     1891     185,    40,   713,   111,    48,   140,   141,    31,    41,    42,
     1892     625,   625,    48,   163,    41,    42,   661,  1126,    48,   984,
     1893     981,    48,    77,   890,    48,   444,  1121,   253,   329,   411,
     1894     307,   230,   897,   235,   186,    34,   899,   662,   113,   113,
     1895     107,   666,    45,    46,  1284,  1285,    37,  1287,  1132,   472,
     1896      40,   663,  1132,  1426,  1292,  1444,  1294,    41,    42,  1423,
     1897     668,   747,    48,  1323,  1083,    48,   911,   442,  1490,   327,
     1898     114,   258,    48,   692,  1491,   907,  1546,   749,   693,   411,
     1899     907,   695,   578,   718,  1189,    45,    46,   329,   411,   933,
     1900      56,    45,    46,   737,   215,   738,   603,   267,   739,  1369,
     1901    1370,   743,  1132,    48,   547,    70,  1418,   981,   107,  1398,
     1902    1399,    48,   625,   771,   772,    37,    48,   184,   185,    40,
     1903     342,   230,   419,   660,   411,   845,    41,    42,   779,   780,
     1904    1351,   374,   773,   774,   457,   697,   345,  -235,   481,   329,
     1905     411,    48,    48,   733,   744,   510,   215,   748,   756,   691,
     1906    1380,   807,   266,   873,  1380,   711,   808,    48,   811,  -289,
     1907      45,    46,   828,   329,   601,    48,     8,     9,    10,    11,
     1908      12,  1295,  1296,  1297,    48,   822,   867,    48,   272,   114,
     1909    1331,  1333,  1334,   893,   113,   -12,   -13,   866,    77,   215,
     1910     895,   896,   900,   220,   903,    31,   921,   114,  -414,   113,
     1911    -520,   307,   936,   113,   943,   722,   107,    48,   113,   374,
     1912     117,   945,  1404,   956,   130,   625,   131,   132,   133,   114,
     1913      63,    48,    48,    34,   950,    41,    42,   957,    48,   958,
     1914     959,   960,   961,  1105,   711,    48,   988,   989,   211,   221,
     1915     990,   977,  1005,  1006,   911,  1007,  1008,  1009,  1010,   911,
     1916     215,  1459,  1079,   213,  1011,    69,  1022,  1421,   160,  -402,
     1917    -401,    56,  1036,  1058,   625,   625,  1071,  1534,  1094,   906,
     1918     644,  1073,  1096,   272,  1097,  1095,    70,  1103,   307,  1106,
     1919    1113,   747,  1114,    48,  1115,  1120,  1122,   971,   215,  1123,
     1920    1124,   702,  1125,   215,  1128,  1131,  1151,   472,  1174,  1175,
     1921    1172,  1173,  1176,    48,    48,     8,     9,    10,    11,    12,
     1922     691,   114,  1190,   399,   400,   259,  1191,  1132,  1132,  1132,
     1923      48,  1193,  1194,   160,    48,  1105,   407,  1202,  1206,   401,
     1924     402,   403,  1189,   441,    31,   643,  -290,   404,    56,  1207,
     1925    1209,    -3,   405,     8,     9,    10,    11,    12,   442,  1214,
     1926     664,    48,  1219,    70,  1224,   107,   323,   493,  1222,    77,
     1927    1507,    48,    34,  1228,   703,   339,  1233,   922,   267,  1235,
     1928    1237,  1106,    31,  1240,   408,  1250,  1246,   107,   215,    48,
     1929    1252,   724,  1254,   728,   625,    48,  1256,    48,  1257,  1258,
     1930    1262,  1259,  1420,  1260,  1269,   107,  1278,  1279,   665,    37,
     1931      34,   175,   176,    40,   932,  1203,   601,  1286,  1307,   114,
     1932      41,    42,    45,    46,    37,   430,   175,   176,    40,   434,
     1933    1289,  1290,   113,  1105,  1291,    41,    42,    48,  1293,  1301,
     1934    1314,   114,  1192,  1320,  1322,    48,    77,  1328,   114,    48,
     1935     114,  1324,   114,    48,  1329,  1358,   113,  1335,   113,   323,
     1936     472,   372,  1336,  1338,   107,  1132,  1132,   472,   985,   215,
     1937     150,  1344,   151,   152,  1345,  1346,  1347,  1297,  1365,  1106,
     1938    1354,  1506,   214,  1355,  1366,  1383,   114,  1374,   114,  1375,
     1939    1376,   434,   233,   113,   488,  1189,  1392,   107,   113,   114,
     1940    1393,    56,  1189,  1460,  -403,  1506,  1506,   702,    56,  1396,
     1941    1407,   215,  1415,   162,   521,   307,    70,  1411,   472,  1413,
     1942     528,   529,   530,    70,  1416,  1417,   160,  1422,  1430,    37,
     1943    1506,   175,   176,    40,   214,  1431,  1432,   373,  1433,  1435,
     1944      41,    42,   865,  1349,   531,  1029,   532,   113,   533,  1305,
     1945    1440,  1445,  1449,  1189,    48,  1451,  1447,  1453,  1455,    56,
     1946     587,  1509,  1457,  1462,   593,    48,   376,    48,  1463,  1464,
     1947    1517,  1475,  1492,  1485,    70,  1487,  1500,   214,  1493,  1489,
     1948     703,  1515,  1516,   626,  1520,  1527,    48,   630,   922,  1529,
     1949     339,   918,  1531,   920,  1544,   107,  1545,   457,  1208,    77,
     1950    1537,   783,    48,   781,  1130,   784,    77,   113,   782,   785,
     1951    1058,  1306,  1495,  1410,  1547,  1368,    48,   107,   113,    48,
     1952     113,  1239,  1384,  1478,   107,  1088,   702,   216,   901,  1213,
     1953     902,  1221,   215,   922,  1092,   924,   702,   800,   214,  1127,
     1954    1035,   872,   938,  1315,   243,   323,   323,  1102,   790,   716,
     1955     702,   327,    48,   946,   791,   792,   113,    77,   113,     0,
     1956     215,  1367,   113,     0,     0,   215,     0,     0,  1138,     0,
     1957     113,     0,     0,   687,   479,   107,   214,     0,     0,   216,
     1958       0,   214,     0,    48,    48,     0,   117,     0,     0,     0,
     1959    1482,     0,  1482,     0,     0,     0,   499,    48,     0,   703,
     1960       0,     0,     0,  1372,     0,     0,     0,     0,     0,   703,
     1961       0,   488,     0,   323,     0,   488,     0,     0,     0,  1029,
     1962       0,     0,   216,   703,     0,   521,  1482,   521,  1482,     0,
     1963     521,     0,   323,   521,     0,     0,   215,   177,     0,     8,
     1964       9,    10,    11,    12,   339,     0,     0,     0,     0,    37,
     1965     215,   184,   185,    40,     0,  1397,     0,     0,  1405,     0,
     1966      41,    42,     0,     0,     0,     0,   214,   644,    31,     0,
     1967       0,     0,     0,  1039,     0,     0,     0,    48,     0,     0,
     1968       0,     0,     0,   216,     0,     0,   905,   177,   411,    48,
     1969     177,     0,     0,     0,    45,    46,    34,   323,     0,   922,
     1970       0,  1442,     0,     0,     0,     0,  1446,   906,   802,     0,
     1971       0,     0,     0,  1479,  1089,  1483,     0,     0,     0,     0,
     1972       0,   216,     0,     0,     0,     0,   216,     0,     0,     0,
     1973       0,     0,   643,     0,  1467,     0,   177,   891,   113,   843,
     1974       0,     0,     0,   215,   593,     0,     0,   214,     0,  1511,
     1975     852,  1513,    66,   118,   702,   702,     0,     0,     0,   922,
     1976     922,    48,     0,     0,   214,     0,     0,     0,     0,     0,
     1977      48,   644,    48,     0,     0,     0,     0,     0,     0,   113,
     1978       0,     0,     0,     0,    66,     0,     0,     0,     0,   214,
     1979       0,     0,     0,  1542,     0,  1543,     0,     0,     0,   177,
     1980       0,   161,    48,   687,     0,     0,     0,     0,  1550,  1551,
     1981       0,   216,   702,   702,     0,     0,     0,     0,  1535,     0,
     1982       0,   222,   113,     0,  1535,     0,     0,   703,   703,     0,
     1983       0,     0,     0,     0,     0,  1535,   643,     0,     0,  1535,
     1984       0,   488,     0,     0,   113,     0,     0,     0,   113,    57,
     1985      57,     0,     0,   177,     0,     0,   987,     0,   260,     0,
     1986     177,     0,     0,   339,     0,     0,   992,     0,     0,     0,
     1987       0,  1039,     0,     0,     0,    75,     0,     0,     0,     0,
     1988    1004,    57,     0,     0,     0,   703,   703,     0,     0,     0,
     1989       0,     0,   216,     0,     0,     0,     0,     0,   113,     0,
     1990     328,     0,     0,     0,     0,     0,     0,    75,   260,   350,
     1991     214,     0,     0,     0,     0,    57,     0,     0,    57,     0,
     1992       0,     0,   995,     0,     0,     0,     0,   802,   177,     0,
     1993       0,     0,     0,     0,   216,     0,   113,     0,   214,   406,
     1994     215,     0,     0,   214,   223,   177,     0,     0,     0,   177,
     1995      48,     0,     0,     0,   424,    48,     0,   429,   431,     0,
     1996    1312,     0,   161,     0,   922,     0,     0,     0,     0,     0,
     1997       0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
     1998     922,     0,     0,   448,  1282,     0,     0,   451,     0,   452,
     1999       0,     0,   702,     0,     0,     0,     0,     0,   459,     0,
     2000     702,   702,   702,     0,    66,     0,   348,     0,     0,   473,
     2001       0,     0,   177,     0,   214,   802,     0,     0,     0,   480,
     2002       0,     0,   339,     0,     0,     0,     0,   431,   214,     0,
     2003       0,    78,   353,  1313,     0,     0,     0,     0,   687,     0,
     2004       0,    37,     0,   184,   185,    40,     0,     0,   499,   113,
     2005     922,   922,    41,    42,     0,   216,     0,     0,     0,     0,
     2006     488,  1107,   323,    78,   702,   703,     0,     0,     0,     0,
     2007       0,    57,    48,   703,   703,   703,     0,     0,   600,     0,
     2008     601,     0,     0,   216,  1166,  1167,    45,    46,   216,     0,
     2009       0,     0,     0,   260,     0,     0,     0,   594,     0,     0,
     2010     224,    57,     0,   622,     0,     0,   449,     0,     0,     0,
     2011       0,     0,     0,   113,   113,   113,   627,     0,   843,     0,
     2012     627,   214,     0,   260,     0,     0,   215,    75,     0,     0,
     2013       0,     0,    75,     0,     0,     0,     0,   703,     0,     0,
     2014       0,     0,  1216,  1217,     0,     0,     0,     0,     0,     0,
     2015      37,     0,   184,   185,    40,     0,     0,     0,     0,   216,
     2016       0,    41,    42,    37,     0,   184,   185,    40,     0,   177,
     2017     473,     0,     0,   216,    41,    42,     0,     0,     0,     0,
     2018       0,     0,     0,     0,     0,   350,     0,   905,   355,   411,
     2019     473,     0,     0,     0,     0,    45,    46,     0,   473,   687,
     2020    1505,   177,   411,     0,     0,     0,     0,     0,    45,    46,
     2021       0,     0,     0,     0,     0,     0,   698,   177,     0,   431,
     2022       0,   215,     0,     0,     0,     0,   223,     0,     0,     0,
     2023       0,   177,     0,     0,   712,     0,    66,     0,     0,     0,
     2024       0,   802,    48,    48,   431,     0,     0,     0,   431,     0,
     2025       0,   113,   113,   535,   536,   537,   538,   539,   540,   541,
     2026     542,   543,   544,     0,     0,     0,   216,     0,     0,     0,
     2027       0,     0,     0,     0,     0,     0,     0,   260,   350,     0,
     2028       0,     0,   348,    78,     0,     0,     0,   545,    78,   113,
     2029       0,     0,     0,    75,     0,     0,     0,     0,     0,     0,
     2030       0,     0,     0,     0,     0,     0,     0,     0,   353,     0,
     2031       0,     0,   177,    75,     0,     0,     0,     0,   214,     0,
     2032       0,    75,  1337,   793,     0,     0,   339,     0,     0,     0,
     2033    1339,  1340,  1341,    57,     0,     0,     0,     0,     0,   353,
     2034       0,   627,   805,     0,     0,     0,    48,   113,  1107,     0,
     2035       0,     0,     0,     0,   824,     0,   113,   353,     0,    75,
     2036       0,     0,     0,   283,   284,     0,   285,     0,     0,     0,
     2037      48,    48,   594,     0,     0,   348,     0,   594,     0,     0,
     2038       0,     0,   224,   627,     0,     0,   350,   350,   350,     0,
     2039       0,     0,   286,     0,  1385,    48,     0,     0,   287,     0,
     2040       0,   353,   288,     0,   350,   289,   290,   291,   292,    41,
     2041      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2042       0,     0,   698,     0,     0,     8,     9,    10,    11,    12,
     2043       0,     0,     0,   473,     0,   295,     0,   379,     0,   348,
     2044    1107,     0,     0,    45,    46,   297,   298,   299,   300,    78,
     2045       0,     0,     0,     0,    31,     0,   786,     0,     0,   473,
     2046       0,     0,   350,   216,   355,   353,     0,     0,     0,    78,
     2047       0,   937,     0,     0,   431,     0,   177,    78,     0,     0,
     2048       0,     0,    34,   348,   348,   348,     0,    37,     0,   184,
     2049     185,    40,     0,     0,     0,   355,   260,   712,    41,    42,
     2050       0,   348,   967,     0,   214,     0,     0,     0,     0,   353,
     2051     353,   353,     0,   355,     0,    78,     0,     8,     9,    10,
     2052      11,    12,     0,     0,   600,     0,   601,   353,     0,     0,
     2053       0,     0,    45,    46,     0,     0,     0,     0,  1107,     0,
     2054       0,   698,     0,     0,     0,   353,    31,     0,     0,     0,
     2055       0,   698,     0,   350,     0,   627,    75,   355,  1002,   348,
     2056     627,   805,     0,     0,     0,   698,     0,     0,     0,  1481,
     2057       0,  1481,     0,     0,    34,  1013,     0,     0,     0,    37,
     2058       0,     0,    75,    40,     0,   353,     0,     0,     0,     0,
     2059      41,    42,     0,     0,     0,     0,     0,     0,     0,   214,
     2060       0,    80,     0,     0,     0,  1481,     0,  1481,     0,     0,
     2061       0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
     2062     353,   355,     0,     0,    45,    46,    66,     0,    87,     0,
     2063     413,     0,     0,    80,   323,     0,     0,   421,     0,     0,
     2064       0,     0,     0,     0,     0,     0,     0,     0,   627,   216,
     2065     348,     0,     0,     0,     0,   260,   712,     0,   348,  1085,
     2066      87,     0,     0,     0,   353,   355,   355,   355,     0,     0,
     2067     225,     0,     0,     0,   353,     0,   353,     0,     0,     0,
     2068       0,   223,     0,   355,   353,  1099,     0,     0,   353,     0,
     2069       0,     0,     0,   431,   118,     0,     0,   226,     0,     0,
     2070       0,   355,     0,     0,     0,     0,     0,     0,     0,   413,
     2071       0,     0,    78,     0,     0,     0,     0,     0,     0,     0,
     2072       0,     0,     0,    57,     0,     0,     0,     0,     0,     0,
     2073       0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
     2074       0,   355,     0,     0,   216,     0,     0,     0,     0,    75,
     2075       0,   594,     0,     0,     0,     0,     0,     0,   356,     0,
     2076       0,     0,     0,   576,   429,     0,     0,     0,     0,   698,
     2077     698,   580,   350,   350,   583,     0,   355,     0,     0,   353,
     2078       0,     0,     0,     0,     0,   363,     0,   177,     0,     0,
     2079       0,    57,  1188,     0,     0,   206,     2,   207,     4,     5,
     2080       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2081      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2082     355,     0,    26,    27,    28,     0,     0,   698,   698,     0,
     2083     355,    31,   355,     0,     0,     0,     0,   224,   413,     0,
     2084     355,     0,   421,     0,   355,     0,     0,     0,     0,     0,
     2085       0,     0,     0,    80,     0,     0,     0,     0,    80,    34,
     2086       0,    35,     0,    36,    37,     0,   208,    39,    40,   348,
     2087     348,     0,     0,     0,   627,    41,    42,     0,     0,     0,
     2088      87,     0,     0,     0,     0,    87,     0,     0,     0,    57,
     2089       0,     0,   353,   353,     0,   353,   353,     0,   712,     0,
     2090       0,    43,     0,   209,     0,    78,     0,     0,     0,    45,
     2091      46,     0,     0,     0,     0,    75,     0,     0,     0,   413,
     2092       0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2093       0,     0,     0,     0,     0,   355,     0,     0,     0,     0,
     2094       0,  1283,     0,     0,     0,     0,     0,     0,     0,     0,
     2095     353,   353,   225,     0,    31,     0,     0,   177,     0,   260,
     2096       0,     0,     0,    66,     0,     0,     0,     0,     0,     0,
     2097       0,     0,     0,     0,     0,   698,     0,   712,     0,   226,
     2098       0,   118,    34,     0,     0,     0,     0,    37,     0,   184,
     2099     185,    40,     0,     0,     0,   127,   127,   127,    41,    42,
     2100       0,     0,     0,     0,     0,     0,     0,   698,     0,     0,
     2101     576,   576,     0,     0,     0,   698,   698,   698,     0,    80,
     2102       0,   353,     0,     0,   186,     0,   350,   350,     0,     0,
     2103       0,     0,    45,    46,   356,     0,     0,    57,    57,    80,
     2104    1188,     0,     0,     0,     0,     0,    87,    80,   355,   355,
     2105       0,   355,   355,     0,     0,     0,     0,     0,     0,     0,
     2106      57,   363,     0,     0,   223,   356,    87,     0,   127,     0,
     2107     127,    78,     0,   118,    87,     0,     0,     0,    57,   698,
     2108       0,     0,     0,   356,     0,    80,    75,     0,     0,     0,
     2109       0,     0,   363,     0,     0,   276,     0,   883,   353,     0,
     2110     353,   886,     0,     0,     0,     0,   355,   355,     0,     0,
     2111     363,     0,    87,     0,     0,     0,     0,     0,     0,     0,
     2112       0,     0,     0,   348,   348,     0,     0,   356,     0,     0,
     2113     353,     0,    57,     0,     0,     0,     0,    57,   353,   353,
     2114     353,     0,     0,     0,     0,     0,   350,     0,     0,   353,
     2115     353,   127,     0,     0,   363,     0,     0,     0,     0,   127,
     2116       0,   127,   127,    75,     0,     0,   127,     0,   127,   127,
     2117      57,   118,     0,   168,     0,   173,     0,   355,   179,   180,
     2118     181,     0,   183,     0,     0,     0,     0,     0,     0,     0,
     2119       0,   356,     0,  1188,     0,     0,     0,   234,     0,     0,
     2120    1188,     0,   353,     0,     0,     0,     0,     0,     0,   249,
     2121     250,     0,     0,     0,   125,   128,   129,     0,   363,     0,
     2122     224,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2123      12,     0,     0,   576,     0,   356,   356,   356,   127,     0,
     2124       0,     0,    78,   348,     0,     0,     0,     0,     0,     0,
     2125       0,  1188,     0,   356,   355,    31,   355,     0,  1530,     0,
     2126       0,     0,   363,   363,   363,     0,     0,     0,    57,   353,
     2127       0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2128     363,     0,    80,    34,     0,     0,   355,   255,    37,   256,
     2129      57,     0,    40,     0,   355,   355,   355,    57,   363,    41,
     2130      42,     0,     0,     0,     0,   355,   355,     0,    80,    87,
     2131       0,   356,     0,     0,     0,     0,    75,     0,     0,    78,
     2132       0,     0,     0,    75,     0,   718,     0,     0,     0,     0,
     2133       0,     0,     0,    45,    46,    87,     0,     0,   363,     8,
     2134       9,    10,    11,    12,     0,     0,   356,     0,    57,     0,
     2135       0,   413,     0,     0,     0,     0,     0,     0,   355,     0,
     2136       0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
     2137     396,     0,     0,   363,    75,     0,     0,     0,     0,     0,
     2138     415,   416,     0,     0,     0,   420,     0,   422,   423,     0,
     2139     356,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2140     356,    37,   356,   184,   185,    40,     0,   225,     0,     0,
     2141     356,     0,    41,    42,   356,     0,     0,   363,     0,     8,
     2142       9,    10,    11,    12,     0,   355,     0,   363,  1142,   363,
     2143       0,     0,     0,     0,   226,     0,     0,   363,   905,     0,
     2144     411,   363,     0,     0,     0,  1154,    45,    46,    31,     0,
     2145       0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
     2146       0,     0,     0,     0,   591,     0,   599,     0,     0,     0,
     2147       0,     0,    78,     0,     0,    80,    34,   623,   624,    78,
     2148      31,    37,     0,   184,   185,    40,     0,     0,     0,     0,
     2149       0,     0,    41,    42,     0,     0,     0,     0,     0,     0,
     2150       0,     0,    87,     0,     0,   356,     0,     0,    34,     0,
     2151       0,     0,     0,    37,     0,   184,   185,    40,  1505,     0,
     2152     411,     0,     0,   413,    41,    42,    45,    46,     0,     0,
     2153      78,     0,   363,     0,     0,     0,     0,     0,     0,     0,
     2154       0,     0,     0,   127,   127,     0,     0,     0,     0,     0,
     2155     266,     0,     0,     0,     0,     0,     0,     0,    45,    46,
     2156       0,     0,     0,  1242,     0,     0,     0,     0,     0,     0,
     2157       0,     0,   127,     0,     0,   127,   127,     0,   127,     0,
     2158     127,   127,     0,     0,     0,   127,   127,     1,     2,   207,
     2159       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2160      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2161      24,    25,  -291,     0,    26,    27,    28,    29,   356,   356,
     2162      30,   356,   356,    31,     0,     0,     0,     0,     0,     0,
    20672163       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2068        0,    76,     0,     0,     0,     0,     0,     0,    58,     0,
    2069      700,   700,     0,   354,     0,   354,     0,     0,   356,   356,
    2070      356,     0,     0,     0,     0,   357,     0,     0,     0,     0,
    2071        0,     0,     0,     0,     0,     0,     0,   356,     0,     0,
    2072        0,     0,     0,     0,     0,     0,     0,     0,   354,     0,
    2073      349,     0,     0,     0,    88,   356,   354,   354,   354,   628,
    2074        0,     0,     0,     0,     0,     0,    79,   354,   354,     0,
    2075        0,  1503,     0,  1507,     0,     0,     0,     0,     0,     0,
    2076     1320,    76,     0,     0,   714,   178,    88,     0,     0,   357,
    2077        0,     0,    79,     0,     0,   356,     0,     0,     0,     0,
    2078        8,     9,    10,    11,    12,     0,     0,     0,  1536,     0,
    2079     1538,     0,     0,     0,   349,   215,     0,     0,     0,     0,
    2080        0,     0,   354,     0,   227,     0,     0,  1299,     0,    31,
    2081        0,     0,   356,   357,   357,   357,     0,     0,     0,     0,
    2082        0,     0,     0,     0,     0,   261,     0,     0,     0,    67,
    2083        0,     0,   357,  1567,     0,  1568,     0,    34,   349,   349,
    2084      349,   700,    37,   714,   185,   186,    40,   119,  1575,  1576,
    2085      357,     0,     0,    41,    42,     0,     0,   349,   356,     0,
    2086        0,    81,     0,     0,    43,     0,     0,     0,   356,     0,
    2087      356,     0,   354,     0,     0,   225,   700,     0,   356,   912,
    2088        0,   412,   356,     0,   700,   700,   700,    81,    46,    47,
    2089      357,     0,   364,   215,     0,   351,   351,     0,     0,     0,
    2090        0,     0,     0,     0,     8,     9,    10,    11,    12,  1201,
    2091        0,     0,     0,     0,     0,   349,     0,     0,     0,     0,
    2092        0,    76,     0,     0,     0,     0,     0,   357,    76,     0,
    2093        0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
    2094        0,   178,   119,     0,    79,     0,     0,     0,     0,     0,
    2095      700,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2096        0,    34,     0,     0,     0,     0,    37,     0,   185,   186,
    2097       40,     0,     0,   357,   356,     0,     0,    41,    42,     0,
    2098        0,    76,     0,   357,     0,   357,     0,    88,    43,     0,
    2099      226,     0,    88,   357,     0,     0,     0,   357,     0,     0,
    2100        0,     0,     0,  1530,     0,   412,     0,     0,     0,     0,
    2101      349,     0,    46,    47,     0,     0,     0,     0,   349,     0,
    2102      351,     0,     0,     0,     0,     0,     0,     0,     0,   356,
    2103        0,   169,     0,   174,     0,     0,   180,   181,   182,     0,
    2104      184,     0,     0,     0,     0,   119,     8,     9,    10,    11,
    2105       12,     0,     0,     0,     0,   235,     0,     0,     0,    81,
    2106        0,     0,     0,     0,     0,     0,     0,   250,   251,  1201,
    2107        0,     0,     0,     0,     0,    31,  1201,     8,     9,    10,
    2108       11,    12,     0,     0,    58,     0,   227,     0,     0,   357,
    2109      356,   356,     0,   356,   356,     0,     0,     0,     0,     0,
    2110        0,     0,     0,    34,     0,     0,    31,     0,    37,     0,
    2111      185,   186,    40,    79,     0,     0,     0,     0,     0,    41,
    2112       42,     0,     0,     0,     0,     0,     0,     0,     0,  1201,
    2113       43,     0,     0,     0,    34,     0,  1555,     0,     0,    37,
    2114        0,   185,   186,    40,   357,   187,     0,     0,   356,   356,
    2115       41,    42,    58,    88,    46,    47,     0,     0,     0,     0,
    2116        0,    43,     0,     8,     9,    10,    11,    12,   364,   349,
    2117        0,     0,     0,    88,     0,     0,   267,     0,     0,     0,
    2118        0,    88,     0,     0,     0,    46,    47,     0,     0,     0,
    2119        0,     0,    31,     0,     8,     9,    10,    11,    12,   364,
    2120        0,     0,     0,     0,     0,   357,   357,     0,   357,   357,
    2121        0,     0,     0,     0,     0,     0,     0,   364,     0,    88,
    2122       34,     0,   356,    31,     0,    37,     0,     0,    81,    40,
    2123        0,     0,     0,   349,   349,     0,    41,    42,     0,     0,
    2124        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2125        0,    34,     0,    58,     0,     0,    37,     0,     0,     0,
    2126       40,   364,    44,   357,   357,   225,     0,    41,    42,     0,
    2127        0,    46,    47,     0,     0,     0,     0,     0,    43,     0,
    2128        0,     0,     0,     0,     0,     0,     0,    79,     0,     0,
    2129        0,     0,     0,   720,     0,     0,     0,     0,     0,   356,
    2130        0,   356,    46,    47,     8,     9,    10,    11,    12,    13,
     2164       0,    80,     0,     0,     0,   363,   363,     0,   363,   363,
     2165       0,    34,     0,    35,     0,    36,     0,     0,    38,    39,
     2166       0,     0,  -291,     0,     0,     0,  1012,     0,    87,     8,
     2167       9,    10,    11,    12,     0,     0,   356,   356,     0,     0,
     2168       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2169       0,     0,     0,     0,     0,    44,   283,   284,    31,   285,
     2170       0,    45,    46,   363,   363,     0,     0,     0,     0,     0,
     2171       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2172       0,     0,     0,   127,   127,   286,    34,     0,     0,     0,
     2173       0,   287,     0,     0,     0,   288,     0,     0,   289,   290,
     2174     291,   292,    41,    42,     0,   293,   294,   356,     0,     0,
     2175       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2176       0,     0,   795,   796,     0,     0,     0,     0,   295,     0,
     2177     379,     0,     0,     0,   363,     0,   344,    46,   297,   298,
     2178     299,   300,     0,     0,     0,     0,     0,     0,     0,     0,
     2179     225,   829,     0,     0,   832,   833,     0,   836,     0,   838,
     2180     839,     0,     0,     0,   840,   841,     0,     0,     0,     0,
     2181       0,     0,    80,     0,     0,     0,     0,   226,     0,   925,
     2182       0,   926,     0,     0,   356,     0,   356,     0,   929,   930,
     2183       0,     0,     0,   935,     0,     0,     0,     0,     0,    87,
     2184       0,     0,     0,     0,     0,   940,     0,     0,     0,     0,
     2185     944,   363,     0,   363,     0,     0,   356,     0,     0,     0,
     2186       0,     0,     0,     0,   356,   356,   356,     0,     0,     0,
     2187       0,     0,     0,     0,     0,   356,   356,     0,   978,     0,
     2188     127,     0,     0,   363,     0,   127,     0,     0,     0,    80,
     2189       0,   363,   363,   363,     0,     0,     0,     0,     0,     0,
     2190       0,     0,   363,   363,     0,     0,     0,     0,     0,     0,
     2191       0,     0,     0,     0,     0,     0,    87,     0,     0,     0,
     2192       0,     0,     0,     0,     0,     0,     0,     0,   356,     0,
     2193       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2194     166,     0,   969,   970,     0,     0,     0,     0,     0,     0,
     2195       0,     0,     0,     0,     0,   363,     0,   219,     0,     0,
     2196    1162,     0,     0,     8,     9,    10,    11,    12,     0,     0,
     2197       0,     0,     0,     0,     0,     0,     0,  1023,  1024,  1025,
     2198    1026,     0,  1028,     0,     0,     0,     0,     0,     0,     0,
     2199     283,   284,    31,   285,     0,   356,     0,  1072,     0,     0,
     2200       0,     0,     0,     0,     0,   166,     0,     0,     0,   273,
     2201       0,  1078,     0,     0,     0,     0,     0,     0,     0,   286,
     2202      34,     0,   363,     0,     0,   287,     0,     0,     0,   288,
     2203       0,     0,   289,   290,   291,   292,    41,    42,   166,   293,
     2204     294,     0,    80,     0,     0,     0,   127,     0,   369,    80,
     2205       0,  1098,   375,     0,     0,     0,     0,     0,     0,     0,
     2206       0,     0,   295,     0,   379,     0,     0,     0,     0,    87,
     2207    1163,    46,   297,   298,   299,   300,    87,     8,     9,    10,
     2208      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2209      21,    22,    23,    24,    25,     0,  1129,    26,    27,    28,
     2210      80,   166,  1136,     0,  1090,     0,    31,  1140,     0,     0,
     2211       0,     0,  1144,   219,  1145,     0,     0,     0,  1147,     0,
     2212    1148,  1149,     0,     0,  1152,     0,     0,    87,     0,     0,
     2213       0,   166,     0,  1164,    34,     0,     0,     0,     0,     0,
     2214       0,   208,    39,     0,     0,     0,     0,     0,     0,     0,
     2215       0,  1179,  1180,     0,     0,     0,   375,     0,     0,     0,
     2216       0,     0,     0,   166,     0,     0,     0,     0,     0,     0,
     2217       0,     0,     0,     0,     0,   127,     0,     0,  1210,     0,
     2218       0,  1212,     0,     0,    45,    46,   524,     0,     0,     0,
     2219       0,     0,     0,     0,     0,     0,     0,     0,   166,     0,
     2220       0,     0,     0,     0,   212,     0,     0,     0,     0,     0,
     2221       0,     0,     0,     0,   232,     0,   236,     0,   238,     0,
     2222       0,     0,     0,     0,  1226,   247,     0,     0,     0,     0,
     2223    1230,  1231,     0,     0,     0,     0,   597,     0,     0,     0,
     2224       0,   621,     0,     0,     0,     0,     0,     0,     0,     0,
     2225    1247,     0,     0,  1251,     0,     0,   212,  1253,   236,   238,
     2226     247,     0,     0,     0,     0,  1218,     0,     0,     0,     0,
     2227    1261,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2228       0,     0,     0,  1268,     0,  1270,  1271,  1272,  1273,     0,
     2229       0,     0,     0,     0,     0,     0,     0,     0,     0,   212,
     2230       0,  1280,     0,  1281,     0,     0,     0,   173,     0,     0,
     2231       0,     0,     0,     0,     0,     0,     0,   166,   166,     0,
     2232       0,     0,     0,     0,   369,     0,     0,     0,     0,     0,
     2233       0,     0,     0,     0,     0,     0,  1309,  1310,     0,     0,
     2234       0,     0,     0,     0,     0,   524,     0,     0,     0,     0,
     2235       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2236     212,     0,   236,   238,   247,     0,     0,     0,     0,     0,
     2237       0,     0,     0,   715,     0,     0,     0,     0,     0,     0,
     2238       0,     0,     0,     0,     0,   166,  1342,  1343,     0,     0,
     2239       0,     0,     0,     0,  1304,     0,  1353,   524,   212,   524,
     2240       0,     0,   524,   212,   166,   524,     0,     0,     0,     0,
     2241       0,     0,     0,     0,     0,     0,     0,   369,   497,     0,
     2242       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2243       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    21312244      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2132       24,    25,   592,     0,   600,   364,     0,     0,     0,     0,
    2133        0,     0,     0,    31,   356,   624,   625,   357,     0,     0,
    2134        0,     0,   356,   356,   356,     0,     0,     0,     0,     0,
    2135        0,     0,     0,   356,   356,     0,     0,     0,     0,     0,
    2136        0,    34,     0,     0,     0,     0,     0,    79,     0,   364,
    2137      364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
    2138      226,     0,     0,     0,     0,     0,     0,     0,   364,     0,
    2139      284,   285,     0,   286,     0,     0,     0,     0,     0,     0,
    2140        0,     0,    81,     0,    58,    58,   364,     0,   356,     0,
    2141        0,     0,     0,     0,   357,     0,   357,    88,     0,   287,
    2142        0,     0,     0,     0,     0,   288,     0,    58,     0,   289,
    2143        0,     0,   290,   291,   292,   293,    41,    42,     0,   294,
    2144      295,     0,     0,    88,     0,    58,   364,    43,     0,   357,
    2145        0,     0,     0,     0,     0,     0,     0,   357,   357,   357,
    2146        0,     0,   296,     0,   380,     0,     0,   381,   357,   357,
    2147        0,    46,    47,   298,   299,   300,   301,     0,   356,     0,
    2148        0,     0,    81,   364,     0,     0,     0,     0,     0,     0,
    2149        0,     0,     0,   349,   349,     0,     0,     0,     0,     0,
    2150        0,     0,    58,     0,     0,     0,     0,    58,     0,     0,
     2245      24,    25,  -291,     0,    26,    27,    28,  1388,     0,  1389,
     2246    1390,  1391,     0,    31,     0,     0,   212,     0,     0,   166,
     2247       0,  1395,     0,     0,     0,     0,     0,     0,     0,     0,
     2248    1406,   369,     0,     0,     0,   810,     0,     0,   212,     0,
     2249       0,    34,     0,   236,   238,     0,    37,     0,   336,   337,
     2250      40,   247,  -291,     0,     0,  1427,     0,    41,    42,     0,
     2251       0,   597,     0,     0,   321,     0,   597,     0,     0,     0,
     2252       0,     0,     0,     0,   346,   369,   369,   369,     0,   157,
     2253       0,     0,     0,   634,     0,   338,   382,   382,     0,     0,
     2254       0,    45,    46,   369,   212,     0,     0,     0,  1465,  1466,
    21512255       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2152        0,     0,     0,   357,     0,     0,     0,    79,     0,   364,
    2153        0,     0,     0,     0,    79,     0,     0,     0,     0,   364,
    2154       58,   364,     0,     0,     0,     0,   227,     0,     0,   364,
    2155        0,     0,     0,   364,     0,     8,     9,    10,    11,    12,
     2256       0,  1471,   212,     0,     0,     0,     0,   212,  1471,   212,
     2257     283,   284,     0,   285,     0,   524,     0,   252,     0,     0,
     2258       0,     0,     0,     0,     0,     0,   212,   257,     0,   212,
     2259     212,     0,     0,     0,     0,     0,     0,   212,     0,   286,
     2260    1504,   369,     0,   934,  1510,   287,     0,   321,     0,   288,
     2261       0,   212,   289,   290,   291,   292,    41,    42,   212,   293,
     2262     294,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2263       0,   478,  1532,     0,  1533,     0,   715,     0,     0,     0,
     2264       0,     0,   295,   157,   379,     0,     0,   380,     0,     0,
     2265      45,    46,   297,   298,   299,   300,     0,   386,     0,     0,
     2266       0,     0,  1548,  1549,     0,     0,     0,     0,     0,     0,
     2267    1552,  1553,     0,     0,     0,     0,     0,     0,     0,     0,
     2268     418,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2269       0,     0,   369,     0,   433,     0,   621,     0,     0,     0,
     2270     369,     0,     0,   438,     0,     0,     0,     0,     0,     0,
     2271       0,     0,     0,   446,     0,     0,     0,     0,     0,     0,
     2272       0,     0,     0,     0,   283,   284,     0,   285,     0,     0,
     2273       0,     0,   212,     0,     0,     0,     0,     0,   464,     0,
     2274       0,     0,     0,   474,     0,     0,     0,   382,     0,     0,
     2275       0,     0,     0,   286,     0,     0,   482,     0,     0,   287,
     2276     212,     0,   492,   288,   496,   212,   289,   290,   291,   292,
     2277      41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
     2278       0,   526,     0,     0,     0,     0,     0,     0,     0,     0,
     2279       0,     0,     0,     0,     0,   715,   295,     0,   379,     0,
     2280       0,     0,     0,   757,    45,    46,   297,   298,   299,   300,
     2281     524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2282       0,     0,     0,   585,     0,     0,     0,     0,   590,     0,
     2283       0,     0,     0,     0,   166,     0,   212,     0,     0,     0,
     2284       0,   709,     0,     0,     0,     0,     0,     0,     0,     0,
     2285     212,     0,     0,     0,     0,     0,     0,   635,     0,     0,
     2286       0,   636,   637,     0,   639,     0,     0,     0,     0,     0,
     2287     497,   650,   651,     0,   652,   653,     0,   654,     0,   655,
     2288     741,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2289     597,     0,     0,   758,     0,     0,   585,     0,   741,     0,
     2290       0,   741,     0,     0,   670,     0,     0,     0,     0,     0,
     2291       0,   369,   369,   767,     0,     0,     0,     0,     0,     0,
     2292       0,     0,     0,     0,     0,     0,     0,     0,     0,   681,
     2293       0,   212,     0,     0,     0,   788,     0,     0,     0,     0,
     2294       0,     0,     0,   212,     0,   797,     0,     0,     0,     0,
     2295       0,     0,   346,     0,     0,   707,     0,   758,     0,     0,
     2296       0,   710,   212,     0,     0,     0,   464,     0,     0,     0,
     2297       0,   524,     0,     0,     0,     0,   206,     2,   207,     4,
     2298       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2299      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2300      25,     0,   745,    26,    27,    28,   862,     0,     0,     0,
     2301       0,     0,    31,     0,   382,     0,     0,   763,     0,     0,
     2302       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2303       0,     0,     0,     0,     0,     0,     0,   715,     0,     0,
     2304      34,     0,    35,     0,    36,     0,     0,   208,    39,     0,
     2305       0,     0,     0,   283,   284,   789,   285,     0,     0,     0,
     2306       0,     0,     0,     0,   799,     0,     0,     0,     0,     0,
     2307       0,   801,     0,     0,     0,   212,     0,   809,     0,   219,
     2308       0,     0,   286,     0,   209,     0,   823,     0,   287,     0,
     2309      45,    46,   288,     0,     0,   289,   290,   291,   292,    41,
     2310      42,     0,   293,   294,     0,   212,     0,     0,     0,     0,
     2311       0,     0,   758,     0,   963,     0,   715,     0,     0,   341,
     2312     364,     0,     0,     0,   974,   295,   863,   379,     0,     0,
     2313     982,     0,     0,    45,    46,   297,   298,   299,   300,     0,
     2314     212,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2315       0,   212,     0,   414,     0,     0,     0,     0,     0,     0,
     2316     414,     0,   809,     0,     0,   369,   369,     0,     0,     0,
     2317     904,     0,  1000,  1001,   219,     0,   346,     0,     0,     0,
     2318       0,     0,     0,     0,     0,     0,     0,     0,     0,   507,
     2319     346,   509,   512,     0,     0,     0,     0,     0,     0,   515,
     2320     516,   252,     0,     0,     0,     0,     0,     0,     0,     0,
     2321       0,   941,   942,   509,   509,     0,     0,     0,     0,     0,
     2322       0,     0,     0,   212,     0,     0,     0,     0,     0,     0,
     2323    1031,     0,   414,     0,   382,     0,     0,   212,     0,     0,
     2324       0,     0,     0,     0,   979,     0,     0,     0,     0,   983,
     2325       0,   509,     8,     9,    10,    11,    12,    13,    14,    15,
     2326      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2327       0,   346,    26,    27,    28,     0,     0,     0,     0,     0,
     2328       0,    31,   684,     0,     0,   369,   414,   509,     0,     0,
     2329       0,     0,     0,     0,   414,   581,     0,   414,   584,     0,
     2330       0,     0,     0,     0,     0,     0,     0,     0,   364,    34,
     2331     321,     0,   613,  1017,     0,     0,    38,    39,     0,     0,
     2332    1018,     0,     0,     0,     0,     0,   212,     0,     0,     0,
     2333       0,   631,     0,  1020,   341,  1021,     0,     0,   382,     0,
     2334       0,   524,     0,   524,   974,     0,     0,     0,   741,  1033,
     2335       0,     0,     0,   685,     0,  1037,     0,   686,     0,    45,
     2336      46,   414,     0,     0,     0,   414,     0,  1075,     0,  1150,
     2337    1076,     0,     0,     0,     0,     0,     0,   524,     0,   524,
     2338    1165,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2339       0,     0,     0,     0,     0,     0,   364,     0,     0,     0,
     2340       0,     0,   382,     0,  1183,     0,   166,     0,     0,     0,
     2341       0,     0,     0,     0,     0,     0,     0,     0,     0,   974,
     2342     974,   212,     8,     9,    10,    11,    12,    13,    14,    15,
     2343      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2344    1215,     0,   414,     0,     0,   364,     0,   590,     0,     0,
     2345       0,    31,     0,     0,     0,   509,   509,   509,   509,   509,
     2346     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
     2347     509,   509,   509,     0,     0,     0,     0,   283,   284,    34,
     2348     285,     0,  1146,     0,   414,     0,     0,     0,   341,   364,
     2349       0,     0,     0,     0,     0,   974,     0,     0,     0,     0,
     2350       0,     0,     0,     0,     0,     0,   286,     0,     0,     0,
     2351       0,     0,   287,   862,     0,     0,   288,     0,     0,   289,
     2352     290,   291,   292,    41,    42,     0,   293,   294,  1266,  1267,
     2353       0,     0,     0,   414,   414,     0,     0,     0,     0,     0,
     2354     526,     0,     0,     0,     0,     0,  1211,     0,     0,   295,
     2355       0,   379,   803,   364,   971,     0,     0,    45,    46,   297,
     2356     298,   299,   300,   613,     0,   613,   613,     0,     0,     0,
     2357       0,     0,   613,     0,     0,     0,     0,     0,     0,     0,
     2358    1223,     0,   842,   364,     0,  1225,     0,     0,   364,     0,
     2359       0,     0,     0,  1229,     0,     0,     0,   364,   364,   364,
     2360       0,   509,     0,     0,     0,     0,     0,     0,     0,     0,
     2361       0,     0,     0,     0,     0,   364,     0,     0,     0,     0,
     2362     414,   884,     0,     0,   414,   887,  1255,     0,     0,     0,
     2363       0,   889,     0,     0,     0,     0,     0,     0,  1263,     0,
     2364       0,  1264,     0,  1265,     0,     0,     0,     0,     0,     0,
     2365     414,     0,     0,     0,     0,     0,     0,  1274,  1275,     0,
     2366       0,     0,   509,     0,     0,     0,     0,     0,   212,  1371,
     2367       0,     0,   741,   364,   613,     0,     0,     0,     0,  1288,
     2368       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2369       0,     0,   509,     0,     0,     0,     0,     0,     0,     0,
     2370       0,     0,     0,     0,     0,     0,     0,   341,   364,     0,
     2371       0,     0,   414,   414,     0,     0,     0,     0,     0,     0,
     2372       0,     0,     0,     0,     0,     0,  1327,     0,     0,     0,
     2373       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2374      17,    18,    19,    20,    21,    22,    23,    24,    25,  -291,
     2375       0,    26,    27,    28,     0,     0,   414,     0,     0,     0,
     2376      31,     0,     0,     0,   364,     0,     0,     0,     0,     0,
     2377       0,   803,   364,     0,     0,   613,     0,   613,     0,     0,
     2378       0,     0,     0,     0,     0,     0,     0,   613,    34,     0,
     2379       0,     0,     0,    37,     0,   336,   337,    40,     0,  -291,
     2380       0,  1377,     0,  1378,    41,    42,     0,     0,     0,     0,
     2381       0,     0,   509,     0,     0,  1386,     0,  1387,     0,     0,
     2382       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2383       0,     0,   338,     0,  1394,     0,     0,     0,    45,    46,
     2384       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2385    1412,  1414,     0,     0,     0,     0,     0,   509,     0,   803,
     2386       0,  1419,     0,     0,  1229,     0,   341,   364,   414,     0,
     2387     414,     0,     0,     0,   414,     0,     0,     0,     0,     0,
     2388       0,     0,   321,     0,     0,  1441,     0,     0,     0,     0,
     2389       0,     0,   509,     0,  1448,   613,   613,  1450,     0,  1452,
     2390    1454,  1456,     0,     0,     0,   509,     8,     9,    10,    11,
     2391      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2392      22,    23,    24,    25,  -291,     0,     0,     0,     0,     0,
     2393     414,     0,     0,     0,     0,    31,     0,     0,     0,  1486,
     2394       0,  1488,     0,  1229,     0,     0,   509,     0,     0,     0,
     2395       0,   414,  1143,     0,     0,     0,     0,     0,  1499,     0,
     2396       0,     0,   364,    34,     0,     0,     0,     0,   414,  1155,
     2397       0,   613,   613,  1160,  -291,     0,     0,     0,     0,     0,
     2398       0,     0,     0,   364,   364,     0,     0,     0,     0,     0,
     2399       0,     0,     0,     0,     0,     0,     0,     1,     2,   207,
     2400       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2401      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2402      24,    25,     0,   509,    26,    27,    28,    29,     0,     0,
     2403      30,   283,   284,    31,   285,     0,     0,     0,     0,     0,
     2404       0,     0,     0,     0,     0,     0,   414,     0,   414,     0,
     2405       0,     0,     0,   414,     0,     0,     0,     0,     0,     0,
     2406     286,    34,   613,    35,     0,    36,   287,     0,    38,    39,
     2407     288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
     2408     293,   294,     0,   509,   509,   803,   414,  1243,     0,     0,
     2409       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2410       0,     0,     0,   295,     0,  1055,     0,     0,     0,   364,
     2411       0,    45,    46,   297,   298,   299,   300,     0,     0,     0,
     2412       0,     0,     0,     0,     0,     0,  -126,     0,     1,     2,
     2413     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    21562414      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2157       23,    24,    25,  -295,     0,    26,    27,    28,     0,     0,
    2158        0,     0,   213,     0,    31,     0,     0,    79,     0,     0,
    2159        0,     0,   233,   357,   237,     0,   239,     0,     0,     0,
    2160        0,     0,     0,   248,     0,     0,     0,     0,     0,     0,
    2161        0,     0,    34,     0,     0,    88,     0,    37,   349,   337,
    2162      338,    40,     0,  -295,     0,     0,     0,     0,    41,    42,
    2163        0,     0,     0,     0,   213,     0,   237,   239,   248,    43,
    2164        0,     0,    81,    58,     0,   364,     0,     0,     0,    81,
    2165        0,     0,     0,     0,   635,     0,   339,     0,     0,   128,
    2166      128,   128,     0,    46,    47,     0,     0,    58,     0,     0,
    2167        0,     0,   284,   285,    58,   286,     0,   213,   932,     0,
    2168      933,     0,     0,     0,     0,     0,     0,   936,   937,     0,
    2169        0,     0,   942,     0,     0,     0,     0,     0,     0,     0,
    2170      364,   287,    81,   167,   947,     0,     0,   288,     0,   951,
    2171        0,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2172      220,   294,   295,     0,     0,     0,     0,    58,     0,    43,
    2173        0,     0,     0,   128,     0,   128,     0,     0,   213,   987,
    2174      237,   239,   248,     0,   296,     0,   380,     0,     0,     0,
    2175        0,     0,   792,    46,    47,   298,   299,   300,   301,     0,
    2176      277,   364,   364,     0,   364,   364,     0,     0,   167,     0,
    2177        0,     0,   274,     0,     0,     0,   213,     0,     0,     0,
    2178        0,   213,     0,     0,    88,     0,     0,     0,   508,     0,
    2179      510,   513,     0,     0,     0,     0,   498,     0,   516,   517,
    2180        0,   167,     0,     0,     0,     0,     0,     0,     0,     0,
    2181        0,   370,   510,   510,     0,   376,   128,     0,     0,   364,
    2182      364,     0,     0,     0,   128,     0,   128,   128,     0,     0,
    2183        0,   128,     0,   128,   128,     0,     0,     0,     0,     0,
    2184     1033,  1034,  1035,  1036,   213,  1038,     0,     0,     0,     0,
    2185      510,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2186        0,  1082,     0,     0,   167,     0,   213,     0,     0,     0,
    2187        0,   237,   239,     0,     0,  1088,   220,     0,     0,   248,
    2188        0,     0,     0,     0,     0,     0,   510,     0,     0,     0,
    2189        0,     0,     0,   364,   167,     0,     0,     0,     0,     0,
    2190        0,     0,     0,   128,     0,     0,     0,     0,     0,     0,
    2191        0,     0,     0,     0,     0,  1108,     0,     0,     0,   376,
    2192        0,     0,   213,     0,     0,     0,   167,     0,     0,     0,
    2193        0,     0,     0,     0,     0,     0,   227,     0,     0,     0,
    2194      213,     0,     0,     0,     0,   213,     0,   213,     0,   525,
    2195        0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
    2196        0,   167,  1141,     0,   213,     0,     0,   213,   213,  1149,
    2197      364,     0,   364,     0,  1153,   213,     0,     0,     0,  1157,
    2198        0,  1158,     0,     0,     0,  1160,     0,  1161,  1162,   213,
    2199        0,  1165,     0,     0,     0,     0,   213,     0,     0,   598,
    2200     1177,     0,     0,     0,   622,   364,     0,     0,     0,     0,
    2201        0,     0,     0,   364,   364,   364,     0,     0,  1192,  1193,
    2202        0,     0,     0,     0,   364,   364,     0,     0,     0,     0,
    2203        0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
    2204        0,     0,     0,     0,     0,  1223,     0,     0,  1225,     0,
    2205        0,     0,     0,     0,   510,   510,   510,   510,   510,   510,
    2206      510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
    2207      510,   510,     0,     0,     0,     0,     0,     0,     0,   364,
    2208      167,   167,     0,     0,     0,     0,     0,   370,     0,     0,
    2209        0,  1239,     0,     0,     0,     0,     0,  1243,  1244,     0,
    2210        0,     0,     0,     0,     0,     0,     0,     0,   525,  1255,
    2211      213,     0,     0,     0,     0,     0,     0,     0,     0,  1262,
    2212        0,     0,  1266,     0,  1267,     0,     0,  1269,     0,     0,
    2213        0,     0,     0,     0,     0,     0,   717,     0,   213,     0,
    2214     1277,     0,     0,   213,     0,     0,     0,     0,   167,   364,
    2215        0,     0,     0,  1284,     0,  1286,  1287,  1288,  1289,     0,
    2216      525,     0,   525,     0,     0,   525,     0,   167,   525,     0,
    2217        0,  1296,     0,  1297,     0,     0,     0,   174,     0,     0,
    2218      370,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2219        0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
    2220        0,   510,     0,     0,     0,    88,  1325,  1326,   128,   128,
    2221        0,     0,     0,     0,     0,   213,     0,     0,     0,     0,
    2222        0,     0,     0,     0,     0,     0,     0,     0,     0,   213,
    2223        0,     0,   167,     0,     0,     0,     0,   128,     0,     0,
    2224      128,   128,     0,   128,   370,   128,   128,     0,   816,   498,
    2225      128,   128,     0,     0,     0,     0,     0,     0,    88,  1361,
    2226     1362,     0,     0,     0,   510,     0,     0,     0,     0,  1372,
    2227        0,     0,     0,     0,   598,     0,     0,     0,     0,   598,
    2228        0,     0,     0,     0,     0,     0,     0,     0,   370,   370,
    2229      370,     0,     0,     0,     0,     0,   510,     0,     0,  1022,
    2230        0,     0,     8,     9,    10,    11,    12,   370,     0,     0,
    2231        0,     0,     0,     0,   213,     0,     0,     0,     0,     0,
    2232     1404,     0,   158,     0,     0,     0,   213,     0,     0,   284,
    2233      285,    31,   286,  1409,     0,  1410,  1411,  1412,     0,   525,
    2234        0,     0,     0,     0,     0,   213,     0,  1416,     0,     0,
    2235        0,     0,     0,     0,     0,     0,  1427,     0,   287,    34,
    2236        0,     0,     0,     0,   288,   370,     0,   941,   289,     0,
    2237      253,   290,   291,   292,   293,    41,    42,     0,   294,   295,
    2238      258,     0,     0,  1450,     0,     0,    43,     0,     0,     0,
    2239        0,   128,   128,     0,     0,     0,     0,     0,     0,     0,
    2240        0,   296,   717,   380,     0,     0,     0,     0,     0,     0,
    2241      345,    47,   298,   299,   300,   301,     0,   510,     0,     0,
    2242        0,     0,     0,     0,     0,     0,     0,     0,  1489,  1490,
    2243        0,     0,     0,     0,     0,     0,   158,     0,     0,     0,
    2244        0,  1495,     0,     0,     0,     0,     0,     0,  1495,     0,
    2245      387,     0,     0,     0,     0,     0,     0,     0,     0,   213,
    2246      370,     0,   510,     0,   622,     0,     0,     0,   370,     0,
    2247        0,     0,     0,   419,     0,     0,     0,     0,     0,     0,
    2248        0,  1529,     0,     0,     0,  1535,     0,   434,     0,     0,
    2249        0,   213,     0,     0,     0,     0,   439,     0,     0,     0,
    2250      510,     0,     0,     0,     0,     0,   447,     0,     0,     0,
    2251        0,     0,     0,   510,  1557,     0,  1558,     0,     0,     0,
    2252        0,     0,     0,     0,     0,     0,     0,   213,     0,     0,
    2253        0,   465,     0,     0,     0,     0,   475,     0,   213,     0,
    2254        0,     0,     0,     0,  1573,  1574,     0,     0,     0,   483,
    2255        0,   128,  1577,  1578,   510,   493,   128,   497,     0,     0,
    2256        0,     0,     0,     0,   717,     0,     0,     0,     0,     0,
    2257        0,     0,     0,     0,   527,     0,     0,     0,     0,   525,
     2415      23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
     2416       0,    30,   283,   284,    31,  1040,  1041,     0,  1042,     0,
     2417     341,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,     0,
     2418       0,     0,  1051,     0,     0,     0,  1052,  1053,   364,    33,
     2419       0,   286,    34,     0,    35,     0,    36,  1054,     0,    38,
     2420      39,   288,     0,     0,   289,   290,   291,   292,    41,    42,
     2421       0,   293,   294,     0,     0,     0,     0,     0,     0,     0,
    22582422       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2259        0,     0,     0,     0,   284,   285,     0,   286,     0,     0,
    2260        0,     0,     0,   167,     0,     0,     0,     0,     0,     0,
    2261      213,     0,     0,     0,     0,     0,   586,     0,     0,   370,
    2262        0,   591,     0,   287,   213,     0,     0,     0,     0,   288,
    2263        0,   510,     0,   289,     0,     0,   290,   291,   292,   293,
    2264       41,    42,     0,   294,   295,     0,     0,     0,     0,     0,
    2265      636,    43,     0,     0,   637,   638,     0,   640,     0,     0,
    2266        0,     0,   598,     0,   652,   653,   507,   654,   655,     0,
    2267      656,     0,   657,     0,     0,    46,    47,   298,   299,   300,
    2268      301,     0,     0,   370,   370,     0,     0,     0,     0,   586,
    2269        0,     0,     0,     0,   510,   510,     0,   672,     0,     0,
     2423       0,     0,     0,     0,   295,     0,  1055,   364,   364,   172,
     2424       0,     0,    45,    46,   297,   298,   299,   300,     0,     0,
     2425       0,     0,  1056,     0,     0,     0,     0,  -126,     0,     0,
     2426       0,     0,     1,     2,   207,     4,     5,     6,     7,     8,
     2427       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2428      19,    20,    21,    22,    23,    24,    25,     0,   509,    26,
     2429      27,    28,    29,     0,     0,    30,   283,   284,    31,   285,
     2430       0,     0,     0,     0,   509,     0,     0,     0,     0,     0,
    22702431       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2271        0,     0,     0,     0,     0,     0,   213,     0,     0,     0,
    2272      128,     0,   683,     0,     0,     0,     0,     0,     0,     0,
     2432       0,     0,     0,     0,     0,   286,    34,     0,    35,     0,
     2433      36,   287,     0,    38,    39,   288,     0,     0,   289,   290,
     2434     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2435       0,     0,     0,     0,     0,     0,     0,   364,     0,     0,
     2436       0,     0,     0,     0,     0,     0,     0,     0,   295,     0,
     2437      44,     0,     0,     0,   509,   509,    45,    46,   297,   298,
     2438     299,   300,     0,     2,   207,     4,     5,     6,     7,     8,
     2439       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2440      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2441      27,    28,     0,     0,     0,     0,   283,   284,    31,   285,
     2442       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2443      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2444      25,  -292,     0,     0,   414,   286,    34,     0,    35,     0,
     2445      36,   287,    31,    38,    39,   288,     0,     0,   289,   290,
     2446     291,   292,    41,    42,     0,   293,   294,     0,   414,   414,
    22732447       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2274        0,     0,     0,   525,     0,     0,     0,     0,   709,     0,
    2275        0,     0,     0,     0,   712,     0,     0,  -520,     0,   465,
    2276        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
     2448      34,     0,     0,     0,     0,     0,     0,     0,   295,     0,
     2449     343,  -292,     0,   414,     0,   757,   344,    46,   297,   298,
     2450     299,   300,     2,   207,     4,     5,     6,     7,     8,     9,
     2451      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2452      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2453      28,     0,     0,     0,     0,   283,   284,    31,   285,     8,
     2454       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2455      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2456      27,    28,     0,     0,   286,    34,     0,    35,    31,    36,
     2457     287,     0,    38,    39,   288,     0,     0,   289,   290,   291,
     2458     292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
     2459       0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2460       0,   111,     0,    38,    39,     0,     0,   295,     0,   962,
     2461       0,     0,    41,    42,   757,   344,    46,   297,   298,   299,
     2462     300,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    22772463      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    22782464      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2279       29,     0,     0,    30,     0,   749,    31,    32,     0,     0,
    2280        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2281      768,     0,   717,     0,   213,     0,     0,     0,     0,     0,
    2282        0,    33,     0,     0,    34,     0,    35,     0,    36,    37,
    2283        0,    38,    39,    40,     0,     0,     0,     0,     0,     0,
    2284       41,    42,     0,     0,     0,     0,     0,     0,   795,     0,
    2285        0,    43,   128,     0,   220,     0,     0,   805,     0,   342,
    2286      365,     0,     0,     0,   807,     0,    44,     0,    45,     0,
    2287      815,     0,     0,     0,     0,    46,    47,     0,     0,   829,
    2288        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2289        0,   717,     0,   415,     0,     0,     0,     0,     0,     0,
    2290      415,     0,     0,     0,     0,   510,     0,     0,     0,     0,
    2291        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2292      869,     0,     0,   510,     0,     0,     0,     0,     0,     0,
    2293        0,   284,   285,     0,   286,     0,     0,     0,     0,     0,
    2294        0,     0,     0,   370,   370,     0,     0,     0,     0,     0,
    2295        0,     0,   220,     0,     0,     0,   815,     0,     0,     0,
    2296      287,     0,     0,     0,   911,     0,   288,     0,     0,     0,
    2297      289,     0,   415,   290,   291,   292,   293,    41,    42,     0,
    2298      294,   295,     0,     0,     0,     0,     0,     0,    43,     0,
    2299        0,     0,     0,     0,     0,   253,   510,   510,     0,     0,
    2300        0,     0,     0,   296,     0,   948,   949,     0,     0,     0,
    2301        0,     0,    46,    47,   298,   299,   300,   301,     0,   966,
    2302        0,     0,     0,     0,     0,     0,   415,     0,     0,     0,
    2303        0,     0,     0,     0,   415,   582,     0,   415,   585,     0,
    2304      988,     0,   989,     0,     0,     0,   993,     0,   365,     0,
    2305        0,     0,   614,     0,     0,     0,     0,     0,     0,     0,
    2306        0,     0,     0,     0,     0,     0,     0,     0,   370,     0,
    2307      213,   632,     0,     0,   342,     8,     9,    10,    11,    12,
    2308       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2309       23,    24,    25,  -295,     0,    26,    27,    28,     0,     0,
    2310        0,   415,     0,     0,    31,   415,     0,     0,     0,     0,
    2311        0,  1027,     0,     0,     0,     0,     0,     0,  1028,     0,
    2312        0,     0,     0,     0,     0,     0,   525,     0,   525,     0,
    2313        0,  1030,    34,  1031,     0,     0,   365,    37,     0,   337,
    2314      338,    40,     0,  -295,     0,     0,     0,  1043,    41,    42,
    2315        0,     0,     0,     0,  1047,     0,     0,     0,     0,    43,
    2316        0,     0,     0,   525,   322,   525,  1085,     0,     0,  1086,
    2317        0,     0,     0,     0,   347,     0,   339,     0,     0,     0,
    2318        0,     0,   415,    46,    47,   365,   383,   383,     0,     0,
    2319        0,     0,     0,   167,   207,     2,   208,     4,     5,     6,
    2320        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2321       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2322        0,    26,    27,    28,   415,     0,     0,     0,   342,   365,
    2323       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2324        0,     0,     0,     0,     0,     0,     0,     0,   591,     0,
    2325        0,     0,     0,     0,     0,     0,     0,   322,    34,     0,
    2326       35,     0,    36,     0,     0,   209,    39,     0,     0,     0,
    2327        0,     0,     0,   415,   415,     0,     0,     0,     0,     0,
    2328        0,   479,     0,     0,  1159,    43,     0,     0,     0,     0,
    2329        0,     0,   809,   365,     0,     0,     0,     0,     0,     0,
    2330        0,     0,   210,   614,     0,   614,   614,     0,     0,    46,
    2331       47,     0,   614,     0,     0,     0,     0,     0,     0,     0,
    2332        0,     0,   848,   365,     0,     0,     0,     0,   365,     0,
    2333        0,     0,     0,     0,     0,     0,     0,   365,   365,   365,
    2334        0,     0,   527,     0,     0,     0,     0,     0,  1224,     0,
    2335        0,     0,     0,     0,     0,     0,   365,     0,     0,     0,
    2336        0,   415,   891,     0,     0,   415,   894,     0,     0,     0,
    2337        0,     0,   896,     0,     0,     0,     0,     0,     0,     0,
    2338        0,     0,  1236,     0,     0,     0,     0,  1238,     0,     0,
    2339        0,   415,     0,     0,     0,  1242,     0,   383,     0,     0,
    2340        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2341        0,     0,     0,     0,   365,   614,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2343        0,  1271,     0,     0,     0,     0,     0,     0,     0,     0,
    2344        0,     0,     0,  1279,     0,     0,  1280,     0,  1281,     0,
    2345      342,   365,     0,     0,     0,   415,   415,     0,     0,     0,
    2346        0,     0,  1290,  1291,     0,     0,     0,     0,     0,     0,
    2347        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2348        0,     0,     0,     0,  1304,     0,     0,     0,     0,     0,
    2349        0,   711,   284,   285,     0,   286,     0,     0,     0,     0,
    2350        0,   415,     0,     0,     0,     0,     0,     0,     0,   365,
    2351        0,     0,     0,     0,     0,     0,   809,   365,     0,     0,
    2352      614,   287,   614,     0,     0,     0,     0,   288,     0,     0,
    2353      745,   289,   614,  1345,   290,   291,   292,   293,    41,    42,
    2354        0,   294,   295,   762,     0,     0,     0,     0,   745,    43,
    2355        0,   745,     0,     0,     0,     0,     0,     0,     0,     0,
    2356        0,     0,   772,   773,   296,     0,   380,     0,     0,     0,
    2357        0,   761,     0,    46,    47,   298,   299,   300,   301,     0,
    2358        0,     0,     0,     0,     0,   794,     0,     0,     0,     0,
    2359        0,     0,     0,     0,     0,   803,     0,     0,     0,     0,
    2360        0,     0,   347,     0,     0,   809,     0,   762,     0,  1396,
    2361        0,  1397,   342,   365,   415,     0,   415,     0,     0,     0,
    2362      415,     0,     0,     0,     0,  1407,     0,  1408,     0,     0,
    2363        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2364        0,   614,   614,     0,     0,  1415,     0,     0,     0,     0,
    2365        0,     0,     0,     0,     0,     0,   868,     0,     0,     0,
    2366        0,  1433,  1435,     0,     0,   383,     0,     0,   365,     0,
    2367        0,     0,  1440,     0,     0,  1242,     0,     0,   415,     8,
    2368        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2369       19,    20,    21,    22,    23,    24,    25,  -295,  1464,     0,
    2370      415,  1156,     0,     0,     0,     0,     0,  1471,    31,     0,
    2371     1473,   365,  1475,  1477,  1479,     0,     0,   415,  1168,     0,
    2372      614,   614,  1173,     0,     0,     0,     0,     0,     0,     0,
    2373        0,     0,   365,   365,     0,     0,    34,     0,     0,     0,
    2374        0,     0,     0,     0,     0,     0,     0,  -295,     0,     0,
    2375        0,     0,     0,     0,  1510,     0,  1512,     0,  1242,     0,
    2376        0,     0,     0,     0,     0,   762,     0,   972,     0,     0,
    2377        0,     0,     0,     0,  1524,     0,     0,   983,     0,     0,
    2378        0,     0,     0,     0,   992,     0,     0,     0,     0,     0,
    2379        0,     0,     0,     0,     0,   415,     0,   415,     0,     0,
    2380        0,     0,   415,     0,     0,     0,     0,     0,     0,     0,
    2381        0,   614,     0,     0,     0,     0,     0,     0,     0,  1175,
    2382        0,     0,     8,     9,    10,    11,    12,  1010,  1011,     0,
    2383        0,   347,     0,     0,     0,     0,   809,   415,  1258,     0,
    2384        0,     0,     0,     0,     0,   347,     0,     0,     0,   284,
    2385      285,    31,   286,     0,     0,     0,     0,     0,     0,     0,
    2386        0,   365,     0,     0,     0,     0,     0,     0,     0,     0,
    2387        0,     0,     0,     0,     0,     0,     0,     0,   287,    34,
    2388        0,     0,     0,     0,   288,  1041,     0,     0,   289,   383,
    2389        0,   290,   291,   292,   293,    41,    42,     0,   294,   295,
    2390        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
    2391        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2392        0,   296,   342,   380,     0,     0,     0,   347,     0,     0,
    2393     1176,    47,   298,   299,   300,   301,     0,     0,     0,     0,
    2394      365,     2,   208,     4,     5,     6,     7,     8,     9,    10,
    2395       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2396       21,    22,    23,    24,    25,     0,   322,    26,    27,    28,
    2397        0,     0,     0,     0,   284,   285,    31,   286,     0,     0,
    2398        0,     0,  1132,  1133,     0,     0,     0,     0,     0,     0,
    2399        0,     0,   365,   365,     0,     0,   383,     0,     0,     0,
    2400        0,     0,   983,   287,    34,  1147,    35,   745,    36,   288,
    2401        0,    38,    39,   289,     0,     0,   290,   291,   292,   293,
    2402       41,    42,     0,   294,   295,     0,     0,     0,  1163,     0,
    2403        0,    43,     0,     0,     0,     0,     0,     0,     0,  1178,
    2404        0,   284,   285,     0,   286,     0,   296,     0,   344,     0,
    2405        0,     0,     0,   761,     0,   345,    47,   298,   299,   300,
    2406      301,   383,     0,  1196,     0,     0,     0,     0,     0,     0,
    2407      287,     0,     0,     0,     0,     0,   288,     0,   983,   983,
    2408      289,     0,     0,   290,   291,   292,   293,    41,    42,     0,
    2409      294,   295,     0,     0,     0,     0,     0,     0,    43,  1228,
    2410        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2411        0,     0,     0,   296,     0,   380,     0,   365,   980,     0,
    2412        0,     0,    46,    47,   298,   299,   300,   301,     0,     0,
    2413        0,     1,     2,     3,     4,     5,     6,     7,     8,     9,
     2465       0,     0,     0,     0,   283,   284,    31,   285,     8,     9,
    24142466      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2415       20,    21,    22,    23,    24,    25,   983,     0,    26,    27,
    2416       28,    29,     0,     0,    30,     0,     0,    31,    32,     0,
    2417        0,     0,     0,     0,     0,   868,     0,     0,     0,     0,
    2418        0,   284,   285,     0,   286,     0,     0,     0,     0,     0,
    2419     1282,  1283,    33,     0,     0,    34,     0,    35,     0,    36,
    2420       37,     0,    38,    39,    40,     0,     0,   415,     0,     0,
    2421      287,    41,    42,     0,     0,     0,   288,     0,     0,     0,
    2422      289,     0,    43,   290,   291,   292,   293,    41,    42,     0,
    2423      294,   295,   415,   415,     0,     0,     0,    44,    43,    45,
    2424        0,     0,     0,  -524,     0,     0,    46,    47,     0,     0,
    2425        0,     0,     0,   296,     0,   380,     0,   415,     0,     0,
    2426        0,     0,    46,    47,   298,   299,   300,   301,     0,     0,
    2427      983,     0,     1,     2,   208,     4,     5,     6,     7,     8,
    2428        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2429       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2430       27,    28,    29,     0,     0,    30,   284,   285,    31,  1050,
    2431     1051,     0,  1052,     0,     0,  1053,  1054,  1055,  1056,  1057,
    2432     1058,  1059,  1060,     0,     0,     0,  1061,     0,     0,     0,
    2433     1062,  1063,     0,    33,  1390,   287,    34,   745,    35,     0,
    2434       36,  1064,     0,    38,    39,   289,     0,     0,   290,   291,
    2435      292,   293,    41,    42,     0,   294,   295,     0,     0,     0,
    2436        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2437        0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
    2438     1065,     0,     0,   173,     0,     0,     0,    46,    47,   298,
    2439      299,   300,   301,     0,     0,     0,     0,  1066,     0,     0,
    2440        0,  -130,     0,     0,     0,     0,     0,     0,     0,     0,
    2441        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2442        0,  1449,     0,     0,     0,     0,     0,     0,     1,     2,
    2443      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2444       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2445       23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
    2446        0,    30,   284,   285,    31,   286,     8,     9,    10,    11,
     2467      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2468      28,     0,     0,   286,    34,     0,    35,    31,    36,   287,
     2469       0,    38,    39,   288,     0,     0,   289,   290,   291,   292,
     2470      41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
     2471       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2472       0,     0,    38,    39,     0,     0,   295,     0,   962,     0,
     2473       0,     0,     0,   757,    45,    46,   297,   298,   299,   300,
     2474       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    24472475      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    24482476      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2449        0,   287,    34,     0,    35,    31,    36,   288,     0,    38,
    2450       39,   289,     0,  1516,   290,   291,   292,   293,    41,    42,
    2451        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2452        0,     0,     0,    34,     0,     0,     0,     0,   112,     0,
    2453       38,    39,     0,     0,   296,     0,  1065,     0,     0,    41,
    2454       42,     0,     0,    46,    47,   298,   299,   300,   301,     0,
    2455        0,     0,     0,     0,     0,     0,   322,  -130,     1,     2,
    2456      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2457       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2458       23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
    2459        0,    30,   284,   285,    31,   286,     0,     0,     0,     8,
    2460        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2461       19,    20,    21,    22,    23,    24,    25,  -296,     0,     0,
    2462        0,   287,    34,     0,    35,     0,    36,   288,    31,    38,
    2463       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2464        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2465        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
    2466        0,     0,     0,     0,   296,     0,    45,  -296,     0,     0,
    2467        0,     0,     0,    46,    47,   298,   299,   300,   301,     2,
    2468      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2477       0,     0,     0,   283,   284,    31,   285,     8,     9,    10,
     2478      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2479      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2480       0,     0,   286,    34,     0,    35,    31,    36,   287,     0,
     2481      38,    39,   288,     0,     0,   289,   290,   291,   292,    41,
     2482      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2483       0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
     2484       0,   208,    39,     0,     0,   295,     0,   343,     0,     0,
     2485       0,     0,     0,   344,    46,   297,   298,   299,   300,     2,
     2486     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    24692487      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    24702488      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2471        0,     0,   284,   285,    31,   286,     8,     9,    10,    11,
    2472       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2473       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2474        0,   287,    34,     0,    35,    31,    36,   288,     0,    38,
    2475       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2476        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2477        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
    2478       38,    39,     0,     0,   296,     0,   971,     0,     0,     0,
    2479        0,   761,     0,   345,    47,   298,   299,   300,   301,     2,
    2480      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2481       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2482       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2483        0,     0,   284,   285,    31,   286,     8,     9,    10,    11,
    2484       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2485       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2486        0,   287,    34,     0,    35,    31,    36,   288,     0,    38,
    2487       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2488        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2489        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
    2490      209,    39,     0,     0,   296,     0,   971,     0,     0,     0,
    2491        0,   761,     0,    46,    47,   298,   299,   300,   301,     2,
    2492      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2493       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2494       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2495        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
     2489       0,     0,   283,   284,    31,   285,     0,     0,     0,     0,
    24962490       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24972491       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2498        0,   287,    34,     0,    35,     0,    36,   288,     0,    38,
    2499       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2500        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
     2492       0,   286,    34,     0,    35,     0,    36,   287,     0,   208,
     2493      39,   288,     0,     0,   289,   290,   291,   292,    41,    42,
     2494       0,   293,   294,     0,     0,     0,     0,     0,     0,     0,
    25012495       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2502        0,     0,     0,     0,   296,     0,   344,     0,     0,     0,
    2503        0,     0,     0,   345,    47,   298,   299,   300,   301,     2,
    2504      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2505       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2506       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2507        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
     2496       0,     0,     0,     0,   295,     0,   997,     0,     0,     0,
     2497       0,     0,   998,    46,   297,   298,   299,   300,     2,   207,
     2498       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2499      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2500      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2501       0,   283,   284,    31,   285,     0,     0,     0,     0,     0,
    25082502       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25092503       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2510        0,   287,    34,     0,    35,     0,    36,   288,     0,   209,
    2511       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2512        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
     2504     286,    34,     0,    35,     0,    36,   287,     0,    38,    39,
     2505     288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
     2506     293,   294,     0,     0,     0,     0,     0,     0,     0,     0,
    25132507       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2514        0,     0,     0,     0,   296,     0,  1007,     0,     0,     0,
    2515        0,     0,     0,  1008,    47,   298,   299,   300,   301,     2,
    2516      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2517       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2518       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2519        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
     2508       0,     0,     0,   295,     0,   962,     0,     0,     0,     0,
     2509       0,   344,    46,   297,   298,   299,   300,     2,   207,     4,
     2510       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2511      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2512      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2513     283,   284,    31,   285,     0,     0,     0,     0,     0,     0,
    25202514       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2515       0,     0,     0,     0,     0,     0,     0,     0,     0,   286,
     2516      34,     0,    35,     0,    36,   287,     0,   208,    39,   288,
     2517       0,     0,   289,   290,   291,   292,    41,    42,     0,   293,
     2518     294,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25212519       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2522        0,   287,    34,     0,    35,     0,    36,   288,     0,    38,
    2523       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2524        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2525        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2526        0,     0,     0,     0,   296,     0,   971,     0,     0,     0,
    2527        0,     0,     0,   345,    47,   298,   299,   300,   301,     2,
    2528      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2529       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2530       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2531        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
    2532        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2533        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2534        0,   287,    34,     0,    35,     0,    36,   288,     0,   209,
    2535       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2536        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2537        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2538        0,     0,     0,     0,   296,     0,   380,     0,     0,     0,
    2539        0,     0,     0,    46,    47,   298,   299,   300,   301,     1,
     2520       0,     0,   295,     0,   379,     0,     0,     0,     0,     0,
     2521      45,    46,   297,   298,   299,   300,  -515,     0,     0,     1,
    25402522       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    25412523      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     
    25472529      38,    39,    40,     0,     0,     0,     0,     0,     0,    41,
    25482530      42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2549       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2550        0,     0,     0,     0,     0,    44,     0,    45,     0,     0,
    2551        0,     0,     0,     0,    46,    47,   207,     2,   208,     4,
     2531       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2532       0,     0,     0,     0,     0,    43,     0,    44,     0,     0,
     2533       0,     0,     0,    45,    46,     1,     2,     3,     4,     5,
     2534       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2535      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2536       0,     0,    26,    27,    28,    29,     0,     0,    30,     0,
     2537       0,    31,    32,     0,     0,     0,     0,     0,     0,     0,
     2538       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2539       0,     0,     0,     0,     0,     0,    33,     0,     0,    34,
     2540       0,    35,     0,    36,    37,     0,    38,    39,    40,     0,
     2541       0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
     2542       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2543       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2544       0,    43,     0,    44,     0,     0,     0,  -519,     0,    45,
     2545      46,     1,     2,     3,     4,     5,     6,     7,     8,     9,
     2546      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2547      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2548      28,    29,     0,     0,    30,     0,     0,    31,    32,     0,
     2549       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2550       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2551       0,     0,    33,     0,     0,    34,     0,    35,     0,    36,
     2552      37,     0,    38,    39,    40,     0,     0,     0,     0,     0,
     2553       0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
     2554       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2555       0,     0,     0,     0,     0,     0,     0,    43,     0,    44,
     2556       0,     0,     0,     0,     0,    45,    46,     1,     2,   207,
     2557       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2558      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2559      24,    25,     0,     0,    26,    27,    28,    29,     0,     0,
     2560      30,     0,     0,    31,     0,     0,     0,     0,     0,     0,
     2561       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2562       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2563       0,    34,     0,    35,     0,    36,     0,     0,    38,    39,
     2564       0,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2565      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2566      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2567       0,     0,     0,     0,     0,    44,    31,     0,     0,     0,
     2568       0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
     2569       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2570       0,     0,     0,     0,    34,     0,    35,     0,    36,    37,
     2571       0,   208,    39,    40,     0,     0,     0,     0,     0,     0,
     2572      41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
     2573       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2574       0,     0,     0,     0,     0,     0,    43,     0,   209,     0,
     2575       0,     0,     0,     0,    45,    46,     2,   207,     4,     5,
     2576       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2577      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2578       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2579       0,    31,     0,     0,     0,     0,     8,     9,    10,    11,
     2580      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2581      22,    23,    24,    25,     0,     0,    26,    27,    28,    34,
     2582       0,    35,     0,    36,     0,    31,    38,    39,     0,     2,
     2583     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2584      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2585      23,    24,    25,    34,     0,    26,    27,    28,     0,     0,
     2586      38,    39,  -399,   677,    31,     0,     0,     0,     0,    45,
     2587      46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2588       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2589       0,     0,    34,     0,    35,   634,    36,   338,     0,    38,
     2590      39,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2591       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2592       0,  1350,     0,     0,     0,     0,     0,     0,     0,     0,
     2593       0,     0,     0,     0,     0,     0,   677,     0,     0,     0,
     2594       0,     0,    45,    46,     2,   207,     4,     5,     6,     7,
     2595       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2596      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2597      26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
     2598       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2599      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2600      25,     0,     0,    26,    27,    28,     0,    34,     0,    35,
     2601       0,    36,    31,   684,    38,    39,     0,     0,     0,     0,
     2602       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2603       0,     0,     0,     0,     0,     0,  1352,     0,     0,     0,
     2604      34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
     2605       0,   677,     0,     0,     0,     0,     0,    45,    46,     2,
     2606     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2607      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2608      23,    24,    25,     0,   685,    26,    27,    28,  1091,     0,
     2609      45,    46,     0,     0,    31,     0,     0,     0,     0,     0,
     2610       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2611       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2612       0,     0,    34,     0,    35,     0,    36,     0,     0,   208,
     2613      39,     0,     2,   207,     4,     5,     6,     7,     8,     9,
     2614      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2615      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2616      28,     0,     0,     0,     0,     0,   271,    31,     0,     0,
     2617       0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
     2618       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2619       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
     2620       0,     0,    38,    39,     0,     2,   207,     4,     5,     6,
     2621       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2622      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2623       0,    26,    27,    28,     0,     0,     0,     0,     0,   677,
     2624      31,     0,     0,     0,     0,    45,    46,     0,     0,     0,
     2625       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2626       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2627      35,     0,    36,     0,     0,    38,    39,     0,     2,   207,
     2628       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2629      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2630      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2631       0,     0,   592,    31,     0,     0,     0,     0,    45,    46,
     2632       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2633       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2634       0,    34,     0,    35,     0,    36,     0,     0,   208,    39,
     2635       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2636      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2637      26,    27,    28,     0,     0,     0,     0,   283,   284,    31,
     2638     285,     0,     0,     0,     0,   209,     0,     0,     0,     0,
     2639       0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
     2640       0,     0,     0,     0,     0,     0,   286,    34,     0,     0,
     2641       0,     0,   287,     0,    38,    39,   288,     0,     0,   289,
     2642     290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
     2643       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2644       0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
     2645       0,   517,     0,     0,   172,     0,     0,    45,    46,   297,
     2646     298,   299,   300,     8,     9,    10,    11,    12,    13,    14,
     2647      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2648      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2649     283,   284,    31,   285,     8,     9,    10,    11,    12,    13,
     2650      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2651      24,    25,     0,     0,    26,    27,    28,     0,     0,   286,
     2652      34,     0,     0,    31,     0,   287,     0,    38,    39,   288,
     2653       0,     0,   289,   290,   291,   292,    41,    42,     0,   293,
     2654     294,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2655       0,    34,     0,     0,     0,     0,    37,     0,   336,   337,
     2656      40,     0,   295,   -35,   296,     0,     0,    41,    42,     0,
     2657      45,    46,   297,   298,   299,   300,     8,     9,    10,    11,
     2658      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2659      22,    23,    24,    25,     0,   338,    26,    27,    28,     0,
     2660       0,    45,    46,   283,   284,    31,   285,     8,     9,    10,
     2661      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2662      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2663       0,     0,   286,    34,     0,     0,    31,     0,   287,     0,
     2664      38,    39,   288,     0,     0,   289,   290,   291,   292,    41,
     2665      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2666       0,     0,     0,     0,    34,     0,     0,     0,     0,   111,
     2667       0,    38,    39,     0,     0,   295,     0,   296,     0,     0,
     2668      41,    42,     0,    45,    46,   297,   298,   299,   300,     8,
     2669       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2670      19,    20,    21,    22,    23,    24,    25,     0,    44,    26,
     2671      27,    28,     0,     0,    45,    46,   283,   284,    31,   285,
     2672       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2673      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2674      26,    27,    28,     0,     0,   286,    34,     0,     0,    31,
     2675     684,   287,     0,    38,    39,   288,     0,     0,   289,   290,
     2676     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2677       0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
     2678       0,     0,     0,     0,    38,    39,     0,     0,   295,     0,
     2679     158,     0,     0,     0,     0,     0,    45,    46,   297,   298,
     2680     299,   300,     8,     9,    10,    11,    12,    13,    14,    15,
     2681      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2682       0,   685,    26,    27,    28,  1220,     0,    45,    46,   283,
     2683     284,    31,   285,     8,     9,    10,    11,    12,    13,    14,
     2684      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2685      25,     0,     0,    26,    27,    28,     0,     0,   286,    34,
     2686       0,     0,    31,     0,   287,     0,    38,    39,   288,     0,
     2687       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2688       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2689      34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
     2690       0,   295,     0,   592,     0,     0,     0,     0,     0,    45,
     2691      46,   297,   298,   299,   300,     8,     9,    10,    11,    12,
     2692      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2693      23,    24,    25,     0,   258,    26,    27,    28,     0,     0,
     2694      45,    46,   283,   284,    31,   285,     0,     0,     0,     0,
     2695       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2696      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2697      25,   286,    34,    26,    27,    28,     0,   287,     0,    38,
     2698      39,   288,    31,     0,   289,   290,   291,   292,    41,    42,
     2699       0,   293,   294,     0,     0,     0,     0,     0,     0,     0,
     2700       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2701      34,     0,     0,     0,   295,     0,   379,    38,    39,     0,
     2702       0,     0,    45,    46,   297,   298,   299,   300,   467,     2,
     2703     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2704      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2705      23,    24,    25,     0,   158,    26,    27,    28,     0,     0,
     2706      45,    46,     0,     0,    31,     0,     0,     0,     8,     9,
     2707      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2708      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2709      28,     0,    34,     0,    35,     0,    36,    31,     0,    38,
     2710      39,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2711      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2712      22,    23,    24,    25,     0,    34,    26,    27,    28,     0,
     2713      37,     0,    38,    39,    40,    31,     0,     0,     0,    -3,
     2714       0,    41,    42,     0,     8,     9,    10,    11,    12,    13,
     2715      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2716      24,    25,     0,    34,    26,    27,    28,    43,    37,   158,
     2717      38,    39,    40,    31,     0,    45,    46,     0,     0,    41,
     2718      42,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2719      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2720       0,    34,    26,    27,    28,    43,    37,    44,   208,    39,
     2721      40,    31,     0,    45,    46,     0,     0,    41,    42,     0,
     2722       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2723      18,    19,    20,    21,    22,    23,    24,    25,  -291,    34,
     2724      26,    27,    28,    43,    37,   271,   336,   337,    40,    31,
     2725       0,    45,    46,     0,     0,    41,    42,     0,     8,     9,
     2726      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2727      20,    21,    22,    23,    24,    25,  -291,    34,    26,    27,
     2728      28,   634,     0,   338,    38,    39,     0,    31,  -291,    45,
     2729      46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2730      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2731       0,    26,    27,    28,     0,    34,     0,     0,     0,   634,
     2732      31,   338,    38,    39,     0,     0,  -291,    45,    46,     8,
     2733       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2734      19,    20,    21,    22,    23,    24,    25,     0,    34,    26,
     2735      27,    28,     0,     0,     0,   208,    39,     0,    31,   338,
     2736       0,     0,     0,     0,     0,    45,    46,     8,     9,    10,
     2737      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2738      21,    22,    23,    24,    25,     0,    34,    26,    27,    28,
     2739       0,     0,   271,    38,    39,     0,    31,     0,    45,    46,
     2740       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2741      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2742      26,    27,    28,     0,    34,     0,     0,     0,     0,    31,
     2743     338,    38,    39,     0,     0,     0,    45,    46,     8,     9,
     2744      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2745      20,    21,    22,    23,    24,    25,     0,    34,    26,    27,
     2746      28,     0,     0,     0,    38,    39,     0,    31,   685,     0,
     2747       0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
     2748       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2749       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2750       0,   592,    38,    39,     0,     0,     0,    45,    46,     2,
     2751     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2752      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2753      23,    24,    25,     0,     0,    26,    27,    28,     0,    44,
     2754       0,     0,     0,     0,    31,    45,    46,     0,     0,     0,
     2755       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2756       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2757       0,     0,    34,     0,    35,     0,    36,     0,     0,    38,
     2758      39,   283,   284,     0,   285,  1041,     0,  1042,     0,     0,
     2759    1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,     0,     0,
     2760    1524,  1051,     0,     0,     0,  1052,  1053,     0,    33,     0,
     2761     286,     0,     0,     0,     0,  -412,  1054,     0,     0,     0,
     2762     288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
     2763     293,   294,     0,     0,     0,     0,     0,     0,     0,     0,
     2764       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2765       0,     0,     0,   295,     0,   379,     0,     0,   172,     0,
     2766       0,    45,    46,   297,   298,   299,   300,     0,     0,   283,
     2767     284,  1056,   285,  1041,     0,  1042,  -126,     0,  1043,  1044,
     2768    1045,  1046,  1047,  1048,  1049,  1050,     0,     0,     0,  1051,
     2769       0,     0,     0,  1052,  1053,     0,    33,     0,   286,     0,
     2770       0,     0,     0,     0,  1054,     0,     0,     0,   288,     0,
     2771       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2772       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2773       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2774       0,   295,     0,   379,     0,     0,   172,     0,     0,    45,
     2775      46,   297,   298,   299,   300,     0,     0,     0,     0,  1056,
     2776       0,     0,     0,     0,  -126,     2,   207,     4,     5,     6,
     2777       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2778      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2779       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2780      31,     0,   283,   284,     0,   285,  1041,     0,  1042,  1398,
     2781    1399,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,     0,
     2782       0,  1524,  1051,     0,     0,     0,  1052,  1053,    34,    33,
     2783      35,   286,    36,     0,     0,    38,    39,  1054,     0,     0,
     2784       0,   288,     0,     0,   289,   290,   291,   292,    41,    42,
     2785       0,   293,   294,     0,     0,     0,     0,  1311,     0,     0,
     2786       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2787       0,     0,     0,     0,   295,     0,   379,     0,     0,   172,
     2788       0,     0,    45,    46,   297,   298,   299,   300,     0,     0,
     2789     283,   284,  1056,   285,  1041,     0,  1042,  1398,  1399,  1043,
     2790    1044,  1045,  1046,  1047,  1048,  1049,  1050,     0,     0,     0,
     2791    1051,     0,     0,     0,  1052,  1053,     0,    33,     0,   286,
     2792       0,     0,     0,     0,     0,  1054,     0,     0,     0,   288,
     2793       0,     0,   289,   290,   291,   292,    41,    42,     0,   293,
     2794     294,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2795       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2796       0,     0,   295,     0,   379,     0,     0,   172,     0,     0,
     2797      45,    46,   297,   298,   299,   300,     0,     0,   283,   284,
     2798    1056,   285,  1041,     0,  1042,     0,     0,  1043,  1044,  1045,
     2799    1046,  1047,  1048,  1049,  1050,     0,     0,     0,  1051,     0,
     2800       0,     0,  1052,  1053,     0,    33,     0,   286,     0,     0,
     2801       0,     0,     0,  1054,     0,     0,     0,   288,     0,     0,
     2802     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2803       0,     0,     0,     0,     0,   283,   284,     0,   285,     0,
     2804       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2805     295,     0,   379,     0,     0,   172,     0,     0,    45,    46,
     2806     297,   298,   299,   300,   286,     0,     0,     0,  1056,     0,
     2807     640,     0,   140,   141,   288,     0,     0,   289,   290,   291,
     2808     292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
     2809       0,     0,   283,   284,     0,   285,     0,     0,     0,     0,
     2810       0,     0,     0,     0,     0,     0,     0,   295,     0,   641,
     2811       0,   642,   380,     0,     0,    45,    46,   297,   298,   299,
     2812     300,   286,     0,     0,     0,     0,     0,   287,     0,     0,
     2813       0,   288,     0,     0,   289,   290,   291,   292,    41,    42,
     2814       0,   293,   294,     0,     0,     0,     0,     0,     0,   283,
     2815     284,     0,   285,     0,     0,     0,     0,     0,     0,     0,
     2816       0,     0,     0,     0,   295,     0,   379,     0,   283,   284,
     2817       0,   285,   708,    46,   297,   298,   299,   300,   286,     0,
     2818       0,     0,     0,     0,   287,     0,     0,     0,   288,     0,
     2819       0,   289,   290,   291,   292,    41,    42,   286,   293,   294,
     2820       0,     0,     0,   287,     0,     0,     0,   288,     0,     0,
     2821     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2822       0,   295,     0,   379,     0,   283,   284,     0,   285,   344,
     2823      46,   297,   298,   299,   300,     0,     0,     0,     0,     0,
     2824     506,     0,     0,     0,   283,   284,     0,   285,    45,    46,
     2825     297,   298,   299,   300,   286,     0,     0,     0,     0,     0,
     2826     287,     0,     0,     0,   288,     0,     0,   289,   290,   291,
     2827     292,    41,    42,   286,   293,   294,     0,     0,     0,   287,
     2828       0,     0,     0,   288,     0,     0,   289,   290,   291,   292,
     2829      41,    42,     0,   293,   294,     0,     0,   295,     0,     0,
     2830       0,   283,   284,     0,   285,    45,    46,   297,   298,   299,
     2831     300,     0,     0,     0,     0,     0,   511,     0,     0,     0,
     2832       0,     0,     0,     0,    45,    46,   297,   298,   299,   300,
     2833     286,     0,     0,     0,     0,     0,   287,     0,     0,     0,
     2834     288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
     2835     293,   294,     0,     0,     0,     0,     0,     0,     0,     0,
     2836       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2837       0,     0,     0,   514,     0,     0,     0,     0,     0,     0,
     2838       0,    45,    46,   297,   298,   299,   300,     2,   207,     4,
    25522839       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25532840      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2554       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2555        0,     0,    31,     0,     8,     9,    10,    11,    12,    13,
    2556       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2557       24,    25,     0,     0,    26,    27,    28,   486,   487,   488,
    2558       34,     0,    35,    31,    36,    37,     0,   209,    39,    40,
    2559        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2560        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2561        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2562        0,     0,    44,     0,   210,     0,     0,     0,     0,     0,
    2563        0,    46,    47,     1,     2,   208,     4,     5,     6,     7,
    2564        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2565       18,    19,    20,    21,    22,    23,    24,    25,  -295,     0,
    2566       26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
    2567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2569        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2570        0,    36,     0,     0,    38,    39,     0,     0,  -295,     0,
    2571        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2572        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
    2573        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2574        0,    45,     0,     0,     0,     0,     0,     0,    46,    47,
    2575        1,     2,   208,     4,     5,     6,     7,     8,     9,    10,
    2576       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2577       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2578       29,     0,     0,    30,     0,     0,    31,     0,     0,     0,
    2579        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2580        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2581        0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
    2582        0,    38,    39,     0,     0,     0,     0,     0,     0,     0,
    2583        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2584        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
    2585        0,     0,     0,     0,     0,     0,     0,     0,    45,     0,
    2586        0,     0,     0,     0,     0,    46,    47,     2,   208,     4,
    2587        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2588       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2589       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2841      25,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25902842       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    25912843       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25922844       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2593       34,     0,    35,     0,    36,    37,     0,   209,    39,    40,
    2594        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2595        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2596        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2597        0,     0,    44,     0,   210,     0,     0,     0,     0,     0,
    2598        0,    46,    47,     2,   208,     4,     5,     6,     7,     8,
    2599        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2600       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2601       27,    28,     0,     0,     0,     0,     0,     0,    31,     0,
    2602        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2603        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2604        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2605       36,     0,     0,    38,    39,     0,     0,     0,     0,     0,
    2606        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2607        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2608        0,     0,     0,     0,     0,     0,     0,     0,     0,  -403,
    2609      679,     0,     0,     0,     0,     0,     0,    46,    47,     2,
    2610      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2845      34,     0,    35,     0,    36,    37,     0,   175,   176,    40,
     2846       0,     0,     0,     0,     0,     0,    41,    42,   206,     2,
     2847     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    26112848      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26122849      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     
    26142851       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26152852       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2616        0,     0,    34,     0,    35,     0,    36,     0,     0,    38,
    2617       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2618        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
    2619        0,  1369,     0,     0,     0,     0,     0,     0,     0,     0,
    2620        0,     0,     0,     0,     0,     0,   679,     0,     0,     0,
    2621        0,     0,     0,    46,    47,     2,   208,     4,     5,     6,
    2622        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2623       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2624        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2625       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2626        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2627        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2628       35,     0,    36,     0,     0,    38,    39,     0,     0,     0,
    2629        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2630        0,     0,     0,     0,     0,    43,     0,  1371,     0,     0,
    2631        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2632        0,     0,   679,     0,     0,     0,     0,     0,     0,    46,
    2633       47,     2,   208,     4,     5,     6,     7,     8,     9,    10,
    2634       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2635       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2636        0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
     2853       0,     0,    34,     0,    35,     0,    36,     0,     0,   208,
     2854      39,   467,     2,   207,     4,     5,     6,     7,     8,     9,
     2855      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2856      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2857      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    26372858       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26382859       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2639        0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
    2640        0,   209,    39,     0,     0,     0,     0,     0,     0,     0,
    2641        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2642        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
    2643        0,     0,     0,     0,     0,     0,     0,     0,   272,     0,
    2644        0,     0,     0,     0,     0,    46,    47,     2,   208,     4,
    2645        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2646       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2647       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2648        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2649        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2650        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2651       34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
    2652        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2653        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2654        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2655        0,     0,     0,     0,   679,     0,     0,     0,     0,     0,
    2656        0,    46,    47,     2,   208,     4,     5,     6,     7,     8,
    2657        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2658       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2659       27,    28,     0,     0,     0,     0,     0,     0,    31,     0,
    2660        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2661        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2662        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2663       36,     0,     0,    38,    39,     0,     0,     0,     0,     0,
    2664        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2665        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2666        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2667      593,     0,     0,     0,     0,     0,     0,    46,    47,     2,
    2668      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2669       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2670       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2671        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    2672        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2673        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2674        0,     0,    34,     0,    35,     0,    36,     0,     0,   209,
    2675       39,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2676       17,    18,    19,    20,    21,    22,    23,    24,    25,    43,
    2677        0,    26,    27,    28,     0,     0,     0,     0,   284,   285,
    2678       31,   286,     0,     0,     0,     0,   210,     0,     0,     0,
    2679        0,     0,     0,    46,    47,     0,     0,     0,     0,     0,
    2680        0,     0,     0,     0,     0,     0,     0,   287,    34,     0,
    2681        0,     0,     0,   288,     0,    38,    39,   289,     0,     0,
    2682      290,   291,   292,   293,    41,    42,     0,   294,   295,     0,
    2683        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
    2684        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2685      296,     0,   518,     0,     0,   173,     0,     0,     0,    46,
    2686       47,   298,   299,   300,   301,     8,     9,    10,    11,    12,
    2687       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2688       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2689        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
    2690        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2691        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2692        0,   287,    34,     0,     0,     0,     0,   641,     0,    38,
    2693       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2694        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2695        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2696        0,     0,     0,     0,   296,   -35,   742,     0,     0,     0,
    2697        0,     0,     0,    46,    47,   298,   299,   300,   301,     8,
    2698        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2699       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2700       27,    28,     0,     0,     0,     0,   284,   285,    31,   286,
    2701        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2702        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2703        0,     0,     0,     0,     0,   287,    34,     0,     0,     0,
    2704        0,   288,     0,    38,    39,   289,     0,     0,   290,   291,
    2705      292,   293,    41,    42,     0,   294,   295,     0,     0,     0,
    2706        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2707        0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
    2708      297,     0,     0,     0,     0,     0,     0,    46,    47,   298,
    2709      299,   300,   301,     8,     9,    10,    11,    12,    13,    14,
    2710       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2711       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2712      284,   285,    31,   286,     0,     0,     0,     0,     0,     0,
    2713        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2714        0,     0,     0,     0,     0,     0,     0,     0,     0,   287,
    2715       34,     0,     0,     0,     0,   288,     0,    38,    39,   289,
    2716        0,     0,   290,   291,   292,   293,    41,    42,     0,   294,
    2717      295,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2718        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2719        0,     0,   296,     0,   159,     0,     0,     0,     0,     0,
    2720        0,    46,    47,   298,   299,   300,   301,     8,     9,    10,
    2721       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2722       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2723        0,     0,     0,     0,   284,   285,    31,   286,     0,     0,
    2724        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2725        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2726        0,     0,     0,   287,    34,     0,     0,     0,     0,   288,
    2727        0,    38,    39,   289,     0,     0,   290,   291,   292,   293,
    2728       41,    42,     0,   294,   295,     0,     0,     0,     0,     0,
    2729        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
    2730        0,     0,     0,     0,     0,     0,   296,     0,   593,     0,
    2731        0,     0,     0,     0,     0,    46,    47,   298,   299,   300,
    2732      301,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2733       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2734        0,    26,    27,    28,     0,     0,     0,     0,   284,   285,
    2735       31,   286,     0,     0,     0,     0,     0,     0,     0,     0,
    2736        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2737        0,     0,     0,     0,     0,     0,     0,   287,    34,     0,
    2738        0,     0,     0,   288,     0,    38,    39,   289,     0,     0,
    2739      290,   291,   292,   293,    41,    42,     0,   294,   295,     0,
    2740        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
    2741        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2742      296,     0,   380,     0,     0,     0,     0,     0,     0,    46,
    2743       47,   298,   299,   300,   301,   468,     2,   208,     4,     5,
    2744        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2745       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2746        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2747        0,    31,     0,     0,     0,     8,     9,    10,    11,    12,
    2748       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2749       23,    24,    25,     0,     0,    26,    27,    28,     0,    34,
    2750        0,    35,     0,    36,    31,     0,    38,    39,     0,     0,
    2751        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2752       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2753       25,     0,    34,    26,    27,    28,     0,    37,     0,    38,
    2754       39,    40,    31,     0,     0,     0,    -3,     0,    41,    42,
    2755        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
    2756        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2757       34,     0,     0,     0,    44,    37,   159,    38,    39,    40,
    2758        0,     0,     0,    46,    47,     0,    41,    42,     0,     0,
    2759        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2760        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2761        0,     0,    44,     0,    45,     0,     0,     0,     0,     0,
    2762        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2763       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2764       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2765        0,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2766       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2767       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2768       34,     0,    31,     0,     0,    37,     0,   209,    39,    40,
    2769        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2770        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2771       34,     0,     0,     0,     0,    37,     0,   337,   338,    40,
    2772        0,     0,    44,     0,   272,     0,    41,    42,     0,     0,
    2773        0,    46,    47,     0,     0,     0,     0,    43,     0,     0,
    2774        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2775        0,     0,   635,     0,   339,     0,     0,     0,     0,     0,
    2776        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2777       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2778       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2779        0,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2780       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2781       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2782       34,     0,    31,     0,     0,    37,     0,   337,   338,    40,
    2783        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2784        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2785       34,     0,     0,     0,     0,   112,     0,    38,    39,     0,
    2786        0,     0,     0,     0,   339,     0,    41,    42,     0,     0,
    2787        0,    46,    47,     0,     0,     0,     0,    43,     0,     0,
    2788        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2789        0,     0,     0,     0,    45,     0,     0,     0,     0,     0,
    2790        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2791       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2792       25,  -295,     0,    26,    27,    28,     0,     0,     0,     0,
    2793        0,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2794       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2795       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2796       34,     0,    31,   686,     0,     0,     0,    38,    39,     0,
    2797        0,  -295,     0,     0,     0,     0,     0,     0,     0,     0,
    2798        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2799       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2800        0,     0,   635,     0,   339,     0,     0,     0,     0,     0,
    2801        0,    46,    47,     0,     0,     0,     0,    43,     0,     0,
    2802        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2803        0,     0,     0,     0,   687,     0,     0,     0,   688,     0,
    2804        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2805       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2806       25,  -295,     0,    26,    27,    28,     0,     0,     0,     0,
    2807        0,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2808       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2809       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2810       34,     0,    31,   686,     0,     0,     0,    38,    39,     0,
    2811        0,  -295,     0,     0,     0,     0,     0,     0,     0,     0,
    2812        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2813       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2814        0,     0,     0,     0,   339,     0,     0,     0,     0,     0,
    2815        0,    46,    47,     0,     0,     0,     0,    43,     0,     0,
    2816        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2817        0,     0,     0,     0,   687,     0,     0,     0,  1101,     0,
    2818        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2819       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2820       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2821        0,     0,    31,   686,     8,     9,    10,    11,    12,    13,
    2822       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2823       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2824       34,     0,     0,    31,     0,     0,     0,    38,    39,     0,
    2825        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2826        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2827        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2828        0,     0,     0,     0,   687,     0,     0,     0,  1233,     0,
    2829        0,    46,    47,     0,     0,     0,     0,     0,    43,     0,
    2830        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2831        0,     0,     0,   635,     0,   339,     0,     0,     0,     0,
    2832        0,     0,    46,    47,     8,     9,    10,    11,    12,    13,
    2833       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2834       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2835        0,     0,     0,    31,     8,     9,    10,    11,    12,    13,
    2836       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2837       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2838        0,    34,     0,    31,     0,     0,     0,     0,    38,    39,
    2839        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2840        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2841        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2842        0,     0,     0,     0,     0,   259,     0,     0,     0,     0,
    2843        0,     0,    46,    47,     0,     0,     0,     0,    43,     0,
    2844        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2845        0,     0,     0,     0,     0,   159,     0,     0,     0,     0,
    2846        0,     0,    46,    47,     8,     9,    10,    11,    12,    13,
    2847       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2848       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2849        0,     0,     0,    31,     8,     9,    10,    11,    12,    13,
    2850       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2851       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2852        0,    34,     0,    31,     0,     0,     0,     0,   209,    39,
    2853        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2854        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2855        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2856        0,     0,     0,     0,     0,   272,     0,     0,     0,     0,
    2857        0,     0,    46,    47,     0,     0,     0,     0,    43,     0,
    2858        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2859        0,     0,     0,     0,     0,   339,     0,     0,     0,     0,
    2860        0,     0,    46,    47,     8,     9,    10,    11,    12,    13,
    2861       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2862       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2863        0,     0,     0,    31,     8,     9,    10,    11,    12,    13,
    2864       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2865       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2866        0,    34,     0,    31,     0,     0,     0,     0,    38,    39,
    2867        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2868        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2869        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2870        0,     0,     0,     0,     0,   687,     0,     0,     0,     0,
    2871        0,     0,    46,    47,     0,     0,     0,     0,    43,     0,
    2872        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2873        0,     0,     0,     0,     0,   593,     0,     0,     0,     0,
    2874        0,     0,    46,    47,     8,     9,    10,    11,    12,    13,
    2875       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2876       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2877        0,     0,     0,    31,     8,     9,    10,    11,    12,    13,
    2878       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2879       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2880        0,    34,     0,    31,     0,     0,     0,     0,    38,    39,
    2881        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2882        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2883        0,    34,     0,     0,     0,     0,     0,     0,   209,    39,
    2884        0,     0,     0,     0,     0,    45,     0,     0,     0,     0,
    2885        0,     0,    46,    47,     0,     0,     0,     0,    43,     0,
    2886        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2887        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2888        0,     0,    46,    47,     2,   208,     4,     5,     6,     7,
     2860       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
     2861       0,     0,    38,    39,     2,   207,     4,     5,     6,     7,
    28892862       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    28902863      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    28912864      26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2892        0,   284,   285,     0,   286,  1051,     0,  1052,     0,     0,
    2893     1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,     0,     0,
    2894     1549,  1061,     0,     0,     0,  1062,  1063,    34,    33,    35,
    2895      287,    36,     0,     0,    38,    39,  1064,     0,     0,     0,
    2896      289,     0,     0,   290,   291,   292,   293,    41,    42,     0,
    2897      294,   295,     0,     0,     0,     0,     0,     0,    43,     0,
     2865       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2866      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2867       0,    26,    27,    28,   485,   486,   487,    34,     0,    35,
     2868      31,    36,     0,     0,   208,    39,     0,     0,     0,     0,
    28982869       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2899     -416,     0,     0,   296,     0,   380,     0,     0,   173,     0,
    2900        0,     0,    46,    47,   298,   299,   300,   301,     0,     0,
    2901        0,     0,  1066,     0,   284,   285,  -130,   286,  1051,     0,
    2902     1052,     0,     0,  1053,  1054,  1055,  1056,  1057,  1058,  1059,
    2903     1060,     0,     0,     0,  1061,     0,     0,     0,  1062,  1063,
    2904        0,    33,     0,   287,     0,     0,     0,     0,     0,  1064,
    2905        0,     0,     0,   289,     0,     0,   290,   291,   292,   293,
    2906       41,    42,     0,   294,   295,     0,     0,     0,     0,     0,
    2907        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
    2908        0,     0,     0,     0,     0,     0,   296,     0,   380,     0,
    2909        0,   173,     0,     0,     0,    46,    47,   298,   299,   300,
    2910      301,     0,     0,     0,     0,  1066,     0,     0,     0,  -130,
    2911        2,   208,     4,     5,     6,     7,     8,     9,    10,    11,
    2912       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2913       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2914        0,     0,     0,     0,     0,    31,     0,   284,   285,     0,
    2915      286,  1051,     0,  1052,  1419,  1420,  1053,  1054,  1055,  1056,
    2916     1057,  1058,  1059,  1060,     0,     0,  1549,  1061,     0,     0,
    2917        0,  1062,  1063,    34,    33,    35,   287,    36,     0,     0,
    2918       38,    39,  1064,     0,     0,     0,   289,     0,     0,   290,
    2919      291,   292,   293,    41,    42,     0,   294,   295,     0,     0,
    2920        0,     0,  1327,     0,    43,     0,     0,     0,     0,     0,
    2921        0,     0,     0,     0,     0,     0,     0,     0,     0,   296,
    2922        0,   380,     0,     0,   173,     0,     0,     0,    46,    47,
    2923      298,   299,   300,   301,     0,     0,   284,   285,  1066,   286,
    2924     1051,     0,  1052,  1419,  1420,  1053,  1054,  1055,  1056,  1057,
    2925     1058,  1059,  1060,     0,     0,     0,  1061,     0,     0,     0,
    2926     1062,  1063,     0,    33,     0,   287,     0,     0,     0,     0,
    2927        0,  1064,     0,     0,     0,   289,     0,     0,   290,   291,
    2928      292,   293,    41,    42,     0,   294,   295,     0,     0,     0,
    2929        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2930        0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
    2931      380,     0,     0,   173,     0,     0,     0,    46,    47,   298,
    2932      299,   300,   301,     0,     0,   284,   285,  1066,   286,  1051,
    2933        0,  1052,     0,     0,  1053,  1054,  1055,  1056,  1057,  1058,
    2934     1059,  1060,     0,     0,     0,  1061,     0,     0,     0,  1062,
    2935     1063,     0,    33,     0,   287,     0,     0,     0,     0,     0,
    2936     1064,     0,     0,     0,   289,     0,     0,   290,   291,   292,
    2937      293,    41,    42,     0,   294,   295,     0,     0,     0,     0,
    2938        0,     0,    43,   284,   285,     0,   286,     0,     0,     0,
    2939        0,     0,     0,     0,     0,     0,     0,   296,     0,   380,
    2940        0,     0,   173,     0,     0,     0,    46,    47,   298,   299,
    2941      300,   301,   287,     0,     0,     0,  1066,     0,   641,     0,
    2942      141,   142,   289,     0,     0,   290,   642,   292,   293,    41,
    2943       42,     0,   294,   295,     0,     0,     0,     0,     0,     0,
    2944       43,   284,   285,     0,   286,     0,     0,     0,     0,     0,
    2945        0,     0,     0,     0,     0,   296,     0,   643,     0,   644,
    2946      381,     0,     0,     0,    46,    47,   298,   299,   300,   301,
    2947      287,     0,     0,     0,     0,     0,   288,     0,     0,     0,
    2948      289,     0,     0,   290,   291,   292,   293,    41,    42,     0,
    2949      294,   295,     0,     0,     0,     0,     0,     0,    43,   284,
    2950      285,     0,   286,     0,     0,     0,     0,     0,     0,     0,
    2951        0,     0,     0,   296,     0,   380,     0,     0,   284,   285,
    2952        0,   286,   710,    47,   298,   299,   300,   301,   287,     0,
    2953        0,     0,     0,     0,   641,     0,     0,     0,   289,     0,
    2954        0,   290,   291,   292,   293,    41,    42,   287,   294,   295,
    2955        0,     0,     0,   288,     0,     0,    43,   289,     0,     0,
    2956      290,   291,   292,   293,    41,    42,     0,   294,   295,     0,
    2957        0,   296,     0,   765,     0,    43,   284,   285,     0,   286,
    2958       46,    47,   298,   299,   300,   301,     0,     0,     0,     0,
    2959      296,     0,   380,     0,     0,   284,   285,     0,   286,   345,
    2960       47,   298,   299,   300,   301,   287,     0,     0,     0,     0,
    2961        0,   288,     0,     0,     0,   289,     0,     0,   290,   291,
    2962      292,   293,    41,    42,   287,   294,   295,     0,     0,     0,
    2963      288,     0,     0,    43,   289,     0,     0,   290,   291,   292,
    2964      293,    41,    42,     0,   294,   295,     0,     0,   512,     0,
    2965        0,     0,    43,     0,     0,     0,     0,    46,    47,   298,
    2966      299,   300,   301,     0,     0,     0,     0,   515,     0,     0,
    2967        0,     0,     0,     0,     0,     0,    46,    47,   298,   299,
    2968      300,   301,     2,   208,     4,     5,     6,     7,     8,     9,
    2969       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2970       20,    21,    22,    23,    24,    25,     0,     0,     0,     0,
    2971        0,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    2972        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2973        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2974        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2975       37,     0,   176,   177,    40,     0,     0,     0,     0,     0,
    2976        0,    41,    42,   207,     2,   208,     4,     5,     6,     7,
    2977        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2978       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2979       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2980        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2981        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2982        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2983        0,    36,     0,     0,   209,    39,   468,     2,   208,     4,
    2984        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2985       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2986       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2987        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2988        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2989        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2990       34,     0,    35,     0,    36,     0,     0,    38,    39,     2,
    2991      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2992       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2993       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2994        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    2995        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2996        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2997        0,     0,    34,     0,    35,     0,    36,     0,     0,   209,
    2998       39
     2870       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2871       0,     0,     0,     0,     0,    38,    39
    29992872};
    30002873
    30012874#define yypact_value_is_default(yystate) \
    3002   ((yystate) == (-1414))
     2875  ((yystate) == (-1310))
    30032876
    30042877#define yytable_value_is_error(yytable_value) \
     
    30072880static const yytype_int16 yycheck[] =
    30082881{
    3009        0,     1,    44,   187,   187,   535,   187,     0,    44,   753,
    3010      187,    44,   206,   241,   648,   187,   522,   753,   188,   881,
    3011        1,   753,   107,   221,   118,   187,   187,   514,   621,   170,
    3012      171,   350,    32,     0,   986,   760,     0,   189,   603,    32,
    3013      350,   601,   601,   493,    44,   188,   281,   497,    44,   993,
    3014       50,    39,  1337,   604,    44,  1419,   603,    50,    44,   610,
    3015      601,   572,    51,    32,    64,    32,    72,    67,    32,    82,
    3016       70,    64,   157,   601,    67,    95,  1050,    70,    39,   346,
    3017      419,    44,    45,   267,   267,  1031,   267,   694,   601,    70,
    3018      267,    63,   107,   601,    50,   267,   296,   110,   268,  1043,
    3019      439,  1062,  1063,   601,   117,   267,   267,   107,   447,   203,
    3020      130,   263,   264,  1526,    39,   115,   131,    82,   118,   119,
    3021      109,   109,    67,   111,    39,   268,   132,    64,   483,  1493,
    3022       72,  1030,  1031,  1546,    39,    44,    45,    39,   365,    84,
    3023     1553,   735,   369,   636,   637,   187,   427,   428,   148,   149,
    3024      111,   187,   115,   881,   187,  1440,   149,   157,   158,   115,
    3025      132,   654,   162,   635,   636,   637,     0,   258,   912,   162,
    3026      489,    28,   109,    39,   119,    82,   912,     0,     1,  1140,
    3027      912,   112,   654,   689,   109,   116,   111,   187,   188,    72,
    3028      132,   187,   148,   110,   109,   188,   111,   187,    32,   116,
    3029        0,   187,    82,   203,   109,   114,   111,   720,    82,    32,
    3030      117,   211,   720,   411,   495,    96,   483,   162,   211,   712,
    3031       82,    78,   720,   223,     0,   267,    58,   427,   428,   109,
    3032      223,   267,    32,   514,   267,   118,   110,   407,   115,   116,
    3033      712,   241,   123,   109,    67,   111,    85,    70,   109,   111,
    3034      111,   109,    67,   253,   131,   211,    32,   342,   818,   818,
    3035      253,   261,   109,  1423,   407,   830,   266,   267,   268,   820,
    3036        1,   996,   283,   273,   113,   268,   108,   818,   223,   111,
    3037      635,   636,   637,   830,   253,   241,   253,   372,   799,   253,
    3038      818,    67,  1238,   603,     0,     1,   296,   931,   579,   654,
    3039      907,    11,  1254,   397,   119,   818,     1,   507,   308,   116,
    3040      818,   481,   512,   109,   807,   515,   261,   273,   491,    50,
    3041      818,   266,  1050,  1475,   324,   132,    32,   109,   419,   329,
    3042     1304,   425,    44,    45,   230,   807,   329,   431,   481,   112,
    3043       80,   112,   342,   116,   683,  1291,   346,   162,   439,   131,
    3044      350,   351,   308,   249,   621,    82,   447,   712,  1510,   626,
    3045     1512,  1521,  1224,   590,    70,   365,  1526,   116,   568,   369,
    3046      697,   111,   372,   113,    96,   940,   107,   117,   110,   939,
    3047      939,   110,   109,   132,   115,   117,  1546,   116,   220,   110,
    3048      346,  1290,  1291,  1553,   749,  1526,   117,   397,   939,   131,
    3049      223,   123,   114,    90,    91,   632,   351,   407,   223,    10,
    3050       11,    12,    13,    14,   407,   114,  1009,   148,   116,   253,
    3051       94,     0,  1553,    80,   258,   425,   157,   427,   428,  1125,
    3052      253,   431,   605,  1129,   434,   109,   609,   111,    39,   126,
    3053      127,   526,   274,   116,   118,   119,   261,   223,   129,   281,
    3054      131,   266,   807,   253,   111,   455,   113,   630,   258,   132,
    3055      117,   634,   116,  1407,  1408,  1059,    67,  1018,  1019,  1415,
    3056      976,   427,   428,   473,     3,   112,   207,   253,   132,   116,
    3057      211,   481,   749,   483,   116,   485,   697,   432,   481,   489,
    3058     1464,    72,   485,     0,   505,   495,  1224,  1471,   948,   734,
    3059      132,   116,    83,    84,   991,  1139,   658,   507,   649,   509,
    3060      241,   830,   512,     3,   514,   515,  1415,   349,   485,   689,
    3061      830,   485,   522,     0,   116,    32,   526,   527,   110,   474,
    3062      111,   109,   116,   111,   366,   117,   351,    44,   370,   495,
    3063      132,    72,   273,    50,  1109,   276,   689,   253,   132,    94,
    3064     1524,   112,    83,    84,   116,   116,   911,    64,   514,   254,
    3065       67,  1496,   656,    70,   109,   296,   111,  1502,   116,   109,
    3066      132,   571,   572,   118,   119,   351,  1304,   308,   131,   579,
    3067      111,   792,   809,    94,   132,   419,   913,   814,  1523,  1095,
    3068      590,   591,   683,  1528,  1100,   595,   116,   917,   109,   919,
    3069      111,   601,   110,   603,   116,   439,   116,   118,   119,   110,
    3070      110,   342,   132,   447,   116,   346,   116,   432,   709,   419,
    3071      132,   621,   132,   579,   116,   944,   626,   591,   628,   112,
    3072      132,   958,   632,   116,   365,   635,   636,   637,   369,   439,
    3073      132,   372,   149,   109,   911,   111,   110,   447,   112,   483,
    3074      595,   485,   116,   109,   654,   162,   656,   668,   869,   474,
    3075      110,    72,   485,   748,   109,   621,   116,   131,   132,   867,
    3076      626,   110,    83,    84,    50,  1030,   903,   116,   623,   852,
    3077      187,   188,    72,   628,   109,   485,   686,   109,   110,   689,
    3078      888,   120,   121,    83,    84,   110,   427,   428,   474,    71,
    3079      111,   116,   913,    75,   211,   109,    78,   111,    80,   485,
    3080     1304,   118,   712,   713,   714,    87,   223,   124,   125,   109,
    3081      720,   721,   950,   109,   455,   111,   109,   738,   912,   912,
    3082      109,   912,   873,    88,    89,   912,  1464,   468,   109,   115,
    3083      912,   110,  1009,  1471,   914,   110,   253,   958,   748,   749,
    3084      912,   912,   110,   753,   754,   700,    72,   110,    74,    75,
    3085      267,   112,   493,    72,   495,   109,   497,    83,    84,   714,
    3086      109,   914,   945,   468,    83,    84,   507,    72,   509,   485,
    3087      595,   512,   115,   514,   515,   996,  1530,  1381,    83,    84,
    3088      622,  1321,   115,   116,  1530,   526,  1524,   110,  1530,   799,
    3089     1127,   109,   111,   116,  1159,   132,   638,   807,   623,   809,
    3090      110,   811,    64,   628,   814,   815,   116,   110,   818,   514,
    3091      109,   653,   329,   116,   507,   910,   509,   110,  1022,   512,
    3092      830,   109,   515,   116,   529,   211,  1047,   532,   112,   534,
    3093      535,   132,   214,   350,    85,    86,    87,   623,   579,   683,
    3094       72,   815,    74,    75,   110,   557,   558,   559,   560,   590,
    3095      116,    83,    84,  1190,  1191,   110,   811,   109,   109,   111,
    3096      111,   116,   113,   114,  1468,   709,  1470,   114,   110,   114,
    3097      110,   881,   132,   683,   116,   700,   116,   110,   583,   111,
    3098      621,   109,  1159,   116,   109,   626,   111,   273,   132,   714,
    3099      407,   632,   734,   903,  1045,   465,   109,  1134,   111,   709,
    3100      910,   911,   912,   110,   914,   749,  1127,   881,   114,   116,
    3101      296,   110,   110,   110,   700,  1095,   926,   116,   116,   116,
    3102     1100,  1525,   308,    82,   109,  1290,   111,   109,   714,   939,
    3103      940,    85,    86,    87,   944,   109,   110,   111,   109,   949,
    3104      950,    82,  1095,    92,    93,   686,   112,  1100,     0,     1,
    3105      655,   119,   657,   116,   117,   109,   966,   111,   949,   113,
    3106      114,  1238,   129,    72,   110,   111,   976,    76,   485,  1190,
    3107     1191,   353,   489,   355,    83,    84,   128,    29,    30,   465,
    3108       32,    58,    59,   724,   950,    94,   811,   115,   116,  1505,
    3109      116,   117,    44,  1203,  1204,    94,  1206,   131,    50,  1009,
    3110      109,   111,   707,  1213,   109,  1215,    58,   748,   109,   118,
    3111      119,   114,    64,  1117,   112,    67,   116,   117,    70,   112,
    3112     1030,  1031,   109,   110,   111,   811,     4,     5,     6,     7,
    3113        8,     9,    84,    85,   109,   110,   111,   881,   112,  1555,
    3114     1050,    44,    45,  1009,   109,   110,   111,   110,   881,    10,
    3115       11,    12,    13,    14,   553,   554,   108,  1012,   109,   111,
    3116       30,   443,   110,   110,  1401,   110,   118,   911,   809,   455,
    3117      110,   881,   110,   814,   555,   556,  1050,   112,    39,   111,
    3118     1090,   131,  1419,   116,   601,  1095,   603,    58,    59,    60,
    3119     1100,    69,   114,    71,   114,   881,   109,   149,   112,  1109,
    3120      561,   562,   672,   110,  1125,   157,    67,  1117,  1129,  1130,
    3121      162,  1263,  1264,  1265,    84,    85,   949,   110,   112,   117,
    3122      112,   507,   112,   509,  1134,  1220,   512,   112,   117,   515,
    3123        3,   117,   116,    94,    29,   187,   188,    10,    11,    12,
    3124       13,    14,   110,   110,   116,   114,   112,   112,   109,  1159,
    3125      111,   203,   115,   110,   132,  1492,  1493,   118,   119,   211,
    3126      115,   115,   903,   109,   116,   881,    39,  1377,   220,   910,
    3127      110,   223,   689,   132,   110,   110,   117,   110,   230,   110,
    3128     1401,   110,   116,   110,   110,   926,   672,  1012,   110,   110,
    3129      110,  1201,  1202,   245,    67,   110,   110,   249,  1419,   110,
    3130      110,   253,   254,   720,   721,   110,  1050,   948,   949,   950,
    3131     1220,  1202,   110,   110,  1224,   267,   268,  1050,   110,    72,
    3132       29,   115,   274,    76,   131,   795,  1012,  1248,  1238,   281,
    3133       83,    84,  1242,   949,   117,   805,    72,   116,    74,    75,
    3134     1050,    94,    72,   110,    74,    75,  1201,    83,    84,   819,
    3135     1224,  1242,   112,    83,    84,   112,   109,   116,   111,   964,
    3136      110,   110,   110,   117,  1050,   118,   119,   112,  1009,   116,
    3137      114,  1492,  1493,   109,   116,   245,   110,   329,   114,   109,
    3138     1290,  1291,   110,   988,   114,   110,   991,   110,   993,  1299,
    3139      112,   110,   116,  1397,  1304,   116,     3,   349,   350,   110,
    3140      686,   818,  1540,    10,    11,    12,    13,    14,   112,   795,
    3141      109,   109,   109,   830,   366,  1159,   109,  1338,   370,   805,
    3142      109,  1342,   117,   115,   112,   132,   110,  1337,   110,   381,
    3143     1304,   110,    39,   819,  1050,   115,  1530,  1530,  1043,  1530,
    3144      115,   114,   129,  1530,  1299,   397,  1337,   112,  1530,  1090,
    3145      110,  1531,   116,   112,   132,   407,   112,   110,  1530,  1530,
    3146       67,     4,     5,     6,     7,     8,     9,   116,  1201,  1202,
    3147      110,   110,    47,   425,   112,  1555,  1201,   112,  1531,   431,
    3148     1224,   433,   112,   110,   112,   132,   112,  1397,   112,   132,
    3149       33,  1224,   115,  1134,  1238,   912,    72,   914,    74,    75,
    3150       76,  1505,  1555,   132,   110,  1415,   115,    83,    84,  1242,
    3151      132,   381,   132,   117,  1224,  1201,   468,   110,   112,   115,
    3152      112,   473,   112,  1444,   112,    56,    69,   944,    71,   481,
    3153     1440,   112,   112,   485,   112,   112,   110,   489,  1224,   110,
    3154      492,   109,   494,   881,    72,   112,    74,    75,    76,  1440,
    3155      112,   109,   109,    60,  1464,    83,    84,  1027,  1028,   110,
    3156     1304,  1471,   514,  1473,   110,  1475,  1299,   114,    99,   132,
    3157      112,  1304,   117,   112,  1299,   110,   112,   529,  1530,  1220,
    3158      532,   109,   534,   535,  1530,   110,  1202,  1530,    96,   109,
    3159     1464,    96,   109,   115,  1304,  1505,   112,  1471,   132,   110,
    3160     1510,  1242,  1512,   116,  1337,    42,   110,   110,  1224,   110,
    3161      110,   117,   110,  1299,  1524,  1085,  1086,   132,  1304,    96,
    3162     1530,  1531,   492,   132,   494,     3,  1242,    96,  1531,   110,
    3163     1540,   583,    10,    11,    12,    13,    14,   132,   590,   132,
    3164      926,  1027,  1028,   117,    72,  1555,   110,     0,    76,   601,
    3165     1524,   603,  1555,   286,  1396,    83,    84,   132,  1263,  1264,
    3166     1265,    39,   110,   110,   195,   115,    94,   112,   112,   132,
    3167      622,   109,   132,   115,  1540,   308,   309,   110,  1095,    32,
    3168      115,   109,    72,  1100,    74,    75,   638,   218,  1304,    67,
    3169      118,   119,   644,    83,    84,   110,  1337,   228,   132,  1085,
    3170     1086,   653,   110,   655,   656,   657,   110,  1440,  1066,   565,
    3171      563,  1224,  1493,   346,   564,  1053,  1321,    70,   566,  1383,
    3172     1464,  1337,   567,  1565,   114,  1314,  1130,  1471,  1342,  1081,
    3173     1471,  1464,   686,   686,   919,  1100,   927,   689,  1471,   699,
    3174      583,   693,   980,   695,   873,   650,   724,   699,   946,   382,
    3175       50,   734,  1242,   485,  1464,   707,    -1,    26,    27,    28,
    3176       -1,  1471,   571,   571,    64,   296,  1236,    67,   720,   721,
    3177       70,   571,    -1,    -1,   644,    -1,    -1,    -1,  1464,    -1,
    3178     1524,    -1,   734,    -1,    -1,  1471,    72,    -1,    74,    75,
    3179       76,  1524,    -1,    58,    -1,     0,     1,    83,    84,  1440,
    3180       -1,  1271,  1407,  1408,  1090,   158,    -1,    -1,    -1,  1279,
    3181     1280,  1281,    -1,    -1,  1524,     4,     5,     6,     7,     8,
    3182        9,    -1,    -1,   693,  1440,   695,    -1,    32,    -1,   699,
    3183       -1,   100,  1473,   102,  1475,    -1,    -1,    -1,  1524,    -1,
    3184     1445,    -1,    -1,   108,    -1,    50,   111,    -1,  1464,   149,
    3185     1236,    67,    -1,    -1,    -1,  1471,   191,    -1,    -1,    -1,
    3186       -1,    77,   162,   198,    -1,    70,   818,    -1,    -1,  1510,
    3187       -1,  1512,    -1,    -1,    -1,  1345,    -1,    -1,   830,   232,
    3188       69,    -1,    71,    -1,    -1,  1271,  1224,    -1,   188,    -1,
    3189       -1,    -1,   157,  1279,  1280,  1281,    -1,    -1,    -1,  1540,
    3190      253,  1506,   107,   119,    -1,   258,    -1,    -1,  1524,    -1,
    3191     1515,   211,    -1,   444,   183,    -1,    -1,   550,   551,   552,
    3192       -1,   873,    -1,   223,   193,   194,    -1,    -1,   880,   198,
    3193       -1,   200,   201,    -1,    -1,   270,    -1,    -1,    72,   470,
    3194       74,    75,    76,    -1,   149,    -1,   162,    -1,    -1,    83,
    3195       84,   903,   157,   158,    -1,   220,    -1,    -1,    -1,  1345,
    3196      912,    -1,   914,    -1,    -1,    -1,    -1,    -1,    72,   921,
    3197       74,    75,    76,    -1,    -1,   109,   507,    -1,    -1,    83,
    3198       84,   512,  1320,   188,   515,    -1,    -1,    -1,    -1,   324,
    3199       94,    -1,   944,    -1,    -1,    -1,    -1,   332,   203,   352,
    3200      335,   206,   207,   873,    -1,   109,   211,   223,    -1,   274,
    3201      880,    -1,   964,    -1,   118,   119,   281,    -1,    -1,    -1,
    3202       -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,   980,   329,
    3203       -1,   236,    -1,   238,    -1,    -1,   988,  1375,    -1,   991,
    3204     1378,   993,   247,    -1,    -1,   261,    -1,    -1,   253,    -1,
    3205      266,   921,    -1,   258,    -1,    -1,    -1,    -1,   672,    -1,
    3206       -1,    -1,    -1,   268,   399,   281,   419,    -1,   403,    -1,
    3207       -1,   276,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    3208       -1,   434,    -1,    -1,   349,  1423,   439,    -1,    -1,    -1,
    3209     1428,  1043,    -1,    -1,   447,    10,    11,    12,    13,    14,
    3210       -1,   366,    -1,    39,    -1,   370,    -1,   407,    -1,    -1,
    3211      980,    -1,   465,  1530,    -1,    -1,    -1,    -1,    -1,    -1,
    3212     1458,    -1,    -1,    -1,    39,    -1,    -1,   760,    -1,  1081,
    3213      483,    67,   485,    -1,    -1,   351,    -1,   342,    -1,    -1,
    3214      671,   346,    -1,  1095,    -1,   480,    -1,   352,  1100,   680,
    3215       -1,    -1,    67,   684,    -1,    -1,    -1,    -1,    94,    -1,
    3216      365,    -1,    -1,    -1,   369,  1117,    -1,   372,   433,    -1,
    3217       -1,    -1,    -1,   109,   527,   111,    -1,    -1,    -1,    94,
    3218       -1,   795,   118,   119,    -1,    -1,    -1,  1473,    -1,  1475,
    3219       -1,   805,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3220       -1,    -1,    -1,   118,   119,   819,  1544,    -1,    -1,    -1,
    3221       -1,  1081,  1550,    -1,   419,    -1,   432,    -1,    -1,    -1,
    3222       -1,    -1,    -1,  1561,  1510,    -1,  1512,  1565,    72,   434,
    3223       74,    75,    76,   449,   439,    -1,   571,   572,   591,    83,
    3224       84,    -1,   447,    -1,    72,  1197,    74,    75,    76,    -1,
    3225       94,    -1,    -1,     0,    -1,    83,    84,    -1,   474,    -1,
    3226      465,    -1,    -1,   468,    -1,   109,    94,   111,  1220,    -1,
    3227       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   483,    -1,
    3228      485,   109,   635,   636,   637,    32,    -1,    -1,   493,    -1,
    3229      118,   119,   497,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3230       -1,   654,    -1,    -1,    -1,    -1,   575,   576,    -1,    -1,
    3231       -1,  1263,  1264,  1265,    -1,    -1,    -1,    -1,    -1,   672,
    3232       -1,   526,   527,    70,   659,   590,    -1,  1197,   663,    -1,
    3233      683,    -1,    -1,    -1,    -1,   604,    -1,    -1,   607,   608,
    3234       -1,   610,    -1,   612,   613,    -1,    -1,    -1,   617,   618,
    3235       -1,    -1,    -1,    -1,    -1,    -1,   709,   622,    -1,   712,
    3236       -1,    -1,    -1,    -1,    -1,    -1,    -1,   572,     0,  1321,
    3237       -1,    -1,    -1,   638,   905,    -1,  1009,    -1,    -1,   595,
    3238       -1,    -1,    -1,    -1,    -1,   590,   591,    -1,   653,    -1,
    3239       -1,    -1,    -1,     0,     1,    -1,   749,    -1,   603,    -1,
    3240       32,    -1,    -1,    -1,    -1,    -1,    -1,   623,    -1,    -1,
    3241       -1,   158,   628,  1027,  1028,    -1,   621,  1050,    -1,    -1,
    3242       -1,   626,    -1,    -1,    -1,    32,    -1,   632,    -1,    -1,
    3243      635,   636,   637,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3244       -1,    -1,   795,    -1,  1396,  1397,    -1,    -1,    -1,   654,
    3245       -1,    -1,   805,    -1,   807,  1407,  1408,    -1,    -1,   812,
    3246       67,    -1,   815,    70,   799,    -1,   819,   672,    -1,   734,
    3247       -1,  1085,  1086,    -1,    -1,    -1,    -1,    -1,   683,    -1,
    3248       -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,   758,
    3249      759,    -1,    -1,  1445,    -1,    -1,    -1,    -1,   714,    -1,
    3250       -1,    -1,    -1,    -1,   709,    -1,   253,   712,    -1,    -1,
    3251       -1,   258,    -1,    -1,    -1,    -1,   721,    -1,   734,   724,
    3252       72,    -1,    74,    75,    76,    -1,   158,    -1,   881,    -1,
    3253     1061,    83,    84,    -1,    72,    -1,    74,    75,    76,    -1,
    3254       -1,    -1,    94,   748,   749,    83,    84,    -1,    -1,   754,
    3255       -1,   158,    -1,  1505,  1506,    -1,    94,   109,   911,   111,
    3256       -1,    -1,    -1,  1515,    -1,    -1,   118,   119,    -1,    -1,
    3257       -1,   109,    -1,   111,    -1,    -1,    -1,    -1,  1530,  1531,
    3258      118,   119,    -1,   918,    -1,    -1,    -1,    -1,    -1,    -1,
    3259      795,    -1,    -1,    -1,    -1,   811,    -1,    -1,    -1,    -1,
    3260      805,    -1,   807,  1555,   809,   352,    -1,   812,    -1,   814,
    3261      815,    -1,    -1,   966,   819,    -1,   223,    -1,    -1,    -1,
    3262       -1,   253,    -1,    -1,   829,    -1,   258,    97,    98,    99,
    3263      100,   101,   102,   103,   104,   105,   106,    -1,   903,    -1,
    3264       -1,    -1,    -1,    -1,    -1,    -1,   253,    72,    -1,    74,
    3265       75,    76,    -1,    -1,   923,    -1,    -1,  1271,    83,    84,
    3266       -1,   131,    -1,   998,    -1,  1279,  1280,  1281,    -1,    94,
    3267       -1,    -1,   419,    -1,  1027,  1028,   881,  1030,  1031,    -1,
    3268     1015,    -1,    -1,    -1,   109,    -1,   111,   434,    -1,    -1,
    3269       -1,    -1,   439,   118,   119,    -1,    -1,  1050,   903,    -1,
    3270      447,    -1,    -1,    -1,    -1,   910,   911,    -1,    -1,   914,
    3271       -1,    10,    11,    12,    13,    14,    -1,    -1,   465,    -1,
    3272      352,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3273       -1,  1345,  1085,  1086,    -1,   940,   483,    -1,   485,    -1,
    3274       39,    -1,    -1,   948,   949,    -1,    -1,    -1,    -1,    -1,
    3275       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1093,    -1,
    3276       -1,   966,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3277       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3278      527,    -1,  1313,    -1,    83,    84,    -1,   419,    -1,    -1,
    3279       -1,    -1,    -1,    -1,    -1,    94,  1012,    -1,    -1,    -1,
    3280     1135,    -1,   434,    -1,  1009,    -1,  1159,   439,    -1,    -1,
    3281      109,    -1,   111,    -1,    -1,   447,    -1,  1022,  1087,   118,
    3282      119,    -1,  1027,  1028,    -1,  1030,  1031,   434,    -1,    -1,
    3283       -1,    -1,    -1,   465,    -1,    -1,    -1,    -1,    -1,    -1,
    3284       -1,    -1,    -1,    -1,   591,  1050,    -1,    -1,    -1,  1202,
    3285       -1,   483,    -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,
     2882       0,     1,   240,   205,   186,   186,   117,     0,    43,   534,
     2883      43,    43,   600,   756,   646,     1,   749,   187,   521,     0,
     2884     186,   186,   186,   157,   169,   170,   749,   749,   186,   106,
     2885     220,   602,    32,   186,   345,   349,     0,   188,   280,    32,
     2886     157,   513,   600,    43,   874,    43,   603,   874,   349,    49,
     2887     620,    32,   609,   733,     0,   983,    49,   600,   492,   571,
     2888       0,     1,   496,    63,   602,   187,    66,    32,    32,    69,
     2889      63,   692,    43,    66,    64,     0,    69,  1040,    39,   156,
     2890       1,   600,    57,    69,   266,   266,    32,    43,    51,  1398,
     2891     364,   202,    32,    63,   368,  1321,   418,   267,    82,   600,
     2892     266,   266,   266,  1052,  1053,  1033,   106,    32,   266,   600,
     2893     600,   262,   263,   266,   114,    72,   438,   117,   118,   109,
     2894     282,    72,  1402,    96,   446,    39,    66,   695,    39,    69,
     2895      28,   109,   107,    39,    39,   110,    95,    39,    82,   128,
     2896      39,    66,   131,  1021,    82,   267,   109,   147,   148,   122,
     2897     111,   186,    11,   186,   186,   148,   156,   157,     0,   295,
     2898    1469,   161,   132,  1020,  1021,   109,    44,    45,   161,     0,
     2899     129,   482,   905,   109,   488,   132,     0,     1,    72,  1128,
     2900      78,   132,   905,   905,   687,    49,   186,   187,   186,   109,
     2901      32,   257,   130,  1419,   187,   109,   109,   111,   109,   718,
     2902     111,    32,   202,   109,   109,   111,   111,   109,    32,   111,
     2903     210,   131,    43,  1040,    72,   186,  1496,   210,    49,    82,
     2904     410,  1501,   222,   117,   812,    83,    84,   718,   718,   222,
     2905     186,   266,    63,   266,   266,    66,   406,   115,    69,  1452,
     2906     240,  1521,    85,   986,   219,    69,   112,   110,  1528,    82,
     2907     114,   109,   252,   824,   812,   116,   107,   814,   114,   252,
     2908     260,    44,    45,     3,   341,   265,   266,   267,   490,   812,
     2909     113,   252,   272,  1486,   267,  1488,   257,    82,   111,   900,
     2910     131,   793,   222,   147,   406,   396,   824,   252,   252,    49,
     2911     426,   427,   924,   812,   371,   295,     3,   222,   273,   433,
     2912      96,   602,  1501,   116,   109,   280,   252,   307,     0,   620,
     2913     480,   812,   252,   424,   625,   589,   433,   148,   110,   430,
     2914     112,   812,   812,   323,   116,  1288,   122,   252,   328,  1528,
     2915     161,   114,   253,    44,    45,   328,     0,    82,   906,   131,
     2916     132,   341,   504,   110,   932,   345,   210,  1225,   482,   349,
     2917     350,   109,   418,   111,   114,   186,   187,   631,   480,   681,
     2918     109,   116,   933,   130,   364,   110,    90,    91,   368,  1049,
     2919     506,   371,   438,   348,   932,   511,   240,   132,   514,   210,
     2920     446,  1211,   604,   951,  1211,   130,   608,   426,   427,   932,
     2921     365,   222,   526,    72,   369,   112,   396,  1275,   116,   116,
     2922     285,   125,   126,   114,    83,    84,   406,   629,   272,   526,
     2923     252,   633,   130,   406,  1472,   257,   110,  1274,  1275,    55,
     2924    1478,   252,   307,   308,   424,   350,   426,   427,   252,   999,
     2925     430,   567,   111,   433,   745,   266,   130,   418,   112,   116,
     2926    1498,   110,   116,   307,   111,  1503,   113,   116,   525,  1501,
     2927     210,  1008,  1009,   130,   454,   494,   590,   438,  1386,  1387,
     2928     345,  1288,    98,   130,   967,   446,   635,   636,   131,  1521,
     2929     229,   112,   472,   590,   513,   116,  1528,   116,  1441,   110,
     2930     480,   345,   482,   652,   484,  1448,   116,   480,   488,   248,
     2931     732,   484,   110,   132,   494,  1127,   381,   328,   116,   116,
     2932     130,   482,   647,   484,   666,   656,   506,   941,   508,   981,
     2933     824,   511,   272,   513,   514,   132,  1394,   687,   349,   109,
     2934     484,   521,   109,   824,   116,   525,   526,   109,  1099,   803,
     2935     109,   111,   111,   113,   808,   295,  1499,  1394,   484,   578,
     2936     132,   710,   109,   654,   484,   116,   467,   307,   473,  1117,
     2937     130,     4,     5,     6,     7,     8,     9,   116,   194,   484,
     2938     110,   132,   426,   427,   116,   687,   116,   116,   116,   116,
     2939     570,   571,   116,   132,   736,   406,   418,   109,   578,   116,
     2940     132,   217,  1085,   132,   132,   132,   109,  1090,   132,   589,
     2941     590,   227,   117,   904,   594,   132,   438,   116,   123,   124,
     2942     600,   116,   602,   109,   446,   111,   110,   528,  1288,  1177,
     2943    1178,   745,   533,   132,  1441,   681,    69,   132,    71,   110,
     2944     620,  1448,   896,   937,   846,   625,    72,   627,    74,    75,
     2945     494,   631,   801,   110,   634,   635,   636,    83,    84,    72,
     2946     110,   707,   484,   112,   590,   110,   621,   116,   112,   513,
     2947      83,    84,   652,   484,   654,   109,   910,   488,   912,   295,
     2948     484,   582,   637,   109,   549,   550,   551,   744,   114,   112,
     2949     109,   861,  1499,   116,    72,   809,   651,   115,    72,   132,
     2950      74,    75,  1362,   109,   684,    83,    84,   687,   999,    83,
     2951      84,   881,   809,   109,   454,   111,    72,   622,    74,    75,
     2952     681,    85,    86,    87,   109,   943,   111,    83,    84,   132,
     2953     710,   711,   712,   111,   578,   109,   938,  1115,   718,   719,
     2954     114,  1119,   867,   905,   905,   109,   707,   111,    64,   113,
     2955     114,   109,   653,   111,   655,   112,   110,   907,   114,   905,
     2956     905,   905,   116,   109,   744,   745,   506,   905,   508,   749,
     2957     750,   511,   905,   109,   514,   111,   620,   732,   109,    70,
     2958     111,   625,   109,    74,   745,  1445,    77,  1447,    79,   600,
     2959     904,   602,  1505,   698,   132,    86,   556,   557,   558,   559,
     2960    1305,     3,  1505,  1505,   705,   907,   114,   712,    10,    11,
     2961      12,    13,    14,   793,     4,     5,     6,     7,     8,     9,
     2962     110,   801,   109,   803,   111,   805,   116,   443,   808,   809,
     2963    1012,   114,   812,   109,  1382,   111,    72,    39,    74,    75,
     2964    1500,   117,   118,    33,   824,    72,   903,    83,    84,   114,
     2965    1398,   132,   110,   469,   132,  1146,    83,    84,   116,   681,
     2966      10,    11,    12,    13,    14,    67,    72,   110,  1122,   109,
     2967      76,   109,   110,   116,    82,   111,   687,    83,    84,    69,
     2968     110,    71,    49,   809,   111,   707,   116,   110,   109,    39,
     2969     506,   756,   109,   116,   874,   511,    63,   112,   514,    66,
     2970     805,    82,    69,   109,   118,   111,  1020,   718,   719,   110,
     2971    1035,   117,   118,   874,   127,   116,   896,    67,    88,    89,
     2972    1468,  1469,   213,   903,   904,   905,    72,   907,     4,     5,
     2973       6,     7,     8,     9,  1225,  1085,   110,    83,    84,   919,
     2974    1090,   128,   116,   904,   684,   110,    94,   109,   874,   111,
     2975      30,   116,   932,   933,   874,   117,   118,   937,   131,   109,
     2976      72,   111,   942,   943,    76,   111,   111,   117,   118,   874,
     2977     109,    83,    84,  1115,   110,   109,   942,  1119,  1120,   112,
     2978     116,   148,   109,  1085,   111,     0,     1,   967,  1090,   112,
     2979     117,   118,   110,    69,   161,    71,   110,   109,  1481,   119,
     2980     120,   812,   116,    83,    84,   117,   118,   112,    10,    11,
     2981      12,    13,    14,   824,    29,    30,  1107,    32,   110,   999,
     2982     187,   110,   942,   110,   116,    92,    93,    72,    43,    74,
     2983      75,    76,  1146,    72,    49,    74,    75,    39,    83,    84,
     2984    1020,  1021,    57,   210,    83,    84,   110,  1530,    63,   115,
     2985     116,    66,   874,   669,    69,   222,   957,   109,   110,   111,
     2986    1040,   352,   678,   354,   109,    67,   682,   110,    83,    84,
     2987     874,   109,   117,   118,  1190,  1191,    72,  1193,   979,  1040,
     2988      76,   110,   983,   110,  1200,   110,  1202,    83,    84,   116,
     2989     112,   116,   107,  1235,   905,   110,   907,  1002,   110,   943,
     2990    1080,   111,   117,   114,   116,  1085,   110,   109,   116,   111,
     2991    1090,   131,   116,   109,  1040,   117,   118,   110,   111,  1099,
     2992    1040,   117,   118,   506,    66,   508,   937,  1107,   511,    58,
     2993      59,   514,  1033,   148,   999,  1040,   115,   116,   942,    44,
     2994      45,   156,  1122,   552,   553,    72,   161,    74,    75,    76,
     2995    1207,   442,   109,   110,   111,   999,    83,    84,   560,   561,
     2996    1274,   328,   554,   555,   244,   114,  1146,   114,   109,   110,
     2997     111,   186,   187,   109,   112,  1040,   118,   110,   110,   919,
     2998    1322,   112,   109,    29,  1326,  1146,   112,   202,   112,     3,
     2999     117,   118,   109,   110,   111,   210,    10,    11,    12,    13,
     3000      14,    58,    59,    60,   219,   112,   116,   222,  1188,  1189,
     3001    1248,  1249,  1250,   110,   229,   130,   130,   130,  1040,   161,
     3002     110,   112,   114,  1189,   112,    39,   115,  1207,   110,   244,
     3003     115,  1211,   115,   248,   109,   116,  1040,   252,   253,   406,
     3004       1,   110,  1358,   110,    72,  1225,    74,    75,    76,  1229,
     3005    1211,   266,   267,    67,   132,    83,    84,   116,   273,   110,
     3006     110,   110,   110,  1229,  1225,   280,   110,   110,  1188,  1189,
     3007     110,   116,   110,   110,  1085,   110,   110,   110,   110,  1090,
     3008     222,  1423,   898,  1188,   110,  1211,   110,  1378,    49,   110,
     3009     110,  1211,   115,   874,  1274,  1275,    29,  1515,   110,   130,
     3010     380,   131,   112,  1283,   112,   116,  1211,   110,  1288,  1229,
     3011     110,   116,   110,   328,   130,   116,   112,   114,   260,   110,
     3012     110,   464,   110,   265,   116,   112,   110,  1288,   110,   110,
     3013     116,   116,   112,   348,   349,    10,    11,    12,    13,    14,
     3014    1080,  1321,   109,  1505,  1505,   106,   109,  1248,  1249,  1250,
     3015     365,   109,   109,   114,   369,  1321,  1506,   109,   130,  1505,
     3016    1505,  1505,  1288,  1283,    39,   380,     3,  1505,  1288,   112,
     3017     132,   115,  1505,    10,    11,    12,    13,    14,  1283,   110,
     3018    1530,   396,   110,  1288,   110,  1189,   147,   128,   115,  1211,
     3019    1481,   406,    67,   115,   464,   156,   114,   695,  1378,   112,
     3020     132,  1321,    39,   110,  1506,   116,   112,  1211,   350,   424,
     3021     112,   491,   110,   493,  1394,   430,   110,   432,   110,   112,
     3022     110,   112,  1377,   112,   112,  1229,   112,   112,  1530,    72,
     3023      67,    74,    75,    76,   109,  1051,   111,    47,   115,  1419,
     3024      83,    84,   117,   118,    72,   206,    74,    75,    76,   210,
     3025     132,   132,   467,  1419,   132,    83,    84,   472,   132,   132,
     3026     110,  1441,  1043,   115,   130,   480,  1288,   115,  1448,   484,
     3027    1450,   110,  1452,   488,   112,   109,   491,   112,   493,   240,
     3028    1441,   109,   112,   112,  1288,  1386,  1387,  1448,   786,   431,
     3029    1505,   112,  1505,  1505,   112,   110,   110,    60,   109,  1419,
     3030     112,  1481,    66,   112,   109,   132,  1486,   110,  1488,   110,
     3031     114,   272,    76,   528,   275,  1441,   112,  1321,   533,  1499,
     3032     112,  1441,  1448,  1424,   110,  1505,  1506,   670,  1448,   112,
     3033     110,   473,   109,  1506,   295,  1515,  1441,    96,  1499,    96,
     3034      85,    86,    87,  1448,   109,   132,   307,   115,   110,    72,
     3035    1530,    74,    75,    76,   118,   110,   110,  1530,   110,    42,
     3036      83,    84,   642,   116,   109,   863,   111,   582,   113,   114,
     3037     130,   132,   110,  1499,   589,   110,   132,    96,    96,  1499,
     3038     341,  1482,   132,   110,   345,   600,   109,   602,   132,   110,
     3039    1491,   132,   112,   110,  1499,   110,   132,   161,   112,   115,
     3040     670,   109,   132,   364,   115,   115,   621,   368,   906,   110,
     3041     371,   691,   110,   693,   110,  1419,   110,   697,  1056,  1441,
     3042     132,   564,   637,   562,   977,   565,  1448,   642,   563,   566,
     3043    1211,  1211,  1469,  1364,  1540,  1298,   651,  1441,   653,   654,
     3044     655,  1120,  1326,  1448,  1448,   912,   789,    66,   684,  1071,
     3045     684,  1090,   594,   951,   920,   697,   799,   582,   222,   971,
     3046     867,   648,   722,  1229,    83,   426,   427,   939,   570,   484,
     3047     813,  1515,   687,   732,   570,   570,   691,  1499,   693,    -1,
     3048     622,  1297,   697,    -1,    -1,   627,    -1,    -1,   986,    -1,
     3049     705,    -1,    -1,   454,  1505,  1499,   260,    -1,    -1,   118,
     3050      -1,   265,    -1,   718,   719,    -1,   467,    -1,    -1,    -1,
     3051    1450,    -1,  1452,    -1,    -1,    -1,   280,   732,    -1,   789,
     3052      -1,    -1,    -1,  1304,    -1,    -1,    -1,    -1,    -1,   799,
     3053      -1,   492,    -1,   494,    -1,   496,    -1,    -1,    -1,  1037,
     3054      -1,    -1,   161,   813,    -1,   506,  1486,   508,  1488,    -1,
     3055     511,    -1,   513,   514,    -1,    -1,   698,    57,    -1,    10,
     3056      11,    12,    13,    14,   525,    -1,    -1,    -1,    -1,    72,
     3057     712,    74,    75,    76,    -1,  1356,    -1,    -1,  1359,    -1,
     3058      83,    84,    -1,    -1,    -1,    -1,   350,   867,    39,    -1,
     3059      -1,    -1,    -1,   873,    -1,    -1,    -1,   812,    -1,    -1,
     3060      -1,    -1,    -1,   222,    -1,    -1,   109,   107,   111,   824,
     3061     110,    -1,    -1,    -1,   117,   118,    67,   578,    -1,  1117,
     3062      -1,  1402,    -1,    -1,    -1,    -1,  1407,   130,   589,    -1,
     3063      -1,    -1,    -1,  1449,   914,  1451,    -1,    -1,    -1,    -1,
     3064      -1,   260,    -1,    -1,    -1,    -1,   265,    -1,    -1,    -1,
     3065      -1,    -1,   867,    -1,  1435,    -1,   156,   670,   873,   620,
     3066      -1,    -1,    -1,   805,   625,    -1,    -1,   431,    -1,  1485,
     3067     631,  1487,     0,     1,  1017,  1018,    -1,    -1,    -1,  1177,
     3068    1178,   896,    -1,    -1,   448,    -1,    -1,    -1,    -1,    -1,
     3069     905,   971,   907,    -1,    -1,    -1,    -1,    -1,    -1,   914,
     3070      -1,    -1,    -1,    -1,    32,    -1,    -1,    -1,    -1,   473,
     3071      -1,    -1,    -1,  1529,    -1,  1531,    -1,    -1,    -1,   219,
     3072      -1,    49,   937,   684,    -1,    -1,    -1,    -1,  1544,  1545,
     3073      -1,   350,  1075,  1076,    -1,    -1,    -1,    -1,  1519,    -1,
     3074      -1,    69,   957,    -1,  1525,    -1,    -1,  1017,  1018,    -1,
     3075      -1,    -1,    -1,    -1,    -1,  1536,   971,    -1,    -1,  1540,
     3076      -1,   722,    -1,    -1,   979,    -1,    -1,    -1,   983,     0,
     3077       1,    -1,    -1,   273,    -1,    -1,   789,    -1,   106,    -1,
     3078     280,    -1,    -1,   744,    -1,    -1,   799,    -1,    -1,    -1,
     3079      -1,  1071,    -1,    -1,    -1,     0,    -1,    -1,    -1,    -1,
     3080     813,    32,    -1,    -1,    -1,  1075,  1076,    -1,    -1,    -1,
     3081      -1,    -1,   431,    -1,    -1,    -1,    -1,    -1,  1033,    -1,
     3082     148,    -1,    -1,    -1,    -1,    -1,    -1,    32,   156,   157,
     3083     594,    -1,    -1,    -1,    -1,    66,    -1,    -1,    69,    -1,
     3084      -1,    -1,   803,    -1,    -1,    -1,    -1,   808,   348,    -1,
     3085      -1,    -1,    -1,    -1,   473,    -1,  1071,    -1,   622,   187,
     3086    1002,    -1,    -1,   627,    69,   365,    -1,    -1,    -1,   369,
     3087    1085,    -1,    -1,    -1,   202,  1090,    -1,   205,   206,    -1,
     3088    1223,    -1,   210,    -1,  1382,    -1,    -1,    -1,    -1,    -1,
     3089      -1,    -1,  1107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3090    1398,    -1,    -1,   231,  1184,    -1,    -1,   235,    -1,   237,
     3091      -1,    -1,  1255,    -1,    -1,    -1,    -1,    -1,   246,    -1,
     3092    1263,  1264,  1265,    -1,   252,    -1,   157,    -1,    -1,   257,
     3093      -1,    -1,   432,    -1,   698,   896,    -1,    -1,    -1,   267,
     3094      -1,    -1,   903,    -1,    -1,    -1,    -1,   275,   712,    -1,
     3095      -1,     0,   157,  1223,    -1,    -1,    -1,    -1,   919,    -1,
     3096      -1,    72,    -1,    74,    75,    76,    -1,    -1,   732,  1184,
     3097    1468,  1469,    83,    84,    -1,   594,    -1,    -1,    -1,    -1,
     3098     941,   942,   943,    32,  1327,  1255,    -1,    -1,    -1,    -1,
     3099      -1,   222,  1207,  1263,  1264,  1265,    -1,    -1,   109,    -1,
     3100     111,    -1,    -1,   622,  1017,  1018,   117,   118,   627,    -1,
     3101      -1,    -1,    -1,   341,    -1,    -1,    -1,   345,    -1,    -1,
     3102      69,   252,    -1,   351,    -1,    -1,   231,    -1,    -1,    -1,
     3103      -1,    -1,    -1,  1248,  1249,  1250,   364,    -1,   999,    -1,
     3104     368,   805,    -1,   371,    -1,    -1,  1188,   252,    -1,    -1,
     3105      -1,    -1,   257,    -1,    -1,    -1,    -1,  1327,    -1,    -1,
     3106      -1,    -1,  1075,  1076,    -1,    -1,    -1,    -1,    -1,    -1,
     3107      72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,   698,
     3108      -1,    83,    84,    72,    -1,    74,    75,    76,    -1,   589,
     3109     418,    -1,    -1,   712,    83,    84,    -1,    -1,    -1,    -1,
     3110      -1,    -1,    -1,    -1,    -1,   433,    -1,   109,   157,   111,
     3111     438,    -1,    -1,    -1,    -1,   117,   118,    -1,   446,  1080,
     3112     109,   621,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3113      -1,    -1,    -1,    -1,    -1,    -1,   464,   637,    -1,   467,
     3114      -1,  1283,    -1,    -1,    -1,    -1,   351,    -1,    -1,    -1,
     3115      -1,   651,    -1,    -1,   482,    -1,   484,    -1,    -1,    -1,
     3116      -1,  1122,  1377,  1378,   492,    -1,    -1,    -1,   496,    -1,
     3117      -1,  1386,  1387,    97,    98,    99,   100,   101,   102,   103,
     3118     104,   105,   106,    -1,    -1,    -1,   805,    -1,    -1,    -1,
     3119      -1,    -1,    -1,    -1,    -1,    -1,    -1,   525,   526,    -1,
     3120      -1,    -1,   433,   252,    -1,    -1,    -1,   131,   257,  1424,
     3121      -1,    -1,    -1,   418,    -1,    -1,    -1,    -1,    -1,    -1,
     3122      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,
     3123      -1,    -1,   732,   438,    -1,    -1,    -1,    -1,  1002,    -1,
     3124      -1,   446,  1255,   571,    -1,    -1,  1207,    -1,    -1,    -1,
     3125    1263,  1264,  1265,   484,    -1,    -1,    -1,    -1,    -1,   464,
     3126      -1,   589,   590,    -1,    -1,    -1,  1481,  1482,  1229,    -1,
     3127      -1,    -1,    -1,    -1,   602,    -1,  1491,   482,    -1,   484,
     3128      -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
     3129    1505,  1506,   620,    -1,    -1,   526,    -1,   625,    -1,    -1,
     3130      -1,    -1,   351,   631,    -1,    -1,   634,   635,   636,    -1,
     3131      -1,    -1,    66,    -1,  1327,  1530,    -1,    -1,    72,    -1,
     3132      -1,   526,    76,    -1,   652,    79,    80,    81,    82,    83,
     3133      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3134      -1,    -1,   670,    -1,    -1,    10,    11,    12,    13,    14,
     3135      -1,    -1,    -1,   681,    -1,   109,    -1,   111,    -1,   590,
     3136    1321,    -1,    -1,   117,   118,   119,   120,   121,   122,   418,
     3137      -1,    -1,    -1,    -1,    39,    -1,   130,    -1,    -1,   707,
     3138      -1,    -1,   710,  1002,   433,   590,    -1,    -1,    -1,   438,
     3139      -1,   719,    -1,    -1,   722,    -1,   896,   446,    -1,    -1,
     3140      -1,    -1,    67,   634,   635,   636,    -1,    72,    -1,    74,
     3141      75,    76,    -1,    -1,    -1,   464,   744,   745,    83,    84,
     3142      -1,   652,   750,    -1,  1188,    -1,    -1,    -1,    -1,   634,
     3143     635,   636,    -1,   482,    -1,   484,    -1,    10,    11,    12,
     3144      13,    14,    -1,    -1,   109,    -1,   111,   652,    -1,    -1,
     3145      -1,    -1,   117,   118,    -1,    -1,    -1,    -1,  1419,    -1,
     3146      -1,   789,    -1,    -1,    -1,   670,    39,    -1,    -1,    -1,
     3147      -1,   799,    -1,   801,    -1,   803,   681,   526,   806,   710,
     3148     808,   809,    -1,    -1,    -1,   813,    -1,    -1,    -1,  1450,
     3149      -1,  1452,    -1,    -1,    67,   823,    -1,    -1,    -1,    72,
     3150      -1,    -1,   707,    76,    -1,   710,    -1,    -1,    -1,    -1,
     3151      83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1283,
     3152      -1,     0,    -1,    -1,    -1,  1486,    -1,  1488,    -1,    -1,
     3153      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     3154     745,   590,    -1,    -1,   117,   118,   874,    -1,     0,    -1,
     3155     190,    -1,    -1,    32,  1515,    -1,    -1,   197,    -1,    -1,
     3156      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   896,  1188,
     3157     801,    -1,    -1,    -1,    -1,   903,   904,    -1,   809,   907,
     3158      32,    -1,    -1,    -1,   789,   634,   635,   636,    -1,    -1,
     3159      69,    -1,    -1,    -1,   799,    -1,   801,    -1,    -1,    -1,
     3160      -1,   806,    -1,   652,   809,   933,    -1,    -1,   813,    -1,
     3161      -1,    -1,    -1,   941,   942,    -1,    -1,    69,    -1,    -1,
     3162      -1,   670,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   269,
     3163      -1,    -1,   681,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3164      -1,    -1,    -1,   874,    -1,    -1,    -1,    -1,    -1,    -1,
     3165      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   707,    -1,
     3166      -1,   710,    -1,    -1,  1283,    -1,    -1,    -1,    -1,   874,
     3167      -1,   999,    -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,
     3168      -1,    -1,    -1,   323,  1012,    -1,    -1,    -1,    -1,  1017,
     3169    1018,   331,  1020,  1021,   334,    -1,   745,    -1,    -1,   904,
     3170      -1,    -1,    -1,    -1,    -1,   157,    -1,  1207,    -1,    -1,
     3171      -1,   942,  1040,    -1,    -1,     3,     4,     5,     6,     7,
     3172       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3173      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3174     789,    -1,    30,    31,    32,    -1,    -1,  1075,  1076,    -1,
     3175     799,    39,   801,    -1,    -1,    -1,    -1,   806,   398,    -1,
     3176     809,    -1,   402,    -1,   813,    -1,    -1,    -1,    -1,    -1,
     3177      -1,    -1,    -1,   252,    -1,    -1,    -1,    -1,   257,    67,
     3178      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,  1020,
     3179    1021,    -1,    -1,    -1,  1122,    83,    84,    -1,    -1,    -1,
     3180     252,    -1,    -1,    -1,    -1,   257,    -1,    -1,    -1,  1040,
     3181      -1,    -1,  1017,  1018,    -1,  1020,  1021,    -1,  1146,    -1,
     3182      -1,   109,    -1,   111,    -1,   874,    -1,    -1,    -1,   117,
     3183     118,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,   479,
     3184      -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3185      -1,    -1,    -1,    -1,    -1,   904,    -1,    -1,    -1,    -1,
     3186      -1,  1189,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3187    1075,  1076,   351,    -1,    39,    -1,    -1,  1377,    -1,  1207,
     3188      -1,    -1,    -1,  1211,    -1,    -1,    -1,    -1,    -1,    -1,
     3189      -1,    -1,    -1,    -1,    -1,  1223,    -1,  1225,    -1,   351,
     3190      -1,  1229,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3191      75,    76,    -1,    -1,    -1,    26,    27,    28,    83,    84,
     3192      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1255,    -1,    -1,
     3193     570,   571,    -1,    -1,    -1,  1263,  1264,  1265,    -1,   418,
     3194      -1,  1146,    -1,    -1,   109,    -1,  1274,  1275,    -1,    -1,
     3195      -1,    -1,   117,   118,   433,    -1,    -1,  1188,  1189,   438,
     3196    1288,    -1,    -1,    -1,    -1,    -1,   418,   446,  1017,  1018,
     3197      -1,  1020,  1021,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3198    1211,   433,    -1,    -1,  1189,   464,   438,    -1,    99,    -1,
     3199     101,  1040,    -1,  1321,   446,    -1,    -1,    -1,  1229,  1327,
     3200      -1,    -1,    -1,   482,    -1,   484,  1211,    -1,    -1,    -1,
     3201      -1,    -1,   464,    -1,    -1,   126,    -1,   657,  1223,    -1,
     3202    1225,   661,    -1,    -1,    -1,    -1,  1075,  1076,    -1,    -1,
     3203     482,    -1,   484,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3204      -1,    -1,    -1,  1274,  1275,    -1,    -1,   526,    -1,    -1,
     3205    1255,    -1,  1283,    -1,    -1,    -1,    -1,  1288,  1263,  1264,
     3206    1265,    -1,    -1,    -1,    -1,    -1,  1394,    -1,    -1,  1274,
     3207    1275,   182,    -1,    -1,   526,    -1,    -1,    -1,    -1,   190,
     3208      -1,   192,   193,  1288,    -1,    -1,   197,    -1,   199,   200,
     3209    1321,  1419,    -1,    53,    -1,    55,    -1,  1146,    58,    59,
     3210      60,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3211      -1,   590,    -1,  1441,    -1,    -1,    -1,    77,    -1,    -1,
     3212    1448,    -1,  1327,    -1,    -1,    -1,    -1,    -1,    -1,    89,
     3213      90,    -1,    -1,    -1,    26,    27,    28,    -1,   590,    -1,
     3214    1189,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3215      14,    -1,    -1,   793,    -1,   634,   635,   636,   269,    -1,
     3216      -1,    -1,  1211,  1394,    -1,    -1,    -1,    -1,    -1,    -1,
     3217      -1,  1499,    -1,   652,  1223,    39,  1225,    -1,  1506,    -1,
     3218      -1,    -1,   634,   635,   636,    -1,    -1,    -1,  1419,  1394,
     3219      -1,   670,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3220     652,    -1,   681,    67,    -1,    -1,  1255,    99,    72,   101,
     3221    1441,    -1,    76,    -1,  1263,  1264,  1265,  1448,   670,    83,
     3222      84,    -1,    -1,    -1,    -1,  1274,  1275,    -1,   707,   681,
     3223      -1,   710,    -1,    -1,    -1,    -1,  1441,    -1,    -1,  1288,
     3224      -1,    -1,    -1,  1448,    -1,   109,    -1,    -1,    -1,    -1,
     3225      -1,    -1,    -1,   117,   118,   707,    -1,    -1,   710,    10,
     3226      11,    12,    13,    14,    -1,    -1,   745,    -1,  1499,    -1,
     3227      -1,   911,    -1,    -1,    -1,    -1,    -1,    -1,  1327,    -1,
     3228      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,
     3229     182,    -1,    -1,   745,  1499,    -1,    -1,    -1,    -1,    -1,
     3230     192,   193,    -1,    -1,    -1,   197,    -1,   199,   200,    -1,
     3231     789,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3232     799,    72,   801,    74,    75,    76,    -1,   806,    -1,    -1,
     3233     809,    -1,    83,    84,   813,    -1,    -1,   789,    -1,    10,
     3234      11,    12,    13,    14,    -1,  1394,    -1,   799,   988,   801,
     3235      -1,    -1,    -1,    -1,   806,    -1,    -1,   809,   109,    -1,
     3236     111,   813,    -1,    -1,    -1,  1005,   117,   118,    39,    -1,
     3237      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
     3238      -1,    -1,    -1,    -1,   344,    -1,   346,    -1,    -1,    -1,
     3239      -1,    -1,  1441,    -1,    -1,   874,    67,   357,   358,  1448,
     3240      39,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3241      -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,
     3242      -1,    -1,   874,    -1,    -1,   904,    -1,    -1,    67,    -1,
     3243      -1,    -1,    -1,    72,    -1,    74,    75,    76,   109,    -1,
     3244     111,    -1,    -1,  1083,    83,    84,   117,   118,    -1,    -1,
     3245    1499,    -1,   904,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3246      -1,    -1,    -1,   574,   575,    -1,    -1,    -1,    -1,    -1,
     3247     109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3248      -1,    -1,    -1,  1123,    -1,    -1,    -1,    -1,    -1,    -1,
     3249      -1,    -1,   603,    -1,    -1,   606,   607,    -1,   609,    -1,
     3250     611,   612,    -1,    -1,    -1,   616,   617,     3,     4,     5,
     3251       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3252      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3253      26,    27,    28,    -1,    30,    31,    32,    33,  1017,  1018,
     3254      36,  1020,  1021,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    32863255      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3287       -1,  1224,    -1,    -1,    -1,    -1,    -1,    -1,   485,    -1,
    3288     1085,  1086,    -1,  1236,    -1,  1238,    -1,    -1,   635,   636,
    3289      637,    -1,    -1,    -1,    -1,   527,    -1,    -1,    -1,    -1,
    3290       -1,    -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,    -1,
    3291       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1271,    -1,
    3292      527,    -1,    -1,    -1,     0,   672,  1279,  1280,  1281,  1134,
    3293       -1,    -1,    -1,    -1,    -1,    -1,   683,  1290,  1291,    -1,
    3294       -1,  1472,    -1,  1474,    -1,    -1,    -1,    -1,    -1,    -1,
    3295     1219,  1304,    -1,    -1,  1159,  1220,    32,    -1,    -1,   591,
    3296       -1,    -1,   709,    -1,    -1,   712,    -1,    -1,    -1,    -1,
    3297       10,    11,    12,    13,    14,    -1,    -1,    -1,  1509,    -1,
    3298     1511,    -1,    -1,    -1,   591,  1201,    -1,    -1,    -1,    -1,
    3299       -1,    -1,  1345,    -1,    70,    -1,    -1,  1202,    -1,    39,
    3300       -1,    -1,   749,   635,   636,   637,    -1,    -1,    -1,    -1,
    3301       -1,    -1,    -1,    -1,    -1,  1220,    -1,    -1,    -1,  1224,
    3302       -1,    -1,   654,  1554,    -1,  1556,    -1,    67,   635,   636,
    3303      637,  1236,    72,  1238,    74,    75,    76,  1242,  1569,  1570,
    3304      672,    -1,    -1,    83,    84,    -1,    -1,   654,   795,    -1,
    3305       -1,   683,    -1,    -1,    94,    -1,    -1,    -1,   805,    -1,
    3306      807,    -1,  1415,    -1,    -1,   812,  1271,    -1,   815,   109,
    3307       -1,   111,   819,    -1,  1279,  1280,  1281,   709,   118,   119,
    3308      712,    -1,   158,  1299,    -1,  1290,  1291,    -1,    -1,    -1,
    3309       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,  1304,
    3310       -1,    -1,    -1,    -1,    -1,   712,    -1,    -1,    -1,    -1,
    3311       -1,  1464,    -1,    -1,    -1,    -1,    -1,   749,  1471,    -1,
    3312       -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    3313       -1,  1396,  1337,    -1,   881,    -1,    -1,    -1,    -1,    -1,
    3314     1345,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3315       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    3316       76,    -1,    -1,   795,   911,    -1,    -1,    83,    84,    -1,
    3317       -1,  1524,    -1,   805,    -1,   807,    -1,   253,    94,    -1,
    3318      812,    -1,   258,   815,    -1,    -1,    -1,   819,    -1,    -1,
    3319       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3320      807,    -1,   118,   119,    -1,    -1,    -1,    -1,   815,    -1,
    3321     1415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   966,
    3322       -1,    54,    -1,    56,    -1,    -1,    59,    60,    61,    -1,
    3323       63,    -1,    -1,    -1,    -1,  1440,    10,    11,    12,    13,
    3324       14,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,   881,
    3325       -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,  1464,
    3326       -1,    -1,    -1,    -1,    -1,    39,  1471,    10,    11,    12,
    3327       13,    14,    -1,    -1,   881,    -1,   352,    -1,    -1,   911,
    3328     1027,  1028,    -1,  1030,  1031,    -1,    -1,    -1,    -1,    -1,
    3329       -1,    -1,    -1,    67,    -1,    -1,    39,    -1,    72,    -1,
    3330       74,    75,    76,  1050,    -1,    -1,    -1,    -1,    -1,    83,
    3331       84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1524,
    3332       94,    -1,    -1,    -1,    67,    -1,  1531,    -1,    -1,    72,
    3333       -1,    74,    75,    76,   966,   109,    -1,    -1,  1085,  1086,
    3334       83,    84,   949,   419,   118,   119,    -1,    -1,    -1,    -1,
    3335       -1,    94,    -1,    10,    11,    12,    13,    14,   434,   966,
    3336       -1,    -1,    -1,   439,    -1,    -1,   109,    -1,    -1,    -1,
    3337       -1,   447,    -1,    -1,    -1,   118,   119,    -1,    -1,    -1,
    3338       -1,    -1,    39,    -1,    10,    11,    12,    13,    14,   465,
    3339       -1,    -1,    -1,    -1,    -1,  1027,  1028,    -1,  1030,  1031,
    3340       -1,    -1,    -1,    -1,    -1,    -1,    -1,   483,    -1,   485,
    3341       67,    -1,  1159,    39,    -1,    72,    -1,    -1,  1050,    76,
    3342       -1,    -1,    -1,  1030,  1031,    -1,    83,    84,    -1,    -1,
    3343       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3344       -1,    67,    -1,  1050,    -1,    -1,    72,    -1,    -1,    -1,
    3345       76,   527,   109,  1085,  1086,  1202,    -1,    83,    84,    -1,
    3346       -1,   118,   119,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    3347       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1224,    -1,    -1,
    3348       -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,  1236,
    3349       -1,  1238,   118,   119,    10,    11,    12,    13,    14,    15,
     3256      -1,  1040,    -1,    -1,    -1,  1017,  1018,    -1,  1020,  1021,
     3257      -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
     3258      -1,    -1,    78,    -1,    -1,    -1,     7,    -1,  1040,    10,
     3259      11,    12,    13,    14,    -1,    -1,  1075,  1076,    -1,    -1,
     3260      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3261      -1,    -1,    -1,    -1,    -1,   111,    37,    38,    39,    40,
     3262      -1,   117,   118,  1075,  1076,    -1,    -1,    -1,    -1,    -1,
     3263      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3264      -1,    -1,    -1,   754,   755,    66,    67,    -1,    -1,    -1,
     3265      -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
     3266      81,    82,    83,    84,    -1,    86,    87,  1146,    -1,    -1,
     3267      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3268      -1,    -1,   574,   575,    -1,    -1,    -1,    -1,   109,    -1,
     3269     111,    -1,    -1,    -1,  1146,    -1,   117,   118,   119,   120,
     3270     121,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3271    1189,   603,    -1,    -1,   606,   607,    -1,   609,    -1,   611,
     3272     612,    -1,    -1,    -1,   616,   617,    -1,    -1,    -1,    -1,
     3273      -1,    -1,  1211,    -1,    -1,    -1,    -1,  1189,    -1,   699,
     3274      -1,   701,    -1,    -1,  1223,    -1,  1225,    -1,   708,   709,
     3275      -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,  1211,
     3276      -1,    -1,    -1,    -1,    -1,   725,    -1,    -1,    -1,    -1,
     3277     730,  1223,    -1,  1225,    -1,    -1,  1255,    -1,    -1,    -1,
     3278      -1,    -1,    -1,    -1,  1263,  1264,  1265,    -1,    -1,    -1,
     3279      -1,    -1,    -1,    -1,    -1,  1274,  1275,    -1,   758,    -1,
     3280     911,    -1,    -1,  1255,    -1,   916,    -1,    -1,    -1,  1288,
     3281      -1,  1263,  1264,  1265,    -1,    -1,    -1,    -1,    -1,    -1,
     3282      -1,    -1,  1274,  1275,    -1,    -1,    -1,    -1,    -1,    -1,
     3283      -1,    -1,    -1,    -1,    -1,    -1,  1288,    -1,    -1,    -1,
     3284      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1327,    -1,
     3285      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3286      49,    -1,   754,   755,    -1,    -1,    -1,    -1,    -1,    -1,
     3287      -1,    -1,    -1,    -1,    -1,  1327,    -1,    66,    -1,    -1,
     3288       7,    -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,
     3289      -1,    -1,    -1,    -1,    -1,    -1,    -1,   857,   858,   859,
     3290     860,    -1,   862,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3291      37,    38,    39,    40,    -1,  1394,    -1,   877,    -1,    -1,
     3292      -1,    -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,   118,
     3293      -1,   891,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3294      67,    -1,  1394,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3295      -1,    -1,    79,    80,    81,    82,    83,    84,   147,    86,
     3296      87,    -1,  1441,    -1,    -1,    -1,  1077,    -1,   157,  1448,
     3297      -1,   931,   161,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3298      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,  1441,
     3299     117,   118,   119,   120,   121,   122,  1448,    10,    11,    12,
     3300      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3301      23,    24,    25,    26,    27,    -1,   976,    30,    31,    32,
     3302    1499,   210,   982,    -1,   916,    -1,    39,   987,    -1,    -1,
     3303      -1,    -1,   992,   222,   994,    -1,    -1,    -1,   998,    -1,
     3304    1000,  1001,    -1,    -1,  1004,    -1,    -1,  1499,    -1,    -1,
     3305      -1,   240,    -1,  1013,    67,    -1,    -1,    -1,    -1,    -1,
     3306      -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3307      -1,  1031,  1032,    -1,    -1,    -1,   265,    -1,    -1,    -1,
     3308      -1,    -1,    -1,   272,    -1,    -1,    -1,    -1,    -1,    -1,
     3309      -1,    -1,    -1,    -1,    -1,  1206,    -1,    -1,  1058,    -1,
     3310      -1,  1061,    -1,    -1,   117,   118,   295,    -1,    -1,    -1,
     3311      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   307,    -1,
     3312      -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
     3313      -1,    -1,    -1,    -1,    76,    -1,    78,    -1,    80,    -1,
     3314      -1,    -1,    -1,    -1,  1104,    87,    -1,    -1,    -1,    -1,
     3315    1110,  1111,    -1,    -1,    -1,    -1,   345,    -1,    -1,    -1,
     3316      -1,   350,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3317    1130,    -1,    -1,  1133,    -1,    -1,   118,  1137,   120,   121,
     3318     122,    -1,    -1,    -1,    -1,  1077,    -1,    -1,    -1,    -1,
     3319    1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3320      -1,    -1,    -1,  1163,    -1,  1165,  1166,  1167,  1168,    -1,
     3321      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   161,
     3322      -1,  1181,    -1,  1183,    -1,    -1,    -1,  1187,    -1,    -1,
     3323      -1,    -1,    -1,    -1,    -1,    -1,    -1,   426,   427,    -1,
     3324      -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,    -1,
     3325      -1,    -1,    -1,    -1,    -1,    -1,  1216,  1217,    -1,    -1,
     3326      -1,    -1,    -1,    -1,    -1,   454,    -1,    -1,    -1,    -1,
     3327      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3328     222,    -1,   224,   225,   226,    -1,    -1,    -1,    -1,    -1,
     3329      -1,    -1,    -1,   482,    -1,    -1,    -1,    -1,    -1,    -1,
     3330      -1,    -1,    -1,    -1,    -1,   494,  1266,  1267,    -1,    -1,
     3331      -1,    -1,    -1,    -1,  1206,    -1,  1276,   506,   260,   508,
     3332      -1,    -1,   511,   265,   513,   514,    -1,    -1,    -1,    -1,
     3333      -1,    -1,    -1,    -1,    -1,    -1,    -1,   526,   280,    -1,
     3334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3335      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    33503336      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3351       26,    27,   345,    -1,   347,   591,    -1,    -1,    -1,    -1,
    3352       -1,    -1,    -1,    39,  1271,   358,   359,  1159,    -1,    -1,
    3353       -1,    -1,  1279,  1280,  1281,    -1,    -1,    -1,    -1,    -1,
    3354       -1,    -1,    -1,  1290,  1291,    -1,    -1,    -1,    -1,    -1,
    3355       -1,    67,    -1,    -1,    -1,    -1,    -1,  1304,    -1,   635,
    3356      636,   637,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3357     1202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,
    3358       37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    3359       -1,    -1,  1224,    -1,  1201,  1202,   672,    -1,  1345,    -1,
    3360       -1,    -1,    -1,    -1,  1236,    -1,  1238,   683,    -1,    66,
    3361       -1,    -1,    -1,    -1,    -1,    72,    -1,  1224,    -1,    76,
    3362       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3363       87,    -1,    -1,   709,    -1,  1242,   712,    94,    -1,  1271,
    3364       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1279,  1280,  1281,
    3365       -1,    -1,   109,    -1,   111,    -1,    -1,   114,  1290,  1291,
    3366       -1,   118,   119,   120,   121,   122,   123,    -1,  1415,    -1,
    3367       -1,    -1,  1304,   749,    -1,    -1,    -1,    -1,    -1,    -1,
    3368       -1,    -1,    -1,  1290,  1291,    -1,    -1,    -1,    -1,    -1,
    3369       -1,    -1,  1299,    -1,    -1,    -1,    -1,  1304,    -1,    -1,
     3337      26,    27,    28,    -1,    30,    31,    32,  1337,    -1,  1339,
     3338    1340,  1341,    -1,    39,    -1,    -1,   328,    -1,    -1,   578,
     3339      -1,  1351,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3340    1360,   590,    -1,    -1,    -1,   594,    -1,    -1,   350,    -1,
     3341      -1,    67,    -1,   355,   356,    -1,    72,    -1,    74,    75,
     3342      76,   363,    78,    -1,    -1,  1385,    -1,    83,    84,    -1,
     3343      -1,   620,    -1,    -1,   147,    -1,   625,    -1,    -1,    -1,
     3344      -1,    -1,    -1,    -1,   157,   634,   635,   636,    -1,    44,
     3345      -1,    -1,    -1,   109,    -1,   111,   169,   170,    -1,    -1,
     3346      -1,   117,   118,   652,   406,    -1,    -1,    -1,  1428,  1429,
    33703347      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3371       -1,    -1,    -1,  1345,    -1,    -1,    -1,  1464,    -1,   795,
    3372       -1,    -1,    -1,    -1,  1471,    -1,    -1,    -1,    -1,   805,
    3373     1337,   807,    -1,    -1,    -1,    -1,   812,    -1,    -1,   815,
    3374       -1,    -1,    -1,   819,    -1,    10,    11,    12,    13,    14,
    3375       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3376       25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
    3377       -1,    -1,    67,    -1,    39,    -1,    -1,  1524,    -1,    -1,
    3378       -1,    -1,    77,  1415,    79,    -1,    81,    -1,    -1,    -1,
    3379       -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,
    3380       -1,    -1,    67,    -1,    -1,   881,    -1,    72,  1415,    74,
    3381       75,    76,    -1,    78,    -1,    -1,    -1,    -1,    83,    84,
    3382       -1,    -1,    -1,    -1,   119,    -1,   121,   122,   123,    94,
    3383       -1,    -1,  1464,  1440,    -1,   911,    -1,    -1,    -1,  1471,
    3384       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    26,
    3385       27,    28,    -1,   118,   119,    -1,    -1,  1464,    -1,    -1,
    3386       -1,    -1,    37,    38,  1471,    40,    -1,   162,   701,    -1,
    3387      703,    -1,    -1,    -1,    -1,    -1,    -1,   710,   711,    -1,
    3388       -1,    -1,   715,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3389      966,    66,  1524,    50,   727,    -1,    -1,    72,    -1,   732,
    3390       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3391       67,    86,    87,    -1,    -1,    -1,    -1,  1524,    -1,    94,
    3392       -1,    -1,    -1,   100,    -1,   102,    -1,    -1,   223,   762,
    3393      225,   226,   227,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3394       -1,    -1,   117,   118,   119,   120,   121,   122,   123,    -1,
    3395      127,  1027,  1028,    -1,  1030,  1031,    -1,    -1,   115,    -1,
    3396       -1,    -1,   119,    -1,    -1,    -1,   261,    -1,    -1,    -1,
    3397       -1,   266,    -1,    -1,  1050,    -1,    -1,    -1,   284,    -1,
    3398      286,   287,    -1,    -1,    -1,    -1,   281,    -1,   294,   295,
    3399       -1,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3400       -1,   158,   308,   309,    -1,   162,   183,    -1,    -1,  1085,
    3401     1086,    -1,    -1,    -1,   191,    -1,   193,   194,    -1,    -1,
    3402       -1,   198,    -1,   200,   201,    -1,    -1,    -1,    -1,    -1,
    3403      863,   864,   865,   866,   329,   868,    -1,    -1,    -1,    -1,
    3404      346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3405       -1,   884,    -1,    -1,   211,    -1,   351,    -1,    -1,    -1,
    3406       -1,   356,   357,    -1,    -1,   898,   223,    -1,    -1,   364,
    3407       -1,    -1,    -1,    -1,    -1,    -1,   382,    -1,    -1,    -1,
    3408       -1,    -1,    -1,  1159,   241,    -1,    -1,    -1,    -1,    -1,
    3409       -1,    -1,    -1,   270,    -1,    -1,    -1,    -1,    -1,    -1,
    3410       -1,    -1,    -1,    -1,    -1,   938,    -1,    -1,    -1,   266,
    3411       -1,    -1,   407,    -1,    -1,    -1,   273,    -1,    -1,    -1,
    3412       -1,    -1,    -1,    -1,    -1,    -1,  1202,    -1,    -1,    -1,
    3413      425,    -1,    -1,    -1,    -1,   430,    -1,   432,    -1,   296,
    3414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1224,    -1,
    3415       -1,   308,   985,    -1,   449,    -1,    -1,   452,   453,   992,
    3416     1236,    -1,  1238,    -1,   997,   460,    -1,    -1,    -1,  1002,
    3417       -1,  1004,    -1,    -1,    -1,  1008,    -1,  1010,  1011,   474,
    3418       -1,  1014,    -1,    -1,    -1,    -1,   481,    -1,    -1,   346,
    3419     1023,    -1,    -1,    -1,   351,  1271,    -1,    -1,    -1,    -1,
    3420       -1,    -1,    -1,  1279,  1280,  1281,    -1,    -1,  1041,  1042,
    3421       -1,    -1,    -1,    -1,  1290,  1291,    -1,    -1,    -1,    -1,
    3422       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1304,    -1,
    3423       -1,    -1,    -1,    -1,    -1,  1068,    -1,    -1,  1071,    -1,
    3424       -1,    -1,    -1,    -1,   550,   551,   552,   553,   554,   555,
    3425      556,   557,   558,   559,   560,   561,   562,   563,   564,   565,
    3426      566,   567,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1345,
    3427      427,   428,    -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,
    3428       -1,  1114,    -1,    -1,    -1,    -1,    -1,  1120,  1121,    -1,
    3429       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   455,  1132,
    3430      595,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1142,
    3431       -1,    -1,  1145,    -1,  1147,    -1,    -1,  1150,    -1,    -1,
    3432       -1,    -1,    -1,    -1,    -1,    -1,   483,    -1,   623,    -1,
    3433     1163,    -1,    -1,   628,    -1,    -1,    -1,    -1,   495,  1415,
    3434       -1,    -1,    -1,  1176,    -1,  1178,  1179,  1180,  1181,    -1,
    3435      507,    -1,   509,    -1,    -1,   512,    -1,   514,   515,    -1,
    3436       -1,  1194,    -1,  1196,    -1,    -1,    -1,  1200,    -1,    -1,
    3437      527,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3438       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1464,    -1,
    3439       -1,   697,    -1,    -1,    -1,  1471,  1229,  1230,   575,   576,
    3440       -1,    -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,
    3441       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   714,
    3442       -1,    -1,   579,    -1,    -1,    -1,    -1,   604,    -1,    -1,
    3443      607,   608,    -1,   610,   591,   612,   613,    -1,   595,   734,
    3444      617,   618,    -1,    -1,    -1,    -1,    -1,    -1,  1524,  1282,
    3445     1283,    -1,    -1,    -1,   760,    -1,    -1,    -1,    -1,  1292,
    3446       -1,    -1,    -1,    -1,   621,    -1,    -1,    -1,    -1,   626,
    3447       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   635,   636,
    3448      637,    -1,    -1,    -1,    -1,    -1,   792,    -1,    -1,     7,
    3449       -1,    -1,    10,    11,    12,    13,    14,   654,    -1,    -1,
    3450       -1,    -1,    -1,    -1,   799,    -1,    -1,    -1,    -1,    -1,
    3451     1343,    -1,    45,    -1,    -1,    -1,   811,    -1,    -1,    37,
    3452       38,    39,    40,  1356,    -1,  1358,  1359,  1360,    -1,   686,
    3453       -1,    -1,    -1,    -1,    -1,   830,    -1,  1370,    -1,    -1,
    3454       -1,    -1,    -1,    -1,    -1,    -1,  1379,    -1,    66,    67,
    3455       -1,    -1,    -1,    -1,    72,   712,    -1,   714,    76,    -1,
    3456       93,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3457      103,    -1,    -1,  1406,    -1,    -1,    94,    -1,    -1,    -1,
    3458       -1,   758,   759,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3459       -1,   109,   749,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3460      118,   119,   120,   121,   122,   123,    -1,   913,    -1,    -1,
    3461       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1451,  1452,
    3462       -1,    -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,    -1,
    3463       -1,  1464,    -1,    -1,    -1,    -1,    -1,    -1,  1471,    -1,
    3464      173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   944,
    3465      807,    -1,   958,    -1,   811,    -1,    -1,    -1,   815,    -1,
    3466       -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
    3467       -1,  1504,    -1,    -1,    -1,  1508,    -1,   210,    -1,    -1,
    3468       -1,   976,    -1,    -1,    -1,    -1,   219,    -1,    -1,    -1,
    3469      996,    -1,    -1,    -1,    -1,    -1,   229,    -1,    -1,    -1,
    3470       -1,    -1,    -1,  1009,  1537,    -1,  1539,    -1,    -1,    -1,
    3471       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,    -1,
    3472       -1,   254,    -1,    -1,    -1,    -1,   259,    -1,  1023,    -1,
    3473       -1,    -1,    -1,    -1,  1567,  1568,    -1,    -1,    -1,   272,
    3474       -1,   918,  1575,  1576,  1050,   278,   923,   280,    -1,    -1,
    3475       -1,    -1,    -1,    -1,   911,    -1,    -1,    -1,    -1,    -1,
    3476       -1,    -1,    -1,    -1,   297,    -1,    -1,    -1,    -1,   926,
     3348      -1,  1441,   424,    -1,    -1,    -1,    -1,   429,  1448,   431,
     3349      37,    38,    -1,    40,    -1,   684,    -1,    92,    -1,    -1,
     3350      -1,    -1,    -1,    -1,    -1,    -1,   448,   102,    -1,   451,
     3351     452,    -1,    -1,    -1,    -1,    -1,    -1,   459,    -1,    66,
     3352    1480,   710,    -1,   712,  1484,    72,    -1,   240,    -1,    76,
     3353      -1,   473,    79,    80,    81,    82,    83,    84,   480,    86,
     3354      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3355      -1,   264,  1512,    -1,  1514,    -1,   745,    -1,    -1,    -1,
     3356      -1,    -1,   109,   158,   111,    -1,    -1,   114,    -1,    -1,
     3357     117,   118,   119,   120,   121,   122,    -1,   172,    -1,    -1,
     3358      -1,    -1,  1542,  1543,    -1,    -1,    -1,    -1,    -1,    -1,
     3359    1550,  1551,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3360     195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3361      -1,    -1,   801,    -1,   209,    -1,   805,    -1,    -1,    -1,
     3362     809,    -1,    -1,   218,    -1,    -1,    -1,    -1,    -1,    -1,
     3363      -1,    -1,    -1,   228,    -1,    -1,    -1,    -1,    -1,    -1,
     3364      -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
     3365      -1,    -1,   594,    -1,    -1,    -1,    -1,    -1,   253,    -1,
     3366      -1,    -1,    -1,   258,    -1,    -1,    -1,   380,    -1,    -1,
     3367      -1,    -1,    -1,    66,    -1,    -1,   271,    -1,    -1,    72,
     3368     622,    -1,   277,    76,   279,   627,    79,    80,    81,    82,
     3369      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3370      -1,   296,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3371      -1,    -1,    -1,    -1,    -1,   904,   109,    -1,   111,    -1,
     3372      -1,    -1,    -1,   116,   117,   118,   119,   120,   121,   122,
     3373     919,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3374      -1,    -1,    -1,   338,    -1,    -1,    -1,    -1,   343,    -1,
     3375      -1,    -1,    -1,    -1,   943,    -1,   698,    -1,    -1,    -1,
     3376      -1,   474,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3377     712,    -1,    -1,    -1,    -1,    -1,    -1,   372,    -1,    -1,
     3378      -1,   376,   377,    -1,   379,    -1,    -1,    -1,    -1,    -1,
     3379     732,   386,   387,    -1,   389,   390,    -1,   392,    -1,   394,
     3380     513,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3381     999,    -1,    -1,   526,    -1,    -1,   411,    -1,   531,    -1,
     3382      -1,   534,    -1,    -1,   419,    -1,    -1,    -1,    -1,    -1,
     3383      -1,  1020,  1021,   546,    -1,    -1,    -1,    -1,    -1,    -1,
     3384      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   444,
     3385      -1,   793,    -1,    -1,    -1,   568,    -1,    -1,    -1,    -1,
     3386      -1,    -1,    -1,   805,    -1,   578,    -1,    -1,    -1,    -1,
     3387      -1,    -1,   585,    -1,    -1,   470,    -1,   590,    -1,    -1,
     3388      -1,   476,   824,    -1,    -1,    -1,   481,    -1,    -1,    -1,
     3389      -1,  1080,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
     3390       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3391      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3392      27,    -1,   517,    30,    31,    32,   639,    -1,    -1,    -1,
     3393      -1,    -1,    39,    -1,   647,    -1,    -1,   532,    -1,    -1,
    34773394      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3478       -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
    3479       -1,    -1,    -1,   950,    -1,    -1,    -1,    -1,    -1,    -1,
    3480     1095,    -1,    -1,    -1,    -1,    -1,   339,    -1,    -1,   966,
    3481       -1,   344,    -1,    66,  1109,    -1,    -1,    -1,    -1,    72,
    3482       -1,  1127,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3483       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3484      373,    94,    -1,    -1,   377,   378,    -1,   380,    -1,    -1,
    3485       -1,    -1,  1009,    -1,   387,   388,   109,   390,   391,    -1,
    3486      393,    -1,   395,    -1,    -1,   118,   119,   120,   121,   122,
    3487      123,    -1,    -1,  1030,  1031,    -1,    -1,    -1,    -1,   412,
    3488       -1,    -1,    -1,    -1,  1190,  1191,    -1,   420,    -1,    -1,
     3395      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1146,    -1,    -1,
     3396      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3397      -1,    -1,    -1,    37,    38,   570,    40,    -1,    -1,    -1,
     3398      -1,    -1,    -1,    -1,   579,    -1,    -1,    -1,    -1,    -1,
     3399      -1,   586,    -1,    -1,    -1,   937,    -1,   592,    -1,  1188,
     3400      -1,    -1,    66,    -1,   111,    -1,   601,    -1,    72,    -1,
     3401     117,   118,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3402      84,    -1,    86,    87,    -1,   967,    -1,    -1,    -1,    -1,
     3403      -1,    -1,   745,    -1,   747,    -1,  1225,    -1,    -1,   156,
     3404     157,    -1,    -1,    -1,   757,   109,   641,   111,    -1,    -1,
     3405     763,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3406    1002,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3407      -1,  1013,    -1,   190,    -1,    -1,    -1,    -1,    -1,    -1,
     3408     197,    -1,   677,    -1,    -1,  1274,  1275,    -1,    -1,    -1,
     3409     685,    -1,   805,   806,  1283,    -1,   809,    -1,    -1,    -1,
     3410      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   283,
     3411     823,   285,   286,    -1,    -1,    -1,    -1,    -1,    -1,   293,
     3412     294,   716,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3413      -1,   726,   727,   307,   308,    -1,    -1,    -1,    -1,    -1,
     3414      -1,    -1,    -1,  1085,    -1,    -1,    -1,    -1,    -1,    -1,
     3415     863,    -1,   269,    -1,   867,    -1,    -1,  1099,    -1,    -1,
     3416      -1,    -1,    -1,    -1,   759,    -1,    -1,    -1,    -1,   764,
     3417      -1,   345,    10,    11,    12,    13,    14,    15,    16,    17,
     3418      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3419      -1,   904,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3420      -1,    39,    40,    -1,    -1,  1394,   323,   381,    -1,    -1,
     3421      -1,    -1,    -1,    -1,   331,   332,    -1,   334,   335,    -1,
     3422      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,    67,
     3423     943,    -1,   349,   828,    -1,    -1,    74,    75,    -1,    -1,
     3424     835,    -1,    -1,    -1,    -1,    -1,  1188,    -1,    -1,    -1,
     3425      -1,   368,    -1,   848,   371,   850,    -1,    -1,   971,    -1,
     3426      -1,  1450,    -1,  1452,   977,    -1,    -1,    -1,   981,   864,
     3427      -1,    -1,    -1,   111,    -1,   870,    -1,   115,    -1,   117,
     3428     118,   398,    -1,    -1,    -1,   402,    -1,   882,    -1,  1002,
     3429     885,    -1,    -1,    -1,    -1,    -1,    -1,  1486,    -1,  1488,
     3430    1013,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3431      -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     3432      -1,    -1,  1035,    -1,  1037,    -1,  1515,    -1,    -1,    -1,
     3433      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1052,
     3434    1053,  1283,    10,    11,    12,    13,    14,    15,    16,    17,
     3435      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3436    1073,    -1,   479,    -1,    -1,   482,    -1,   962,    -1,    -1,
     3437      -1,    39,    -1,    -1,    -1,   549,   550,   551,   552,   553,
     3438     554,   555,   556,   557,   558,   559,   560,   561,   562,   563,
     3439     564,   565,   566,    -1,    -1,    -1,    -1,    37,    38,    67,
     3440      40,    -1,   997,    -1,   521,    -1,    -1,    -1,   525,   526,
     3441      -1,    -1,    -1,    -1,    -1,  1128,    -1,    -1,    -1,    -1,
     3442      -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
     3443      -1,    -1,    72,  1146,    -1,    -1,    76,    -1,    -1,    79,
     3444      80,    81,    82,    83,    84,    -1,    86,    87,  1161,  1162,
     3445      -1,    -1,    -1,   570,   571,    -1,    -1,    -1,    -1,    -1,
     3446    1055,    -1,    -1,    -1,    -1,    -1,  1061,    -1,    -1,   109,
     3447      -1,   111,   589,   590,   114,    -1,    -1,   117,   118,   119,
     3448     120,   121,   122,   600,    -1,   602,   603,    -1,    -1,    -1,
     3449      -1,    -1,   609,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3450    1095,    -1,   619,   620,    -1,  1100,    -1,    -1,   625,    -1,
     3451      -1,    -1,    -1,  1108,    -1,    -1,    -1,   634,   635,   636,
     3452      -1,   695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3453      -1,    -1,    -1,    -1,    -1,   652,    -1,    -1,    -1,    -1,
     3454     657,   658,    -1,    -1,   661,   662,  1141,    -1,    -1,    -1,
     3455      -1,   668,    -1,    -1,    -1,    -1,    -1,    -1,  1153,    -1,
     3456      -1,  1156,    -1,  1158,    -1,    -1,    -1,    -1,    -1,    -1,
     3457     687,    -1,    -1,    -1,    -1,    -1,    -1,  1172,  1173,    -1,
     3458      -1,    -1,   756,    -1,    -1,    -1,    -1,    -1,  1530,  1302,
     3459      -1,    -1,  1305,   710,   711,    -1,    -1,    -1,    -1,  1194,
    34893460      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3490       -1,    -1,    -1,    -1,    -1,    -1,  1201,    -1,    -1,    -1,
    3491     1087,    -1,   445,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3461      -1,    -1,   786,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3462      -1,    -1,    -1,    -1,    -1,    -1,    -1,   744,   745,    -1,
     3463      -1,    -1,   749,   750,    -1,    -1,    -1,    -1,    -1,    -1,
     3464      -1,    -1,    -1,    -1,    -1,    -1,  1241,    -1,    -1,    -1,
     3465      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3466      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3467      -1,    30,    31,    32,    -1,    -1,   793,    -1,    -1,    -1,
     3468      39,    -1,    -1,    -1,   801,    -1,    -1,    -1,    -1,    -1,
     3469      -1,   808,   809,    -1,    -1,   812,    -1,   814,    -1,    -1,
     3470      -1,    -1,    -1,    -1,    -1,    -1,    -1,   824,    67,    -1,
     3471      -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    78,
     3472      -1,  1316,    -1,  1318,    83,    84,    -1,    -1,    -1,    -1,
     3473      -1,    -1,   906,    -1,    -1,  1330,    -1,  1332,    -1,    -1,
    34923474      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3493       -1,    -1,    -1,  1090,    -1,    -1,    -1,    -1,   471,    -1,
    3494       -1,    -1,    -1,    -1,   477,    -1,    -1,     0,    -1,   482,
    3495        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3496       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3497       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3498       33,    -1,    -1,    36,    -1,   518,    39,    40,    -1,    -1,
     3475      -1,    -1,   111,    -1,  1349,    -1,    -1,    -1,   117,   118,
    34993476      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3500      533,    -1,  1159,    -1,  1299,    -1,    -1,    -1,    -1,    -1,
    3501       -1,    64,    -1,    -1,    67,    -1,    69,    -1,    71,    72,
    3502       -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
    3503       83,    84,    -1,    -1,    -1,    -1,    -1,    -1,   571,    -1,
    3504       -1,    94,  1219,    -1,  1201,    -1,    -1,   580,    -1,   157,
    3505      158,    -1,    -1,    -1,   587,    -1,   109,    -1,   111,    -1,
    3506      593,    -1,    -1,    -1,    -1,   118,   119,    -1,    -1,   602,
     3477    1365,  1366,    -1,    -1,    -1,    -1,    -1,   951,    -1,   896,
     3478      -1,  1376,    -1,    -1,  1379,    -1,   903,   904,   905,    -1,
     3479     907,    -1,    -1,    -1,   911,    -1,    -1,    -1,    -1,    -1,
     3480      -1,    -1,  1515,    -1,    -1,  1400,    -1,    -1,    -1,    -1,
     3481      -1,    -1,   986,    -1,  1409,   932,   933,  1412,    -1,  1414,
     3482    1415,  1416,    -1,    -1,    -1,   999,    10,    11,    12,    13,
     3483      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3484      24,    25,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,
     3485     967,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,  1454,
     3486      -1,  1456,    -1,  1458,    -1,    -1,  1040,    -1,    -1,    -1,
     3487      -1,   988,   989,    -1,    -1,    -1,    -1,    -1,  1473,    -1,
     3488      -1,    -1,   999,    67,    -1,    -1,    -1,    -1,  1005,  1006,
     3489      -1,  1008,  1009,  1010,    78,    -1,    -1,    -1,    -1,    -1,
     3490      -1,    -1,    -1,  1020,  1021,    -1,    -1,    -1,    -1,    -1,
     3491      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
     3492       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3493      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3494      26,    27,    -1,  1117,    30,    31,    32,    33,    -1,    -1,
     3495      36,    37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,
     3496      -1,    -1,    -1,    -1,    -1,    -1,  1083,    -1,  1085,    -1,
     3497      -1,    -1,    -1,  1090,    -1,    -1,    -1,    -1,    -1,    -1,
     3498      66,    67,  1099,    69,    -1,    71,    72,    -1,    74,    75,
     3499      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3500      86,    87,    -1,  1177,  1178,  1122,  1123,  1124,    -1,    -1,
    35073501      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3508       -1,  1238,    -1,   191,    -1,    -1,    -1,    -1,    -1,    -1,
    3509      198,    -1,    -1,    -1,    -1,  1401,    -1,    -1,    -1,    -1,
    3510       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3511      643,    -1,    -1,  1419,    -1,    -1,    -1,    -1,    -1,    -1,
    3512       -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    3513       -1,    -1,    -1,  1290,  1291,    -1,    -1,    -1,    -1,    -1,
    3514       -1,    -1,  1299,    -1,    -1,    -1,   679,    -1,    -1,    -1,
    3515       66,    -1,    -1,    -1,   687,    -1,    72,    -1,    -1,    -1,
    3516       76,    -1,   270,    79,    80,    81,    82,    83,    84,    -1,
    3517       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    3518       -1,    -1,    -1,    -1,    -1,   718,  1492,  1493,    -1,    -1,
    3519       -1,    -1,    -1,   109,    -1,   728,   729,    -1,    -1,    -1,
    3520       -1,    -1,   118,   119,   120,   121,   122,   123,    -1,   742,
    3521       -1,    -1,    -1,    -1,    -1,    -1,   324,    -1,    -1,    -1,
    3522       -1,    -1,    -1,    -1,   332,   333,    -1,   335,   336,    -1,
    3523      763,    -1,   765,    -1,    -1,    -1,   769,    -1,   346,    -1,
    3524       -1,    -1,   350,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3525       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1415,    -1,
    3526     1555,   369,    -1,    -1,   372,    10,    11,    12,    13,    14,
    3527       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3528       25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
    3529       -1,   399,    -1,    -1,    39,   403,    -1,    -1,    -1,    -1,
    3530       -1,   834,    -1,    -1,    -1,    -1,    -1,    -1,   841,    -1,
    3531       -1,    -1,    -1,    -1,    -1,    -1,  1473,    -1,  1475,    -1,
    3532       -1,   854,    67,   856,    -1,    -1,   434,    72,    -1,    74,
    3533       75,    76,    -1,    78,    -1,    -1,    -1,   870,    83,    84,
    3534       -1,    -1,    -1,    -1,   877,    -1,    -1,    -1,    -1,    94,
    3535       -1,    -1,    -1,  1510,   148,  1512,   889,    -1,    -1,   892,
    3536       -1,    -1,    -1,    -1,   158,    -1,   111,    -1,    -1,    -1,
    3537       -1,    -1,   480,   118,   119,   483,   170,   171,    -1,    -1,
    3538       -1,    -1,    -1,  1540,     3,     4,     5,     6,     7,     8,
    3539        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3540       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3541       -1,    30,    31,    32,   522,    -1,    -1,    -1,   526,   527,
    3542       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3543       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   971,    -1,
    3544       -1,    -1,    -1,    -1,    -1,    -1,    -1,   241,    67,    -1,
    3545       69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,
    3546       -1,    -1,    -1,   571,   572,    -1,    -1,    -1,    -1,    -1,
    3547       -1,   265,    -1,    -1,  1007,    94,    -1,    -1,    -1,    -1,
    3548       -1,    -1,   590,   591,    -1,    -1,    -1,    -1,    -1,    -1,
    3549       -1,    -1,   111,   601,    -1,   603,   604,    -1,    -1,   118,
    3550      119,    -1,   610,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3551       -1,    -1,   620,   621,    -1,    -1,    -1,    -1,   626,    -1,
    3552       -1,    -1,    -1,    -1,    -1,    -1,    -1,   635,   636,   637,
    3553       -1,    -1,  1065,    -1,    -1,    -1,    -1,    -1,  1071,    -1,
    3554       -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,    -1,    -1,
    3555       -1,   659,   660,    -1,    -1,   663,   664,    -1,    -1,    -1,
    3556       -1,    -1,   670,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3557       -1,    -1,  1105,    -1,    -1,    -1,    -1,  1110,    -1,    -1,
    3558       -1,   689,    -1,    -1,    -1,  1118,    -1,   381,    -1,    -1,
    3559       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3560       -1,    -1,    -1,    -1,   712,   713,    -1,    -1,    -1,    -1,
    3561       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3562       -1,  1154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3563       -1,    -1,    -1,  1166,    -1,    -1,  1169,    -1,  1171,    -1,
    3564      748,   749,    -1,    -1,    -1,   753,   754,    -1,    -1,    -1,
    3565       -1,    -1,  1185,  1186,    -1,    -1,    -1,    -1,    -1,    -1,
    3566       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3567       -1,    -1,    -1,    -1,  1207,    -1,    -1,    -1,    -1,    -1,
    3568       -1,   475,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
    3569       -1,   799,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   807,
    3570       -1,    -1,    -1,    -1,    -1,    -1,   814,   815,    -1,    -1,
    3571      818,    66,   820,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3572      514,    76,   830,  1256,    79,    80,    81,    82,    83,    84,
    3573       -1,    86,    87,   527,    -1,    -1,    -1,    -1,   532,    94,
    3574       -1,   535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3575       -1,    -1,   546,   547,   109,    -1,   111,    -1,    -1,    -1,
    3576       -1,   116,    -1,   118,   119,   120,   121,   122,   123,    -1,
    3577       -1,    -1,    -1,    -1,    -1,   569,    -1,    -1,    -1,    -1,
    3578       -1,    -1,    -1,    -1,    -1,   579,    -1,    -1,    -1,    -1,
    3579       -1,    -1,   586,    -1,    -1,   903,    -1,   591,    -1,  1332,
    3580       -1,  1334,   910,   911,   912,    -1,   914,    -1,    -1,    -1,
    3581      918,    -1,    -1,    -1,    -1,  1348,    -1,  1350,    -1,    -1,
    3582       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3583       -1,   939,   940,    -1,    -1,  1368,    -1,    -1,    -1,    -1,
    3584       -1,    -1,    -1,    -1,    -1,    -1,   640,    -1,    -1,    -1,
    3585       -1,  1384,  1385,    -1,    -1,   649,    -1,    -1,   966,    -1,
    3586       -1,    -1,  1395,    -1,    -1,  1398,    -1,    -1,   976,    10,
    3587       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3588       21,    22,    23,    24,    25,    26,    27,    28,  1421,    -1,
    3589      998,   999,    -1,    -1,    -1,    -1,    -1,  1430,    39,    -1,
    3590     1433,  1009,  1435,  1436,  1437,    -1,    -1,  1015,  1016,    -1,
    3591     1018,  1019,  1020,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3592       -1,    -1,  1030,  1031,    -1,    -1,    67,    -1,    -1,    -1,
    3593       -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,
    3594       -1,    -1,    -1,    -1,  1477,    -1,  1479,    -1,  1481,    -1,
    3595       -1,    -1,    -1,    -1,    -1,   749,    -1,   751,    -1,    -1,
    3596       -1,    -1,    -1,    -1,  1497,    -1,    -1,   761,    -1,    -1,
    3597       -1,    -1,    -1,    -1,   768,    -1,    -1,    -1,    -1,    -1,
    3598       -1,    -1,    -1,    -1,    -1,  1093,    -1,  1095,    -1,    -1,
    3599       -1,    -1,  1100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3600       -1,  1109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,
    3601       -1,    -1,    10,    11,    12,    13,    14,   811,   812,    -1,
    3602       -1,   815,    -1,    -1,    -1,    -1,  1134,  1135,  1136,    -1,
    3603       -1,    -1,    -1,    -1,    -1,   829,    -1,    -1,    -1,    37,
    3604       38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3605       -1,  1159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3606       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
    3607       -1,    -1,    -1,    -1,    72,   869,    -1,    -1,    76,   873,
    3608       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3609       -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
    3610       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3611       -1,   109,  1220,   111,    -1,    -1,    -1,   911,    -1,    -1,
    3612      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
    3613     1238,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3614       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3615       23,    24,    25,    26,    27,    -1,   950,    30,    31,    32,
    3616       -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,
    3617       -1,    -1,   966,   967,    -1,    -1,    -1,    -1,    -1,    -1,
    3618       -1,    -1,  1290,  1291,    -1,    -1,   980,    -1,    -1,    -1,
    3619       -1,    -1,   986,    66,    67,   989,    69,   991,    71,    72,
    3620       -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3621       83,    84,    -1,    86,    87,    -1,    -1,    -1,  1012,    -1,
    3622       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1023,
    3623       -1,    37,    38,    -1,    40,    -1,   109,    -1,   111,    -1,
    3624       -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,   122,
    3625      123,  1045,    -1,  1047,    -1,    -1,    -1,    -1,    -1,    -1,
    3626       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,  1062,  1063,
    3627       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3628       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,  1083,
    3629       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3630       -1,    -1,    -1,   109,    -1,   111,    -1,  1415,   114,    -1,
    3631       -1,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
    3632       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3633       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3634       22,    23,    24,    25,    26,    27,  1140,    -1,    30,    31,
    3635       32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,    -1,
    3636       -1,    -1,    -1,    -1,    -1,  1159,    -1,    -1,    -1,    -1,
    3637       -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    3638     1174,  1175,    64,    -1,    -1,    67,    -1,    69,    -1,    71,
    3639       72,    -1,    74,    75,    76,    -1,    -1,  1505,    -1,    -1,
    3640       66,    83,    84,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    3641       76,    -1,    94,    79,    80,    81,    82,    83,    84,    -1,
    3642       86,    87,  1530,  1531,    -1,    -1,    -1,   109,    94,   111,
    3643       -1,    -1,    -1,   115,    -1,    -1,   118,   119,    -1,    -1,
    3644       -1,    -1,    -1,   109,    -1,   111,    -1,  1555,    -1,    -1,
    3645       -1,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
    3646     1254,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    3647       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3648       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3649       31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
    3650       41,    -1,    43,    -1,    -1,    46,    47,    48,    49,    50,
    3651       51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,
    3652       61,    62,    -1,    64,  1318,    66,    67,  1321,    69,    -1,
    3653       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3654       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3655       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3656       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3657      111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,
    3658      121,   122,   123,    -1,    -1,    -1,    -1,   128,    -1,    -1,
    3659       -1,   132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3660       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3661       -1,  1405,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
     3502      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,  1146,
     3503      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3504      -1,    -1,    -1,    -1,    -1,    -1,   132,    -1,     3,     4,
    36623505       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    36633506      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    36643507      25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
    3665       -1,    36,    37,    38,    39,    40,    10,    11,    12,    13,
     3508      -1,    36,    37,    38,    39,    40,    41,    -1,    43,    -1,
     3509    1207,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3510      -1,    -1,    57,    -1,    -1,    -1,    61,    62,  1225,    64,
     3511      -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3512      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3513      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3514      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3515      -1,    -1,    -1,    -1,   109,    -1,   111,  1274,  1275,   114,
     3516      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3517      -1,    -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,
     3518      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3519      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3520      21,    22,    23,    24,    25,    26,    27,    -1,  1382,    30,
     3521      31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
     3522      -1,    -1,    -1,    -1,  1398,    -1,    -1,    -1,    -1,    -1,
     3523      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3524      -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
     3525      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3526      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3527      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1394,    -1,    -1,
     3528      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3529     111,    -1,    -1,    -1,  1468,  1469,   117,   118,   119,   120,
     3530     121,   122,    -1,     4,     5,     6,     7,     8,     9,    10,
     3531      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3532      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3533      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3534      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3535      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3536      27,    28,    -1,    -1,  1481,    66,    67,    -1,    69,    -1,
     3537      71,    72,    39,    74,    75,    76,    -1,    -1,    79,    80,
     3538      81,    82,    83,    84,    -1,    86,    87,    -1,  1505,  1506,
     3539      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3540      67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3541     111,    78,    -1,  1530,    -1,   116,   117,   118,   119,   120,
     3542     121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
     3543      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3544      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3545      32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    10,
     3546      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3547      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3548      31,    32,    -1,    -1,    66,    67,    -1,    69,    39,    71,
     3549      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3550      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3551      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3552      -1,    72,    -1,    74,    75,    -1,    -1,   109,    -1,   111,
     3553      -1,    -1,    83,    84,   116,   117,   118,   119,   120,   121,
     3554     122,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3555      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3556      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3557      -1,    -1,    -1,    -1,    37,    38,    39,    40,    10,    11,
     3558      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3559      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3560      32,    -1,    -1,    66,    67,    -1,    69,    39,    71,    72,
     3561      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
     3562      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3563      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3564      -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3565      -1,    -1,    -1,   116,   117,   118,   119,   120,   121,   122,
     3566       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    36663567      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    36673568      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3668       -1,    66,    67,    -1,    69,    39,    71,    72,    -1,    74,
    3669       75,    76,    -1,  1487,    79,    80,    81,    82,    83,    84,
    3670       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3671       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,
    3672       74,    75,    -1,    -1,   109,    -1,   111,    -1,    -1,    83,
    3673       84,    -1,    -1,   118,   119,   120,   121,   122,   123,    -1,
    3674       -1,    -1,    -1,    -1,    -1,    -1,  1540,   132,     3,     4,
    3675        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3676       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3677       25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
    3678       -1,    36,    37,    38,    39,    40,    -1,    -1,    -1,    10,
    3679       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3680       21,    22,    23,    24,    25,    26,    27,    28,    -1,    -1,
    3681       -1,    66,    67,    -1,    69,    -1,    71,    72,    39,    74,
    3682       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3683       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3684       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
    3685       -1,    -1,    -1,    -1,   109,    -1,   111,    78,    -1,    -1,
    3686       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     4,
    3687        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3688       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3689       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3690       -1,    -1,    37,    38,    39,    40,    10,    11,    12,    13,
    3691       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3692       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3693       -1,    66,    67,    -1,    69,    39,    71,    72,    -1,    74,
    3694       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3695       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3696       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
    3697       74,    75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3698       -1,   116,    -1,   118,   119,   120,   121,   122,   123,     4,
    3699        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3700       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3701       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3702       -1,    -1,    37,    38,    39,    40,    10,    11,    12,    13,
    3703       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3704       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3705       -1,    66,    67,    -1,    69,    39,    71,    72,    -1,    74,
    3706       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3707       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3708       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
    3709       74,    75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3710       -1,   116,    -1,   118,   119,   120,   121,   122,   123,     4,
     3569      -1,    -1,    -1,    37,    38,    39,    40,    10,    11,    12,
     3570      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3571      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3572      -1,    -1,    66,    67,    -1,    69,    39,    71,    72,    -1,
     3573      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3574      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3575      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
     3576      -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3577      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     4,
    37113578       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    37123579      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    37173584      -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    37183585      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3719       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
     3586      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37203587      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37213588      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3722       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     4,
    3723        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3724       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3725       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3726       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3589      -1,    -1,   117,   118,   119,   120,   121,   122,     4,     5,
     3590       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3591      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3592      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     3593      -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,
    37273594      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37283595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3729       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3730       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3731       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
     3596      66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
     3597      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3598      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37323599      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3733       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3734       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     4,
    3735        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3736       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3737       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3738       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3600      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3601      -1,   117,   118,   119,   120,   121,   122,     4,     5,     6,
     3602       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3603      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3604      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3605      37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    37393606      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3607      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3608      67,    -1,    69,    -1,    71,    72,    -1,    74,    75,    76,
     3609      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3610      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37403611      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3741       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3742       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3743       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3745       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3746       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     4,
    3747        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3748       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3749       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3750       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3751       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3753       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3754       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3755       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3756       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3757       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3758       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     3,
     3612      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3613     117,   118,   119,   120,   121,   122,     0,    -1,    -1,     3,
    37593614       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    37603615      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    37663621      74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    37673622      84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3768       94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3623      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37693624      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3770       -1,    -1,    -1,    -1,   118,   119,     3,     4,     5,     6,
     3625      -1,    -1,    -1,   117,   118,     3,     4,     5,     6,     7,
     3626       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3627      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3628      -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
     3629      -1,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3630      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3631      -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,
     3632      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3633      -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
     3634      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3635      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3636      -1,   109,    -1,   111,    -1,    -1,    -1,   115,    -1,   117,
     3637     118,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3638      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3639      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3640      32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,    -1,
     3641      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3643      -1,    -1,    64,    -1,    -1,    67,    -1,    69,    -1,    71,
     3644      72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,
     3645      -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3646      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3647      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3648      -1,    -1,    -1,    -1,    -1,   117,   118,     3,     4,     5,
     3649       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3650      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3651      26,    27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,
     3652      36,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
     3653      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3654      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3655      -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
     3656      -1,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3657      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3658      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3659      -1,    -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,
     3660      -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3661      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3662      -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,
     3663      -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
     3664      83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3665      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3666      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     3667      -1,    -1,    -1,    -1,   117,   118,     4,     5,     6,     7,
     3668       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3669      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3670      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3671      -1,    39,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3672      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3673      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    67,
     3674      -1,    69,    -1,    71,    -1,    39,    74,    75,    -1,     4,
     3675       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3676      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3677      25,    26,    27,    67,    -1,    30,    31,    32,    -1,    -1,
     3678      74,    75,   110,   111,    39,    -1,    -1,    -1,    -1,   117,
     3679     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3680      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3681      -1,    -1,    67,    -1,    69,   109,    71,   111,    -1,    74,
     3682      75,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
     3683      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3684      -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3685      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3686      -1,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
     3687      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3688      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3689      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
     3690      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3691      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3692      27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,    69,
     3693      -1,    71,    39,    40,    74,    75,    -1,    -1,    -1,    -1,
     3694      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3695      -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
     3696      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3697      -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,     4,
     3698       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3699      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3700      25,    26,    27,    -1,   111,    30,    31,    32,   115,    -1,
     3701     117,   118,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
     3702      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3704      -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
     3705      75,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
     3706      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3707      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3708      32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,    -1,
     3709      -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3710      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3711      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
     3712      -1,    -1,    74,    75,    -1,     4,     5,     6,     7,     8,
     3713       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3714      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3715      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,   111,
     3716      39,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,
     3717      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3718      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3719      69,    -1,    71,    -1,    -1,    74,    75,    -1,     4,     5,
     3720       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3721      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3722      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     3723      -1,    -1,   111,    39,    -1,    -1,    -1,    -1,   117,   118,
     3724      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3725      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3726      -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
     3727      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3728      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3729      30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,
     3730      40,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3731      -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3732      -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,
     3733      -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3734      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3735      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3736      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3737      -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,   119,
     3738     120,   121,   122,    10,    11,    12,    13,    14,    15,    16,
     3739      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3740      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3741      37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
     3742      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3743      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
     3744      67,    -1,    -1,    39,    -1,    72,    -1,    74,    75,    76,
     3745      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3746      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3747      -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
     3748      76,    -1,   109,   110,   111,    -1,    -1,    83,    84,    -1,
     3749     117,   118,   119,   120,   121,   122,    10,    11,    12,    13,
     3750      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3751      24,    25,    26,    27,    -1,   111,    30,    31,    32,    -1,
     3752      -1,   117,   118,    37,    38,    39,    40,    10,    11,    12,
     3753      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3754      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3755      -1,    -1,    66,    67,    -1,    -1,    39,    -1,    72,    -1,
     3756      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3757      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3758      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
     3759      -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3760      83,    84,    -1,   117,   118,   119,   120,   121,   122,    10,
     3761      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3762      21,    22,    23,    24,    25,    26,    27,    -1,   111,    30,
     3763      31,    32,    -1,    -1,   117,   118,    37,    38,    39,    40,
     3764      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3765      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3766      30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
     3767      40,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3768      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3769      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3770      -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
     3771     111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
     3772     121,   122,    10,    11,    12,    13,    14,    15,    16,    17,
     3773      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3774      -1,   111,    30,    31,    32,   115,    -1,   117,   118,    37,
     3775      38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
     3776      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3777      27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,
     3778      -1,    -1,    39,    -1,    72,    -1,    74,    75,    76,    -1,
     3779      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3780      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3781      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3782      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
     3783     118,   119,   120,   121,   122,    10,    11,    12,    13,    14,
     3784      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3785      25,    26,    27,    -1,   111,    30,    31,    32,    -1,    -1,
     3786     117,   118,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3787      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3788      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3789      27,    66,    67,    30,    31,    32,    -1,    72,    -1,    74,
     3790      75,    76,    39,    -1,    79,    80,    81,    82,    83,    84,
     3791      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3792      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3793      67,    -1,    -1,    -1,   109,    -1,   111,    74,    75,    -1,
     3794      -1,    -1,   117,   118,   119,   120,   121,   122,     3,     4,
     3795       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3796      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3797      25,    26,    27,    -1,   111,    30,    31,    32,    -1,    -1,
     3798     117,   118,    -1,    -1,    39,    -1,    -1,    -1,    10,    11,
     3799      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3800      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3801      32,    -1,    67,    -1,    69,    -1,    71,    39,    -1,    74,
     3802      75,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3803      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3804      24,    25,    26,    27,    -1,    67,    30,    31,    32,    -1,
     3805      72,    -1,    74,    75,    76,    39,    -1,    -1,    -1,   114,
     3806      -1,    83,    84,    -1,    10,    11,    12,    13,    14,    15,
     3807      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3808      26,    27,    -1,    67,    30,    31,    32,   109,    72,   111,
     3809      74,    75,    76,    39,    -1,   117,   118,    -1,    -1,    83,
     3810      84,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3811      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3812      -1,    67,    30,    31,    32,   109,    72,   111,    74,    75,
     3813      76,    39,    -1,   117,   118,    -1,    -1,    83,    84,    -1,
     3814      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3815      20,    21,    22,    23,    24,    25,    26,    27,    28,    67,
     3816      30,    31,    32,   109,    72,   111,    74,    75,    76,    39,
     3817      -1,   117,   118,    -1,    -1,    83,    84,    -1,    10,    11,
     3818      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3819      22,    23,    24,    25,    26,    27,    28,    67,    30,    31,
     3820      32,   109,    -1,   111,    74,    75,    -1,    39,    78,   117,
     3821     118,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3822      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3823      -1,    30,    31,    32,    -1,    67,    -1,    -1,    -1,   109,
     3824      39,   111,    74,    75,    -1,    -1,    78,   117,   118,    10,
     3825      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3826      21,    22,    23,    24,    25,    26,    27,    -1,    67,    30,
     3827      31,    32,    -1,    -1,    -1,    74,    75,    -1,    39,   111,
     3828      -1,    -1,    -1,    -1,    -1,   117,   118,    10,    11,    12,
     3829      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3830      23,    24,    25,    26,    27,    -1,    67,    30,    31,    32,
     3831      -1,    -1,   111,    74,    75,    -1,    39,    -1,   117,   118,
     3832      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3833      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3834      30,    31,    32,    -1,    67,    -1,    -1,    -1,    -1,    39,
     3835     111,    74,    75,    -1,    -1,    -1,   117,   118,    10,    11,
     3836      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3837      22,    23,    24,    25,    26,    27,    -1,    67,    30,    31,
     3838      32,    -1,    -1,    -1,    74,    75,    -1,    39,   111,    -1,
     3839      -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3840      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3841      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3842      -1,   111,    74,    75,    -1,    -1,    -1,   117,   118,     4,
     3843       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3844      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3845      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,   111,
     3846      -1,    -1,    -1,    -1,    39,   117,   118,    -1,    -1,    -1,
     3847      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3848      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3849      -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
     3850      75,    37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,
     3851      46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
     3852      56,    57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,
     3853      66,    -1,    -1,    -1,    -1,   110,    72,    -1,    -1,    -1,
     3854      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3855      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3856      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3857      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
     3858      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    37,
     3859      38,   127,    40,    41,    -1,    43,   132,    -1,    46,    47,
     3860      48,    49,    50,    51,    52,    53,    -1,    -1,    -1,    57,
     3861      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,
     3862      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     3863      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3864      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3865      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3866      -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,
     3867     118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,
     3868      -1,    -1,    -1,    -1,   132,     4,     5,     6,     7,     8,
     3869       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3870      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3871      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3872      39,    -1,    37,    38,    -1,    40,    41,    -1,    43,    44,
     3873      45,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3874      -1,    56,    57,    -1,    -1,    -1,    61,    62,    67,    64,
     3875      69,    66,    71,    -1,    -1,    74,    75,    72,    -1,    -1,
     3876      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3877      -1,    86,    87,    -1,    -1,    -1,    -1,    96,    -1,    -1,
     3878      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3879      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3880      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3881      37,    38,   127,    40,    41,    -1,    43,    44,    45,    46,
     3882      47,    48,    49,    50,    51,    52,    53,    -1,    -1,    -1,
     3883      57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,
     3884      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3885      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3886      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3887      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3888      -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
     3889     117,   118,   119,   120,   121,   122,    -1,    -1,    37,    38,
     3890     127,    40,    41,    -1,    43,    -1,    -1,    46,    47,    48,
     3891      49,    50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,
     3892      -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,
     3893      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3894      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3895      -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,
     3896      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3897     109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,
     3898     119,   120,   121,   122,    66,    -1,    -1,    -1,   127,    -1,
     3899      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3900      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3901      -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
     3902      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3903      -1,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
     3904     122,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3905      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3906      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    37,
     3907      38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3908      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    37,    38,
     3909      -1,    40,   117,   118,   119,   120,   121,   122,    66,    -1,
     3910      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     3911      -1,    79,    80,    81,    82,    83,    84,    66,    86,    87,
     3912      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3913      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3914      -1,   109,    -1,   111,    -1,    37,    38,    -1,    40,   117,
     3915     118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
     3916     109,    -1,    -1,    -1,    37,    38,    -1,    40,   117,   118,
     3917     119,   120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,
     3918      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     3919      82,    83,    84,    66,    86,    87,    -1,    -1,    -1,    72,
     3920      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3921      83,    84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,
     3922      -1,    37,    38,    -1,    40,   117,   118,   119,   120,   121,
     3923     122,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     3924      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3925      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
     3926      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3927      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3928      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3929      -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
     3930      -1,   117,   118,   119,   120,   121,   122,     4,     5,     6,
    37713931       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    37723932      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3773       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3774       -1,    -1,    39,    -1,    10,    11,    12,    13,    14,    15,
    3775       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3776       26,    27,    -1,    -1,    30,    31,    32,    33,    34,    35,
    3777       67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
    3778       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    3779       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3780       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    3781       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3782       -1,   118,   119,     3,     4,     5,     6,     7,     8,     9,
    3783       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3784       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3785       30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
    3786       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3787       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3788       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3789       -1,    71,    -1,    -1,    74,    75,    -1,    -1,    78,    -1,
    3790       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3791       -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
    3792       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3793       -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,
    3794        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3795       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3796       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3797       33,    -1,    -1,    36,    -1,    -1,    39,    -1,    -1,    -1,
    3798       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3799       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3800       -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
    3801       -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3802       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3803       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3804       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3805       -1,    -1,    -1,    -1,    -1,   118,   119,     4,     5,     6,
    3806        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3807       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3808       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3933      27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38093934      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38103935      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38113936      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38123937      67,    -1,    69,    -1,    71,    72,    -1,    74,    75,    76,
    3813       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    3814       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3815       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3816       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3817       -1,   118,   119,     4,     5,     6,     7,     8,     9,    10,
    3818       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3819       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3820       31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,
    3821       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3822       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3823       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3824       71,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
    3825       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3826       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3827       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    3828      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,     4,
     3938      -1,    -1,    -1,    -1,    -1,    -1,    83,    84,     3,     4,
    38293939       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    38303940      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    38343944      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38353945      -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3836       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3837       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3838       -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3839       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3840       -1,    -1,    -1,   118,   119,     4,     5,     6,     7,     8,
    3841        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3842       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3843       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3844       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3845       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3846       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3847       69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,
    3848       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3849       -1,    -1,    -1,    -1,    -1,    94,    -1,    96,    -1,    -1,
    3850       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3851       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,
    3852      119,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3853       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3854       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3855       -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
     3946      75,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3947      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3948      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3949      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    38563950      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38573951      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3858       -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
    3859       -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3860       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3861       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3862       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3863       -1,    -1,    -1,    -1,    -1,   118,   119,     4,     5,     6,
    3864        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3865       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3866       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3867       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3868       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3869       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3870       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
    3871       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3873       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3874       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3875       -1,   118,   119,     4,     5,     6,     7,     8,     9,    10,
    3876       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3877       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3878       31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,
    3879       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3881       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3882       71,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
    3883       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3884       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3885       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3886      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,     4,
    3887        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3888       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3889       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3890       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    3891       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3892       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3893       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3894       75,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3895       19,    20,    21,    22,    23,    24,    25,    26,    27,    94,
    3896       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    3897       39,    40,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3898       -1,    -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    -1,
    3899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,
    3900       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3901       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3902       -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
    3903       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3904      109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,
    3905      119,   120,   121,   122,   123,    10,    11,    12,    13,    14,
    3906       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3907       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3908       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3909       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3910       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3911       -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3912       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3913       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3914       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3915       -1,    -1,    -1,    -1,   109,   110,   111,    -1,    -1,    -1,
    3916       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    10,
    3917       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3918       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3919       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3920       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3921       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3922       -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
    3923       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3924       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3925       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3926       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3927      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
    3928      121,   122,   123,    10,    11,    12,    13,    14,    15,    16,
    3929       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3930       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3931       37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    3932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3934       67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,
    3935       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3936       87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3937       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3938       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3939       -1,   118,   119,   120,   121,   122,   123,    10,    11,    12,
    3940       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3941       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3942       -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,
    3943       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3944       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3945       -1,    -1,    -1,    66,    67,    -1,    -1,    -1,    -1,    72,
    3946       -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3947       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3948       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3949       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
    3950       -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
    3951      123,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3952       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3953       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    3954       39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3955       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3956       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,
    3957       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3958       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3959       -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
    3960       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3961      109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,
    3962      119,   120,   121,   122,   123,     3,     4,     5,     6,     7,
    3963        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3964       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3965       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3966       -1,    39,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3967       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3968       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    67,
    3969       -1,    69,    -1,    71,    39,    -1,    74,    75,    -1,    -1,
    3970       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3971       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3972       27,    -1,    67,    30,    31,    32,    -1,    72,    -1,    74,
    3973       75,    76,    39,    -1,    -1,    -1,   114,    -1,    83,    84,
    3974       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3975       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3976       67,    -1,    -1,    -1,   109,    72,   111,    74,    75,    76,
    3977       -1,    -1,    -1,   118,   119,    -1,    83,    84,    -1,    -1,
    3978       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3980       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3981       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    3982       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3983       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3984       -1,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    3985       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3986       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3987       67,    -1,    39,    -1,    -1,    72,    -1,    74,    75,    76,
    3988       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    3989       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3990       67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,
    3991       -1,    -1,   109,    -1,   111,    -1,    83,    84,    -1,    -1,
    3992       -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3994       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3995       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    3996       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3997       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3998       -1,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    3999       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4000       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4001       67,    -1,    39,    -1,    -1,    72,    -1,    74,    75,    76,
    4002       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    4003       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4004       67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,
    4005       -1,    -1,    -1,    -1,   111,    -1,    83,    84,    -1,    -1,
    4006       -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4007       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4008       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    4009       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    4010       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4011       27,    28,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4012       -1,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    4013       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4014       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4015       67,    -1,    39,    40,    -1,    -1,    -1,    74,    75,    -1,
    4016       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4017       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4018       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    4019       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    4020       -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4021       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4022       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,   115,    -1,
    4023       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    4024       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4025       27,    28,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4026       -1,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    4027       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4028       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4029       67,    -1,    39,    40,    -1,    -1,    -1,    74,    75,    -1,
    4030       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4031       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4032       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    4033       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    4034       -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4035       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4036       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,   115,    -1,
    4037       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    4038       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4039       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4040       -1,    -1,    39,    40,    10,    11,    12,    13,    14,    15,
    4041       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4042       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4043       67,    -1,    -1,    39,    -1,    -1,    -1,    74,    75,    -1,
    4044       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4045       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4046       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4047       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,   115,    -1,
    4048       -1,   118,   119,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4049       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4050       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    4051       -1,    -1,   118,   119,    10,    11,    12,    13,    14,    15,
    4052       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4053       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4054       -1,    -1,    -1,    39,    10,    11,    12,    13,    14,    15,
    4055       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4056       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4057       -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,    75,
    4058       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4059       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4060       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4061       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4062       -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,
    4063       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4064       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4065       -1,    -1,   118,   119,    10,    11,    12,    13,    14,    15,
    4066       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4067       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4068       -1,    -1,    -1,    39,    10,    11,    12,    13,    14,    15,
    4069       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4070       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4071       -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,    75,
    4072       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4073       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4074       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4075       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4076       -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,
    4077       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4078       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4079       -1,    -1,   118,   119,    10,    11,    12,    13,    14,    15,
    4080       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4081       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4082       -1,    -1,    -1,    39,    10,    11,    12,    13,    14,    15,
    4083       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4084       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4085       -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,    75,
    4086       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4087       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4088       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4089       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4090       -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,
    4091       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4092       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4093       -1,    -1,   118,   119,    10,    11,    12,    13,    14,    15,
    4094       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4095       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4096       -1,    -1,    -1,    39,    10,    11,    12,    13,    14,    15,
    4097       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4098       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4099       -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,    75,
    4100       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4101       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4102       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4103       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4104       -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,
    4105       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4106       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4107       -1,    -1,   118,   119,     4,     5,     6,     7,     8,     9,
     3952      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
     3953      -1,    -1,    74,    75,     4,     5,     6,     7,     8,     9,
    41083954      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    41093955      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    41103956      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    4111       -1,    37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,
    4112       46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    4113       56,    57,    -1,    -1,    -1,    61,    62,    67,    64,    69,
    4114       66,    71,    -1,    -1,    74,    75,    72,    -1,    -1,    -1,
    4115       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    4116       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
     3957      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3958      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3959      -1,    30,    31,    32,    33,    34,    35,    67,    -1,    69,
     3960      39,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    41173961      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4118      110,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
    4119       -1,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
    4120       -1,    -1,   128,    -1,    37,    38,   132,    40,    41,    -1,
    4121       43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
    4122       53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,
    4123       -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,
    4124       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    4125       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    4126       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4127       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
    4128       -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,   122,
    4129      123,    -1,    -1,    -1,    -1,   128,    -1,    -1,    -1,   132,
    4130        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    4131       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    4132       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    4133       -1,    -1,    -1,    -1,    -1,    39,    -1,    37,    38,    -1,
    4134       40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
    4135       50,    51,    52,    53,    -1,    -1,    56,    57,    -1,    -1,
    4136       -1,    61,    62,    67,    64,    69,    66,    71,    -1,    -1,
    4137       74,    75,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    4138       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    4139       -1,    -1,    96,    -1,    94,    -1,    -1,    -1,    -1,    -1,
    4140       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    4141       -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,
    4142      120,   121,   122,   123,    -1,    -1,    37,    38,   128,    40,
    4143       41,    -1,    43,    44,    45,    46,    47,    48,    49,    50,
    4144       51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,
    4145       61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,
    4146       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    4147       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    4148       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    4149       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    4150      111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,
    4151      121,   122,   123,    -1,    -1,    37,    38,   128,    40,    41,
    4152       -1,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    4153       52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,
    4154       62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    -1,
    4155       72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
    4156       82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    4157       -1,    -1,    94,    37,    38,    -1,    40,    -1,    -1,    -1,
    4158       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    4159       -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,
    4160      122,   123,    66,    -1,    -1,    -1,   128,    -1,    72,    -1,
    4161       74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
    4162       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    4163       94,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    4164       -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,   113,
    4165      114,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
    4166       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    4167       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    4168       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    37,
    4169       38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4170       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    37,    38,
    4171       -1,    40,   118,   119,   120,   121,   122,   123,    66,    -1,
    4172       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    4173       -1,    79,    80,    81,    82,    83,    84,    66,    86,    87,
    4174       -1,    -1,    -1,    72,    -1,    -1,    94,    76,    -1,    -1,
    4175       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    4176       -1,   109,    -1,   111,    -1,    94,    37,    38,    -1,    40,
    4177      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
    4178      109,    -1,   111,    -1,    -1,    37,    38,    -1,    40,   118,
    4179      119,   120,   121,   122,   123,    66,    -1,    -1,    -1,    -1,
    4180       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    4181       81,    82,    83,    84,    66,    86,    87,    -1,    -1,    -1,
    4182       72,    -1,    -1,    94,    76,    -1,    -1,    79,    80,    81,
    4183       82,    83,    84,    -1,    86,    87,    -1,    -1,   109,    -1,
    4184       -1,    -1,    94,    -1,    -1,    -1,    -1,   118,   119,   120,
    4185      121,   122,   123,    -1,    -1,    -1,    -1,   109,    -1,    -1,
    4186       -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,
    4187      122,   123,     4,     5,     6,     7,     8,     9,    10,    11,
    4188       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    4189       22,    23,    24,    25,    26,    27,    -1,    -1,    -1,    -1,
    4190       -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    4191       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4192       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4193       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    4194       72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,
    4195       -1,    83,    84,     3,     4,     5,     6,     7,     8,     9,
    4196       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    4197       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    4198       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    4199       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4200       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4201       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    4202       -1,    71,    -1,    -1,    74,    75,     3,     4,     5,     6,
    4203        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    4204       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4205       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4206       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4207       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4208       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4209       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     4,
    4210        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    4211       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    4212       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    4213       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    4214       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4215       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4216       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    4217       75
     3962      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3963      -1,    -1,    -1,    -1,    -1,    74,    75
    42183964};
    42193965
     
    42263972      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    42273973      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    4228       76,    83,    84,    94,   109,   111,   118,   119,   137,   140,
    4229      149,   198,   212,   213,   214,   215,   216,   217,   218,   219,
    4230      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
    4231      231,   232,   233,   234,   235,   236,   237,   238,   240,   241,
    4232      242,   243,   244,   245,   247,   255,   256,   283,   284,   285,
    4233      293,   296,   302,   303,   305,   307,   308,   314,   319,   323,
    4234      324,   325,   326,   327,   328,   329,   330,   350,   367,   368,
    4235      369,   370,    72,   139,   140,   149,   215,   217,   225,   227,
    4236      237,   241,   243,   284,    82,   109,   312,   313,   314,   312,
    4237      312,    72,    74,    75,    76,   138,   139,   273,   274,   294,
    4238      295,    74,    75,   274,   109,   305,    11,   199,   109,   149,
    4239      319,   324,   325,   326,   328,   329,   330,   112,   134,   111,
    4240      218,   225,   227,   323,   327,   366,   367,   370,   371,   135,
    4241      107,   131,   277,   114,   135,   173,    74,    75,   137,   272,
    4242      135,   135,   135,   116,   135,    74,    75,   109,   149,   309,
    4243      318,   319,   320,   321,   322,   323,   327,   331,   332,   333,
    4244      334,   335,   341,     3,    28,    78,   239,     3,     5,    74,
    4245      111,   149,   217,   228,   232,   235,   244,   285,   323,   327,
    4246      370,   215,   217,   227,   237,   241,   243,   284,   323,   327,
    4247       33,   233,   233,   228,   235,   135,   233,   228,   233,   228,
    4248       75,   109,   114,   274,   285,   114,   274,   233,   228,   116,
    4249      135,   135,     0,   134,   109,   173,   312,   312,   134,   111,
    4250      225,   227,   368,   272,   272,   131,   227,   109,   149,   309,
    4251      319,   323,   111,   149,   370,   306,   230,   314,   109,   290,
    4252      109,   109,    51,   109,    37,    38,    40,    66,    72,    76,
    4253       79,    80,    81,    82,    86,    87,   109,   111,   120,   121,
    4254      122,   123,   136,   140,   141,   142,   143,   148,   149,   150,
    4255      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
    4256      161,   162,   164,   166,   225,   276,   292,   366,   371,   227,
    4257      110,   110,   110,   110,   110,   110,   110,    74,    75,   111,
    4258      225,   272,   350,   368,   111,   118,   149,   164,   217,   218,
    4259      224,   227,   231,   232,   237,   240,   241,   243,   262,   263,
    4260      267,   268,   269,   270,   284,   350,   362,   363,   364,   365,
    4261      370,   371,   112,   109,   323,   327,   370,   109,   116,   132,
    4262      111,   114,   149,   164,   278,   278,   115,   134,   116,   132,
    4263      109,   116,   132,   116,   132,   116,   132,   312,   132,   319,
    4264      320,   321,   322,   332,   333,   334,   335,   227,   318,   331,
    4265       64,   311,   111,   312,   349,   350,   312,   312,   173,   134,
    4266      109,   312,   349,   312,   312,   227,   309,   109,   109,   226,
    4267      227,   225,   227,   112,   134,   225,   366,   371,   173,   134,
    4268      272,   277,   217,   232,   323,   327,   173,   134,   294,   227,
    4269      237,   132,   227,   227,   292,   248,   246,   258,   274,   257,
    4270      227,   294,   132,   132,   305,   134,   139,   271,     3,   135,
    4271      207,   208,   222,   224,   227,   134,   311,   109,   311,   164,
    4272      319,   227,   109,   134,   272,   114,    33,    34,    35,   225,
    4273      286,   287,   289,   134,   129,   131,   291,   134,   228,   234,
    4274      235,   272,   315,   316,   317,   109,   141,   109,   148,   109,
    4275      148,   151,   109,   148,   109,   109,   148,   148,   111,   164,
    4276      169,   173,   225,   275,   366,   370,   112,   134,    82,    85,
    4277       86,    87,   109,   111,   113,   114,    97,    98,    99,   100,
    4278      101,   102,   103,   104,   105,   106,   131,   168,   151,   151,
    4279      118,   124,   125,   120,   121,    88,    89,    90,    91,   126,
    4280      127,    92,    93,   119,   128,   129,    94,    95,   130,   131,
    4281      373,   109,   149,   345,   346,   347,   348,   349,   110,   116,
    4282      109,   349,   350,   109,   349,   350,   134,   109,   225,   368,
    4283      112,   134,   135,   111,   225,   227,   361,   362,   370,   371,
    4284      135,   109,   111,   149,   319,   336,   337,   338,   339,   340,
    4285      341,   342,   343,   344,   350,   351,   352,   353,   354,   355,
    4286      356,   149,   370,   227,   135,   135,   149,   225,   227,   363,
    4287      272,   225,   350,   363,   272,   109,   134,   134,   134,   112,
    4288      134,    72,    80,   111,   113,   140,   274,   278,   279,   280,
    4289      281,   282,   134,   134,   134,   134,   134,   134,   309,   110,
    4290      110,   110,   110,   110,   110,   110,   318,   331,   109,   277,
    4291      112,   207,   134,   309,   169,   276,   169,   276,   309,   111,
    4292      207,   311,   173,   134,   207,   110,    40,   111,   115,   225,
    4293      249,   250,   251,   366,   114,   116,   372,   131,   259,   114,
    4294      227,   264,   265,   266,   269,   270,   110,   116,   173,   134,
    4295      118,   164,   134,   224,   227,   263,   362,   370,   303,   304,
    4296      109,   149,   336,   110,   116,   373,   274,   286,   109,   114,
    4297      274,   276,   286,   110,   116,   109,   141,   110,   117,   275,
    4298      275,   275,   111,   139,   145,   164,   276,   275,   112,   134,
    4299      110,   116,   110,   109,   149,   349,   357,   358,   359,   360,
    4300      110,   116,   164,   111,   139,   111,   144,   145,   134,   111,
    4301      139,   144,   164,   164,   151,   151,   151,   152,   152,   153,
    4302      153,   154,   154,   154,   154,   155,   155,   156,   157,   158,
    4303      159,   160,   117,   169,   164,   134,   346,   347,   348,   227,
    4304      345,   312,   312,   164,   276,   134,   271,   134,   225,   350,
    4305      363,   227,   231,   112,   112,   134,   370,   112,   109,   134,
    4306      319,   337,   338,   339,   342,   352,   353,   354,   112,   134,
    4307      227,   336,   340,   351,   109,   312,   355,   373,   312,   312,
    4308      373,   109,   312,   355,   312,   312,   312,   312,   350,   225,
    4309      361,   371,   272,   112,   116,   112,   116,   373,   225,   363,
    4310      373,   260,   261,   262,   263,   260,   260,   272,   164,   134,
    4311      111,   274,   117,   116,   372,   278,    80,   111,   117,   282,
    4312       29,   209,   210,   272,   260,   139,   309,   139,   311,   109,
    4313      349,   350,   109,   349,   350,   141,   350,   173,   264,   110,
    4314      110,   110,   110,   112,   173,   207,   173,   114,   250,   251,
    4315      112,   134,   109,   117,   149,   252,   254,   318,   319,   331,
    4316      357,   116,   132,   116,   132,   274,   248,   274,   115,   162,
    4317      163,   258,   135,   135,   139,   222,   135,   135,   260,   109,
    4318      149,   370,   135,   115,   227,   287,   288,   135,   134,   134,
    4319      109,   135,   110,   316,   169,   170,   117,   132,   111,   141,
    4320      200,   201,   202,   110,   116,   110,   134,   117,   110,   110,
    4321      110,   111,   164,   358,   359,   360,   227,   357,   312,   312,
    4322      114,   151,   166,   164,   165,   167,   116,   135,   134,   134,
    4323      110,   116,   164,   134,   115,   162,   117,   264,   110,   110,
    4324      110,   345,   264,   110,   260,   225,   363,   111,   118,   149,
     3974      76,    83,    84,   109,   111,   117,   118,   137,   140,   149,
     3975     198,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     3976     221,   222,   223,   224,   225,   226,   227,   228,   229,   231,
     3977     232,   233,   234,   235,   236,   237,   238,   240,   241,   242,
     3978     243,   244,   245,   247,   255,   256,   283,   284,   285,   293,
     3979     296,   302,   303,   305,   307,   308,   314,   319,   323,   324,
     3980     325,   326,   327,   328,   329,   330,   350,   367,   368,   369,
     3981     370,    72,   139,   140,   149,   215,   217,   225,   227,   237,
     3982     241,   243,   284,    82,   109,   312,   313,   314,   312,   312,
     3983      72,    74,    75,    76,   138,   139,   273,   274,   294,   295,
     3984      74,    75,   274,   109,   305,    11,   199,   109,   149,   319,
     3985     324,   325,   326,   328,   329,   330,   112,   134,   111,   218,
     3986     225,   227,   323,   327,   366,   367,   370,   371,   135,   107,
     3987     131,   277,   114,   135,   173,    74,    75,   137,   272,   135,
     3988     135,   135,   116,   135,    74,    75,   109,   149,   309,   318,
     3989     319,   320,   321,   322,   323,   327,   331,   332,   333,   334,
     3990     335,   341,     3,    28,    78,   239,     3,     5,    74,   111,
     3991     149,   217,   228,   232,   235,   244,   285,   323,   327,   370,
     3992     215,   217,   227,   237,   241,   243,   284,   323,   327,    33,
     3993     233,   233,   228,   235,   135,   233,   228,   233,   228,    75,
     3994     109,   114,   274,   285,   114,   274,   233,   228,   116,   135,
     3995     135,     0,   134,   109,   173,   312,   312,   134,   111,   225,
     3996     227,   368,   272,   272,   131,   227,   109,   149,   309,   319,
     3997     323,   111,   149,   370,   306,   230,   314,   109,   290,   109,
     3998     109,    51,   109,    37,    38,    40,    66,    72,    76,    79,
     3999      80,    81,    82,    86,    87,   109,   111,   119,   120,   121,
     4000     122,   136,   140,   141,   142,   143,   148,   149,   150,   151,
     4001     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
     4002     162,   164,   167,   225,   276,   292,   366,   371,   227,   110,
     4003     110,   110,   110,   110,   110,   110,    74,    75,   111,   225,
     4004     272,   350,   368,   111,   117,   149,   164,   217,   218,   224,
     4005     227,   231,   232,   237,   240,   241,   243,   262,   263,   267,
     4006     268,   269,   270,   284,   350,   362,   363,   364,   365,   370,
     4007     371,   112,   109,   323,   327,   370,   109,   116,   132,   111,
     4008     114,   149,   164,   278,   278,   115,   134,   116,   132,   109,
     4009     116,   132,   116,   132,   116,   132,   312,   132,   319,   320,
     4010     321,   322,   332,   333,   334,   335,   227,   318,   331,    64,
     4011     311,   111,   312,   349,   350,   312,   312,   173,   134,   109,
     4012     312,   349,   312,   312,   227,   309,   109,   109,   226,   227,
     4013     225,   227,   112,   134,   225,   366,   371,   173,   134,   272,
     4014     277,   217,   232,   323,   327,   173,   134,   294,   227,   237,
     4015     132,   227,   227,   292,   248,   246,   258,   274,   257,   227,
     4016     294,   132,   132,   305,   134,   139,   271,     3,   135,   207,
     4017     208,   222,   224,   227,   134,   311,   109,   311,   164,   319,
     4018     227,   109,   134,   272,   114,    33,    34,    35,   225,   286,
     4019     287,   289,   134,   128,   131,   291,   134,   228,   234,   235,
     4020     272,   315,   316,   317,   109,   141,   109,   148,   109,   148,
     4021     151,   109,   148,   109,   109,   148,   148,   111,   164,   169,
     4022     173,   225,   275,   366,   370,   112,   134,    82,    85,    86,
     4023      87,   109,   111,   113,   114,    97,    98,    99,   100,   101,
     4024     102,   103,   104,   105,   106,   131,   166,   151,   151,   117,
     4025     123,   124,   119,   120,    88,    89,    90,    91,   125,   126,
     4026      92,    93,   118,   127,   128,    94,    95,   129,   131,   373,
     4027     109,   149,   345,   346,   347,   348,   349,   110,   116,   109,
     4028     349,   350,   109,   349,   350,   134,   109,   225,   368,   112,
     4029     134,   135,   111,   225,   227,   361,   362,   370,   371,   135,
     4030     109,   111,   149,   319,   336,   337,   338,   339,   340,   341,
     4031     342,   343,   344,   350,   351,   352,   353,   354,   355,   356,
     4032     149,   370,   227,   135,   135,   149,   225,   227,   363,   272,
     4033     225,   350,   363,   272,   109,   134,   134,   134,   112,   134,
     4034      72,   111,   113,   140,   274,   278,   279,   280,   281,   282,
     4035     134,   134,   134,   134,   134,   134,   309,   110,   110,   110,
     4036     110,   110,   110,   110,   318,   331,   109,   277,   112,   207,
     4037     134,   309,   169,   276,   169,   276,   309,   111,   207,   311,
     4038     173,   134,   207,   110,    40,   111,   115,   225,   249,   250,
     4039     251,   366,   114,   116,   372,   131,   259,   114,   227,   264,
     4040     265,   266,   269,   270,   110,   116,   173,   134,   117,   164,
     4041     134,   224,   227,   263,   362,   370,   303,   304,   109,   149,
     4042     336,   110,   116,   373,   274,   286,   109,   114,   274,   276,
     4043     286,   110,   116,   109,   141,   110,   130,   275,   275,   275,
     4044     145,   164,   276,   275,   112,   134,   110,   116,   110,   109,
     4045     149,   349,   357,   358,   359,   360,   110,   116,   164,   111,
     4046     139,   144,   145,   134,   111,   139,   144,   164,   151,   151,
     4047     151,   152,   152,   153,   153,   154,   154,   154,   154,   155,
     4048     155,   156,   157,   158,   159,   160,   130,   169,   164,   134,
     4049     346,   347,   348,   227,   345,   312,   312,   164,   276,   134,
     4050     271,   134,   225,   350,   363,   227,   231,   112,   112,   134,
     4051     370,   112,   109,   134,   319,   337,   338,   339,   342,   352,
     4052     353,   354,   112,   134,   227,   336,   340,   351,   109,   312,
     4053     355,   373,   312,   312,   373,   109,   312,   355,   312,   312,
     4054     312,   312,   350,   225,   361,   371,   272,   112,   116,   112,
     4055     116,   373,   225,   363,   373,   260,   261,   262,   263,   260,
     4056     260,   272,   164,   134,   111,   274,   130,   116,   372,   278,
     4057     111,   130,   282,    29,   209,   210,   272,   260,   139,   309,
     4058     139,   311,   109,   349,   350,   109,   349,   350,   141,   350,
     4059     173,   264,   110,   110,   110,   110,   112,   173,   207,   173,
     4060     114,   250,   251,   112,   134,   109,   130,   149,   252,   254,
     4061     318,   319,   331,   357,   116,   132,   116,   132,   274,   248,
     4062     274,   115,   162,   163,   258,   135,   135,   139,   222,   135,
     4063     135,   260,   109,   149,   370,   135,   115,   227,   287,   288,
     4064     135,   134,   134,   109,   135,   110,   316,   169,   170,   130,
     4065     132,   111,   141,   200,   201,   202,   110,   116,   110,   110,
     4066     110,   110,   111,   164,   358,   359,   360,   227,   357,   312,
     4067     312,   114,   151,   167,   164,   165,   168,   116,   135,   134,
     4068     110,   116,   164,   134,   115,   162,   130,   264,   110,   110,
     4069     110,   345,   264,   110,   260,   225,   363,   111,   117,   149,
    43254070     164,   164,   227,   342,   264,   110,   110,   110,   110,   110,
    43264071     110,   110,     7,   227,   336,   340,   351,   134,   134,   373,
     
    43284073     163,   164,   310,   134,   278,   280,   115,   134,   211,   274,
    43294074      40,    41,    43,    46,    47,    48,    49,    50,    51,    52,
    4330       53,    57,    61,    62,    72,   111,   128,   170,   171,   172,
     4075      53,    57,    61,    62,    72,   111,   127,   170,   171,   172,
    43314076     173,   174,   175,   177,   178,   190,   192,   193,   198,   212,
    43324077     308,    29,   135,   131,   277,   134,   134,   110,   135,   173,
     
    43344079     312,   115,   259,   372,   110,   116,   112,   112,   135,   227,
    43354080     116,   373,   290,   110,   286,   215,   217,   225,   298,   299,
    4336      300,   301,   292,   110,   110,   117,   163,   109,   110,   117,
    4337      116,   139,   164,   164,   112,   110,   110,   110,   357,   279,
    4338      116,   135,   167,   112,   139,   146,   147,   164,   145,   135,
    4339      146,   162,   166,   135,   109,   349,   350,   135,   135,   134,
    4340      135,   135,   135,   164,   110,   135,   109,   349,   350,   109,
    4341      355,   109,   355,   350,   226,     7,   118,   135,   164,   264,
    4342      264,   263,   267,   267,   268,   116,   116,   110,   110,   112,
    4343       96,   123,   135,   135,   146,   278,   164,   116,   132,   212,
    4344      216,   227,   231,   109,   109,   171,   109,   109,    72,   132,
    4345       72,   132,    72,   118,   170,   109,   173,   165,   165,   117,
    4346      112,   143,   132,   135,   134,   135,   211,   110,   164,   264,
    4347      264,   312,   110,   115,   252,   115,   134,   110,   134,   135,
    4348      309,   115,   134,   135,   135,   110,   114,   200,   112,   163,
    4349      132,   200,   202,   110,   116,   135,   109,   349,   350,   372,
    4350      165,   112,   135,    85,   113,   116,   135,   135,   112,   135,
    4351      110,   134,   110,   110,   112,   112,   112,   135,   110,   134,
    4352      134,   134,   164,   164,   135,   112,   135,   135,   135,   135,
    4353      134,   134,   163,   163,   112,   112,   135,   135,   274,   227,
    4354      169,   169,    47,   169,   134,   132,   132,   132,   169,   132,
    4355      169,    58,    59,    60,   194,   195,   196,   132,    63,   132,
    4356      312,   114,   175,   115,   132,   135,   135,    96,   269,   270,
    4357      110,   299,   116,   132,   116,   132,   115,   297,   117,   141,
    4358      110,   110,   117,   167,   112,   134,   115,   112,   111,   147,
    4359      111,   147,   147,   112,   112,   112,   264,   112,   264,   264,
    4360      264,   135,   135,   112,   112,   110,   110,   112,   116,    96,
    4361      263,    96,   135,   112,   112,   110,   110,   109,   110,   170,
    4362      191,   212,   132,   110,   109,   109,   173,   196,    58,    59,
    4363      164,   171,   144,   110,   110,   114,   134,   134,   298,   141,
    4364      203,   109,   132,   203,   135,   117,   264,   134,   134,   135,
    4365      135,   135,   135,   112,   112,   134,   135,   112,   171,    44,
    4366       45,   114,   181,   182,   183,   169,   171,   135,   110,   170,
    4367      114,   183,    96,   134,    96,   134,   109,   109,   132,   115,
    4368      134,   272,   309,   115,   116,   117,   163,   110,   112,   164,
    4369      135,   146,   146,   110,   110,   110,   110,   267,    42,   163,
    4370      179,   180,   310,   117,   134,   171,   181,   110,   132,   171,
    4371      132,   134,   110,   134,   110,   134,    96,   134,    96,   134,
    4372      132,   298,   141,   139,   204,   110,   132,   117,   110,   135,
    4373      135,   171,    96,   116,   117,   135,   205,   206,   212,   132,
    4374      170,   170,   205,   173,   197,   225,   366,   173,   197,   110,
    4375      134,   110,   134,   115,   110,   116,   164,   112,   112,   163,
    4376      179,   182,   184,   185,   134,   132,   182,   186,   187,   135,
    4377      109,   149,   309,   357,   139,   135,   173,   197,   173,   197,
    4378      109,   132,   139,   171,   176,   115,   182,   212,   170,    56,
    4379      176,   189,   115,   182,   110,   227,   110,   135,   135,   292,
    4380      171,   176,   132,   188,   189,   176,   189,   173,   173,   110,
    4381      110,   110,   188,   135,   135,   173,   173,   135,   135
     4081     300,   301,   292,   110,   110,   130,   163,   109,   110,   130,
     4082     116,   139,   112,   110,   110,   110,   357,   279,   116,   135,
     4083     168,   112,   139,   146,   147,   145,   135,   146,   162,   167,
     4084     135,   109,   349,   350,   135,   135,   134,   135,   135,   135,
     4085     164,   110,   135,   109,   349,   350,   109,   355,   109,   355,
     4086     350,   226,     7,   117,   135,   164,   264,   264,   263,   267,
     4087     267,   268,   116,   116,   110,   110,   112,    96,   122,   135,
     4088     135,   146,   278,   164,   116,   132,   212,   216,   227,   231,
     4089     109,   109,   171,   109,   109,    72,   132,    72,   132,    72,
     4090     117,   170,   109,   173,   165,   165,   130,   112,   143,   132,
     4091     135,   134,   135,   211,   110,   164,   264,   264,   312,   110,
     4092     115,   252,   115,   134,   110,   134,   135,   309,   115,   134,
     4093     135,   135,   110,   114,   200,   112,   163,   132,   200,   202,
     4094     110,   109,   349,   350,   372,   165,   112,   135,    85,   113,
     4095     116,   135,   112,   135,   110,   134,   110,   110,   112,   112,
     4096     112,   135,   110,   134,   134,   134,   164,   164,   135,   112,
     4097     135,   135,   135,   135,   134,   134,   163,   163,   112,   112,
     4098     135,   135,   274,   227,   169,   169,    47,   169,   134,   132,
     4099     132,   132,   169,   132,   169,    58,    59,    60,   194,   195,
     4100     196,   132,    63,   132,   312,   114,   175,   115,   132,   135,
     4101     135,    96,   269,   270,   110,   299,   116,   132,   116,   132,
     4102     115,   297,   130,   141,   110,   110,   130,   134,   115,   112,
     4103     111,   147,   111,   147,   147,   112,   112,   264,   112,   264,
     4104     264,   264,   135,   135,   112,   112,   110,   110,   112,   116,
     4105      96,   263,    96,   135,   112,   112,   110,   110,   109,   110,
     4106     170,   191,   212,   132,   110,   109,   109,   173,   196,    58,
     4107      59,   164,   171,   144,   110,   110,   114,   134,   134,   298,
     4108     141,   203,   109,   132,   203,   264,   134,   134,   135,   135,
     4109     135,   135,   112,   112,   134,   135,   112,   171,    44,    45,
     4110     114,   181,   182,   183,   169,   171,   135,   110,   170,   114,
     4111     183,    96,   134,    96,   134,   109,   109,   132,   115,   134,
     4112     272,   309,   115,   116,   130,   163,   110,   135,   146,   146,
     4113     110,   110,   110,   110,   267,    42,   163,   179,   180,   310,
     4114     130,   134,   171,   181,   110,   132,   171,   132,   134,   110,
     4115     134,   110,   134,    96,   134,    96,   134,   132,   298,   141,
     4116     139,   204,   110,   132,   110,   135,   135,   171,    96,   116,
     4117     130,   135,   205,   206,   212,   132,   170,   170,   205,   173,
     4118     197,   225,   366,   173,   197,   110,   134,   110,   134,   115,
     4119     110,   116,   112,   112,   163,   179,   182,   184,   185,   134,
     4120     132,   182,   186,   187,   135,   109,   149,   309,   357,   139,
     4121     135,   173,   197,   173,   197,   109,   132,   139,   171,   176,
     4122     115,   182,   212,   170,    56,   176,   189,   115,   182,   110,
     4123     227,   110,   135,   135,   292,   171,   176,   132,   188,   189,
     4124     176,   189,   173,   173,   110,   110,   110,   188,   135,   135,
     4125     173,   173,   135,   135
    43824126};
    43834127
     
    52164960
    52174961/* Line 1806 of yacc.c  */
    5218 #line 290 "parser.yy"
     4962#line 298 "parser.yy"
    52194963    {
    52204964                        typedefTable.enterScope();
     
    52254969
    52264970/* Line 1806 of yacc.c  */
    5227 #line 296 "parser.yy"
     4971#line 304 "parser.yy"
    52284972    {
    52294973                        typedefTable.leaveScope();
     
    52344978
    52354979/* Line 1806 of yacc.c  */
    5236 #line 305 "parser.yy"
    5237     { (yyval.constant) = makeConstant( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
     4980#line 313 "parser.yy"
     4981    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    52384982    break;
    52394983
     
    52414985
    52424986/* Line 1806 of yacc.c  */
    5243 #line 306 "parser.yy"
    5244     { (yyval.constant) = makeConstant( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
     4987#line 314 "parser.yy"
     4988    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    52454989    break;
    52464990
     
    52484992
    52494993/* Line 1806 of yacc.c  */
    5250 #line 307 "parser.yy"
    5251     { (yyval.constant) = makeConstant( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
     4994#line 315 "parser.yy"
     4995    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    52524996    break;
    52534997
     
    52554999
    52565000/* Line 1806 of yacc.c  */
    5257 #line 332 "parser.yy"
    5258     { (yyval.constant) = makeConstantStr( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
     5001#line 340 "parser.yy"
     5002    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].tok) ); }
    52595003    break;
    52605004
     
    52625006
    52635007/* Line 1806 of yacc.c  */
    5264 #line 333 "parser.yy"
    5265     { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
     5008#line 342 "parser.yy"
     5009    {
     5010                        appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) );
     5011                        delete (yyvsp[(2) - (2)].tok);                                                                  // allocated by lexer
     5012                        (yyval.constant) = (yyvsp[(1) - (2)].constant);
     5013                }
    52665014    break;
    52675015
     
    52695017
    52705018/* Line 1806 of yacc.c  */
    5271 #line 340 "parser.yy"
    5272     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5019#line 353 "parser.yy"
     5020    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    52735021    break;
    52745022
     
    52765024
    52775025/* Line 1806 of yacc.c  */
    5278 #line 342 "parser.yy"
    5279     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5026#line 355 "parser.yy"
     5027    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    52805028    break;
    52815029
     
    52835031
    52845032/* Line 1806 of yacc.c  */
    5285 #line 344 "parser.yy"
     5033#line 357 "parser.yy"
    52865034    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    52875035    break;
     
    52905038
    52915039/* Line 1806 of yacc.c  */
    5292 #line 346 "parser.yy"
    5293     { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
     5040#line 359 "parser.yy"
     5041    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    52945042    break;
    52955043
     
    52975045
    52985046/* Line 1806 of yacc.c  */
    5299 #line 356 "parser.yy"
    5300     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
     5047#line 369 "parser.yy"
     5048    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    53015049    break;
    53025050
     
    53045052
    53055053/* Line 1806 of yacc.c  */
    5306 #line 358 "parser.yy"
    5307     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
     5054#line 371 "parser.yy"
     5055    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    53085056    break;
    53095057
     
    53115059
    53125060/* Line 1806 of yacc.c  */
    5313 #line 362 "parser.yy"
    5314     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5061#line 375 "parser.yy"
     5062    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    53155063    break;
    53165064
     
    53185066
    53195067/* Line 1806 of yacc.c  */
    5320 #line 365 "parser.yy"
    5321     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5068#line 378 "parser.yy"
     5069    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    53225070    break;
    53235071
     
    53255073
    53265074/* Line 1806 of yacc.c  */
    5327 #line 368 "parser.yy"
    5328     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
     5075#line 381 "parser.yy"
     5076    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    53295077    break;
    53305078
     
    53325080
    53335081/* Line 1806 of yacc.c  */
    5334 #line 370 "parser.yy"
    5335     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
     5082#line 383 "parser.yy"
     5083    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    53365084    break;
    53375085
     
    53395087
    53405088/* Line 1806 of yacc.c  */
    5341 #line 372 "parser.yy"
    5342     { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); }
     5089#line 385 "parser.yy"
     5090    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    53435091    break;
    53445092
     
    53465094
    53475095/* Line 1806 of yacc.c  */
    5348 #line 374 "parser.yy"
     5096#line 387 "parser.yy"
    53495097    {
    5350                         Token fn; fn.str = new std::string( "?{}" ); // location undefined
    5351                         (yyval.en) = new CompositeExprNode( new VarRefNode( fn ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_link( (yyvsp[(3) - (4)].en) ) );
     5098                        Token fn;
     5099                        fn.str = new std::string( "?{}" ); // location undefined
     5100                        (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );
    53525101                }
    53535102    break;
     
    53565105
    53575106/* Line 1806 of yacc.c  */
    5358 #line 383 "parser.yy"
    5359     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     5107#line 397 "parser.yy"
     5108    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    53605109    break;
    53615110
     
    53635112
    53645113/* Line 1806 of yacc.c  */
    5365 #line 388 "parser.yy"
     5114#line 402 "parser.yy"
    53665115    { (yyval.en) = 0; }
    53675116    break;
    53685117
    5369   case 37:
    5370 
    5371 /* Line 1806 of yacc.c  */
    5372 #line 391 "parser.yy"
    5373     { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    5374     break;
    5375 
    53765118  case 38:
    53775119
    53785120/* Line 1806 of yacc.c  */
    5379 #line 396 "parser.yy"
    5380     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
     5121#line 408 "parser.yy"
     5122    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    53815123    break;
    53825124
     
    53845126
    53855127/* Line 1806 of yacc.c  */
    5386 #line 398 "parser.yy"
    5387     { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
     5128#line 413 "parser.yy"
     5129    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5130    break;
     5131
     5132  case 40:
     5133
     5134/* Line 1806 of yacc.c  */
     5135#line 417 "parser.yy"
     5136    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    53885137    break;
    53895138
     
    53915140
    53925141/* Line 1806 of yacc.c  */
    5393 #line 403 "parser.yy"
    5394     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5142#line 419 "parser.yy"
     5143    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    53955144    break;
    53965145
     
    53985147
    53995148/* Line 1806 of yacc.c  */
    5400 #line 408 "parser.yy"
    5401     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5149#line 421 "parser.yy"
     5150    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    54025151    break;
    54035152
     
    54055154
    54065155/* Line 1806 of yacc.c  */
    5407 #line 412 "parser.yy"
    5408     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5409     break;
    5410 
    5411   case 44:
    5412 
    5413 /* Line 1806 of yacc.c  */
    5414 #line 414 "parser.yy"
    5415     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5156#line 423 "parser.yy"
     5157    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    54165158    break;
    54175159
     
    54195161
    54205162/* Line 1806 of yacc.c  */
    5421 #line 416 "parser.yy"
    5422     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5163#line 431 "parser.yy"
     5164    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    54235165    break;
    54245166
     
    54265168
    54275169/* Line 1806 of yacc.c  */
    5428 #line 418 "parser.yy"
    5429     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5170#line 433 "parser.yy"
     5171    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     5172    break;
     5173
     5174  case 47:
     5175
     5176/* Line 1806 of yacc.c  */
     5177#line 435 "parser.yy"
     5178    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    54305179    break;
    54315180
     
    54335182
    54345183/* Line 1806 of yacc.c  */
    5435 #line 426 "parser.yy"
    5436     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5184#line 440 "parser.yy"
     5185    {
     5186                        switch ( (yyvsp[(1) - (2)].op) ) {
     5187                          case OperKinds::AddressOf:
     5188                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
     5189                                break;
     5190                          case OperKinds::PointTo:
     5191                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
     5192                                break;
     5193                          default:
     5194                                assert( false );
     5195                        }
     5196                }
    54375197    break;
    54385198
     
    54405200
    54415201/* Line 1806 of yacc.c  */
    5442 #line 428 "parser.yy"
    5443     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5202#line 453 "parser.yy"
     5203    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    54445204    break;
    54455205
     
    54475207
    54485208/* Line 1806 of yacc.c  */
    5449 #line 430 "parser.yy"
    5450     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     5209#line 455 "parser.yy"
     5210    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    54515211    break;
    54525212
     
    54545214
    54555215/* Line 1806 of yacc.c  */
    5456 #line 432 "parser.yy"
    5457     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5216#line 457 "parser.yy"
     5217    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    54585218    break;
    54595219
     
    54615221
    54625222/* Line 1806 of yacc.c  */
    5463 #line 437 "parser.yy"
    5464     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5223#line 459 "parser.yy"
     5224    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    54655225    break;
    54665226
     
    54685228
    54695229/* Line 1806 of yacc.c  */
    5470 #line 439 "parser.yy"
    5471     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
     5230#line 461 "parser.yy"
     5231    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    54725232    break;
    54735233
     
    54755235
    54765236/* Line 1806 of yacc.c  */
    5477 #line 441 "parser.yy"
    5478     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
     5237#line 463 "parser.yy"
     5238    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    54795239    break;
    54805240
     
    54825242
    54835243/* Line 1806 of yacc.c  */
    5484 #line 443 "parser.yy"
    5485     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
     5244#line 465 "parser.yy"
     5245    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    54865246    break;
    54875247
     
    54895249
    54905250/* Line 1806 of yacc.c  */
    5491 #line 445 "parser.yy"
    5492     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5251#line 467 "parser.yy"
     5252    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    54935253    break;
    54945254
     
    54965256
    54975257/* Line 1806 of yacc.c  */
    5498 #line 447 "parser.yy"
    5499     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
     5258#line 469 "parser.yy"
     5259    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    55005260    break;
    55015261
     
    55035263
    55045264/* Line 1806 of yacc.c  */
    5505 #line 449 "parser.yy"
    5506     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
     5265#line 471 "parser.yy"
     5266    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    55075267    break;
    55085268
     
    55105270
    55115271/* Line 1806 of yacc.c  */
    5512 #line 451 "parser.yy"
    5513     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5272#line 473 "parser.yy"
     5273    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    55145274    break;
    55155275
     
    55175277
    55185278/* Line 1806 of yacc.c  */
    5519 #line 453 "parser.yy"
    5520     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
     5279#line 479 "parser.yy"
     5280    { (yyval.op) = OperKinds::PointTo; }
    55215281    break;
    55225282
     
    55245284
    55255285/* Line 1806 of yacc.c  */
    5526 #line 455 "parser.yy"
    5527     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
     5286#line 480 "parser.yy"
     5287    { (yyval.op) = OperKinds::AddressOf; }
    55285288    break;
    55295289
     
    55315291
    55325292/* Line 1806 of yacc.c  */
    5533 #line 457 "parser.yy"
    5534     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
     5293#line 486 "parser.yy"
     5294    { (yyval.op) = OperKinds::UnPlus; }
    55355295    break;
    55365296
     
    55385298
    55395299/* Line 1806 of yacc.c  */
    5540 #line 463 "parser.yy"
    5541     { (yyval.en) = new OperatorNode( OperatorNode::PointTo ); }
     5300#line 487 "parser.yy"
     5301    { (yyval.op) = OperKinds::UnMinus; }
    55425302    break;
    55435303
     
    55455305
    55465306/* Line 1806 of yacc.c  */
    5547 #line 464 "parser.yy"
    5548     { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
     5307#line 488 "parser.yy"
     5308    { (yyval.op) = OperKinds::Neg; }
    55495309    break;
    55505310
     
    55525312
    55535313/* Line 1806 of yacc.c  */
    5554 #line 466 "parser.yy"
    5555     { (yyval.en) = new OperatorNode( OperatorNode::And ); }
    5556     break;
    5557 
    5558   case 66:
    5559 
    5560 /* Line 1806 of yacc.c  */
    5561 #line 470 "parser.yy"
    5562     { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
     5314#line 489 "parser.yy"
     5315    { (yyval.op) = OperKinds::BitNeg; }
    55635316    break;
    55645317
     
    55665319
    55675320/* Line 1806 of yacc.c  */
    5568 #line 471 "parser.yy"
    5569     { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
     5321#line 495 "parser.yy"
     5322    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    55705323    break;
    55715324
     
    55735326
    55745327/* Line 1806 of yacc.c  */
    5575 #line 472 "parser.yy"
    5576     { (yyval.en) = new OperatorNode( OperatorNode::Neg ); }
    5577     break;
    5578 
    5579   case 69:
    5580 
    5581 /* Line 1806 of yacc.c  */
    5582 #line 473 "parser.yy"
    5583     { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
     5328#line 497 "parser.yy"
     5329    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     5330    break;
     5331
     5332  case 70:
     5333
     5334/* Line 1806 of yacc.c  */
     5335#line 503 "parser.yy"
     5336    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55845337    break;
    55855338
     
    55875340
    55885341/* Line 1806 of yacc.c  */
    5589 #line 479 "parser.yy"
    5590     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5342#line 505 "parser.yy"
     5343    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55915344    break;
    55925345
     
    55945347
    55955348/* Line 1806 of yacc.c  */
    5596 #line 481 "parser.yy"
    5597     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5349#line 507 "parser.yy"
     5350    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55985351    break;
    55995352
     
    56015354
    56025355/* Line 1806 of yacc.c  */
    5603 #line 487 "parser.yy"
    5604     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5356#line 513 "parser.yy"
     5357    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56055358    break;
    56065359
     
    56085361
    56095362/* Line 1806 of yacc.c  */
    5610 #line 489 "parser.yy"
    5611     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5612     break;
    5613 
    5614   case 76:
    5615 
    5616 /* Line 1806 of yacc.c  */
    5617 #line 491 "parser.yy"
    5618     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5363#line 515 "parser.yy"
     5364    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5365    break;
     5366
     5367  case 77:
     5368
     5369/* Line 1806 of yacc.c  */
     5370#line 521 "parser.yy"
     5371    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56195372    break;
    56205373
     
    56225375
    56235376/* Line 1806 of yacc.c  */
    5624 #line 497 "parser.yy"
    5625     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5626     break;
    5627 
    5628   case 79:
    5629 
    5630 /* Line 1806 of yacc.c  */
    5631 #line 499 "parser.yy"
    5632     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5377#line 523 "parser.yy"
     5378    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5379    break;
     5380
     5381  case 80:
     5382
     5383/* Line 1806 of yacc.c  */
     5384#line 529 "parser.yy"
     5385    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56335386    break;
    56345387
     
    56365389
    56375390/* Line 1806 of yacc.c  */
    5638 #line 505 "parser.yy"
    5639     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5391#line 531 "parser.yy"
     5392    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56405393    break;
    56415394
     
    56435396
    56445397/* Line 1806 of yacc.c  */
    5645 #line 507 "parser.yy"
    5646     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5647     break;
    5648 
    5649   case 84:
    5650 
    5651 /* Line 1806 of yacc.c  */
    5652 #line 513 "parser.yy"
    5653     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5398#line 533 "parser.yy"
     5399    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5400    break;
     5401
     5402  case 83:
     5403
     5404/* Line 1806 of yacc.c  */
     5405#line 535 "parser.yy"
     5406    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56545407    break;
    56555408
     
    56575410
    56585411/* Line 1806 of yacc.c  */
    5659 #line 515 "parser.yy"
    5660     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5412#line 541 "parser.yy"
     5413    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56615414    break;
    56625415
     
    56645417
    56655418/* Line 1806 of yacc.c  */
    5666 #line 517 "parser.yy"
    5667     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5668     break;
    5669 
    5670   case 87:
    5671 
    5672 /* Line 1806 of yacc.c  */
    5673 #line 519 "parser.yy"
    5674     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5675     break;
    5676 
    5677   case 89:
    5678 
    5679 /* Line 1806 of yacc.c  */
    5680 #line 525 "parser.yy"
    5681     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5419#line 543 "parser.yy"
     5420    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5421    break;
     5422
     5423  case 88:
     5424
     5425/* Line 1806 of yacc.c  */
     5426#line 549 "parser.yy"
     5427    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56825428    break;
    56835429
     
    56855431
    56865432/* Line 1806 of yacc.c  */
    5687 #line 527 "parser.yy"
    5688     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5433#line 555 "parser.yy"
     5434    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56895435    break;
    56905436
     
    56925438
    56935439/* Line 1806 of yacc.c  */
    5694 #line 533 "parser.yy"
    5695     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5440#line 561 "parser.yy"
     5441    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56965442    break;
    56975443
     
    56995445
    57005446/* Line 1806 of yacc.c  */
    5701 #line 539 "parser.yy"
    5702     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5447#line 567 "parser.yy"
     5448    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    57035449    break;
    57045450
     
    57065452
    57075453/* Line 1806 of yacc.c  */
    5708 #line 545 "parser.yy"
    5709     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5454#line 573 "parser.yy"
     5455    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    57105456    break;
    57115457
     
    57135459
    57145460/* Line 1806 of yacc.c  */
    5715 #line 551 "parser.yy"
    5716     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5461#line 579 "parser.yy"
     5462    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     5463    break;
     5464
     5465  case 99:
     5466
     5467/* Line 1806 of yacc.c  */
     5468#line 582 "parser.yy"
     5469    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    57175470    break;
    57185471
     
    57205473
    57215474/* Line 1806 of yacc.c  */
    5722 #line 557 "parser.yy"
    5723     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5724     break;
    5725 
    5726   case 102:
    5727 
    5728 /* Line 1806 of yacc.c  */
    5729 #line 563 "parser.yy"
    5730     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5475#line 584 "parser.yy"
     5476    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    57315477    break;
    57325478
     
    57345480
    57355481/* Line 1806 of yacc.c  */
    5736 #line 565 "parser.yy"
    5737     { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5482#line 595 "parser.yy"
     5483    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57385484    break;
    57395485
     
    57415487
    57425488/* Line 1806 of yacc.c  */
    5743 #line 567 "parser.yy"
    5744     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5489#line 597 "parser.yy"
     5490    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
     5491    break;
     5492
     5493  case 105:
     5494
     5495/* Line 1806 of yacc.c  */
     5496#line 602 "parser.yy"
     5497    { (yyval.en) = nullptr; }
    57455498    break;
    57465499
     
    57485501
    57495502/* Line 1806 of yacc.c  */
    5750 #line 578 "parser.yy"
    5751     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5503#line 607 "parser.yy"
     5504    { (yyval.op) = OperKinds::Assign; }
    57525505    break;
    57535506
     
    57555508
    57565509/* Line 1806 of yacc.c  */
    5757 #line 580 "parser.yy"
    5758     { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5510#line 608 "parser.yy"
     5511    { (yyval.op) = OperKinds::MulAssn; }
    57595512    break;
    57605513
     
    57625515
    57635516/* Line 1806 of yacc.c  */
    5764 #line 582 "parser.yy"
    5765     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5517#line 609 "parser.yy"
     5518    { (yyval.op) = OperKinds::DivAssn; }
    57665519    break;
    57675520
     
    57695522
    57705523/* Line 1806 of yacc.c  */
    5771 #line 587 "parser.yy"
    5772     { (yyval.en) = new NullExprNode; }
     5524#line 610 "parser.yy"
     5525    { (yyval.op) = OperKinds::ModAssn; }
     5526    break;
     5527
     5528  case 111:
     5529
     5530/* Line 1806 of yacc.c  */
     5531#line 611 "parser.yy"
     5532    { (yyval.op) = OperKinds::PlusAssn; }
    57735533    break;
    57745534
     
    57765536
    57775537/* Line 1806 of yacc.c  */
    5778 #line 595 "parser.yy"
    5779     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     5538#line 612 "parser.yy"
     5539    { (yyval.op) = OperKinds::MinusAssn; }
    57805540    break;
    57815541
     
    57835543
    57845544/* Line 1806 of yacc.c  */
    5785 #line 597 "parser.yy"
    5786     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
     5545#line 613 "parser.yy"
     5546    { (yyval.op) = OperKinds::LSAssn; }
    57875547    break;
    57885548
     
    57905550
    57915551/* Line 1806 of yacc.c  */
    5792 #line 599 "parser.yy"
    5793     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
     5552#line 614 "parser.yy"
     5553    { (yyval.op) = OperKinds::RSAssn; }
    57945554    break;
    57955555
     
    57975557
    57985558/* Line 1806 of yacc.c  */
    5799 #line 601 "parser.yy"
    5800     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
     5559#line 615 "parser.yy"
     5560    { (yyval.op) = OperKinds::AndAssn; }
     5561    break;
     5562
     5563  case 116:
     5564
     5565/* Line 1806 of yacc.c  */
     5566#line 616 "parser.yy"
     5567    { (yyval.op) = OperKinds::ERAssn; }
    58015568    break;
    58025569
     
    58045571
    58055572/* Line 1806 of yacc.c  */
    5806 #line 607 "parser.yy"
    5807     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5573#line 617 "parser.yy"
     5574    { (yyval.op) = OperKinds::OrAssn; }
    58085575    break;
    58095576
     
    58115578
    58125579/* Line 1806 of yacc.c  */
    5813 #line 611 "parser.yy"
    5814     { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
     5580#line 624 "parser.yy"
     5581    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    58155582    break;
    58165583
     
    58185585
    58195586/* Line 1806 of yacc.c  */
    5820 #line 612 "parser.yy"
    5821     { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
     5587#line 626 "parser.yy"
     5588    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    58225589    break;
    58235590
     
    58255592
    58265593/* Line 1806 of yacc.c  */
    5827 #line 613 "parser.yy"
    5828     { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
     5594#line 628 "parser.yy"
     5595    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    58295596    break;
    58305597
     
    58325599
    58335600/* Line 1806 of yacc.c  */
    5834 #line 614 "parser.yy"
    5835     { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    5836     break;
    5837 
    5838   case 122:
    5839 
    5840 /* Line 1806 of yacc.c  */
    5841 #line 615 "parser.yy"
    5842     { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
     5601#line 630 "parser.yy"
     5602    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    58435603    break;
    58445604
     
    58465606
    58475607/* Line 1806 of yacc.c  */
    5848 #line 616 "parser.yy"
    5849     { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    5850     break;
    5851 
    5852   case 124:
    5853 
    5854 /* Line 1806 of yacc.c  */
    5855 #line 617 "parser.yy"
    5856     { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
     5608#line 636 "parser.yy"
     5609    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    58575610    break;
    58585611
     
    58605613
    58615614/* Line 1806 of yacc.c  */
    5862 #line 618 "parser.yy"
    5863     { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
     5615#line 642 "parser.yy"
     5616    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    58645617    break;
    58655618
     
    58675620
    58685621/* Line 1806 of yacc.c  */
    5869 #line 619 "parser.yy"
    5870     { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    5871     break;
    5872 
    5873   case 127:
    5874 
    5875 /* Line 1806 of yacc.c  */
    5876 #line 620 "parser.yy"
    5877     { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    5878     break;
    5879 
    5880   case 129:
    5881 
    5882 /* Line 1806 of yacc.c  */
    5883 #line 626 "parser.yy"
    5884     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5622#line 647 "parser.yy"
     5623    { (yyval.en) = 0; }
    58855624    break;
    58865625
     
    58885627
    58895628/* Line 1806 of yacc.c  */
    5890 #line 631 "parser.yy"
    5891     { (yyval.en) = 0; }
    5892     break;
    5893 
    5894   case 134:
    5895 
    5896 /* Line 1806 of yacc.c  */
    5897 #line 640 "parser.yy"
     5629#line 656 "parser.yy"
    58985630    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    58995631    break;
    59005632
    5901   case 140:
    5902 
    5903 /* Line 1806 of yacc.c  */
    5904 #line 647 "parser.yy"
     5633  case 136:
     5634
     5635/* Line 1806 of yacc.c  */
     5636#line 663 "parser.yy"
    59055637    {
    5906                         Token fn; fn.str = new std::string( "^?{}" ); // location undefined
    5907                         (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    5908                                 (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ), 0 );
     5638                        Token fn;
     5639                        fn.str = new std::string( "^?{}" ); // location undefined
     5640                        (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );
    59095641                }
    59105642    break;
    59115643
    5912   case 141:
    5913 
    5914 /* Line 1806 of yacc.c  */
    5915 #line 657 "parser.yy"
     5644  case 137:
     5645
     5646/* Line 1806 of yacc.c  */
     5647#line 673 "parser.yy"
    59165648    {
    59175649                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    59195651    break;
    59205652
     5653  case 138:
     5654
     5655/* Line 1806 of yacc.c  */
     5656#line 680 "parser.yy"
     5657    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5658    break;
     5659
     5660  case 139:
     5661
     5662/* Line 1806 of yacc.c  */
     5663#line 687 "parser.yy"
     5664    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     5665    break;
     5666
     5667  case 141:
     5668
     5669/* Line 1806 of yacc.c  */
     5670#line 693 "parser.yy"
     5671    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5672    break;
     5673
    59215674  case 142:
    59225675
    59235676/* Line 1806 of yacc.c  */
    5924 #line 664 "parser.yy"
    5925     { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
     5677#line 698 "parser.yy"
     5678    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    59265679    break;
    59275680
     
    59295682
    59305683/* Line 1806 of yacc.c  */
    5931 #line 671 "parser.yy"
    5932     { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    5933     break;
    5934 
    5935   case 145:
    5936 
    5937 /* Line 1806 of yacc.c  */
    5938 #line 677 "parser.yy"
    5939     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    5940     break;
    5941 
    5942   case 146:
    5943 
    5944 /* Line 1806 of yacc.c  */
    5945 #line 682 "parser.yy"
    5946     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5947     break;
    5948 
    5949   case 147:
    5950 
    5951 /* Line 1806 of yacc.c  */
    5952 #line 684 "parser.yy"
     5684#line 700 "parser.yy"
    59535685    {   // mark all fields in list
    5954                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     5686                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )
    59555687                                iter->set_extension( true );
    59565688                        (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
     
    59585690    break;
    59595691
     5692  case 144:
     5693
     5694/* Line 1806 of yacc.c  */
     5695#line 706 "parser.yy"
     5696    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5697    break;
     5698
     5699  case 147:
     5700
     5701/* Line 1806 of yacc.c  */
     5702#line 713 "parser.yy"
     5703    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5704    break;
     5705
    59605706  case 148:
    59615707
    59625708/* Line 1806 of yacc.c  */
    5963 #line 690 "parser.yy"
    5964     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5709#line 718 "parser.yy"
     5710    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5711    break;
     5712
     5713  case 149:
     5714
     5715/* Line 1806 of yacc.c  */
     5716#line 724 "parser.yy"
     5717    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     5718    break;
     5719
     5720  case 150:
     5721
     5722/* Line 1806 of yacc.c  */
     5723#line 726 "parser.yy"
     5724    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    59655725    break;
    59665726
     
    59685728
    59695729/* Line 1806 of yacc.c  */
    5970 #line 697 "parser.yy"
    5971     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5730#line 728 "parser.yy"
     5731    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    59725732    break;
    59735733
     
    59755735
    59765736/* Line 1806 of yacc.c  */
    5977 #line 702 "parser.yy"
    5978     { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    5979     break;
    5980 
    5981   case 153:
    5982 
    5983 /* Line 1806 of yacc.c  */
    5984 #line 708 "parser.yy"
    5985     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5986     break;
    5987 
    5988   case 154:
    5989 
    5990 /* Line 1806 of yacc.c  */
    5991 #line 710 "parser.yy"
    5992     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    5993     break;
    5994 
    5995   case 155:
    5996 
    5997 /* Line 1806 of yacc.c  */
    5998 #line 712 "parser.yy"
    5999     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6000     break;
    6001 
    6002   case 156:
    6003 
    6004 /* Line 1806 of yacc.c  */
    6005 #line 714 "parser.yy"
     5737#line 730 "parser.yy"
    60065738    {
    6007                         StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) );
     5739                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
    60085740                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    60095741                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
    60105742                        // statement around the switch.  Statements after the initial declaration list can never be executed, and
    6011                         // therefore, are removed from the grammar even though C allows it. Change also applies to choose statement.
    6012                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_link( sw )) ) : sw;
     5743                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
     5744                        // statement.
     5745                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
    60135746                }
    60145747    break;
    60155748
    6016   case 157:
    6017 
    6018 /* Line 1806 of yacc.c  */
    6019 #line 723 "parser.yy"
    6020     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5749  case 153:
     5750
     5751/* Line 1806 of yacc.c  */
     5752#line 740 "parser.yy"
     5753    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5754    break;
     5755
     5756  case 154:
     5757
     5758/* Line 1806 of yacc.c  */
     5759#line 742 "parser.yy"
     5760    {
     5761                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5762                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5763                }
     5764    break;
     5765
     5766  case 155:
     5767
     5768/* Line 1806 of yacc.c  */
     5769#line 752 "parser.yy"
     5770    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5771    break;
     5772
     5773  case 156:
     5774
     5775/* Line 1806 of yacc.c  */
     5776#line 754 "parser.yy"
     5777    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    60215778    break;
    60225779
     
    60245781
    60255782/* Line 1806 of yacc.c  */
    6026 #line 725 "parser.yy"
     5783#line 759 "parser.yy"
     5784    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5785    break;
     5786
     5787  case 159:
     5788
     5789/* Line 1806 of yacc.c  */
     5790#line 761 "parser.yy"
     5791    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5792    break;
     5793
     5794  case 160:
     5795
     5796/* Line 1806 of yacc.c  */
     5797#line 765 "parser.yy"
     5798    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5799    break;
     5800
     5801  case 161:
     5802
     5803/* Line 1806 of yacc.c  */
     5804#line 766 "parser.yy"
     5805    { (yyval.sn) = new StatementNode( build_default() ); }
     5806    break;
     5807
     5808  case 163:
     5809
     5810/* Line 1806 of yacc.c  */
     5811#line 772 "parser.yy"
     5812    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5813    break;
     5814
     5815  case 164:
     5816
     5817/* Line 1806 of yacc.c  */
     5818#line 776 "parser.yy"
     5819    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5820    break;
     5821
     5822  case 165:
     5823
     5824/* Line 1806 of yacc.c  */
     5825#line 781 "parser.yy"
     5826    { (yyval.sn) = 0; }
     5827    break;
     5828
     5829  case 167:
     5830
     5831/* Line 1806 of yacc.c  */
     5832#line 787 "parser.yy"
     5833    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5834    break;
     5835
     5836  case 168:
     5837
     5838/* Line 1806 of yacc.c  */
     5839#line 789 "parser.yy"
     5840    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5841    break;
     5842
     5843  case 169:
     5844
     5845/* Line 1806 of yacc.c  */
     5846#line 794 "parser.yy"
     5847    { (yyval.sn) = 0; }
     5848    break;
     5849
     5850  case 171:
     5851
     5852/* Line 1806 of yacc.c  */
     5853#line 800 "parser.yy"
     5854    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5855    break;
     5856
     5857  case 172:
     5858
     5859/* Line 1806 of yacc.c  */
     5860#line 802 "parser.yy"
     5861    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5862    break;
     5863
     5864  case 173:
     5865
     5866/* Line 1806 of yacc.c  */
     5867#line 804 "parser.yy"
     5868    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5869    break;
     5870
     5871  case 174:
     5872
     5873/* Line 1806 of yacc.c  */
     5874#line 806 "parser.yy"
     5875    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
     5876    break;
     5877
     5878  case 175:
     5879
     5880/* Line 1806 of yacc.c  */
     5881#line 811 "parser.yy"
     5882    { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
     5883    break;
     5884
     5885  case 177:
     5886
     5887/* Line 1806 of yacc.c  */
     5888#line 817 "parser.yy"
     5889    { (yyval.sn) = 0; }
     5890    break;
     5891
     5892  case 178:
     5893
     5894/* Line 1806 of yacc.c  */
     5895#line 819 "parser.yy"
     5896    { (yyval.sn) = 0; }
     5897    break;
     5898
     5899  case 179:
     5900
     5901/* Line 1806 of yacc.c  */
     5902#line 824 "parser.yy"
     5903    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5904    break;
     5905
     5906  case 180:
     5907
     5908/* Line 1806 of yacc.c  */
     5909#line 826 "parser.yy"
     5910    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
     5911    break;
     5912
     5913  case 181:
     5914
     5915/* Line 1806 of yacc.c  */
     5916#line 828 "parser.yy"
     5917    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5918    break;
     5919
     5920  case 182:
     5921
     5922/* Line 1806 of yacc.c  */
     5923#line 833 "parser.yy"
     5924    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5925    break;
     5926
     5927  case 183:
     5928
     5929/* Line 1806 of yacc.c  */
     5930#line 835 "parser.yy"
     5931    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5932    break;
     5933
     5934  case 184:
     5935
     5936/* Line 1806 of yacc.c  */
     5937#line 840 "parser.yy"
     5938    { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5939    break;
     5940
     5941  case 185:
     5942
     5943/* Line 1806 of yacc.c  */
     5944#line 844 "parser.yy"
     5945    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5946    break;
     5947
     5948  case 186:
     5949
     5950/* Line 1806 of yacc.c  */
     5951#line 847 "parser.yy"
     5952    { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Continue ) ); }
     5953    break;
     5954
     5955  case 187:
     5956
     5957/* Line 1806 of yacc.c  */
     5958#line 851 "parser.yy"
     5959    { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); }
     5960    break;
     5961
     5962  case 188:
     5963
     5964/* Line 1806 of yacc.c  */
     5965#line 854 "parser.yy"
     5966    { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
     5967    break;
     5968
     5969  case 189:
     5970
     5971/* Line 1806 of yacc.c  */
     5972#line 858 "parser.yy"
     5973    { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); }
     5974    break;
     5975
     5976  case 190:
     5977
     5978/* Line 1806 of yacc.c  */
     5979#line 860 "parser.yy"
     5980    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     5981    break;
     5982
     5983  case 191:
     5984
     5985/* Line 1806 of yacc.c  */
     5986#line 862 "parser.yy"
     5987    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5988    break;
     5989
     5990  case 192:
     5991
     5992/* Line 1806 of yacc.c  */
     5993#line 864 "parser.yy"
     5994    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5995    break;
     5996
     5997  case 193:
     5998
     5999/* Line 1806 of yacc.c  */
     6000#line 866 "parser.yy"
     6001    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     6002    break;
     6003
     6004  case 194:
     6005
     6006/* Line 1806 of yacc.c  */
     6007#line 871 "parser.yy"
     6008    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     6009    break;
     6010
     6011  case 195:
     6012
     6013/* Line 1806 of yacc.c  */
     6014#line 873 "parser.yy"
     6015    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     6016    break;
     6017
     6018  case 196:
     6019
     6020/* Line 1806 of yacc.c  */
     6021#line 875 "parser.yy"
     6022    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     6023    break;
     6024
     6025  case 198:
     6026
     6027/* Line 1806 of yacc.c  */
     6028#line 882 "parser.yy"
     6029    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6030    break;
     6031
     6032  case 199:
     6033
     6034/* Line 1806 of yacc.c  */
     6035#line 884 "parser.yy"
     6036    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6037    break;
     6038
     6039  case 200:
     6040
     6041/* Line 1806 of yacc.c  */
     6042#line 886 "parser.yy"
     6043    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6044    break;
     6045
     6046  case 201:
     6047
     6048/* Line 1806 of yacc.c  */
     6049#line 888 "parser.yy"
     6050    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6051    break;
     6052
     6053  case 202:
     6054
     6055/* Line 1806 of yacc.c  */
     6056#line 893 "parser.yy"
     6057    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6058    break;
     6059
     6060  case 203:
     6061
     6062/* Line 1806 of yacc.c  */
     6063#line 895 "parser.yy"
     6064    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     6065    break;
     6066
     6067  case 204:
     6068
     6069/* Line 1806 of yacc.c  */
     6070#line 897 "parser.yy"
     6071    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6072    break;
     6073
     6074  case 205:
     6075
     6076/* Line 1806 of yacc.c  */
     6077#line 899 "parser.yy"
     6078    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     6079    break;
     6080
     6081  case 206:
     6082
     6083/* Line 1806 of yacc.c  */
     6084#line 904 "parser.yy"
    60276085    {
    6028                         StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) );
    6029                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_link( sw )) ) : sw;
     6086                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
    60306087                }
    60316088    break;
    60326089
    6033   case 159:
    6034 
    6035 /* Line 1806 of yacc.c  */
    6036 #line 735 "parser.yy"
    6037     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    6038     break;
    6039 
    6040   case 160:
    6041 
    6042 /* Line 1806 of yacc.c  */
    6043 #line 737 "parser.yy"
    6044     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    6045     break;
    6046 
    6047   case 163:
    6048 
    6049 /* Line 1806 of yacc.c  */
    6050 #line 744 "parser.yy"
    6051     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    6052     break;
    6053 
    6054   case 164:
    6055 
    6056 /* Line 1806 of yacc.c  */
    6057 #line 748 "parser.yy"
    6058     { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    6059     break;
    6060 
    6061   case 165:
    6062 
    6063 /* Line 1806 of yacc.c  */
    6064 #line 749 "parser.yy"
    6065     { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    6066     break;
    6067 
    6068   case 167:
    6069 
    6070 /* Line 1806 of yacc.c  */
    6071 #line 755 "parser.yy"
    6072     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    6073     break;
    6074 
    6075   case 168:
    6076 
    6077 /* Line 1806 of yacc.c  */
    6078 #line 759 "parser.yy"
    6079     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    6080     break;
    6081 
    6082   case 169:
    6083 
    6084 /* Line 1806 of yacc.c  */
    6085 #line 764 "parser.yy"
    6086     { (yyval.sn) = 0; }
    6087     break;
    6088 
    6089   case 171:
    6090 
    6091 /* Line 1806 of yacc.c  */
    6092 #line 770 "parser.yy"
    6093     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    6094     break;
    6095 
    6096   case 172:
    6097 
    6098 /* Line 1806 of yacc.c  */
    6099 #line 772 "parser.yy"
    6100     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    6101     break;
    6102 
    6103   case 173:
    6104 
    6105 /* Line 1806 of yacc.c  */
    6106 #line 777 "parser.yy"
    6107     { (yyval.sn) = 0; }
    6108     break;
    6109 
    6110   case 175:
    6111 
    6112 /* Line 1806 of yacc.c  */
    6113 #line 783 "parser.yy"
    6114     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    6115     break;
    6116 
    6117   case 176:
    6118 
    6119 /* Line 1806 of yacc.c  */
    6120 #line 785 "parser.yy"
    6121     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); }
    6122     break;
    6123 
    6124   case 177:
    6125 
    6126 /* Line 1806 of yacc.c  */
    6127 #line 787 "parser.yy"
    6128     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    6129     break;
    6130 
    6131   case 178:
    6132 
    6133 /* Line 1806 of yacc.c  */
    6134 #line 789 "parser.yy"
    6135     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    6136     break;
    6137 
    6138   case 179:
    6139 
    6140 /* Line 1806 of yacc.c  */
    6141 #line 794 "parser.yy"
    6142     { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    6143     break;
    6144 
    6145   case 181:
    6146 
    6147 /* Line 1806 of yacc.c  */
    6148 #line 800 "parser.yy"
    6149     { (yyval.sn) = 0; }
    6150     break;
    6151 
    6152   case 182:
    6153 
    6154 /* Line 1806 of yacc.c  */
    6155 #line 802 "parser.yy"
    6156     { (yyval.sn) = 0; }
    6157     break;
    6158 
    6159   case 183:
    6160 
    6161 /* Line 1806 of yacc.c  */
    6162 #line 807 "parser.yy"
    6163     { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6164     break;
    6165 
    6166   case 184:
    6167 
    6168 /* Line 1806 of yacc.c  */
    6169 #line 809 "parser.yy"
    6170     { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    6171     break;
    6172 
    6173   case 185:
    6174 
    6175 /* Line 1806 of yacc.c  */
    6176 #line 811 "parser.yy"
    6177     { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    6178     break;
    6179 
    6180   case 186:
    6181 
    6182 /* Line 1806 of yacc.c  */
    6183 #line 816 "parser.yy"
    6184     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    6185     break;
    6186 
    6187   case 187:
    6188 
    6189 /* Line 1806 of yacc.c  */
    6190 #line 818 "parser.yy"
    6191     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    6192     break;
    6193 
    6194   case 188:
    6195 
    6196 /* Line 1806 of yacc.c  */
    6197 #line 823 "parser.yy"
    6198     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    6199     break;
    6200 
    6201   case 189:
    6202 
    6203 /* Line 1806 of yacc.c  */
    6204 #line 827 "parser.yy"
    6205     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    6206     break;
    6207 
    6208   case 190:
    6209 
    6210 /* Line 1806 of yacc.c  */
    6211 #line 830 "parser.yy"
    6212     { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    6213     break;
    6214 
    6215   case 191:
    6216 
    6217 /* Line 1806 of yacc.c  */
    6218 #line 834 "parser.yy"
    6219     { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    6220     break;
    6221 
    6222   case 192:
    6223 
    6224 /* Line 1806 of yacc.c  */
    6225 #line 837 "parser.yy"
    6226     { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    6227     break;
    6228 
    6229   case 193:
    6230 
    6231 /* Line 1806 of yacc.c  */
    6232 #line 841 "parser.yy"
    6233     { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    6234     break;
    6235 
    6236   case 194:
    6237 
    6238 /* Line 1806 of yacc.c  */
    6239 #line 843 "parser.yy"
    6240     { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    6241     break;
    6242 
    6243   case 195:
    6244 
    6245 /* Line 1806 of yacc.c  */
    6246 #line 845 "parser.yy"
    6247     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    6248     break;
    6249 
    6250   case 196:
    6251 
    6252 /* Line 1806 of yacc.c  */
    6253 #line 849 "parser.yy"
    6254     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    6255     break;
    6256 
    6257   case 197:
    6258 
    6259 /* Line 1806 of yacc.c  */
    6260 #line 851 "parser.yy"
    6261     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    6262     break;
    6263 
    6264   case 198:
    6265 
    6266 /* Line 1806 of yacc.c  */
    6267 #line 858 "parser.yy"
    6268     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6269     break;
    6270 
    6271   case 199:
    6272 
    6273 /* Line 1806 of yacc.c  */
    6274 #line 860 "parser.yy"
    6275     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6276     break;
    6277 
    6278   case 200:
    6279 
    6280 /* Line 1806 of yacc.c  */
    6281 #line 862 "parser.yy"
    6282     {
    6283                         (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
    6284                         (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (4)].sn),*(yyvsp[(3) - (4)].pn) ))));
    6285                 }
    6286     break;
    6287 
    6288   case 202:
    6289 
    6290 /* Line 1806 of yacc.c  */
    6291 #line 873 "parser.yy"
    6292     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6293     break;
    6294 
    6295   case 203:
    6296 
    6297 /* Line 1806 of yacc.c  */
    6298 #line 875 "parser.yy"
    6299     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    6300     break;
    6301 
    6302   case 204:
    6303 
    6304 /* Line 1806 of yacc.c  */
    6305 #line 877 "parser.yy"
    6306     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6307     break;
    6308 
    6309   case 205:
    6310 
    6311 /* Line 1806 of yacc.c  */
    6312 #line 879 "parser.yy"
    6313     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    6314     break;
    6315 
    6316   case 206:
    6317 
    6318 /* Line 1806 of yacc.c  */
    6319 #line 884 "parser.yy"
    6320     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    6321     break;
    6322 
    6323   case 207:
    6324 
    6325 /* Line 1806 of yacc.c  */
    6326 #line 886 "parser.yy"
    6327     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6328     break;
    6329 
    63306090  case 208:
    63316091
    63326092/* Line 1806 of yacc.c  */
    6333 #line 888 "parser.yy"
    6334     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    6335     break;
    6336 
    6337   case 209:
    6338 
    6339 /* Line 1806 of yacc.c  */
    6340 #line 890 "parser.yy"
    6341     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6342     break;
    6343 
    6344   case 210:
    6345 
    6346 /* Line 1806 of yacc.c  */
    6347 #line 895 "parser.yy"
    6348     {
    6349                         (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
    6350                         std::cout << "Just created a finally node" << std::endl;
    6351                 }
    6352     break;
    6353 
    6354   case 212:
    6355 
    6356 /* Line 1806 of yacc.c  */
    6357 #line 909 "parser.yy"
     6093#line 917 "parser.yy"
    63586094    {
    63596095                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63626098    break;
    63636099
    6364   case 213:
    6365 
    6366 /* Line 1806 of yacc.c  */
    6367 #line 914 "parser.yy"
     6100  case 209:
     6101
     6102/* Line 1806 of yacc.c  */
     6103#line 922 "parser.yy"
    63686104    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    63696105    break;
    63706106
    6371   case 214:
    6372 
    6373 /* Line 1806 of yacc.c  */
    6374 #line 916 "parser.yy"
     6107  case 210:
     6108
     6109/* Line 1806 of yacc.c  */
     6110#line 924 "parser.yy"
    63756111    {
    63766112                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63796115    break;
    63806116
     6117  case 212:
     6118
     6119/* Line 1806 of yacc.c  */
     6120#line 933 "parser.yy"
     6121    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6122    break;
     6123
     6124  case 213:
     6125
     6126/* Line 1806 of yacc.c  */
     6127#line 935 "parser.yy"
     6128    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     6129    break;
     6130
     6131  case 214:
     6132
     6133/* Line 1806 of yacc.c  */
     6134#line 937 "parser.yy"
     6135    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     6136    break;
     6137
     6138  case 215:
     6139
     6140/* Line 1806 of yacc.c  */
     6141#line 939 "parser.yy"
     6142    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
     6143    break;
     6144
    63816145  case 216:
    63826146
    63836147/* Line 1806 of yacc.c  */
    6384 #line 925 "parser.yy"
    6385     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6148#line 941 "parser.yy"
     6149    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    63866150    break;
    63876151
     
    63896153
    63906154/* Line 1806 of yacc.c  */
    6391 #line 927 "parser.yy"
    6392     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
     6155#line 946 "parser.yy"
     6156    { (yyval.flag) = false; }
    63936157    break;
    63946158
     
    63966160
    63976161/* Line 1806 of yacc.c  */
    6398 #line 929 "parser.yy"
    6399     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
     6162#line 948 "parser.yy"
     6163    { (yyval.flag) = true; }
    64006164    break;
    64016165
     
    64036167
    64046168/* Line 1806 of yacc.c  */
    6405 #line 931 "parser.yy"
    6406     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    6407     break;
    6408 
    6409   case 220:
    6410 
    6411 /* Line 1806 of yacc.c  */
    6412 #line 933 "parser.yy"
    6413     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    6414     break;
    6415 
    6416   case 221:
    6417 
    6418 /* Line 1806 of yacc.c  */
    6419 #line 938 "parser.yy"
    6420     { (yyval.flag) = false; }
     6169#line 953 "parser.yy"
     6170    { (yyval.en) = 0; }
    64216171    break;
    64226172
     
    64246174
    64256175/* Line 1806 of yacc.c  */
    6426 #line 940 "parser.yy"
    6427     { (yyval.flag) = true; }
     6176#line 960 "parser.yy"
     6177    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    64286178    break;
    64296179
     
    64316181
    64326182/* Line 1806 of yacc.c  */
    6433 #line 945 "parser.yy"
     6183#line 965 "parser.yy"
     6184    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     6185    break;
     6186
     6187  case 224:
     6188
     6189/* Line 1806 of yacc.c  */
     6190#line 967 "parser.yy"
     6191    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     6192    break;
     6193
     6194  case 225:
     6195
     6196/* Line 1806 of yacc.c  */
     6197#line 972 "parser.yy"
    64346198    { (yyval.en) = 0; }
    64356199    break;
     
    64386202
    64396203/* Line 1806 of yacc.c  */
    6440 #line 952 "parser.yy"
    6441     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     6204#line 974 "parser.yy"
     6205    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    64426206    break;
    64436207
     
    64456209
    64466210/* Line 1806 of yacc.c  */
    6447 #line 957 "parser.yy"
    6448     { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
     6211#line 976 "parser.yy"
     6212    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    64496213    break;
    64506214
     
    64526216
    64536217/* Line 1806 of yacc.c  */
    6454 #line 959 "parser.yy"
    6455     { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
     6218#line 981 "parser.yy"
     6219    { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); }
    64566220    break;
    64576221
     
    64596223
    64606224/* Line 1806 of yacc.c  */
    6461 #line 964 "parser.yy"
    6462     { (yyval.constant) = 0; }
     6225#line 983 "parser.yy"
     6226    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); }
    64636227    break;
    64646228
     
    64666230
    64676231/* Line 1806 of yacc.c  */
    6468 #line 966 "parser.yy"
    6469     { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    6470     break;
    6471 
    6472   case 231:
    6473 
    6474 /* Line 1806 of yacc.c  */
    6475 #line 968 "parser.yy"
    6476     { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    6477     break;
    6478 
    6479   case 232:
    6480 
    6481 /* Line 1806 of yacc.c  */
    6482 #line 973 "parser.yy"
    6483     { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
     6232#line 990 "parser.yy"
     6233    { (yyval.decl) = 0; }
    64846234    break;
    64856235
     
    64876237
    64886238/* Line 1806 of yacc.c  */
    6489 #line 975 "parser.yy"
    6490     { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
     6239#line 997 "parser.yy"
     6240    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    64916241    break;
    64926242
     
    64946244
    64956245/* Line 1806 of yacc.c  */
    6496 #line 982 "parser.yy"
     6246#line 1002 "parser.yy"
    64976247    { (yyval.decl) = 0; }
    64986248    break;
     
    65016251
    65026252/* Line 1806 of yacc.c  */
    6503 #line 989 "parser.yy"
     6253#line 1009 "parser.yy"
    65046254    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    65056255    break;
    65066256
    6507   case 238:
    6508 
    6509 /* Line 1806 of yacc.c  */
    6510 #line 994 "parser.yy"
    6511     { (yyval.decl) = 0; }
    6512     break;
    6513 
    6514   case 241:
    6515 
    6516 /* Line 1806 of yacc.c  */
    6517 #line 1001 "parser.yy"
    6518     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6519     break;
    6520 
    6521   case 246:
    6522 
    6523 /* Line 1806 of yacc.c  */
    6524 #line 1015 "parser.yy"
     6257  case 242:
     6258
     6259/* Line 1806 of yacc.c  */
     6260#line 1023 "parser.yy"
    65256261    {}
    65266262    break;
    65276263
    6528   case 247:
    6529 
    6530 /* Line 1806 of yacc.c  */
    6531 #line 1016 "parser.yy"
     6264  case 243:
     6265
     6266/* Line 1806 of yacc.c  */
     6267#line 1024 "parser.yy"
    65326268    {}
    65336269    break;
    65346270
    6535   case 255:
    6536 
    6537 /* Line 1806 of yacc.c  */
    6538 #line 1045 "parser.yy"
     6271  case 251:
     6272
     6273/* Line 1806 of yacc.c  */
     6274#line 1053 "parser.yy"
    65396275    {
    65406276                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65436279    break;
    65446280
    6545   case 256:
    6546 
    6547 /* Line 1806 of yacc.c  */
    6548 #line 1052 "parser.yy"
     6281  case 252:
     6282
     6283/* Line 1806 of yacc.c  */
     6284#line 1060 "parser.yy"
    65496285    {
    65506286                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65536289    break;
    65546290
    6555   case 257:
    6556 
    6557 /* Line 1806 of yacc.c  */
    6558 #line 1057 "parser.yy"
     6291  case 253:
     6292
     6293/* Line 1806 of yacc.c  */
     6294#line 1065 "parser.yy"
    65596295    {
    65606296                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    65636299    break;
    65646300
    6565   case 258:
    6566 
    6567 /* Line 1806 of yacc.c  */
    6568 #line 1067 "parser.yy"
     6301  case 254:
     6302
     6303/* Line 1806 of yacc.c  */
     6304#line 1075 "parser.yy"
    65696305    {
    65706306                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    65736309    break;
    65746310
    6575   case 259:
    6576 
    6577 /* Line 1806 of yacc.c  */
    6578 #line 1072 "parser.yy"
     6311  case 255:
     6312
     6313/* Line 1806 of yacc.c  */
     6314#line 1080 "parser.yy"
    65796315    {
    65806316                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    65836319    break;
    65846320
    6585   case 260:
    6586 
    6587 /* Line 1806 of yacc.c  */
    6588 #line 1077 "parser.yy"
     6321  case 256:
     6322
     6323/* Line 1806 of yacc.c  */
     6324#line 1085 "parser.yy"
    65896325    {
    65906326                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    65936329    break;
    65946330
    6595   case 261:
    6596 
    6597 /* Line 1806 of yacc.c  */
    6598 #line 1085 "parser.yy"
     6331  case 257:
     6332
     6333/* Line 1806 of yacc.c  */
     6334#line 1093 "parser.yy"
    65996335    {
    66006336                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66036339    break;
    66046340
    6605   case 262:
    6606 
    6607 /* Line 1806 of yacc.c  */
    6608 #line 1090 "parser.yy"
     6341  case 258:
     6342
     6343/* Line 1806 of yacc.c  */
     6344#line 1098 "parser.yy"
    66096345    {
    66106346                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66136349    break;
    66146350
    6615   case 263:
    6616 
    6617 /* Line 1806 of yacc.c  */
    6618 #line 1095 "parser.yy"
     6351  case 259:
     6352
     6353/* Line 1806 of yacc.c  */
     6354#line 1103 "parser.yy"
    66196355    {
    66206356                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66236359    break;
    66246360
    6625   case 264:
    6626 
    6627 /* Line 1806 of yacc.c  */
    6628 #line 1100 "parser.yy"
     6361  case 260:
     6362
     6363/* Line 1806 of yacc.c  */
     6364#line 1108 "parser.yy"
    66296365    {
    66306366                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66336369    break;
    66346370
    6635   case 265:
    6636 
    6637 /* Line 1806 of yacc.c  */
    6638 #line 1105 "parser.yy"
     6371  case 261:
     6372
     6373/* Line 1806 of yacc.c  */
     6374#line 1113 "parser.yy"
    66396375    {
    66406376                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    66436379    break;
    66446380
    6645   case 266:
    6646 
    6647 /* Line 1806 of yacc.c  */
    6648 #line 1113 "parser.yy"
     6381  case 262:
     6382
     6383/* Line 1806 of yacc.c  */
     6384#line 1121 "parser.yy"
    66496385    {
    66506386                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    66526388    break;
    66536389
    6654   case 267:
    6655 
    6656 /* Line 1806 of yacc.c  */
    6657 #line 1136 "parser.yy"
     6390  case 263:
     6391
     6392/* Line 1806 of yacc.c  */
     6393#line 1144 "parser.yy"
    66586394    {
    66596395                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    66616397    break;
    66626398
    6663   case 268:
    6664 
    6665 /* Line 1806 of yacc.c  */
    6666 #line 1140 "parser.yy"
     6399  case 264:
     6400
     6401/* Line 1806 of yacc.c  */
     6402#line 1148 "parser.yy"
    66676403    {
    66686404                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    66706406    break;
    66716407
    6672   case 269:
    6673 
    6674 /* Line 1806 of yacc.c  */
    6675 #line 1147 "parser.yy"
     6408  case 265:
     6409
     6410/* Line 1806 of yacc.c  */
     6411#line 1155 "parser.yy"
    66766412    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    66776413    break;
    66786414
    6679   case 270:
    6680 
    6681 /* Line 1806 of yacc.c  */
    6682 #line 1151 "parser.yy"
     6415  case 266:
     6416
     6417/* Line 1806 of yacc.c  */
     6418#line 1159 "parser.yy"
    66836419    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    66846420    break;
    66856421
    6686   case 271:
    6687 
    6688 /* Line 1806 of yacc.c  */
    6689 #line 1156 "parser.yy"
     6422  case 267:
     6423
     6424/* Line 1806 of yacc.c  */
     6425#line 1164 "parser.yy"
    66906426    {
    66916427                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    66946430    break;
    66956431
    6696   case 272:
    6697 
    6698 /* Line 1806 of yacc.c  */
    6699 #line 1161 "parser.yy"
     6432  case 268:
     6433
     6434/* Line 1806 of yacc.c  */
     6435#line 1169 "parser.yy"
    67006436    {
    67016437                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67046440    break;
    67056441
    6706   case 273:
    6707 
    6708 /* Line 1806 of yacc.c  */
    6709 #line 1166 "parser.yy"
     6442  case 269:
     6443
     6444/* Line 1806 of yacc.c  */
     6445#line 1174 "parser.yy"
    67106446    {
    67116447                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    67146450    break;
    67156451
    6716   case 274:
    6717 
    6718 /* Line 1806 of yacc.c  */
    6719 #line 1177 "parser.yy"
     6452  case 270:
     6453
     6454/* Line 1806 of yacc.c  */
     6455#line 1185 "parser.yy"
    67206456    {
    67216457                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67246460    break;
    67256461
    6726   case 275:
    6727 
    6728 /* Line 1806 of yacc.c  */
    6729 #line 1182 "parser.yy"
     6462  case 271:
     6463
     6464/* Line 1806 of yacc.c  */
     6465#line 1190 "parser.yy"
    67306466    {
    67316467                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67346470    break;
    67356471
    6736   case 276:
    6737 
    6738 /* Line 1806 of yacc.c  */
    6739 #line 1187 "parser.yy"
     6472  case 272:
     6473
     6474/* Line 1806 of yacc.c  */
     6475#line 1195 "parser.yy"
    67406476    {
    67416477                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67446480    break;
    67456481
    6746   case 277:
    6747 
    6748 /* Line 1806 of yacc.c  */
    6749 #line 1192 "parser.yy"
     6482  case 273:
     6483
     6484/* Line 1806 of yacc.c  */
     6485#line 1200 "parser.yy"
    67506486    {
    67516487                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67546490    break;
    67556491
    6756   case 278:
    6757 
    6758 /* Line 1806 of yacc.c  */
    6759 #line 1197 "parser.yy"
     6492  case 274:
     6493
     6494/* Line 1806 of yacc.c  */
     6495#line 1205 "parser.yy"
    67606496    {
    67616497                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67646500    break;
    67656501
    6766   case 279:
    6767 
    6768 /* Line 1806 of yacc.c  */
    6769 #line 1206 "parser.yy"
     6502  case 275:
     6503
     6504/* Line 1806 of yacc.c  */
     6505#line 1214 "parser.yy"
    67706506    {
    67716507                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    67746510    break;
    67756511
    6776   case 280:
    6777 
    6778 /* Line 1806 of yacc.c  */
    6779 #line 1211 "parser.yy"
     6512  case 276:
     6513
     6514/* Line 1806 of yacc.c  */
     6515#line 1219 "parser.yy"
    67806516    {
    67816517                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    67846520    break;
    67856521
    6786   case 285:
    6787 
    6788 /* Line 1806 of yacc.c  */
    6789 #line 1228 "parser.yy"
     6522  case 281:
     6523
     6524/* Line 1806 of yacc.c  */
     6525#line 1236 "parser.yy"
    67906526    {
    67916527                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    67946530    break;
    67956531
    6796   case 286:
    6797 
    6798 /* Line 1806 of yacc.c  */
    6799 #line 1233 "parser.yy"
     6532  case 282:
     6533
     6534/* Line 1806 of yacc.c  */
     6535#line 1241 "parser.yy"
    68006536    {
    68016537                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    68046540    break;
    68056541
    6806   case 295:
    6807 
    6808 /* Line 1806 of yacc.c  */
    6809 #line 1255 "parser.yy"
     6542  case 291:
     6543
     6544/* Line 1806 of yacc.c  */
     6545#line 1263 "parser.yy"
    68106546    { (yyval.decl) = 0; }
    68116547    break;
    68126548
     6549  case 294:
     6550
     6551/* Line 1806 of yacc.c  */
     6552#line 1275 "parser.yy"
     6553    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6554    break;
     6555
     6556  case 297:
     6557
     6558/* Line 1806 of yacc.c  */
     6559#line 1286 "parser.yy"
     6560    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6561    break;
     6562
    68136563  case 298:
    68146564
    68156565/* Line 1806 of yacc.c  */
    6816 #line 1267 "parser.yy"
    6817     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6566#line 1288 "parser.yy"
     6567    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6568    break;
     6569
     6570  case 299:
     6571
     6572/* Line 1806 of yacc.c  */
     6573#line 1290 "parser.yy"
     6574    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6575    break;
     6576
     6577  case 300:
     6578
     6579/* Line 1806 of yacc.c  */
     6580#line 1292 "parser.yy"
     6581    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    68186582    break;
    68196583
     
    68216585
    68226586/* Line 1806 of yacc.c  */
    6823 #line 1278 "parser.yy"
    6824     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6587#line 1294 "parser.yy"
     6588    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    68256589    break;
    68266590
     
    68286592
    68296593/* Line 1806 of yacc.c  */
    6830 #line 1280 "parser.yy"
    6831     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6832     break;
    6833 
    6834   case 303:
    6835 
    6836 /* Line 1806 of yacc.c  */
    6837 #line 1282 "parser.yy"
    6838     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6839     break;
    6840 
    6841   case 304:
    6842 
    6843 /* Line 1806 of yacc.c  */
    6844 #line 1284 "parser.yy"
    6845     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6846     break;
    6847 
    6848   case 305:
    6849 
    6850 /* Line 1806 of yacc.c  */
    6851 #line 1286 "parser.yy"
    6852     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6853     break;
    6854 
    6855   case 306:
    6856 
    6857 /* Line 1806 of yacc.c  */
    6858 #line 1288 "parser.yy"
     6594#line 1296 "parser.yy"
    68596595    {
    68606596                        typedefTable.enterScope();
     
    68626598    break;
    68636599
    6864   case 307:
    6865 
    6866 /* Line 1806 of yacc.c  */
    6867 #line 1292 "parser.yy"
     6600  case 303:
     6601
     6602/* Line 1806 of yacc.c  */
     6603#line 1300 "parser.yy"
    68686604    {
    68696605                        typedefTable.leaveScope();
     
    68726608    break;
    68736609
    6874   case 309:
    6875 
    6876 /* Line 1806 of yacc.c  */
    6877 #line 1301 "parser.yy"
     6610  case 305:
     6611
     6612/* Line 1806 of yacc.c  */
     6613#line 1309 "parser.yy"
    68786614    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68796615    break;
    68806616
     6617  case 306:
     6618
     6619/* Line 1806 of yacc.c  */
     6620#line 1311 "parser.yy"
     6621    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6622    break;
     6623
     6624  case 308:
     6625
     6626/* Line 1806 of yacc.c  */
     6627#line 1322 "parser.yy"
     6628    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6629    break;
     6630
    68816631  case 310:
    68826632
    68836633/* Line 1806 of yacc.c  */
    6884 #line 1303 "parser.yy"
     6634#line 1331 "parser.yy"
     6635    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6636    break;
     6637
     6638  case 311:
     6639
     6640/* Line 1806 of yacc.c  */
     6641#line 1333 "parser.yy"
     6642    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6643    break;
     6644
     6645  case 312:
     6646
     6647/* Line 1806 of yacc.c  */
     6648#line 1335 "parser.yy"
     6649    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6650    break;
     6651
     6652  case 313:
     6653
     6654/* Line 1806 of yacc.c  */
     6655#line 1337 "parser.yy"
     6656    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6657    break;
     6658
     6659  case 314:
     6660
     6661/* Line 1806 of yacc.c  */
     6662#line 1339 "parser.yy"
     6663    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6664    break;
     6665
     6666  case 315:
     6667
     6668/* Line 1806 of yacc.c  */
     6669#line 1341 "parser.yy"
     6670    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6671    break;
     6672
     6673  case 316:
     6674
     6675/* Line 1806 of yacc.c  */
     6676#line 1343 "parser.yy"
     6677    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6678    break;
     6679
     6680  case 317:
     6681
     6682/* Line 1806 of yacc.c  */
     6683#line 1345 "parser.yy"
     6684    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6685    break;
     6686
     6687  case 318:
     6688
     6689/* Line 1806 of yacc.c  */
     6690#line 1350 "parser.yy"
     6691    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6692    break;
     6693
     6694  case 319:
     6695
     6696/* Line 1806 of yacc.c  */
     6697#line 1352 "parser.yy"
     6698    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6699    break;
     6700
     6701  case 320:
     6702
     6703/* Line 1806 of yacc.c  */
     6704#line 1354 "parser.yy"
     6705    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6706    break;
     6707
     6708  case 321:
     6709
     6710/* Line 1806 of yacc.c  */
     6711#line 1356 "parser.yy"
     6712    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6713    break;
     6714
     6715  case 322:
     6716
     6717/* Line 1806 of yacc.c  */
     6718#line 1358 "parser.yy"
     6719    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6720    break;
     6721
     6722  case 323:
     6723
     6724/* Line 1806 of yacc.c  */
     6725#line 1360 "parser.yy"
     6726    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6727    break;
     6728
     6729  case 324:
     6730
     6731/* Line 1806 of yacc.c  */
     6732#line 1362 "parser.yy"
     6733    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6734    break;
     6735
     6736  case 325:
     6737
     6738/* Line 1806 of yacc.c  */
     6739#line 1364 "parser.yy"
     6740    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6741    break;
     6742
     6743  case 326:
     6744
     6745/* Line 1806 of yacc.c  */
     6746#line 1366 "parser.yy"
     6747    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6748    break;
     6749
     6750  case 327:
     6751
     6752/* Line 1806 of yacc.c  */
     6753#line 1368 "parser.yy"
     6754    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6755    break;
     6756
     6757  case 328:
     6758
     6759/* Line 1806 of yacc.c  */
     6760#line 1370 "parser.yy"
     6761    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6762    break;
     6763
     6764  case 329:
     6765
     6766/* Line 1806 of yacc.c  */
     6767#line 1372 "parser.yy"
     6768    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6769    break;
     6770
     6771  case 330:
     6772
     6773/* Line 1806 of yacc.c  */
     6774#line 1374 "parser.yy"
     6775    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6776    break;
     6777
     6778  case 332:
     6779
     6780/* Line 1806 of yacc.c  */
     6781#line 1381 "parser.yy"
     6782    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6783    break;
     6784
     6785  case 333:
     6786
     6787/* Line 1806 of yacc.c  */
     6788#line 1383 "parser.yy"
     6789    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6790    break;
     6791
     6792  case 334:
     6793
     6794/* Line 1806 of yacc.c  */
     6795#line 1385 "parser.yy"
    68856796    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68866797    break;
    68876798
    6888   case 312:
    6889 
    6890 /* Line 1806 of yacc.c  */
    6891 #line 1314 "parser.yy"
     6799  case 335:
     6800
     6801/* Line 1806 of yacc.c  */
     6802#line 1387 "parser.yy"
     6803    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6804    break;
     6805
     6806  case 337:
     6807
     6808/* Line 1806 of yacc.c  */
     6809#line 1393 "parser.yy"
     6810    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6811    break;
     6812
     6813  case 339:
     6814
     6815/* Line 1806 of yacc.c  */
     6816#line 1400 "parser.yy"
     6817    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6818    break;
     6819
     6820  case 340:
     6821
     6822/* Line 1806 of yacc.c  */
     6823#line 1402 "parser.yy"
    68926824    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68936825    break;
    68946826
    6895   case 314:
    6896 
    6897 /* Line 1806 of yacc.c  */
    6898 #line 1323 "parser.yy"
    6899     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6900     break;
    6901 
    6902   case 315:
    6903 
    6904 /* Line 1806 of yacc.c  */
    6905 #line 1325 "parser.yy"
    6906     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6907     break;
    6908 
    6909   case 316:
    6910 
    6911 /* Line 1806 of yacc.c  */
    6912 #line 1327 "parser.yy"
    6913     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6914     break;
    6915 
    6916   case 317:
    6917 
    6918 /* Line 1806 of yacc.c  */
    6919 #line 1329 "parser.yy"
    6920     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6921     break;
    6922 
    6923   case 318:
    6924 
    6925 /* Line 1806 of yacc.c  */
    6926 #line 1331 "parser.yy"
    6927     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    6928     break;
    6929 
    6930   case 319:
    6931 
    6932 /* Line 1806 of yacc.c  */
    6933 #line 1333 "parser.yy"
    6934     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6935     break;
    6936 
    6937   case 320:
    6938 
    6939 /* Line 1806 of yacc.c  */
    6940 #line 1335 "parser.yy"
    6941     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    6942     break;
    6943 
    6944   case 321:
    6945 
    6946 /* Line 1806 of yacc.c  */
    6947 #line 1337 "parser.yy"
    6948     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6949     break;
    6950 
    6951   case 322:
    6952 
    6953 /* Line 1806 of yacc.c  */
    6954 #line 1342 "parser.yy"
    6955     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6956     break;
    6957 
    6958   case 323:
    6959 
    6960 /* Line 1806 of yacc.c  */
    6961 #line 1344 "parser.yy"
    6962     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6963     break;
    6964 
    6965   case 324:
    6966 
    6967 /* Line 1806 of yacc.c  */
    6968 #line 1346 "parser.yy"
    6969     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6970     break;
    6971 
    6972   case 325:
    6973 
    6974 /* Line 1806 of yacc.c  */
    6975 #line 1348 "parser.yy"
    6976     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6977     break;
    6978 
    6979   case 326:
    6980 
    6981 /* Line 1806 of yacc.c  */
    6982 #line 1350 "parser.yy"
    6983     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6984     break;
    6985 
    6986   case 327:
    6987 
    6988 /* Line 1806 of yacc.c  */
    6989 #line 1352 "parser.yy"
    6990     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6991     break;
    6992 
    6993   case 328:
    6994 
    6995 /* Line 1806 of yacc.c  */
    6996 #line 1354 "parser.yy"
    6997     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6998     break;
    6999 
    7000   case 329:
    7001 
    7002 /* Line 1806 of yacc.c  */
    7003 #line 1356 "parser.yy"
    7004     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    7005     break;
    7006 
    7007   case 330:
    7008 
    7009 /* Line 1806 of yacc.c  */
    7010 #line 1358 "parser.yy"
    7011     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    7012     break;
    7013 
    7014   case 331:
    7015 
    7016 /* Line 1806 of yacc.c  */
    7017 #line 1360 "parser.yy"
    7018     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    7019     break;
    7020 
    7021   case 332:
    7022 
    7023 /* Line 1806 of yacc.c  */
    7024 #line 1362 "parser.yy"
    7025     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    7026     break;
    7027 
    7028   case 333:
    7029 
    7030 /* Line 1806 of yacc.c  */
    7031 #line 1364 "parser.yy"
    7032     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    7033     break;
    7034 
    7035   case 334:
    7036 
    7037 /* Line 1806 of yacc.c  */
    7038 #line 1366 "parser.yy"
    7039     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    7040     break;
    7041 
    7042   case 336:
    7043 
    7044 /* Line 1806 of yacc.c  */
    7045 #line 1373 "parser.yy"
     6827  case 341:
     6828
     6829/* Line 1806 of yacc.c  */
     6830#line 1404 "parser.yy"
     6831    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6832    break;
     6833
     6834  case 342:
     6835
     6836/* Line 1806 of yacc.c  */
     6837#line 1409 "parser.yy"
     6838    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6839    break;
     6840
     6841  case 343:
     6842
     6843/* Line 1806 of yacc.c  */
     6844#line 1411 "parser.yy"
     6845    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6846    break;
     6847
     6848  case 344:
     6849
     6850/* Line 1806 of yacc.c  */
     6851#line 1413 "parser.yy"
     6852    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6853    break;
     6854
     6855  case 345:
     6856
     6857/* Line 1806 of yacc.c  */
     6858#line 1415 "parser.yy"
     6859    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6860    break;
     6861
     6862  case 347:
     6863
     6864/* Line 1806 of yacc.c  */
     6865#line 1421 "parser.yy"
    70466866    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70476867    break;
    70486868
    7049   case 337:
    7050 
    7051 /* Line 1806 of yacc.c  */
    7052 #line 1375 "parser.yy"
     6869  case 348:
     6870
     6871/* Line 1806 of yacc.c  */
     6872#line 1423 "parser.yy"
    70536873    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70546874    break;
    70556875
    7056   case 338:
    7057 
    7058 /* Line 1806 of yacc.c  */
    7059 #line 1377 "parser.yy"
     6876  case 349:
     6877
     6878/* Line 1806 of yacc.c  */
     6879#line 1425 "parser.yy"
    70606880    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    70616881    break;
    70626882
    7063   case 339:
    7064 
    7065 /* Line 1806 of yacc.c  */
    7066 #line 1379 "parser.yy"
    7067     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    7068     break;
    7069 
    7070   case 341:
    7071 
    7072 /* Line 1806 of yacc.c  */
    7073 #line 1385 "parser.yy"
    7074     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7075     break;
    7076 
    7077   case 343:
    7078 
    7079 /* Line 1806 of yacc.c  */
    7080 #line 1392 "parser.yy"
    7081     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7082     break;
    7083 
    7084   case 344:
    7085 
    7086 /* Line 1806 of yacc.c  */
    7087 #line 1394 "parser.yy"
    7088     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7089     break;
    7090 
    7091   case 345:
    7092 
    7093 /* Line 1806 of yacc.c  */
    7094 #line 1396 "parser.yy"
    7095     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    7096     break;
    7097 
    7098   case 346:
    7099 
    7100 /* Line 1806 of yacc.c  */
    7101 #line 1401 "parser.yy"
    7102     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    7103     break;
    7104 
    7105   case 347:
    7106 
    7107 /* Line 1806 of yacc.c  */
    7108 #line 1403 "parser.yy"
    7109     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    7110     break;
    7111 
    7112   case 348:
    7113 
    7114 /* Line 1806 of yacc.c  */
    7115 #line 1405 "parser.yy"
    7116     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    7117     break;
    7118 
    7119   case 349:
    7120 
    7121 /* Line 1806 of yacc.c  */
    7122 #line 1407 "parser.yy"
    7123     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    7124     break;
    7125 
    71266883  case 351:
    7127 
    7128 /* Line 1806 of yacc.c  */
    7129 #line 1413 "parser.yy"
    7130     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7131     break;
    7132 
    7133   case 352:
    7134 
    7135 /* Line 1806 of yacc.c  */
    7136 #line 1415 "parser.yy"
    7137     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7138     break;
    7139 
    7140   case 353:
    7141 
    7142 /* Line 1806 of yacc.c  */
    7143 #line 1417 "parser.yy"
    7144     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7145     break;
    7146 
    7147   case 355:
    7148 
    7149 /* Line 1806 of yacc.c  */
    7150 #line 1423 "parser.yy"
    7151     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7152     break;
    7153 
    7154   case 356:
    7155 
    7156 /* Line 1806 of yacc.c  */
    7157 #line 1425 "parser.yy"
    7158     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7159     break;
    7160 
    7161   case 358:
    71626884
    71636885/* Line 1806 of yacc.c  */
     
    71666888    break;
    71676889
    7168   case 359:
     6890  case 352:
    71696891
    71706892/* Line 1806 of yacc.c  */
     
    71736895    break;
    71746896
    7175   case 360:
    7176 
    7177 /* Line 1806 of yacc.c  */
    7178 #line 1435 "parser.yy"
     6897  case 354:
     6898
     6899/* Line 1806 of yacc.c  */
     6900#line 1439 "parser.yy"
     6901    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6902    break;
     6903
     6904  case 355:
     6905
     6906/* Line 1806 of yacc.c  */
     6907#line 1441 "parser.yy"
     6908    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6909    break;
     6910
     6911  case 356:
     6912
     6913/* Line 1806 of yacc.c  */
     6914#line 1443 "parser.yy"
    71796915    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    71806916    break;
    71816917
    7182   case 361:
    7183 
    7184 /* Line 1806 of yacc.c  */
    7185 #line 1440 "parser.yy"
     6918  case 357:
     6919
     6920/* Line 1806 of yacc.c  */
     6921#line 1448 "parser.yy"
    71866922    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    71876923    break;
    71886924
     6925  case 358:
     6926
     6927/* Line 1806 of yacc.c  */
     6928#line 1450 "parser.yy"
     6929    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6930    break;
     6931
     6932  case 359:
     6933
     6934/* Line 1806 of yacc.c  */
     6935#line 1452 "parser.yy"
     6936    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6937    break;
     6938
    71896939  case 362:
    71906940
    71916941/* Line 1806 of yacc.c  */
    7192 #line 1442 "parser.yy"
    7193     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6942#line 1462 "parser.yy"
     6943    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    71946944    break;
    71956945
     
    71976947
    71986948/* Line 1806 of yacc.c  */
    7199 #line 1444 "parser.yy"
    7200     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7201     break;
    7202 
    7203   case 366:
    7204 
    7205 /* Line 1806 of yacc.c  */
    7206 #line 1454 "parser.yy"
    7207     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    7208     break;
    7209 
    7210   case 367:
    7211 
    7212 /* Line 1806 of yacc.c  */
    7213 #line 1456 "parser.yy"
     6949#line 1464 "parser.yy"
    72146950    {
    72156951                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    72186954    break;
    72196955
     6956  case 364:
     6957
     6958/* Line 1806 of yacc.c  */
     6959#line 1469 "parser.yy"
     6960    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6961    break;
     6962
     6963  case 365:
     6964
     6965/* Line 1806 of yacc.c  */
     6966#line 1471 "parser.yy"
     6967    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
     6968    break;
     6969
     6970  case 366:
     6971
     6972/* Line 1806 of yacc.c  */
     6973#line 1473 "parser.yy"
     6974    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     6975    break;
     6976
     6977  case 367:
     6978
     6979/* Line 1806 of yacc.c  */
     6980#line 1475 "parser.yy"
     6981    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6982    break;
     6983
    72206984  case 368:
    72216985
    72226986/* Line 1806 of yacc.c  */
    7223 #line 1461 "parser.yy"
    7224     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6987#line 1480 "parser.yy"
     6988    { (yyval.aggKey) = DeclarationNode::Struct; }
    72256989    break;
    72266990
     
    72286992
    72296993/* Line 1806 of yacc.c  */
    7230 #line 1463 "parser.yy"
    7231     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
     6994#line 1482 "parser.yy"
     6995    { (yyval.aggKey) = DeclarationNode::Union; }
    72326996    break;
    72336997
     
    72356999
    72367000/* Line 1806 of yacc.c  */
    7237 #line 1465 "parser.yy"
    7238     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     7001#line 1487 "parser.yy"
     7002    { (yyval.decl) = 0; }
    72397003    break;
    72407004
     
    72427006
    72437007/* Line 1806 of yacc.c  */
    7244 #line 1467 "parser.yy"
    7245     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7246     break;
    7247 
    7248   case 372:
    7249 
    7250 /* Line 1806 of yacc.c  */
    7251 #line 1472 "parser.yy"
    7252     { (yyval.aggKey) = DeclarationNode::Struct; }
     7008#line 1489 "parser.yy"
     7009    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    72537010    break;
    72547011
     
    72567013
    72577014/* Line 1806 of yacc.c  */
    7258 #line 1474 "parser.yy"
    7259     { (yyval.aggKey) = DeclarationNode::Union; }
    7260     break;
    7261 
    7262   case 374:
    7263 
    7264 /* Line 1806 of yacc.c  */
    7265 #line 1479 "parser.yy"
    7266     { (yyval.decl) = 0; }
     7015#line 1495 "parser.yy"
     7016    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    72677017    break;
    72687018
     
    72707020
    72717021/* Line 1806 of yacc.c  */
    7272 #line 1481 "parser.yy"
    7273     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    7274     break;
    7275 
    7276   case 377:
    7277 
    7278 /* Line 1806 of yacc.c  */
    7279 #line 1487 "parser.yy"
    7280     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    7281     break;
    7282 
    7283   case 379:
    7284 
    7285 /* Line 1806 of yacc.c  */
    7286 #line 1490 "parser.yy"
     7022#line 1498 "parser.yy"
    72877023    {   // mark all fields in list
    7288                         for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     7024                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )
    72897025                                iter->set_extension( true );
    72907026                        (yyval.decl) = (yyvsp[(2) - (3)].decl);
     
    72927028    break;
    72937029
     7030  case 377:
     7031
     7032/* Line 1806 of yacc.c  */
     7033#line 1508 "parser.yy"
     7034    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7035    break;
     7036
     7037  case 378:
     7038
     7039/* Line 1806 of yacc.c  */
     7040#line 1510 "parser.yy"
     7041    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7042    break;
     7043
     7044  case 379:
     7045
     7046/* Line 1806 of yacc.c  */
     7047#line 1512 "parser.yy"
     7048    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7049    break;
     7050
     7051  case 380:
     7052
     7053/* Line 1806 of yacc.c  */
     7054#line 1517 "parser.yy"
     7055    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7056    break;
     7057
    72947058  case 381:
    72957059
    72967060/* Line 1806 of yacc.c  */
    7297 #line 1500 "parser.yy"
    7298     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7061#line 1519 "parser.yy"
     7062    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    72997063    break;
    73007064
     
    73027066
    73037067/* Line 1806 of yacc.c  */
    7304 #line 1502 "parser.yy"
    7305     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7068#line 1524 "parser.yy"
     7069    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    73067070    break;
    73077071
     
    73097073
    73107074/* Line 1806 of yacc.c  */
    7311 #line 1504 "parser.yy"
    7312     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7075#line 1526 "parser.yy"
     7076    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    73137077    break;
    73147078
     
    73167080
    73177081/* Line 1806 of yacc.c  */
    7318 #line 1509 "parser.yy"
    7319     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7082#line 1529 "parser.yy"
     7083    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    73207084    break;
    73217085
     
    73237087
    73247088/* Line 1806 of yacc.c  */
    7325 #line 1511 "parser.yy"
    7326     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    7327     break;
    7328 
    7329   case 386:
    7330 
    7331 /* Line 1806 of yacc.c  */
    7332 #line 1516 "parser.yy"
    7333     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7089#line 1532 "parser.yy"
     7090    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    73347091    break;
    73357092
     
    73377094
    73387095/* Line 1806 of yacc.c  */
    7339 #line 1518 "parser.yy"
    7340     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7096#line 1538 "parser.yy"
     7097    { (yyval.en) = 0; }
    73417098    break;
    73427099
     
    73447101
    73457102/* Line 1806 of yacc.c  */
    7346 #line 1521 "parser.yy"
    7347     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7103#line 1540 "parser.yy"
     7104    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    73487105    break;
    73497106
     
    73517108
    73527109/* Line 1806 of yacc.c  */
    7353 #line 1524 "parser.yy"
    7354     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7110#line 1545 "parser.yy"
     7111    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    73557112    break;
    73567113
     
    73587115
    73597116/* Line 1806 of yacc.c  */
    7360 #line 1530 "parser.yy"
    7361     { (yyval.en) = 0; }
     7117#line 1554 "parser.yy"
     7118    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    73627119    break;
    73637120
     
    73657122
    73667123/* Line 1806 of yacc.c  */
    7367 #line 1532 "parser.yy"
    7368     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7369     break;
    7370 
    7371   case 393:
    7372 
    7373 /* Line 1806 of yacc.c  */
    7374 #line 1537 "parser.yy"
    7375     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7376     break;
    7377 
    7378   case 395:
    7379 
    7380 /* Line 1806 of yacc.c  */
    7381 #line 1546 "parser.yy"
    7382     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7383     break;
    7384 
    7385   case 396:
    7386 
    7387 /* Line 1806 of yacc.c  */
    7388 #line 1548 "parser.yy"
     7124#line 1556 "parser.yy"
    73897125    {
    73907126                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    73937129    break;
    73947130
     7131  case 393:
     7132
     7133/* Line 1806 of yacc.c  */
     7134#line 1561 "parser.yy"
     7135    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7136    break;
     7137
     7138  case 394:
     7139
     7140/* Line 1806 of yacc.c  */
     7141#line 1563 "parser.yy"
     7142    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7143    break;
     7144
     7145  case 395:
     7146
     7147/* Line 1806 of yacc.c  */
     7148#line 1568 "parser.yy"
     7149    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7150    break;
     7151
     7152  case 396:
     7153
     7154/* Line 1806 of yacc.c  */
     7155#line 1570 "parser.yy"
     7156    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7157    break;
     7158
    73957159  case 397:
    73967160
    73977161/* Line 1806 of yacc.c  */
    7398 #line 1553 "parser.yy"
    7399     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7162#line 1575 "parser.yy"
     7163    { (yyval.en) = 0; }
    74007164    break;
    74017165
     
    74037167
    74047168/* Line 1806 of yacc.c  */
    7405 #line 1555 "parser.yy"
    7406     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7169#line 1577 "parser.yy"
     7170    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    74077171    break;
    74087172
     
    74107174
    74117175/* Line 1806 of yacc.c  */
    7412 #line 1560 "parser.yy"
    7413     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7414     break;
    7415 
    7416   case 400:
    7417 
    7418 /* Line 1806 of yacc.c  */
    7419 #line 1562 "parser.yy"
    7420     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    7421     break;
    7422 
    7423   case 401:
    7424 
    7425 /* Line 1806 of yacc.c  */
    7426 #line 1567 "parser.yy"
    7427     { (yyval.en) = 0; }
    7428     break;
    7429 
    7430   case 402:
    7431 
    7432 /* Line 1806 of yacc.c  */
    7433 #line 1569 "parser.yy"
    7434     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7176#line 1584 "parser.yy"
     7177    { (yyval.decl) = 0; }
    74357178    break;
    74367179
     
    74387181
    74397182/* Line 1806 of yacc.c  */
    7440 #line 1576 "parser.yy"
    7441     { (yyval.decl) = 0; }
     7183#line 1592 "parser.yy"
     7184    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7185    break;
     7186
     7187  case 404:
     7188
     7189/* Line 1806 of yacc.c  */
     7190#line 1594 "parser.yy"
     7191    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7192    break;
     7193
     7194  case 405:
     7195
     7196/* Line 1806 of yacc.c  */
     7197#line 1596 "parser.yy"
     7198    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    74427199    break;
    74437200
     
    74457202
    74467203/* Line 1806 of yacc.c  */
    7447 #line 1584 "parser.yy"
     7204#line 1604 "parser.yy"
    74487205    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74497206    break;
    74507207
    74517208  case 408:
    7452 
    7453 /* Line 1806 of yacc.c  */
    7454 #line 1586 "parser.yy"
    7455     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7456     break;
    7457 
    7458   case 409:
    7459 
    7460 /* Line 1806 of yacc.c  */
    7461 #line 1588 "parser.yy"
    7462     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7463     break;
    7464 
    7465   case 411:
    7466 
    7467 /* Line 1806 of yacc.c  */
    7468 #line 1596 "parser.yy"
    7469     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7470     break;
    7471 
    7472   case 412:
    7473 
    7474 /* Line 1806 of yacc.c  */
    7475 #line 1598 "parser.yy"
    7476     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7477     break;
    7478 
    7479   case 413:
    7480 
    7481 /* Line 1806 of yacc.c  */
    7482 #line 1600 "parser.yy"
    7483     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7484     break;
    7485 
    7486   case 415:
    74877209
    74887210/* Line 1806 of yacc.c  */
     
    74917213    break;
    74927214
    7493   case 416:
    7494 
    7495 /* Line 1806 of yacc.c  */
    7496 #line 1611 "parser.yy"
     7215  case 409:
     7216
     7217/* Line 1806 of yacc.c  */
     7218#line 1608 "parser.yy"
     7219    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7220    break;
     7221
     7222  case 411:
     7223
     7224/* Line 1806 of yacc.c  */
     7225#line 1614 "parser.yy"
     7226    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7227    break;
     7228
     7229  case 412:
     7230
     7231/* Line 1806 of yacc.c  */
     7232#line 1619 "parser.yy"
    74977233    { (yyval.decl) = 0; }
    74987234    break;
    74997235
     7236  case 415:
     7237
     7238/* Line 1806 of yacc.c  */
     7239#line 1626 "parser.yy"
     7240    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7241    break;
     7242
     7243  case 418:
     7244
     7245/* Line 1806 of yacc.c  */
     7246#line 1633 "parser.yy"
     7247    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7248    break;
     7249
    75007250  case 419:
    75017251
    75027252/* Line 1806 of yacc.c  */
    7503 #line 1618 "parser.yy"
    7504     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7253#line 1635 "parser.yy"
     7254    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7255    break;
     7256
     7257  case 421:
     7258
     7259/* Line 1806 of yacc.c  */
     7260#line 1644 "parser.yy"
     7261    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    75057262    break;
    75067263
     
    75087265
    75097266/* Line 1806 of yacc.c  */
    7510 #line 1625 "parser.yy"
    7511     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7267#line 1647 "parser.yy"
     7268    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    75127269    break;
    75137270
     
    75157272
    75167273/* Line 1806 of yacc.c  */
    7517 #line 1627 "parser.yy"
    7518     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7519     break;
    7520 
    7521   case 425:
    7522 
    7523 /* Line 1806 of yacc.c  */
    7524 #line 1636 "parser.yy"
    7525     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7526     break;
    7527 
    7528   case 426:
    7529 
    7530 /* Line 1806 of yacc.c  */
    7531 #line 1639 "parser.yy"
    7532     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7533     break;
    7534 
    7535   case 427:
    7536 
    7537 /* Line 1806 of yacc.c  */
    7538 #line 1641 "parser.yy"
     7274#line 1649 "parser.yy"
    75397275    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    75407276    break;
    75417277
    7542   case 432:
    7543 
    7544 /* Line 1806 of yacc.c  */
    7545 #line 1651 "parser.yy"
     7278  case 428:
     7279
     7280/* Line 1806 of yacc.c  */
     7281#line 1659 "parser.yy"
    75467282    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75477283    break;
    75487284
    7549   case 434:
    7550 
    7551 /* Line 1806 of yacc.c  */
    7552 #line 1657 "parser.yy"
     7285  case 430:
     7286
     7287/* Line 1806 of yacc.c  */
     7288#line 1665 "parser.yy"
    75537289    {
    75547290                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    75577293    break;
    75587294
    7559   case 435:
    7560 
    7561 /* Line 1806 of yacc.c  */
    7562 #line 1662 "parser.yy"
     7295  case 431:
     7296
     7297/* Line 1806 of yacc.c  */
     7298#line 1670 "parser.yy"
    75637299    {
    75647300                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    75677303    break;
    75687304
    7569   case 437:
    7570 
    7571 /* Line 1806 of yacc.c  */
    7572 #line 1671 "parser.yy"
     7305  case 433:
     7306
     7307/* Line 1806 of yacc.c  */
     7308#line 1679 "parser.yy"
    75737309    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    75747310    break;
    75757311
    7576   case 438:
    7577 
    7578 /* Line 1806 of yacc.c  */
    7579 #line 1680 "parser.yy"
     7312  case 434:
     7313
     7314/* Line 1806 of yacc.c  */
     7315#line 1688 "parser.yy"
    75807316    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    75817317    break;
    75827318
    7583   case 439:
    7584 
    7585 /* Line 1806 of yacc.c  */
    7586 #line 1682 "parser.yy"
     7319  case 435:
     7320
     7321/* Line 1806 of yacc.c  */
     7322#line 1690 "parser.yy"
    75877323    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    75887324    break;
    75897325
    7590   case 451:
    7591 
    7592 /* Line 1806 of yacc.c  */
    7593 #line 1707 "parser.yy"
    7594     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7595     break;
    7596 
    7597   case 455:
     7326  case 447:
    75987327
    75997328/* Line 1806 of yacc.c  */
     
    76027331    break;
    76037332
     7333  case 451:
     7334
     7335/* Line 1806 of yacc.c  */
     7336#line 1723 "parser.yy"
     7337    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7338    break;
     7339
     7340  case 452:
     7341
     7342/* Line 1806 of yacc.c  */
     7343#line 1728 "parser.yy"
     7344    { (yyval.in) = 0; }
     7345    break;
     7346
     7347  case 453:
     7348
     7349/* Line 1806 of yacc.c  */
     7350#line 1730 "parser.yy"
     7351    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7352    break;
     7353
     7354  case 454:
     7355
     7356/* Line 1806 of yacc.c  */
     7357#line 1732 "parser.yy"
     7358    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7359    break;
     7360
     7361  case 455:
     7362
     7363/* Line 1806 of yacc.c  */
     7364#line 1736 "parser.yy"
     7365    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7366    break;
     7367
    76047368  case 456:
    76057369
    76067370/* Line 1806 of yacc.c  */
    7607 #line 1720 "parser.yy"
     7371#line 1737 "parser.yy"
     7372    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7373    break;
     7374
     7375  case 457:
     7376
     7377/* Line 1806 of yacc.c  */
     7378#line 1742 "parser.yy"
    76087379    { (yyval.in) = 0; }
    76097380    break;
    76107381
    7611   case 457:
    7612 
    7613 /* Line 1806 of yacc.c  */
    7614 #line 1722 "parser.yy"
    7615     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7616     break;
    7617 
    7618   case 458:
    7619 
    7620 /* Line 1806 of yacc.c  */
    7621 #line 1724 "parser.yy"
    7622     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7623     break;
    7624 
    76257382  case 459:
    76267383
    76277384/* Line 1806 of yacc.c  */
    7628 #line 1728 "parser.yy"
    7629     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7385#line 1744 "parser.yy"
     7386    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    76307387    break;
    76317388
     
    76337390
    76347391/* Line 1806 of yacc.c  */
    7635 #line 1729 "parser.yy"
    7636     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7392#line 1745 "parser.yy"
     7393    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    76377394    break;
    76387395
     
    76407397
    76417398/* Line 1806 of yacc.c  */
    7642 #line 1734 "parser.yy"
    7643     { (yyval.in) = 0; }
     7399#line 1747 "parser.yy"
     7400    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    76447401    break;
    76457402
     
    76477404
    76487405/* Line 1806 of yacc.c  */
    7649 #line 1736 "parser.yy"
    7650     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7651     break;
    7652 
    7653   case 464:
    7654 
    7655 /* Line 1806 of yacc.c  */
    7656 #line 1737 "parser.yy"
    7657     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
     7406#line 1763 "parser.yy"
     7407    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    76587408    break;
    76597409
     
    76617411
    76627412/* Line 1806 of yacc.c  */
    7663 #line 1739 "parser.yy"
    7664     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7413#line 1769 "parser.yy"
     7414    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     7415    break;
     7416
     7417  case 466:
     7418
     7419/* Line 1806 of yacc.c  */
     7420#line 1775 "parser.yy"
     7421    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    76657422    break;
    76667423
     
    76687425
    76697426/* Line 1806 of yacc.c  */
    7670 #line 1755 "parser.yy"
    7671     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
     7427#line 1778 "parser.yy"
     7428    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7429    break;
     7430
     7431  case 468:
     7432
     7433/* Line 1806 of yacc.c  */
     7434#line 1780 "parser.yy"
     7435    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    76727436    break;
    76737437
     
    76757439
    76767440/* Line 1806 of yacc.c  */
    7677 #line 1761 "parser.yy"
    7678     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7441#line 1782 "parser.yy"
     7442    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    76797443    break;
    76807444
     
    76827446
    76837447/* Line 1806 of yacc.c  */
    7684 #line 1769 "parser.yy"
    7685     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    7686     break;
    7687 
    7688   case 471:
    7689 
    7690 /* Line 1806 of yacc.c  */
    7691 #line 1771 "parser.yy"
    7692     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
     7448#line 1784 "parser.yy"
     7449    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    76937450    break;
    76947451
     
    76967453
    76977454/* Line 1806 of yacc.c  */
    7698 #line 1774 "parser.yy"
    7699     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
     7455#line 1808 "parser.yy"
     7456    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    77007457    break;
    77017458
     
    77037460
    77047461/* Line 1806 of yacc.c  */
    7705 #line 1776 "parser.yy"
    7706     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
     7462#line 1810 "parser.yy"
     7463    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    77077464    break;
    77087465
     
    77107467
    77117468/* Line 1806 of yacc.c  */
    7712 #line 1778 "parser.yy"
    7713     { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    7714     break;
    7715 
    7716   case 475:
    7717 
    7718 /* Line 1806 of yacc.c  */
    7719 #line 1780 "parser.yy"
    7720     { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
     7469#line 1812 "parser.yy"
     7470    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7471    break;
     7472
     7473  case 476:
     7474
     7475/* Line 1806 of yacc.c  */
     7476#line 1818 "parser.yy"
     7477    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    77217478    break;
    77227479
     
    77247481
    77257482/* Line 1806 of yacc.c  */
    7726 #line 1804 "parser.yy"
    7727     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7483#line 1820 "parser.yy"
     7484    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    77287485    break;
    77297486
     
    77317488
    77327489/* Line 1806 of yacc.c  */
    7733 #line 1806 "parser.yy"
    7734     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7735     break;
    7736 
    7737   case 479:
    7738 
    7739 /* Line 1806 of yacc.c  */
    7740 #line 1808 "parser.yy"
    7741     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7490#line 1825 "parser.yy"
     7491    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     7492    break;
     7493
     7494  case 480:
     7495
     7496/* Line 1806 of yacc.c  */
     7497#line 1831 "parser.yy"
     7498    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    77427499    break;
    77437500
     
    77457502
    77467503/* Line 1806 of yacc.c  */
    7747 #line 1814 "parser.yy"
    7748     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7504#line 1836 "parser.yy"
     7505    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    77497506    break;
    77507507
     
    77527509
    77537510/* Line 1806 of yacc.c  */
    7754 #line 1816 "parser.yy"
    7755     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7756     break;
    7757 
    7758   case 483:
    7759 
    7760 /* Line 1806 of yacc.c  */
    7761 #line 1821 "parser.yy"
    7762     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     7511#line 1838 "parser.yy"
     7512    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7513    break;
     7514
     7515  case 484:
     7516
     7517/* Line 1806 of yacc.c  */
     7518#line 1844 "parser.yy"
     7519    { (yyval.tclass) = DeclarationNode::Type; }
    77637520    break;
    77647521
     
    77667523
    77677524/* Line 1806 of yacc.c  */
    7768 #line 1827 "parser.yy"
    7769     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7525#line 1846 "parser.yy"
     7526    { (yyval.tclass) = DeclarationNode::Ftype; }
    77707527    break;
    77717528
     
    77737530
    77747531/* Line 1806 of yacc.c  */
    7775 #line 1832 "parser.yy"
    7776     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7532#line 1848 "parser.yy"
     7533    { (yyval.tclass) = DeclarationNode::Dtype; }
    77777534    break;
    77787535
     
    77807537
    77817538/* Line 1806 of yacc.c  */
    7782 #line 1834 "parser.yy"
    7783     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7539#line 1853 "parser.yy"
     7540    { (yyval.decl) = 0; }
     7541    break;
     7542
     7543  case 488:
     7544
     7545/* Line 1806 of yacc.c  */
     7546#line 1855 "parser.yy"
     7547    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    77847548    break;
    77857549
     
    77877551
    77887552/* Line 1806 of yacc.c  */
    7789 #line 1840 "parser.yy"
    7790     { (yyval.tclass) = DeclarationNode::Type; }
    7791     break;
    7792 
    7793   case 490:
    7794 
    7795 /* Line 1806 of yacc.c  */
    7796 #line 1842 "parser.yy"
    7797     { (yyval.tclass) = DeclarationNode::Ftype; }
    7798     break;
    7799 
    7800   case 491:
    7801 
    7802 /* Line 1806 of yacc.c  */
    7803 #line 1844 "parser.yy"
    7804     { (yyval.tclass) = DeclarationNode::Dtype; }
    7805     break;
    7806 
    7807   case 492:
    7808 
    7809 /* Line 1806 of yacc.c  */
    7810 #line 1849 "parser.yy"
    7811     { (yyval.decl) = 0; }
    7812     break;
    7813 
    7814   case 493:
    7815 
    7816 /* Line 1806 of yacc.c  */
    7817 #line 1851 "parser.yy"
    7818     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    7819     break;
    7820 
    7821   case 494:
    7822 
    7823 /* Line 1806 of yacc.c  */
    7824 #line 1856 "parser.yy"
     7553#line 1860 "parser.yy"
    78257554    {
    78267555                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    78297558    break;
    78307559
     7560  case 490:
     7561
     7562/* Line 1806 of yacc.c  */
     7563#line 1865 "parser.yy"
     7564    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7565    break;
     7566
     7567  case 491:
     7568
     7569/* Line 1806 of yacc.c  */
     7570#line 1867 "parser.yy"
     7571    { (yyval.decl) = 0; }
     7572    break;
     7573
     7574  case 492:
     7575
     7576/* Line 1806 of yacc.c  */
     7577#line 1872 "parser.yy"
     7578    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     7579    break;
     7580
     7581  case 494:
     7582
     7583/* Line 1806 of yacc.c  */
     7584#line 1875 "parser.yy"
     7585    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7586    break;
     7587
    78317588  case 495:
    78327589
    78337590/* Line 1806 of yacc.c  */
    7834 #line 1861 "parser.yy"
    7835     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7591#line 1877 "parser.yy"
     7592    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    78367593    break;
    78377594
     
    78397596
    78407597/* Line 1806 of yacc.c  */
    7841 #line 1863 "parser.yy"
    7842     { (yyval.decl) = 0; }
     7598#line 1882 "parser.yy"
     7599    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78437600    break;
    78447601
     
    78467603
    78477604/* Line 1806 of yacc.c  */
    7848 #line 1868 "parser.yy"
    7849     { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
     7605#line 1884 "parser.yy"
     7606    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7607    break;
     7608
     7609  case 498:
     7610
     7611/* Line 1806 of yacc.c  */
     7612#line 1886 "parser.yy"
     7613    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    78507614    break;
    78517615
     
    78537617
    78547618/* Line 1806 of yacc.c  */
    7855 #line 1871 "parser.yy"
    7856     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7619#line 1891 "parser.yy"
     7620    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    78577621    break;
    78587622
     
    78607624
    78617625/* Line 1806 of yacc.c  */
    7862 #line 1873 "parser.yy"
    7863     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     7626#line 1893 "parser.yy"
     7627    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    78647628    break;
    78657629
     
    78677631
    78687632/* Line 1806 of yacc.c  */
    7869 #line 1878 "parser.yy"
    7870     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7871     break;
    7872 
    7873   case 502:
    7874 
    7875 /* Line 1806 of yacc.c  */
    7876 #line 1880 "parser.yy"
    7877     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    7878     break;
    7879 
    7880   case 503:
    7881 
    7882 /* Line 1806 of yacc.c  */
    7883 #line 1882 "parser.yy"
    7884     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    7885     break;
    7886 
    7887   case 504:
    7888 
    7889 /* Line 1806 of yacc.c  */
    7890 #line 1887 "parser.yy"
    7891     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7892     break;
    7893 
    7894   case 505:
    7895 
    7896 /* Line 1806 of yacc.c  */
    7897 #line 1889 "parser.yy"
    7898     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7899     break;
    7900 
    7901   case 506:
    7902 
    7903 /* Line 1806 of yacc.c  */
    7904 #line 1894 "parser.yy"
     7633#line 1898 "parser.yy"
    79057634    {
    79067635                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    79097638    break;
    79107639
    7911   case 507:
    7912 
    7913 /* Line 1806 of yacc.c  */
    7914 #line 1899 "parser.yy"
     7640  case 502:
     7641
     7642/* Line 1806 of yacc.c  */
     7643#line 1903 "parser.yy"
    79157644    {
    79167645                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    79197648    break;
    79207649
    7921   case 508:
    7922 
    7923 /* Line 1806 of yacc.c  */
    7924 #line 1907 "parser.yy"
     7650  case 503:
     7651
     7652/* Line 1806 of yacc.c  */
     7653#line 1911 "parser.yy"
    79257654    {
    79267655                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    79297658    break;
    79307659
    7931   case 509:
    7932 
    7933 /* Line 1806 of yacc.c  */
    7934 #line 1912 "parser.yy"
     7660  case 504:
     7661
     7662/* Line 1806 of yacc.c  */
     7663#line 1916 "parser.yy"
    79357664    {
    79367665                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    79397668    break;
    79407669
    7941   case 510:
    7942 
    7943 /* Line 1806 of yacc.c  */
    7944 #line 1917 "parser.yy"
     7670  case 505:
     7671
     7672/* Line 1806 of yacc.c  */
     7673#line 1921 "parser.yy"
    79457674    {
    79467675                        typedefTable.leaveTrait();
     
    79507679    break;
    79517680
    7952   case 512:
    7953 
    7954 /* Line 1806 of yacc.c  */
    7955 #line 1927 "parser.yy"
     7681  case 507:
     7682
     7683/* Line 1806 of yacc.c  */
     7684#line 1931 "parser.yy"
    79567685    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    79577686    break;
    79587687
    7959   case 515:
    7960 
    7961 /* Line 1806 of yacc.c  */
    7962 #line 1937 "parser.yy"
     7688  case 510:
     7689
     7690/* Line 1806 of yacc.c  */
     7691#line 1941 "parser.yy"
    79637692    {
    79647693                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79677696    break;
    79687697
    7969   case 516:
    7970 
    7971 /* Line 1806 of yacc.c  */
    7972 #line 1942 "parser.yy"
     7698  case 511:
     7699
     7700/* Line 1806 of yacc.c  */
     7701#line 1946 "parser.yy"
    79737702    {
    79747703                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79777706    break;
    79787707
    7979   case 517:
    7980 
    7981 /* Line 1806 of yacc.c  */
    7982 #line 1947 "parser.yy"
     7708  case 512:
     7709
     7710/* Line 1806 of yacc.c  */
     7711#line 1951 "parser.yy"
    79837712    {
    79847713                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    79877716    break;
    79887717
    7989   case 518:
    7990 
    7991 /* Line 1806 of yacc.c  */
    7992 #line 1955 "parser.yy"
     7718  case 513:
     7719
     7720/* Line 1806 of yacc.c  */
     7721#line 1959 "parser.yy"
    79937722    {
    79947723                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79977726    break;
    79987727
    7999   case 519:
    8000 
    8001 /* Line 1806 of yacc.c  */
    8002 #line 1960 "parser.yy"
     7728  case 514:
     7729
     7730/* Line 1806 of yacc.c  */
     7731#line 1964 "parser.yy"
    80037732    {
    80047733                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    80077736    break;
    80087737
    8009   case 520:
    8010 
    8011 /* Line 1806 of yacc.c  */
    8012 #line 1970 "parser.yy"
     7738  case 515:
     7739
     7740/* Line 1806 of yacc.c  */
     7741#line 1974 "parser.yy"
    80137742    {}
    80147743    break;
    80157744
    8016   case 521:
    8017 
    8018 /* Line 1806 of yacc.c  */
    8019 #line 1972 "parser.yy"
     7745  case 516:
     7746
     7747/* Line 1806 of yacc.c  */
     7748#line 1976 "parser.yy"
    80207749    {
    80217750                        if ( theTree ) {
     
    80277756    break;
    80287757
     7758  case 518:
     7759
     7760/* Line 1806 of yacc.c  */
     7761#line 1988 "parser.yy"
     7762    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7763    break;
     7764
     7765  case 519:
     7766
     7767/* Line 1806 of yacc.c  */
     7768#line 1993 "parser.yy"
     7769    { (yyval.decl) = 0; }
     7770    break;
     7771
    80297772  case 523:
    80307773
    80317774/* Line 1806 of yacc.c  */
    8032 #line 1984 "parser.yy"
    8033     { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7775#line 2001 "parser.yy"
     7776    {}
    80347777    break;
    80357778
     
    80377780
    80387781/* Line 1806 of yacc.c  */
    8039 #line 1989 "parser.yy"
    8040     { (yyval.decl) = 0; }
    8041     break;
    8042 
    8043   case 528:
    8044 
    8045 /* Line 1806 of yacc.c  */
    8046 #line 1997 "parser.yy"
    8047     {}
    8048     break;
    8049 
    8050   case 529:
    8051 
    8052 /* Line 1806 of yacc.c  */
    8053 #line 1999 "parser.yy"
     7782#line 2003 "parser.yy"
    80547783    {
    80557784                        linkageStack.push( linkage );
     
    80587787    break;
    80597788
    8060   case 530:
    8061 
    8062 /* Line 1806 of yacc.c  */
    8063 #line 2004 "parser.yy"
     7789  case 525:
     7790
     7791/* Line 1806 of yacc.c  */
     7792#line 2008 "parser.yy"
    80647793    {
    80657794                        linkage = linkageStack.top();
     
    80697798    break;
    80707799
    8071   case 531:
    8072 
    8073 /* Line 1806 of yacc.c  */
    8074 #line 2010 "parser.yy"
     7800  case 526:
     7801
     7802/* Line 1806 of yacc.c  */
     7803#line 2014 "parser.yy"
    80757804    {   // mark all fields in list
    8076                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     7805                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )
    80777806                                iter->set_extension( true );
    80787807                        (yyval.decl) = (yyvsp[(2) - (2)].decl);
     
    80807809    break;
    80817810
    8082   case 533:
    8083 
    8084 /* Line 1806 of yacc.c  */
    8085 #line 2025 "parser.yy"
     7811  case 528:
     7812
     7813/* Line 1806 of yacc.c  */
     7814#line 2029 "parser.yy"
    80867815    {
    80877816                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80917820    break;
    80927821
    8093   case 534:
    8094 
    8095 /* Line 1806 of yacc.c  */
    8096 #line 2031 "parser.yy"
     7822  case 529:
     7823
     7824/* Line 1806 of yacc.c  */
     7825#line 2035 "parser.yy"
    80977826    {
    80987827                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81027831    break;
    81037832
    8104   case 535:
    8105 
    8106 /* Line 1806 of yacc.c  */
    8107 #line 2040 "parser.yy"
     7833  case 530:
     7834
     7835/* Line 1806 of yacc.c  */
     7836#line 2044 "parser.yy"
    81087837    {
    81097838                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81137842    break;
    81147843
    8115   case 536:
    8116 
    8117 /* Line 1806 of yacc.c  */
    8118 #line 2046 "parser.yy"
     7844  case 531:
     7845
     7846/* Line 1806 of yacc.c  */
     7847#line 2050 "parser.yy"
    81197848    {
    81207849                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81247853    break;
    81257854
    8126   case 537:
    8127 
    8128 /* Line 1806 of yacc.c  */
    8129 #line 2052 "parser.yy"
     7855  case 532:
     7856
     7857/* Line 1806 of yacc.c  */
     7858#line 2056 "parser.yy"
    81307859    {
    81317860                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81357864    break;
    81367865
    8137   case 538:
    8138 
    8139 /* Line 1806 of yacc.c  */
    8140 #line 2058 "parser.yy"
     7866  case 533:
     7867
     7868/* Line 1806 of yacc.c  */
     7869#line 2062 "parser.yy"
    81417870    {
    81427871                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81467875    break;
    81477876
    8148   case 539:
    8149 
    8150 /* Line 1806 of yacc.c  */
    8151 #line 2064 "parser.yy"
     7877  case 534:
     7878
     7879/* Line 1806 of yacc.c  */
     7880#line 2068 "parser.yy"
    81527881    {
    81537882                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81577886    break;
    81587887
    8159   case 540:
    8160 
    8161 /* Line 1806 of yacc.c  */
    8162 #line 2072 "parser.yy"
     7888  case 535:
     7889
     7890/* Line 1806 of yacc.c  */
     7891#line 2076 "parser.yy"
    81637892    {
    81647893                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81687897    break;
    81697898
    8170   case 541:
    8171 
    8172 /* Line 1806 of yacc.c  */
    8173 #line 2078 "parser.yy"
     7899  case 536:
     7900
     7901/* Line 1806 of yacc.c  */
     7902#line 2082 "parser.yy"
    81747903    {
    81757904                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81797908    break;
    81807909
    8181   case 542:
    8182 
    8183 /* Line 1806 of yacc.c  */
    8184 #line 2086 "parser.yy"
     7910  case 537:
     7911
     7912/* Line 1806 of yacc.c  */
     7913#line 2090 "parser.yy"
    81857914    {
    81867915                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81907919    break;
    81917920
    8192   case 543:
    8193 
    8194 /* Line 1806 of yacc.c  */
    8195 #line 2092 "parser.yy"
     7921  case 538:
     7922
     7923/* Line 1806 of yacc.c  */
     7924#line 2096 "parser.yy"
    81967925    {
    81977926                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82017930    break;
    82027931
    8203   case 547:
    8204 
    8205 /* Line 1806 of yacc.c  */
    8206 #line 2107 "parser.yy"
    8207     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    8208     break;
    8209 
    8210   case 550:
    8211 
    8212 /* Line 1806 of yacc.c  */
    8213 #line 2117 "parser.yy"
     7932  case 542:
     7933
     7934/* Line 1806 of yacc.c  */
     7935#line 2111 "parser.yy"
     7936    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     7937    break;
     7938
     7939  case 545:
     7940
     7941/* Line 1806 of yacc.c  */
     7942#line 2121 "parser.yy"
    82147943    { (yyval.decl) = 0; }
    82157944    break;
    82167945
    8217   case 553:
    8218 
    8219 /* Line 1806 of yacc.c  */
    8220 #line 2124 "parser.yy"
     7946  case 548:
     7947
     7948/* Line 1806 of yacc.c  */
     7949#line 2128 "parser.yy"
    82217950    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    82227951    break;
    82237952
    8224   case 554:
    8225 
    8226 /* Line 1806 of yacc.c  */
    8227 #line 2130 "parser.yy"
     7953  case 549:
     7954
     7955/* Line 1806 of yacc.c  */
     7956#line 2134 "parser.yy"
    82287957    { (yyval.decl) = 0; }
    82297958    break;
    82307959
    8231   case 560:
    8232 
    8233 /* Line 1806 of yacc.c  */
    8234 #line 2145 "parser.yy"
     7960  case 555:
     7961
     7962/* Line 1806 of yacc.c  */
     7963#line 2149 "parser.yy"
    82357964    {}
    82367965    break;
    82377966
     7967  case 556:
     7968
     7969/* Line 1806 of yacc.c  */
     7970#line 2150 "parser.yy"
     7971    {}
     7972    break;
     7973
     7974  case 557:
     7975
     7976/* Line 1806 of yacc.c  */
     7977#line 2151 "parser.yy"
     7978    {}
     7979    break;
     7980
     7981  case 558:
     7982
     7983/* Line 1806 of yacc.c  */
     7984#line 2152 "parser.yy"
     7985    {}
     7986    break;
     7987
     7988  case 559:
     7989
     7990/* Line 1806 of yacc.c  */
     7991#line 2187 "parser.yy"
     7992    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7993    break;
     7994
    82387995  case 561:
    82397996
    82407997/* Line 1806 of yacc.c  */
    8241 #line 2146 "parser.yy"
    8242     {}
     7998#line 2190 "parser.yy"
     7999    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82438000    break;
    82448001
     
    82468003
    82478004/* Line 1806 of yacc.c  */
    8248 #line 2147 "parser.yy"
    8249     {}
     8005#line 2192 "parser.yy"
     8006    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82508007    break;
    82518008
     
    82538010
    82548011/* Line 1806 of yacc.c  */
    8255 #line 2148 "parser.yy"
    8256     {}
    8257     break;
    8258 
    8259   case 564:
    8260 
    8261 /* Line 1806 of yacc.c  */
    8262 #line 2183 "parser.yy"
    8263     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8264     break;
    8265 
    8266   case 566:
    8267 
    8268 /* Line 1806 of yacc.c  */
    8269 #line 2186 "parser.yy"
    8270     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8271     break;
    8272 
    8273   case 567:
    8274 
    8275 /* Line 1806 of yacc.c  */
    8276 #line 2188 "parser.yy"
    8277     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8278     break;
    8279 
    8280   case 568:
    8281 
    8282 /* Line 1806 of yacc.c  */
    8283 #line 2193 "parser.yy"
     8012#line 2197 "parser.yy"
    82848013    {
    82858014                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    82888017    break;
    82898018
     8019  case 564:
     8020
     8021/* Line 1806 of yacc.c  */
     8022#line 2202 "parser.yy"
     8023    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8024    break;
     8025
     8026  case 565:
     8027
     8028/* Line 1806 of yacc.c  */
     8029#line 2207 "parser.yy"
     8030    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8031    break;
     8032
     8033  case 566:
     8034
     8035/* Line 1806 of yacc.c  */
     8036#line 2209 "parser.yy"
     8037    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8038    break;
     8039
     8040  case 567:
     8041
     8042/* Line 1806 of yacc.c  */
     8043#line 2211 "parser.yy"
     8044    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8045    break;
     8046
     8047  case 568:
     8048
     8049/* Line 1806 of yacc.c  */
     8050#line 2216 "parser.yy"
     8051    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8052    break;
     8053
    82908054  case 569:
    82918055
    82928056/* Line 1806 of yacc.c  */
    8293 #line 2198 "parser.yy"
     8057#line 2218 "parser.yy"
     8058    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8059    break;
     8060
     8061  case 570:
     8062
     8063/* Line 1806 of yacc.c  */
     8064#line 2220 "parser.yy"
     8065    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8066    break;
     8067
     8068  case 571:
     8069
     8070/* Line 1806 of yacc.c  */
     8071#line 2222 "parser.yy"
    82948072    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82958073    break;
    82968074
    8297   case 570:
    8298 
    8299 /* Line 1806 of yacc.c  */
    8300 #line 2203 "parser.yy"
     8075  case 572:
     8076
     8077/* Line 1806 of yacc.c  */
     8078#line 2227 "parser.yy"
     8079    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8080    break;
     8081
     8082  case 573:
     8083
     8084/* Line 1806 of yacc.c  */
     8085#line 2229 "parser.yy"
     8086    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8087    break;
     8088
     8089  case 574:
     8090
     8091/* Line 1806 of yacc.c  */
     8092#line 2238 "parser.yy"
     8093    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8094    break;
     8095
     8096  case 576:
     8097
     8098/* Line 1806 of yacc.c  */
     8099#line 2241 "parser.yy"
     8100    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8101    break;
     8102
     8103  case 577:
     8104
     8105/* Line 1806 of yacc.c  */
     8106#line 2246 "parser.yy"
     8107    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8108    break;
     8109
     8110  case 578:
     8111
     8112/* Line 1806 of yacc.c  */
     8113#line 2248 "parser.yy"
     8114    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8115    break;
     8116
     8117  case 579:
     8118
     8119/* Line 1806 of yacc.c  */
     8120#line 2250 "parser.yy"
     8121    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8122    break;
     8123
     8124  case 580:
     8125
     8126/* Line 1806 of yacc.c  */
     8127#line 2255 "parser.yy"
    83018128    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83028129    break;
    83038130
    8304   case 571:
    8305 
    8306 /* Line 1806 of yacc.c  */
    8307 #line 2205 "parser.yy"
     8131  case 581:
     8132
     8133/* Line 1806 of yacc.c  */
     8134#line 2257 "parser.yy"
    83088135    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83098136    break;
    83108137
    8311   case 572:
    8312 
    8313 /* Line 1806 of yacc.c  */
    8314 #line 2207 "parser.yy"
     8138  case 582:
     8139
     8140/* Line 1806 of yacc.c  */
     8141#line 2259 "parser.yy"
    83158142    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83168143    break;
    83178144
    8318   case 573:
    8319 
    8320 /* Line 1806 of yacc.c  */
    8321 #line 2212 "parser.yy"
     8145  case 583:
     8146
     8147/* Line 1806 of yacc.c  */
     8148#line 2264 "parser.yy"
     8149    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8150    break;
     8151
     8152  case 584:
     8153
     8154/* Line 1806 of yacc.c  */
     8155#line 2266 "parser.yy"
     8156    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8157    break;
     8158
     8159  case 585:
     8160
     8161/* Line 1806 of yacc.c  */
     8162#line 2268 "parser.yy"
     8163    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8164    break;
     8165
     8166  case 589:
     8167
     8168/* Line 1806 of yacc.c  */
     8169#line 2283 "parser.yy"
     8170    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8171    break;
     8172
     8173  case 590:
     8174
     8175/* Line 1806 of yacc.c  */
     8176#line 2285 "parser.yy"
     8177    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8178    break;
     8179
     8180  case 591:
     8181
     8182/* Line 1806 of yacc.c  */
     8183#line 2287 "parser.yy"
     8184    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8185    break;
     8186
     8187  case 592:
     8188
     8189/* Line 1806 of yacc.c  */
     8190#line 2292 "parser.yy"
     8191    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8192    break;
     8193
     8194  case 593:
     8195
     8196/* Line 1806 of yacc.c  */
     8197#line 2294 "parser.yy"
     8198    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8199    break;
     8200
     8201  case 594:
     8202
     8203/* Line 1806 of yacc.c  */
     8204#line 2296 "parser.yy"
     8205    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8206    break;
     8207
     8208  case 595:
     8209
     8210/* Line 1806 of yacc.c  */
     8211#line 2301 "parser.yy"
     8212    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8213    break;
     8214
     8215  case 596:
     8216
     8217/* Line 1806 of yacc.c  */
     8218#line 2303 "parser.yy"
     8219    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8220    break;
     8221
     8222  case 597:
     8223
     8224/* Line 1806 of yacc.c  */
     8225#line 2305 "parser.yy"
     8226    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8227    break;
     8228
     8229  case 598:
     8230
     8231/* Line 1806 of yacc.c  */
     8232#line 2320 "parser.yy"
     8233    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8234    break;
     8235
     8236  case 600:
     8237
     8238/* Line 1806 of yacc.c  */
     8239#line 2323 "parser.yy"
     8240    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8241    break;
     8242
     8243  case 601:
     8244
     8245/* Line 1806 of yacc.c  */
     8246#line 2325 "parser.yy"
     8247    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8248    break;
     8249
     8250  case 603:
     8251
     8252/* Line 1806 of yacc.c  */
     8253#line 2331 "parser.yy"
     8254    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8255    break;
     8256
     8257  case 604:
     8258
     8259/* Line 1806 of yacc.c  */
     8260#line 2336 "parser.yy"
     8261    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8262    break;
     8263
     8264  case 605:
     8265
     8266/* Line 1806 of yacc.c  */
     8267#line 2338 "parser.yy"
     8268    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8269    break;
     8270
     8271  case 606:
     8272
     8273/* Line 1806 of yacc.c  */
     8274#line 2340 "parser.yy"
     8275    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8276    break;
     8277
     8278  case 607:
     8279
     8280/* Line 1806 of yacc.c  */
     8281#line 2345 "parser.yy"
    83228282    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83238283    break;
    83248284
    8325   case 574:
    8326 
    8327 /* Line 1806 of yacc.c  */
    8328 #line 2214 "parser.yy"
     8285  case 608:
     8286
     8287/* Line 1806 of yacc.c  */
     8288#line 2347 "parser.yy"
    83298289    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83308290    break;
    83318291
    8332   case 575:
    8333 
    8334 /* Line 1806 of yacc.c  */
    8335 #line 2216 "parser.yy"
     8292  case 609:
     8293
     8294/* Line 1806 of yacc.c  */
     8295#line 2349 "parser.yy"
    83368296    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83378297    break;
    83388298
    8339   case 576:
    8340 
    8341 /* Line 1806 of yacc.c  */
    8342 #line 2218 "parser.yy"
     8299  case 610:
     8300
     8301/* Line 1806 of yacc.c  */
     8302#line 2351 "parser.yy"
    83438303    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83448304    break;
    83458305
    8346   case 577:
    8347 
    8348 /* Line 1806 of yacc.c  */
    8349 #line 2223 "parser.yy"
     8306  case 611:
     8307
     8308/* Line 1806 of yacc.c  */
     8309#line 2356 "parser.yy"
     8310    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8311    break;
     8312
     8313  case 612:
     8314
     8315/* Line 1806 of yacc.c  */
     8316#line 2358 "parser.yy"
    83508317    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83518318    break;
    83528319
    8353   case 578:
    8354 
    8355 /* Line 1806 of yacc.c  */
    8356 #line 2225 "parser.yy"
     8320  case 613:
     8321
     8322/* Line 1806 of yacc.c  */
     8323#line 2360 "parser.yy"
    83578324    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83588325    break;
    83598326
    8360   case 579:
    8361 
    8362 /* Line 1806 of yacc.c  */
    8363 #line 2234 "parser.yy"
     8327  case 614:
     8328
     8329/* Line 1806 of yacc.c  */
     8330#line 2370 "parser.yy"
    83648331    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83658332    break;
    83668333
    8367   case 581:
    8368 
    8369 /* Line 1806 of yacc.c  */
    8370 #line 2237 "parser.yy"
     8334  case 616:
     8335
     8336/* Line 1806 of yacc.c  */
     8337#line 2373 "parser.yy"
    83718338    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83728339    break;
    83738340
    8374   case 582:
    8375 
    8376 /* Line 1806 of yacc.c  */
    8377 #line 2242 "parser.yy"
     8341  case 617:
     8342
     8343/* Line 1806 of yacc.c  */
     8344#line 2375 "parser.yy"
     8345    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8346    break;
     8347
     8348  case 618:
     8349
     8350/* Line 1806 of yacc.c  */
     8351#line 2380 "parser.yy"
     8352    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8353    break;
     8354
     8355  case 619:
     8356
     8357/* Line 1806 of yacc.c  */
     8358#line 2382 "parser.yy"
     8359    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8360    break;
     8361
     8362  case 620:
     8363
     8364/* Line 1806 of yacc.c  */
     8365#line 2384 "parser.yy"
     8366    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8367    break;
     8368
     8369  case 621:
     8370
     8371/* Line 1806 of yacc.c  */
     8372#line 2389 "parser.yy"
     8373    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8374    break;
     8375
     8376  case 622:
     8377
     8378/* Line 1806 of yacc.c  */
     8379#line 2391 "parser.yy"
     8380    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8381    break;
     8382
     8383  case 623:
     8384
     8385/* Line 1806 of yacc.c  */
     8386#line 2393 "parser.yy"
     8387    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8388    break;
     8389
     8390  case 624:
     8391
     8392/* Line 1806 of yacc.c  */
     8393#line 2395 "parser.yy"
     8394    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8395    break;
     8396
     8397  case 625:
     8398
     8399/* Line 1806 of yacc.c  */
     8400#line 2400 "parser.yy"
    83788401    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83798402    break;
    83808403
    8381   case 583:
    8382 
    8383 /* Line 1806 of yacc.c  */
    8384 #line 2244 "parser.yy"
     8404  case 626:
     8405
     8406/* Line 1806 of yacc.c  */
     8407#line 2402 "parser.yy"
    83858408    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83868409    break;
    83878410
    8388   case 584:
    8389 
    8390 /* Line 1806 of yacc.c  */
    8391 #line 2246 "parser.yy"
     8411  case 627:
     8412
     8413/* Line 1806 of yacc.c  */
     8414#line 2404 "parser.yy"
    83928415    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83938416    break;
    83948417
    8395   case 585:
    8396 
    8397 /* Line 1806 of yacc.c  */
    8398 #line 2251 "parser.yy"
    8399     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8400     break;
    8401 
    8402   case 586:
    8403 
    8404 /* Line 1806 of yacc.c  */
    8405 #line 2253 "parser.yy"
    8406     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8407     break;
    8408 
    8409   case 587:
    8410 
    8411 /* Line 1806 of yacc.c  */
    8412 #line 2255 "parser.yy"
    8413     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8414     break;
    8415 
    8416   case 588:
    8417 
    8418 /* Line 1806 of yacc.c  */
    8419 #line 2260 "parser.yy"
    8420     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8421     break;
    8422 
    8423   case 589:
    8424 
    8425 /* Line 1806 of yacc.c  */
    8426 #line 2262 "parser.yy"
    8427     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8428     break;
    8429 
    8430   case 590:
    8431 
    8432 /* Line 1806 of yacc.c  */
    8433 #line 2264 "parser.yy"
    8434     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8435     break;
    8436 
    8437   case 594:
    8438 
    8439 /* Line 1806 of yacc.c  */
    8440 #line 2279 "parser.yy"
    8441     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8442     break;
    8443 
    8444   case 595:
    8445 
    8446 /* Line 1806 of yacc.c  */
    8447 #line 2281 "parser.yy"
    8448     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8449     break;
    8450 
    8451   case 596:
    8452 
    8453 /* Line 1806 of yacc.c  */
    8454 #line 2283 "parser.yy"
    8455     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8456     break;
    8457 
    8458   case 597:
    8459 
    8460 /* Line 1806 of yacc.c  */
    8461 #line 2288 "parser.yy"
    8462     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8463     break;
    8464 
    8465   case 598:
    8466 
    8467 /* Line 1806 of yacc.c  */
    8468 #line 2290 "parser.yy"
    8469     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8470     break;
    8471 
    8472   case 599:
    8473 
    8474 /* Line 1806 of yacc.c  */
    8475 #line 2292 "parser.yy"
    8476     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8477     break;
    8478 
    8479   case 600:
    8480 
    8481 /* Line 1806 of yacc.c  */
    8482 #line 2297 "parser.yy"
    8483     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8484     break;
    8485 
    8486   case 601:
    8487 
    8488 /* Line 1806 of yacc.c  */
    8489 #line 2299 "parser.yy"
    8490     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8491     break;
    8492 
    8493   case 602:
    8494 
    8495 /* Line 1806 of yacc.c  */
    8496 #line 2301 "parser.yy"
    8497     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8498     break;
    8499 
    8500   case 603:
    8501 
    8502 /* Line 1806 of yacc.c  */
    8503 #line 2316 "parser.yy"
     8418  case 628:
     8419
     8420/* Line 1806 of yacc.c  */
     8421#line 2435 "parser.yy"
    85048422    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85058423    break;
    85068424
    8507   case 605:
    8508 
    8509 /* Line 1806 of yacc.c  */
    8510 #line 2319 "parser.yy"
     8425  case 630:
     8426
     8427/* Line 1806 of yacc.c  */
     8428#line 2438 "parser.yy"
    85118429    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85128430    break;
    85138431
    8514   case 606:
    8515 
    8516 /* Line 1806 of yacc.c  */
    8517 #line 2321 "parser.yy"
     8432  case 631:
     8433
     8434/* Line 1806 of yacc.c  */
     8435#line 2440 "parser.yy"
    85188436    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85198437    break;
    85208438
    8521   case 608:
    8522 
    8523 /* Line 1806 of yacc.c  */
    8524 #line 2327 "parser.yy"
    8525     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8526     break;
    8527 
    8528   case 609:
    8529 
    8530 /* Line 1806 of yacc.c  */
    8531 #line 2332 "parser.yy"
    8532     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8533     break;
    8534 
    8535   case 610:
    8536 
    8537 /* Line 1806 of yacc.c  */
    8538 #line 2334 "parser.yy"
    8539     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8540     break;
    8541 
    8542   case 611:
    8543 
    8544 /* Line 1806 of yacc.c  */
    8545 #line 2336 "parser.yy"
    8546     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8547     break;
    8548 
    8549   case 612:
    8550 
    8551 /* Line 1806 of yacc.c  */
    8552 #line 2341 "parser.yy"
    8553     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8554     break;
    8555 
    8556   case 613:
    8557 
    8558 /* Line 1806 of yacc.c  */
    8559 #line 2343 "parser.yy"
    8560     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8561     break;
    8562 
    8563   case 614:
    8564 
    8565 /* Line 1806 of yacc.c  */
    8566 #line 2345 "parser.yy"
    8567     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8568     break;
    8569 
    8570   case 615:
    8571 
    8572 /* Line 1806 of yacc.c  */
    8573 #line 2347 "parser.yy"
    8574     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8575     break;
    8576 
    8577   case 616:
    8578 
    8579 /* Line 1806 of yacc.c  */
    8580 #line 2352 "parser.yy"
    8581     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8582     break;
    8583 
    8584   case 617:
    8585 
    8586 /* Line 1806 of yacc.c  */
    8587 #line 2354 "parser.yy"
    8588     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8589     break;
    8590 
    8591   case 618:
    8592 
    8593 /* Line 1806 of yacc.c  */
    8594 #line 2356 "parser.yy"
    8595     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8596     break;
    8597 
    8598   case 619:
    8599 
    8600 /* Line 1806 of yacc.c  */
    8601 #line 2366 "parser.yy"
    8602     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8603     break;
    8604 
    8605   case 621:
    8606 
    8607 /* Line 1806 of yacc.c  */
    8608 #line 2369 "parser.yy"
    8609     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8610     break;
    8611 
    8612   case 622:
    8613 
    8614 /* Line 1806 of yacc.c  */
    8615 #line 2371 "parser.yy"
    8616     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8617     break;
    8618 
    8619   case 623:
    8620 
    8621 /* Line 1806 of yacc.c  */
    8622 #line 2376 "parser.yy"
    8623     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8624     break;
    8625 
    8626   case 624:
    8627 
    8628 /* Line 1806 of yacc.c  */
    8629 #line 2378 "parser.yy"
    8630     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8631     break;
    8632 
    8633   case 625:
    8634 
    8635 /* Line 1806 of yacc.c  */
    8636 #line 2380 "parser.yy"
    8637     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8638     break;
    8639 
    8640   case 626:
    8641 
    8642 /* Line 1806 of yacc.c  */
    8643 #line 2385 "parser.yy"
    8644     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8645     break;
    8646 
    8647   case 627:
    8648 
    8649 /* Line 1806 of yacc.c  */
    8650 #line 2387 "parser.yy"
    8651     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8652     break;
    8653 
    8654   case 628:
    8655 
    8656 /* Line 1806 of yacc.c  */
    8657 #line 2389 "parser.yy"
    8658     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8659     break;
    8660 
    8661   case 629:
    8662 
    8663 /* Line 1806 of yacc.c  */
    8664 #line 2391 "parser.yy"
    8665     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8666     break;
    8667 
    8668   case 630:
    8669 
    8670 /* Line 1806 of yacc.c  */
    8671 #line 2396 "parser.yy"
    8672     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8673     break;
    8674 
    8675   case 631:
    8676 
    8677 /* Line 1806 of yacc.c  */
    8678 #line 2398 "parser.yy"
    8679     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8680     break;
    8681 
    86828439  case 632:
    86838440
    86848441/* Line 1806 of yacc.c  */
    8685 #line 2400 "parser.yy"
    8686     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8687     break;
    8688 
    8689   case 633:
    8690 
    8691 /* Line 1806 of yacc.c  */
    8692 #line 2431 "parser.yy"
    8693     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8694     break;
    8695 
    8696   case 635:
    8697 
    8698 /* Line 1806 of yacc.c  */
    8699 #line 2434 "parser.yy"
    8700     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8701     break;
    8702 
    8703   case 636:
    8704 
    8705 /* Line 1806 of yacc.c  */
    8706 #line 2436 "parser.yy"
    8707     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8708     break;
    8709 
    8710   case 637:
    8711 
    8712 /* Line 1806 of yacc.c  */
    8713 #line 2441 "parser.yy"
     8442#line 2445 "parser.yy"
    87148443    {
    87158444                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    87188447    break;
    87198448
    8720   case 638:
    8721 
    8722 /* Line 1806 of yacc.c  */
    8723 #line 2446 "parser.yy"
     8449  case 633:
     8450
     8451/* Line 1806 of yacc.c  */
     8452#line 2450 "parser.yy"
    87248453    {
    87258454                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    87288457    break;
    87298458
     8459  case 634:
     8460
     8461/* Line 1806 of yacc.c  */
     8462#line 2458 "parser.yy"
     8463    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8464    break;
     8465
     8466  case 635:
     8467
     8468/* Line 1806 of yacc.c  */
     8469#line 2460 "parser.yy"
     8470    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8471    break;
     8472
     8473  case 636:
     8474
     8475/* Line 1806 of yacc.c  */
     8476#line 2462 "parser.yy"
     8477    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8478    break;
     8479
     8480  case 637:
     8481
     8482/* Line 1806 of yacc.c  */
     8483#line 2467 "parser.yy"
     8484    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8485    break;
     8486
     8487  case 638:
     8488
     8489/* Line 1806 of yacc.c  */
     8490#line 2469 "parser.yy"
     8491    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8492    break;
     8493
    87308494  case 639:
    87318495
    87328496/* Line 1806 of yacc.c  */
    8733 #line 2454 "parser.yy"
     8497#line 2474 "parser.yy"
     8498    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8499    break;
     8500
     8501  case 640:
     8502
     8503/* Line 1806 of yacc.c  */
     8504#line 2476 "parser.yy"
     8505    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8506    break;
     8507
     8508  case 642:
     8509
     8510/* Line 1806 of yacc.c  */
     8511#line 2491 "parser.yy"
     8512    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8513    break;
     8514
     8515  case 643:
     8516
     8517/* Line 1806 of yacc.c  */
     8518#line 2493 "parser.yy"
     8519    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8520    break;
     8521
     8522  case 644:
     8523
     8524/* Line 1806 of yacc.c  */
     8525#line 2498 "parser.yy"
     8526    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8527    break;
     8528
     8529  case 645:
     8530
     8531/* Line 1806 of yacc.c  */
     8532#line 2500 "parser.yy"
     8533    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8534    break;
     8535
     8536  case 646:
     8537
     8538/* Line 1806 of yacc.c  */
     8539#line 2502 "parser.yy"
    87348540    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87358541    break;
    87368542
    8737   case 640:
    8738 
    8739 /* Line 1806 of yacc.c  */
    8740 #line 2456 "parser.yy"
     8543  case 647:
     8544
     8545/* Line 1806 of yacc.c  */
     8546#line 2504 "parser.yy"
    87418547    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87428548    break;
    87438549
    8744   case 641:
    8745 
    8746 /* Line 1806 of yacc.c  */
    8747 #line 2458 "parser.yy"
     8550  case 648:
     8551
     8552/* Line 1806 of yacc.c  */
     8553#line 2506 "parser.yy"
    87488554    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87498555    break;
    87508556
    8751   case 642:
    8752 
    8753 /* Line 1806 of yacc.c  */
    8754 #line 2463 "parser.yy"
     8557  case 650:
     8558
     8559/* Line 1806 of yacc.c  */
     8560#line 2512 "parser.yy"
     8561    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8562    break;
     8563
     8564  case 651:
     8565
     8566/* Line 1806 of yacc.c  */
     8567#line 2514 "parser.yy"
     8568    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8569    break;
     8570
     8571  case 652:
     8572
     8573/* Line 1806 of yacc.c  */
     8574#line 2516 "parser.yy"
     8575    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8576    break;
     8577
     8578  case 653:
     8579
     8580/* Line 1806 of yacc.c  */
     8581#line 2521 "parser.yy"
     8582    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8583    break;
     8584
     8585  case 654:
     8586
     8587/* Line 1806 of yacc.c  */
     8588#line 2523 "parser.yy"
     8589    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8590    break;
     8591
     8592  case 655:
     8593
     8594/* Line 1806 of yacc.c  */
     8595#line 2525 "parser.yy"
     8596    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8597    break;
     8598
     8599  case 656:
     8600
     8601/* Line 1806 of yacc.c  */
     8602#line 2531 "parser.yy"
     8603    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8604    break;
     8605
     8606  case 657:
     8607
     8608/* Line 1806 of yacc.c  */
     8609#line 2533 "parser.yy"
     8610    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8611    break;
     8612
     8613  case 659:
     8614
     8615/* Line 1806 of yacc.c  */
     8616#line 2539 "parser.yy"
     8617    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8618    break;
     8619
     8620  case 660:
     8621
     8622/* Line 1806 of yacc.c  */
     8623#line 2541 "parser.yy"
     8624    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8625    break;
     8626
     8627  case 661:
     8628
     8629/* Line 1806 of yacc.c  */
     8630#line 2543 "parser.yy"
     8631    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8632    break;
     8633
     8634  case 662:
     8635
     8636/* Line 1806 of yacc.c  */
     8637#line 2545 "parser.yy"
     8638    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8639    break;
     8640
     8641  case 664:
     8642
     8643/* Line 1806 of yacc.c  */
     8644#line 2560 "parser.yy"
     8645    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8646    break;
     8647
     8648  case 665:
     8649
     8650/* Line 1806 of yacc.c  */
     8651#line 2562 "parser.yy"
     8652    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8653    break;
     8654
     8655  case 666:
     8656
     8657/* Line 1806 of yacc.c  */
     8658#line 2567 "parser.yy"
     8659    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8660    break;
     8661
     8662  case 667:
     8663
     8664/* Line 1806 of yacc.c  */
     8665#line 2569 "parser.yy"
     8666    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8667    break;
     8668
     8669  case 668:
     8670
     8671/* Line 1806 of yacc.c  */
     8672#line 2571 "parser.yy"
     8673    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8674    break;
     8675
     8676  case 669:
     8677
     8678/* Line 1806 of yacc.c  */
     8679#line 2573 "parser.yy"
     8680    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8681    break;
     8682
     8683  case 670:
     8684
     8685/* Line 1806 of yacc.c  */
     8686#line 2575 "parser.yy"
     8687    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8688    break;
     8689
     8690  case 672:
     8691
     8692/* Line 1806 of yacc.c  */
     8693#line 2581 "parser.yy"
     8694    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8695    break;
     8696
     8697  case 673:
     8698
     8699/* Line 1806 of yacc.c  */
     8700#line 2583 "parser.yy"
     8701    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8702    break;
     8703
     8704  case 674:
     8705
     8706/* Line 1806 of yacc.c  */
     8707#line 2585 "parser.yy"
     8708    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8709    break;
     8710
     8711  case 675:
     8712
     8713/* Line 1806 of yacc.c  */
     8714#line 2590 "parser.yy"
     8715    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8716    break;
     8717
     8718  case 676:
     8719
     8720/* Line 1806 of yacc.c  */
     8721#line 2592 "parser.yy"
     8722    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8723    break;
     8724
     8725  case 677:
     8726
     8727/* Line 1806 of yacc.c  */
     8728#line 2594 "parser.yy"
     8729    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8730    break;
     8731
     8732  case 679:
     8733
     8734/* Line 1806 of yacc.c  */
     8735#line 2601 "parser.yy"
    87558736    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87568737    break;
    87578738
    8758   case 643:
    8759 
    8760 /* Line 1806 of yacc.c  */
    8761 #line 2465 "parser.yy"
     8739  case 681:
     8740
     8741/* Line 1806 of yacc.c  */
     8742#line 2612 "parser.yy"
     8743    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8744    break;
     8745
     8746  case 682:
     8747
     8748/* Line 1806 of yacc.c  */
     8749#line 2615 "parser.yy"
     8750    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8751    break;
     8752
     8753  case 683:
     8754
     8755/* Line 1806 of yacc.c  */
     8756#line 2617 "parser.yy"
     8757    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8758    break;
     8759
     8760  case 684:
     8761
     8762/* Line 1806 of yacc.c  */
     8763#line 2620 "parser.yy"
     8764    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8765    break;
     8766
     8767  case 685:
     8768
     8769/* Line 1806 of yacc.c  */
     8770#line 2622 "parser.yy"
     8771    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8772    break;
     8773
     8774  case 686:
     8775
     8776/* Line 1806 of yacc.c  */
     8777#line 2624 "parser.yy"
     8778    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8779    break;
     8780
     8781  case 688:
     8782
     8783/* Line 1806 of yacc.c  */
     8784#line 2638 "parser.yy"
     8785    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8786    break;
     8787
     8788  case 689:
     8789
     8790/* Line 1806 of yacc.c  */
     8791#line 2640 "parser.yy"
     8792    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8793    break;
     8794
     8795  case 690:
     8796
     8797/* Line 1806 of yacc.c  */
     8798#line 2645 "parser.yy"
     8799    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8800    break;
     8801
     8802  case 691:
     8803
     8804/* Line 1806 of yacc.c  */
     8805#line 2647 "parser.yy"
     8806    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8807    break;
     8808
     8809  case 692:
     8810
     8811/* Line 1806 of yacc.c  */
     8812#line 2649 "parser.yy"
     8813    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8814    break;
     8815
     8816  case 693:
     8817
     8818/* Line 1806 of yacc.c  */
     8819#line 2651 "parser.yy"
     8820    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8821    break;
     8822
     8823  case 694:
     8824
     8825/* Line 1806 of yacc.c  */
     8826#line 2653 "parser.yy"
     8827    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8828    break;
     8829
     8830  case 696:
     8831
     8832/* Line 1806 of yacc.c  */
     8833#line 2659 "parser.yy"
    87628834    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87638835    break;
    87648836
    8765   case 644:
    8766 
    8767 /* Line 1806 of yacc.c  */
    8768 #line 2470 "parser.yy"
    8769     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8770     break;
    8771 
    8772   case 645:
    8773 
    8774 /* Line 1806 of yacc.c  */
    8775 #line 2472 "parser.yy"
     8837  case 697:
     8838
     8839/* Line 1806 of yacc.c  */
     8840#line 2661 "parser.yy"
     8841    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8842    break;
     8843
     8844  case 698:
     8845
     8846/* Line 1806 of yacc.c  */
     8847#line 2663 "parser.yy"
     8848    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8849    break;
     8850
     8851  case 699:
     8852
     8853/* Line 1806 of yacc.c  */
     8854#line 2668 "parser.yy"
    87768855    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87778856    break;
    87788857
    8779   case 647:
    8780 
    8781 /* Line 1806 of yacc.c  */
    8782 #line 2487 "parser.yy"
    8783     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8784     break;
    8785 
    8786   case 648:
    8787 
    8788 /* Line 1806 of yacc.c  */
    8789 #line 2489 "parser.yy"
    8790     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8791     break;
    8792 
    8793   case 649:
    8794 
    8795 /* Line 1806 of yacc.c  */
    8796 #line 2494 "parser.yy"
    8797     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8798     break;
    8799 
    8800   case 650:
    8801 
    8802 /* Line 1806 of yacc.c  */
    8803 #line 2496 "parser.yy"
    8804     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8805     break;
    8806 
    8807   case 651:
    8808 
    8809 /* Line 1806 of yacc.c  */
    8810 #line 2498 "parser.yy"
    8811     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8812     break;
    8813 
    8814   case 652:
    8815 
    8816 /* Line 1806 of yacc.c  */
    8817 #line 2500 "parser.yy"
    8818     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8819     break;
    8820 
    8821   case 653:
    8822 
    8823 /* Line 1806 of yacc.c  */
    8824 #line 2502 "parser.yy"
     8858  case 700:
     8859
     8860/* Line 1806 of yacc.c  */
     8861#line 2670 "parser.yy"
    88258862    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88268863    break;
    88278864
    8828   case 655:
    8829 
    8830 /* Line 1806 of yacc.c  */
    8831 #line 2508 "parser.yy"
    8832     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8833     break;
    8834 
    8835   case 656:
    8836 
    8837 /* Line 1806 of yacc.c  */
    8838 #line 2510 "parser.yy"
    8839     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8840     break;
    8841 
    8842   case 657:
    8843 
    8844 /* Line 1806 of yacc.c  */
    8845 #line 2512 "parser.yy"
    8846     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8847     break;
    8848 
    8849   case 658:
    8850 
    8851 /* Line 1806 of yacc.c  */
    8852 #line 2517 "parser.yy"
    8853     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8854     break;
    8855 
    8856   case 659:
    8857 
    8858 /* Line 1806 of yacc.c  */
    8859 #line 2519 "parser.yy"
    8860     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8861     break;
    8862 
    8863   case 660:
    8864 
    8865 /* Line 1806 of yacc.c  */
    8866 #line 2521 "parser.yy"
    8867     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8868     break;
    8869 
    8870   case 661:
    8871 
    8872 /* Line 1806 of yacc.c  */
    8873 #line 2527 "parser.yy"
    8874     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8875     break;
    8876 
    8877   case 662:
    8878 
    8879 /* Line 1806 of yacc.c  */
    8880 #line 2529 "parser.yy"
    8881     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8882     break;
    8883 
    8884   case 664:
    8885 
    8886 /* Line 1806 of yacc.c  */
    8887 #line 2535 "parser.yy"
    8888     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8889     break;
    8890 
    8891   case 665:
    8892 
    8893 /* Line 1806 of yacc.c  */
    8894 #line 2537 "parser.yy"
    8895     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8896     break;
    8897 
    8898   case 666:
    8899 
    8900 /* Line 1806 of yacc.c  */
    8901 #line 2539 "parser.yy"
    8902     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8903     break;
    8904 
    8905   case 667:
    8906 
    8907 /* Line 1806 of yacc.c  */
    8908 #line 2541 "parser.yy"
    8909     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8910     break;
    8911 
    8912   case 669:
    8913 
    8914 /* Line 1806 of yacc.c  */
    8915 #line 2556 "parser.yy"
    8916     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8917     break;
    8918 
    8919   case 670:
    8920 
    8921 /* Line 1806 of yacc.c  */
    8922 #line 2558 "parser.yy"
    8923     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8924     break;
    8925 
    8926   case 671:
    8927 
    8928 /* Line 1806 of yacc.c  */
    8929 #line 2563 "parser.yy"
    8930     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8931     break;
    8932 
    8933   case 672:
    8934 
    8935 /* Line 1806 of yacc.c  */
    8936 #line 2565 "parser.yy"
    8937     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8938     break;
    8939 
    8940   case 673:
    8941 
    8942 /* Line 1806 of yacc.c  */
    8943 #line 2567 "parser.yy"
    8944     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8945     break;
    8946 
    8947   case 674:
    8948 
    8949 /* Line 1806 of yacc.c  */
    8950 #line 2569 "parser.yy"
    8951     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8952     break;
    8953 
    8954   case 675:
    8955 
    8956 /* Line 1806 of yacc.c  */
    8957 #line 2571 "parser.yy"
    8958     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8959     break;
    8960 
    8961   case 677:
    8962 
    8963 /* Line 1806 of yacc.c  */
    8964 #line 2577 "parser.yy"
    8965     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8966     break;
    8967 
    8968   case 678:
    8969 
    8970 /* Line 1806 of yacc.c  */
    8971 #line 2579 "parser.yy"
    8972     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8973     break;
    8974 
    8975   case 679:
    8976 
    8977 /* Line 1806 of yacc.c  */
    8978 #line 2581 "parser.yy"
    8979     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8980     break;
    8981 
    8982   case 680:
    8983 
    8984 /* Line 1806 of yacc.c  */
    8985 #line 2586 "parser.yy"
    8986     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8987     break;
    8988 
    8989   case 681:
    8990 
    8991 /* Line 1806 of yacc.c  */
    8992 #line 2588 "parser.yy"
    8993     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8994     break;
    8995 
    8996   case 682:
    8997 
    8998 /* Line 1806 of yacc.c  */
    8999 #line 2590 "parser.yy"
    9000     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9001     break;
    9002 
    9003   case 684:
    9004 
    9005 /* Line 1806 of yacc.c  */
    9006 #line 2597 "parser.yy"
    9007     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    9008     break;
    9009 
    9010   case 686:
    9011 
    9012 /* Line 1806 of yacc.c  */
    9013 #line 2608 "parser.yy"
    9014     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    9015     break;
    9016 
    9017   case 687:
    9018 
    9019 /* Line 1806 of yacc.c  */
    9020 #line 2611 "parser.yy"
    9021     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    9022     break;
    9023 
    9024   case 688:
    9025 
    9026 /* Line 1806 of yacc.c  */
    9027 #line 2613 "parser.yy"
    9028     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    9029     break;
    9030 
    9031   case 689:
    9032 
    9033 /* Line 1806 of yacc.c  */
    9034 #line 2616 "parser.yy"
    9035     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    9036     break;
    9037 
    9038   case 690:
    9039 
    9040 /* Line 1806 of yacc.c  */
    9041 #line 2618 "parser.yy"
    9042     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    9043     break;
    9044 
    9045   case 691:
    9046 
    9047 /* Line 1806 of yacc.c  */
    9048 #line 2620 "parser.yy"
    9049     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    9050     break;
    9051 
    9052   case 693:
    9053 
    9054 /* Line 1806 of yacc.c  */
    9055 #line 2634 "parser.yy"
    9056     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    9057     break;
    9058 
    9059   case 694:
    9060 
    9061 /* Line 1806 of yacc.c  */
    9062 #line 2636 "parser.yy"
    9063     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    9064     break;
    9065 
    9066   case 695:
    9067 
    9068 /* Line 1806 of yacc.c  */
    9069 #line 2641 "parser.yy"
    9070     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    9071     break;
    9072 
    9073   case 696:
    9074 
    9075 /* Line 1806 of yacc.c  */
    9076 #line 2643 "parser.yy"
    9077     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    9078     break;
    9079 
    9080   case 697:
    9081 
    9082 /* Line 1806 of yacc.c  */
    9083 #line 2645 "parser.yy"
    9084     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    9085     break;
    9086 
    9087   case 698:
    9088 
    9089 /* Line 1806 of yacc.c  */
    9090 #line 2647 "parser.yy"
    9091     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    9092     break;
    9093 
    9094   case 699:
    9095 
    9096 /* Line 1806 of yacc.c  */
    9097 #line 2649 "parser.yy"
    9098     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9099     break;
    9100 
    9101   case 701:
    9102 
    9103 /* Line 1806 of yacc.c  */
    9104 #line 2655 "parser.yy"
    9105     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    9106     break;
    9107 
    9108   case 702:
    9109 
    9110 /* Line 1806 of yacc.c  */
    9111 #line 2657 "parser.yy"
    9112     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    9113     break;
    9114 
    91158865  case 703:
    91168866
    91178867/* Line 1806 of yacc.c  */
    9118 #line 2659 "parser.yy"
    9119     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9120     break;
    9121 
    9122   case 704:
    9123 
    9124 /* Line 1806 of yacc.c  */
    9125 #line 2664 "parser.yy"
    9126     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    9127     break;
    9128 
    9129   case 705:
    9130 
    9131 /* Line 1806 of yacc.c  */
    9132 #line 2666 "parser.yy"
    9133     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9134     break;
    9135 
    9136   case 708:
    9137 
    9138 /* Line 1806 of yacc.c  */
    9139 #line 2676 "parser.yy"
     8868#line 2680 "parser.yy"
    91408869    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    91418870    break;
    91428871
    9143   case 711:
    9144 
    9145 /* Line 1806 of yacc.c  */
    9146 #line 2686 "parser.yy"
    9147     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9148     break;
    9149 
    9150   case 712:
    9151 
    9152 /* Line 1806 of yacc.c  */
    9153 #line 2688 "parser.yy"
    9154     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9155     break;
    9156 
    9157   case 713:
     8872  case 706:
    91588873
    91598874/* Line 1806 of yacc.c  */
     
    91628877    break;
    91638878
    9164   case 714:
     8879  case 707:
    91658880
    91668881/* Line 1806 of yacc.c  */
     
    91698884    break;
    91708885
    9171   case 715:
     8886  case 708:
    91728887
    91738888/* Line 1806 of yacc.c  */
     
    91768891    break;
    91778892
    9178   case 716:
     8893  case 709:
    91798894
    91808895/* Line 1806 of yacc.c  */
     
    91838898    break;
    91848899
    9185   case 717:
    9186 
    9187 /* Line 1806 of yacc.c  */
    9188 #line 2703 "parser.yy"
     8900  case 710:
     8901
     8902/* Line 1806 of yacc.c  */
     8903#line 2698 "parser.yy"
     8904    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8905    break;
     8906
     8907  case 711:
     8908
     8909/* Line 1806 of yacc.c  */
     8910#line 2700 "parser.yy"
     8911    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8912    break;
     8913
     8914  case 712:
     8915
     8916/* Line 1806 of yacc.c  */
     8917#line 2707 "parser.yy"
    91898918    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91908919    break;
    91918920
    9192   case 718:
    9193 
    9194 /* Line 1806 of yacc.c  */
    9195 #line 2705 "parser.yy"
     8921  case 713:
     8922
     8923/* Line 1806 of yacc.c  */
     8924#line 2709 "parser.yy"
    91968925    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91978926    break;
    91988927
    9199   case 719:
    9200 
    9201 /* Line 1806 of yacc.c  */
    9202 #line 2707 "parser.yy"
     8928  case 714:
     8929
     8930/* Line 1806 of yacc.c  */
     8931#line 2711 "parser.yy"
    92038932    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    92048933    break;
    92058934
    9206   case 720:
    9207 
    9208 /* Line 1806 of yacc.c  */
    9209 #line 2709 "parser.yy"
     8935  case 715:
     8936
     8937/* Line 1806 of yacc.c  */
     8938#line 2713 "parser.yy"
    92108939    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    92118940    break;
    92128941
    9213   case 721:
    9214 
    9215 /* Line 1806 of yacc.c  */
    9216 #line 2711 "parser.yy"
    9217     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9218     break;
    9219 
    9220   case 722:
    9221 
    9222 /* Line 1806 of yacc.c  */
    9223 #line 2713 "parser.yy"
    9224     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9225     break;
    9226 
    9227   case 723:
     8942  case 716:
    92288943
    92298944/* Line 1806 of yacc.c  */
     
    92328947    break;
    92338948
     8949  case 717:
     8950
     8951/* Line 1806 of yacc.c  */
     8952#line 2717 "parser.yy"
     8953    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8954    break;
     8955
     8956  case 718:
     8957
     8958/* Line 1806 of yacc.c  */
     8959#line 2719 "parser.yy"
     8960    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8961    break;
     8962
     8963  case 719:
     8964
     8965/* Line 1806 of yacc.c  */
     8966#line 2721 "parser.yy"
     8967    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8968    break;
     8969
     8970  case 720:
     8971
     8972/* Line 1806 of yacc.c  */
     8973#line 2723 "parser.yy"
     8974    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8975    break;
     8976
     8977  case 721:
     8978
     8979/* Line 1806 of yacc.c  */
     8980#line 2725 "parser.yy"
     8981    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8982    break;
     8983
     8984  case 722:
     8985
     8986/* Line 1806 of yacc.c  */
     8987#line 2730 "parser.yy"
     8988    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8989    break;
     8990
     8991  case 723:
     8992
     8993/* Line 1806 of yacc.c  */
     8994#line 2732 "parser.yy"
     8995    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8996    break;
     8997
    92348998  case 724:
    92358999
    92369000/* Line 1806 of yacc.c  */
    9237 #line 2717 "parser.yy"
    9238     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9001#line 2737 "parser.yy"
     9002    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    92399003    break;
    92409004
     
    92429006
    92439007/* Line 1806 of yacc.c  */
    9244 #line 2719 "parser.yy"
    9245     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9246     break;
    9247 
    9248   case 726:
    9249 
    9250 /* Line 1806 of yacc.c  */
    9251 #line 2721 "parser.yy"
    9252     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9008#line 2739 "parser.yy"
     9009    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    92539010    break;
    92549011
     
    92569013
    92579014/* Line 1806 of yacc.c  */
    9258 #line 2726 "parser.yy"
    9259     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    9260     break;
    9261 
    9262   case 728:
    9263 
    9264 /* Line 1806 of yacc.c  */
    9265 #line 2728 "parser.yy"
    9266     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    9267     break;
    9268 
    9269   case 729:
    9270 
    9271 /* Line 1806 of yacc.c  */
    9272 #line 2733 "parser.yy"
    9273     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9274     break;
    9275 
    9276   case 730:
    9277 
    9278 /* Line 1806 of yacc.c  */
    9279 #line 2735 "parser.yy"
    9280     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    9281     break;
    9282 
    9283   case 732:
    9284 
    9285 /* Line 1806 of yacc.c  */
    9286 #line 2762 "parser.yy"
     9015#line 2766 "parser.yy"
    92879016    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    92889017    break;
    92899018
    9290   case 736:
    9291 
    9292 /* Line 1806 of yacc.c  */
    9293 #line 2773 "parser.yy"
    9294     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9295     break;
    9296 
    9297   case 737:
    9298 
    9299 /* Line 1806 of yacc.c  */
    9300 #line 2775 "parser.yy"
    9301     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9302     break;
    9303 
    9304   case 738:
     9019  case 731:
    93059020
    93069021/* Line 1806 of yacc.c  */
     
    93099024    break;
    93109025
    9311   case 739:
     9026  case 732:
    93129027
    93139028/* Line 1806 of yacc.c  */
     
    93169031    break;
    93179032
    9318   case 740:
     9033  case 733:
    93199034
    93209035/* Line 1806 of yacc.c  */
     
    93239038    break;
    93249039
    9325   case 741:
     9040  case 734:
    93269041
    93279042/* Line 1806 of yacc.c  */
     
    93309045    break;
    93319046
     9047  case 735:
     9048
     9049/* Line 1806 of yacc.c  */
     9050#line 2785 "parser.yy"
     9051    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9052    break;
     9053
     9054  case 736:
     9055
     9056/* Line 1806 of yacc.c  */
     9057#line 2787 "parser.yy"
     9058    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9059    break;
     9060
     9061  case 737:
     9062
     9063/* Line 1806 of yacc.c  */
     9064#line 2794 "parser.yy"
     9065    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9066    break;
     9067
     9068  case 738:
     9069
     9070/* Line 1806 of yacc.c  */
     9071#line 2796 "parser.yy"
     9072    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9073    break;
     9074
     9075  case 739:
     9076
     9077/* Line 1806 of yacc.c  */
     9078#line 2798 "parser.yy"
     9079    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9080    break;
     9081
     9082  case 740:
     9083
     9084/* Line 1806 of yacc.c  */
     9085#line 2800 "parser.yy"
     9086    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9087    break;
     9088
     9089  case 741:
     9090
     9091/* Line 1806 of yacc.c  */
     9092#line 2802 "parser.yy"
     9093    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9094    break;
     9095
    93329096  case 742:
    93339097
    93349098/* Line 1806 of yacc.c  */
    9335 #line 2790 "parser.yy"
    9336     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9099#line 2804 "parser.yy"
     9100    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    93379101    break;
    93389102
     
    93409104
    93419105/* Line 1806 of yacc.c  */
    9342 #line 2792 "parser.yy"
    9343     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9106#line 2809 "parser.yy"
     9107    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    93449108    break;
    93459109
     
    93479111
    93489112/* Line 1806 of yacc.c  */
    9349 #line 2794 "parser.yy"
    9350     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9113#line 2814 "parser.yy"
     9114    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    93519115    break;
    93529116
     
    93549118
    93559119/* Line 1806 of yacc.c  */
    9356 #line 2796 "parser.yy"
    9357     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9120#line 2816 "parser.yy"
     9121    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    93589122    break;
    93599123
     
    93619125
    93629126/* Line 1806 of yacc.c  */
    9363 #line 2798 "parser.yy"
    9364     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9365     break;
    9366 
    9367   case 747:
    9368 
    9369 /* Line 1806 of yacc.c  */
    9370 #line 2800 "parser.yy"
    9371     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9372     break;
    9373 
    9374   case 748:
    9375 
    9376 /* Line 1806 of yacc.c  */
    9377 #line 2805 "parser.yy"
    9378     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9127#line 2818 "parser.yy"
     9128    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    93799129    break;
    93809130
     
    93829132
    93839133/* Line 1806 of yacc.c  */
    9384 #line 2810 "parser.yy"
    9385     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     9134#line 2842 "parser.yy"
     9135    { (yyval.en) = 0; }
    93869136    break;
    93879137
     
    93899139
    93909140/* Line 1806 of yacc.c  */
    9391 #line 2812 "parser.yy"
    9392     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    9393     break;
    9394 
    9395   case 751:
    9396 
    9397 /* Line 1806 of yacc.c  */
    9398 #line 2814 "parser.yy"
    9399     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    9400     break;
    9401 
    9402   case 754:
    9403 
    9404 /* Line 1806 of yacc.c  */
    9405 #line 2838 "parser.yy"
    9406     { (yyval.en) = 0; }
    9407     break;
    9408 
    9409   case 755:
    9410 
    9411 /* Line 1806 of yacc.c  */
    9412 #line 2840 "parser.yy"
     9141#line 2844 "parser.yy"
    94139142    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    94149143    break;
     
    94179146
    94189147/* Line 1806 of yacc.c  */
    9419 #line 9420 "Parser/parser.cc"
     9148#line 9149 "Parser/parser.cc"
    94209149      default: break;
    94219150    }
     
    96489377
    96499378/* Line 2067 of yacc.c  */
    9650 #line 2843 "parser.yy"
     9379#line 2847 "parser.yy"
    96519380
    96529381// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.