Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    ra839867 rab57786  
    8383#include "LinkageSpec.h"
    8484
     85union DeclQualifiers {
     86        unsigned int value;                                                                     // assume 32-bits
     87        struct {
     88                bool Extern : 1;
     89                bool Static : 1;
     90                bool Auto : 1;
     91                bool Register : 1;
     92                bool Inline : 1;
     93                bool Fortran : 1;
     94                bool Noreturn : 1;
     95                bool Threadlocal : 1;
     96                bool Extension : 1;
     97                bool Lvalue : 1;
     98                bool Const : 1;
     99                bool Volatile : 1;
     100                bool Restrict : 1;
     101                bool Atomic : 1;
     102        } qual;
     103}; // DeclQualifiers
     104DeclQualifiers declQualifiers = { 0 };
     105
     106union DeclType {
     107        unsigned int value;                                                                     // assume 32-bits
     108        struct {
     109                bool Char : 1;
     110                bool Bool : 1;
     111                bool Short : 1;
     112                bool Int : 1;
     113                bool Float : 1;
     114                bool Double : 1;
     115                bool Long : 1;
     116                bool Signed : 1;
     117                bool Unsigned : 1;
     118                bool Void : 1;
     119                bool Complex : 1;
     120                bool Imaginary : 1;
     121                bool Valist : 1;
     122        } type;
     123}; // DeclType
     124DeclType declTypes = { 0 };
     125
    85126extern DeclarationNode * parseTree;
    86127extern LinkageSpec::Spec linkage;
     
    96137
    97138/* Line 268 of yacc.c  */
    98 #line 99 "Parser/parser.cc"
     139#line 140 "Parser/parser.cc"
    99140
    100141/* Enabling traces.  */
     
    347388
    348389/* Line 293 of yacc.c  */
    349 #line 115 "parser.yy"
     390#line 156 "parser.yy"
    350391
    351392        Token tok;
     
    367408
    368409/* Line 293 of yacc.c  */
    369 #line 370 "Parser/parser.cc"
     410#line 411 "Parser/parser.cc"
    370411} YYSTYPE;
    371412# define YYSTYPE_IS_TRIVIAL 1
     
    379420
    380421/* Line 343 of yacc.c  */
    381 #line 382 "Parser/parser.cc"
     422#line 423 "Parser/parser.cc"
    382423
    383424#ifdef short
     
    598639#define YYFINAL  250
    599640/* YYLAST -- Last index in YYTABLE.  */
    600 #define YYLAST   10863
     641#define YYLAST   10841
    601642
    602643/* YYNTOKENS -- Number of terminals.  */
     
    605646#define YYNNTS  241
    606647/* YYNRULES -- Number of rules.  */
    607 #define YYNRULES  751
     648#define YYNRULES  750
    608649/* YYNRULES -- Number of states.  */
    609 #define YYNSTATES  1555
     650#define YYNSTATES  1554
    610651
    611652/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    675716     326,   331,   337,   339,   341,   345,   348,   349,   351,   353,
    676717     355,   357,   359,   361,   363,   365,   367,   369,   371,   373,
    677      375,   378,   384,   391,   399,   401,   405,   407,   411,   412,
    678      414,   416,   418,   420,   422,   424,   426,   428,   430,   437,
    679      442,   445,   453,   455,   459,   461,   464,   466,   469,   471,
    680      474,   477,   483,   491,   497,   507,   513,   523,   525,   529,
    681      531,   533,   537,   541,   544,   546,   549,   552,   553,   555,
    682      558,   562,   563,   565,   568,   572,   576,   581,   582,   584,
    683      586,   589,   595,   603,   610,   617,   622,   626,   631,   634,
    684      638,   641,   645,   649,   653,   657,   663,   667,   671,   676,
    685      678,   684,   691,   697,   704,   714,   725,   735,   746,   749,
    686      751,   754,   757,   760,   762,   769,   778,   789,   802,   817,
    687      818,   820,   821,   823,   825,   829,   834,   842,   843,   845,
    688      849,   851,   855,   857,   859,   861,   865,   867,   869,   871,
    689      875,   876,   878,   882,   887,   889,   893,   895,   897,   901,
    690      905,   909,   913,   917,   920,   924,   931,   935,   939,   944,
    691      946,   949,   952,   956,   962,   971,   979,   987,   993,  1003,
    692     1006,  1009,  1015,  1019,  1025,  1030,  1034,  1039,  1044,  1052,
    693     1056,  1060,  1064,  1068,  1073,  1080,  1082,  1084,  1086,  1088,
    694     1090,  1092,  1094,  1096,  1097,  1099,  1101,  1104,  1106,  1108,
    695     1110,  1112,  1114,  1116,  1118,  1119,  1125,  1127,  1130,  1134,
    696     1136,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
     718     376,   382,   389,   397,   399,   403,   405,   409,   410,   412,
     719     414,   416,   418,   420,   422,   424,   426,   428,   435,   440,
     720     443,   451,   453,   457,   459,   462,   464,   467,   469,   472,
     721     475,   481,   489,   495,   505,   511,   521,   523,   527,   529,
     722     531,   535,   539,   542,   544,   547,   550,   551,   553,   556,
     723     560,   561,   563,   566,   570,   574,   579,   580,   582,   584,
     724     587,   593,   601,   608,   615,   620,   624,   629,   632,   636,
     725     639,   643,   647,   651,   655,   661,   665,   669,   674,   676,
     726     682,   689,   695,   702,   712,   723,   733,   744,   747,   749,
     727     752,   755,   758,   760,   767,   776,   787,   800,   815,   816,
     728     818,   819,   821,   823,   827,   832,   840,   841,   843,   847,
     729     849,   853,   855,   857,   859,   863,   865,   867,   869,   873,
     730     874,   876,   880,   885,   887,   891,   893,   895,   899,   903,
     731     907,   911,   915,   918,   922,   929,   933,   937,   942,   944,
     732     947,   950,   954,   960,   969,   977,   985,   991,  1001,  1004,
     733    1007,  1013,  1017,  1023,  1028,  1032,  1037,  1042,  1050,  1054,
     734    1058,  1062,  1066,  1071,  1078,  1080,  1082,  1084,  1086,  1088,
     735    1090,  1092,  1094,  1095,  1097,  1099,  1102,  1104,  1106,  1108,
     736    1110,  1112,  1114,  1116,  1117,  1123,  1125,  1128,  1132,  1134,
     737    1137,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
    697738    1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
    698     1177,  1179,  1181,  1183,  1186,  1189,  1193,  1197,  1199,  1203,
    699     1205,  1208,  1211,  1214,  1219,  1224,  1229,  1234,  1236,  1239,
    700     1242,  1246,  1248,  1251,  1254,  1256,  1259,  1262,  1266,  1268,
    701     1271,  1274,  1276,  1278,  1283,  1286,  1287,  1294,  1302,  1305,
    702     1308,  1311,  1312,  1315,  1318,  1322,  1325,  1329,  1331,  1334,
    703     1338,  1341,  1344,  1349,  1350,  1352,  1355,  1358,  1360,  1361,
    704     1363,  1366,  1369,  1375,  1378,  1379,  1387,  1390,  1395,  1396,
    705     1399,  1400,  1402,  1404,  1406,  1412,  1418,  1424,  1426,  1432,
    706     1438,  1448,  1450,  1456,  1457,  1459,  1461,  1467,  1469,  1471,
    707     1477,  1483,  1485,  1489,  1493,  1498,  1500,  1502,  1504,  1506,
    708     1509,  1511,  1515,  1519,  1521,  1524,  1526,  1530,  1532,  1534,
    709     1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1555,
    710     1557,  1559,  1561,  1564,  1565,  1568,  1571,  1573,  1578,  1579,
    711     1581,  1584,  1588,  1593,  1596,  1599,  1601,  1604,  1607,  1613,
    712     1619,  1627,  1634,  1636,  1639,  1642,  1646,  1648,  1651,  1654,
    713     1659,  1662,  1667,  1668,  1673,  1676,  1678,  1680,  1682,  1683,
    714     1686,  1692,  1698,  1712,  1714,  1716,  1720,  1724,  1727,  1731,
    715     1735,  1738,  1743,  1745,  1752,  1762,  1763,  1775,  1777,  1781,
    716     1785,  1789,  1791,  1793,  1799,  1802,  1808,  1809,  1811,  1813,
    717     1817,  1818,  1820,  1822,  1824,  1826,  1827,  1834,  1837,  1839,
    718     1842,  1847,  1850,  1854,  1858,  1862,  1867,  1873,  1879,  1885,
    719     1892,  1894,  1896,  1898,  1902,  1903,  1909,  1910,  1912,  1914,
    720     1917,  1924,  1926,  1930,  1931,  1933,  1938,  1940,  1942,  1944,
    721     1946,  1949,  1951,  1954,  1957,  1959,  1963,  1966,  1970,  1974,
    722     1977,  1982,  1987,  1991,  2000,  2004,  2007,  2009,  2012,  2019,
    723     2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2059,  2061,
    724     2063,  2068,  2075,  2079,  2082,  2086,  2090,  2095,  2100,  2104,
    725     2107,  2109,  2112,  2115,  2117,  2121,  2124,  2128,  2132,  2135,
    726     2140,  2145,  2149,  2156,  2165,  2169,  2172,  2174,  2177,  2180,
    727     2183,  2187,  2191,  2194,  2199,  2204,  2208,  2215,  2224,  2228,
    728     2231,  2233,  2236,  2239,  2241,  2243,  2246,  2250,  2254,  2257,
    729     2262,  2269,  2278,  2280,  2283,  2286,  2288,  2291,  2294,  2298,
    730     2302,  2304,  2309,  2314,  2318,  2324,  2333,  2337,  2340,  2344,
    731     2346,  2352,  2358,  2365,  2372,  2374,  2377,  2380,  2382,  2385,
    732     2388,  2392,  2396,  2398,  2403,  2408,  2412,  2418,  2427,  2431,
    733     2433,  2436,  2438,  2441,  2448,  2454,  2461,  2469,  2477,  2479,
    734     2482,  2485,  2487,  2490,  2493,  2497,  2501,  2503,  2508,  2513,
    735     2517,  2526,  2530,  2532,  2534,  2537,  2539,  2541,  2544,  2548,
    736     2551,  2555,  2558,  2562,  2566,  2569,  2574,  2578,  2581,  2585,
    737     2588,  2593,  2597,  2600,  2607,  2614,  2621,  2629,  2631,  2634,
    738     2636,  2638,  2640,  2643,  2647,  2650,  2654,  2657,  2661,  2665,
    739     2670,  2673,  2677,  2682,  2685,  2691,  2697,  2704,  2711,  2712,
    740     2714,  2715
     739    1177,  1179,  1181,  1184,  1187,  1191,  1195,  1197,  1201,  1203,
     740    1206,  1209,  1212,  1217,  1222,  1227,  1232,  1234,  1237,  1240,
     741    1244,  1246,  1249,  1252,  1254,  1257,  1260,  1264,  1266,  1269,
     742    1272,  1274,  1276,  1281,  1284,  1285,  1292,  1300,  1303,  1306,
     743    1309,  1310,  1313,  1316,  1320,  1323,  1327,  1329,  1332,  1336,
     744    1339,  1342,  1347,  1348,  1350,  1353,  1356,  1358,  1359,  1361,
     745    1364,  1367,  1373,  1376,  1377,  1385,  1388,  1393,  1394,  1397,
     746    1398,  1400,  1402,  1404,  1410,  1416,  1422,  1424,  1430,  1436,
     747    1446,  1448,  1454,  1455,  1457,  1459,  1465,  1467,  1469,  1475,
     748    1481,  1483,  1487,  1491,  1496,  1498,  1500,  1502,  1504,  1507,
     749    1509,  1513,  1517,  1519,  1522,  1524,  1528,  1530,  1532,  1534,
     750    1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1553,  1555,
     751    1557,  1559,  1562,  1563,  1566,  1569,  1571,  1576,  1577,  1579,
     752    1582,  1586,  1591,  1594,  1597,  1599,  1602,  1605,  1611,  1617,
     753    1625,  1632,  1634,  1637,  1640,  1644,  1646,  1649,  1652,  1657,
     754    1660,  1665,  1666,  1671,  1674,  1676,  1678,  1680,  1681,  1684,
     755    1690,  1696,  1710,  1712,  1714,  1718,  1722,  1725,  1729,  1733,
     756    1736,  1741,  1743,  1750,  1760,  1761,  1773,  1775,  1779,  1783,
     757    1787,  1789,  1791,  1797,  1800,  1806,  1807,  1809,  1811,  1815,
     758    1816,  1818,  1820,  1822,  1824,  1825,  1832,  1835,  1837,  1840,
     759    1845,  1848,  1852,  1856,  1860,  1865,  1871,  1877,  1883,  1890,
     760    1892,  1894,  1896,  1900,  1901,  1907,  1908,  1910,  1912,  1915,
     761    1922,  1924,  1928,  1929,  1931,  1936,  1938,  1940,  1942,  1944,
     762    1947,  1949,  1952,  1955,  1957,  1961,  1964,  1968,  1972,  1975,
     763    1980,  1985,  1989,  1998,  2002,  2005,  2007,  2010,  2017,  2026,
     764    2030,  2033,  2037,  2041,  2046,  2051,  2055,  2057,  2059,  2061,
     765    2066,  2073,  2077,  2080,  2084,  2088,  2093,  2098,  2102,  2105,
     766    2107,  2110,  2113,  2115,  2119,  2122,  2126,  2130,  2133,  2138,
     767    2143,  2147,  2154,  2163,  2167,  2170,  2172,  2175,  2178,  2181,
     768    2185,  2189,  2192,  2197,  2202,  2206,  2213,  2222,  2226,  2229,
     769    2231,  2234,  2237,  2239,  2241,  2244,  2248,  2252,  2255,  2260,
     770    2267,  2276,  2278,  2281,  2284,  2286,  2289,  2292,  2296,  2300,
     771    2302,  2307,  2312,  2316,  2322,  2331,  2335,  2338,  2342,  2344,
     772    2350,  2356,  2363,  2370,  2372,  2375,  2378,  2380,  2383,  2386,
     773    2390,  2394,  2396,  2401,  2406,  2410,  2416,  2425,  2429,  2431,
     774    2434,  2436,  2439,  2446,  2452,  2459,  2467,  2475,  2477,  2480,
     775    2483,  2485,  2488,  2491,  2495,  2499,  2501,  2506,  2511,  2515,
     776    2524,  2528,  2530,  2532,  2535,  2537,  2539,  2542,  2546,  2549,
     777    2553,  2556,  2560,  2564,  2567,  2572,  2576,  2579,  2583,  2586,
     778    2591,  2595,  2598,  2605,  2612,  2619,  2627,  2629,  2632,  2634,
     779    2636,  2638,  2641,  2645,  2648,  2652,  2655,  2659,  2663,  2668,
     780    2671,  2675,  2680,  2683,  2689,  2695,  2702,  2709,  2710,  2712,
     781    2713
    741782};
    742783
     
    779820      -1,   162,   129,   170,   130,   168,    -1,   163,    -1,   163,
    780821      -1,   149,   167,   165,    -1,   168,   373,    -1,    -1,   165,
    781       -1,   131,    -1,   107,    -1,    97,    -1,    98,    -1,    99,
    782       -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,
    783       -1,   105,    -1,   106,    -1,   111,   112,    -1,   111,   134,
    784      165,   135,   112,    -1,   111,   134,   116,   169,   135,   112,
    785       -1,   111,   134,   165,   116,   169,   135,   112,    -1,   166,
    786       -1,   169,   116,   166,    -1,   165,    -1,   170,   116,   165,
    787       -1,    -1,   170,    -1,   173,    -1,   174,    -1,   178,    -1,
    788      179,    -1,   191,    -1,   193,    -1,   194,    -1,   199,    -1,
    789      127,   144,   114,   145,   115,   132,    -1,    72,   130,   312,
    790      172,    -1,   114,   115,    -1,   114,   134,   134,   210,   175,
    791      135,   115,    -1,   176,    -1,   175,   134,   176,    -1,   213,
    792       -1,    40,   213,    -1,   308,    -1,   172,   135,    -1,   172,
    793       -1,   177,   172,    -1,   171,   132,    -1,    41,   109,   170,
    794      110,   172,    -1,    41,   109,   170,   110,   172,    42,   172,
    795       -1,    43,   109,   170,   110,   184,    -1,    43,   109,   170,
    796      110,   114,   134,   206,   185,   115,    -1,    53,   109,   170,
    797      110,   184,    -1,    53,   109,   170,   110,   114,   134,   206,
    798      187,   115,    -1,   164,    -1,   164,    96,   164,    -1,   310,
    799       -1,   180,    -1,   181,   116,   180,    -1,    44,   181,   130,
    800       -1,    45,   130,    -1,   182,    -1,   183,   182,    -1,   183,
    801      172,    -1,    -1,   186,    -1,   183,   177,    -1,   186,   183,
    802      177,    -1,    -1,   188,    -1,   183,   190,    -1,   183,   177,
    803      189,    -1,   188,   183,   190,    -1,   188,   183,   177,   189,
    804       -1,    -1,   190,    -1,    56,    -1,    56,   132,    -1,    47,
    805      109,   170,   110,   172,    -1,    46,   172,    47,   109,   170,
    806      110,   132,    -1,    48,   109,   134,   192,   110,   172,    -1,
    807      171,   135,   132,   171,   132,   171,    -1,   213,   171,   132,
    808      171,    -1,    51,    72,   132,    -1,    51,   117,   170,   132,
    809       -1,    50,   132,    -1,    50,    72,   132,    -1,    49,   132,
    810       -1,    49,    72,   132,    -1,    52,   171,   132,    -1,    61,
    811      166,   132,    -1,    62,   166,   132,    -1,    62,   166,    63,
    812      165,   132,    -1,    57,   174,   195,    -1,    57,   174,   197,
    813       -1,    57,   174,   195,   197,    -1,   196,    -1,    58,   109,
    814       96,   110,   174,    -1,   196,    58,   109,    96,   110,   174,
    815       -1,    59,   109,    96,   110,   174,    -1,   196,    59,   109,
    816       96,   110,   174,    -1,    58,   109,   134,   134,   198,   135,
    817      110,   174,   135,    -1,   196,    58,   109,   134,   134,   198,
    818      135,   110,   174,   135,    -1,    59,   109,   134,   134,   198,
    819      135,   110,   174,   135,    -1,   196,    59,   109,   134,   134,
    820      198,   135,   110,   174,   135,    -1,    60,   174,    -1,   226,
    821       -1,   226,   309,    -1,   226,   357,    -1,   366,   139,    -1,
    822      366,    -1,    64,   200,   109,   141,   110,   132,    -1,    64,
    823      200,   109,   141,   130,   201,   110,   132,    -1,    64,   200,
    824      109,   141,   130,   201,   130,   201,   110,   132,    -1,    64,
    825      200,   109,   141,   130,   201,   130,   201,   130,   204,   110,
    826      132,    -1,    64,   200,    51,   109,   141,   130,   130,   201,
    827      130,   204,   130,   205,   110,   132,    -1,    -1,    11,    -1,
    828       -1,   202,    -1,   203,    -1,   202,   116,   203,    -1,   141,
    829      109,   164,   110,    -1,   111,   164,   112,   141,   109,   164,
    830      110,    -1,    -1,   141,    -1,   204,   116,   141,    -1,   139,
    831       -1,   205,   116,   139,    -1,   135,    -1,   207,    -1,   213,
    832       -1,   207,   134,   213,    -1,   135,    -1,   209,    -1,   223,
    833       -1,   209,   134,   223,    -1,    -1,   211,    -1,    29,   212,
    834      132,    -1,   211,    29,   212,   132,    -1,   274,    -1,   212,
    835      116,   274,    -1,   214,    -1,   223,    -1,   215,   135,   132,
    836       -1,   220,   135,   132,    -1,   217,   135,   132,    -1,   293,
    837      135,   132,    -1,   296,   135,   132,    -1,   216,   277,    -1,
    838      232,   216,   277,    -1,   215,   135,   116,   134,   272,   277,
    839       -1,   367,   272,   311,    -1,   370,   272,   311,    -1,   228,
    840      370,   272,   311,    -1,   218,    -1,   228,   218,    -1,   232,
    841      218,    -1,   232,   228,   218,    -1,   217,   135,   116,   134,
    842      272,    -1,   111,   112,   272,   109,   134,   260,   135,   110,
    843       -1,   370,   272,   109,   134,   260,   135,   110,    -1,   219,
    844      272,   109,   134,   260,   135,   110,    -1,   111,   134,   262,
    845      135,   112,    -1,   111,   134,   262,   135,   116,   134,   263,
    846      135,   112,    -1,     3,   216,    -1,     3,   218,    -1,   220,
    847      135,   116,   134,   139,    -1,     3,   226,   309,    -1,   221,
    848      135,   116,   134,   309,    -1,   228,     3,   226,   309,    -1,
    849      226,     3,   309,    -1,   226,     3,   228,   309,    -1,     3,
    850      139,   131,   165,    -1,   222,   135,   116,   134,   139,   131,
    851      165,    -1,   224,   135,   132,    -1,   221,   135,   132,    -1,
    852      222,   135,   132,    -1,   240,   135,   132,    -1,   225,   309,
    853      311,   277,    -1,   224,   116,   312,   309,   311,   277,    -1,
    854      236,    -1,   240,    -1,   242,    -1,   283,    -1,   237,    -1,
    855      241,    -1,   243,    -1,   284,    -1,    -1,   228,    -1,   229,
    856       -1,   228,   229,    -1,   230,    -1,   314,    -1,    10,    -1,
    857       12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
    858      109,   231,   286,   110,    -1,   233,    -1,   228,   233,    -1,
    859      232,   228,   233,    -1,   234,    -1,   233,   234,    -1,     5,
    860       -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
    861       -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
    862       -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
    863       -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
    864       -1,   237,    -1,   232,   237,    -1,   236,   234,    -1,   236,
    865      234,   228,    -1,   236,   234,   237,    -1,   238,    -1,   227,
    866      239,   227,    -1,   235,    -1,   228,   235,    -1,   238,   229,
    867       -1,   238,   235,    -1,    28,   109,   276,   110,    -1,    28,
    868      109,   170,   110,    -1,    78,   109,   276,   110,    -1,    78,
    869      109,   170,   110,    -1,   241,    -1,   232,   241,    -1,   240,
    870      234,    -1,   240,   234,   228,    -1,   244,    -1,   228,   244,
    871       -1,   241,   229,    -1,   243,    -1,   232,   243,    -1,   242,
    872      234,    -1,   242,   234,   228,    -1,    74,    -1,   228,    74,
    873       -1,   243,   229,    -1,   245,    -1,   256,    -1,   247,   114,
    874      248,   115,    -1,   247,   274,    -1,    -1,   247,   274,   246,
    875      114,   248,   115,    -1,   247,   109,   292,   110,   114,   248,
    876      115,    -1,   247,   285,    -1,    31,   312,    -1,    32,   312,
    877       -1,    -1,   248,   249,    -1,   250,   132,    -1,    40,   250,
    878      132,    -1,   251,   132,    -1,    40,   251,   132,    -1,   366,
    879       -1,   366,   274,    -1,   250,   116,   274,    -1,   250,   116,
    880       -1,   226,   252,    -1,   251,   116,   312,   252,    -1,    -1,
    881      254,    -1,   318,   253,    -1,   331,   253,    -1,   357,    -1,
    882       -1,   254,    -1,   130,   164,    -1,    30,   312,    -1,   255,
    883      114,   258,   372,   115,    -1,   255,   274,    -1,    -1,   255,
    884      274,   257,   114,   258,   372,   115,    -1,   274,   259,    -1,
    885      258,   116,   274,   259,    -1,    -1,   131,   164,    -1,    -1,
    886      261,    -1,   263,    -1,   262,    -1,   262,   135,   116,   134,
    887      263,    -1,   263,   135,   116,   134,    96,    -1,   262,   135,
    888      116,   134,    96,    -1,   267,    -1,   263,   135,   116,   134,
    889      267,    -1,   262,   135,   116,   134,   267,    -1,   262,   135,
    890      116,   134,   263,   135,   116,   134,   267,    -1,   268,    -1,
    891      263,   135,   116,   134,   268,    -1,    -1,   265,    -1,   266,
    892       -1,   266,   135,   116,   134,    96,    -1,   270,    -1,   269,
    893       -1,   266,   135,   116,   134,   270,    -1,   266,   135,   116,
    894      134,   269,    -1,   269,    -1,   362,   272,   373,    -1,   370,
    895      272,   373,    -1,   228,   370,   272,   373,    -1,   218,    -1,
    896      270,    -1,   362,    -1,   370,    -1,   228,   370,    -1,   371,
    897       -1,   225,   336,   373,    -1,   225,   340,   373,    -1,   225,
    898       -1,   225,   351,    -1,   139,    -1,   271,   116,   139,    -1,
    899      137,    -1,    74,    -1,    75,    -1,   138,    -1,    74,    -1,
    900       75,    -1,   139,    -1,    74,    -1,    75,    -1,   366,    -1,
    901      226,    -1,   226,   357,    -1,   366,    -1,   371,    -1,   226,
    902       -1,   226,   345,    -1,    -1,   131,   278,    -1,   107,   278,
    903       -1,   165,    -1,   114,   279,   372,   115,    -1,    -1,   278,
    904       -1,   280,   278,    -1,   279,   116,   278,    -1,   279,   116,
    905      280,   278,    -1,   281,   130,    -1,   274,   130,    -1,   282,
    906       -1,   281,   282,    -1,   113,   274,    -1,   111,   134,   165,
    907      135,   112,    -1,   111,   134,   310,   135,   112,    -1,   111,
    908      134,   164,    96,   164,   135,   112,    -1,   113,   111,   134,
    909      147,   135,   112,    -1,   284,    -1,   232,   284,    -1,   283,
    910      234,    -1,   283,   234,   228,    -1,   285,    -1,   228,   285,
    911       -1,   284,   229,    -1,    75,   109,   292,   110,    -1,   287,
    912      373,    -1,   286,   116,   287,   373,    -1,    -1,   289,   274,
    913      288,   290,    -1,   226,   336,    -1,    33,    -1,    35,    -1,
    914       34,    -1,    -1,   290,   291,    -1,   128,   274,   109,   292,
    915      110,    -1,   128,   114,   134,   298,   115,    -1,   128,   109,
    916      134,   286,   135,   110,   114,   134,   298,   115,   109,   292,
    917      110,    -1,   276,    -1,   165,    -1,   292,   116,   276,    -1,
    918      292,   116,   165,    -1,    33,   294,    -1,   233,    33,   294,
    919       -1,   293,   116,   294,    -1,   295,   290,    -1,   295,   290,
    920      131,   276,    -1,   274,    -1,   273,   109,   134,   286,   135,
    921      110,    -1,    36,   274,   109,   134,   286,   135,   110,   114,
    922      115,    -1,    -1,    36,   274,   109,   134,   286,   135,   110,
    923      114,   297,   298,   115,    -1,   299,    -1,   298,   134,   299,
    924       -1,   300,   135,   132,    -1,   301,   135,   132,    -1,   216,
    925       -1,   218,    -1,   300,   135,   116,   134,   272,    -1,   226,
    926      309,    -1,   301,   135,   116,   134,   309,    -1,    -1,   303,
    927       -1,   305,    -1,   303,   134,   305,    -1,    -1,   303,    -1,
    928      213,    -1,   307,    -1,   199,    -1,    -1,     5,    82,   306,
    929      114,   304,   115,    -1,    40,   305,    -1,   308,    -1,   323,
    930      174,    -1,   327,   134,   208,   174,    -1,   217,   174,    -1,
    931      225,   323,   174,    -1,   228,   323,   174,    -1,   232,   323,
    932      174,    -1,   232,   228,   323,   174,    -1,   225,   327,   134,
    933      208,   174,    -1,   228,   327,   134,   208,   174,    -1,   232,
    934      327,   134,   208,   174,    -1,   232,   228,   327,   134,   208,
    935      174,    -1,   318,    -1,   331,    -1,   323,    -1,   164,   122,
    936      164,    -1,    -1,    64,   109,   142,   110,   312,    -1,    -1,
    937      313,    -1,   314,    -1,   313,   314,    -1,    39,   109,   109,
    938      315,   110,   110,    -1,   316,    -1,   315,   116,   316,    -1,
    939       -1,   317,    -1,   317,   109,   171,   110,    -1,   272,    -1,
    940      234,    -1,   235,    -1,   229,    -1,   319,   312,    -1,   320,
    941       -1,   321,   312,    -1,   322,   312,    -1,   137,    -1,   109,
    942      319,   110,    -1,   150,   318,    -1,   150,   228,   318,    -1,
    943      109,   320,   110,    -1,   319,   349,    -1,   109,   320,   110,
    944      349,    -1,   109,   321,   110,   350,    -1,   109,   321,   110,
    945       -1,   109,   320,   110,   109,   134,   264,   135,   110,    -1,
    946      109,   322,   110,    -1,   324,   312,    -1,   325,    -1,   326,
    947      312,    -1,   319,   109,   134,   264,   135,   110,    -1,   109,
    948      325,   110,   109,   134,   264,   135,   110,    -1,   109,   324,
    949      110,    -1,   150,   323,    -1,   150,   228,   323,    -1,   109,
    950      325,   110,    -1,   109,   325,   110,   349,    -1,   109,   326,
    951      110,   350,    -1,   109,   326,   110,    -1,   328,    -1,   329,
    952       -1,   330,    -1,   319,   109,   271,   110,    -1,   109,   329,
    953      110,   109,   271,   110,    -1,   109,   328,   110,    -1,   150,
    954      327,    -1,   150,   228,   327,    -1,   109,   329,   110,    -1,
    955      109,   329,   110,   349,    -1,   109,   330,   110,   350,    -1,
    956      109,   330,   110,    -1,   332,   312,    -1,   333,    -1,   334,
    957      312,    -1,   335,   312,    -1,   341,    -1,   109,   332,   110,
    958       -1,   150,   331,    -1,   150,   228,   331,    -1,   109,   333,
    959      110,    -1,   332,   349,    -1,   109,   333,   110,   349,    -1,
    960      109,   334,   110,   350,    -1,   109,   334,   110,    -1,   332,
    961      109,   134,   264,   135,   110,    -1,   109,   333,   110,   109,
    962      134,   264,   135,   110,    -1,   109,   335,   110,    -1,   319,
    963      312,    -1,   337,    -1,   338,   312,    -1,   339,   312,    -1,
    964      150,   336,    -1,   150,   228,   336,    -1,   109,   337,   110,
    965       -1,   319,   355,    -1,   109,   337,   110,   349,    -1,   109,
    966      338,   110,   350,    -1,   109,   338,   110,    -1,   319,   109,
    967      134,   264,   135,   110,    -1,   109,   337,   110,   109,   134,
    968      264,   135,   110,    -1,   109,   339,   110,    -1,   341,   312,
    969       -1,   342,    -1,   343,   312,    -1,   344,   312,    -1,    74,
    970       -1,    75,    -1,   150,   340,    -1,   150,   228,   340,    -1,
    971      109,   342,   110,    -1,   341,   355,    -1,   109,   342,   110,
    972      355,    -1,   341,   109,   134,   264,   135,   110,    -1,   109,
    973      342,   110,   109,   134,   264,   135,   110,    -1,   346,    -1,
    974      347,   312,    -1,   348,   312,    -1,   150,    -1,   150,   228,
    975       -1,   150,   345,    -1,   150,   228,   345,    -1,   109,   346,
    976      110,    -1,   349,    -1,   109,   346,   110,   349,    -1,   109,
    977      347,   110,   350,    -1,   109,   347,   110,    -1,   109,   134,
    978      264,   135,   110,    -1,   109,   346,   110,   109,   134,   264,
    979      135,   110,    -1,   109,   348,   110,    -1,   111,   112,    -1,
    980      111,   112,   350,    -1,   350,    -1,   111,   134,   165,   135,
    981      112,    -1,   111,   134,   117,   135,   112,    -1,   350,   111,
    982      134,   165,   135,   112,    -1,   350,   111,   134,   117,   135,
    983      112,    -1,   352,    -1,   353,   312,    -1,   354,   312,    -1,
    984      150,    -1,   150,   228,    -1,   150,   351,    -1,   150,   228,
    985      351,    -1,   109,   352,   110,    -1,   355,    -1,   109,   352,
    986      110,   355,    -1,   109,   353,   110,   350,    -1,   109,   353,
    987      110,    -1,   109,   134,   264,   135,   110,    -1,   109,   352,
    988      110,   109,   134,   264,   135,   110,    -1,   109,   354,   110,
    989       -1,   356,    -1,   356,   350,    -1,   350,    -1,   111,   112,
    990       -1,   111,   134,   228,   117,   135,   112,    -1,   111,   134,
    991      228,   135,   112,    -1,   111,   134,   228,   165,   135,   112,
    992       -1,   111,   134,     7,   227,   165,   135,   112,    -1,   111,
    993      134,   228,     7,   165,   135,   112,    -1,   358,    -1,   359,
    994      312,    -1,   360,   312,    -1,   150,    -1,   150,   228,    -1,
    995      150,   357,    -1,   150,   228,   357,    -1,   109,   358,   110,
    996       -1,   349,    -1,   109,   358,   110,   349,    -1,   109,   359,
    997      110,   350,    -1,   109,   359,   110,    -1,   109,   358,   110,
    998      109,   134,   264,   135,   110,    -1,   109,   360,   110,    -1,
    999      362,    -1,   370,    -1,   228,   370,    -1,   363,    -1,   364,
    1000       -1,   150,   226,    -1,   228,   150,   226,    -1,   150,   371,
    1001       -1,   228,   150,   371,    -1,   150,   361,    -1,   228,   150,
    1002      361,    -1,   111,   112,   226,    -1,   365,   226,    -1,   111,
    1003      112,   350,   226,    -1,   365,   350,   226,    -1,   350,   226,
    1004       -1,   111,   112,   363,    -1,   365,   363,    -1,   111,   112,
    1005      350,   363,    -1,   365,   350,   363,    -1,   350,   363,    -1,
    1006      111,   134,   228,   117,   135,   112,    -1,   111,   134,   228,
    1007      165,   135,   112,    -1,   111,   134,   232,   165,   135,   112,
    1008       -1,   111,   134,   232,   228,   165,   135,   112,    -1,   370,
    1009       -1,   228,   370,    -1,   367,    -1,   368,    -1,   369,    -1,
    1010      150,   226,    -1,   228,   150,   226,    -1,   150,   371,    -1,
    1011      228,   150,   371,    -1,   150,   366,    -1,   228,   150,   366,
    1012       -1,   111,   112,   226,    -1,   111,   112,   350,   226,    -1,
    1013      350,   226,    -1,   111,   112,   368,    -1,   111,   112,   350,
    1014      368,    -1,   350,   368,    -1,   111,   134,   263,   135,   112,
    1015       -1,   111,   112,   109,   260,   110,    -1,   370,   109,   134,
    1016      260,   135,   110,    -1,   219,   109,   134,   260,   135,   110,
    1017       -1,    -1,   116,    -1,    -1,   131,   165,    -1
     822      -1,   131,    -1,    97,    -1,    98,    -1,    99,    -1,   100,
     823      -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
     824      -1,   106,    -1,   111,   112,    -1,   111,   134,   165,   135,
     825     112,    -1,   111,   134,   116,   169,   135,   112,    -1,   111,
     826     134,   165,   116,   169,   135,   112,    -1,   166,    -1,   169,
     827     116,   166,    -1,   165,    -1,   170,   116,   165,    -1,    -1,
     828     170,    -1,   173,    -1,   174,    -1,   178,    -1,   179,    -1,
     829     191,    -1,   193,    -1,   194,    -1,   199,    -1,   127,   144,
     830     114,   145,   115,   132,    -1,    72,   130,   312,   172,    -1,
     831     114,   115,    -1,   114,   134,   134,   210,   175,   135,   115,
     832      -1,   176,    -1,   175,   134,   176,    -1,   213,    -1,    40,
     833     213,    -1,   308,    -1,   172,   135,    -1,   172,    -1,   177,
     834     172,    -1,   171,   132,    -1,    41,   109,   170,   110,   172,
     835      -1,    41,   109,   170,   110,   172,    42,   172,    -1,    43,
     836     109,   170,   110,   184,    -1,    43,   109,   170,   110,   114,
     837     134,   206,   185,   115,    -1,    53,   109,   170,   110,   184,
     838      -1,    53,   109,   170,   110,   114,   134,   206,   187,   115,
     839      -1,   164,    -1,   164,    96,   164,    -1,   310,    -1,   180,
     840      -1,   181,   116,   180,    -1,    44,   181,   130,    -1,    45,
     841     130,    -1,   182,    -1,   183,   182,    -1,   183,   172,    -1,
     842      -1,   186,    -1,   183,   177,    -1,   186,   183,   177,    -1,
     843      -1,   188,    -1,   183,   190,    -1,   183,   177,   189,    -1,
     844     188,   183,   190,    -1,   188,   183,   177,   189,    -1,    -1,
     845     190,    -1,    56,    -1,    56,   132,    -1,    47,   109,   170,
     846     110,   172,    -1,    46,   172,    47,   109,   170,   110,   132,
     847      -1,    48,   109,   134,   192,   110,   172,    -1,   171,   135,
     848     132,   171,   132,   171,    -1,   213,   171,   132,   171,    -1,
     849      51,    72,   132,    -1,    51,   117,   170,   132,    -1,    50,
     850     132,    -1,    50,    72,   132,    -1,    49,   132,    -1,    49,
     851      72,   132,    -1,    52,   171,   132,    -1,    61,   166,   132,
     852      -1,    62,   166,   132,    -1,    62,   166,    63,   165,   132,
     853      -1,    57,   174,   195,    -1,    57,   174,   197,    -1,    57,
     854     174,   195,   197,    -1,   196,    -1,    58,   109,    96,   110,
     855     174,    -1,   196,    58,   109,    96,   110,   174,    -1,    59,
     856     109,    96,   110,   174,    -1,   196,    59,   109,    96,   110,
     857     174,    -1,    58,   109,   134,   134,   198,   135,   110,   174,
     858     135,    -1,   196,    58,   109,   134,   134,   198,   135,   110,
     859     174,   135,    -1,    59,   109,   134,   134,   198,   135,   110,
     860     174,   135,    -1,   196,    59,   109,   134,   134,   198,   135,
     861     110,   174,   135,    -1,    60,   174,    -1,   226,    -1,   226,
     862     309,    -1,   226,   357,    -1,   366,   139,    -1,   366,    -1,
     863      64,   200,   109,   141,   110,   132,    -1,    64,   200,   109,
     864     141,   130,   201,   110,   132,    -1,    64,   200,   109,   141,
     865     130,   201,   130,   201,   110,   132,    -1,    64,   200,   109,
     866     141,   130,   201,   130,   201,   130,   204,   110,   132,    -1,
     867      64,   200,    51,   109,   141,   130,   130,   201,   130,   204,
     868     130,   205,   110,   132,    -1,    -1,    11,    -1,    -1,   202,
     869      -1,   203,    -1,   202,   116,   203,    -1,   141,   109,   164,
     870     110,    -1,   111,   164,   112,   141,   109,   164,   110,    -1,
     871      -1,   141,    -1,   204,   116,   141,    -1,   139,    -1,   205,
     872     116,   139,    -1,   135,    -1,   207,    -1,   213,    -1,   207,
     873     134,   213,    -1,   135,    -1,   209,    -1,   223,    -1,   209,
     874     134,   223,    -1,    -1,   211,    -1,    29,   212,   132,    -1,
     875     211,    29,   212,   132,    -1,   274,    -1,   212,   116,   274,
     876      -1,   214,    -1,   223,    -1,   215,   135,   132,    -1,   220,
     877     135,   132,    -1,   217,   135,   132,    -1,   293,   135,   132,
     878      -1,   296,   135,   132,    -1,   216,   277,    -1,   232,   216,
     879     277,    -1,   215,   135,   116,   134,   272,   277,    -1,   367,
     880     272,   311,    -1,   370,   272,   311,    -1,   228,   370,   272,
     881     311,    -1,   218,    -1,   228,   218,    -1,   232,   218,    -1,
     882     232,   228,   218,    -1,   217,   135,   116,   134,   272,    -1,
     883     111,   112,   272,   109,   134,   260,   135,   110,    -1,   370,
     884     272,   109,   134,   260,   135,   110,    -1,   219,   272,   109,
     885     134,   260,   135,   110,    -1,   111,   134,   262,   135,   112,
     886      -1,   111,   134,   262,   135,   116,   134,   263,   135,   112,
     887      -1,     3,   216,    -1,     3,   218,    -1,   220,   135,   116,
     888     134,   139,    -1,     3,   226,   309,    -1,   221,   135,   116,
     889     134,   309,    -1,   228,     3,   226,   309,    -1,   226,     3,
     890     309,    -1,   226,     3,   228,   309,    -1,     3,   139,   131,
     891     165,    -1,   222,   135,   116,   134,   139,   131,   165,    -1,
     892     224,   135,   132,    -1,   221,   135,   132,    -1,   222,   135,
     893     132,    -1,   240,   135,   132,    -1,   225,   309,   311,   277,
     894      -1,   224,   116,   312,   309,   311,   277,    -1,   236,    -1,
     895     240,    -1,   242,    -1,   283,    -1,   237,    -1,   241,    -1,
     896     243,    -1,   284,    -1,    -1,   228,    -1,   229,    -1,   228,
     897     229,    -1,   230,    -1,   314,    -1,    10,    -1,    12,    -1,
     898      11,    -1,    14,    -1,    67,    -1,    -1,    13,   109,   231,
     899     286,   110,    -1,   233,    -1,   228,   233,    -1,   232,   228,
     900     233,    -1,   234,    -1,   233,   234,    -1,     5,    -1,     7,
     901      -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,    69,
     902      -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,    18,
     903      -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,    15,
     904      -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,   237,
     905      -1,   232,   237,    -1,   236,   234,    -1,   236,   234,   228,
     906      -1,   236,   234,   237,    -1,   238,    -1,   227,   239,   227,
     907      -1,   235,    -1,   228,   235,    -1,   238,   229,    -1,   238,
     908     235,    -1,    28,   109,   276,   110,    -1,    28,   109,   170,
     909     110,    -1,    78,   109,   276,   110,    -1,    78,   109,   170,
     910     110,    -1,   241,    -1,   232,   241,    -1,   240,   234,    -1,
     911     240,   234,   228,    -1,   244,    -1,   228,   244,    -1,   241,
     912     229,    -1,   243,    -1,   232,   243,    -1,   242,   234,    -1,
     913     242,   234,   228,    -1,    74,    -1,   228,    74,    -1,   243,
     914     229,    -1,   245,    -1,   256,    -1,   247,   114,   248,   115,
     915      -1,   247,   274,    -1,    -1,   247,   274,   246,   114,   248,
     916     115,    -1,   247,   109,   292,   110,   114,   248,   115,    -1,
     917     247,   285,    -1,    31,   312,    -1,    32,   312,    -1,    -1,
     918     248,   249,    -1,   250,   132,    -1,    40,   250,   132,    -1,
     919     251,   132,    -1,    40,   251,   132,    -1,   366,    -1,   366,
     920     274,    -1,   250,   116,   274,    -1,   250,   116,    -1,   226,
     921     252,    -1,   251,   116,   312,   252,    -1,    -1,   254,    -1,
     922     318,   253,    -1,   331,   253,    -1,   357,    -1,    -1,   254,
     923      -1,   130,   164,    -1,    30,   312,    -1,   255,   114,   258,
     924     372,   115,    -1,   255,   274,    -1,    -1,   255,   274,   257,
     925     114,   258,   372,   115,    -1,   274,   259,    -1,   258,   116,
     926     274,   259,    -1,    -1,   131,   164,    -1,    -1,   261,    -1,
     927     263,    -1,   262,    -1,   262,   135,   116,   134,   263,    -1,
     928     263,   135,   116,   134,    96,    -1,   262,   135,   116,   134,
     929      96,    -1,   267,    -1,   263,   135,   116,   134,   267,    -1,
     930     262,   135,   116,   134,   267,    -1,   262,   135,   116,   134,
     931     263,   135,   116,   134,   267,    -1,   268,    -1,   263,   135,
     932     116,   134,   268,    -1,    -1,   265,    -1,   266,    -1,   266,
     933     135,   116,   134,    96,    -1,   270,    -1,   269,    -1,   266,
     934     135,   116,   134,   270,    -1,   266,   135,   116,   134,   269,
     935      -1,   269,    -1,   362,   272,   373,    -1,   370,   272,   373,
     936      -1,   228,   370,   272,   373,    -1,   218,    -1,   270,    -1,
     937     362,    -1,   370,    -1,   228,   370,    -1,   371,    -1,   225,
     938     336,   373,    -1,   225,   340,   373,    -1,   225,    -1,   225,
     939     351,    -1,   139,    -1,   271,   116,   139,    -1,   137,    -1,
     940      74,    -1,    75,    -1,   138,    -1,    74,    -1,    75,    -1,
     941     139,    -1,    74,    -1,    75,    -1,   366,    -1,   226,    -1,
     942     226,   357,    -1,   366,    -1,   371,    -1,   226,    -1,   226,
     943     345,    -1,    -1,   131,   278,    -1,   107,   278,    -1,   165,
     944      -1,   114,   279,   372,   115,    -1,    -1,   278,    -1,   280,
     945     278,    -1,   279,   116,   278,    -1,   279,   116,   280,   278,
     946      -1,   281,   130,    -1,   274,   130,    -1,   282,    -1,   281,
     947     282,    -1,   113,   274,    -1,   111,   134,   165,   135,   112,
     948      -1,   111,   134,   310,   135,   112,    -1,   111,   134,   164,
     949      96,   164,   135,   112,    -1,   113,   111,   134,   147,   135,
     950     112,    -1,   284,    -1,   232,   284,    -1,   283,   234,    -1,
     951     283,   234,   228,    -1,   285,    -1,   228,   285,    -1,   284,
     952     229,    -1,    75,   109,   292,   110,    -1,   287,   373,    -1,
     953     286,   116,   287,   373,    -1,    -1,   289,   274,   288,   290,
     954      -1,   226,   336,    -1,    33,    -1,    35,    -1,    34,    -1,
     955      -1,   290,   291,    -1,   128,   274,   109,   292,   110,    -1,
     956     128,   114,   134,   298,   115,    -1,   128,   109,   134,   286,
     957     135,   110,   114,   134,   298,   115,   109,   292,   110,    -1,
     958     276,    -1,   165,    -1,   292,   116,   276,    -1,   292,   116,
     959     165,    -1,    33,   294,    -1,   233,    33,   294,    -1,   293,
     960     116,   294,    -1,   295,   290,    -1,   295,   290,   131,   276,
     961      -1,   274,    -1,   273,   109,   134,   286,   135,   110,    -1,
     962      36,   274,   109,   134,   286,   135,   110,   114,   115,    -1,
     963      -1,    36,   274,   109,   134,   286,   135,   110,   114,   297,
     964     298,   115,    -1,   299,    -1,   298,   134,   299,    -1,   300,
     965     135,   132,    -1,   301,   135,   132,    -1,   216,    -1,   218,
     966      -1,   300,   135,   116,   134,   272,    -1,   226,   309,    -1,
     967     301,   135,   116,   134,   309,    -1,    -1,   303,    -1,   305,
     968      -1,   303,   134,   305,    -1,    -1,   303,    -1,   213,    -1,
     969     307,    -1,   199,    -1,    -1,     5,    82,   306,   114,   304,
     970     115,    -1,    40,   305,    -1,   308,    -1,   323,   174,    -1,
     971     327,   134,   208,   174,    -1,   217,   174,    -1,   225,   323,
     972     174,    -1,   228,   323,   174,    -1,   232,   323,   174,    -1,
     973     232,   228,   323,   174,    -1,   225,   327,   134,   208,   174,
     974      -1,   228,   327,   134,   208,   174,    -1,   232,   327,   134,
     975     208,   174,    -1,   232,   228,   327,   134,   208,   174,    -1,
     976     318,    -1,   331,    -1,   323,    -1,   164,   122,   164,    -1,
     977      -1,    64,   109,   141,   110,   312,    -1,    -1,   313,    -1,
     978     314,    -1,   313,   314,    -1,    39,   109,   109,   315,   110,
     979     110,    -1,   316,    -1,   315,   116,   316,    -1,    -1,   317,
     980      -1,   317,   109,   171,   110,    -1,   272,    -1,   234,    -1,
     981     235,    -1,   229,    -1,   319,   312,    -1,   320,    -1,   321,
     982     312,    -1,   322,   312,    -1,   137,    -1,   109,   319,   110,
     983      -1,   150,   318,    -1,   150,   228,   318,    -1,   109,   320,
     984     110,    -1,   319,   349,    -1,   109,   320,   110,   349,    -1,
     985     109,   321,   110,   350,    -1,   109,   321,   110,    -1,   109,
     986     320,   110,   109,   134,   264,   135,   110,    -1,   109,   322,
     987     110,    -1,   324,   312,    -1,   325,    -1,   326,   312,    -1,
     988     319,   109,   134,   264,   135,   110,    -1,   109,   325,   110,
     989     109,   134,   264,   135,   110,    -1,   109,   324,   110,    -1,
     990     150,   323,    -1,   150,   228,   323,    -1,   109,   325,   110,
     991      -1,   109,   325,   110,   349,    -1,   109,   326,   110,   350,
     992      -1,   109,   326,   110,    -1,   328,    -1,   329,    -1,   330,
     993      -1,   319,   109,   271,   110,    -1,   109,   329,   110,   109,
     994     271,   110,    -1,   109,   328,   110,    -1,   150,   327,    -1,
     995     150,   228,   327,    -1,   109,   329,   110,    -1,   109,   329,
     996     110,   349,    -1,   109,   330,   110,   350,    -1,   109,   330,
     997     110,    -1,   332,   312,    -1,   333,    -1,   334,   312,    -1,
     998     335,   312,    -1,   341,    -1,   109,   332,   110,    -1,   150,
     999     331,    -1,   150,   228,   331,    -1,   109,   333,   110,    -1,
     1000     332,   349,    -1,   109,   333,   110,   349,    -1,   109,   334,
     1001     110,   350,    -1,   109,   334,   110,    -1,   332,   109,   134,
     1002     264,   135,   110,    -1,   109,   333,   110,   109,   134,   264,
     1003     135,   110,    -1,   109,   335,   110,    -1,   319,   312,    -1,
     1004     337,    -1,   338,   312,    -1,   339,   312,    -1,   150,   336,
     1005      -1,   150,   228,   336,    -1,   109,   337,   110,    -1,   319,
     1006     355,    -1,   109,   337,   110,   349,    -1,   109,   338,   110,
     1007     350,    -1,   109,   338,   110,    -1,   319,   109,   134,   264,
     1008     135,   110,    -1,   109,   337,   110,   109,   134,   264,   135,
     1009     110,    -1,   109,   339,   110,    -1,   341,   312,    -1,   342,
     1010      -1,   343,   312,    -1,   344,   312,    -1,    74,    -1,    75,
     1011      -1,   150,   340,    -1,   150,   228,   340,    -1,   109,   342,
     1012     110,    -1,   341,   355,    -1,   109,   342,   110,   355,    -1,
     1013     341,   109,   134,   264,   135,   110,    -1,   109,   342,   110,
     1014     109,   134,   264,   135,   110,    -1,   346,    -1,   347,   312,
     1015      -1,   348,   312,    -1,   150,    -1,   150,   228,    -1,   150,
     1016     345,    -1,   150,   228,   345,    -1,   109,   346,   110,    -1,
     1017     349,    -1,   109,   346,   110,   349,    -1,   109,   347,   110,
     1018     350,    -1,   109,   347,   110,    -1,   109,   134,   264,   135,
     1019     110,    -1,   109,   346,   110,   109,   134,   264,   135,   110,
     1020      -1,   109,   348,   110,    -1,   111,   112,    -1,   111,   112,
     1021     350,    -1,   350,    -1,   111,   134,   165,   135,   112,    -1,
     1022     111,   134,   117,   135,   112,    -1,   350,   111,   134,   165,
     1023     135,   112,    -1,   350,   111,   134,   117,   135,   112,    -1,
     1024     352,    -1,   353,   312,    -1,   354,   312,    -1,   150,    -1,
     1025     150,   228,    -1,   150,   351,    -1,   150,   228,   351,    -1,
     1026     109,   352,   110,    -1,   355,    -1,   109,   352,   110,   355,
     1027      -1,   109,   353,   110,   350,    -1,   109,   353,   110,    -1,
     1028     109,   134,   264,   135,   110,    -1,   109,   352,   110,   109,
     1029     134,   264,   135,   110,    -1,   109,   354,   110,    -1,   356,
     1030      -1,   356,   350,    -1,   350,    -1,   111,   112,    -1,   111,
     1031     134,   228,   117,   135,   112,    -1,   111,   134,   228,   135,
     1032     112,    -1,   111,   134,   228,   165,   135,   112,    -1,   111,
     1033     134,     7,   227,   165,   135,   112,    -1,   111,   134,   228,
     1034       7,   165,   135,   112,    -1,   358,    -1,   359,   312,    -1,
     1035     360,   312,    -1,   150,    -1,   150,   228,    -1,   150,   357,
     1036      -1,   150,   228,   357,    -1,   109,   358,   110,    -1,   349,
     1037      -1,   109,   358,   110,   349,    -1,   109,   359,   110,   350,
     1038      -1,   109,   359,   110,    -1,   109,   358,   110,   109,   134,
     1039     264,   135,   110,    -1,   109,   360,   110,    -1,   362,    -1,
     1040     370,    -1,   228,   370,    -1,   363,    -1,   364,    -1,   150,
     1041     226,    -1,   228,   150,   226,    -1,   150,   371,    -1,   228,
     1042     150,   371,    -1,   150,   361,    -1,   228,   150,   361,    -1,
     1043     111,   112,   226,    -1,   365,   226,    -1,   111,   112,   350,
     1044     226,    -1,   365,   350,   226,    -1,   350,   226,    -1,   111,
     1045     112,   363,    -1,   365,   363,    -1,   111,   112,   350,   363,
     1046      -1,   365,   350,   363,    -1,   350,   363,    -1,   111,   134,
     1047     228,   117,   135,   112,    -1,   111,   134,   228,   165,   135,
     1048     112,    -1,   111,   134,   232,   165,   135,   112,    -1,   111,
     1049     134,   232,   228,   165,   135,   112,    -1,   370,    -1,   228,
     1050     370,    -1,   367,    -1,   368,    -1,   369,    -1,   150,   226,
     1051      -1,   228,   150,   226,    -1,   150,   371,    -1,   228,   150,
     1052     371,    -1,   150,   366,    -1,   228,   150,   366,    -1,   111,
     1053     112,   226,    -1,   111,   112,   350,   226,    -1,   350,   226,
     1054      -1,   111,   112,   368,    -1,   111,   112,   350,   368,    -1,
     1055     350,   368,    -1,   111,   134,   263,   135,   112,    -1,   111,
     1056     112,   109,   260,   110,    -1,   370,   109,   134,   260,   135,
     1057     110,    -1,   219,   109,   134,   260,   135,   110,    -1,    -1,
     1058     116,    -1,    -1,   131,   165,    -1
    10181059};
    10191060
     
    10211062static const yytype_uint16 yyrline[] =
    10221063{
    1023        0,   300,   300,   304,   311,   312,   313,   317,   318,   319,
    1024      323,   324,   328,   329,   333,   334,   338,   342,   343,   354,
    1025      356,   358,   360,   365,   366,   372,   376,   378,   379,   381,
    1026      382,   384,   386,   388,   397,   398,   404,   405,   409,   410,
    1027      414,   418,   420,   422,   424,   429,   432,   434,   436,   441,
    1028      454,   456,   458,   460,   462,   464,   466,   468,   470,   472,
    1029      474,   481,   482,   488,   489,   490,   491,   495,   496,   498,
    1030      503,   504,   506,   508,   513,   514,   516,   521,   522,   524,
    1031      529,   530,   532,   534,   536,   541,   542,   544,   549,   550,
    1032      555,   556,   561,   562,   567,   568,   573,   574,   579,   580,
    1033      583,   585,   590,   595,   596,   598,   604,   605,   609,   610,
    1034      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
    1035      626,   628,   630,   632,   637,   638,   643,   644,   650,   651,
    1036      657,   658,   659,   660,   661,   662,   663,   664,   665,   675,
    1037      682,   684,   694,   695,   700,   702,   708,   710,   714,   715,
    1038      720,   725,   728,   730,   732,   742,   744,   755,   756,   758,
    1039      762,   764,   768,   769,   774,   775,   779,   784,   785,   789,
    1040      791,   797,   798,   802,   804,   806,   808,   814,   815,   819,
    1041      821,   826,   828,   830,   835,   837,   842,   844,   848,   851,
    1042      855,   858,   862,   864,   866,   868,   873,   875,   877,   882,
    1043      884,   886,   888,   890,   895,   897,   899,   901,   906,   918,
    1044      919,   924,   926,   931,   935,   937,   939,   941,   943,   949,
    1045      950,   956,   957,   961,   962,   967,   969,   975,   976,   978,
    1046      983,   988,   998,  1000,  1004,  1005,  1010,  1012,  1016,  1017,
    1047     1021,  1023,  1027,  1028,  1032,  1033,  1037,  1038,  1053,  1054,
    1048     1055,  1056,  1057,  1061,  1066,  1073,  1083,  1088,  1093,  1101,
    1049     1106,  1111,  1116,  1121,  1129,  1151,  1156,  1163,  1165,  1172,
    1050     1177,  1182,  1193,  1198,  1203,  1208,  1213,  1222,  1227,  1235,
    1051     1236,  1237,  1238,  1244,  1249,  1257,  1258,  1259,  1260,  1264,
    1052     1265,  1266,  1267,  1272,  1273,  1282,  1283,  1288,  1289,  1294,
    1053     1296,  1298,  1300,  1302,  1305,  1304,  1316,  1317,  1319,  1329,
    1054     1330,  1335,  1337,  1339,  1341,  1343,  1346,  1348,  1351,  1356,
    1055     1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,  1374,  1376,
    1056     1378,  1380,  1386,  1387,  1389,  1391,  1393,  1398,  1399,  1405,
    1057     1406,  1408,  1410,  1415,  1417,  1419,  1421,  1426,  1427,  1429,
    1058     1431,  1436,  1437,  1439,  1444,  1445,  1447,  1449,  1454,  1456,
    1059     1458,  1463,  1464,  1468,  1470,  1476,  1475,  1479,  1481,  1486,
    1060     1488,  1494,  1495,  1500,  1501,  1503,  1504,  1513,  1514,  1516,
    1061     1518,  1523,  1525,  1531,  1532,  1534,  1537,  1540,  1545,  1546,
    1062     1551,  1556,  1560,  1562,  1568,  1567,  1574,  1576,  1582,  1583,
    1063     1591,  1592,  1596,  1597,  1598,  1600,  1602,  1609,  1610,  1612,
    1064     1614,  1619,  1620,  1626,  1627,  1631,  1632,  1637,  1638,  1639,
    1065     1641,  1649,  1650,  1652,  1655,  1657,  1661,  1662,  1663,  1665,
    1066     1667,  1671,  1676,  1684,  1685,  1694,  1696,  1701,  1702,  1703,
    1067     1707,  1708,  1709,  1713,  1714,  1715,  1719,  1720,  1721,  1726,
    1068     1727,  1728,  1729,  1735,  1736,  1738,  1743,  1744,  1749,  1750,
    1069     1751,  1752,  1753,  1768,  1769,  1774,  1775,  1781,  1783,  1786,
    1070     1788,  1790,  1813,  1814,  1816,  1818,  1823,  1824,  1826,  1831,
    1071     1836,  1837,  1843,  1842,  1846,  1850,  1852,  1854,  1860,  1861,
    1072     1866,  1871,  1873,  1878,  1880,  1881,  1883,  1888,  1890,  1892,
    1073     1897,  1899,  1904,  1909,  1917,  1923,  1922,  1936,  1937,  1942,
    1074     1943,  1947,  1952,  1957,  1965,  1970,  1981,  1982,  1987,  1988,
    1075     1994,  1995,  1999,  2000,  2001,  2004,  2003,  2014,  2023,  2029,
    1076     2035,  2044,  2050,  2056,  2062,  2068,  2076,  2082,  2090,  2096,
    1077     2105,  2106,  2107,  2111,  2115,  2117,  2122,  2123,  2127,  2128,
    1078     2133,  2139,  2140,  2143,  2145,  2146,  2150,  2151,  2152,  2153,
    1079     2187,  2189,  2190,  2192,  2197,  2202,  2207,  2209,  2211,  2216,
    1080     2218,  2220,  2222,  2227,  2229,  2238,  2240,  2241,  2246,  2248,
    1081     2250,  2255,  2257,  2259,  2264,  2266,  2268,  2277,  2278,  2279,
    1082     2283,  2285,  2287,  2292,  2294,  2296,  2301,  2303,  2305,  2320,
    1083     2322,  2323,  2325,  2330,  2331,  2336,  2338,  2340,  2345,  2347,
    1084     2349,  2351,  2356,  2358,  2360,  2370,  2372,  2373,  2375,  2380,
    1085     2382,  2384,  2389,  2391,  2393,  2395,  2400,  2402,  2404,  2435,
    1086     2437,  2438,  2440,  2445,  2450,  2458,  2460,  2462,  2467,  2469,
    1087     2474,  2476,  2490,  2491,  2493,  2498,  2500,  2502,  2504,  2506,
    1088     2511,  2512,  2514,  2516,  2521,  2523,  2525,  2531,  2533,  2535,
    1089     2539,  2541,  2543,  2545,  2559,  2560,  2562,  2567,  2569,  2571,
    1090     2573,  2575,  2580,  2581,  2583,  2585,  2590,  2592,  2594,  2600,
    1091     2601,  2603,  2612,  2615,  2617,  2620,  2622,  2624,  2637,  2638,
    1092     2640,  2645,  2647,  2649,  2651,  2653,  2658,  2659,  2661,  2663,
    1093     2668,  2670,  2678,  2679,  2680,  2685,  2686,  2690,  2692,  2694,
    1094     2696,  2698,  2700,  2707,  2709,  2711,  2713,  2715,  2717,  2719,
    1095     2721,  2723,  2725,  2730,  2732,  2734,  2739,  2765,  2766,  2768,
    1096     2772,  2773,  2777,  2779,  2781,  2783,  2785,  2787,  2794,  2796,
    1097     2798,  2800,  2802,  2804,  2809,  2814,  2816,  2818,  2836,  2838,
    1098     2843,  2844
     1064       0,   341,   341,   345,   352,   353,   354,   358,   359,   360,
     1065     364,   365,   369,   370,   374,   375,   379,   383,   384,   395,
     1066     397,   399,   401,   406,   407,   413,   417,   419,   420,   422,
     1067     423,   425,   427,   429,   438,   439,   445,   446,   450,   451,
     1068     455,   459,   461,   463,   465,   470,   473,   475,   477,   482,
     1069     495,   497,   499,   501,   503,   505,   507,   509,   511,   513,
     1070     515,   522,   523,   529,   530,   531,   532,   536,   537,   539,
     1071     544,   545,   547,   549,   554,   555,   557,   562,   563,   565,
     1072     570,   571,   573,   575,   577,   582,   583,   585,   590,   591,
     1073     596,   597,   602,   603,   608,   609,   614,   615,   620,   621,
     1074     624,   626,   631,   636,   637,   639,   645,   646,   650,   651,
     1075     652,   653,   654,   655,   656,   657,   658,   659,   660,   666,
     1076     668,   670,   672,   677,   678,   683,   684,   690,   691,   697,
     1077     698,   699,   700,   701,   702,   703,   704,   705,   715,   722,
     1078     724,   734,   735,   740,   742,   748,   750,   754,   755,   760,
     1079     765,   768,   770,   772,   782,   784,   795,   796,   798,   802,
     1080     804,   808,   809,   814,   815,   819,   824,   825,   829,   831,
     1081     837,   838,   842,   844,   846,   848,   854,   855,   859,   861,
     1082     866,   868,   870,   875,   877,   882,   884,   888,   891,   895,
     1083     898,   902,   904,   906,   908,   913,   915,   917,   922,   924,
     1084     926,   928,   930,   935,   937,   939,   941,   946,   958,   959,
     1085     964,   966,   971,   975,   977,   979,   981,   983,   989,   990,
     1086     996,   997,  1001,  1002,  1007,  1009,  1015,  1016,  1018,  1023,
     1087    1028,  1038,  1040,  1044,  1045,  1050,  1052,  1056,  1057,  1061,
     1088    1063,  1067,  1068,  1072,  1073,  1077,  1078,  1093,  1094,  1095,
     1089    1096,  1097,  1101,  1106,  1113,  1123,  1128,  1133,  1141,  1146,
     1090    1151,  1156,  1161,  1169,  1191,  1196,  1203,  1205,  1212,  1217,
     1091    1222,  1233,  1238,  1243,  1248,  1253,  1262,  1267,  1275,  1276,
     1092    1277,  1278,  1284,  1289,  1297,  1298,  1299,  1300,  1304,  1305,
     1093    1306,  1307,  1312,  1313,  1322,  1323,  1328,  1329,  1334,  1336,
     1094    1338,  1340,  1342,  1345,  1344,  1356,  1357,  1359,  1369,  1370,
     1095    1375,  1377,  1379,  1381,  1383,  1385,  1387,  1389,  1394,  1396,
     1096    1398,  1400,  1402,  1404,  1406,  1408,  1410,  1412,  1414,  1416,
     1097    1418,  1424,  1425,  1427,  1429,  1431,  1436,  1437,  1443,  1444,
     1098    1446,  1448,  1453,  1455,  1457,  1459,  1464,  1465,  1467,  1469,
     1099    1474,  1475,  1477,  1482,  1483,  1485,  1487,  1492,  1494,  1496,
     1100    1501,  1502,  1506,  1508,  1514,  1513,  1517,  1519,  1524,  1526,
     1101    1532,  1533,  1538,  1539,  1541,  1542,  1551,  1552,  1554,  1556,
     1102    1561,  1563,  1569,  1570,  1572,  1575,  1578,  1583,  1584,  1589,
     1103    1594,  1598,  1600,  1606,  1605,  1612,  1614,  1620,  1621,  1629,
     1104    1630,  1634,  1635,  1636,  1638,  1640,  1647,  1648,  1650,  1652,
     1105    1657,  1658,  1664,  1665,  1669,  1670,  1675,  1676,  1677,  1679,
     1106    1687,  1688,  1690,  1693,  1695,  1699,  1700,  1701,  1703,  1705,
     1107    1709,  1714,  1722,  1723,  1732,  1734,  1739,  1740,  1741,  1745,
     1108    1746,  1747,  1751,  1752,  1753,  1757,  1758,  1759,  1764,  1765,
     1109    1766,  1767,  1773,  1774,  1776,  1781,  1782,  1787,  1788,  1789,
     1110    1790,  1791,  1806,  1807,  1812,  1813,  1819,  1821,  1824,  1826,
     1111    1828,  1851,  1852,  1854,  1856,  1861,  1862,  1864,  1869,  1874,
     1112    1875,  1881,  1880,  1884,  1888,  1890,  1892,  1898,  1899,  1904,
     1113    1909,  1911,  1916,  1918,  1919,  1921,  1926,  1928,  1930,  1935,
     1114    1937,  1942,  1947,  1955,  1961,  1960,  1974,  1975,  1980,  1981,
     1115    1985,  1990,  1995,  2003,  2008,  2019,  2020,  2025,  2026,  2032,
     1116    2033,  2037,  2038,  2039,  2042,  2041,  2052,  2061,  2067,  2073,
     1117    2082,  2088,  2094,  2100,  2106,  2114,  2120,  2128,  2134,  2143,
     1118    2144,  2145,  2149,  2153,  2155,  2160,  2161,  2165,  2166,  2171,
     1119    2177,  2178,  2181,  2183,  2184,  2188,  2189,  2190,  2191,  2225,
     1120    2227,  2228,  2230,  2235,  2240,  2245,  2247,  2249,  2254,  2256,
     1121    2258,  2260,  2265,  2267,  2276,  2278,  2279,  2284,  2286,  2288,
     1122    2293,  2295,  2297,  2302,  2304,  2306,  2315,  2316,  2317,  2321,
     1123    2323,  2325,  2330,  2332,  2334,  2339,  2341,  2343,  2358,  2360,
     1124    2361,  2363,  2368,  2369,  2374,  2376,  2378,  2383,  2385,  2387,
     1125    2389,  2394,  2396,  2398,  2408,  2410,  2411,  2413,  2418,  2420,
     1126    2422,  2427,  2429,  2431,  2433,  2438,  2440,  2442,  2473,  2475,
     1127    2476,  2478,  2483,  2488,  2496,  2498,  2500,  2505,  2507,  2512,
     1128    2514,  2528,  2529,  2531,  2536,  2538,  2540,  2542,  2544,  2549,
     1129    2550,  2552,  2554,  2559,  2561,  2563,  2569,  2571,  2573,  2577,
     1130    2579,  2581,  2583,  2597,  2598,  2600,  2605,  2607,  2609,  2611,
     1131    2613,  2618,  2619,  2621,  2623,  2628,  2630,  2632,  2638,  2639,
     1132    2641,  2650,  2653,  2655,  2658,  2660,  2662,  2675,  2676,  2678,
     1133    2683,  2685,  2687,  2689,  2691,  2696,  2697,  2699,  2701,  2706,
     1134    2708,  2716,  2717,  2718,  2723,  2724,  2728,  2730,  2732,  2734,
     1135    2736,  2738,  2745,  2747,  2749,  2751,  2753,  2755,  2757,  2759,
     1136    2761,  2763,  2768,  2770,  2772,  2777,  2803,  2804,  2806,  2810,
     1137    2811,  2815,  2817,  2819,  2821,  2823,  2825,  2832,  2834,  2836,
     1138    2838,  2840,  2842,  2847,  2852,  2854,  2856,  2874,  2876,  2881,
     1139    2882
    10991140};
    11001141#endif
     
    12491290     159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
    12501291     163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
    1251      167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
    1252      168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
    1253      172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
    1254      174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
    1255      178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
    1256      181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
    1257      186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
    1258      190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
    1259      193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
    1260      195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
    1261      198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
    1262      200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
    1263      205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
    1264      210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
    1265      214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
    1266      217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
    1267      220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
    1268      223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
    1269      226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
    1270      230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
    1271      233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
     1292     167,   167,   167,   167,   167,   167,   167,   167,   167,   168,
     1293     168,   168,   168,   169,   169,   170,   170,   171,   171,   172,
     1294     172,   172,   172,   172,   172,   172,   172,   172,   173,   174,
     1295     174,   175,   175,   176,   176,   176,   176,   177,   177,   178,
     1296     179,   179,   179,   179,   179,   179,   180,   180,   180,   181,
     1297     181,   182,   182,   183,   183,   184,   185,   185,   186,   186,
     1298     187,   187,   188,   188,   188,   188,   189,   189,   190,   190,
     1299     191,   191,   191,   192,   192,   193,   193,   193,   193,   193,
     1300     193,   193,   193,   193,   193,   194,   194,   194,   195,   195,
     1301     195,   195,   195,   196,   196,   196,   196,   197,   198,   198,
     1302     198,   198,   198,   199,   199,   199,   199,   199,   200,   200,
     1303     201,   201,   202,   202,   203,   203,   204,   204,   204,   205,
     1304     205,   206,   206,   207,   207,   208,   208,   209,   209,   210,
     1305     210,   211,   211,   212,   212,   213,   213,   214,   214,   214,
     1306     214,   214,   215,   215,   215,   216,   216,   216,   217,   217,
     1307     217,   217,   217,   218,   218,   218,   219,   219,   220,   220,
     1308     220,   221,   221,   221,   221,   221,   222,   222,   223,   223,
     1309     223,   223,   224,   224,   225,   225,   225,   225,   226,   226,
     1310     226,   226,   227,   227,   228,   228,   229,   229,   230,   230,
     1311     230,   230,   230,   231,   230,   232,   232,   232,   233,   233,
     1312     234,   234,   234,   234,   234,   234,   234,   234,   235,   235,
    12721313     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
    1273      235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
    1274      238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
    1275      240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
    1276      243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
    1277      247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
    1278      250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
    1279      254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
    1280      260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
    1281      262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
    1282      266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
    1283      268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
    1284      273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
    1285      276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
    1286      279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
    1287      282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
    1288      286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
    1289      291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
    1290      294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
    1291      299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
    1292      304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
    1293      307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
    1294      309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
    1295      314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
    1296      318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
    1297      321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
    1298      324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
    1299      328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
    1300      331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
    1301      334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
    1302      337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
    1303      340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
    1304      344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
    1305      347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
    1306      350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
    1307      352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
    1308      355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
    1309      357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
    1310      360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
    1311      363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
    1312      364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
    1313      367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
    1314      369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
    1315      373,   373
     1314     235,   236,   236,   236,   236,   236,   237,   237,   238,   238,
     1315     238,   238,   239,   239,   239,   239,   240,   240,   240,   240,
     1316     241,   241,   241,   242,   242,   242,   242,   243,   243,   243,
     1317     244,   244,   245,   245,   246,   245,   245,   245,   247,   247,
     1318     248,   248,   249,   249,   249,   249,   250,   250,   250,   250,
     1319     251,   251,   252,   252,   252,   252,   252,   253,   253,   254,
     1320     255,   256,   256,   257,   256,   258,   258,   259,   259,   260,
     1321     260,   261,   261,   261,   261,   261,   262,   262,   262,   262,
     1322     263,   263,   264,   264,   265,   265,   266,   266,   266,   266,
     1323     267,   267,   267,   267,   267,   268,   268,   268,   268,   268,
     1324     269,   269,   270,   270,   271,   271,   272,   272,   272,   273,
     1325     273,   273,   274,   274,   274,   275,   275,   275,   276,   276,
     1326     276,   276,   277,   277,   277,   278,   278,   279,   279,   279,
     1327     279,   279,   280,   280,   281,   281,   282,   282,   282,   282,
     1328     282,   283,   283,   283,   283,   284,   284,   284,   285,   286,
     1329     286,   288,   287,   287,   289,   289,   289,   290,   290,   291,
     1330     291,   291,   292,   292,   292,   292,   293,   293,   293,   294,
     1331     294,   295,   295,   296,   297,   296,   298,   298,   299,   299,
     1332     300,   300,   300,   301,   301,   302,   302,   303,   303,   304,
     1333     304,   305,   305,   305,   306,   305,   305,   307,   307,   307,
     1334     308,   308,   308,   308,   308,   308,   308,   308,   308,   309,
     1335     309,   309,   310,   311,   311,   312,   312,   313,   313,   314,
     1336     315,   315,   316,   316,   316,   317,   317,   317,   317,   318,
     1337     318,   318,   318,   319,   319,   320,   320,   320,   321,   321,
     1338     321,   321,   322,   322,   323,   323,   323,   324,   324,   324,
     1339     325,   325,   325,   326,   326,   326,   327,   327,   327,   328,
     1340     328,   328,   329,   329,   329,   330,   330,   330,   331,   331,
     1341     331,   331,   332,   332,   333,   333,   333,   334,   334,   334,
     1342     334,   335,   335,   335,   336,   336,   336,   336,   337,   337,
     1343     337,   338,   338,   338,   338,   339,   339,   339,   340,   340,
     1344     340,   340,   341,   341,   342,   342,   342,   343,   343,   344,
     1345     344,   345,   345,   345,   346,   346,   346,   346,   346,   347,
     1346     347,   347,   347,   348,   348,   348,   349,   349,   349,   350,
     1347     350,   350,   350,   351,   351,   351,   352,   352,   352,   352,
     1348     352,   353,   353,   353,   353,   354,   354,   354,   355,   355,
     1349     355,   356,   356,   356,   356,   356,   356,   357,   357,   357,
     1350     358,   358,   358,   358,   358,   359,   359,   359,   359,   360,
     1351     360,   361,   361,   361,   362,   362,   363,   363,   363,   363,
     1352     363,   363,   364,   364,   364,   364,   364,   364,   364,   364,
     1353     364,   364,   365,   365,   365,   365,   366,   366,   366,   367,
     1354     367,   368,   368,   368,   368,   368,   368,   369,   369,   369,
     1355     369,   369,   369,   370,   371,   371,   371,   372,   372,   373,
     1356     373
    13161357};
    13171358
     
    13301371       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
    13311372       4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
     1373       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
     1374       5,     6,     7,     1,     3,     1,     3,     0,     1,     1,
     1375       1,     1,     1,     1,     1,     1,     1,     6,     4,     2,
     1376       7,     1,     3,     1,     2,     1,     2,     1,     2,     2,
     1377       5,     7,     5,     9,     5,     9,     1,     3,     1,     1,
     1378       3,     3,     2,     1,     2,     2,     0,     1,     2,     3,
     1379       0,     1,     2,     3,     3,     4,     0,     1,     1,     2,
     1380       5,     7,     6,     6,     4,     3,     4,     2,     3,     2,
     1381       3,     3,     3,     3,     5,     3,     3,     4,     1,     5,
     1382       6,     5,     6,     9,    10,     9,    10,     2,     1,     2,
     1383       2,     2,     1,     6,     8,    10,    12,    14,     0,     1,
     1384       0,     1,     1,     3,     4,     7,     0,     1,     3,     1,
     1385       3,     1,     1,     1,     3,     1,     1,     1,     3,     0,
     1386       1,     3,     4,     1,     3,     1,     1,     3,     3,     3,
     1387       3,     3,     2,     3,     6,     3,     3,     4,     1,     2,
     1388       2,     3,     5,     8,     7,     7,     5,     9,     2,     2,
     1389       5,     3,     5,     4,     3,     4,     4,     7,     3,     3,
     1390       3,     3,     4,     6,     1,     1,     1,     1,     1,     1,
     1391       1,     1,     0,     1,     1,     2,     1,     1,     1,     1,
     1392       1,     1,     1,     0,     5,     1,     2,     3,     1,     2,
    13321393       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1333        2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
    1334        1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
    1335        2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
    1336        2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
    1337        1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
    1338        3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
    1339        2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
    1340        2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
    1341        5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
    1342        2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
    1343        1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
    1344        1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
    1345        0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
    1346        3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
    1347        2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
    1348        2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
    1349        3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
    1350        1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
    1351        1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
    1352        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    13531394       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1354        1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
    1355        2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
    1356        3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
    1357        2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
    1358        2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
    1359        2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
    1360        2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
    1361        0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
    1362        9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
    1363        5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
    1364        1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
    1365        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1366        1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
    1367        2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
    1368        7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
    1369        2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
    1370        5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
    1371        2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
    1372        3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
    1373        0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
    1374        4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
    1375        1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
    1376        6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
    1377        2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
    1378        4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
    1379        3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
    1380        4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
     1395       1,     1,     2,     2,     3,     3,     1,     3,     1,     2,
     1396       2,     2,     4,     4,     4,     4,     1,     2,     2,     3,
     1397       1,     2,     2,     1,     2,     2,     3,     1,     2,     2,
     1398       1,     1,     4,     2,     0,     6,     7,     2,     2,     2,
     1399       0,     2,     2,     3,     2,     3,     1,     2,     3,     2,
     1400       2,     4,     0,     1,     2,     2,     1,     0,     1,     2,
     1401       2,     5,     2,     0,     7,     2,     4,     0,     2,     0,
     1402       1,     1,     1,     5,     5,     5,     1,     5,     5,     9,
     1403       1,     5,     0,     1,     1,     5,     1,     1,     5,     5,
     1404       1,     3,     3,     4,     1,     1,     1,     1,     2,     1,
     1405       3,     3,     1,     2,     1,     3,     1,     1,     1,     1,
     1406       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     1407       1,     2,     0,     2,     2,     1,     4,     0,     1,     2,
     1408       3,     4,     2,     2,     1,     2,     2,     5,     5,     7,
     1409       6,     1,     2,     2,     3,     1,     2,     2,     4,     2,
     1410       4,     0,     4,     2,     1,     1,     1,     0,     2,     5,
     1411       5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
     1412       4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
     1413       1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
     1414       1,     1,     1,     1,     0,     6,     2,     1,     2,     4,
     1415       2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
     1416       1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
     1417       1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
    13811418       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
    1382        4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
    1383        3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
    1384        1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
    1385        6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
    1386        1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
    1387        5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
    1388        3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
    1389        2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
    1390        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    1391        8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
    1392        3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
    1393        4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
    1394        1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
    1395        2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
    1396        0,     2
     1419       4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
     1420       2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
     1421       6,     3,     2,     3,     3,     4,     4,     3,     2,     1,
     1422       2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
     1423       3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
     1424       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1425       2,     2,     1,     1,     2,     3,     3,     2,     4,     6,
     1426       8,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     1427       4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
     1428       5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
     1429       3,     1,     4,     4,     3,     5,     8,     3,     1,     2,
     1430       1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
     1431       1,     2,     2,     3,     3,     1,     4,     4,     3,     8,
     1432       3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
     1433       2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
     1434       3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
     1435       1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
     1436       3,     4,     2,     5,     5,     6,     6,     0,     1,     0,
     1437       2
    13971438};
    13981439
     
    14021443static const yytype_uint16 yydefact[] =
    14031444{
    1404      293,   293,   313,   311,   314,   312,   315,   316,   299,   301,
    1405      300,     0,   302,   327,   319,   324,   322,   323,   321,   320,
    1406      325,   326,   331,   328,   329,   330,   546,   546,   546,     0,
    1407        0,     0,   293,   219,   303,   317,   318,     7,   358,     0,
    1408        8,    14,    15,     0,     2,    61,    62,   564,     9,   293,
    1409      524,   522,   246,     3,   453,     3,   259,     0,     3,     3,
    1410        3,   247,     3,     0,     0,     0,   294,   295,   297,   293,
    1411      306,   309,   339,   285,   332,   337,   286,   347,   287,   354,
    1412      351,   361,     0,     0,   362,   288,   472,   476,     3,     3,
    1413        0,     2,   518,   523,   528,   298,     0,     0,   546,   576,
    1414      546,     2,   587,   588,   589,   293,     0,   730,   731,     0,
    1415       12,     0,    13,   293,   269,   270,     0,   294,   289,   290,
    1416      291,   292,   525,   304,   391,   547,   548,   369,   370,    12,
    1417      444,   445,    11,   440,   443,     0,   502,   497,   488,   444,
    1418      445,     0,     0,   527,   220,     0,   293,     0,     0,     0,
    1419        0,     0,     0,     0,     0,   293,   293,     2,     0,   732,
    1420      294,   581,   593,   736,   729,   727,   734,     0,     0,     0,
    1421      253,     2,     0,   531,   438,   439,   437,     0,     0,     0,
    1422        0,   546,     0,   633,   634,     0,     0,   544,   540,   546,
    1423      561,   546,   546,   542,     2,   541,   546,   600,   546,   546,
    1424      603,     0,     0,     0,   293,   293,   311,   359,     2,   293,
    1425      260,   296,   307,   340,   352,   477,     0,     2,     0,   453,
    1426      261,   294,   333,   348,   355,   473,     0,     2,     0,   310,
    1427      334,   341,   342,     0,   349,   353,   356,   360,   445,   293,
    1428      371,   364,   368,     0,   393,   474,   478,     0,     0,     0,
    1429        1,   293,     2,   529,   575,   577,   293,     2,   740,   294,
    1430      743,   544,   544,     0,   294,     0,     0,   272,   546,   542,
    1431        2,   293,     0,     0,   293,   549,     2,   500,     2,   553,
     1445     292,   292,   312,   310,   313,   311,   314,   315,   298,   300,
     1446     299,     0,   301,   326,   318,   323,   321,   322,   320,   319,
     1447     324,   325,   330,   327,   328,   329,   545,   545,   545,     0,
     1448       0,     0,   292,   218,   302,   316,   317,     7,   357,     0,
     1449       8,    14,    15,     0,     2,    61,    62,   563,     9,   292,
     1450     523,   521,   245,     3,   452,     3,   258,     0,     3,     3,
     1451       3,   246,     3,     0,     0,     0,   293,   294,   296,   292,
     1452     305,   308,   338,   284,   331,   336,   285,   346,   286,   353,
     1453     350,   360,     0,     0,   361,   287,   471,   475,     3,     3,
     1454       0,     2,   517,   522,   527,   297,     0,     0,   545,   575,
     1455     545,     2,   586,   587,   588,   292,     0,   729,   730,     0,
     1456      12,     0,    13,   292,   268,   269,     0,   293,   288,   289,
     1457     290,   291,   524,   303,   390,   546,   547,   368,   369,    12,
     1458     443,   444,    11,   439,   442,     0,   501,   496,   487,   443,
     1459     444,     0,     0,   526,   219,     0,   292,     0,     0,     0,
     1460       0,     0,     0,     0,     0,   292,   292,     2,     0,   731,
     1461     293,   580,   592,   735,   728,   726,   733,     0,     0,     0,
     1462     252,     2,     0,   530,   437,   438,   436,     0,     0,     0,
     1463       0,   545,     0,   632,   633,     0,     0,   543,   539,   545,
     1464     560,   545,   545,   541,     2,   540,   545,   599,   545,   545,
     1465     602,     0,     0,     0,   292,   292,   310,   358,     2,   292,
     1466     259,   295,   306,   339,   351,   476,     0,     2,     0,   452,
     1467     260,   293,   332,   347,   354,   472,     0,     2,     0,   309,
     1468     333,   340,   341,     0,   348,   352,   355,   359,   444,   292,
     1469     370,   363,   367,     0,   392,   473,   477,     0,     0,     0,
     1470       1,   292,     2,   528,   574,   576,   292,     2,   739,   293,
     1471     742,   543,   543,     0,   293,     0,     0,   271,   545,   541,
     1472       2,   292,     0,     0,   292,   548,     2,   499,     2,   552,
    14321473       0,     0,     0,     0,     0,     0,    19,    58,     4,     5,
    1433        6,    17,     0,     0,   293,     2,    63,    64,    65,    66,
    1434       46,    20,    47,    16,    23,    45,    67,   293,     0,    70,
     1474       6,    17,     0,     0,   292,     2,    63,    64,    65,    66,
     1475      46,    20,    47,    16,    23,    45,    67,   292,     0,    70,
    14351476      74,    77,    80,    85,    88,    90,    92,    94,    96,    98,
    1436      103,   494,   750,   451,   493,     0,   449,   450,     0,   565,
    1437      580,   583,   586,   592,   595,   598,   358,     0,     2,   738,
    1438        0,   293,   741,     2,    61,   293,     3,   425,     0,   433,
    1439      294,   293,   306,   332,   286,   347,   354,     3,     3,   407,
    1440      411,   421,   426,   472,   293,   427,   705,   706,   293,   428,
    1441      430,   293,     2,   582,   594,   728,     2,     2,   248,     2,
    1442      458,     0,   456,   455,   454,   140,     2,     2,   250,     2,
    1443        2,   249,     2,   280,     2,   281,     0,   279,     0,     0,
    1444        0,     0,     0,     0,     0,     0,     0,   566,   605,     0,
    1445      453,     2,   560,   569,   659,   562,   563,   532,   293,     2,
    1446      599,   608,   601,   602,     0,   275,   293,   293,   338,   294,
    1447        0,   294,     0,   293,   733,   737,   735,   533,   293,   544,
    1448      254,   262,   308,     0,     2,   534,   293,   498,   335,   336,
    1449      282,   350,   357,     0,   293,     0,   748,   398,     0,   475,
    1450      499,   251,   252,   519,   293,   435,     0,   293,   236,     0,
    1451        2,   238,     0,   294,     0,   256,     2,   257,   277,     0,
    1452        0,     2,   293,   544,   293,   485,   487,   486,     0,     0,
    1453      750,     0,   293,     0,   293,   489,   293,   559,   557,   558,
    1454      556,     0,   551,   554,     0,     0,   293,    53,   293,    67,
    1455       48,   293,    55,   293,   293,    51,    52,     2,   126,     0,
    1456        0,   447,     0,   446,   727,   120,   293,    18,     0,    30,
    1457       31,    36,     2,     0,    36,   110,   111,   112,   113,   114,
    1458      115,   116,   117,   118,   119,   109,   108,     0,    49,    50,
     1477     103,   493,   749,   450,   492,     0,   448,   449,     0,   564,
     1478     579,   582,   585,   591,   594,   597,   357,     0,     2,   737,
     1479       0,   292,   740,     2,    61,   292,     3,   424,     0,   432,
     1480     293,   292,   305,   331,   285,   346,   353,     3,     3,   406,
     1481     410,   420,   425,   471,   292,   426,   704,   705,   292,   427,
     1482     429,   292,     2,   581,   593,   727,     2,     2,   247,     2,
     1483     457,     0,   455,   454,   453,   139,     2,     2,   249,     2,
     1484       2,   248,     2,   279,     2,   280,     0,   278,     0,     0,
     1485       0,     0,     0,     0,     0,     0,     0,   565,   604,     0,
     1486     452,     2,   559,   568,   658,   561,   562,   531,   292,     2,
     1487     598,   607,   600,   601,     0,   274,   292,   292,   337,   293,
     1488       0,   293,     0,   292,   732,   736,   734,   532,   292,   543,
     1489     253,   261,   307,     0,     2,   533,   292,   497,   334,   335,
     1490     281,   349,   356,     0,   292,     0,   747,   397,     0,   474,
     1491     498,   250,   251,   518,   292,   434,     0,   292,   235,     0,
     1492       2,   237,     0,   293,     0,   255,     2,   256,   276,     0,
     1493       0,     2,   292,   543,   292,   484,   486,   485,     0,     0,
     1494     749,     0,   292,     0,   292,   488,   292,   558,   556,   557,
     1495     555,     0,   550,   553,     0,     0,   292,    53,   292,    67,
     1496      48,   292,    55,   292,   292,    51,    52,     2,   125,     0,
     1497       0,   446,     0,   445,   726,   119,   292,    18,     0,    30,
     1498      31,    36,     2,     0,    36,   109,   110,   111,   112,   113,
     1499     114,   115,   116,   117,   118,   108,     0,    49,    50,     0,
    14591500       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1460        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1461      105,     2,   645,   452,   642,   546,   546,   650,   479,   293,
    1462        2,   584,   585,     0,   596,   597,     0,     2,   739,   742,
    1463      120,   293,     0,     2,   707,   294,   711,   702,   703,   709,
    1464        0,     2,     2,   667,   546,   750,   616,   546,   546,   750,
    1465      546,   630,   546,   546,   681,   434,   664,   546,   546,   672,
    1466      679,   293,   429,   294,     0,     0,   293,   717,   294,   722,
    1467      750,   714,   293,   719,   750,   293,   293,   293,     0,   120,
    1468        0,    19,     2,     0,    20,     0,   459,   748,     0,     0,
    1469      465,   240,     0,   293,     0,     0,     0,   544,   568,   572,
    1470      574,   604,   607,   611,   614,   567,   606,     0,   283,   657,
    1471        0,   293,   276,     0,     0,     0,     0,   274,     2,     0,
    1472      258,   535,   293,     0,     0,   293,     2,   363,   383,   372,
    1473        0,     0,   377,   371,   749,     0,     0,   396,     0,   294,
    1474        3,   414,     3,   418,   417,   590,     0,   530,   293,    61,
    1475        3,   293,   433,   294,     3,   427,   428,     2,     0,     0,
    1476        0,   484,   305,   293,   480,   482,     3,     2,     2,     0,
    1477      501,     3,     0,   553,   128,     0,     0,   221,     0,     0,
    1478        0,     0,    37,     0,     0,   120,   293,    21,     0,    22,
    1479        0,   691,   696,   448,   688,   546,   546,     0,   106,     3,
    1480        2,    28,     0,    34,     0,     2,    26,     0,   104,    71,
    1481       72,    73,    75,    76,    78,    79,    83,    84,    81,    82,
    1482       86,    87,    89,    91,    93,    95,    97,     0,     0,   751,
    1483      293,     0,     0,     0,   646,   647,   643,   644,   496,   495,
    1484      293,     0,   293,   713,   293,   718,   294,   293,   661,   293,
    1485      293,   704,   660,     2,   293,     0,     0,     0,     0,     0,
    1486        0,     0,     0,   682,     0,   668,   619,   635,   669,     2,
    1487      615,   622,   431,   617,   618,   432,     2,   629,   638,   631,
    1488      632,   665,   666,   680,   708,   712,   710,   750,   267,     2,
    1489      744,     2,   422,   716,   721,   423,     0,   401,     3,     3,
    1490        3,     3,   453,     3,     0,     2,   467,   464,   749,     0,
    1491      460,     2,   463,   466,     0,   293,   241,   263,     3,   271,
    1492      273,     0,   453,     2,   570,   571,     2,   609,   610,     0,
    1493      658,   536,     3,   344,   343,   346,   345,   293,   537,     0,
    1494      538,   371,     0,     0,   293,   293,     0,     0,   691,   381,
    1495      384,   388,   546,   388,   387,   380,   373,   546,   375,   378,
    1496      293,   398,   392,   102,   399,   748,     0,     0,   436,   239,
    1497        0,     0,     3,     2,   667,   429,     0,   526,     0,   750,
    1498      488,     0,   293,   293,   293,     0,   550,   552,   129,     0,
    1499        0,   214,     0,     0,     0,   222,   223,    54,     0,    56,
    1500       59,    60,     0,     2,   127,     0,     0,     0,   692,   693,
    1501      689,   690,   458,    68,    69,   107,   124,     3,   106,     0,
    1502        0,    25,    36,     3,     0,    33,   100,     0,     3,   649,
    1503      653,   656,   648,     3,   591,     3,   715,   720,     2,    61,
    1504      293,     3,     3,   294,     0,     3,   621,   625,   628,   637,
    1505      671,   675,   678,   293,     3,   620,   636,   670,   293,   293,
    1506      424,   293,   293,   745,     0,     0,     0,     0,   255,     0,
    1507      102,     0,     3,     3,     0,   461,     0,   457,     0,     0,
    1508      244,   293,     0,     0,   128,     0,     0,     0,     0,     0,
    1509      128,     0,     0,   106,   106,    19,     2,     0,     0,     3,
    1510      130,   131,     2,   142,   132,   133,   134,   135,   136,   137,
    1511      144,   146,     0,     0,     0,   284,   293,   293,   546,     0,
    1512      539,   293,   374,   376,     0,   390,   692,   385,   389,   386,
    1513      379,   383,   366,   397,     0,   578,     2,   663,   662,     0,
    1514      668,     2,   481,   483,   503,     3,   511,   512,     0,     2,
    1515      507,     3,     3,     0,     0,   555,   221,     0,     0,     0,
    1516      221,     0,     0,   120,   695,   699,   701,   694,   748,   106,
    1517        0,     3,   660,    40,     3,    38,    35,     0,     3,    99,
    1518      101,     0,     2,   651,   652,     0,     0,   293,     0,     0,
    1519        0,     3,   637,     0,     2,   623,   624,     2,   639,     2,
    1520      673,   674,     0,     0,    61,     0,     3,     3,     3,     3,
    1521      409,   408,   412,     2,     2,   747,   746,   121,     0,     0,
    1522        0,     0,     3,   462,     3,     0,   242,   145,     3,   294,
    1523      293,     0,     0,     0,     0,     2,     0,   190,     0,   188,
    1524        0,     0,     0,     0,     0,     0,     0,   546,   120,     0,
    1525      150,   147,   293,     0,     0,   266,   278,     3,     3,   545,
    1526      612,   367,   382,   395,   293,   265,   293,     0,   514,   491,
    1527      293,     0,     0,   490,   505,     0,     0,     0,   215,     0,
    1528      224,    57,     2,   697,   698,     0,   125,   122,     0,     0,
    1529        0,     0,     0,    24,     0,   654,   293,   579,   264,   723,
    1530      724,   725,     0,   676,   293,   293,   293,     3,     3,     0,
    1531      684,     0,     0,     0,     0,   293,   293,     3,   543,   121,
    1532      469,     0,     0,   245,   294,     0,     0,     0,     0,   293,
    1533      191,   189,   186,     0,   192,     0,     0,     0,     0,   196,
    1534      199,   197,   193,     0,   194,   128,    36,   143,   141,   243,
    1535        0,     0,   416,   420,   419,     0,   508,     2,   509,     2,
    1536      510,   504,   293,   227,     0,   225,     0,   227,   293,    32,
    1537      123,     2,    43,     2,    41,    39,    29,    27,     3,   726,
    1538        3,     3,     3,     0,     0,   683,   685,   626,   640,   268,
    1539        2,   406,     3,   405,     0,   471,   468,   128,     0,     0,
    1540      128,     3,     0,   128,   187,     0,     2,     2,   208,   198,
    1541        0,     0,     0,   139,     0,   573,   613,     2,     0,     0,
    1542        2,   228,     0,     0,   216,     0,     3,     0,     0,     0,
    1543        0,     0,     0,   686,   687,   293,     0,   470,   151,     0,
    1544        0,     2,   164,   128,   153,     0,   181,     0,   128,     0,
    1545        2,   155,     0,     2,     0,     2,     2,     2,   195,    33,
    1546      293,   513,   515,   506,     0,     0,     0,     0,     0,     3,
    1547        3,   655,   627,   641,   677,   410,   128,   157,   160,     0,
    1548      159,   163,     3,   166,   165,     0,   128,   183,   128,     3,
    1549        0,   293,     0,   293,     0,     2,     0,     2,   138,     2,
    1550      229,   230,     0,   226,   217,   700,     0,     0,   152,     0,
    1551        0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
    1552      200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
    1553        0,     0,     0,    44,    42,   158,   161,   128,     0,   168,
    1554      293,   128,   128,     0,   172,     0,     0,   691,   210,   211,
    1555      212,     0,   201,     3,   203,     3,   293,   218,   231,   148,
    1556      169,   154,   128,   235,   184,   179,   177,   173,   156,   128,
    1557        0,   692,     0,     0,     0,     0,   149,   170,   180,   174,
    1558      178,   177,   175,     3,     3,     0,     0,   492,   176,   204,
    1559      206,     3,     3,   205,   207
     1501       0,     0,     0,     0,     0,     0,     0,     0,     0,   105,
     1502       2,   644,   451,   641,   545,   545,   649,   478,   292,     2,
     1503     583,   584,     0,   595,   596,     0,     2,   738,   741,   119,
     1504     292,     0,     2,   706,   293,   710,   701,   702,   708,     0,
     1505       2,     2,   666,   545,   749,   615,   545,   545,   749,   545,
     1506     629,   545,   545,   680,   433,   663,   545,   545,   671,   678,
     1507     292,   428,   293,     0,     0,   292,   716,   293,   721,   749,
     1508     713,   292,   718,   749,   292,   292,   292,     0,   119,     0,
     1509      19,     2,     0,    20,     0,   458,   747,     0,     0,   464,
     1510     239,     0,   292,     0,     0,     0,   543,   567,   571,   573,
     1511     603,   606,   610,   613,   566,   605,     0,   282,   656,     0,
     1512     292,   275,     0,     0,     0,     0,   273,     2,     0,   257,
     1513     534,   292,     0,     0,   292,     2,   362,   382,   371,     0,
     1514       0,   376,   370,   748,     0,     0,   395,     0,   293,     3,
     1515     413,     3,   417,   416,   589,     0,   529,   292,    61,     3,
     1516     292,   432,   293,     3,   426,   427,     2,     0,     0,     0,
     1517     483,   304,   292,   479,   481,     3,     2,     2,     0,   500,
     1518       3,     0,   552,   127,     0,     0,   220,     0,     0,     0,
     1519       0,    37,     0,     0,   119,   292,    21,     0,    22,     0,
     1520     690,   695,   447,   687,   545,   545,     0,   106,     3,     2,
     1521      28,     0,    34,     0,     2,    26,     0,   104,    71,    72,
     1522      73,    75,    76,    78,    79,    83,    84,    81,    82,    86,
     1523      87,    89,    91,    93,    95,    97,     0,     0,   750,   292,
     1524       0,     0,     0,   645,   646,   642,   643,   495,   494,   292,
     1525       0,   292,   712,   292,   717,   293,   292,   660,   292,   292,
     1526     703,   659,     2,   292,     0,     0,     0,     0,     0,     0,
     1527       0,     0,   681,     0,   667,   618,   634,   668,     2,   614,
     1528     621,   430,   616,   617,   431,     2,   628,   637,   630,   631,
     1529     664,   665,   679,   707,   711,   709,   749,   266,     2,   743,
     1530       2,   421,   715,   720,   422,     0,   400,     3,     3,     3,
     1531       3,   452,     3,     0,     2,   466,   463,   748,     0,   459,
     1532       2,   462,   465,     0,   292,   240,   262,     3,   270,   272,
     1533       0,   452,     2,   569,   570,     2,   608,   609,     0,   657,
     1534     535,     3,   343,   342,   345,   344,   292,   536,     0,   537,
     1535     370,     0,     0,   292,   292,     0,     0,   690,   380,   383,
     1536     387,   545,   387,   386,   379,   372,   545,   374,   377,   292,
     1537     397,   391,   102,   398,   747,     0,     0,   435,   238,     0,
     1538       0,     3,     2,   666,   428,     0,   525,     0,   749,   487,
     1539       0,   292,   292,   292,     0,   549,   551,   128,     0,     0,
     1540     213,     0,     0,     0,   221,   222,    54,     0,    56,    59,
     1541      60,     0,     2,   126,     0,     0,     0,   691,   692,   688,
     1542     689,   457,    68,    69,   107,   123,     3,   106,     0,     0,
     1543      25,    36,     3,     0,    33,   100,     0,     3,   648,   652,
     1544     655,   647,     3,   590,     3,   714,   719,     2,    61,   292,
     1545       3,     3,   293,     0,     3,   620,   624,   627,   636,   670,
     1546     674,   677,   292,     3,   619,   635,   669,   292,   292,   423,
     1547     292,   292,   744,     0,     0,     0,     0,   254,     0,   102,
     1548       0,     3,     3,     0,   460,     0,   456,     0,     0,   243,
     1549     292,     0,     0,   127,     0,     0,     0,     0,     0,   127,
     1550       0,     0,   106,   106,    19,     2,     0,     0,     3,   129,
     1551     130,     2,   141,   131,   132,   133,   134,   135,   136,   143,
     1552     145,     0,     0,     0,   283,   292,   292,   545,     0,   538,
     1553     292,   373,   375,     0,   389,   691,   384,   388,   385,   378,
     1554     382,   365,   396,     0,   577,     2,   662,   661,     0,   667,
     1555       2,   480,   482,   502,     3,   510,   511,     0,     2,   506,
     1556       3,     3,     0,     0,   554,   220,     0,     0,     0,   220,
     1557       0,     0,   119,   694,   698,   700,   693,   747,   106,     0,
     1558       3,   659,    40,     3,    38,    35,     0,     3,    99,   101,
     1559       0,     2,   650,   651,     0,     0,   292,     0,     0,     0,
     1560       3,   636,     0,     2,   622,   623,     2,   638,     2,   672,
     1561     673,     0,     0,    61,     0,     3,     3,     3,     3,   408,
     1562     407,   411,     2,     2,   746,   745,   120,     0,     0,     0,
     1563       0,     3,   461,     3,     0,   241,   144,     3,   293,   292,
     1564       0,     0,     0,     0,     2,     0,   189,     0,   187,     0,
     1565       0,     0,     0,     0,     0,     0,   545,   119,     0,   149,
     1566     146,   292,     0,     0,   265,   277,     3,     3,   544,   611,
     1567     366,   381,   394,   292,   264,   292,     0,   513,   490,   292,
     1568       0,     0,   489,   504,     0,     0,     0,   214,     0,   223,
     1569      57,     2,   696,   697,     0,   124,   121,     0,     0,     0,
     1570       0,     0,    24,     0,   653,   292,   578,   263,   722,   723,
     1571     724,     0,   675,   292,   292,   292,     3,     3,     0,   683,
     1572       0,     0,     0,     0,   292,   292,     3,   542,   120,   468,
     1573       0,     0,   244,   293,     0,     0,     0,     0,   292,   190,
     1574     188,   185,     0,   191,     0,     0,     0,     0,   195,   198,
     1575     196,   192,     0,   193,   127,    36,   142,   140,   242,     0,
     1576       0,   415,   419,   418,     0,   507,     2,   508,     2,   509,
     1577     503,   292,   226,     0,   224,     0,   226,   292,    32,   122,
     1578       2,    43,     2,    41,    39,    29,    27,     3,   725,     3,
     1579       3,     3,     0,     0,   682,   684,   625,   639,   267,     2,
     1580     405,     3,   404,     0,   470,   467,   127,     0,     0,   127,
     1581       3,     0,   127,   186,     0,     2,     2,   207,   197,     0,
     1582       0,     0,   138,     0,   572,   612,     2,     0,     0,     2,
     1583     227,     0,     0,   215,     0,     3,     0,     0,     0,     0,
     1584       0,     0,   685,   686,   292,     0,   469,   150,     0,     0,
     1585       2,   163,   127,   152,     0,   180,     0,   127,     0,     2,
     1586     154,     0,     2,     0,     2,     2,     2,   194,    33,   292,
     1587     512,   514,   505,     0,     0,     0,     0,     0,     3,     3,
     1588     654,   626,   640,   676,   409,   127,   156,   159,     0,   158,
     1589     162,     3,   165,   164,     0,   127,   182,   127,     3,     0,
     1590     292,     0,   292,     0,     2,     0,     2,   137,     2,   228,
     1591     229,     0,   225,   216,   699,     0,     0,   151,     0,     0,
     1592     161,   231,   166,     2,   233,   181,     0,   184,   170,   199,
     1593       3,   208,   212,   201,     3,     0,   292,     0,   292,     0,
     1594       0,     0,    44,    42,   157,   160,   127,     0,   167,   292,
     1595     127,   127,     0,   171,     0,     0,   690,   209,   210,   211,
     1596       0,   200,     3,   202,     3,   292,   217,   230,   147,   168,
     1597     153,   127,   234,   183,   178,   176,   172,   155,   127,     0,
     1598     691,     0,     0,     0,     0,   148,   169,   179,   173,   177,
     1599     176,   174,     3,     3,     0,     0,   491,   175,   203,   205,
     1600       3,     3,   204,   206
    15601601};
    15611602
     
    15631604static const yytype_int16 yydefgoto[] =
    15641605{
    1565       -1,   814,   468,   300,    47,   133,   134,   301,   302,   303,
    1566      304,   305,   762,   763,  1134,  1135,   306,   381,   308,   309,
     1606      -1,   813,   468,   300,    47,   133,   134,   301,   302,   303,
     1607     304,   305,   761,   762,  1133,  1134,   306,   381,   308,   309,
    15671608     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
    1568      320,  1031,   518,   976,   547,   322,   977,   948,  1058,  1519,
    1569     1060,  1061,  1062,  1063,  1520,  1064,  1065,  1438,  1439,  1402,
    1570     1403,  1404,  1498,  1499,  1503,  1504,  1539,  1540,  1066,  1362,
    1571     1067,  1068,  1299,  1300,  1301,  1481,  1069,   145,   954,   955,
    1572      956,  1382,  1462,  1473,  1474,   469,   470,   875,   876,  1039,
     1609     320,  1030,   518,   975,   546,   322,   976,   947,  1057,  1518,
     1610    1059,  1060,  1061,  1062,  1519,  1063,  1064,  1437,  1438,  1401,
     1611    1402,  1403,  1497,  1498,  1502,  1503,  1538,  1539,  1065,  1361,
     1612    1066,  1067,  1298,  1299,  1300,  1480,  1068,   145,   953,   954,
     1613     955,  1381,  1461,  1472,  1473,   469,   470,   874,   875,  1038,
    15731614      51,    52,    53,    54,    55,   347,   158,    58,    59,    60,
    15741615      61,    62,   349,    64,    65,   264,    67,    68,   274,   351,
    15751616     352,    71,    72,    73,   118,    75,   204,   354,   119,    78,
    1576      120,    80,    81,   455,    82,   454,   689,   690,   691,   909,
    1577     1087,   910,    83,    84,   458,   456,   697,   856,   857,   858,
    1578      859,   700,   701,   702,   359,   360,   361,   362,   466,   340,
    1579      135,   136,   522,   324,   170,   646,   647,   648,   649,   650,
    1580       85,   121,    87,   489,   490,   940,   491,   277,   495,   325,
    1581       88,   137,   138,    89,  1322,  1109,  1110,  1111,  1112,    90,
    1582       91,   718,    92,   273,    93,    94,   187,  1033,   680,   412,
     1617     120,    80,    81,   455,    82,   454,   688,   689,   690,   908,
     1618    1086,   909,    83,    84,   458,   456,   696,   855,   856,   857,
     1619     858,   699,   700,   701,   359,   360,   361,   362,   466,   340,
     1620     135,   136,   522,   324,   170,   645,   646,   647,   648,   649,
     1621      85,   121,    87,   489,   490,   939,   491,   277,   495,   325,
     1622      88,   137,   138,    89,  1321,  1108,  1109,  1110,  1111,    90,
     1623      91,   717,    92,   273,    93,    94,   187,  1032,   679,   412,
    15831624     125,    95,   501,   502,   503,   188,   268,   190,   191,   192,
    15841625     269,    98,    99,   100,   101,   102,   103,   104,   195,   196,
    1585      197,   198,   199,   826,   606,   607,   608,   609,   200,   611,
    1586      612,   613,   573,   574,   575,   576,   752,   105,   615,   616,
    1587      617,   618,   619,   620,   969,   754,   755,   756,   596,   365,
    1588      366,   367,   368,   326,   164,   107,   108,   109,   370,   695,
    1589      570
     1626     197,   198,   199,   825,   605,   606,   607,   608,   200,   610,
     1627     611,   612,   572,   573,   574,   575,   751,   105,   614,   615,
     1628     616,   617,   618,   619,   968,   753,   754,   755,   595,   365,
     1629     366,   367,   368,   326,   164,   107,   108,   109,   370,   694,
     1630     569
    15901631};
    15911632
    15921633/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15931634   STATE-NUM.  */
    1594 #define YYPACT_NINF -1323
     1635#define YYPACT_NINF -1390
    15951636static const yytype_int16 yypact[] =
    15961637{
    1597     7329,  8828, -1323,    37, -1323, -1323, -1323, -1323, -1323, -1323,
    1598    -1323,   109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1599    -1323, -1323, -1323, -1323, -1323, -1323,    85,    85,    85,   873,
    1600      733,   178,  7561,   370, -1323, -1323, -1323, -1323, -1323,   191,
    1601    -1323, -1323, -1323,   614,   225, -1323, -1323, -1323, -1323,  4615,
    1602    -1323, -1323, -1323, -1323,   229,   285, -1323,   934, -1323, -1323,
    1603    -1323, -1323,   435,  1196,   579,   110,  7677, -1323, -1323,  4858,
    1604     1038, -1323, -1323,   580,   596,  6761,  1021,   875,   580,  1103,
    1605    -1323, -1323,  1317,   308, -1323,   580,  1224, -1323,   495, -1323,
    1606      616,   623, -1323, -1323, -1323, -1323,   547,   285,    85, -1323,
    1607       85, -1323, -1323, -1323, -1323,  9174,   934, -1323, -1323,   934,
    1608    -1323,   551, -1323,  9403, -1323, -1323,  1899,  9436, -1323,   844,
    1609      844,   844, -1323, -1323, -1323,    85, -1323, -1323, -1323,   584,
    1610      608,   632, -1323, -1323, -1323,   646, -1323, -1323, -1323, -1323,
    1611    -1323,   664,   687, -1323, -1323,   -28,  8797,  2908,   117,   701,
    1612      717,   726,   771,   786,   799,  8715,  6849,   731,   757, -1323,
    1613     5600, -1323, -1323, -1323, -1323,   804, -1323,   223,  5225,  5225,
    1614    -1323,   802,   365, -1323, -1323, -1323, -1323,   816,   443,   480,
    1615      534,    85,   827, -1323, -1323,  1196,  4341,   868, -1323,    50,
    1616    -1323,    85,    85,   285, -1323, -1323,    61, -1323,    85,    85,
    1617    -1323,  4647,   857,   864,   844,  6523, -1323, -1323,   869,  4615,
    1618    -1323, -1323,   580, -1323, -1323, -1323,   285, -1323,   934,   229,
    1619    -1323,  7868, -1323,   844,   844,   844,   285, -1323,   873, -1323,
    1620     5676, -1323, -1323,   852,   844, -1323,   844, -1323,   191,  8797,
    1621    -1323,   884, -1323,   733,   890,   844, -1323,   873,   888,   892,
    1622    -1323,  7561,   631, -1323, -1323, -1323,  9256, -1323, -1323,  9621,
    1623    -1323,   868,   151, 10214,  9436,  1899,  4647, -1323,    88, -1323,
    1624    -1323,  9403,   934,   891,  7708, -1323, -1323,   347, -1323, 10561,
    1625      922,   956, 10347,   945, 10366, 10423, -1323,   954, -1323, -1323,
    1626    -1323, -1323, 10442, 10442,  8571,   952, -1323, -1323, -1323, -1323,
    1627    -1323, -1323, -1323,   988, -1323,   966,  1946,  8910, 10366, -1323,
    1628      756,   338,   485,   411,   635,   955,   947,   957,   984,   237,
    1629    -1323, -1323,   962,   647, -1323,   302, -1323, -1323,  2908, -1323,
    1630    -1323,   235,   985, -1323,   312,   985,   989,   191, -1323, -1323,
    1631      990,  9174, -1323,   999,  1006,  9023, -1323, -1323,  1335,  2030,
    1632     8286,  6523,   580, -1323,   580,   844,   844, -1323, -1323, -1323,
    1633    -1323, -1323, -1323,   844,  9174,   934, -1323, -1323,  9474,  1575,
    1634    -1323,  8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,
    1635     5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1636    -1323, -1323, -1323, -1323, -1323, -1323,  1899, -1323,   973,   991,
    1637      992,  1012,   978,  1017,  1018,  1020,  4341, -1323, -1323,  1029,
    1638      229,  1031, -1323, -1323,  1033, -1323, -1323, -1323,  9256, -1323,
    1639    -1323, -1323, -1323, -1323,  4647, -1323,  8797,  8797, -1323,   844,
    1640     1899,  6642,   934,  8359, -1323, -1323, -1323, -1323,  9256,   151,
    1641    -1323, -1323,   580,   285, -1323, -1323,  9256, -1323,  5770, -1323,
    1642    -1323,   844,   844,   337,  8204,  1032,  1036,  1023,  1042,   844,
    1643    -1323, -1323, -1323, -1323,  9660, -1323,   367,  6404, -1323,   285,
    1644     1044, -1323,  1899, 10643, 10271, -1323, -1323, -1323, -1323,  1015,
    1645     4647, -1323,  8432,   868,  7445, -1323, -1323, -1323,   843,   436,
    1646      962,   733,  7708,  1341,  9403, -1323,  7708, -1323, -1323, -1323,
    1647    -1323,   508, -1323,  1051,   956,   248,  8571, -1323,  9512, -1323,
    1648    -1323,  8571, -1323,  8684,  8571, -1323, -1323,  1049, -1323,   606,
    1649     1057,   682,  1059, -1323, -1323,  3527,  6492, -1323,   362, -1323,
    1650    -1323, 10214, -1323,   368, 10214, -1323, -1323, -1323, -1323, -1323,
    1651    -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,
    1652    10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,
    1653    10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,  3593, 10214,
    1654    -1323,   647,  1677, -1323, -1323,    85,    85, -1323, -1323,  8797,
    1655    -1323, -1323,  1033,   631, -1323,  1033, 10290, -1323, -1323, -1323,
    1656     5046,  6492,  1060,  1063, -1323,  9436, -1323, -1323,   804, -1323,
    1657     1067,   750,  1068,  2627,   125,   962, -1323,    85,    85,   962,
    1658      132, -1323,    85,    85,  1033, -1323, -1323,    85,    85, -1323,
    1659      985,  9545,   934, 10788,   532,   656,  9545, -1323,  9621, -1323,
    1660      962, -1323,  9174, -1323,   238,  7983,  7983,  7983,   934, -1323,
    1661     5791,  1047,  1008,   493,  1058,  1061, -1323,  1076,  5225,   528,
    1662    -1323,  1165,   934,  7983,   631,  1899,   631,   868,   430,   985,
    1663    -1323, -1323,   536,   985, -1323, -1323, -1323,   956, -1323,   985,
    1664      285,  9660, -1323,   619,  1086,   633,  1088, -1323,  1087,   285,
    1665    -1323, -1323,  9256,   285,  1089,  9512,  1092, -1323,  1065, -1323,
    1666      538,   552,   733, -1323,   733,  1085, 10366, -1323,   733, 10788,
    1667    -1323, -1323,  1096, -1323, -1323, -1323,   631, -1323, 10716,  1006,
    1668    -1323,  7983,   703,  8286, -1323, -1323,   804,  1095,  1098,   843,
    1669     5016, -1323, -1323,  7708, -1323, -1323,  1091, -1323, -1323,  1102,
    1670    -1323,  1091,  1104, 10561, 10214,  1090,  1093,    94,  1109,  1107,
    1671     1111,  1114, -1323,  1118,  1129,  9365,  6611, -1323, 10214, -1323,
    1672      682,  1717, -1323, -1323, -1323,    85,    85, 10157, 10214,  1125,
    1673    -1323, -1323,   653, -1323, 10214, -1323, -1323,   736, -1323, -1323,
    1674    -1323, -1323,   756,   756,   338,   338,   485,   485,   485,   485,
    1675      411,   411,   635,   955,   947,   957,   984, 10366,   260, -1323,
    1676     9660,  1132,  1136,  1137,  1677, -1323, -1323, -1323, -1323, -1323,
    1677     9660,   708,  7983, -1323,  9174, -1323,  6968,  9136, -1323,  8017,
    1678     6849, -1323, -1323,   750,  9660,  1022,  1140,  1141,  1142,  1143,
    1679     1146,  1149,  1154, -1323,  3715,  2627, -1323, -1323, -1323, -1323,
    1680    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1681    -1323, -1323, -1323,  1033, -1323, -1323, -1323,   962, -1323, -1323,
    1682    -1323, -1323, -1323, -1323, -1323, -1323,  1155, -1323,  1157,  1159,
    1683    -1323, -1323,   229,  1125,  5791, -1323, -1323, -1323,  5958,  1158,
    1684    -1323, -1323, -1323, -1323,   733,  6174,  1248, -1323, -1323, -1323,
    1685    -1323,  1151,   229, -1323, -1323,  1033, -1323, -1323,  1033,    84,
    1686     1033, -1323, -1323, -1323, -1323, -1323, -1323,  9327, -1323,   285,
    1687    -1323, -1323,   559,   562,  9474,  7087,  2137, 10366,  3114, -1323,
    1688    -1323,  1156,    51,  1156, -1323,   733, -1323,    85, -1323, -1323,
    1689     8941,  1023, -1323, -1323, -1323,  1036,  1175,  1171, -1323, -1323,
    1690     1178,  1181, -1323,   703,  1901, -1323,   672, -1323,  5016,   962,
    1691    -1323,  1184,  7708,  9583,  8797,  1185, -1323, -1323,  1180,  1187,
    1692     1170, -1323, 10366,  1197,   326,  1194, -1323,  1202,   631,  1202,
    1693    -1323, -1323,  1202,  1199, -1323,  1208,  1210,  1211,  1717, -1323,
    1694    -1323, -1323,  5958, -1323, -1323, -1323, -1323,  1209, 10214,  1212,
    1695      631, -1323, 10214, -1323,   631, -1323, -1323, 10214, -1323,   558,
    1696      985, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,  1006,
    1697     9023, -1323, -1323,  7206,  1218, -1323,   674,   985, -1323,   813,
    1698      861,   985, -1323,   844,  4029, -1323, -1323, -1323,  9660,  9660,
    1699    -1323,  8359,  8359, -1323,  1215,  1216,  1225,  1230, -1323,  1232,
    1700      685,    82,  1125, -1323,   631, -1323,  5225, -1323, 10214,   564,
    1701    -1323,  6373,  1236,  1240, 10100,  1242,  1243,    70,    79,    96,
    1702    10214,  1244,   285, 10214, 10214,  1227,  1249,   522,  1222, -1323,
    1703    -1323, -1323,  1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1704    -1323, -1323,   733,  1254, 10214, -1323,  9660,  9660,    85,  1257,
    1705    -1323,  9054, -1323, -1323,   752, -1323,  3114, -1323, -1323, -1323,
    1706    -1323,  1065, -1323, -1323,  1255, -1323, -1323, -1323, -1323,  1258,
    1707     1901, -1323, -1323,  1245, -1323,  1091, -1323, -1323,  1899,  1260,
    1708    -1323, -1323, -1323,   713,  1264, -1323,    94,  1269, 10366,  1252,
    1709       94,    94,  1262,  3527,   879,   985, -1323, -1323,  1076, 10214,
    1710     1273,  1209,   358,   204,  1270, -1323, -1323,  1275,  1270, -1323,
    1711    -1323,  1278, -1323, -1323,  1033,  1280,  1284,  6730,  1285,  1290,
    1712     1291, -1323, -1323,  1286, -1323, -1323,  1033, -1323, -1323, -1323,
    1713    -1323,  1033, 10214, 10214,  1006,  1294, -1323, -1323, -1323, -1323,
    1714    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,
    1715     1300,  1302,  1270, -1323, -1323,   733, -1323, -1323, -1323,  5213,
    1716     9583, 10214, 10214,  1374, 10214, -1323,  1295, -1323,  1296, -1323,
    1717     1297, 10214,  1301, 10214,  1105,  1304,    12,    85,  9289,  1625,
    1718    -1323, -1323,  6174,  1322,   573, -1323, -1323, -1323, -1323, -1323,
    1719    -1323, -1323, -1323, -1323,  9920, -1323,  8432,  1330, -1323, -1323,
    1720     9583,   576,   602, -1323,  1331,  1315,   956,  1337, -1323,   329,
    1721    -1323, -1323, -1323, -1323,  1033,  1339, -1323, -1323,  1320,   486,
    1722      509,   631,  1340, -1323,  1344, -1323,  9660, -1323, -1323, -1323,
    1723    -1323, -1323,  1347, -1323,  9660,  9660,  9660, -1323, -1323,  1348,
    1724    -1323,  1351,  1354,  1355,   716,  8056,  8171, -1323, -1323,   529,
    1725    -1323,  1357,  1362, -1323,  8505,   721,   730,  1358,   761,  3837,
    1726    -1323, -1323, -1323,   605, -1323,   766,  1366,  1367,   285,  1419,
    1727      834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,
    1728     1370,  1375, -1323, -1323, -1323,  1372, -1323, -1323, -1323, -1323,
    1729    -1323, -1323,  9583,   956,  1379, -1323,  1352,   956,  9660, -1323,
    1730    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1731    -1323, -1323, -1323,  1378,  1382, -1323, -1323, -1323, -1323, -1323,
    1732    -1323, -1323,  1387, -1323,  1386, -1323, -1323, 10100,   289, 10214,
    1733    10100, -1323,  1389, 10214, -1323,   318,  1405,  1406, -1323, -1323,
    1734     1399,  1400,  1380, -1323,   821, -1323, -1323, -1323,   934,  1899,
    1735     1396, -1323,   402, 10366, -1323,   785, -1323,   631,   631,  1407,
    1736     1408,  1413,  1415, -1323, -1323,  8359,  1414, -1323,  1490, 10366,
    1737     1385, -1323, -1323, 10012, -1323,   800, -1323,  1402, 10100,  1403,
    1738    -1323, -1323,  1426, -1323,  1427, -1323,  1445,  1446, -1323,  1411,
    1739     9583, -1323, -1323, -1323,   956,   631,  1434,  1417,  1435,  1270,
    1740     1270, -1323, -1323, -1323, -1323, -1323, 10100,   107, -1323,   433,
    1741    -1323, -1323,  7793, -1323, -1323,  1418, 10214, -1323, 10214,  7793,
    1742      285,  9512,   285,  9512,  1436, -1323,  1442, -1323, -1323,  1440,
    1743    -1323, -1323,   825, -1323, -1323, -1323,  1444,  1449, -1323, 10366,
    1744    10366, -1323, -1323,   909,   211, -1323, -1323,  1425, -1323,   909,
    1745    -1323, -1323,  2166,   631, -1323, -1323,   285,  9512,   285,  9512,
    1746     1453,  1431,   631, -1323, -1323, -1323, -1323, 10012,  1443,   909,
    1747     6091, 10214,  9924,  1452,   909,  1454,  2166,  3344, -1323, -1323,
    1748    -1323,  1458, -1323, -1323, -1323, -1323,  8797, -1323, -1323, -1323,
    1749     9791, -1323, 10012, -1323, -1323,  1438,  9703, -1323, -1323,  9924,
    1750      285,  3344,   285,  1464,  1466,   853, -1323,  9791, -1323, -1323,
    1751    -1323,  9703, -1323, -1323, -1323,   285,   285, -1323, -1323, -1323,
    1752    -1323, -1323, -1323, -1323, -1323
     1638    7429,  6461, -1390,    -8, -1390, -1390, -1390, -1390, -1390, -1390,
     1639   -1390,   -23, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1640   -1390, -1390, -1390, -1390, -1390, -1390,    91,    91,    91,  1566,
     1641     744,    60,  7661,   126, -1390, -1390, -1390, -1390, -1390,   146,
     1642   -1390, -1390, -1390,   775,   200, -1390, -1390, -1390, -1390,  5932,
     1643   -1390, -1390, -1390, -1390,   110,   203, -1390,  1684, -1390, -1390,
     1644   -1390, -1390,   214,  2010,   360,   114,  7777, -1390, -1390,  9536,
     1645    1247, -1390, -1390,  1362,   444,  2238,   717,   552,  1362,  1870,
     1646   -1390, -1390,   837,   759, -1390,  1362,  1917, -1390,   226, -1390,
     1647     415,   453, -1390, -1390, -1390, -1390,   349,   203,    91, -1390,
     1648      91, -1390, -1390, -1390, -1390,  2963,  1684, -1390, -1390,  1684,
     1649   -1390,   342, -1390,  8264, -1390, -1390,  2329,  9075, -1390,  1671,
     1650    1671,  1671, -1390, -1390, -1390,    91, -1390, -1390, -1390,   422,
     1651     442,   463, -1390, -1390, -1390,   475, -1390, -1390, -1390, -1390,
     1652   -1390,   487,   492, -1390, -1390,    41,  9044,  2498,   571,   409,
     1653     496,   499,   523,   533,   543,  5546,  6949,   548,   579, -1390,
     1654    9574, -1390, -1390, -1390, -1390,   586, -1390,   116,  4885,  4885,
     1655   -1390,   602,   204, -1390, -1390, -1390, -1390,   626,   243,   344,
     1656     351,    91,   531, -1390, -1390,  2010,  3286,   695, -1390,    42,
     1657   -1390,    91,    91,   203, -1390, -1390,    65, -1390,    91,    91,
     1658   -1390,  3459,   673,   690,  1671,  6742, -1390, -1390,   702,  5932,
     1659   -1390, -1390,  1362, -1390, -1390, -1390,   203, -1390,  1684,   110,
     1660   -1390,  8115, -1390,  1671,  1671,  1671,   203, -1390,  1566, -1390,
     1661    4853, -1390, -1390,   703,  1671, -1390,  1671, -1390,   146,  9044,
     1662   -1390,   726, -1390,   744,   749,  1671, -1390,  1566,   724,   743,
     1663   -1390,  7661,   590, -1390, -1390, -1390,  9503, -1390, -1390,  5769,
     1664   -1390,   695,   158, 10287,  9075,  2329,  3459, -1390,    80, -1390,
     1665   -1390,  8264,  1684,   765,  7808, -1390, -1390,   362, -1390, 10539,
     1666     797,   846,  3526,   825,  3896,  4720, -1390,   843, -1390, -1390,
     1667   -1390, -1390, 10420, 10420,  8818,   845, -1390, -1390, -1390, -1390,
     1668   -1390, -1390, -1390,   883, -1390,  1119,  1947,  9157,  3896, -1390,
     1669     619,   651,   614,   309,   714,   823,   850,   853,   891,   100,
     1670   -1390, -1390,   866,   558, -1390,   120, -1390, -1390,  2498, -1390,
     1671   -1390,   443,   892, -1390,   450,   892,   895,   146, -1390, -1390,
     1672     900,  2963, -1390,   898,   901,  9270, -1390, -1390,  1091,  1646,
     1673    8533,  6742,  1362, -1390,  1362,  1671,  1671, -1390, -1390, -1390,
     1674   -1390, -1390, -1390,  1671,  2963,  1684, -1390, -1390,  9188,  1515,
     1675   -1390,  4463, -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,
     1676    6164,  3896, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1677   -1390, -1390, -1390, -1390, -1390, -1390,  2329, -1390,   814,   908,
     1678     913,   916,   859,   918,   921,   922,  3286, -1390, -1390,   927,
     1679     110,   905, -1390, -1390,   926, -1390, -1390, -1390,  9503, -1390,
     1680   -1390, -1390, -1390, -1390,  3459, -1390,  9044,  9044, -1390,  1671,
     1681    2329,  6861,  1684,  8606, -1390, -1390, -1390, -1390,  9503,   158,
     1682   -1390, -1390,  1362,   203, -1390, -1390,  9503, -1390,  5584, -1390,
     1683   -1390,  1671,  1671,   300,  4617,   934,   933,   925,   950,  1671,
     1684   -1390, -1390, -1390, -1390,  9803, -1390,   408,  6623, -1390,   203,
     1685     965, -1390,  2329, 10621, 10344, -1390, -1390, -1390, -1390,   932,
     1686    3459, -1390,  8679,   695,  7545, -1390, -1390, -1390,   907,   412,
     1687     866,   744,  7808,   994,  8264, -1390,  7808, -1390, -1390, -1390,
     1688   -1390,   554, -1390,   953,   846,   236,  8818, -1390,  9301, -1390,
     1689   -1390,  8818, -1390,  8931,  8818, -1390, -1390,   969, -1390,   637,
     1690     972,   583,   973, -1390, -1390,  9650,  6592, -1390,   268, -1390,
     1691   -1390, 10287, -1390,   318, 10287, -1390, -1390, -1390, -1390, -1390,
     1692   -1390, -1390, -1390, -1390, -1390, -1390, 10287, -1390, -1390,  3896,
     1693    3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,
     1694    3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1390,
     1695     558,  1665, -1390, -1390,    91,    91, -1390, -1390,  9044, -1390,
     1696   -1390,   926,   590, -1390,   926, 10363, -1390, -1390, -1390,  5001,
     1697    6592,   974,   975, -1390,  9075, -1390, -1390,   586, -1390,   976,
     1698     286,   979,  1959,    99,   866, -1390,    91,    91,   866,   122,
     1699   -1390,    91,    91,   926, -1390, -1390,    91,    91, -1390,   892,
     1700    9421,  1684, 10766,   260,   339,  9421, -1390,  5769, -1390,   866,
     1701   -1390,  2963, -1390,   183,  8230,  8230,  8230,  1684, -1390, 10173,
     1702     963,   903,   538,   964,   967, -1390,   985,  4885,   427, -1390,
     1703    1073,  1684,  8230,   590,  2329,   590,   695,   727,   892, -1390,
     1704   -1390,   771,   892, -1390, -1390, -1390,   846, -1390,   892,   203,
     1705    9803, -1390,   647,   995,   650,   996, -1390,   997,   203, -1390,
     1706   -1390,  9503,   203,   998,  9301,   999, -1390,  1616, -1390,   384,
     1707     407,   744, -1390,   744,  1002,  3896, -1390,   744, 10766, -1390,
     1708   -1390,  1000, -1390, -1390, -1390,   590, -1390, 10694,   901, -1390,
     1709    8230,   596,  8533, -1390, -1390,   586,  1003,  1004,   907,  2842,
     1710   -1390, -1390,  7808, -1390, -1390,  1007, -1390, -1390,  1018, -1390,
     1711    1007,  1019, 10539, 10287,   983,  1009,    88,  1022,  1012,  1023,
     1712    1025, -1390,  1026,  1032,  9688,  6711, -1390, 10287, -1390,   583,
     1713    1835, -1390, -1390, -1390,    91,    91, 10230, 10287,  1027, -1390,
     1714   -1390,   657, -1390, 10287, -1390, -1390,   706, -1390, -1390, -1390,
     1715   -1390,   619,   619,   651,   651,   614,   614,   614,   614,   309,
     1716     309,   714,   823,   850,   853,   891,  3896,   237, -1390,  9803,
     1717    1035,  1038,  1041,  1665, -1390, -1390, -1390, -1390, -1390,  9803,
     1718     664,  8230, -1390,  2963, -1390,  7068,  9383, -1390,  4463,  6949,
     1719   -1390, -1390,   286,  9803,   944,  1045,  1046,  1048,  1049,  1050,
     1720    1052,  1054, -1390,  3725,  1959, -1390, -1390, -1390, -1390, -1390,
     1721   -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1722   -1390, -1390,   926, -1390, -1390, -1390,   866, -1390, -1390, -1390,
     1723   -1390, -1390, -1390, -1390, -1390,  1060, -1390,  1061,  1068, -1390,
     1724   -1390,   110,  1027, 10173, -1390, -1390, -1390,  6164,  1064, -1390,
     1725   -1390, -1390, -1390,   744,  6295,  1153, -1390, -1390, -1390, -1390,
     1726    1053,   110, -1390, -1390,   926, -1390, -1390,   926,  1076,   926,
     1727   -1390, -1390, -1390, -1390, -1390, -1390,  9612, -1390,   203, -1390,
     1728   -1390,   437,   460,  9188,  7187,  1990,  3896,  3131, -1390, -1390,
     1729    1063,    87,  1063, -1390,   744, -1390,    91, -1390, -1390,  8451,
     1730     925, -1390, -1390, -1390,   933,  1080,  1067, -1390, -1390,  1084,
     1731    1097, -1390,   596,  1850, -1390,   502, -1390,  2842,   866, -1390,
     1732    1088,  7808,  9721,  9044,  1100, -1390, -1390,  1096,  1104,  1085,
     1733   -1390,  3896,  1107,   250,  1102, -1390,  1105,   590,  1105, -1390,
     1734   -1390,  1105,  1108, -1390,  1111,  1112,  1114,  1835, -1390, -1390,
     1735   -1390,  6164, -1390, -1390, -1390, -1390,  1122, 10287,  1115,   590,
     1736   -1390, 10287, -1390,   590, -1390, -1390, 10287, -1390,   776,   892,
     1737   -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,   901,  9270,
     1738   -1390, -1390,  7306,  1125, -1390,   791,   892, -1390,   804,   829,
     1739     892, -1390,  1671,  4154, -1390, -1390, -1390,  9803,  9803, -1390,
     1740    8606,  8606, -1390,  1126,  1127,  1135,  1137, -1390,  1146,   615,
     1741     233,  1027, -1390,   590, -1390,  4885, -1390, 10287,   491, -1390,
     1742    6430,  1140,  1150, 10116,  1152,  1157,    46,    55,   198, 10287,
     1743    1158,   203, 10287, 10287,  1132,  1156,   335,  1138, -1390, -1390,
     1744   -1390,  1161, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1745   -1390,   744,  1172, 10287, -1390,  9803,  9803,    91,  1174, -1390,
     1746    8962, -1390, -1390,   742, -1390,  3131, -1390, -1390, -1390, -1390,
     1747    1616, -1390, -1390,  1175, -1390, -1390, -1390, -1390,  1177,  1850,
     1748   -1390, -1390,  1143, -1390,  1007, -1390, -1390,  2329,  1176, -1390,
     1749   -1390, -1390,   669,  1183, -1390,    88,  1180,  3896,  1168,    88,
     1750      88,  1192,  9650,   836,   892, -1390, -1390,   985, 10287,  1193,
     1751    1122,   467,   193,  1188, -1390, -1390,  1200,  1188, -1390, -1390,
     1752    1207, -1390, -1390,   926,  1209,  1213,  6830,  1212,  1215,  1218,
     1753   -1390, -1390,  1221, -1390, -1390,   926, -1390, -1390, -1390, -1390,
     1754     926, 10287, 10287,   901,  1225, -1390, -1390, -1390, -1390, -1390,
     1755   -1390, -1390, -1390, -1390, -1390, -1390, -1390,  3896,  3896,  1234,
     1756    1237,  1188, -1390, -1390,   744, -1390, -1390, -1390,  8042,  9721,
     1757   10287, 10287,  1305, 10287, -1390,  1226, -1390,  1231, -1390,  1240,
     1758   10287,  1241, 10287,  1001,  1242,    20,    91,  5155,  1894, -1390,
     1759   -1390,  6295,  1260,   500, -1390, -1390, -1390, -1390, -1390, -1390,
     1760   -1390, -1390, -1390,  9936, -1390,  8679,  1269, -1390, -1390,  9721,
     1761     512,   513, -1390,  1272,  1227,   846,  1278, -1390,   312, -1390,
     1762   -1390, -1390, -1390,   926,  1274, -1390, -1390,  1279,   337,   462,
     1763     590,  1280, -1390,  1281, -1390,  9803, -1390, -1390, -1390, -1390,
     1764   -1390,  1283, -1390,  9803,  9803,  9803, -1390, -1390,  1285, -1390,
     1765    1286,  1290,  1292,   640,  8303,  8418, -1390, -1390,   474, -1390,
     1766    1291,  1295, -1390,  8752,   682,   684,  1299,   686,  6096, -1390,
     1767   -1390, -1390,   534, -1390,   707,  1302,  1306,   203,  1344,   831,
     1768   -1390, -1390, 10287, -1390, 10116, 10287, -1390, -1390, -1390,  1304,
     1769    1315, -1390, -1390, -1390,  1312, -1390, -1390, -1390, -1390, -1390,
     1770   -1390,  9721,   846,  1319, -1390,  1297,   846,  9803, -1390, -1390,
     1771   -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1772   -1390, -1390,  1318,  1322, -1390, -1390, -1390, -1390, -1390, -1390,
     1773   -1390,  1334, -1390,  1333, -1390, -1390, 10116,   104, 10287, 10116,
     1774   -1390,  1336, 10287, -1390,   264,  1351,  1360, -1390, -1390,  1349,
     1775    1350,  1328, -1390,   779, -1390, -1390, -1390,  1684,  2329,  1346,
     1776   -1390,   298,  3896, -1390,   716, -1390,   590,   590,  1353,  1358,
     1777    1364,  1366, -1390, -1390,  8606,  1363, -1390,  1438,  3896,  1352,
     1778   -1390, -1390, 10028, -1390,   729, -1390,  1355, 10116,  1359, -1390,
     1779   -1390,  1373, -1390,  1374, -1390,  1389,  1394, -1390,  1365,  9721,
     1780   -1390, -1390, -1390,   846,   590,  1384,  1369,  1386,  1188,  1188,
     1781   -1390, -1390, -1390, -1390, -1390, 10116,   235, -1390,   348, -1390,
     1782   -1390,  7893, -1390, -1390,  1370, 10287, -1390, 10287,  7893,   203,
     1783    9301,   203,  9301,  1388, -1390,  1393, -1390, -1390,  1395, -1390,
     1784   -1390,   756, -1390, -1390, -1390,  1392,  1397, -1390,  3896,  3896,
     1785   -1390, -1390,   873,   135, -1390, -1390,  1382, -1390,   873, -1390,
     1786   -1390,  2111,   590, -1390, -1390,   203,  9301,   203,  9301,  1410,
     1787    1391,   590, -1390, -1390, -1390, -1390, 10028,  1405,   873,  7969,
     1788   10287,  9940,  1406,   873,  1415,  2111,  3145, -1390, -1390, -1390,
     1789    1416, -1390, -1390, -1390, -1390,  9044, -1390, -1390, -1390,  9807,
     1790   -1390, 10028, -1390, -1390,  1400,  5404, -1390, -1390,  9940,   203,
     1791    3145,   203,  1417,  1425,   760, -1390,  9807, -1390, -1390, -1390,
     1792    5404, -1390, -1390, -1390,   203,   203, -1390, -1390, -1390, -1390,
     1793   -1390, -1390, -1390, -1390
    17531794};
    17541795
     
    17561797static const yytype_int16 yypgoto[] =
    17571798{
    1758    -1323,  4572,  3263, -1323,   197, -1323,   601,   950,  -251,   910,
    1759    -1323,   521,  -520,  -467,  -853,   -64,  3183,     0, -1323,  -150,
    1760      423,   446,   477,   450,  1016,  1025,  1019,  1026,  1028, -1323,
    1761     -622,  -408,  5012,  -745, -1323,  -735,   604,   472,  -656,   413,
    1762    -1323,  1279, -1323,   374, -1058, -1323, -1323,   126, -1323,  -823,
    1763    -1106,   222, -1323, -1323, -1323, -1323,    58, -1209, -1323, -1323,
    1764    -1323, -1323, -1323, -1323,   301, -1149,    35, -1323,  -933, -1323,
    1765      482,   274, -1323,   159, -1323,  -303, -1323, -1323, -1323,   535,
    1766     -827, -1323, -1323,    15, -1007,    71,    28, -1323, -1323, -1323,
    1767      -21, -1323,   357,  1253,  -198,  1636,  4113, -1323, -1323,    80,
    1768       54,   422,  1473, -1323,  1886, -1323, -1323,   192,  2183, -1323,
    1769     2495,   898, -1323, -1323, -1323,  -638, -1323,   924,   925,   524,
    1770      699,    83, -1323, -1323, -1323,   915,   695,  -339, -1323,  -106,
    1771       34,  1281, -1323, -1323,  -847,  -986,  1046,  1127,  1039,     5,
    1772    -1323,  1536,   481,  -165,  -210,  -124,   651,   758, -1323,   979,
    1773    -1323,  2789,  1548,  -413,   904, -1323, -1323,   689, -1323,  -235,
    1774    -1323,   158, -1323, -1323, -1323, -1257,   401, -1323, -1323, -1323,
    1775     1148, -1323,    21, -1323, -1323,  -858,  -105, -1322,  -129,  2267,
    1776    -1323,  2391, -1323,   906, -1323,  -184,    59,  -180,  -173,  -170,
    1777        7,   -40,   -35,   -33,    60,    -6,    25,    93,  -168,  -164,
    1778     -158,  -147,  -144,  -292,  -471,  -462,  -452,  -551,  -302,  -537,
    1779    -1323, -1323,  -511,  1069,  1072,  1074,  2608,  4844,  -578,  -514,
    1780     -502,  -495,  -500, -1323,  -508,  -724,  -717,  -708,  -590,  -305,
    1781     -195, -1323, -1323,   246,    19,    36, -1323,  3865,   104,  -623,
    1782     -397
     1799   -1390,  4519,  3402, -1390,   393, -1390,   353,   929,  -255, -1390,
     1800   -1390,   477,  -524,  -492,  -901,  -176,  4763,     0, -1390,   832,
     1801     410,   433,   417,   440,   977,   978,   980,   971,   981, -1390,
     1802    -348,  -520,  3026,  -946, -1390,  -709,   563,   620,  -590,   -87,
     1803   -1390,   172, -1390,   332, -1116, -1390, -1390,    79, -1390, -1281,
     1804   -1176,   189, -1390, -1390, -1390, -1390,     9, -1389, -1390, -1390,
     1805   -1390, -1390, -1390, -1390,   256, -1199,    33, -1390,  -324, -1390,
     1806     435,   230, -1390,   109, -1390,  -343, -1390, -1390, -1390,   490,
     1807    -651, -1390, -1390,     8, -1002,    97,  1423, -1390, -1390, -1390,
     1808    -125, -1390,    23,  1201,  -202,  1925,  4332, -1390, -1390,    52,
     1809     224,   459,  1086, -1390,  1865, -1390, -1390,    25,  2362, -1390,
     1810    2640,  1529, -1390, -1390, -1390,  -612, -1390,   878,   879,   478,
     1811     658,    43, -1390, -1390, -1390,   876,   655,  -464, -1390,   -94,
     1812     -89,   948, -1390, -1390,  -942,  -971,   -24,    78,  1010,   368,
     1813   -1390,  1732,   171,  -317,  -213,  -127,   605,   710, -1390,   930,
     1814   -1390,  3077,  1178,  -438,   863, -1390, -1390,   654, -1390,  -234,
     1815   -1390,   -47, -1390, -1390, -1390, -1275,   357, -1390, -1390, -1390,
     1816    1110, -1390,    32, -1390, -1390,  -837,  -105, -1257,  -126,  2286,
     1817   -1390,  2146, -1390,   865, -1390,  -146,    59,  -177,  -171,  -166,
     1818       7,   -40,   -28,   -27,  1230,    28,    29,    57,   -63,  -154,
     1819    -151,  -150,  -141,  -329,  -513,  -511,  -507,  -589,  -320,  -515,
     1820   -1390, -1390,  -518,  1034,  1036,  1037,  1371,  5065,  -572,  -555,
     1821    -549,  -540,  -441, -1390,  -497,  -722,  -721,  -701,  -608,  -309,
     1822    -346, -1390, -1390,   185,   133,   -15, -1390,  3702,   -45,  -629,
     1823      22
    17831824};
    17841825
     
    17861827   positive, shift that token.  If negative, reduce the rule which
    17871828   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1788 #define YYTABLE_NINF -522
     1829#define YYTABLE_NINF -521
    17891830static const yytype_int16 yytable[] =
    17901831{
    1791       49,   113,   407,   149,   453,   399,   428,    97,   150,   440,
    1792      151,   267,   400,   753,   767,   401,   114,  1071,   408,   106,
    1793      106,   402,   974,   280,   869,   828,   965,   403,    57,    57,
    1794      505,   845,    49,   966,  1188,    50,  1172,   152,   404,    97,
    1795      597,   405,   967,   147,   383,   384,   741,   610,  1070,    49,
    1796      357,   106,   827,   143,    70,   920,   161,   605,   410,    96,
    1797       57,   795,   177,   186,   819,  1380,   209,    50,   153,    49,
    1798      193,    56,   115,   216,   923,  1303,   226,  1440,   949,   726,
    1799       69,   281,   407,   731,   219,   399,    70,   820,   106,    31,
    1800       31,    96,   400,   724,    57,   401,   425,    57,   408,   821,
    1801       31,   402,   148,    56,   831,   113,   822,   403,    96,   162,
    1802      838,   261,    69,   113,   262,   670,   266,   271,   404,   122,
    1803      212,   405,   189,   194,    31,    96,   217,    31,    96,   227,
    1804      816,  1138,   475,   477,   510,   679,   154,   210,   202,   817,
    1805      220,   260,  1196,   683,  1304,   149,   307,   147,  1440,   818,
    1806      150,  1198,   151,   166,   161,   113,   345,   548,   549,   252,
    1807      209,   411,   411,  1459,    31,   986,   527,   373,  1200,   629,
    1808      419,    31,   411,   633,  1170,  1171,   291,   715,  1178,   152,
    1809      914,  1182,   965,  1235,   348,   186,   186,  1239,   203,   966,
    1810      358,   342,    76,   161,  1078,   548,   721,   481,   967,   411,
    1811      668,   266,  1197,  1469,  1179,   952,    96,   162,   832,    49,
    1812      153,  1199,   835,  1201,  1187,   409,   161,   166,   123,    96,
    1813      374,   209,   665,   439,    76,   149,   252,   329,   443,  1179,
    1814      150,   548,   151,   852,   829,   471,   602,   855,   666,   307,
    1815     1172,   836,  1030,   602,   398,   189,   162,  1017,   816,    57,
    1816      327,    49,  1140,   735,   176,  -233,  -233,   817,    97,   271,
    1817      476,   674,   676,  1081,   271,   266,   266,   818,    96,   162,
    1818      106,   113,   463,   161,  1016,   442,  1004,   483,   154,    57,
    1819       96,   444,  1188,   992,   500,   923,    50,   142,   924,  1249,
    1820     1172,   657,   441,  1527,   307,   163,   665,   860,   861,   820,
    1821      146,   610,  1094,   176,  1485,    70,   176,   307,  1205,  1206,
    1822       96,   821,   666,   436,   878,   831,   597,  1250,   822,   672,
    1823     1542,   597,    56,   572,   479,   677,  -233,   357,   147,   730,
    1824      923,    69,   567,  1399,  1400,   373,   168,   155,  1513,   377,
    1825     1515,   113,   816,   327,   580,   345,   411,   476,   743,   603,
    1826      621,   817,   176,   177,  1071,   378,   828,    63,   736,   163,
    1827      169,   818,  1399,  1400,   626,  1139,   568,  1497,   626,   569,
    1828      630,   113,   932,  1502,   634,   436,   748,   589,   737,   899,
    1829      110,   144,   139,   140,  1246,  1070,   447,    96,   374,    63,
    1830      987,    41,    42,  1522,  1202,   805,   266,   471,  1529,   171,
    1831      769,   770,   771,  1401,   212,   460,   186,   342,   604,  1172,
    1832      845,   166,   578,   373,   799,   176,  1030,   471,   579,   820,
    1833      357,   583,   243,   411,   266,   471,   307,   307,  1170,  1171,
    1834      266,   821,  1410,   626,   110,  1188,  1119,   854,   822,  1326,
    1835      110,   715,  1188,    76,  1526,    41,    42,   684,    76,   599,
    1836     1020,    41,    42,   579,   113,   435,  1120,   553,   554,  1327,
    1837     1127,   348,  1363,   995,  1537,   189,   374,   358,  -121,   176,
    1838     -121,  1541,   266,   760,  -121,   493,   176,   705,   494,   765,
    1839      266,   387,   626,   706,    49,   357,   953,   373,   720,  -121,
    1840     -121,    97,   229,  1188,   113,   230,   923,   388,   234,  1085,
    1841      236,   557,   558,   106,   911,  1245,   307,   245,   113,  1158,
    1842     1160,   307,    57,   307,   307,  1136,   714,   435,  1424,    50,
    1843      913,   751,  1017,   610,   870,   113,   345,   212,   882,  1105,
    1844      327,   327,  1425,  1015,  1429,  1430,   559,   560,    70,   883,
    1845      523,   411,  1102,    96,  1117,   176,   722,   604,  1435,  1470,
    1846      880,   181,   723,   163,   348,    56,   923,   923,   110,   390,
    1847      358,   342,   176,  1471,    69,   110,   176,   139,   140,    41,
    1848       42,   572,   572,   555,   556,   391,    41,    42,  1127,   307,
    1849     1444,   110,   201,   914,     2,   206,     4,     5,     6,     7,
    1850      626,   345,    41,    42,   286,   621,   392,  1331,   327,  -289,
    1851      715,   603,   111,   603,   865,    41,    42,   973,    63,   997,
    1852       76,   247,   393,   472,   805,  1475,   250,   327,   732,   348,
    1853     1333,   626,  1475,  -517,   733,   358,   626,   847,   621,   176,
    1854       76,   514,   626,  1361,   229,   626,   626,   626,    76,   871,
    1855     -468,   643,  -468,   862,   848,   886,  1015,   411,   849,    35,
    1856      394,    36,  1028,   626,   915,   266,   252,   877,   872,  -468,
    1857      815,   471,   604,   348,   348,   348,   395,  1142,   917,   411,
    1858      916,   807,  1075,  1523,  1444,   915,    76,   442,   917,  1444,
    1859     1185,   348,   263,   327,   918,   113,    37,   929,   908,  1185,
    1860       40,  1082,  1317,   -10,  1083,   597,  1186,    41,    42,  1444,
    1861      692,   498,   805,   110,   357,  1309,  1444,  1409,  1318,  1113,
    1862     1237,   626,   934,   621,    41,    42,   747,  -441,  1319,   720,
    1863      720,   748,   748,    43,   407,   846,   399,   561,   562,   893,
    1864      599,    45,    46,   400,  1320,   748,   401,  1364,   500,   348,
    1865      408,  -442,   402,   895,  1035,   113,   345,   912,   403,   748,
    1866      751,   751,   523,   212,   523,   276,   571,   523,   411,   404,
    1867      523,   923,   405,   981,    45,    46,   519,   212,   850,   982,
    1868     1277,  1278,   851,   278,   229,   472,   234,   923,   815,   604,
    1869      714,   342,   965,  1154,   850,   411,  1374,   176,  1101,   966,
    1870     1477,   750,  1478,   411,   572,   472,   279,  -103,   967,    45,
    1871       46,  -103,   626,   472,   626,   110,  1000,   139,   140,   626,
    1872      345,   330,   933,   603,   602,  1162,    41,    42,   994,   176,
    1873       45,    46,    37,  1233,   706,   603,    40,   331,  1349,   579,
    1874      348,  1357,  1350,    41,    42,   176,   332,   748,   348,   712,
    1875     1358,    63,   715,   371,   358,  1524,   748,   923,   923,   176,
    1876      548,   985,   982,   465,     8,     9,    10,    11,    12,   813,
    1877      212,   602,   329,   411,   229,   953,   372,    45,    46,   953,
    1878      953,  1360,   815,   550,    76,   307,  1365,   748,  -290,   551,
    1879      552,   333,   748,    31,   604,     8,     9,    10,    11,    12,
    1880      807,   510,  1370,  1371,   106,  1427,   334,   626,   673,   675,
    1881       76,  1424,   665,    57,   113,   345,   908,   911,   908,   335,
    1882     1445,    34,  1183,   376,    31,    37,   748,   385,   666,    40,
    1883      113,   715,  1157,   913,   602,   389,    41,    42,   805,    70,
    1884      176,   692,   409,   934,   934,  1491,  1419,   982,   720,   714,
    1885      342,  1492,    34,   113,   307,   129,    56,   130,   131,   132,
    1886       48,   112,   719,  1399,  1400,    69,    41,    42,  1106,   397,
    1887       45,    46,   106,  1547,   214,  1084,   426,   912,   751,   579,
    1888     1159,    57,   602,   427,  1509,  1426,   772,   773,   519,   112,
    1889      112,   432,    48,   519,   450,  1324,   519,   738,  1242,   739,
    1890      411,  1437,   740,    48,  1088,   744,  1088,   604,  -365,    48,
    1891      345,   774,   775,  1228,  -394,   484,    37,    48,   174,   175,
    1892       40,   780,   781,    48,  1107,   214,    48,    41,    42,    48,
    1893      461,   626,   626,  1127,   462,     2,   206,     4,     5,     6,
    1894        7,   504,   112,   112,   776,   777,   778,   779,   291,   472,
    1895      788,   307,     2,   206,     4,     5,     6,     7,   327,   348,
    1896      348,   528,   529,   530,   508,  1169,    48,   442,   214,    48,
    1897      106,  1495,  1437,   513,   525,   472,    48,    76,   111,    57,
    1898      527,   228,  1381,   563,   564,   531,  1381,   532,   566,   533,
    1899      534,   113,   252,   329,   411,   565,   908,   419,   661,   411,
    1900       35,   908,    36,   569,   176,    70,   338,    48,  -438,   587,
    1901      934,   658,   659,   712,   846,    48,  -291,    35,   266,    36,
    1902       48,   590,    56,     8,     9,    10,    11,    12,    -3,   214,
    1903      639,  1190,   660,   626,   481,   329,   411,   662,   663,   761,
    1904      664,   829,   329,   602,   766,    48,    48,    37,   667,   183,
    1905      184,    40,    31,   669,   257,   912,   693,   345,    41,    42,
    1906      912,    48,   694,    -3,   696,   498,   698,   214,  -237,    48,
    1907      734,   745,   214,  1296,  1297,  1298,   692,   749,    48,   757,
    1908       34,    48,   808,  1460,   906,   809,   411,   -12,   112,   812,
    1909      823,   714,    45,    46,   465,  1332,  1334,  1335,   -13,   271,
    1910      113,   867,   868,   112,   874,   907,   894,   112,   896,   897,
    1911      922,    48,   112,   901,   904,   219,  -415,   723,   113,   106,
    1912     -521,   944,   307,   937,   946,    48,    48,    57,    57,   957,
    1913      950,   959,    48,   958,   960,   951,   626,  -292,   961,    48,
    1914      113,   106,    63,    76,     8,     9,    10,    11,    12,   962,
    1915       57,   978,   989,   212,   342,  1106,   990,   991,   214,   106,
    1916     1006,  1007,  1008,  1009,   116,   879,  1010,   881,    57,  1011,
    1917      210,   220,   712,    31,  1012,  1023,    70,  -403,    37,  -402,
    1918      183,   184,    40,  1037,  1422,   626,   626,  1072,    48,    41,
    1919       42,  1535,  1074,    56,   271,  1095,   907,  1096,  1059,   307,
    1920     1097,    34,    69,  1098,  1104,  1114,   748,  1115,    48,    48,
    1921     1116,  1107,   159,   348,   348,   185,  1118,   928,   106,  1352,
    1922     1121,  1123,    57,    45,    46,    48,   972,    57,  1124,    48,
    1923     1125,  1126,   113,   407,  1132,  1129,   399,   692,  1152,   214,
    1924      644,  1173,  1174,   400,   173,  1175,   401,  1106,   442,   408,
    1925     1176,   106,   402,    70,  1177,  1191,    48,   665,   403,  1192,
    1926       57,  1194,  1195,  1203,  1210,   441,    48,  1207,   258,   404,
    1927       56,  1208,   405,   666,  1215,    -3,   159,  1220,  1225,  1190,
    1928     1223,   214,  1241,   493,    48,  1229,   253,  1508,  1234,   266,
    1929       48,  1236,    48,  1421,  1238,  1247,  1251,  1253,  1255,   110,
    1930     1257,   139,   238,  1107,  1258,   626,  1263,  1259,   472,   323,
    1931       41,    42,  1260,  1261,    76,   176,  1270,    37,   339,   174,
    1932      175,    40,  1279,   110,  1280,   139,   140,   112,    41,    42,
    1933      113,  1287,    48,   348,    41,    42,   239,  1290,  1291,  1292,
    1934       48,   240,  1330,  1294,    48,  1106,  1302,  1308,    48,   106,
    1935     1315,   112,   113,   112,   372,  1323,  1321,  1325,    57,   113,
    1936      727,   113,  1336,   113,  1329,   728,  1337,  1193,   430,  1339,
    1937     1345,   106,   434,  1346,  1347,  1348,   149,  1359,   106,  1355,
    1938       57,   150,   417,   151,  1356,  1366,  1367,    57,   112,  1298,
    1939     1375,    76,  1507,   112,  1384,  1376,  1377,   113,  1383,   113,
    1940     1393,  1107,   323,   214,  1394,   437,    70,  -404,  1397,  1408,
    1941      113,  1412,  1414,    70,   712,   445,  1507,  1507,  1416,  1417,
    1942      703,  1423,  1418,    56,   161,  1441,   307,  1431,  1432,   106,
    1943       56,   214,  1190,  1433,   434,  1434,   214,   488,    57,  1190,
    1944     1350,  1507,  1436,   112,  1446,  1448,  1450,  1452,   373,   213,
    1945       48,  1454,  1456,  1458,  1463,  1465,  1486,   521,   232,  1464,
    1946     1476,    48,  1488,    48,    70,  1490,  1493,  1501,  1521,  1122,
    1947      159,  1494,  1516,  1517,  1530,   479,   141,  1528,  1532,    63,
    1948     1538,    56,    48,   520,  1545,   176,  1546,   889,  1209,   782,
    1949     1190,  1133,  1131,   712,   784,  1133,  1307,  1411,    48,   783,
    1950      213,   704,   785,   112,   588,   786,  1496,   214,   594,  1548,
    1951     1369,  1385,    48,  1240,   112,    48,   112,  1214,  1479,   902,
    1952      903,   214,  1089,   925,   215,  1222,  1093,   627,   241,   244,
    1953      327,   631,   801,  1128,   339,  1059,  1036,   939,   873,  1103,
    1954      242,  1316,   717,   213,    76,  1133,    66,   117,    48,   947,
    1955      791,    76,   112,   792,   112,   793,   472,    37,   112,   174,
    1956      175,    40,     0,     0,     0,     0,   112,     0,    41,    42,
    1957        0,     0,     0,  1285,  1286,   215,  1288,     0,    66,    48,
    1958       48,     0,     0,  1293,     0,  1295,     0,     0,     0,   323,
    1959      323,     0,     0,    48,   376,   160,     0,     8,     9,    10,
    1960       11,    12,    76,     0,   213,     0,     0,  1483,     0,  1483,
    1961        0,     0,     0,     0,   214,   221,     0,   688,   215,     0,
    1962      528,   529,   530,     0,     0,     0,    31,   703,  1373,     0,
    1963      116,     0,   681,     0,     0,     0,     0,     8,     9,    10,
    1964       11,    12,   213,  1483,   531,  1483,   532,   213,   533,  1306,
    1965        0,   259,     0,     0,    34,   488,     0,   323,   707,   488,
    1966        0,     0,   499,     0,     0,     0,    31,     0,     0,   521,
    1967        0,   521,     0,    48,   521,     0,   323,   521,     0,   215,
    1968     1398,     0,     0,  1406,     0,    48,     0,     0,   339,   457,
    1969        0,     0,     0,   328,    34,   520,   571,     0,   411,     0,
    1970      520,   259,   350,   520,    45,    46,     0,     0,   704,   472,
    1971        0,     0,     0,     0,     0,     0,   472,   215,     0,     0,
    1972        0,     0,   215,     0,     0,     0,  1443,     0,   644,     0,
    1973        0,  1447,   406,   213,   112,     0,   750,     0,   411,     0,
    1974        0,  1405,   323,     0,    45,    46,   703,   424,     0,     0,
    1975      429,   431,     0,   803,     0,   160,   703,    48,     0,  1468,
    1976     1133,  1133,  1133,     0,     0,     0,    48,   472,    48,     0,
    1977      703,     0,     0,     0,     0,   112,   448,     0,     0,     0,
    1978      451,     0,   452,     0,   844,     0,     0,     0,     0,   594,
    1979        0,   459,     0,     0,     0,   853,    74,    66,    48,     0,
    1980        0,     0,   473,     0,     0,     0,     0,     0,   215,     0,
    1981        0,   214,   480,     0,   213,     0,     0,     0,   112,     0,
    1982      431,     8,     9,    10,    11,    12,   645,   704,    74,     0,
    1983        0,   213,   644,     0,     0,     0,     0,   704,     0,     0,
    1984      112,     0,     0,  1536,   112,     0,     0,     0,   688,  1536,
    1985       31,   704,     0,     0,     0,     0,   213,     0,     0,   891,
    1986     1536,     0,   892,     0,  1536,   222,     0,     0,   898,     0,
    1987        0,     0,   900,     0,     0,     0,     0,     0,    34,     0,
    1988        0,    37,     0,   183,   184,    40,   488,   259,     0,   215,
    1989        0,   595,    41,    42,   112,     0,     0,   623,  1133,  1133,
    1990        0,     0,     0,     0,     0,     0,     0,     0,   339,     0,
    1991      628,     0,     0,     0,   628,     0,     0,   259,   265,     0,
    1992      933,     0,   602,     0,     0,     0,    45,    46,    45,    46,
    1993        0,   215,   112,     0,     0,     0,  1461,   725,     0,   729,
    1994        0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
    1995        0,    48,   353,   535,   536,   537,   538,   539,   540,   541,
    1996      542,   543,   544,   545,   473,     0,     0,   996,    48,     0,
    1997        0,     0,   803,     0,   703,   703,     0,     0,   213,   350,
    1998        0,   988,     0,     0,   473,     0,     0,   546,     0,     0,
    1999        0,   993,   473,     0,  1510,     0,     0,   214,     0,     0,
    2000        0,     0,     0,  1518,     0,  1005,   213,     0,     0,     0,
    2001      699,   213,    37,   431,   183,   184,    40,     0,     0,     0,
    2002        0,     0,     0,    41,    42,     0,   449,     0,   713,     0,
    2003       66,     0,   703,   703,     0,     0,     0,     0,   431,     0,
    2004        0,     0,   431,     0,     0,   112,     0,    74,     0,   601,
    2005        0,   602,    74,   215,     0,   704,   704,    45,    46,     0,
    2006      803,     0,     0,     0,     0,     0,     0,   339,    48,     0,
    2007        0,   259,   350,     0,     0,     0,     0,     0,     0,     0,
    2008        0,   215,   213,   688,     0,     0,   215,     0,  1080,   866,
    2009        0,     0,   214,    77,     0,     0,   213,     0,     0,     0,
    2010        0,     0,     0,     0,     0,   488,  1108,   323,     0,   112,
    2011      112,   112,     0,   704,   704,     0,   499,     0,   794,    37,
    2012        0,   183,   184,    40,     0,    77,     0,     0,     0,     0,
    2013       41,    42,     0,     0,     0,     0,   628,   806,   919,     0,
    2014      921,     0,     0,     0,   457,     0,     0,   222,    37,   825,
    2015      183,   184,    40,     0,     0,     0,   906,   215,   411,    41,
    2016       42,     0,   223,   844,    45,    46,     0,   595,     0,     0,
    2017        0,   215,   595,     0,     0,     0,     0,     0,   628,     0,
    2018     1313,   350,   350,   350,     0,  1506,     0,   411,     0,   213,
    2019        0,     0,     0,    45,    46,     0,     0,     0,     0,   350,
    2020        0,     0,     0,   124,   127,   128,     0,     0,     0,  1167,
    2021     1168,     0,   703,     0,    74,     0,     0,   699,     0,     0,
    2022      703,   703,   703,     0,     0,     0,     0,     0,   473,   353,
    2023        0,     0,     0,     0,    74,     0,     0,     0,    48,    48,
    2024        0,  1204,    74,     0,   688,     0,     0,   112,   112,   355,
    2025        0,     0,     0,     0,   473,     0,     0,   350,     0,     0,
    2026      353,  1314,     0,     0,   215,     0,   938,  1217,  1218,   431,
    2027        0,     0,     0,     0,     0,   254,     0,   255,   353,     0,
    2028       74,     0,     0,     0,   703,   112,   803,     0,     0,     0,
    2029        0,   259,   713,   704,     0,     0,     0,   968,     0,     0,
    2030        0,   704,   704,   704,     0,     0,     0,     0,     0,     0,
    2031        0,     0,     0,     0,   645,     0,     0,     0,     0,     0,
    2032     1040,     0,   353,     0,     0,     0,     0,   126,   126,   126,
    2033        0,     0,     0,     0,     0,     0,   699,     0,     0,     0,
    2034        0,     0,    48,   112,    77,     0,   699,     0,   350,    77,
    2035      628,     0,   112,  1003,     0,   628,   806,     0,   396,     0,
    2036      699,  1090,     0,     0,     0,   704,    48,    48,   415,   416,
    2037     1014,   339,     0,   420,     0,   422,   423,     0,     0,     0,
    2038        0,     0,     0,     0,     0,     0,   213,   353,     0,     0,
    2039        0,    48,     0,  1108,     0,     0,     0,     0,     0,   126,
    2040        0,   126,     0,     0,     0,    79,     0,     0,     0,     0,
    2041        0,     0,     0,     0,     0,     0,     0,     0,   645,     0,
    2042        0,    66,     0,     0,     0,     0,   275,     0,     0,     0,
    2043        0,   353,   353,   353,     0,     0,     0,    79,     0,     0,
    2044        0,     0,     0,   628,   223,     0,     0,  1338,     0,   353,
    2045      259,   713,     0,     0,  1086,  1340,  1341,  1342,     0,     0,
    2046        0,   215,     0,     0,     0,     0,     0,   353,     0,     0,
    2047        0,     0,     0,     0,   224,     0,     0,     0,    74,     0,
    2048     1100,     0,   126,     0,     0,  1108,     0,  1368,   431,   117,
    2049      126,     0,   126,   126,     0,     0,     0,   126,     0,   126,
    2050      126,     0,     0,     0,    74,     0,     0,   353,     0,     0,
    2051        0,    77,     0,     0,     0,     0,     0,     0,  1040,  1386,
    2052        0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
    2053        0,    77,     0,     0,     0,     0,     0,     0,     0,    77,
    2054        0,     0,   353,     0,     0,     0,   595,     8,     9,    10,
    2055       11,    12,     0,     0,     0,     0,     0,   355,     0,   429,
    2056        0,   356,     0,     0,   699,   699,     0,   350,   350,   126,
    2057        0,     0,   213,     0,     0,   355,    31,    77,     0,     0,
    2058        0,     0,     0,  1108,     0,     0,   353,  1189,     0,     0,
    2059        0,     0,     0,     0,     0,     0,   353,     0,   353,     0,
    2060        0,     0,     0,   222,    34,     0,   353,     0,     0,    37,
    2061      353,   183,   184,    40,  1482,     0,  1482,     0,     0,   355,
    2062       41,    42,   699,   699,     0,     0,     0,     0,     0,     0,
    2063        0,  1283,     0,     0,     0,     0,     0,     0,     0,  1480,
    2064        0,  1484,     0,     0,     0,     0,   601,   215,   602,     0,
    2065     1482,     0,  1482,     0,    45,    46,    79,     0,     0,     0,
    2066        0,    79,     0,     0,     0,     0,     0,   213,     0,   628,
    2067        0,    74,     0,     0,     0,  1512,     0,  1514,     0,   323,
    2068        0,     0,     0,     0,   355,     0,     0,     0,     0,     0,
    2069        0,     0,     0,   713,     0,     0,     0,     0,     0,    86,
    2070        0,   353,     0,     0,     0,     0,     0,   413,     0,     0,
    2071        0,     0,     0,     0,   421,     0,     0,     0,     0,  1543,
    2072        0,  1544,     0,     0,     0,     0,     0,     0,   355,   355,
    2073      355,    86,     0,     0,  1551,  1552,  1284,     0,     0,     0,
    2074        0,     0,   215,     0,     0,     0,   355,     0,     0,     0,
    2075        0,     0,   796,   797,   259,     0,   224,     0,    66,     0,
    2076        0,     0,     0,     0,   355,     0,     0,     0,   225,     0,
    2077      699,     0,   713,     0,     0,    77,   117,     0,     0,     0,
    2078        0,   830,     0,     0,   833,   834,   413,   837,     0,   839,
    2079      840,     0,     0,     0,   841,   842,     0,     0,     0,     0,
    2080        0,    77,   699,     0,   355,     0,     0,     0,     0,     0,
    2081      699,   699,   699,     0,   353,   353,     0,   353,   353,     0,
    2082        0,   350,   350,    79,     0,     0,     0,     0,     8,     9,
    2083       10,    11,    12,     0,     0,  1189,     0,    74,   356,   355,
    2084        0,   577,     0,    79,     0,     0,     0,     0,     0,   581,
    2085        0,    79,   584,     0,     0,   363,     0,    31,     0,     0,
    2086        0,     0,     0,     0,     0,     0,     0,     0,   117,   356,
    2087        0,     0,   353,   353,   699,     0,   126,   126,     0,     0,
    2088        0,     0,     0,   355,     0,    34,     0,   356,     0,    79,
    2089       37,     0,     0,   355,    40,   355,     0,     0,     0,     0,
    2090      223,    41,    42,   355,     0,   126,     0,   355,   126,   126,
    2091        0,   126,     0,   126,   126,     0,   413,     0,   126,   126,
    2092      421,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2093        0,   356,   970,   971,     0,    45,    46,     0,     0,     0,
    2094        0,   350,     0,   353,     0,     0,     0,     0,     0,     0,
    2095       86,     0,     0,     0,     0,    86,     0,     0,     0,     0,
    2096        0,     0,     0,     0,     0,     0,   117,     0,    77,     0,
     1832      49,   113,   428,   149,   166,   453,   440,    97,   399,   114,
     1833     766,   267,   844,   826,   400,   150,   151,   868,   628,   401,
     1834     604,   740,   632,    63,   752,    76,   505,   964,   965,   609,
     1835     827,   402,    49,    50,   403,   404,   596,  1070,  1187,    97,
     1836     407,   383,   384,   147,   405,   819,  1379,   973,   966,    49,
     1837    1171,   820,    69,   794,   725,    63,   161,    76,   730,    96,
     1838     821,   410,   357,   186,   143,    50,   209,   358,   166,    49,
     1839     193,   152,   153,   216,   122,   669,   226,   219,  1169,  1170,
     1840     919,    31,  1137,  1302,    69,   818,   123,   815,   399,   816,
     1841     260,    96,   280,   817,   400,   678,   425,    56,   115,   401,
     1842     154,   327,   148,   682,    31,   113,  1204,  1205,    96,   673,
     1843     675,   402,  1526,   113,   403,   404,   266,   271,  1195,    31,
     1844     407,  1443,   189,   408,   405,    96,    31,  1197,    96,    56,
     1845      31,   471,  1181,   106,   106,   475,   477,   144,    31,  1541,
     1846     342,  1439,   202,   948,  1458,   149,   307,   147,  1398,  1399,
     1847     281,   252,  1303,   411,   161,   113,   345,   150,   151,   720,
     1848     209,    31,   830,   210,   436,   106,   220,   373,   837,   142,
     1849     291,   859,   860,   714,   419,   923,   411,   729,  1196,  -232,
     1850    -232,   447,  1245,   964,   965,   186,   186,  1198,   877,   481,
     1851     913,   411,   203,   161,   327,   566,   742,   667,   411,   951,
     1852     460,   266,   106,   408,   966,   815,    96,   816,   828,    49,
     1853     601,   817,  1439,   152,   153,  1443,   161,   168,  1400,    96,
     1854    1443,   209,   409,  1069,    70,   149,   436,   173,   443,   567,
     1855     577,   835,   377,   601,   163,  1015,   578,   150,   151,   307,
     1856    1443,   169,   154,   804,   398,   189,   931,  1443,   378,   734,
     1857    -232,    49,  1016,  1484,  1171,   146,    70,   819,    97,   271,
     1858     664,   798,   166,   820,   271,   266,   266,   476,    96,   253,
     1859    1199,   113,   821,   161,    63,   991,    76,  1139,  1248,   472,
     1860      96,    76,   609,   463,    50,   853,  1187,  1512,  1080,  1514,
     1861     212,   656,   476,   471,   307,  1093,  1496,  1003,   163,   815,
     1862     598,   816,  1501,    69,  1171,   817,  1249,   307,  1398,  1399,
     1863      96,   596,   155,   471,   568,  1200,   596,   171,   441,   671,
     1864     387,   471,  1521,   571,   479,   676,   588,  1528,   147,  1177,
     1865     181,  1468,  1169,  1170,   664,   373,   388,   994,   898,   357,
     1866     110,   113,   247,   665,   358,   345,   735,   922,    56,   602,
     1867     620,    41,    42,   747,   111,  1178,   342,  1178,    37,   390,
     1868    1118,   827,    40,   201,   625,   417,   736,   986,   625,    41,
     1869      42,   113,   847,   830,  1070,   391,   848,   819,  1409,   759,
     1870    1119,   327,   327,   820,   106,  1525,  1084,    96,   437,  1186,
     1871     110,   844,   821,   713,   435,   812,   266,   601,   445,   556,
     1872     557,    41,    42,    45,    46,  1536,   186,   286,   603,   110,
     1873     683,   888,  1540,   373,  1423,   250,   578,   665,    41,    42,
     1874      41,    42,  1325,  1171,   266,   177,   307,   307,  1424,   764,
     1875     266,  1116,   357,   625,   558,   559,   714,   358,   985,  1187,
     1876     702,   472,  1326,    76,   514,   442,  1187,  -288,  1330,   327,
     1877     176,   849,  1434,  -516,   113,   850,   435,   996,   252,  1201,
     1878     392,   472,   804,    76,  1469,   189,   520,   394,   327,   472,
     1879    1126,    76,   266,   263,   261,    70,   393,   262,  1470,   523,
     1880     266,   952,   625,   395,    49,  1428,  1429,   373,   719,  1135,
     1881     493,    97,   163,   494,   113,  1014,   357,  1187,  1244,   176,
     1882     914,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
     1883     342,   307,   723,   307,   307,  1029,   915,    50,   704,   330,
     1884     869,   750,   721,   916,   705,   113,   345,  1016,   722,   229,
     1885     881,   -10,   230,   327,   110,   234,    69,   236,   870,   917,
     1886     642,   910,   703,    96,   245,    41,    42,   603,   176,   879,
     1887     804,  -440,   579,   914,   411,  -289,   471,   871,   922,   582,
     1888    1069,   411,     8,     9,    10,    11,    12,  1157,  1159,  1081,
     1889     571,   571,  -441,  1332,   212,   845,   916,  -120,   307,  -120,
     1890     598,    56,   928,  -120,   276,  -467,   439,  -467,  1126,   625,
     1891     345,    31,  1082,   913,   620,   714,   278,  1236,  -120,  -120,
     1892     602,   279,   602,   922,  -467,   465,   331,  1184,  1014,   332,
     1893     110,   176,   139,   140,   849,   680,  1184,   106,  1100,    34,
     1894     625,    41,    42,  1185,   912,   625,   831,   620,  1316,  1318,
     1895     834,   625,  1308,   333,   625,   625,   625,  1362,  1138,   691,
     1896     483,   706,   806,   334,  1317,  1319,   702,   500,  1027,   864,
     1897     747,   851,   625,   335,   266,   854,   713,  1276,  1277,   814,
     1898     371,   603,   110,   397,   731,   176,  1363,   570,  1074,   411,
     1899     732,   229,   176,    41,    42,    45,    46,   737,   520,   738,
     1900     252,   329,   739,   520,   113,   743,   520,   907,   372,  1029,
     1901     596,   523,   749,   523,   411,   376,   523,   212,  1360,   523,
     1902      45,    46,   554,   555,   472,   932,    76,   601,    70,  1112,
     1903     625,   933,   620,    45,    46,   357,   177,   385,   719,   719,
     1904     358,     2,   206,     4,     5,     6,     7,  -103,   399,   342,
     1905     472,  -103,    76,   629,   400,   389,   549,   633,   498,   401,
     1906    1034,   176,   550,   551,   113,   345,   911,   746,   703,   750,
     1907     750,   402,  1348,   747,   403,   404,  1349,   892,   176,   409,
     1908     894,   407,   176,   747,   405,   702,   747,   980,   711,   922,
     1909     552,   553,  1408,   981,   993,   702,   804,   814,   603,  1232,
     1910     705,  1373,   426,   964,   965,   578,    35,  1058,    36,   702,
     1911    1474,  1234,  1356,   571,  1357,  1238,  1359,  1474,   747,   427,
     1912     747,   625,   747,   625,   966,   999,   560,   561,   625,   345,
     1913    1161,   229,   602,   234,   432,   713,   110,  1364,   139,   140,
     1914     111,   984,   981,   747,   602,   176,  1426,    41,    42,   922,
     1915     922,   110,  1423,   139,   140,   450,   882,   714,   411,  1444,
     1916    -364,   890,    41,    42,   408,   747,   442,    37,  1522,    -3,
     1917     897,    40,   329,   411,   899,  1476,   461,  1477,    41,    42,
     1918     952,   806,  1425,  -393,   952,   952,  1490,   703,  1019,   691,
     1919    1546,   814,  1491,   243,   307,   462,   578,   703,  1436,   484,
     1920     885,   760,   411,   603,    43,  1141,   765,   411,   342,  1369,
     1921    1370,   703,    45,    46,  1418,   981,   625,    63,   327,    76,
     1922    1153,   229,   411,   113,   345,   907,   504,   907,  1182,   110,
     1923    1523,   139,   238,  1156,   519,   601,   714,  1398,  1399,   113,
     1924      41,    42,   212,   252,   329,   411,    69,   711,   291,    48,
     1925     112,  1168,   933,   933,   508,   465,   212,   719,  1158,   664,
     1926     601,   562,   113,   307,   910,  1241,   239,   411,  1494,  1436,
     1927    1105,   240,   513,  1087,   845,  1087,  1192,   525,   112,   112,
     1928    1101,    48,   771,   772,  1083,   527,   911,   750,   419,   660,
     1929     411,    56,    48,   775,   776,   777,   778,   563,    48,    37,
     1930    1323,   564,   176,    40,  1508,   565,    48,   773,   774,   846,
     1931      41,    42,    48,   702,   702,    48,   603,   568,    48,   345,
     1932     779,   780,  1227,   338,  -437,   861,   878,   106,   880,   586,
     1933     589,   112,   112,    -3,   176,   638,   718,   668,   657,   876,
     1934     625,   625,   665,   658,    45,    46,   659,   912,   661,   212,
     1935     176,   662,   663,  1126,   922,    48,   666,   257,    48,  1106,
     1936     307,   481,   329,   411,   176,    48,   672,   674,   692,   693,
     1937     922,   702,   702,   828,   329,   601,   695,   713,   927,  1295,
     1938    1296,  1297,   733,   472,   697,    76,   110,  1380,   139,   140,
     1939    1079,  1380,  1331,  1333,  1334,   106,    48,    41,    42,  -236,
     1940     113,   744,   748,   756,    48,   907,   807,   808,   811,    48,
     1941     907,   822,  1189,   -12,   -13,   703,   703,   866,    70,   933,
     1942     500,   867,   873,   726,   691,   893,   895,   266,   727,   896,
     1943    -414,   903,   900,   949,    48,    48,   510,   921,  -520,   936,
     1944     922,   922,   625,   722,  1058,   176,   519,   943,   957,   945,
     1945      48,   519,   956,   958,   519,   959,   960,    56,    48,   547,
     1946     548,   950,   961,   977,   911,   988,   345,    48,   989,   911,
     1947      48,   990,   213,   703,   703,  1005,  1006,   112,  1007,  1008,
     1948    1009,   232,  1010,    37,  1011,   174,   175,    40,  1459,   711,
     1949    1022,  -402,   112,   106,    41,    42,   112,   547,  -401,  1036,
     1950      48,   112,  1071,  1095,  1073,  1351,  1077,   787,   271,   113,
     1951    1094,   498,   342,   906,    48,    48,  1096,   219,  1103,  1312,
     1952     372,    48,   116,   213,   528,   529,   530,   113,    48,  1097,
     1953    1113,   307,   747,   547,  1114,  1115,  1117,  1372,  1120,   971,
     1954    1122,  1123,  1124,  1203,  1125,   625,   442,  1131,   531,   113,
     1955     532,   702,   533,   534,    63,  1151,    76,  1105,  1128,   702,
     1956     702,   702,  1172,  1173,   215,  1174,   213,  1175,   711,  1190,
     1957     159,     2,   206,     4,     5,     6,     7,    48,  1176,  1191,
     1958     242,  1193,  1206,    69,    70,   691,  1194,  1202,  1207,  1397,
     1959    1209,   493,  1405,  1421,   625,   625,    -3,    48,    48,   162,
     1960     228,  1534,  1214,   271,  1219,   210,   220,  1224,   307,   176,
     1961    1222,  1228,  1235,   194,    48,   215,   217,  1233,    48,   227,
     1962    1237,  1313,  1240,   702,  1250,  1246,   258,   213,    56,   643,
     1963    1121,   472,  1252,    76,   159,  1442,    35,  1254,    36,  1256,
     1964    1446,   113,   106,  1257,  1258,    48,  1106,  1259,   399,  1105,
     1965    1260,  1262,  1132,   703,   400,    48,  1132,  1269,   215,   401,
     1966    1189,   703,   703,   703,   106,   213,  1278,   323,  1467,  1279,
     1967     213,   402,  1286,    48,   403,   404,   339,  1322,  1289,    48,
     1968     407,    48,   106,  1290,   405,   499,     2,   206,     4,     5,
     1969       6,     7,  1291,  1293,  1301,  1307,  1507,   162,   266,  1314,
     1970     441,   768,   769,   770,   664,    56,  1132,  1320,  1324,  1328,
     1971     374,  1329,  1335,  1336,   625,  1338,   112,  1344,  1345,   215,
     1972    1346,    48,  1347,  1354,  1297,   703,   430,  1355,  1358,    48,
     1973     434,  1365,   212,    48,  1374,  1366,   162,    48,  1106,   113,
     1974     112,   106,   112,    57,    57,  1375,  1376,  1105,  1382,  1383,
     1975    1392,    35,  1535,    36,  1393,    70,   213,   215,  1535,   162,
     1976     323,   113,   215,   408,  -403,  1396,  1407,  1411,   113,  1535,
     1977     113,   444,   113,  1535,   106,    57,  1413,   112,  1415,  1416,
     1978    1417,  1422,   112,  1430,   472,   149,    76,   665,  1431,  1367,
     1979     327,   472,   434,    76,  1432,   488,  1433,   150,   151,  1349,
     1980    1435,  1506,  1440,  1449,  1451,  1453,   113,  1445,   113,    57,
     1981    1455,  1447,    57,  1189,  1462,   521,  1464,  1457,  1485,   113,
     1982    1189,  1463,  1475,  1487,  1492,  1506,  1506,   442,   159,  1493,
     1983    1489,   112,    70,   161,  1500,   307,  1106,   213,    48,  1515,
     1984    1520,  1527,   472,  1516,    76,  1529,  1531,  1544,   215,    48,
     1985    1506,    48,  1537,  1208,   213,  1545,   784,   373,    56,   781,
     1986    1130,   782,   587,  1306,   783,    56,   593,   785,  1495,  1547,
     1987      48,  1189,   106,  1410,  1368,  1239,  1384,  1478,   374,   213,
     1988     413,  1213,   901,   902,   479,   626,    48,   421,  1221,   630,
     1989    1088,   112,   339,   924,   106,  1092,  1127,  1035,   872,   348,
     1990      48,   106,   112,    48,   112,   938,  1315,    37,   972,   174,
     1991     175,    40,   800,  1102,   716,   214,    56,   946,    41,    42,
     1992     176,  1132,  1132,  1132,   790,     0,   791,   792,     0,   215,
     1993       0,     0,     0,     0,     0,     0,    48,     0,   891,     0,
     1994     112,  1479,   112,  1483,   376,     0,   112,   323,   323,     0,
     1995       0,     0,   106,     0,   112,  1482,   374,  1482,   129,   413,
     1996     130,   131,   132,     0,    57,     0,   214,    48,    48,    41,
     1997      42,   215,     0,     0,     0,   687,     0,  1511,     0,  1513,
     1998       0,    48,     0,     0,     0,    70,     0,     0,   116,     0,
     1999       0,  1482,    70,  1482,    57,     8,     9,    10,    11,    12,
     2000     213,     8,     9,    10,    11,    12,     0,     0,    37,   214,
     2001     183,   184,    40,   488,   576,   323,     0,   488,     0,    41,
     2002      42,  1542,   580,  1543,    31,   583,     0,   521,   213,   521,
     2003      31,     0,   521,   213,   323,   521,  1550,  1551,    37,     0,
     2004     183,   184,    40,    70,     0,   905,   339,   411,     0,    41,
     2005      42,     0,    34,    45,    46,     0,     0,   987,    34,  1132,
     2006    1132,    48,     0,     0,     0,  1420,   906,   992,     0,     0,
     2007     214,     0,     0,    48,     0,   600,    37,   601,   174,   175,
     2008      40,  1004,   141,    45,    46,     0,     0,    41,    42,   413,
     2009     176,     0,   215,   421,   570,     0,   411,  1460,     0,   323,
     2010       0,     0,    45,    46,   213,     0,     0,     0,   214,     0,
     2011     802,     0,     0,   214,     0,     0,   643,     0,   213,     0,
     2012     215,     0,   112,     0,     0,   215,     0,     0,     0,     0,
     2013    1284,  1285,     0,  1287,   241,   244,     0,     0,   499,     0,
     2014    1292,   843,  1294,     0,     0,    48,   593,     0,     0,     0,
     2015       0,   547,   852,     0,    48,  1509,    48,     0,     0,     0,
     2016       0,     0,     0,   112,  1517,     8,     9,    10,    11,    12,
     2017     413,     0,     0,     0,     0,     0,   348,     0,     0,     0,
     2018       8,     9,    10,    11,    12,    74,    48,     0,     0,     0,
     2019       0,     0,   510,  -290,    31,     0,   215,     0,     0,   214,
     2020       8,     9,    10,    11,    12,   687,   112,     0,     0,    31,
     2021     215,   213,     0,     0,     0,     0,     0,    74,     0,     0,
     2022     643,     0,    34,     0,     0,     0,     0,    57,   112,    31,
     2023       0,     0,   112,     0,     0,     0,     0,    34,     0,     0,
     2024    -291,     0,     0,   488,     0,    66,   117,     8,     9,    10,
     2025      11,    12,     0,     0,   222,     0,     0,    34,     0,     0,
     2026       0,   576,   576,     0,   749,   339,   411,     0,     0,   348,
     2027       0,     0,    45,    46,     0,     0,    31,    66,     0,   932,
     2028     214,   601,   112,     0,     0,  1166,  1167,    45,    46,     8,
     2029       9,    10,    11,    12,   160,   457,     0,     0,  1404,   528,
     2030     529,   530,     0,   215,    34,     0,     0,     0,     0,     0,
     2031       0,     0,     0,     0,   221,     0,     0,     0,    31,     0,
     2032     112,     0,   214,   531,   995,   532,     0,   533,  1305,   802,
     2033       0,     0,     0,   348,    48,     0,     0,     0,     0,    48,
     2034       0,   353,     0,  1216,  1217,     0,    34,     0,   883,     0,
     2035     259,    37,   886,   183,   184,    40,    48,     0,     0,     0,
     2036       0,     0,    41,    42,   535,   536,   537,   538,   539,   540,
     2037     541,   542,   543,   544,     0,     0,     0,   348,   348,   348,
     2038       0,     0,    37,     0,   183,   184,    40,     0,   600,     0,
     2039     601,     0,   328,    41,    42,   348,    45,    46,   545,     0,
     2040     259,   350,    37,     0,   183,   184,    40,     0,   213,     0,
     2041       0,     0,     0,    41,    42,   449,     0,   802,     0,   905,
     2042       0,   411,     0,     0,   339,     0,     0,    45,    46,     0,
     2043       0,   406,   644,   112,     0,     0,    74,     0,     0,   185,
     2044     687,    74,     0,   214,     0,     0,   424,    45,    46,   429,
     2045     431,     0,     0,   348,   160,     0,    48,     0,     0,     0,
     2046       0,     0,   488,  1107,   323,     0,     0,     0,     0,     0,
     2047       0,   214,     0,     0,     0,   448,   214,     0,     0,   451,
     2048       0,   452,     0,     0,   576,     0,     0,     0,     0,     0,
     2049     459,     0,   126,   126,   126,     0,    66,   112,   112,   112,
     2050     215,   473,     0,    37,     0,   183,   184,    40,     0,     0,
     2051       0,   480,     0,     0,    41,    42,     0,     0,     0,   431,
     2052     843,     0,     0,  1337,     0,     0,     0,     0,     0,     0,
     2053       0,  1339,  1340,  1341,     0,     0,   222,     0,     0,     0,
     2054    1505,     0,   411,   724,   348,   728,     0,   214,    45,    46,
     2055       0,     0,   348,     0,     0,     0,     0,     0,     0,     0,
     2056       0,   214,     0,     0,   126,     0,   126,     0,     8,     9,
     2057      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2058      20,    21,    22,    23,    24,    25,   259,     0,     0,     0,
     2059     594,   275,     0,     0,   213,  1385,   622,    31,     0,     0,
     2060       0,   687,   413,    74,     0,     0,     0,     0,     0,   627,
     2061       0,     0,     0,   627,     0,     0,   259,    57,   353,     0,
     2062       0,     0,     0,    74,     0,    34,    48,    48,     0,     0,
     2063       0,    74,   124,   127,   128,   112,   112,     0,     0,     0,
     2064       0,     0,     0,   802,     0,     0,     0,   126,     0,   353,
     2065       0,     0,     0,     0,   214,   126,     0,   126,   126,     0,
     2066       0,     0,   126,   473,   126,   126,     0,   353,     0,    74,
     2067       0,     0,     0,   112,     0,     0,     0,     0,   350,  1142,
     2068       0,     0,    77,   473,     0,    57,   215,     0,     0,   213,
     2069       0,   473,     0,     0,   865,     0,  1154,     0,     0,     0,
     2070       0,     0,     0,     0,   254,     0,   255,     0,     0,   698,
     2071       0,   353,   431,     0,    77,     0,     0,     0,     0,     0,
     2072       0,    37,     0,   183,   184,    40,     0,   712,   339,    66,
     2073      48,   112,    41,    42,   126,     0,     0,   431,     0,     0,
     2074     112,   431,     0,   918,     0,   920,     0,     0,     0,   457,
     2075    1107,   223,     0,     0,    48,    48,     0,     0,   265,     0,
     2076       0,     0,     0,   348,   348,     0,    45,    46,     0,     0,
     2077     259,   350,     0,     0,   413,   353,     0,     0,     0,    48,
     2078       0,   215,     0,    57,     0,     0,     0,   396,     0,     0,
     2079       0,     0,     0,     0,     0,     0,     0,   415,   416,     0,
     2080       0,     0,   420,     0,   422,   423,     0,     0,     0,     0,
     2081       0,     0,     0,     0,  1242,     0,   793,     0,     0,   353,
     2082     353,   353,     0,     0,     0,     0,     0,     0,     8,     9,
     2083      10,    11,    12,     0,   627,   805,     0,   353,   355,     0,
     2084       0,     0,  1107,     0,     0,     0,     0,   824,     0,     0,
     2085       0,   214,     0,     0,     0,   353,     0,    31,     0,     0,
     2086       0,     0,     0,     0,     0,   594,    74,     0,     0,     0,
     2087     594,     0,     0,     0,     0,     0,   627,     0,     0,   350,
     2088     350,   350,     0,     0,     0,    34,     0,     0,     0,     0,
     2089      37,     0,    74,     0,    40,   353,     0,   350,     0,     0,
     2090       0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
     2091       0,     0,     0,     0,     0,   698,     0,     0,     0,   644,
     2092       0,     0,     0,     0,     0,  1039,   473,    43,     0,     0,
     2093     353,    57,    57,    77,     0,    45,    46,     0,    77,     0,
     2094    1107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2095       0,     0,   473,     0,    57,   350,     0,     0,     0,     0,
     2096      79,     0,     0,     0,   937,     0,  1089,   431,     0,     0,
     2097       0,  1481,    57,  1481,   353,     0,     0,     0,     0,     0,
     2098       0,     0,     0,     0,   353,     0,   353,     0,     0,   259,
     2099     712,   222,    79,     0,   353,   967,     0,     0,   353,     0,
     2100       0,     0,     0,     0,     0,     0,     0,  1481,     0,  1481,
     2101       0,     0,     0,     0,     0,     0,     0,   348,   348,     0,
     2102       0,     0,     0,   644,     0,     0,    57,     0,     0,   224,
     2103       0,    57,     0,   223,   698,     0,   323,   214,     0,     0,
     2104     126,   126,     0,     0,   698,     0,   350,     0,   627,     0,
     2105       0,  1002,     0,   627,   805,     0,     0,     0,   698,    74,
     2106       0,     0,     0,     0,    57,     0,     0,     0,  1013,   126,
     2107       0,     0,   126,   126,     0,   126,     0,   126,   126,     0,
     2108       0,     0,   126,   126,     0,     0,     0,     0,     0,   353,
    20972109       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2098        0,     0,     0,     0,     0,     0,   222,     0,  1189,     0,
    2099        0,     0,     0,     0,     0,  1189,   356,   413,   355,     0,
    2100        0,     0,     0,     0,     0,     0,     0,     0,    74,     0,
     2110      77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2111       0,     0,     0,     0,     0,   355,   356,     0,     0,    66,
     2112      77,     0,     0,  1039,     0,     0,     0,     0,    77,     0,
     2113       0,     0,   214,     0,     0,     0,     0,   348,     0,     0,
     2114       0,   627,     0,     0,     0,     0,   355,     0,   259,   712,
     2115       0,     0,  1085,     0,     0,     0,     0,     0,     0,     0,
     2116       0,     0,    57,     0,   355,     0,    77,     0,     0,     0,
     2117       0,     0,     8,     9,    10,    11,    12,     0,  1099,     0,
     2118     795,   796,     0,     0,    57,     0,   431,   117,     0,     0,
     2119       0,    57,     0,     0,     0,     0,     0,     0,     0,     0,
     2120       0,    31,   353,   353,     0,   353,   353,     0,   355,   829,
     2121       0,    79,   832,   833,     0,   836,    79,   838,   839,     0,
     2122     126,   126,   840,   841,     0,    74,     0,     0,     0,    34,
     2123       0,     0,     0,     0,    37,     0,  1282,     0,    40,     0,
     2124       0,     0,    57,     0,   594,    41,    42,     0,     0,     0,
     2125       0,     0,     0,     0,     0,     0,     0,   429,     0,     0,
     2126     353,   353,   698,   698,     0,   350,   350,     0,     0,     0,
     2127       0,   718,   355,     0,     0,     0,     0,     0,     0,    45,
     2128      46,     0,     0,     0,     0,  1188,     0,     0,     0,     0,
     2129       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2130      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2131      25,   224,     0,    26,    27,    28,   355,   355,   355,     0,
     2132     698,   698,    31,     0,     0,     0,     0,     0,     0,     0,
     2133       0,   353,     0,     0,   355,     0,     0,     0,     0,     0,
    21012134       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2102      353,     0,   353,     0,     0,     0,     0,     0,     0,     0,
    2103        0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
    2104      356,   356,   356,     0,     0,     0,  1189,     0,     0,     0,
    2105      225,     0,   353,  1531,     0,     0,   126,   126,   356,     0,
    2106      353,   353,   353,    31,     0,     0,     0,     0,     0,     0,
    2107        0,   353,   353,     0,     0,     0,   356,     0,     0,     0,
    2108        0,     0,     0,     0,     0,    74,     0,    79,     0,   577,
    2109      577,    34,     0,     0,  1091,     0,    37,     0,   183,   184,
    2110       40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
    2111        0,   355,   355,    79,   355,   355,   356,    86,     0,     0,
    2112        0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
    2113        0,     0,   363,   906,    77,   411,     0,    86,     0,     0,
    2114        0,    45,    46,     0,     0,    86,     0,     0,     0,     0,
    2115        0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
    2116        0,     0,     0,   363,     0,     0,     0,     0,     0,   355,
    2117      355,     0,     0,     0,     0,     0,   884,     0,     0,     0,
    2118      887,   363,     0,    86,     0,     0,     0,     0,     0,     0,
    2119        0,   353,     0,     0,     0,   356,     0,     0,     0,     0,
    2120        0,     0,     0,     0,     0,   356,     0,   356,     0,     0,
    2121        0,     0,   224,   126,     0,   356,     0,     0,   126,   356,
    2122        0,     0,     0,     0,     0,   363,   167,     0,   172,     0,
    2123        0,   178,   179,   180,     0,   182,     0,     0,    74,     0,
    2124      355,     0,     0,     0,     0,    74,     0,     0,     0,   233,
    2125        0,     0,     0,     0,     0,  1219,     0,     0,     0,     0,
    2126        0,   248,   249,     0,     8,     9,    10,    11,    12,     0,
     2135      34,     0,   355,     0,     0,     0,     0,    38,    39,     0,
     2136     969,   970,     0,    77,     0,     0,     0,   627,     0,     0,
     2137       0,     0,     0,     0,   222,     0,     0,   126,    79,     0,
     2138       0,     0,   126,     0,     0,     0,     0,     0,     0,    77,
     2139       0,   712,   355,   356,   257,     0,    74,    86,    79,     0,
     2140      45,    46,     0,     0,     0,     0,    79,     0,   353,     0,
     2141     353,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2142       0,     0,     0,     0,   356,     0,     0,   355,     0,    86,
     2143       0,     0,     0,     0,  1283,     0,     0,     0,     0,     0,
     2144     353,     0,   356,     0,    79,     0,     0,     0,   353,   353,
     2145     353,     0,   259,     0,     0,     0,    66,     0,     0,   353,
     2146     353,     8,     9,    10,    11,    12,   225,     0,   698,     0,
     2147     712,   355,     0,    74,   117,     8,     9,    10,    11,    12,
     2148       0,   355,     0,   355,     0,     0,   356,     0,   223,     0,
     2149      31,   355,   321,     0,     0,   355,     0,     0,     0,     0,
     2150     698,     0,   346,     0,    31,     0,     0,     0,   698,   698,
     2151     698,     0,   353,     0,   382,   382,     0,     0,    34,   350,
     2152     350,     0,  1090,    37,     0,   183,   184,    40,     0,     0,
     2153       0,     0,    34,  1188,    41,    42,     0,    37,     0,   183,
     2154     184,    40,     0,   126,     0,     0,     0,     0,    41,    42,
     2155     356,     0,     0,   363,     0,     0,    77,     0,     0,     0,
     2156     905,     0,   411,     0,     0,     0,   117,     0,    45,    46,
     2157       0,     0,   698,     0,  1505,     0,   411,     0,     0,   353,
     2158       0,     0,    45,    46,     0,   321,   355,     0,     0,     0,
     2159       0,     0,     0,     0,   356,   356,   356,     0,     0,     0,
     2160       0,     0,     0,     0,     0,     0,     0,     0,     0,   478,
     2161       0,     0,   356,     0,     0,     0,     8,     9,    10,    11,
     2162      12,     0,     0,     0,     0,     0,    74,     0,     0,     0,
     2163     356,     0,     0,    74,     0,     0,     0,     0,     0,   350,
     2164       0,    79,     0,     0,     0,    31,     0,     0,    86,     0,
     2165       0,     0,     0,    86,     0,     0,     0,     0,     0,     0,
     2166       0,     0,     0,     0,   117,     0,     0,    79,     0,     0,
     2167     356,     0,   126,    34,     0,     0,     0,     0,    37,     0,
     2168     183,   184,    40,  1218,    74,     0,  1188,     0,     0,    41,
     2169      42,     0,     0,  1188,     0,     0,     0,     0,     0,   355,
     2170     355,     0,   355,   355,     0,   356,     0,     0,     0,     0,
     2171       0,     0,     0,     0,     0,   185,     0,     0,     0,     0,
     2172       0,     0,    77,    45,    46,     0,   382,     0,     0,     0,
    21272173       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2128       79,     0,     0,   223,     0,     0,     0,     0,     0,     0,
    2129      363,     0,     0,    31,     0,     0,    74,     0,     0,     0,
    2130        0,     0,     0,     0,     0,    77,     0,     0,     0,     0,
    2131      356,     0,   577,     0,     0,     0,     0,   355,     0,   355,
    2132        0,    34,     0,     0,     0,     0,    37,     0,   183,   184,
    2133       40,     0,     0,     0,   363,   363,   363,    41,    42,     0,
    2134        0,     0,     0,     0,     0,     0,     0,     0,     0,   355,
    2135        0,     0,   363,     0,     0,     0,     0,   355,   355,   355,
    2136        0,     0,     0,  1506,     0,   411,     0,     0,   355,   355,
    2137      363,    45,    46,     0,     0,   507,     0,   509,   512,   126,
    2138        0,    86,    77,     0,  1305,   515,   516,     0,     0,     0,
     2174       0,     0,     0,     0,  1188,     0,     0,     0,   225,   356,
     2175       0,  1530,     0,     0,     0,     0,     0,   355,   355,   356,
     2176       0,   356,     0,     0,     0,     0,   224,     0,     0,   356,
     2177       0,     0,     0,   356,     0,   167,     0,   172,     0,     0,
     2178     178,   179,   180,     0,   182,     0,     0,     0,     0,     8,
     2179       9,    10,    11,    12,     0,     0,     0,     0,   233,     0,
    21392180       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2140      509,   509,     0,     0,     0,     0,     0,    86,     0,     0,
    2141      363,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2142        0,   355,     0,   356,   356,     0,   356,   356,     0,     0,
    2143      413,     0,     0,     0,     0,     0,     0,     0,   509,     0,
    2144        0,     0,     0,     0,     0,   363,    79,     8,     9,    10,
     2181     248,   249,  1304,     0,     0,    86,     0,     0,    31,     0,
     2182     709,     0,     0,     0,     0,     0,     0,     0,   355,     0,
     2183     363,     0,     0,     0,    79,    86,     0,     0,     0,     0,
     2184       0,     0,     0,    86,     0,     0,    34,     0,     0,     0,
     2185       0,    37,     0,   183,   184,    40,     0,     0,     0,   741,
     2186       0,   363,    41,    42,   356,     0,     0,     0,     0,     0,
     2187       0,   223,   758,     0,     0,     0,     0,   741,     0,   363,
     2188     741,    86,     0,   282,   283,     0,   284,     0,   265,     0,
     2189       0,     0,   767,    77,     0,     0,    45,    46,     0,     0,
     2190       0,     0,     0,     0,     0,   355,     0,   355,     0,     0,
     2191       0,     0,   285,     0,   788,     0,     0,     0,   286,     0,
     2192       0,     0,   287,   363,   797,   288,   289,   290,   291,    41,
     2193      42,   346,   292,   293,     0,     0,   758,   355,     0,     0,
     2194       0,     0,     0,     0,     0,   355,   355,   355,     0,     0,
     2195       0,     0,     0,     0,     0,   506,   355,   355,     0,     0,
     2196       0,     0,     0,    45,    46,   296,   297,   298,   299,     0,
     2197      77,     0,     0,     0,     0,     0,     0,   356,   356,     0,
     2198     356,   356,     0,     0,     0,   862,     0,   363,     0,     0,
     2199       0,     0,     0,   382,     0,     0,     0,     0,     0,     0,
     2200      79,     0,     0,     0,     0,     0,     0,     0,     0,   355,
     2201       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2202       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2203       0,   363,   363,   363,     0,   356,   356,     0,     0,     0,
     2204       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
     2205       0,     0,  1012,     0,     0,     8,     9,    10,    11,    12,
     2206       0,     0,     0,     0,     0,     0,   591,   363,   599,     0,
     2207       0,   165,     0,     0,     0,     0,   355,     0,    86,   623,
     2208     624,     0,   282,   283,    31,   284,     0,     0,   218,     0,
     2209       0,   758,     0,   963,     0,     0,     0,     0,     0,     0,
     2210       0,     0,     0,   974,    86,     0,   356,   363,     0,   982,
     2211       0,   285,    34,     0,     0,     0,     0,   286,     0,     0,
     2212       0,   287,     0,    77,   288,   289,   290,   291,    41,    42,
     2213      77,   292,   293,     0,     0,   165,     0,     0,     0,   272,
     2214       0,     0,   363,     0,     0,     0,     0,     0,     0,   224,
     2215       0,  1000,  1001,     0,   294,   346,   379,     0,     0,     0,
     2216       0,     0,   344,    46,   296,   297,   298,   299,   165,   346,
     2217       0,    79,     0,     0,     0,     0,     0,     0,   369,     0,
     2218       0,    77,   375,   356,     0,   356,   363,     0,     0,     0,
     2219       0,     0,     0,     0,     0,     0,   363,     0,   363,     0,
     2220       0,     0,     0,   225,     0,     0,   363,     0,     0,  1031,
     2221     363,     0,     0,   382,     0,   356,     0,     0,     0,     0,
     2222       0,     0,     0,   356,   356,   356,     0,     0,     0,     0,
     2223       0,   165,     0,     0,   356,   356,     0,     0,     0,     0,
     2224       0,     0,     0,   218,     0,     0,     0,     0,    79,     0,
     2225     346,     0,     0,   282,   283,     0,   284,     0,     0,     0,
     2226       0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
     2227       0,    86,     0,     0,     0,     0,     0,     0,     0,     0,
     2228       0,     0,   285,     0,     0,     0,   375,   356,   286,   321,
     2229       0,     0,   287,   165,     0,   288,   289,   290,   291,    41,
     2230      42,   363,   292,   293,     0,     0,     0,     0,     0,     0,
     2231       0,     0,     0,     0,     0,     0,   524,   382,     0,     0,
     2232       0,     0,     0,   974,     0,   294,     0,   741,     0,   165,
     2233       0,     0,     0,    45,    46,   296,   297,   298,   299,     0,
     2234       0,     0,     0,     0,     0,     0,     0,     0,  1150,     0,
     2235       0,     0,     0,     0,   356,     0,     0,     0,     0,  1165,
     2236       0,     0,     0,     0,     0,     0,     0,   597,     0,     0,
     2237       0,     0,   621,     0,     0,     0,     0,     0,     0,     0,
     2238       0,   382,     0,  1183,     0,     0,     0,     0,     0,     0,
     2239       0,     0,     0,     0,     0,     0,     0,     0,   974,   974,
     2240       0,    79,     0,     0,     0,     0,     0,     0,    79,     0,
     2241       0,     0,     0,     0,   363,   363,     0,   363,   363,  1215,
     2242       0,   925,     0,   926,     0,     0,     0,     0,     0,     0,
     2243     929,   930,     0,     0,     0,   935,     0,    86,     0,     0,
     2244       0,     0,     0,     0,     0,     0,     0,   940,   165,   165,
     2245       0,     0,   944,     0,     0,   369,     0,     0,     0,    79,
     2246       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2247       0,     0,   363,   363,   974,     0,   524,     0,     0,     0,
     2248     978,  1162,     0,     0,     8,     9,    10,    11,    12,     0,
     2249       0,     0,   862,     0,     0,     0,     0,     0,     0,     0,
     2250       0,     0,     0,     0,   715,     0,     0,  1266,  1267,     0,
     2251       0,   282,   283,    31,   284,     0,   165,     0,     0,     0,
     2252       0,     0,     0,     0,     0,     0,     0,     0,   524,     0,
     2253     524,     0,     0,   524,     0,   165,   524,     0,     0,     0,
     2254     285,    34,     0,   363,     0,     0,   286,     0,   369,     0,
     2255     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2256     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2257       0,     0,     0,     0,     0,     0,     0,     0,     0,  1023,
     2258    1024,  1025,  1026,   294,  1028,   379,   225,     0,     0,     0,
     2259       0,  1163,    46,   296,   297,   298,   299,     0,     0,  1072,
     2260     165,     0,     0,     0,     0,     0,     0,     0,    86,     0,
     2261       0,     0,   369,  1078,     0,     0,   810,     0,     0,     0,
     2262     363,     0,   363,     0,     0,     0,     0,     0,     0,     0,
     2263       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2264       0,     0,   597,     0,     0,     0,     0,   597,  1371,     0,
     2265       0,   741,   363,  1098,     0,     0,   369,   369,   369,     0,
     2266     363,   363,   363,     0,     0,     0,     0,     0,     0,     0,
     2267       0,   363,   363,     0,   369,     0,     0,     0,     0,     0,
     2268       0,     0,     0,     0,     0,    86,     0,     0,     0,     0,
     2269       0,     0,     0,     0,     0,     0,     0,     0,  1129,     0,
     2270       0,     0,     0,     0,  1136,     0,   524,     0,     0,  1140,
     2271       0,     0,     0,     0,  1144,     0,  1145,     0,   211,     0,
     2272    1147,     0,  1148,  1149,   363,     0,  1152,   231,     0,   235,
     2273       0,   237,   369,     0,   934,  1164,     0,     0,   246,     0,
     2274       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2275       0,     0,     0,  1179,  1180,     0,     0,     0,     0,     0,
     2276       0,     0,     0,     0,     0,     0,     0,   715,     0,   211,
     2277       0,   235,   237,   246,     0,     0,     0,     0,     0,     0,
     2278    1210,     0,     0,  1212,     0,     0,     0,     0,     0,     0,
     2279       0,   363,     0,     8,     9,    10,    11,    12,    13,    14,
     2280      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2281      25,     0,   211,    26,    27,    28,     0,     0,     0,     0,
     2282       0,     0,    31,   369,     0,     0,  1226,   621,     0,     0,
     2283       0,   369,  1230,  1231,     0,     0,     0,     0,    86,     0,
     2284       0,     0,     0,     0,     0,    86,     0,     0,     0,     0,
     2285      34,     0,  1247,     0,     0,  1251,     0,    38,    39,  1253,
     2286       0,   321,     0,     0,     0,     0,     0,     0,     0,     0,
     2287       0,     0,  1261,   211,     0,   235,   237,   246,     0,     0,
     2288       0,     0,     0,   156,     0,  1268,     0,  1270,  1271,  1272,
     2289    1273,     0,   634,     0,   338,     0,    86,     0,     0,     0,
     2290      45,    46,     0,  1280,     0,  1281,     0,     0,     0,   172,
     2291       0,   211,     0,     0,     0,     0,   211,     0,     0,     0,
     2292       0,     0,     0,     0,     0,     0,   715,     0,     0,     0,
     2293     251,   497,     0,     0,     0,     0,     0,     0,  1309,  1310,
     2294     256,   524,     0,     0,     0,     0,     0,     8,     9,    10,
    21452295      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2146       21,    22,    23,    24,    25,  -293,     0,    26,    27,    28,
    2147        0,     0,     0,     0,   509,     0,    31,     0,     0,     0,
    2148        0,   356,   356,     0,     0,     0,     0,     0,   355,   363,
    2149        0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    2150        0,   363,     0,     0,    34,     0,   225,  1143,   126,   363,
    2151        0,    38,    39,   363,     0,  -293,     0,   592,     0,   600,
    2152        0,     0,     0,     0,  1155,     0,     0,     0,     0,     0,
    2153      624,   625,     0,     0,     0,    77,     0,     0,     0,     0,
    2154      282,   283,    77,   284,     0,     0,   635,     0,   338,     0,
    2155        0,     0,   356,     0,    45,    46,     0,     0,     0,     0,
    2156        0,     0,     0,     0,     0,     0,     0,     0,     0,   285,
    2157        0,     0,     0,     0,    86,   286,     0,     0,     0,   287,
    2158        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    2159      293,     0,     0,    77,     0,   224,     0,     0,     0,     0,
    2160        0,     0,   413,     0,   363,     0,     0,     0,     0,     0,
    2161        0,     0,   294,     0,   379,     0,     0,    79,     0,     0,
    2162       45,    46,   296,   297,   298,   299,     0,     0,     0,   356,
    2163        0,   356,  1013,   787,     0,     8,     9,    10,    11,    12,
    2164        0,     0,  1243,   509,   509,   509,   509,   509,   509,   509,
     2296      21,    22,    23,    24,    25,   165,     0,    26,    27,    28,
     2297       0,     0,     0,     0,     0,     0,    31,   684,     0,     0,
     2298     211,     0,     0,     0,     0,     0,     0,     0,  1342,  1343,
     2299       0,     0,     0,     0,     0,     0,   156,     0,  1353,     0,
     2300       0,     0,   211,     0,    34,     0,     0,   235,   237,     0,
     2301     386,    38,    39,     0,     0,   246,     0,     0,     0,     0,
     2302       0,   597,     0,     0,     0,     0,     0,     0,     0,     0,
     2303       0,     0,     0,   418,     0,     0,     0,     0,     0,     0,
     2304       0,     0,   369,   369,     0,     0,     0,   433,   685,     0,
     2305       0,     0,   686,     0,    45,    46,   438,     0,   211,  1388,
     2306       0,  1389,  1390,  1391,     0,     0,   446,     0,     0,     0,
     2307       0,     0,     0,  1395,     0,     0,   211,   282,   283,     0,
     2308     284,   211,  1406,   211,     0,     0,     0,     0,     0,     0,
     2309       0,   464,     0,     0,     0,     0,   474,     0,     0,     0,
     2310     211,     0,   524,   211,   211,     0,   285,  1427,     0,   482,
     2311       0,   211,   286,     0,     0,   492,   287,   496,     0,   288,
     2312     289,   290,   291,    41,    42,   211,   292,   293,     0,     0,
     2313       0,     0,   211,     0,   526,     0,     0,     0,     0,     0,
     2314       0,     0,     0,     0,     0,     0,     0,     0,     0,   511,
     2315    1465,  1466,     0,     0,     0,     0,     0,    45,    46,   296,
     2316     297,   298,   299,  1471,     0,     0,     0,     0,   715,     0,
     2317    1471,     0,     0,     0,     0,     0,     0,   585,     0,     0,
     2318       0,     0,   590,     8,     9,    10,    11,    12,    13,    14,
     2319      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2320      25,  -292,  1504,     0,     0,     0,  1510,     0,     0,     0,
     2321     218,   635,    31,     0,     0,   636,   637,     0,   639,     0,
     2322       0,     0,     0,     0,     0,   650,   651,     0,   652,   653,
     2323       0,   654,     0,   655,  1532,     0,  1533,     0,     0,     0,
     2324      34,     0,   282,   283,     0,   284,   211,   715,     0,     0,
     2325     585,  -292,     0,     0,     0,     0,     0,     0,   670,     0,
     2326       0,     0,     0,     0,  1548,  1549,     0,     0,     0,     0,
     2327       0,   285,  1552,  1553,   211,     0,     0,   286,     0,   211,
     2328       0,   287,     0,   681,   288,   289,   290,   291,    41,    42,
     2329       0,   292,   293,     0,     0,     0,   369,   369,     0,     0,
     2330       0,     0,     0,     0,     0,   218,     0,     0,     0,   707,
     2331       0,     0,     0,     0,   294,   710,   379,     0,     0,   380,
     2332     464,     0,    45,    46,   296,   297,   298,   299,     0,     0,
     2333       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2334      17,    18,    19,    20,    21,    22,    23,    24,    25,  -292,
     2335     211,    26,    27,    28,     0,     0,   745,     0,     0,     0,
     2336      31,     0,     0,     0,   211,   507,     0,   509,   512,     0,
     2337       0,   763,     0,     0,     0,   515,   516,     0,     0,     0,
     2338       0,     0,     0,     0,   497,     0,     0,     0,    34,     0,
     2339     509,   509,     0,    37,     0,   336,   337,    40,     0,  -292,
     2340       0,     0,     0,     0,    41,    42,     0,     0,     0,   789,
     2341       0,     0,     0,     0,     0,     0,   369,     0,   799,     0,
     2342       0,     0,     0,     0,     0,   801,     0,     0,   509,     0,
     2343     634,   809,   338,     0,     0,     0,     0,     0,    45,    46,
     2344     823,     0,     0,     0,     0,   211,     0,     0,     0,     0,
     2345       0,     0,     0,     0,     0,     0,     0,   211,     0,     0,
     2346       0,     0,     0,     0,   509,     0,     0,     0,     0,     0,
     2347       0,     0,   524,     0,   524,     0,   211,     0,     0,     0,
     2348     863,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2349      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2350      23,    24,    25,  -292,     0,    26,    27,    28,   524,     0,
     2351     524,     0,     0,     0,    31,     0,   809,     0,     0,     0,
     2352       0,     0,     0,     0,   904,     0,     0,     0,     0,     0,
     2353       0,     0,     0,   282,   283,     0,   284,   165,     0,     0,
     2354     341,   364,    34,     0,     0,     0,     0,    37,     0,   336,
     2355     337,    40,     0,  -292,     0,   251,     0,     0,    41,    42,
     2356       0,     0,   285,     0,     0,   941,   942,     0,   286,     0,
     2357       0,     0,   287,     0,   414,   288,   289,   290,   291,    41,
     2358      42,   414,   292,   293,     0,     0,   338,     0,     0,   211,
     2359       0,     0,    45,    46,     0,     0,     0,     0,   979,     0,
     2360       0,     0,     0,   983,     0,   294,     0,   379,     0,     0,
     2361       0,     0,     0,    45,    46,   296,   297,   298,   299,   211,
     2362       0,     0,     0,     0,     0,     0,   786,     0,     0,     0,
     2363       0,     0,   509,   509,   509,   509,   509,   509,   509,   509,
    21652364     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
    2166      509,   356,   282,   283,    31,   284,     0,     0,     0,   356,
    2167      356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
    2168      356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
    2169        0,   285,    34,     0,    79,     0,     0,   286,     0,     0,
    2170        0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2171        0,   292,   293,     0,     0,     0,     0,   363,   363,     0,
    2172      363,   363,     0,     0,     0,     0,     0,     0,     0,     0,
    2173        0,     0,     0,   356,   294,     0,   379,     0,     0,     0,
    2174       86,     0,   344,    46,   296,   297,   298,   299,     0,     0,
    2175        1,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    2176       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2177       21,    22,    23,    24,    25,   363,   363,    26,    27,    28,
    2178       29,     0,     0,    30,   282,   283,    31,   284,     0,   509,
     2365       0,     0,     0,   414,   211,     0,     0,     0,     0,     0,
     2366       0,     0,     0,     0,     0,   211,     0,  1017,     0,     0,
     2367       0,     0,     0,     0,  1018,     0,     0,     0,     0,     0,
     2368       0,     0,     0,     0,     0,     0,     0,  1020,     0,  1021,
    21792369       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2180      356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2181        0,     0,     0,   285,    34,     0,    35,     0,    36,   286,
    2182        0,    38,    39,   287,   165,     0,   288,   289,   290,   291,
    2183       41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    2184        0,   218,     0,     0,     0,     0,   363,    79,     0,     0,
    2185      509,     0,     0,     0,    79,     0,   294,     0,  1056,     0,
    2186        0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
    2187        0,     0,     0,   926,     0,   927,     0,     0,     0,  -128,
    2188      509,     0,   930,   931,     0,     0,     0,   936,   165,   225,
    2189        0,     0,   272,     0,     0,     0,     0,     0,     0,   941,
    2190        0,     0,     0,     0,   945,    79,     0,     0,     0,     0,
    2191        0,    86,     0,     0,     0,     0,     0,     0,     0,     0,
    2192        0,   165,     0,   363,     0,   363,     0,     0,     0,     0,
    2193        0,   369,   979,     0,     0,   375,     0,     0,     0,     0,
    2194        0,     0,     0,     0,     0,     0,  1163,     0,     0,     8,
    2195        9,    10,    11,    12,     0,   363,     0,     0,     0,     0,
    2196        0,     0,     0,   363,   363,   363,     0,     0,     0,     0,
    2197        0,     0,     0,     0,   363,   363,   282,   283,    31,   284,
    2198        0,     0,     0,     0,   165,     0,     0,     0,    86,     0,
    2199        0,     0,     0,     0,     0,     0,   218,     0,     0,     0,
    2200      509,     0,     0,     0,     0,   285,    34,     0,     0,     0,
    2201        0,   286,     0,     0,   165,   287,     0,     0,   288,   289,
    2202      290,   291,    41,    42,     0,   292,   293,   363,     0,     0,
    2203        0,  1024,  1025,  1026,  1027,     0,  1029,     0,     0,   375,
    2204        0,     0,     0,     0,     0,   509,   165,     0,   294,     0,
    2205      379,  1073,     0,     0,     0,     0,  1164,    46,   296,   297,
    2206      298,   299,     0,     0,     0,  1079,     0,     0,     0,   524,
     2370       0,     0,     0,  1033,     0,     0,     0,     0,   414,  1037,
     2371       0,     0,     0,     0,     0,     0,   414,   581,     0,   414,
     2372     584,  1075,     0,     0,  1076,     0,     0,     0,     0,     0,
     2373     364,     0,     0,     0,   613,     0,     0,   211,     0,     0,
    22072374       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2208      509,     0,   165,     0,     0,     0,     0,     0,     0,   211,
    2209        0,     0,     0,   509,   363,     0,     0,     0,   231,     0,
    2210      235,     0,   237,     0,     0,  1099,     0,     0,     0,   246,
     2375       0,   211,     0,   631,     0,     0,   341,     0,     0,     0,
     2376       0,   282,   283,     0,   284,  1041,     0,  1042,     0,     0,
     2377    1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,   509,     0,
     2378    1524,  1051,     0,   414,     0,  1052,  1053,   414,    33,     0,
     2379     285,     0,     0,     0,     0,     0,  1054,     0,     0,     0,
     2380     287,   590,     0,   288,   289,   290,   291,    41,    42,     0,
     2381     292,   293,     0,     0,     0,     0,     0,     0,   364,     0,
    22112382       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2212      598,     0,     0,     0,     0,   622,     0,     0,     0,     0,
    2213        0,     0,     0,     0,   509,     0,     0,     0,     0,     0,
    2214      211,    86,   235,   237,   246,     0,     0,     0,    86,     0,
    2215     1130,     0,     0,     0,     0,     0,  1137,     0,     0,     0,
    2216        0,  1141,     0,     0,     0,     0,  1145,     0,  1146,     0,
    2217        0,     0,  1148,     0,  1149,  1150,     0,     0,  1153,     0,
    2218        0,     0,     0,   211,     0,     0,     0,  1165,     0,     0,
    2219        0,     0,     0,     0,     0,     0,     0,     0,     0,    86,
    2220        0,   165,   165,     0,     0,  1180,  1181,     0,   369,     0,
    2221        0,   509,     0,     0,     0,     0,     0,     0,     0,     0,
    2222        0,     0,     0,     0,     0,     0,     0,     0,     0,   524,
    2223        0,     0,  1211,     0,     0,  1213,     0,     0,     0,     0,
    2224        0,     0,     0,     0,   211,     0,   235,   237,   246,     0,
    2225        0,     0,     0,     0,     0,     0,     0,   716,     0,     0,
    2226        0,     8,     9,    10,    11,    12,     0,     0,     0,   165,
    2227        0,   509,   509,     0,     0,     0,     0,     0,  1227,     0,
    2228        0,   524,   211,   524,  1231,  1232,   524,   211,   165,   524,
    2229       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2230        0,   369,   497,     0,  1248,     0,     0,  1252,     0,     0,
    2231        0,  1254,     0,     0,     0,     0,     0,     0,    34,     0,
    2232        0,     0,     0,    37,  1262,   183,   184,    40,     0,     0,
    2233        0,     0,     0,     0,    41,    42,     0,  1269,     0,  1271,
    2234     1272,  1273,  1274,     0,     0,     0,     0,     0,     0,     0,
    2235        0,   211,     0,     0,   165,  1281,     0,  1282,     0,     0,
    2236      185,   172,     0,     0,     0,     0,   369,     0,    45,    46,
    2237      811,     0,     0,   211,     0,     0,     0,     0,   235,   237,
    2238        0,     0,     0,     0,     0,     0,   246,     0,     0,     0,
    2239     1310,  1311,     0,     0,     0,     0,   598,     0,     0,     0,
    2240        0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
    2241      369,   369,   369,     0,     0,     0,     0,     0,     0,     0,
    2242        0,     0,     0,     0,     0,     0,     0,     0,   369,   211,
     2383       0,     0,     0,   294,     0,   379,  1146,     0,   171,   509,
     2384     211,    45,    46,   296,   297,   298,   299,     0,     0,     0,
     2385       0,  1056,     0,     0,     0,     0,  -127,     0,     0,     0,
     2386       0,     0,     0,     0,   414,     0,     0,   364,     0,   509,
     2387       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2388      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2389      22,    23,    24,    25,   526,     0,    26,    27,    28,     0,
     2390    1211,     0,     0,     0,     0,    31,   414,     0,     0,     0,
     2391     341,   364,     0,     0,     8,     9,    10,    11,    12,    13,
     2392      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2393      24,    25,  -293,    34,  1223,   211,     0,     0,    37,  1225,
     2394     336,   337,    40,    31,     0,     0,     0,  1229,     0,    41,
     2395      42,     0,     0,     0,     0,   414,   414,     0,     0,     0,
    22432396       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2244     1343,  1344,     0,     0,     0,     0,     0,   211,     0,     0,
    2245     1354,     0,   211,     0,   211,     0,     0,     0,     0,     0,
    2246      524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2247        0,   211,     0,     0,   211,   211,   509,     0,     0,     0,
    2248        0,     0,   211,     0,     0,     0,   369,     0,   935,     0,
    2249        0,     0,   509,     0,     0,     0,   211,     0,     0,     0,
    2250        0,     0,     0,   211,     0,     0,     0,     0,     0,     0,
    2251        0,  1389,     0,  1390,  1391,  1392,     0,     0,     0,     0,
    2252        0,   716,     0,     0,     0,  1396,   156,     0,     0,     0,
    2253        0,     0,     0,     0,  1407,     8,     9,    10,    11,    12,
    2254       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2255       23,    24,    25,     0,     0,    26,    27,    28,     0,  1428,
    2256        0,     0,   509,   509,    31,     0,     0,     8,     9,    10,
    2257       11,    12,     0,   251,     0,     0,     0,   369,     0,     0,
    2258        0,   622,     0,   256,     0,   369,     0,     0,     0,     0,
    2259        0,     0,    34,     0,     0,     0,    31,    37,     0,    38,
    2260       39,    40,  1466,  1467,     0,     0,     0,     0,    41,    42,
    2261        0,     0,     0,     0,     0,  1472,     0,     0,   211,     0,
    2262        0,     0,  1472,     0,    34,     0,     0,     0,     0,    37,
    2263        0,   183,   184,    40,    43,     0,   157,     0,     0,   156,
    2264       41,    42,    45,    46,     0,     0,   211,     0,     0,     0,
    2265        0,   211,     0,   386,  1505,     0,     0,     0,  1511,     0,
    2266        0,     0,     0,     0,     0,     0,   265,     0,     0,     0,
    2267        0,     0,     0,     0,    45,    46,   418,     0,     0,     0,
    2268      716,     0,     0,     0,     0,     0,  1533,     0,  1534,     0,
    2269      433,     0,     0,     0,     0,   524,     0,     0,     0,   438,
    2270        0,     0,     0,     0,     0,     0,     0,     0,     0,   446,
    2271        0,     0,     0,     0,     0,     0,  1549,  1550,     0,   165,
    2272        0,     0,   211,     0,  1553,  1554,     0,     0,     0,     0,
    2273        0,     0,     0,     0,   464,     0,   211,     0,     0,   474,
     2397       0,    34,     0,     0,   803,   364,     0,   338,     0,     0,
     2398    1255,     0,  -293,    45,    46,   613,     0,   613,   613,   509,
     2399       0,     0,  1263,     0,   613,  1264,     0,  1265,     0,     0,
     2400       0,     0,     0,     0,   842,   364,     0,     0,     0,     0,
     2401     364,  1274,  1275,     0,     0,     0,     0,     0,     0,   364,
     2402     364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
     2403       0,     0,     0,  1288,   509,     0,     0,   364,     0,     0,
     2404       0,     0,   414,   884,     0,     0,   414,   887,     0,     0,
     2405       0,     0,     0,   889,     0,     0,     0,     0,     0,     0,
     2406       0,     0,     0,     0,     0,     0,     0,     0,     0,   509,
     2407       0,     0,   414,     0,     0,     0,     0,     0,     0,     0,
     2408    1327,     0,   509,     0,     0,     0,     0,     0,     0,     0,
     2409       0,     0,     0,     0,     0,   364,   613,     0,     0,     8,
     2410       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2411      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2412      27,    28,     0,   509,     0,     0,     0,     0,    31,   341,
     2413     364,     0,     0,     0,   414,   414,     0,     0,     0,     0,
    22742414       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2275        0,     0,   482,     0,     0,     0,   497,     0,   492,     0,
    2276      496,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2277        0,     0,     0,     0,     0,   598,     0,   526,     8,     9,
    2278       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2279       20,    21,    22,    23,    24,    25,   369,   369,    26,    27,
    2280       28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    2281        0,     0,     0,     0,     0,     0,     0,   211,     0,     0,
    2282      586,     0,     0,     0,     0,   591,     0,     0,     0,   211,
    2283        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2284       37,     0,    38,    39,    40,     0,     0,     0,   211,     0,
    2285        0,    41,    42,     0,   636,     0,   524,     0,   637,   638,
    2286        0,   640,     0,     0,     0,     0,     0,     0,   651,   652,
    2287        0,   653,   654,     0,   655,     0,   656,    43,     0,    44,
    2288        0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
    2289        0,     0,     0,   586,     0,     0,     0,     0,     0,     0,
    2290        0,   671,     0,     0,     0,     0,     0,     0,     0,   341,
    2291      364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2292        0,     0,   716,     0,     0,     0,   682,     0,     0,     0,
    2293        0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
    2294       12,     0,     0,   414,     0,     0,     0,     0,     0,     0,
    2295      414,     0,   708,     0,     0,     0,     0,     0,   711,     0,
    2296        0,   211,     0,   464,   218,    31,     8,     9,    10,    11,
     2415       0,     0,     0,     0,     0,  1377,    34,  1378,     0,     0,
     2416       0,     0,     0,   207,    39,     0,     0,     0,     0,  1386,
     2417       0,  1387,     0,     0,     0,     0,     0,     0,   414,     0,
     2418       0,     0,   211,     0,     0,     0,   364,     0,  1394,     0,
     2419       0,     0,     0,   803,   364,     0,     0,   613,     0,   613,
     2420     509,     0,     0,     0,  1412,  1414,    45,    46,     0,   613,
     2421       0,     0,     0,     0,     0,  1419,     0,     0,  1229,     0,
     2422       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2423       0,     0,     0,     0,     0,     0,     0,     0,     0,  1441,
     2424       0,     0,     0,     0,     0,     0,     0,     0,  1448,     0,
     2425       0,  1450,     0,  1452,  1454,  1456,     0,     0,     0,     0,
     2426     509,   509,     8,     9,    10,    11,    12,    13,    14,    15,
     2427      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2428       0,   803,    26,    27,    28,     0,     0,     0,   341,   364,
     2429     414,    31,   414,  1486,     0,  1488,   414,  1229,     0,     0,
     2430       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2431       0,     0,  1499,     0,     0,     0,     0,   613,   613,    34,
     2432       0,     0,     0,     0,    37,     0,    38,    39,    40,     0,
     2433       0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
     2434       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2435       0,     0,   414,     0,     0,     0,     0,     0,     0,     0,
     2436       0,    43,     0,   157,     0,     0,     0,     0,     0,    45,
     2437      46,     0,     0,   414,  1143,     0,     0,     0,     0,     0,
     2438       0,     0,     0,     0,   364,     0,     0,     0,     0,     0,
     2439     414,  1155,     0,   613,   613,  1160,     0,     0,     0,     0,
     2440       0,     0,     0,     0,     0,   364,   364,     0,     0,     0,
     2441       0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
     2442       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    22972443      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2298       22,    23,    24,    25,  -293,     0,    26,    27,    28,     0,
    2299        0,   211,     0,    34,     0,    31,     0,     0,    37,   746,
    2300        0,   716,    40,     0,     0,     0,     0,     0,     0,    41,
    2301       42,     0,     0,     0,   764,     0,     0,     0,     0,     0,
    2302        0,     0,   414,    34,     0,     0,   211,     0,    37,     0,
    2303      336,   337,    40,     0,  -293,   719,     0,   211,     0,    41,
    2304       42,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2305      369,   369,     0,   790,     0,     0,     0,     0,     0,   218,
    2306        0,     0,   800,     0,     0,   635,     0,   338,   321,   802,
    2307        0,     0,     0,    45,    46,   810,     0,   414,   346,     0,
    2308        0,     0,     0,     0,   824,   414,   582,     0,   414,   585,
    2309      382,   382,     0,     0,     0,     0,     0,     0,     0,   364,
    2310        0,     0,     0,   614,     0,     0,     0,     0,     0,   211,
     2444      22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
     2445       0,     0,    30,   282,   283,    31,   284,     0,     0,     0,
     2446       0,     0,     0,     0,     0,   509,     0,     0,   414,     0,
     2447     414,     0,     0,     0,     0,   414,     0,     0,     0,     0,
     2448       0,   509,   285,    34,   613,    35,     0,    36,   286,     0,
     2449      38,    39,   287,     0,     0,   288,   289,   290,   291,    41,
     2450      42,     0,   292,   293,     0,     0,     0,   803,   414,  1243,
    23112451       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2312        0,     0,   632,   211,   864,   341,   205,     2,   206,     4,
    2313        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2314       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2315       25,     0,   414,    26,    27,    28,   414,     0,     0,     0,
    2316      810,   321,    31,     0,     0,     0,     0,     0,   905,     0,
    2317      369,     0,   282,   283,     0,   284,     0,     0,     0,     0,
    2318        0,     0,     0,     0,     0,   478,     0,   364,     0,     0,
    2319       34,     0,    35,     0,    36,     0,     0,   207,    39,   251,
    2320        0,   285,     0,     0,     0,     0,     0,   286,     0,   942,
    2321      943,   287,   211,     0,   288,   289,   290,   291,    41,    42,
    2322        0,   292,   293,     0,     0,     0,   524,     0,   524,     0,
    2323        0,     0,     0,   414,   208,     0,   364,     0,     0,     0,
    2324       45,    46,   980,     0,   294,     0,   379,   984,     0,   380,
    2325        0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
    2326        0,     0,   524,     0,   524,     0,     0,     0,     0,     0,
    2327        0,     0,     0,     0,     0,   414,     0,     0,     0,   341,
    2328      364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2329        0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
    2330        0,     0,   382,     0,     0,     0,     0,   211,     0,     0,
    2331        0,  1018,     0,     0,     0,     0,     0,     0,  1019,     0,
    2332        0,     0,     0,     0,     0,   414,   414,     0,     0,     0,
    2333        0,  1021,     0,  1022,     0,     0,     0,     0,     0,     0,
    2334        0,     0,     0,     0,   804,   364,     0,  1034,     0,     0,
    2335        0,     0,     0,  1038,     0,   614,     0,   614,   614,     0,
    2336        0,     0,     0,     0,   614,  1076,     0,     0,  1077,     0,
    2337        0,     0,     0,     0,   843,   364,     0,     0,     0,     0,
    2338      364,     0,     0,     0,     0,     0,     0,     0,     0,   364,
    2339      364,   364,     0,     0,     0,     0,   710,     0,     0,     0,
    2340        0,     0,     0,     0,     0,     0,     0,   364,     0,     0,
    2341        0,     0,   414,   885,     0,     0,   414,   888,     0,     0,
    2342        0,     0,     0,   890,     0,     0,     0,     0,     0,     0,
    2343        0,     0,     0,     0,     0,   742,     0,     0,     0,     0,
    2344        0,     0,   414,     0,     0,   591,     0,     0,   759,     0,
    2345        0,     0,     0,   742,     0,     0,   742,     0,     0,     0,
    2346        0,     0,     0,     0,     0,   364,   614,     0,     0,   768,
    2347        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2348     1147,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2349        0,   789,     0,     0,     0,     0,     0,     0,     0,   341,
    2350      364,   798,     0,     0,   414,   414,     0,     0,   346,     0,
    2351        0,     0,     0,   759,     0,     0,     0,     0,     0,     0,
    2352        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2353       18,    19,    20,    21,    22,    23,    24,    25,   526,     0,
    2354       26,    27,    28,     0,  1212,     0,     0,     0,   414,    31,
    2355        0,     0,     0,     0,   211,     0,   364,     0,     0,     0,
    2356        0,     0,   863,   804,   364,     0,     0,   614,     0,   614,
    2357      382,     0,     0,     0,     0,     0,     0,    34,  1224,   614,
    2358        0,     0,    37,  1226,   207,    39,    40,     0,     0,     0,
    2359        0,  1230,     0,    41,    42,     0,     8,     9,    10,    11,
    2360       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2361       22,    23,    24,    25,  -293,     0,     0,     0,     0,    43,
    2362        0,   270,     0,     0,  1256,    31,     0,    45,    46,     0,
    2363        0,     0,     0,     0,     0,     0,  1264,     0,     0,  1265,
    2364        0,  1266,     0,     0,     0,     0,     0,     0,     0,     0,
    2365        0,   804,     0,    34,     0,  1275,  1276,     0,   341,   364,
    2366      414,     0,   414,     0,  -293,     0,   414,     0,   759,     0,
    2367      964,     0,     0,     0,     0,     0,     0,  1289,     0,     0,
    2368      975,     0,     0,     0,     0,     0,   983,   614,   614,     0,
    2369        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2370       18,    19,    20,    21,    22,    23,    24,    25,  -294,     0,
    2371        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
    2372        0,     0,   414,     0,  1328,     0,     0,     0,  1001,  1002,
    2373        0,     0,   346,     0,     0,     0,     0,     0,   282,   283,
    2374        0,   284,     0,   414,  1144,     0,   346,    34,     0,     0,
    2375        0,     0,     0,     0,   364,     0,     0,     0,  -294,     0,
    2376      414,  1156,     0,   614,   614,  1161,     0,   285,     0,     0,
    2377        0,     0,     0,   286,     0,   364,   364,   287,     0,     0,
    2378      288,   289,   290,   291,    41,    42,  1032,   292,   293,     0,
    2379      382,     0,     0,     0,     0,     0,     0,     0,     0,  1378,
    2380        0,  1379,     0,     0,     0,     0,     0,     0,     0,     0,
    2381      294,     0,   379,  1387,     0,  1388,     0,   758,    45,    46,
    2382      296,   297,   298,   299,     0,     0,     0,   346,     0,     0,
    2383        0,     0,  1395,     0,     0,     0,     0,     0,   414,     0,
    2384      414,     0,     0,     0,     0,   414,     0,     0,  1413,  1415,
    2385        0,     0,     0,     0,   614,     0,     0,     0,     0,  1420,
    2386        0,     0,  1230,     0,     0,     0,   321,     0,     0,     0,
    2387        0,     0,     0,     0,     0,     0,     0,   804,   414,  1244,
    2388        0,     0,     0,  1442,     0,     0,     0,     0,     0,     0,
    2389        0,     0,  1449,     0,   382,  1451,     0,  1453,  1455,  1457,
    2390      975,   364,     0,     0,   742,   282,   283,     0,   284,     0,
    2391        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2392        0,     0,     0,     0,     0,  1151,     0,     0,     0,     0,
    2393        0,     0,     0,     0,   285,     0,  1166,  1487,     0,  1489,
    2394      641,  1230,   139,   140,   287,     0,     0,   288,   289,   290,
    2395      291,    41,    42,     0,   292,   293,  1500,     0,   382,     0,
    2396     1184,     0,   341,     0,     0,     0,     0,     0,     0,     0,
    2397        0,     0,     0,     0,     0,   975,   975,   294,     0,   642,
    2398      364,   643,   380,     0,     0,    45,    46,   296,   297,   298,
    2399      299,     0,     0,     0,     0,     0,  1216,     0,     0,     0,
    2400        0,     0,     0,     0,     1,     2,   206,     4,     5,     6,
    2401        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2402       17,    18,    19,    20,    21,    22,    23,    24,    25,   364,
    2403      364,    26,    27,    28,    29,     0,     0,    30,     0,     0,
    2404       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2405        0,   975,     0,     0,     0,     0,     0,     0,     0,     0,
    2406        0,     0,     0,     0,     0,     0,     0,     0,    34,   863,
    2407       35,     0,    36,     0,     0,    38,    39,     0,     0,     0,
    2408        0,     0,     0,     0,  1267,  1268,     0,     1,     2,   206,
    2409        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2410       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2411       24,    25,    44,     0,    26,    27,    28,    29,    45,    46,
    2412       30,   282,   283,    31,  1041,  1042,     0,  1043,     0,     0,
    2413     1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,
    2414        0,  1052,     0,     0,     0,  1053,  1054,     0,    33,   364,
    2415      285,    34,     0,    35,     0,    36,  1055,     0,    38,    39,
     2452       0,   282,   283,     0,   284,   294,     0,  1055,     0,     0,
     2453       0,   364,     0,    45,    46,   296,   297,   298,   299,     0,
     2454       0,     0,     0,     0,     0,     0,     0,     0,  -127,     0,
     2455     285,   509,   509,     0,     0,     0,   640,     0,   139,   140,
    24162456     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    24172457     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    24182458       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2419        0,     0,     0,   294,     0,  1056,     0,     0,   171,     0,
     2459       0,     0,   341,   294,     0,   641,     0,   642,   380,     0,
    24202460       0,    45,    46,   296,   297,   298,   299,     0,     0,     0,
    2421        0,  1057,     0,     0,     0,     0,  -128,     0,     0,     0,
    2422        0,     0,     0,     0,     0,  1372,     0,     0,   742,     0,
    2423        0,     0,     0,     0,     0,     0,   414,     0,     0,     0,
     2461     364,     0,     0,     0,     0,     0,     0,     0,     1,     2,
     2462     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2463      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2464      23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
     2465       0,    30,   282,   283,    31,  1040,  1041,     0,  1042,   364,
     2466     364,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,     0,
     2467       0,     0,  1051,     0,     0,     0,  1052,  1053,     0,    33,
     2468       0,   285,    34,     0,    35,     0,    36,  1054,     0,    38,
     2469      39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2470       0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    24242471       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2472       0,     0,     0,     0,   294,     0,  1055,     0,     0,   171,
     2473       0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
     2474       0,     0,  1056,     0,     0,     0,     0,  -127,     0,     0,
     2475       0,     0,     0,     1,     2,   206,     4,     5,     6,     7,
     2476       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2477      18,    19,    20,    21,    22,    23,    24,    25,     0,   364,
     2478      26,    27,    28,    29,     0,     0,    30,   282,   283,    31,
     2479     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2480      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2481       0,    26,    27,    28,     0,     0,   285,    34,     0,    35,
     2482      31,    36,   286,     0,    38,    39,   287,     0,     0,   288,
     2483     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2484       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2485       0,     0,     0,   110,     0,    38,    39,     0,     0,   294,
     2486       0,    44,     0,     0,    41,    42,   414,    45,    46,   296,
     2487     297,   298,   299,     0,     0,     0,     0,     0,     0,     0,
    24252488       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2426      414,   414,     0,     0,     0,     0,     0,     0,     0,     0,
     2489     414,   414,    44,     0,     0,     0,     0,     0,    45,    46,
    24272490       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2428        0,     0,     0,     0,     0,   414,     1,     2,   206,     4,
    2429        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2430       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2431       25,     0,     0,    26,    27,    28,    29,     0,     0,    30,
    2432      282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
    2433       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2434       24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
    2435       34,     0,    35,    31,    36,   286,     0,    38,    39,   287,
    2436        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    2437      293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2438        0,    34,     0,     0,     0,     0,   110,     0,    38,    39,
    2439        0,     0,   294,     0,    44,     0,     0,    41,    42,     0,
    2440       45,    46,   296,   297,   298,   299,     2,   206,     4,     5,
     2491       0,     0,     0,     0,     0,   414,     2,   206,     4,     5,
    24412492       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    24422493      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2443        0,     0,    26,    27,    28,     0,     0,     0,   321,   282,
     2494       0,     0,    26,    27,    28,     0,     0,     0,     0,   282,
    24442495     283,    31,   284,     8,     9,    10,    11,    12,    13,    14,
    24452496      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    24482499       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
    24492500       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2450       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2451        0,   294,     0,   343,     0,     0,     0,     0,   758,   344,
     2501      34,     0,     0,     0,     0,   110,     0,    38,    39,     0,
     2502       0,   294,     0,   343,     0,     0,    41,    42,   757,   344,
    24522503      46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
    24532504       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     
    24602511     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    24612512       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2462        0,     0,     0,     0,     0,     0,   207,    39,     0,     0,
    2463      294,     0,   963,     0,     0,     0,     0,   758,   344,    46,
     2513       0,     0,     0,     0,     0,     0,    38,    39,     0,     0,
     2514     294,     0,   962,     0,     0,     0,     0,   757,   344,    46,
    24642515     296,   297,   298,   299,     2,   206,     4,     5,     6,     7,
    24652516       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     
    24682519     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24692520      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2470        0,     0,     0,     0,     0,     0,   285,    34,     0,    35,
     2521       0,    26,    27,    28,     0,     0,   285,    34,     0,    35,
    24712522      31,    36,   286,     0,    38,    39,   287,     0,     0,   288,
    24722523     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    24732524       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2474        0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2475        0,   963,     0,     0,     0,     0,   758,    45,    46,   296,
     2525       0,     0,     0,     0,     0,   207,    39,     0,     0,   294,
     2526       0,   962,     0,     0,     0,     0,   757,    45,    46,   296,
    24762527     297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
    24772528       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     
    24962547     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    24972548       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2498        0,     0,     0,     0,     0,     0,     0,   294,     0,   998,
    2499        0,     0,     0,     0,     0,   999,    46,   296,   297,   298,
     2549       0,     0,     0,     0,     0,     0,     0,   294,     0,   997,
     2550       0,     0,     0,     0,     0,   998,    46,   296,   297,   298,
    25002551     299,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    25012552      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     
    25082559      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    25092560       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2510        0,     0,     0,     0,     0,     0,   294,     0,   963,     0,
     2561       0,     0,     0,     0,     0,     0,   294,     0,   962,     0,
    25112562       0,     0,     0,     0,   344,    46,   296,   297,   298,   299,
    25122563       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     
    25212572       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25222573       0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
    2523        0,     0,     0,    45,    46,   296,   297,   298,   299,  -516,
     2574       0,     0,     0,    45,    46,   296,   297,   298,   299,  -515,
    25242575       0,     0,     1,     2,     3,     4,     5,     6,     7,     8,
    25252576       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     
    25452596       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25462597       0,     0,     0,     0,    43,     0,    44,     0,     0,     0,
    2547     -520,     0,    45,    46,     1,     2,     3,     4,     5,     6,
     2598    -519,     0,    45,    46,     1,     2,     3,     4,     5,     6,
    25482599       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    25492600      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     
    25712622       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25722623      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2573       25,  -293,     0,    26,    27,    28,    29,     0,     0,    30,
     2624      25,  -292,     0,    26,    27,    28,    29,     0,     0,    30,
    25742625       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    25752626       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25762627       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25772628      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
    2578        0,  -293,     2,   206,     4,     5,     6,     7,     8,     9,
     2629       0,  -292,     1,     2,   206,     4,     5,     6,     7,     8,
     2630       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2631      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2632      27,    28,    29,     0,    44,    30,     0,     0,    31,     0,
     2633      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2634       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2635       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2636      36,     0,     0,    38,    39,   205,     2,   206,     4,     5,
     2637       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2638      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2639       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2640      44,    31,     0,     0,     0,     0,    45,    46,     0,     0,
     2641       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2642       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2643       0,    35,     0,    36,     0,     0,   207,    39,     0,     2,
     2644     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2645      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2646      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2647       0,     0,     0,   208,    31,     0,     0,     0,     0,    45,
     2648      46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2649       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2650       0,     0,    34,     0,    35,     0,    36,    37,     0,   207,
     2651      39,    40,     0,     0,     0,     0,     0,     0,    41,    42,
     2652       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2653       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2654       0,     0,     0,     0,    43,     0,   208,     0,     0,     0,
     2655       0,     0,    45,    46,     2,   206,     4,     5,     6,     7,
     2656       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2657      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2658      26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
     2659       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2660      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2661      24,    25,     0,     0,    26,    27,    28,    34,     0,    35,
     2662       0,    36,     0,    31,    38,    39,     0,     2,   206,     4,
     2663       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2664      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2665      25,    34,     0,    26,    27,    28,     0,     0,    38,    39,
     2666    -399,   677,    31,     0,     0,     0,     0,    45,    46,     0,
     2667       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2668       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2669      34,     0,    35,     0,    36,   157,     0,    38,    39,     0,
     2670       0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
     2671       0,     0,     0,     0,     0,     0,     0,     0,     0,  1350,
     2672       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2673       0,     0,     0,     0,   677,     0,     0,     0,     0,     0,
     2674      45,    46,     2,   206,     4,     5,     6,     7,     8,     9,
    25792675      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    25802676      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2581       28,     0,     0,     0,    44,     0,     0,    31,     0,     0,
    2582       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2677      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     2678       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2679      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2680       0,    26,    27,    28,     0,    34,     0,    35,     0,    36,
     2681      31,   684,    38,    39,     0,     0,     0,     0,     0,     0,
    25832682       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2584        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2585       37,     0,   207,    39,    40,     0,     0,     0,     0,     0,
    2586        0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2587        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2588        0,     0,     0,     0,     0,     0,     0,    43,     0,   208,
     2683       0,     0,     0,     0,  1352,     0,     0,     0,    34,     0,
     2684       0,     0,     0,     0,     0,    38,    39,     0,     0,   677,
    25892685       0,     0,     0,     0,     0,    45,    46,     2,   206,     4,
    25902686       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25912687      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2592       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2593        0,     0,    31,     0,     0,     0,     0,     8,     9,    10,
    2594       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2595       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2596       34,     0,    35,     0,    36,     0,    31,    38,    39,     0,
     2688      25,     0,   685,    26,    27,    28,  1091,     0,    45,    46,
     2689       0,     0,    31,     0,     0,     0,     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      34,     0,    35,     0,    36,     0,     0,   207,    39,     0,
    25972693       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    25982694      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2599       22,    23,    24,    25,    34,     0,    26,    27,    28,     0,
    2600        0,    38,    39,  -400,   678,    31,     0,     0,     0,     0,
     2695      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2696       0,     0,     0,     0,   270,    31,     0,     0,     0,     0,
    26012697      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    26022698       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2603        0,     0,     0,    34,     0,    35,   635,    36,   338,     0,
    2604       38,    39,     0,     0,    45,    46,     0,     0,     0,     0,
    2605        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2606        0,     0,  1351,     0,     0,     0,     0,     0,     0,     0,
    2607        0,     0,     0,     0,     0,     0,     0,   678,     0,     0,
    2608        0,     0,     0,    45,    46,     2,   206,     4,     5,     6,
    2609        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2610       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2611        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2612       31,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2613       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2614       24,    25,     0,     0,    26,    27,    28,     0,    34,     0,
    2615       35,     0,    36,    31,   685,    38,    39,     0,     0,     0,
    2616        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2617        0,     0,     0,     0,     0,     0,     0,  1353,     0,     0,
    2618        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2619        0,     0,   678,     0,     0,     0,     0,     0,    45,    46,
    2620        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2621       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2622       22,    23,    24,    25,     0,   686,    26,    27,    28,   687,
    2623        0,    45,    46,     0,     0,    31,     0,     0,     0,     0,
    2624        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2625        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26262699       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2627      207,    39,     0,     2,   206,     4,     5,     6,     7,     8,
     2700      38,    39,     0,     2,   206,     4,     5,     6,     7,     8,
    26282701       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26292702      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2630       27,    28,     0,     0,     0,     0,     0,   270,    31,     0,
     2703      27,    28,     0,     0,     0,     0,     0,   677,    31,     0,
    26312704       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    26322705       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    26362709      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26372710       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2638      678,    31,     0,     0,     0,     0,    45,    46,     0,     0,
     2711     592,    31,     0,     0,     0,     0,    45,    46,     0,     0,
    26392712       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26402713       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2641        0,    35,     0,    36,     0,     0,    38,    39,     0,     2,
    2642      206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2643       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2644       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2645        0,     0,     0,   593,    31,     0,     0,     0,     0,    45,
     2714       0,    35,     0,    36,     0,     0,   207,    39,     8,     9,
     2715      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2716      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2717      28,     0,     0,     0,     0,   282,   283,    31,   284,     0,
     2718       0,     0,     0,   208,     0,     0,     0,     0,     0,    45,
    26462719      46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2720       0,     0,     0,     0,   285,    34,     0,     0,     0,     0,
     2721     286,     0,    38,    39,   287,     0,     0,   288,   289,   290,
     2722     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    26472723       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2648        0,     0,    34,     0,    35,     0,    36,     0,     0,   207,
    2649       39,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2724       0,     0,     0,     0,     0,     0,     0,   294,     0,   517,
     2725       0,     0,   171,     0,     0,    45,    46,   296,   297,   298,
     2726     299,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26502727      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    26512728       0,    26,    27,    28,     0,     0,     0,     0,   282,   283,
    2652       31,   284,     0,     0,     0,     0,   208,     0,     0,     0,
    2653        0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
    2654        0,     0,     0,     0,     0,     0,     0,   285,    34,     0,
    2655        0,     0,     0,   286,     0,    38,    39,   287,     0,     0,
     2729      31,   284,     8,     9,    10,    11,    12,    13,    14,    15,
     2730      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2731       0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
     2732       0,    31,   684,   286,     0,    38,    39,   287,     0,     0,
    26562733     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    2657        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2658        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2659      294,     0,   517,     0,     0,   171,     0,     0,    45,    46,
     2734       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2735       0,     0,     0,     0,     0,     0,    38,    39,     0,     0,
     2736     294,   -36,   295,     0,     0,     0,     0,     0,    45,    46,
    26602737     296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
    26612738      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2662       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2663        0,   282,   283,    31,   284,     8,     9,    10,    11,    12,
     2739      24,    25,     0,   685,    26,    27,    28,  1220,     0,    45,
     2740      46,   282,   283,    31,   284,     8,     9,    10,    11,    12,
    26642741      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26652742      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     
    26672744     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    26682745     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2669        0,     0,    34,     0,     0,     0,     0,    37,     0,   336,
    2670      337,    40,     0,   294,   -36,   295,     0,     0,    41,    42,
     2746       0,     0,    34,     0,     0,     0,     0,     0,     0,   207,
     2747      39,     0,     0,   294,     0,   295,     0,     0,     0,     0,
    26712748       0,    45,    46,   296,   297,   298,   299,     8,     9,    10,
    26722749      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2673       21,    22,    23,    24,    25,     0,   338,    26,    27,    28,
     2750      21,    22,    23,    24,    25,     0,   270,    26,    27,    28,
    26742751       0,     0,    45,    46,   282,   283,    31,   284,     8,     9,
    26752752      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     
    26792756      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    26802757       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2681      110,     0,    38,    39,     0,     0,   294,     0,   295,     0,
    2682        0,    41,    42,     0,    45,    46,   296,   297,   298,   299,
     2758       0,     0,    38,    39,     0,     0,   294,     0,   157,     0,
     2759       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
    26832760       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2684       18,    19,    20,    21,    22,    23,    24,    25,     0,    44,
     2761      18,    19,    20,    21,    22,    23,    24,    25,     0,   338,
    26852762      26,    27,    28,     0,     0,    45,    46,   282,   283,    31,
    26862763     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26872764      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    26882765       0,    26,    27,    28,     0,     0,   285,    34,     0,     0,
    2689       31,   685,   286,     0,    38,    39,   287,     0,     0,   288,
     2766      31,     0,   286,     0,    38,    39,   287,     0,     0,   288,
    26902767     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    26912768       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    26922769       0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
    2693        0,   157,     0,     0,     0,     0,     0,    45,    46,   296,
     2770       0,   592,     0,     0,     0,     0,     0,    45,    46,   296,
    26942771     297,   298,   299,     8,     9,    10,    11,    12,    13,    14,
    26952772      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2696       25,     0,   686,    26,    27,    28,  1092,     0,    45,    46,
    2697      282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
    2698       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2699       24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
    2700       34,     0,     0,    31,   685,   286,     0,    38,    39,   287,
    2701        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2773      25,     0,   685,    26,    27,    28,     0,     0,    45,    46,
     2774     282,   283,    31,   284,     0,     0,     0,     0,     0,     0,
     2775       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2776      17,    18,    19,    20,    21,    22,    23,    24,    25,   285,
     2777      34,    26,    27,    28,     0,   286,     0,    38,    39,   287,
     2778      31,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    27022779     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2703        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2704        0,     0,   294,     0,   593,     0,     0,     0,     0,     0,
    2705       45,    46,   296,   297,   298,   299,     8,     9,    10,    11,
     2780       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2781       0,     0,   294,     0,   379,    38,    39,     0,     0,     0,
     2782      45,    46,   296,   297,   298,   299,   467,     2,   206,     4,
     2783       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2784      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2785      25,     0,   592,    26,    27,    28,     0,     0,    45,    46,
     2786       0,     0,    31,     0,     0,     0,     8,     9,    10,    11,
    27062787      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2707       22,    23,    24,    25,     0,   686,    26,    27,    28,  1221,
    2708        0,    45,    46,   282,   283,    31,   284,     0,     0,     0,
     2788      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2789      34,     0,    35,     0,    36,    31,     0,    38,    39,     0,
    27092790       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    27102791      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2711       24,    25,   285,    34,    26,    27,    28,     0,   286,     0,
    2712       38,    39,   287,    31,     0,   288,   289,   290,   291,    41,
    2713       42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
     2792      24,    25,     0,    34,    26,    27,    28,     0,    37,     0,
     2793      38,    39,    40,    31,     0,     0,     0,    -3,     0,    41,
     2794      42,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2795      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2796       0,    34,    26,    27,    28,    43,    37,    44,   207,    39,
     2797      40,    31,     0,    45,    46,     0,     0,    41,    42,     0,
     2798       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2799      18,    19,    20,    21,    22,    23,    24,    25,  -292,    34,
     2800      26,    27,    28,    43,    37,   270,   336,   337,    40,    31,
     2801       0,    45,    46,     0,     0,    41,    42,     0,     8,     9,
     2802      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2803      20,    21,    22,    23,    24,    25,  -292,    34,    26,    27,
     2804      28,   634,     0,   338,    38,    39,     0,    31,  -292,    45,
     2805      46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2806      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2807       0,    26,    27,    28,     0,    34,     0,     0,     0,   634,
     2808      31,   338,    38,    39,     0,     0,  -292,    45,    46,     0,
    27142809       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2715        0,    34,     0,     0,     0,   294,     0,   379,    38,    39,
    2716        0,     0,     0,    45,    46,   296,   297,   298,   299,   467,
     2810       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2811       0,     0,     0,     0,     0,    38,    39,     0,     0,   338,
     2812       0,     0,     0,     0,     0,    45,    46,     2,   206,     4,
     2813       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2814      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2815      25,     0,    44,    26,    27,    28,     0,     0,    45,    46,
     2816       0,     0,    31,     0,   282,   283,     0,   284,  1041,     0,
     2817    1042,     0,     0,  1043,  1044,  1045,  1046,  1047,  1048,  1049,
     2818    1050,     0,     0,     0,  1051,     0,     0,     0,  1052,  1053,
     2819      34,    33,    35,   285,    36,     0,     0,    38,    39,  1054,
     2820       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2821      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2822       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2823       0,     0,     0,  -412,     0,     0,   294,     0,   379,     0,
     2824       0,   171,     0,     0,    45,    46,   296,   297,   298,   299,
     2825       0,     0,     0,     0,  1056,     0,     0,     0,     0,  -127,
    27172826       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    27182827      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2719       22,    23,    24,    25,     0,   257,    26,    27,    28,     0,
    2720        0,    45,    46,     0,     0,    31,     0,     0,     0,     8,
    2721        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2722       19,    20,    21,    22,    23,    24,    25,  -293,     0,    26,
    2723       27,    28,     0,    34,     0,    35,     0,    36,    31,     0,
    2724       38,    39,     0,     0,     0,     0,     0,     8,     9,    10,
    2725       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2726       21,    22,    23,    24,    25,     0,    34,    26,    27,    28,
    2727        0,    37,     0,   336,   337,    40,    31,  -293,     0,     0,
    2728       -3,     0,    41,    42,     0,     8,     9,    10,    11,    12,
    2729       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2730       23,    24,    25,  -293,    34,    26,    27,    28,     0,    37,
    2731      338,   336,   337,    40,    31,     0,    45,    46,     0,     0,
    2732       41,    42,     0,     8,     9,    10,    11,    12,    13,    14,
    2733       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2734       25,     0,    34,    26,    27,    28,   635,     0,   338,    38,
    2735       39,     0,    31,  -293,    45,    46,     8,     9,    10,    11,
    2736       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    27372828      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2738       34,     0,     0,     0,     0,    31,   338,    38,    39,     0,
    2739        0,     0,    45,    46,     8,     9,    10,    11,    12,    13,
    2740       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2741       24,    25,     0,    34,    26,    27,    28,     0,     0,     0,
    2742      207,    39,     0,    31,   157,     0,     0,     0,     0,     0,
    2743       45,    46,     8,     9,    10,    11,    12,    13,    14,    15,
    2744       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2745        0,    34,    26,    27,    28,     0,     0,   270,    38,    39,
    2746        0,    31,     0,    45,    46,     8,     9,    10,    11,    12,
    2747       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2748       23,    24,    25,     0,     0,    26,    27,    28,     0,    34,
    2749        0,     0,     0,     0,    31,   338,    38,    39,     0,     0,
    2750        0,    45,    46,     8,     9,    10,    11,    12,    13,    14,
    2751       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2752       25,     0,    34,    26,    27,    28,     0,     0,     0,    38,
    2753       39,     0,    31,   686,     0,     0,     0,     0,     0,    45,
    2754       46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2755       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2756       34,    26,    27,    28,     0,     0,   593,    38,    39,     0,
    2757       31,     0,    45,    46,     2,   206,     4,     5,     6,     7,
    2758        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2759       18,    19,    20,    21,    22,    23,    24,    25,    34,     0,
    2760       26,    27,    28,     0,    44,   207,    39,     0,     0,    31,
    2761       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2829       0,     0,     0,     0,     0,    31,     0,   282,   283,     0,
     2830     284,  1041,     0,  1042,  1398,  1399,  1043,  1044,  1045,  1046,
     2831    1047,  1048,  1049,  1050,     0,     0,  1524,  1051,     0,     0,
     2832       0,  1052,  1053,    34,    33,    35,   285,    36,     0,     0,
     2833      38,    39,  1054,     0,     0,     0,   287,     0,     0,   288,
     2834     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2835       0,     0,  1311,     0,     0,     0,     0,     0,     0,     0,
     2836       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
     2837       0,   379,     0,     0,   171,     0,     0,    45,    46,   296,
     2838     297,   298,   299,     0,     0,   282,   283,  1056,   284,  1041,
     2839       0,  1042,  1398,  1399,  1043,  1044,  1045,  1046,  1047,  1048,
     2840    1049,  1050,     0,     0,     0,  1051,     0,     0,     0,  1052,
     2841    1053,     0,    33,     0,   285,     0,     0,     0,     0,     0,
     2842    1054,     0,     0,     0,   287,     0,     0,   288,   289,   290,
     2843     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    27622844       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2763        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2764        0,    36,     0,     0,    38,    39,     0,     0,    45,    46,
    2765      282,   283,     0,   284,  1042,     0,  1043,     0,     0,  1044,
    2766     1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,  1525,
    2767     1052,     0,     0,     0,  1053,  1054,     0,    33,     0,   285,
    2768     -413,     0,     0,     0,     0,  1055,     0,     0,     0,   287,
     2845       0,     0,     0,     0,     0,     0,     0,   294,     0,   379,
     2846       0,     0,   171,     0,     0,    45,    46,   296,   297,   298,
     2847     299,     0,     0,   282,   283,  1056,   284,  1041,     0,  1042,
     2848       0,     0,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,
     2849       0,     0,     0,  1051,     0,     0,     0,  1052,  1053,     0,
     2850      33,     0,   285,     0,     0,     0,     0,     0,  1054,     0,
     2851       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
     2852      42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
     2853     282,   283,     0,   284,     0,     0,     0,     0,     0,     0,
     2854       0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
     2855     171,     0,     0,    45,    46,   296,   297,   298,   299,   285,
     2856       0,     0,     0,  1056,     0,   286,     0,     0,     0,   287,
    27692857       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    2770      293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2771        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2772        0,     0,   294,     0,   379,     0,     0,   171,     0,     0,
    2773       45,    46,   296,   297,   298,   299,     0,     0,   282,   283,
    2774     1057,   284,  1042,     0,  1043,  -128,     0,  1044,  1045,  1046,
    2775     1047,  1048,  1049,  1050,  1051,     0,     0,     0,  1052,     0,
    2776        0,     0,  1053,  1054,     0,    33,     0,   285,     0,     0,
    2777        0,     0,     0,  1055,     0,     0,     0,   287,     0,     0,
    2778      288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    2779        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2780        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2781      294,     0,   379,     0,     0,   171,     0,     0,    45,    46,
    2782      296,   297,   298,   299,     0,     0,     0,     0,  1057,     0,
    2783        0,     0,     0,  -128,     2,   206,     4,     5,     6,     7,
    2784        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2785       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2786       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2787        0,   282,   283,     0,   284,  1042,     0,  1043,  1399,  1400,
    2788     1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,
    2789     1525,  1052,     0,     0,     0,  1053,  1054,    34,    33,    35,
    2790      285,    36,     0,     0,    38,    39,  1055,     0,     0,     0,
    2791      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2792      292,   293,     0,     0,     0,     0,  1312,     0,     0,     0,
    2793        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2794        0,     0,     0,   294,     0,   379,     0,     0,   171,     0,
    2795        0,    45,    46,   296,   297,   298,   299,     0,     0,   282,
    2796      283,  1057,   284,  1042,     0,  1043,  1399,  1400,  1044,  1045,
    2797     1046,  1047,  1048,  1049,  1050,  1051,     0,     0,     0,  1052,
    2798        0,     0,     0,  1053,  1054,     0,    33,     0,   285,     0,
    2799        0,     0,     0,     0,  1055,     0,     0,     0,   287,     0,
    2800        0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
    2801        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2802        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2803        0,   294,     0,   379,     0,     0,   171,     0,     0,    45,
    2804       46,   296,   297,   298,   299,     0,     0,   282,   283,  1057,
    2805      284,  1042,     0,  1043,     0,     0,  1044,  1045,  1046,  1047,
    2806     1048,  1049,  1050,  1051,     0,     0,     0,  1052,     0,     0,
    2807        0,  1053,  1054,     0,    33,     0,   285,     0,     0,     0,
    2808        0,     0,  1055,     0,     0,     0,   287,     0,     0,   288,
     2858     293,     0,     0,     0,     0,     0,     0,   282,   283,     0,
     2859     284,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2860       0,     0,   294,     0,   379,     0,     0,     0,     0,   757,
     2861      45,    46,   296,   297,   298,   299,   285,     0,     0,     0,
     2862       0,     0,   286,     0,     0,     0,   287,     0,     0,   288,
    28092863     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    28102864       0,     0,     0,     0,   282,   283,     0,   284,     0,     0,
    28112865       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2812        0,   379,     0,     0,   171,     0,     0,    45,    46,   296,
    2813      297,   298,   299,   285,     0,     0,     0,  1057,     0,   286,
     2866       0,   379,     0,     0,   971,     0,     0,    45,    46,   296,
     2867     297,   298,   299,   285,     0,     0,     0,     0,     0,   286,
    28142868       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    28152869      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    28162870       0,   282,   283,     0,   284,     0,     0,     0,     0,     0,
    28172871       0,     0,     0,     0,     0,     0,   294,     0,   379,     0,
    2818        0,   972,     0,     0,    45,    46,   296,   297,   298,   299,
     2872     282,   283,     0,   284,    45,    46,   296,   297,   298,   299,
    28192873     285,     0,     0,     0,     0,     0,   286,     0,     0,     0,
    2820      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2821      292,   293,     0,     0,     0,     0,     0,     0,   282,   283,
    2822        0,   284,     0,     0,     0,     0,     0,     0,     0,     0,
    2823        0,     0,     0,   294,     0,   379,     0,   282,   283,     0,
    2824      284,    45,    46,   296,   297,   298,   299,   285,     0,     0,
    2825        0,     0,     0,   286,     0,     0,     0,   287,     0,     0,
    2826      288,   289,   290,   291,    41,    42,   285,   292,   293,     0,
     2874     287,     0,     0,   288,   289,   290,   291,    41,    42,   285,
     2875     292,   293,     0,     0,     0,   286,     0,     0,     0,   287,
     2876       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2877     293,     0,     0,   294,     0,   379,     0,   282,   283,     0,
     2878     284,   708,    46,   296,   297,   298,   299,     0,     0,     0,
     2879       0,     0,   294,     0,   379,     0,     0,     0,     0,     0,
     2880     344,    46,   296,   297,   298,   299,   285,     0,     0,     0,
    28272881       0,     0,   286,     0,     0,     0,   287,     0,     0,   288,
    28282882     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    2829      294,     0,   379,     0,   282,   283,     0,   284,   709,    46,
    2830      296,   297,   298,   299,     0,     0,     0,     0,     0,   294,
    2831        0,   379,     0,   282,   283,     0,   284,   344,    46,   296,
    2832      297,   298,   299,   285,     0,     0,     0,     0,     0,   286,
    2833        0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    2834       41,    42,   285,   292,   293,     0,     0,     0,   286,     0,
    2835        0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2836       42,     0,   292,   293,     0,     0,   506,     0,     0,     0,
    2837      282,   283,     0,   284,    45,    46,   296,   297,   298,   299,
    2838        0,     0,     0,     0,     0,   294,     0,     0,     0,   282,
    2839      283,     0,   284,    45,    46,   296,   297,   298,   299,   285,
    2840        0,     0,     0,     0,     0,   286,     0,     0,     0,   287,
    2841        0,     0,   288,   289,   290,   291,    41,    42,   285,   292,
    2842      293,     0,     0,     0,   286,     0,     0,     0,   287,     0,
    2843        0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
    2844        0,     0,   511,     0,     0,     0,     0,     0,     0,     0,
    2845       45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
    2846        0,   514,     0,     0,     0,     0,     0,     0,     0,    45,
    2847       46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
     2883       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2884       0,     0,     0,     0,     0,     0,     0,     0,     0,   514,
     2885       0,     0,     0,     0,     0,     0,     0,    45,    46,   296,
     2886     297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
     2887       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2888      19,    20,    21,    22,    23,    24,    25,     0,     0,     0,
     2889       0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
     2890       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2891       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2892       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2893      36,    37,     0,   174,   175,    40,     0,     0,     0,     0,
     2894       0,     0,    41,    42,   205,     2,   206,     4,     5,     6,
    28482895       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    28492896      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2850        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2897       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    28512898      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28522899       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28532900       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2854       35,     0,    36,    37,     0,   174,   175,    40,     0,     0,
    2855        0,     0,     0,     0,    41,    42,   205,     2,   206,     4,
    2856        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2857       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2858       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2859        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2901      35,     0,    36,     0,     0,   207,    39,   467,     2,   206,
     2902       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2903      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2904      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2905       0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
    28602906       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28612907       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2862       34,     0,    35,     0,    36,     0,     0,   207,    39,   467,
     2908       0,    34,     0,    35,     0,    36,     0,     0,    38,    39,
    28632909       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    28642910      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     
    28682914       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28692915       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2870       38,    39,     2,   206,     4,     5,     6,     7,     8,     9,
    2871       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2872       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2873       28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    2874        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2875        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2876        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2877        0,     0,   207,    39
     2916     207,    39
    28782917};
    28792918
    28802919#define yypact_value_is_default(yystate) \
    2881   ((yystate) == (-1323))
     2920  ((yystate) == (-1390))
    28822921
    28832922#define yytable_value_is_error(yytable_value) \
     
    28862925static const yytype_int16 yycheck[] =
    28872926{
    2888        0,     1,   186,    43,   239,   185,   204,     0,    43,   219,
    2889       43,   116,   185,   521,   534,   185,     1,   875,   186,     0,
    2890        1,   185,   757,    51,   647,   603,   750,   185,     0,     1,
    2891      281,   621,    32,   750,  1041,     0,  1022,    43,   185,    32,
    2892      345,   185,   750,    43,   168,   169,   513,   349,   875,    49,
    2893      156,    32,   603,    32,     0,   693,    49,   349,   187,     0,
    2894       32,   572,    57,    63,   601,  1322,    66,    32,    43,    69,
    2895       63,     0,     1,    66,   696,    63,    69,  1399,   734,   492,
    2896        0,   109,   266,   496,    69,   265,    32,   601,    69,    39,
    2897       39,    32,   265,   490,    66,   265,   201,    69,   266,   601,
    2898       39,   265,    43,    32,   604,   105,   601,   265,    49,    49,
    2899      610,   106,    32,   113,   109,   418,   116,   117,   265,    82,
    2900       66,   265,    63,    63,    39,    66,    66,    39,    69,    69,
    2901      601,   984,   261,   262,   284,   438,    43,    66,    28,   601,
    2902       69,   105,    72,   446,   132,   185,   146,   147,  1470,   601,
    2903      185,    72,   185,    49,   147,   155,   156,   307,   308,   109,
    2904      160,   111,   111,  1420,    39,   787,    82,   160,    72,   364,
    2905      109,    39,   111,   368,  1021,  1022,    82,   482,    96,   185,
    2906      688,  1034,   906,  1116,   156,   185,   186,  1120,    78,   906,
    2907      156,   155,     0,   186,   110,   345,   488,   109,   906,   111,
    2908      410,   201,   132,    96,   122,   111,   147,   147,   605,   209,
    2909      185,   132,   609,   117,  1041,    64,   209,   113,   109,   160,
    2910      160,   221,   406,   218,    32,   265,   109,   110,   221,   122,
    2911      265,   381,   265,   630,   109,   256,   111,   634,   406,   239,
    2912     1226,   109,   864,   111,   185,   186,   186,   825,   719,   221,
    2913      146,   251,   987,   504,    57,    44,    45,   719,   251,   259,
    2914      109,   426,   427,   901,   264,   265,   266,   719,   209,   209,
    2915      251,   271,   251,   266,   825,   221,   813,   272,   185,   251,
    2916      221,   221,  1289,   794,   279,   907,   251,   109,   696,    85,
    2917     1276,   396,   221,  1502,   294,    49,   480,   636,   637,   813,
    2918      109,   603,   925,   106,  1453,   251,   109,   307,  1053,  1054,
    2919      251,   813,   480,   209,   653,   815,   621,   113,   813,   424,
    2920     1529,   626,   251,   323,   265,   430,   115,   433,   328,   494,
    2921      952,   251,    95,    44,    45,   328,   107,   112,  1487,   116,
    2922     1489,   341,   813,   239,   109,   345,   111,   109,   513,   349,
    2923      350,   813,   155,   348,  1212,   132,   934,     0,   110,   113,
    2924      131,   813,    44,    45,   364,   987,   129,  1473,   368,   131,
    2925      365,   371,   711,  1479,   369,   271,   116,   341,   130,   682,
    2926       72,    11,    74,    75,  1129,  1212,   228,   328,   328,    32,
    2927      130,    83,    84,  1499,  1050,   590,   396,   418,  1504,   114,
    2928      550,   551,   552,   114,   350,   247,   406,   371,   349,  1395,
    2929     1000,   307,   110,   406,   579,   218,  1038,   438,   116,   933,
    2930      526,   109,   114,   111,   424,   446,   426,   427,  1275,  1276,
    2931      430,   933,   114,   433,    72,  1442,   110,   632,   933,   110,
    2932       72,   746,  1449,   251,  1502,    83,    84,   110,   256,   345,
    2933      847,    83,    84,   116,   454,   209,   130,   119,   120,   130,
    2934      968,   433,  1289,   802,  1522,   406,   406,   433,   110,   272,
    2935      112,  1529,   472,   111,   116,   128,   279,   110,   131,   111,
    2936      480,   116,   482,   116,   484,   591,   737,   480,   488,   131,
    2937      132,   484,    70,  1500,   494,    73,  1118,   132,    76,   907,
    2938       78,    90,    91,   484,   688,  1128,   506,    85,   508,  1009,
    2939     1010,   511,   484,   513,   514,   982,   482,   271,   116,   484,
    2940      688,   521,  1100,   825,   648,   525,   526,   473,   657,   942,
    2941      426,   427,   130,   825,  1387,  1388,   125,   126,   484,   109,
    2942      294,   111,   939,   484,   952,   348,   110,   488,  1395,   116,
    2943      655,   116,   116,   307,   526,   484,  1178,  1179,    72,   116,
    2944      526,   525,   365,   130,   484,    72,   369,    74,    75,    83,
    2945       84,   571,   572,    88,    89,   132,    83,    84,  1086,   579,
    2946     1403,    72,     3,  1091,     4,     5,     6,     7,     8,     9,
    2947      590,   591,    83,    84,    72,   595,   116,   111,   494,     3,
    2948      905,   601,     1,   603,   111,    83,    84,   757,   251,   804,
    2949      418,   116,   132,   256,   809,  1442,     0,   513,   110,   591,
    2950      111,   621,  1449,     0,   116,   591,   626,   622,   628,   432,
    2951      438,   109,   632,  1289,   212,   635,   636,   637,   446,   111,
    2952      111,   113,   113,   638,   112,   109,   938,   111,   116,    69,
    2953      116,    71,   862,   653,   116,   655,   109,   652,   130,   130,
    2954      601,   682,   603,   635,   636,   637,   132,   109,   116,   111,
    2955      132,   591,   882,  1500,  1497,   116,   484,   623,   116,  1502,
    2956      116,   653,   131,   579,   132,   685,    72,   708,   688,   116,
    2957       76,   132,   116,   109,   132,  1000,   132,    83,    84,  1522,
    2958      454,   279,   897,    72,   810,   132,  1529,  1363,   132,   944,
    2959     1118,   711,   712,   713,    83,    84,   110,   109,   116,   719,
    2960      720,   116,   116,   109,   908,   621,   906,    92,    93,   110,
    2961      626,   117,   118,   906,   132,   116,   906,   132,   733,   711,
    2962      908,   109,   906,   110,   868,   745,   746,   688,   906,   116,
    2963      750,   751,   506,   699,   508,   109,   109,   511,   111,   906,
    2964      514,  1383,   906,   110,   117,   118,   294,   713,   112,   116,
    2965     1178,  1179,   116,   109,   352,   418,   354,  1399,   719,   720,
    2966      746,   745,  1506,   109,   112,   111,  1306,   590,   116,  1506,
    2967     1446,   109,  1448,   111,   794,   438,   109,   112,  1506,   117,
    2968      118,   116,   802,   446,   804,    72,   806,    74,    75,   809,
    2969      810,   110,   109,   813,   111,  1013,    83,    84,   110,   622,
    2970      117,   118,    72,   110,   116,   825,    76,   110,   112,   116,
    2971      802,   110,   116,    83,    84,   638,   110,   116,   810,   482,
    2972      110,   484,  1147,   112,   810,  1501,   116,  1469,  1470,   652,
    2973     1000,   115,   116,   252,    10,    11,    12,    13,    14,   109,
    2974      806,   111,   110,   111,   442,  1116,   109,   117,   118,  1120,
    2975     1121,   110,   813,   117,   682,   875,   110,   116,     3,   123,
    2976      124,   110,   116,    39,   825,    10,    11,    12,    13,    14,
    2977      810,  1041,    58,    59,   875,   110,   110,   897,   426,   427,
    2978      708,   116,  1086,   875,   904,   905,   906,  1091,   908,   110,
    2979      110,    67,  1036,   109,    39,    72,   116,   115,  1086,    76,
    2980      920,  1226,   109,  1091,   111,   109,    83,    84,  1123,   875,
    2981      733,   685,    64,   933,   934,   110,   115,   116,   938,   905,
    2982      904,   116,    67,   943,   944,    72,   875,    74,    75,    76,
    2983        0,     1,   109,    44,    45,   875,    83,    84,   943,   132,
    2984      117,   118,   943,   110,    66,   906,   109,   908,   968,   116,
    2985      109,   943,   111,   109,  1482,  1383,   553,   554,   506,    29,
    2986       30,   112,    32,   511,   132,  1236,   514,   506,   109,   508,
    2987      111,  1399,   511,    43,   911,   514,   913,   938,   114,    49,
    2988     1000,   555,   556,  1108,   114,   114,    72,    57,    74,    75,
    2989       76,   561,   562,    63,   943,   117,    66,    83,    84,    69,
    2990      132,  1021,  1022,  1531,   132,     4,     5,     6,     7,     8,
    2991        9,   109,    82,    83,   557,   558,   559,   560,    82,   682,
    2992      568,  1041,     4,     5,     6,     7,     8,     9,   944,  1021,
    2993     1022,    85,    86,    87,   109,  1021,   106,  1003,   160,   109,
    2994     1041,  1469,  1470,   109,   112,   708,   116,   875,   467,  1041,
    2995       82,    33,  1323,   118,   127,   109,  1327,   111,    94,   113,
    2996      114,  1081,   109,   110,   111,   128,  1086,   109,   110,   111,
    2997       69,  1091,    71,   131,   897,  1041,   111,   147,   109,   109,
    2998     1100,   110,   110,   746,  1000,   155,     3,    69,  1108,    71,
    2999      160,   112,  1041,    10,    11,    12,    13,    14,   112,   221,
    3000      112,  1041,   110,  1123,   109,   110,   111,   110,   110,   528,
    3001      110,   109,   110,   111,   533,   185,   186,    72,   109,    74,
    3002       75,    76,    39,   112,   111,  1086,   114,  1147,    83,    84,
    3003     1091,   201,   116,   132,   131,   733,   114,   259,   114,   209,
    3004      109,   112,   264,    58,    59,    60,   920,   110,   218,   110,
    3005       67,   221,   112,  1424,   109,   112,   111,   130,   228,   112,
    3006      112,  1147,   117,   118,   583,  1249,  1250,  1251,   130,  1189,
    3007     1190,   130,   116,   243,    29,   130,   110,   247,   110,   112,
    3008      115,   251,   252,   114,   112,  1190,   110,   116,  1208,  1190,
    3009      115,   109,  1212,   115,   110,   265,   266,  1189,  1190,   110,
    3010      130,   110,   272,   116,   110,   132,  1226,     3,   110,   279,
    3011     1230,  1212,   875,  1041,    10,    11,    12,    13,    14,   110,
    3012     1212,   116,   110,  1189,  1208,  1230,   110,   110,   350,  1230,
    3013      110,   110,   110,   110,     1,   654,   110,   656,  1230,   110,
    3014     1189,  1190,   905,    39,   110,   110,  1212,   110,    72,   110,
    3015       74,    75,    76,   115,  1379,  1275,  1276,    29,   328,    83,
    3016       84,  1516,   131,  1212,  1284,   110,   130,   116,   875,  1289,
    3017      112,    67,  1212,   112,   110,   110,   116,   110,   348,   349,
    3018      130,  1230,    49,  1275,  1276,   109,   109,   706,  1289,  1275,
    3019      116,   112,  1284,   117,   118,   365,   114,  1289,   110,   369,
    3020      110,   110,  1322,  1507,   112,   116,  1506,  1081,   110,   431,
    3021      380,   116,   116,  1506,    55,   110,  1506,  1322,  1284,  1507,
    3022      110,  1322,  1506,  1289,   112,   109,   396,  1531,  1506,   109,
    3023     1322,   109,   109,   109,   132,  1284,   406,   130,   105,  1506,
    3024     1289,   112,  1506,  1531,   110,   115,   113,   110,   110,  1289,
    3025      115,   473,   110,   128,   424,   115,    97,  1482,   114,  1379,
    3026      430,   112,   432,  1378,   132,   112,   116,   112,   110,    72,
    3027      110,    74,    75,  1322,   110,  1395,   110,   112,  1041,   146,
    3028       83,    84,   112,   112,  1212,  1208,   112,    72,   155,    74,
    3029       75,    76,   112,    72,   112,    74,    75,   467,    83,    84,
    3030     1420,    47,   472,  1395,    83,    84,   109,   132,   132,   132,
    3031      480,   114,   112,   132,   484,  1420,   132,   115,   488,  1420,
    3032      110,   491,  1442,   493,   109,   130,   115,   110,  1420,  1449,
    3033      109,  1451,   112,  1453,   115,   114,   112,  1044,   205,   112,
    3034      112,  1442,   209,   112,   110,   110,  1506,   109,  1449,   112,
    3035     1442,  1506,   193,  1506,   112,   109,   109,  1449,   528,    60,
    3036      110,  1289,  1482,   533,   132,   110,   114,  1487,   109,  1489,
    3037      112,  1420,   239,   595,   112,   216,  1442,   110,   112,   110,
    3038     1500,    96,    96,  1449,  1147,   226,  1506,  1507,   109,   109,
    3039      464,   115,   132,  1442,  1507,   130,  1516,   110,   110,  1500,
    3040     1449,   623,  1442,   110,   271,   110,   628,   274,  1500,  1449,
    3041      116,  1531,    42,   583,   132,   132,   110,   110,  1531,    66,
    3042      590,    96,    96,   132,   110,   110,   110,   294,    75,   132,
    3043      132,   601,   110,   603,  1500,   115,   112,   132,   115,   958,
    3044      307,   112,   109,   132,   110,  1506,    30,   115,   110,  1212,
    3045      132,  1500,   622,   294,   110,  1378,   110,   667,  1057,   563,
    3046     1500,   980,   978,  1226,   565,   984,  1212,  1365,   638,   564,
    3047      117,   464,   566,   643,   341,   567,  1470,   699,   345,  1541,
    3048     1299,  1327,   652,  1121,   654,   655,   656,  1072,  1449,   685,
    3049      685,   713,   913,   698,    66,  1091,   921,   364,    82,    83,
    3050     1516,   368,   583,   972,   371,  1212,   868,   723,   649,   940,
    3051       82,  1230,   484,   160,  1442,  1034,     0,     1,   688,   733,
    3052      571,  1449,   692,   571,   694,   571,  1289,    72,   698,    74,
    3053       75,    76,    -1,    -1,    -1,    -1,   706,    -1,    83,    84,
    3054       -1,    -1,    -1,  1191,  1192,   117,  1194,    -1,    32,   719,
    3055      720,    -1,    -1,  1201,    -1,  1203,    -1,    -1,    -1,   426,
    3056      427,    -1,    -1,   733,   109,    49,    -1,    10,    11,    12,
    3057       13,    14,  1500,    -1,   221,    -1,    -1,  1451,    -1,  1453,
    3058       -1,    -1,    -1,    -1,   806,    69,    -1,   454,   160,    -1,
    3059       85,    86,    87,    -1,    -1,    -1,    39,   671,  1305,    -1,
    3060      467,    -1,   443,    -1,    -1,    -1,    -1,    10,    11,    12,
    3061       13,    14,   259,  1487,   109,  1489,   111,   264,   113,   114,
    3062       -1,   105,    -1,    -1,    67,   492,    -1,   494,   469,   496,
    3063       -1,    -1,   279,    -1,    -1,    -1,    39,    -1,    -1,   506,
    3064       -1,   508,    -1,   813,   511,    -1,   513,   514,    -1,   221,
    3065     1357,    -1,    -1,  1360,    -1,   825,    -1,    -1,   525,   243,
    3066       -1,    -1,    -1,   147,    67,   506,   109,    -1,   111,    -1,
    3067      511,   155,   156,   514,   117,   118,    -1,    -1,   671,  1442,
    3068       -1,    -1,    -1,    -1,    -1,    -1,  1449,   259,    -1,    -1,
    3069       -1,    -1,   264,    -1,    -1,    -1,  1403,    -1,   868,    -1,
    3070       -1,  1408,   186,   350,   874,    -1,   109,    -1,   111,    -1,
    3071       -1,  1359,   579,    -1,   117,   118,   790,   201,    -1,    -1,
    3072      204,   205,    -1,   590,    -1,   209,   800,   897,    -1,  1436,
    3073     1249,  1250,  1251,    -1,    -1,    -1,   906,  1500,   908,    -1,
    3074      814,    -1,    -1,    -1,    -1,   915,   230,    -1,    -1,    -1,
    3075      234,    -1,   236,    -1,   621,    -1,    -1,    -1,    -1,   626,
    3076       -1,   245,    -1,    -1,    -1,   632,     0,   251,   938,    -1,
    3077       -1,    -1,   256,    -1,    -1,    -1,    -1,    -1,   350,    -1,
    3078       -1,  1003,   266,    -1,   431,    -1,    -1,    -1,   958,    -1,
    3079      274,    10,    11,    12,    13,    14,   380,   790,    32,    -1,
    3080       -1,   448,   972,    -1,    -1,    -1,    -1,   800,    -1,    -1,
    3081      980,    -1,    -1,  1520,   984,    -1,    -1,    -1,   685,  1526,
    3082       39,   814,    -1,    -1,    -1,    -1,   473,    -1,    -1,   670,
    3083     1537,    -1,   671,    -1,  1541,    69,    -1,    -1,   679,    -1,
    3084       -1,    -1,   683,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3085       -1,    72,    -1,    74,    75,    76,   723,   341,    -1,   431,
    3086       -1,   345,    83,    84,  1034,    -1,    -1,   351,  1387,  1388,
    3087       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,
    3088      364,    -1,    -1,    -1,   368,    -1,    -1,   371,   109,    -1,
    3089      109,    -1,   111,    -1,    -1,    -1,   117,   118,   117,   118,
    3090       -1,   473,  1072,    -1,    -1,    -1,  1425,   491,    -1,   493,
    3091       -1,    -1,    -1,    -1,    -1,    -1,  1086,    -1,    -1,    -1,
    3092       -1,  1091,   156,    97,    98,    99,   100,   101,   102,   103,
    3093      104,   105,   106,   107,   418,    -1,    -1,   804,  1108,    -1,
    3094       -1,    -1,   809,    -1,  1018,  1019,    -1,    -1,   595,   433,
    3095       -1,   790,    -1,    -1,   438,    -1,    -1,   131,    -1,    -1,
    3096       -1,   800,   446,    -1,  1483,    -1,    -1,  1189,    -1,    -1,
    3097       -1,    -1,    -1,  1492,    -1,   814,   623,    -1,    -1,    -1,
    3098      464,   628,    72,   467,    74,    75,    76,    -1,    -1,    -1,
    3099       -1,    -1,    -1,    83,    84,    -1,   230,    -1,   482,    -1,
    3100      484,    -1,  1076,  1077,    -1,    -1,    -1,    -1,   492,    -1,
    3101       -1,    -1,   496,    -1,    -1,  1185,    -1,   251,    -1,   109,
    3102       -1,   111,   256,   595,    -1,  1018,  1019,   117,   118,    -1,
    3103      897,    -1,    -1,    -1,    -1,    -1,    -1,   904,  1208,    -1,
    3104       -1,   525,   526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3105       -1,   623,   699,   920,    -1,    -1,   628,    -1,   899,   643,
    3106       -1,    -1,  1284,     0,    -1,    -1,   713,    -1,    -1,    -1,
    3107       -1,    -1,    -1,    -1,    -1,   942,   943,   944,    -1,  1249,
    3108     1250,  1251,    -1,  1076,  1077,    -1,   733,    -1,   572,    72,
    3109       -1,    74,    75,    76,    -1,    32,    -1,    -1,    -1,    -1,
    3110       83,    84,    -1,    -1,    -1,    -1,   590,   591,   692,    -1,
    3111      694,    -1,    -1,    -1,   698,    -1,    -1,   351,    72,   603,
    3112       74,    75,    76,    -1,    -1,    -1,   109,   699,   111,    83,
    3113       84,    -1,    69,  1000,   117,   118,    -1,   621,    -1,    -1,
    3114       -1,   713,   626,    -1,    -1,    -1,    -1,    -1,   632,    -1,
    3115     1224,   635,   636,   637,    -1,   109,    -1,   111,    -1,   806,
    3116       -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,   653,
    3117       -1,    -1,    -1,    26,    27,    28,    -1,    -1,    -1,  1018,
    3118     1019,    -1,  1256,    -1,   418,    -1,    -1,   671,    -1,    -1,
    3119     1264,  1265,  1266,    -1,    -1,    -1,    -1,    -1,   682,   433,
    3120       -1,    -1,    -1,    -1,   438,    -1,    -1,    -1,  1378,  1379,
    3121       -1,  1052,   446,    -1,  1081,    -1,    -1,  1387,  1388,   156,
    3122       -1,    -1,    -1,    -1,   708,    -1,    -1,   711,    -1,    -1,
    3123      464,  1224,    -1,    -1,   806,    -1,   720,  1076,  1077,   723,
    3124       -1,    -1,    -1,    -1,    -1,    98,    -1,   100,   482,    -1,
    3125      484,    -1,    -1,    -1,  1328,  1425,  1123,    -1,    -1,    -1,
    3126       -1,   745,   746,  1256,    -1,    -1,    -1,   751,    -1,    -1,
    3127       -1,  1264,  1265,  1266,    -1,    -1,    -1,    -1,    -1,    -1,
    3128       -1,    -1,    -1,    -1,   868,    -1,    -1,    -1,    -1,    -1,
    3129      874,    -1,   526,    -1,    -1,    -1,    -1,    26,    27,    28,
    3130       -1,    -1,    -1,    -1,    -1,    -1,   790,    -1,    -1,    -1,
    3131       -1,    -1,  1482,  1483,   251,    -1,   800,    -1,   802,   256,
    3132      804,    -1,  1492,   807,    -1,   809,   810,    -1,   181,    -1,
    3133      814,   915,    -1,    -1,    -1,  1328,  1506,  1507,   191,   192,
    3134      824,  1208,    -1,   196,    -1,   198,   199,    -1,    -1,    -1,
    3135       -1,    -1,    -1,    -1,    -1,    -1,  1003,   591,    -1,    -1,
    3136       -1,  1531,    -1,  1230,    -1,    -1,    -1,    -1,    -1,    98,
    3137       -1,   100,    -1,    -1,    -1,     0,    -1,    -1,    -1,    -1,
    3138       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   972,    -1,
    3139       -1,   875,    -1,    -1,    -1,    -1,   125,    -1,    -1,    -1,
    3140       -1,   635,   636,   637,    -1,    -1,    -1,    32,    -1,    -1,
    3141       -1,    -1,    -1,   897,   351,    -1,    -1,  1256,    -1,   653,
    3142      904,   905,    -1,    -1,   908,  1264,  1265,  1266,    -1,    -1,
    3143       -1,  1003,    -1,    -1,    -1,    -1,    -1,   671,    -1,    -1,
    3144       -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,   682,    -1,
    3145      934,    -1,   181,    -1,    -1,  1322,    -1,  1298,   942,   943,
    3146      189,    -1,   191,   192,    -1,    -1,    -1,   196,    -1,   198,
    3147      199,    -1,    -1,    -1,   708,    -1,    -1,   711,    -1,    -1,
    3148       -1,   418,    -1,    -1,    -1,    -1,    -1,    -1,  1072,  1328,
    3149       -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
    3150       -1,   438,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   446,
    3151       -1,    -1,   746,    -1,    -1,    -1,  1000,    10,    11,    12,
    3152       13,    14,    -1,    -1,    -1,    -1,    -1,   464,    -1,  1013,
    3153       -1,   156,    -1,    -1,  1018,  1019,    -1,  1021,  1022,   268,
    3154       -1,    -1,  1189,    -1,    -1,   482,    39,   484,    -1,    -1,
    3155       -1,    -1,    -1,  1420,    -1,    -1,   790,  1041,    -1,    -1,
    3156       -1,    -1,    -1,    -1,    -1,    -1,   800,    -1,   802,    -1,
    3157       -1,    -1,    -1,   807,    67,    -1,   810,    -1,    -1,    72,
    3158      814,    74,    75,    76,  1451,    -1,  1453,    -1,    -1,   526,
    3159       83,    84,  1076,  1077,    -1,    -1,    -1,    -1,    -1,    -1,
    3160       -1,  1185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1450,
    3161       -1,  1452,    -1,    -1,    -1,    -1,   109,  1189,   111,    -1,
    3162     1487,    -1,  1489,    -1,   117,   118,   251,    -1,    -1,    -1,
    3163       -1,   256,    -1,    -1,    -1,    -1,    -1,  1284,    -1,  1123,
    3164       -1,   875,    -1,    -1,    -1,  1486,    -1,  1488,    -1,  1516,
    3165       -1,    -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,
    3166       -1,    -1,    -1,  1147,    -1,    -1,    -1,    -1,    -1,     0,
    3167       -1,   905,    -1,    -1,    -1,    -1,    -1,   189,    -1,    -1,
    3168       -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,  1530,
    3169       -1,  1532,    -1,    -1,    -1,    -1,    -1,    -1,   635,   636,
    3170      637,    32,    -1,    -1,  1545,  1546,  1190,    -1,    -1,    -1,
    3171       -1,    -1,  1284,    -1,    -1,    -1,   653,    -1,    -1,    -1,
    3172       -1,    -1,   575,   576,  1208,    -1,   351,    -1,  1212,    -1,
    3173       -1,    -1,    -1,    -1,   671,    -1,    -1,    -1,    69,    -1,
    3174     1224,    -1,  1226,    -1,    -1,   682,  1230,    -1,    -1,    -1,
    3175       -1,   604,    -1,    -1,   607,   608,   268,   610,    -1,   612,
    3176      613,    -1,    -1,    -1,   617,   618,    -1,    -1,    -1,    -1,
    3177       -1,   708,  1256,    -1,   711,    -1,    -1,    -1,    -1,    -1,
    3178     1264,  1265,  1266,    -1,  1018,  1019,    -1,  1021,  1022,    -1,
    3179       -1,  1275,  1276,   418,    -1,    -1,    -1,    -1,    10,    11,
    3180       12,    13,    14,    -1,    -1,  1289,    -1,  1041,   433,   746,
    3181       -1,   323,    -1,   438,    -1,    -1,    -1,    -1,    -1,   331,
    3182       -1,   446,   334,    -1,    -1,   156,    -1,    39,    -1,    -1,
    3183       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1322,   464,
    3184       -1,    -1,  1076,  1077,  1328,    -1,   575,   576,    -1,    -1,
    3185       -1,    -1,    -1,   790,    -1,    67,    -1,   482,    -1,   484,
    3186       72,    -1,    -1,   800,    76,   802,    -1,    -1,    -1,    -1,
    3187      807,    83,    84,   810,    -1,   604,    -1,   814,   607,   608,
    3188       -1,   610,    -1,   612,   613,    -1,   398,    -1,   617,   618,
    3189      402,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
    3190       -1,   526,   755,   756,    -1,   117,   118,    -1,    -1,    -1,
    3191       -1,  1395,    -1,  1147,    -1,    -1,    -1,    -1,    -1,    -1,
    3192      251,    -1,    -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,
    3193       -1,    -1,    -1,    -1,    -1,    -1,  1420,    -1,   875,    -1,
     2927       0,     1,   204,    43,    49,   239,   219,     0,   185,     1,
     2928     534,   116,   620,   602,   185,    43,    43,   646,   364,   185,
     2929     349,   513,   368,     0,   521,     0,   281,   749,   749,   349,
     2930     602,   185,    32,     0,   185,   185,   345,   874,  1040,    32,
     2931     186,   168,   169,    43,   185,   600,  1321,   756,   749,    49,
     2932    1021,   600,     0,   571,   492,    32,    49,    32,   496,     0,
     2933     600,   187,   156,    63,    32,    32,    66,   156,   113,    69,
     2934      63,    43,    43,    66,    82,   418,    69,    69,  1020,  1021,
     2935     692,    39,   983,    63,    32,   600,   109,   600,   265,   600,
     2936     105,    32,    51,   600,   265,   438,   201,     0,     1,   265,
     2937      43,   146,    43,   446,    39,   105,  1052,  1053,    49,   426,
     2938     427,   265,  1501,   113,   265,   265,   116,   117,    72,    39,
     2939     266,  1402,    63,   186,   265,    66,    39,    72,    69,    32,
     2940      39,   256,  1033,     0,     1,   261,   262,    11,    39,  1528,
     2941     155,  1398,    28,   733,  1419,   185,   146,   147,    44,    45,
     2942     109,   109,   132,   111,   147,   155,   156,   185,   185,   488,
     2943     160,    39,   603,    66,   209,    32,    69,   160,   609,   109,
     2944      82,   635,   636,   482,   109,   695,   111,   494,   132,    44,
     2945      45,   228,  1128,   905,   905,   185,   186,   132,   652,   109,
     2946     687,   111,    78,   186,   239,    95,   513,   410,   111,   111,
     2947     247,   201,    69,   266,   905,   718,   147,   718,   109,   209,
     2948     111,   718,  1469,   185,   185,  1496,   209,   107,   114,   160,
     2949    1501,   221,    64,   874,     0,   265,   271,    55,   221,   129,
     2950     110,   109,   116,   111,    49,   824,   116,   265,   265,   239,
     2951    1521,   131,   185,   589,   185,   186,   710,  1528,   132,   504,
     2952     115,   251,   824,  1452,  1225,   109,    32,   812,   251,   259,
     2953     406,   578,   307,   812,   264,   265,   266,   109,   209,    97,
     2954      72,   271,   812,   266,   251,   793,   251,   986,    85,   256,
     2955     221,   256,   602,   251,   251,   631,  1288,  1486,   900,  1488,
     2956      66,   396,   109,   418,   294,   924,  1472,   812,   113,   812,
     2957     345,   812,  1478,   251,  1275,   812,   113,   307,    44,    45,
     2958     251,   620,   112,   438,   131,   117,   625,   114,   221,   424,
     2959     116,   446,  1498,   323,   265,   430,   341,  1503,   328,    96,
     2960     116,    96,  1274,  1275,   480,   328,   132,   801,   681,   433,
     2961      72,   341,   116,   406,   433,   345,   110,   695,   251,   349,
     2962     350,    83,    84,   116,     1,   122,   371,   122,    72,   116,
     2963     110,   933,    76,     3,   364,   193,   130,   130,   368,    83,
     2964      84,   371,   112,   814,  1211,   132,   116,   932,   114,   111,
     2965     130,   426,   427,   932,   251,  1501,   906,   328,   216,  1040,
     2966      72,   999,   932,   482,   209,   109,   396,   111,   226,    90,
     2967      91,    83,    84,   117,   118,  1521,   406,    72,   349,    72,
     2968     110,   666,  1528,   406,   116,     0,   116,   480,    83,    84,
     2969      83,    84,   110,  1394,   424,    57,   426,   427,   130,   111,
     2970     430,   951,   526,   433,   125,   126,   745,   526,   786,  1441,
     2971     464,   418,   130,   418,   109,   221,  1448,     3,   111,   494,
     2972      57,   112,  1394,     0,   454,   116,   271,   803,   109,  1049,
     2973     116,   438,   808,   438,   116,   406,   294,   116,   513,   446,
     2974     967,   446,   472,   131,   106,   251,   132,   109,   130,   294,
     2975     480,   736,   482,   132,   484,  1386,  1387,   480,   488,   981,
     2976     128,   484,   307,   131,   494,   824,   590,  1499,  1127,   106,
     2977     116,   590,   109,   941,   824,   482,   506,   484,   508,   484,
     2978     525,   511,   490,   513,   514,   863,   132,   484,   110,   110,
     2979     647,   521,   110,   116,   116,   525,   526,  1099,   116,    70,
     2980     656,   109,    73,   578,    72,    76,   484,    78,   111,   132,
     2981     113,   687,   464,   484,    85,    83,    84,   488,   155,   654,
     2982     896,   109,   109,   116,   111,     3,   681,   130,   906,   109,
     2983    1211,   111,    10,    11,    12,    13,    14,  1008,  1009,   132,
     2984     570,   571,   109,   111,   350,   620,   116,   110,   578,   112,
     2985     625,   484,   707,   116,   109,   111,   218,   113,  1085,   589,
     2986     590,    39,   132,  1090,   594,   904,   109,  1117,   131,   132,
     2987     600,   109,   602,   951,   130,   252,   110,   116,   937,   110,
     2988      72,   218,    74,    75,   112,   443,   116,   484,   116,    67,
     2989     620,    83,    84,   132,   687,   625,   604,   627,   116,   116,
     2990     608,   631,   132,   110,   634,   635,   636,  1288,   986,   454,
     2991     272,   469,   590,   110,   132,   132,   670,   279,   861,   111,
     2992     116,   629,   652,   110,   654,   633,   745,  1177,  1178,   600,
     2993     112,   602,    72,   132,   110,   272,   132,   109,   881,   111,
     2994     116,   212,   279,    83,    84,   117,   118,   506,   506,   508,
     2995     109,   110,   511,   511,   684,   514,   514,   687,   109,  1037,
     2996     999,   506,   109,   508,   111,   109,   511,   473,  1288,   514,
     2997     117,   118,    88,    89,   681,   109,   681,   111,   484,   943,
     2998     710,   711,   712,   117,   118,   809,   348,   115,   718,   719,
     2999     809,     4,     5,     6,     7,     8,     9,   112,   905,   744,
     3000     707,   116,   707,   365,   905,   109,   117,   369,   279,   905,
     3001     867,   348,   123,   124,   744,   745,   687,   110,   670,   749,
     3002     750,   905,   112,   116,   905,   905,   116,   110,   365,    64,
     3003     110,   907,   369,   116,   905,   789,   116,   110,   745,  1117,
     3004     119,   120,  1362,   116,   110,   799,  1122,   718,   719,   110,
     3005     116,  1305,   109,  1505,  1505,   116,    69,   874,    71,   813,
     3006    1441,  1115,   110,   793,   110,  1119,   110,  1448,   116,   109,
     3007     116,   801,   116,   803,  1505,   805,    92,    93,   808,   809,
     3008    1012,   352,   812,   354,   112,   904,    72,   110,    74,    75,
     3009     467,   115,   116,   116,   824,   432,   110,    83,    84,  1177,
     3010    1178,    72,   116,    74,    75,   132,   109,  1146,   111,   110,
     3011     114,   669,    83,    84,   907,   116,   622,    72,  1499,   132,
     3012     678,    76,   110,   111,   682,  1445,   132,  1447,    83,    84,
     3013    1115,   809,  1382,   114,  1119,  1120,   110,   789,   846,   684,
     3014     110,   812,   116,   114,   874,   132,   116,   799,  1398,   114,
     3015     109,   528,   111,   824,   109,   109,   533,   111,   903,    58,
     3016      59,   813,   117,   118,   115,   116,   896,   874,   943,   874,
     3017     109,   442,   111,   903,   904,   905,   109,   907,  1035,    72,
     3018    1500,    74,    75,   109,   294,   111,  1225,    44,    45,   919,
     3019      83,    84,   698,   109,   110,   111,   874,   904,    82,     0,
     3020       1,  1020,   932,   933,   109,   582,   712,   937,   109,  1085,
     3021     111,   118,   942,   943,  1090,   109,   109,   111,  1468,  1469,
     3022     942,   114,   109,   910,   999,   912,  1043,   112,    29,    30,
     3023     938,    32,   552,   553,   905,    82,   907,   967,   109,   110,
     3024     111,   874,    43,   556,   557,   558,   559,   127,    49,    72,
     3025    1235,   128,   589,    76,  1481,    94,    57,   554,   555,   621,
     3026      83,    84,    63,  1017,  1018,    66,   937,   131,    69,   999,
     3027     560,   561,  1107,   111,   109,   637,   653,   874,   655,   109,
     3028     112,    82,    83,   112,   621,   112,   109,   112,   110,   651,
     3029    1020,  1021,  1085,   110,   117,   118,   110,  1090,   110,   805,
     3030     637,   110,   110,  1530,  1382,   106,   109,   111,   109,   942,
     3031    1040,   109,   110,   111,   651,   116,   426,   427,   114,   116,
     3032    1398,  1075,  1076,   109,   110,   111,   131,  1146,   705,    58,
     3033      59,    60,   109,  1040,   114,  1040,    72,  1322,    74,    75,
     3034     898,  1326,  1248,  1249,  1250,   942,   147,    83,    84,   114,
     3035    1080,   112,   110,   110,   155,  1085,   112,   112,   112,   160,
     3036    1090,   112,  1040,   130,   130,  1017,  1018,   130,   874,  1099,
     3037     732,   116,    29,   109,   919,   110,   110,  1107,   114,   112,
     3038     110,   112,   114,   130,   185,   186,   284,   115,   115,   115,
     3039    1468,  1469,  1122,   116,  1211,   732,   506,   109,   116,   110,
     3040     201,   511,   110,   110,   514,   110,   110,  1040,   209,   307,
     3041     308,   132,   110,   116,  1085,   110,  1146,   218,   110,  1090,
     3042     221,   110,    66,  1075,  1076,   110,   110,   228,   110,   110,
     3043     110,    75,   110,    72,   110,    74,    75,    76,  1423,  1146,
     3044     110,   110,   243,  1040,    83,    84,   247,   345,   110,   115,
     3045     251,   252,    29,   116,   131,  1274,   110,   567,  1188,  1189,
     3046     110,   732,  1207,   130,   265,   266,   112,  1189,   110,  1223,
     3047     109,   272,     1,   117,    85,    86,    87,  1207,   279,   112,
     3048     110,  1211,   116,   381,   110,   130,   109,  1304,   116,   114,
     3049     112,   110,   110,  1051,   110,  1225,  1002,   112,   109,  1229,
     3050     111,  1255,   113,   114,  1211,   110,  1211,  1229,   116,  1263,
     3051    1264,  1265,   116,   116,    66,   110,   160,   110,  1225,   109,
     3052      49,     4,     5,     6,     7,     8,     9,   328,   112,   109,
     3053      82,   109,   130,  1211,  1040,  1080,   109,   109,   112,  1356,
     3054     132,   128,  1359,  1378,  1274,  1275,   115,   348,   349,    49,
     3055      33,  1515,   110,  1283,   110,  1188,  1189,   110,  1288,   896,
     3056     115,   115,   112,    63,   365,   117,    66,   114,   369,    69,
     3057     132,  1223,   110,  1327,   116,   112,   105,   221,  1211,   380,
     3058     957,  1288,   112,  1288,   113,  1402,    69,   110,    71,   110,
     3059    1407,  1321,  1189,   110,   112,   396,  1229,   112,  1505,  1321,
     3060     112,   110,   979,  1255,  1505,   406,   983,   112,   160,  1505,
     3061    1288,  1263,  1264,  1265,  1211,   259,   112,   146,  1435,   112,
     3062     264,  1505,    47,   424,  1505,  1505,   155,   130,   132,   430,
     3063    1506,   432,  1229,   132,  1505,   279,     4,     5,     6,     7,
     3064       8,     9,   132,   132,   132,   115,  1481,   147,  1378,   110,
     3065    1283,   549,   550,   551,  1530,  1288,  1033,   115,   110,   115,
     3066     160,   112,   112,   112,  1394,   112,   467,   112,   112,   221,
     3067     110,   472,   110,   112,    60,  1327,   205,   112,   109,   480,
     3068     209,   109,  1188,   484,   110,   109,   186,   488,  1321,  1419,
     3069     491,  1288,   493,     0,     1,   110,   114,  1419,   109,   132,
     3070     112,    69,  1519,    71,   112,  1211,   350,   259,  1525,   209,
     3071     239,  1441,   264,  1506,   110,   112,   110,    96,  1448,  1536,
     3072    1450,   221,  1452,  1540,  1321,    32,    96,   528,   109,   109,
     3073     132,   115,   533,   110,  1441,  1505,  1441,  1530,   110,  1297,
     3074    1515,  1448,   271,  1448,   110,   274,   110,  1505,  1505,   116,
     3075      42,  1481,   130,   110,   110,    96,  1486,   132,  1488,    66,
     3076      96,   132,    69,  1441,   110,   294,   110,   132,   110,  1499,
     3077    1448,   132,   132,   110,   112,  1505,  1506,  1283,   307,   112,
     3078     115,   582,  1288,  1506,   132,  1515,  1419,   431,   589,   109,
     3079     115,   115,  1499,   132,  1499,   110,   110,   110,   350,   600,
     3080    1530,   602,   132,  1056,   448,   110,   565,  1530,  1441,   562,
     3081     977,   563,   341,  1211,   564,  1448,   345,   566,  1469,  1540,
     3082     621,  1499,  1419,  1364,  1298,  1120,  1326,  1448,   328,   473,
     3083     189,  1071,   684,   684,  1505,   364,   637,   196,  1090,   368,
     3084     912,   642,   371,   697,  1441,   920,   971,   867,   648,   156,
     3085     651,  1448,   653,   654,   655,   722,  1229,    72,   756,    74,
     3086      75,    76,   582,   939,   484,    66,  1499,   732,    83,    84,
     3087    1207,  1248,  1249,  1250,   570,    -1,   570,   570,    -1,   431,
     3088      -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,   670,    -1,
     3089     691,  1449,   693,  1451,   109,    -1,   697,   426,   427,    -1,
     3090      -1,    -1,  1499,    -1,   705,  1450,   406,  1452,    72,   268,
     3091      74,    75,    76,    -1,   221,    -1,   117,   718,   719,    83,
     3092      84,   473,    -1,    -1,    -1,   454,    -1,  1485,    -1,  1487,
     3093      -1,   732,    -1,    -1,    -1,  1441,    -1,    -1,   467,    -1,
     3094      -1,  1486,  1448,  1488,   251,    10,    11,    12,    13,    14,
     3095     594,    10,    11,    12,    13,    14,    -1,    -1,    72,   160,
     3096      74,    75,    76,   492,   323,   494,    -1,   496,    -1,    83,
     3097      84,  1529,   331,  1531,    39,   334,    -1,   506,   622,   508,
     3098      39,    -1,   511,   627,   513,   514,  1544,  1545,    72,    -1,
     3099      74,    75,    76,  1499,    -1,   109,   525,   111,    -1,    83,
     3100      84,    -1,    67,   117,   118,    -1,    -1,   789,    67,  1386,
     3101    1387,   812,    -1,    -1,    -1,  1377,   130,   799,    -1,    -1,
     3102     221,    -1,    -1,   824,    -1,   109,    72,   111,    74,    75,
     3103      76,   813,    30,   117,   118,    -1,    -1,    83,    84,   398,
     3104    1377,    -1,   594,   402,   109,    -1,   111,  1424,    -1,   578,
     3105      -1,    -1,   117,   118,   698,    -1,    -1,    -1,   259,    -1,
     3106     589,    -1,    -1,   264,    -1,    -1,   867,    -1,   712,    -1,
     3107     622,    -1,   873,    -1,    -1,   627,    -1,    -1,    -1,    -1,
     3108    1190,  1191,    -1,  1193,    82,    83,    -1,    -1,   732,    -1,
     3109    1200,   620,  1202,    -1,    -1,   896,   625,    -1,    -1,    -1,
     3110      -1,   999,   631,    -1,   905,  1482,   907,    -1,    -1,    -1,
     3111      -1,    -1,    -1,   914,  1491,    10,    11,    12,    13,    14,
     3112     479,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     3113      10,    11,    12,    13,    14,     0,   937,    -1,    -1,    -1,
     3114      -1,    -1,  1040,     3,    39,    -1,   698,    -1,    -1,   350,
     3115      10,    11,    12,    13,    14,   684,   957,    -1,    -1,    39,
     3116     712,   805,    -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,
     3117     971,    -1,    67,    -1,    -1,    -1,    -1,   484,   979,    39,
     3118      -1,    -1,   983,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3119       3,    -1,    -1,   722,    -1,     0,     1,    10,    11,    12,
     3120      13,    14,    -1,    -1,    69,    -1,    -1,    67,    -1,    -1,
     3121      -1,   570,   571,    -1,   109,   744,   111,    -1,    -1,   526,
     3122      -1,    -1,   117,   118,    -1,    -1,    39,    32,    -1,   109,
     3123     431,   111,  1033,    -1,    -1,  1017,  1018,   117,   118,    10,
     3124      11,    12,    13,    14,    49,   243,    -1,    -1,  1358,    85,
     3125      86,    87,    -1,   805,    67,    -1,    -1,    -1,    -1,    -1,
     3126      -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    39,    -1,
     3127    1071,    -1,   473,   109,   803,   111,    -1,   113,   114,   808,
     3128      -1,    -1,    -1,   590,  1085,    -1,    -1,    -1,    -1,  1090,
     3129      -1,   156,    -1,  1075,  1076,    -1,    67,    -1,   657,    -1,
     3130     105,    72,   661,    74,    75,    76,  1107,    -1,    -1,    -1,
     3131      -1,    -1,    83,    84,    97,    98,    99,   100,   101,   102,
     3132     103,   104,   105,   106,    -1,    -1,    -1,   634,   635,   636,
     3133      -1,    -1,    72,    -1,    74,    75,    76,    -1,   109,    -1,
     3134     111,    -1,   147,    83,    84,   652,   117,   118,   131,    -1,
     3135     155,   156,    72,    -1,    74,    75,    76,    -1,  1002,    -1,
     3136      -1,    -1,    -1,    83,    84,   230,    -1,   896,    -1,   109,
     3137      -1,   111,    -1,    -1,   903,    -1,    -1,   117,   118,    -1,
     3138      -1,   186,   380,  1184,    -1,    -1,   251,    -1,    -1,   109,
     3139     919,   256,    -1,   594,    -1,    -1,   201,   117,   118,   204,
     3140     205,    -1,    -1,   710,   209,    -1,  1207,    -1,    -1,    -1,
     3141      -1,    -1,   941,   942,   943,    -1,    -1,    -1,    -1,    -1,
     3142      -1,   622,    -1,    -1,    -1,   230,   627,    -1,    -1,   234,
     3143      -1,   236,    -1,    -1,   793,    -1,    -1,    -1,    -1,    -1,
     3144     245,    -1,    26,    27,    28,    -1,   251,  1248,  1249,  1250,
     3145    1002,   256,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3146      -1,   266,    -1,    -1,    83,    84,    -1,    -1,    -1,   274,
     3147     999,    -1,    -1,  1255,    -1,    -1,    -1,    -1,    -1,    -1,
     3148      -1,  1263,  1264,  1265,    -1,    -1,   351,    -1,    -1,    -1,
     3149     109,    -1,   111,   491,   801,   493,    -1,   698,   117,   118,
     3150      -1,    -1,   809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3151      -1,   712,    -1,    -1,    98,    -1,   100,    -1,    10,    11,
     3152      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3153      22,    23,    24,    25,    26,    27,   341,    -1,    -1,    -1,
     3154     345,   125,    -1,    -1,  1188,  1327,   351,    39,    -1,    -1,
     3155      -1,  1080,   911,   418,    -1,    -1,    -1,    -1,    -1,   364,
     3156      -1,    -1,    -1,   368,    -1,    -1,   371,   874,   433,    -1,
     3157      -1,    -1,    -1,   438,    -1,    67,  1377,  1378,    -1,    -1,
     3158      -1,   446,    26,    27,    28,  1386,  1387,    -1,    -1,    -1,
     3159      -1,    -1,    -1,  1122,    -1,    -1,    -1,   181,    -1,   464,
     3160      -1,    -1,    -1,    -1,   805,   189,    -1,   191,   192,    -1,
     3161      -1,    -1,   196,   418,   198,   199,    -1,   482,    -1,   484,
     3162      -1,    -1,    -1,  1424,    -1,    -1,    -1,    -1,   433,   988,
     3163      -1,    -1,     0,   438,    -1,   942,  1188,    -1,    -1,  1283,
     3164      -1,   446,    -1,    -1,   642,    -1,  1005,    -1,    -1,    -1,
     3165      -1,    -1,    -1,    -1,    98,    -1,   100,    -1,    -1,   464,
     3166      -1,   526,   467,    -1,    32,    -1,    -1,    -1,    -1,    -1,
     3167      -1,    72,    -1,    74,    75,    76,    -1,   482,  1207,   484,
     3168    1481,  1482,    83,    84,   268,    -1,    -1,   492,    -1,    -1,
     3169    1491,   496,    -1,   691,    -1,   693,    -1,    -1,    -1,   697,
     3170    1229,    69,    -1,    -1,  1505,  1506,    -1,    -1,   109,    -1,
     3171      -1,    -1,    -1,  1020,  1021,    -1,   117,   118,    -1,    -1,
     3172     525,   526,    -1,    -1,  1083,   590,    -1,    -1,    -1,  1530,
     3173      -1,  1283,    -1,  1040,    -1,    -1,    -1,   181,    -1,    -1,
     3174      -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,   192,    -1,
     3175      -1,    -1,   196,    -1,   198,   199,    -1,    -1,    -1,    -1,
     3176      -1,    -1,    -1,    -1,  1123,    -1,   571,    -1,    -1,   634,
     3177     635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
     3178      12,    13,    14,    -1,   589,   590,    -1,   652,   156,    -1,
     3179      -1,    -1,  1321,    -1,    -1,    -1,    -1,   602,    -1,    -1,
     3180      -1,  1002,    -1,    -1,    -1,   670,    -1,    39,    -1,    -1,
     3181      -1,    -1,    -1,    -1,    -1,   620,   681,    -1,    -1,    -1,
     3182     625,    -1,    -1,    -1,    -1,    -1,   631,    -1,    -1,   634,
     3183     635,   636,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3184      72,    -1,   707,    -1,    76,   710,    -1,   652,    -1,    -1,
     3185      -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3186      -1,    -1,    -1,    -1,    -1,   670,    -1,    -1,    -1,   867,
     3187      -1,    -1,    -1,    -1,    -1,   873,   681,   109,    -1,    -1,
     3188     745,  1188,  1189,   251,    -1,   117,   118,    -1,   256,    -1,
     3189    1419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3190      -1,    -1,   707,    -1,  1211,   710,    -1,    -1,    -1,    -1,
     3191       0,    -1,    -1,    -1,   719,    -1,   914,   722,    -1,    -1,
     3192      -1,  1450,  1229,  1452,   789,    -1,    -1,    -1,    -1,    -1,
     3193      -1,    -1,    -1,    -1,   799,    -1,   801,    -1,    -1,   744,
     3194     745,   806,    32,    -1,   809,   750,    -1,    -1,   813,    -1,
     3195      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1486,    -1,  1488,
     3196      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1274,  1275,    -1,
     3197      -1,    -1,    -1,   971,    -1,    -1,  1283,    -1,    -1,    69,
     3198      -1,  1288,    -1,   351,   789,    -1,  1515,  1188,    -1,    -1,
     3199     574,   575,    -1,    -1,   799,    -1,   801,    -1,   803,    -1,
     3200      -1,   806,    -1,   808,   809,    -1,    -1,    -1,   813,   874,
     3201      -1,    -1,    -1,    -1,  1321,    -1,    -1,    -1,   823,   603,
     3202      -1,    -1,   606,   607,    -1,   609,    -1,   611,   612,    -1,
     3203      -1,    -1,   616,   617,    -1,    -1,    -1,    -1,    -1,   904,
    31943204      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3195       -1,    -1,    -1,    -1,    -1,    -1,  1190,    -1,  1442,    -1,
    3196       -1,    -1,    -1,    -1,    -1,  1449,   591,   479,   905,    -1,
    3197       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1212,    -1,
     3205     418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3206      -1,    -1,    -1,    -1,    -1,   433,   156,    -1,    -1,   874,
     3207     438,    -1,    -1,  1071,    -1,    -1,    -1,    -1,   446,    -1,
     3208      -1,    -1,  1283,    -1,    -1,    -1,    -1,  1394,    -1,    -1,
     3209      -1,   896,    -1,    -1,    -1,    -1,   464,    -1,   903,   904,
     3210      -1,    -1,   907,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3211      -1,    -1,  1419,    -1,   482,    -1,   484,    -1,    -1,    -1,
     3212      -1,    -1,    10,    11,    12,    13,    14,    -1,   933,    -1,
     3213     574,   575,    -1,    -1,  1441,    -1,   941,   942,    -1,    -1,
     3214      -1,  1448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3215      -1,    39,  1017,  1018,    -1,  1020,  1021,    -1,   526,   603,
     3216      -1,   251,   606,   607,    -1,   609,   256,   611,   612,    -1,
     3217     754,   755,   616,   617,    -1,  1040,    -1,    -1,    -1,    67,
     3218      -1,    -1,    -1,    -1,    72,    -1,  1184,    -1,    76,    -1,
     3219      -1,    -1,  1499,    -1,   999,    83,    84,    -1,    -1,    -1,
     3220      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,    -1,
     3221    1075,  1076,  1017,  1018,    -1,  1020,  1021,    -1,    -1,    -1,
     3222      -1,   109,   590,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3223     118,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
     3224      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3225      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3226      27,   351,    -1,    30,    31,    32,   634,   635,   636,    -1,
     3227    1075,  1076,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3228      -1,  1146,    -1,    -1,   652,    -1,    -1,    -1,    -1,    -1,
    31983229      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3199     1224,    -1,  1226,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3200       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    3201      635,   636,   637,    -1,    -1,    -1,  1500,    -1,    -1,    -1,
    3202      351,    -1,  1256,  1507,    -1,    -1,   755,   756,   653,    -1,
    3203     1264,  1265,  1266,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    3204       -1,  1275,  1276,    -1,    -1,    -1,   671,    -1,    -1,    -1,
    3205       -1,    -1,    -1,    -1,    -1,  1289,    -1,   682,    -1,   571,
    3206      572,    67,    -1,    -1,   917,    -1,    72,    -1,    74,    75,
    3207       76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
    3208       -1,  1018,  1019,   708,  1021,  1022,   711,   418,    -1,    -1,
    3209       -1,    -1,    -1,    -1,  1328,    -1,    -1,    -1,    -1,    -1,
    3210       -1,    -1,   433,   109,  1041,   111,    -1,   438,    -1,    -1,
    3211       -1,   117,   118,    -1,    -1,   446,    -1,    -1,    -1,    -1,
    3212       -1,   746,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3213       -1,    -1,    -1,   464,    -1,    -1,    -1,    -1,    -1,  1076,
    3214     1077,    -1,    -1,    -1,    -1,    -1,   658,    -1,    -1,    -1,
    3215      662,   482,    -1,   484,    -1,    -1,    -1,    -1,    -1,    -1,
    3216       -1,  1395,    -1,    -1,    -1,   790,    -1,    -1,    -1,    -1,
    3217       -1,    -1,    -1,    -1,    -1,   800,    -1,   802,    -1,    -1,
    3218       -1,    -1,   807,   912,    -1,   810,    -1,    -1,   917,   814,
    3219       -1,    -1,    -1,    -1,    -1,   526,    53,    -1,    55,    -1,
    3220       -1,    58,    59,    60,    -1,    62,    -1,    -1,  1442,    -1,
    3221     1147,    -1,    -1,    -1,    -1,  1449,    -1,    -1,    -1,    76,
    3222       -1,    -1,    -1,    -1,    -1,  1078,    -1,    -1,    -1,    -1,
    3223       -1,    88,    89,    -1,    10,    11,    12,    13,    14,    -1,
     3230      67,    -1,   670,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3231     754,   755,    -1,   681,    -1,    -1,    -1,  1122,    -1,    -1,
     3232      -1,    -1,    -1,    -1,  1189,    -1,    -1,   911,   418,    -1,
     3233      -1,    -1,   916,    -1,    -1,    -1,    -1,    -1,    -1,   707,
     3234      -1,  1146,   710,   433,   111,    -1,  1211,     0,   438,    -1,
     3235     117,   118,    -1,    -1,    -1,    -1,   446,    -1,  1223,    -1,
     3236    1225,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3237      -1,    -1,    -1,    -1,   464,    -1,    -1,   745,    -1,    32,
     3238      -1,    -1,    -1,    -1,  1189,    -1,    -1,    -1,    -1,    -1,
     3239    1255,    -1,   482,    -1,   484,    -1,    -1,    -1,  1263,  1264,
     3240    1265,    -1,  1207,    -1,    -1,    -1,  1211,    -1,    -1,  1274,
     3241    1275,    10,    11,    12,    13,    14,    69,    -1,  1223,    -1,
     3242    1225,   789,    -1,  1288,  1229,    10,    11,    12,    13,    14,
     3243      -1,   799,    -1,   801,    -1,    -1,   526,    -1,   806,    -1,
     3244      39,   809,   146,    -1,    -1,   813,    -1,    -1,    -1,    -1,
     3245    1255,    -1,   156,    -1,    39,    -1,    -1,    -1,  1263,  1264,
     3246    1265,    -1,  1327,    -1,   168,   169,    -1,    -1,    67,  1274,
     3247    1275,    -1,   916,    72,    -1,    74,    75,    76,    -1,    -1,
     3248      -1,    -1,    67,  1288,    83,    84,    -1,    72,    -1,    74,
     3249      75,    76,    -1,  1077,    -1,    -1,    -1,    -1,    83,    84,
     3250     590,    -1,    -1,   156,    -1,    -1,   874,    -1,    -1,    -1,
     3251     109,    -1,   111,    -1,    -1,    -1,  1321,    -1,   117,   118,
     3252      -1,    -1,  1327,    -1,   109,    -1,   111,    -1,    -1,  1394,
     3253      -1,    -1,   117,   118,    -1,   239,   904,    -1,    -1,    -1,
     3254      -1,    -1,    -1,    -1,   634,   635,   636,    -1,    -1,    -1,
     3255      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   263,
     3256      -1,    -1,   652,    -1,    -1,    -1,    10,    11,    12,    13,
     3257      14,    -1,    -1,    -1,    -1,    -1,  1441,    -1,    -1,    -1,
     3258     670,    -1,    -1,  1448,    -1,    -1,    -1,    -1,    -1,  1394,
     3259      -1,   681,    -1,    -1,    -1,    39,    -1,    -1,   251,    -1,
     3260      -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,    -1,    -1,
     3261      -1,    -1,    -1,    -1,  1419,    -1,    -1,   707,    -1,    -1,
     3262     710,    -1,  1206,    67,    -1,    -1,    -1,    -1,    72,    -1,
     3263      74,    75,    76,  1077,  1499,    -1,  1441,    -1,    -1,    83,
     3264      84,    -1,    -1,  1448,    -1,    -1,    -1,    -1,    -1,  1017,
     3265    1018,    -1,  1020,  1021,    -1,   745,    -1,    -1,    -1,    -1,
     3266      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
     3267      -1,    -1,  1040,   117,   118,    -1,   380,    -1,    -1,    -1,
    32243268      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3225      875,    -1,    -1,  1190,    -1,    -1,    -1,    -1,    -1,    -1,
    3226      591,    -1,    -1,    39,    -1,    -1,  1500,    -1,    -1,    -1,
    3227       -1,    -1,    -1,    -1,    -1,  1212,    -1,    -1,    -1,    -1,
    3228      905,    -1,   794,    -1,    -1,    -1,    -1,  1224,    -1,  1226,
    3229       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    3230       76,    -1,    -1,    -1,   635,   636,   637,    83,    84,    -1,
    3231       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1256,
    3232       -1,    -1,   653,    -1,    -1,    -1,    -1,  1264,  1265,  1266,
    3233       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,  1275,  1276,
    3234      671,   117,   118,    -1,    -1,   282,    -1,   284,   285,  1078,
    3235       -1,   682,  1289,    -1,  1207,   292,   293,    -1,    -1,    -1,
     3269      -1,    -1,    -1,    -1,  1499,    -1,    -1,    -1,   351,   789,
     3270      -1,  1506,    -1,    -1,    -1,    -1,    -1,  1075,  1076,   799,
     3271      -1,   801,    -1,    -1,    -1,    -1,   806,    -1,    -1,   809,
     3272      -1,    -1,    -1,   813,    -1,    53,    -1,    55,    -1,    -1,
     3273      58,    59,    60,    -1,    62,    -1,    -1,    -1,    -1,    10,
     3274      11,    12,    13,    14,    -1,    -1,    -1,    -1,    76,    -1,
    32363275      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3237      307,   308,    -1,    -1,    -1,    -1,    -1,   708,    -1,    -1,
    3238      711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3239       -1,  1328,    -1,  1018,  1019,    -1,  1021,  1022,    -1,    -1,
    3240      912,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,    -1,
    3241       -1,    -1,    -1,    -1,    -1,   746,  1041,    10,    11,    12,
     3276      88,    89,  1206,    -1,    -1,   418,    -1,    -1,    39,    -1,
     3277     474,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1146,    -1,
     3278     433,    -1,    -1,    -1,   874,   438,    -1,    -1,    -1,    -1,
     3279      -1,    -1,    -1,   446,    -1,    -1,    67,    -1,    -1,    -1,
     3280      -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,   513,
     3281      -1,   464,    83,    84,   904,    -1,    -1,    -1,    -1,    -1,
     3282      -1,  1189,   526,    -1,    -1,    -1,    -1,   531,    -1,   482,
     3283     534,   484,    -1,    37,    38,    -1,    40,    -1,   109,    -1,
     3284      -1,    -1,   546,  1211,    -1,    -1,   117,   118,    -1,    -1,
     3285      -1,    -1,    -1,    -1,    -1,  1223,    -1,  1225,    -1,    -1,
     3286      -1,    -1,    66,    -1,   568,    -1,    -1,    -1,    72,    -1,
     3287      -1,    -1,    76,   526,   578,    79,    80,    81,    82,    83,
     3288      84,   585,    86,    87,    -1,    -1,   590,  1255,    -1,    -1,
     3289      -1,    -1,    -1,    -1,    -1,  1263,  1264,  1265,    -1,    -1,
     3290      -1,    -1,    -1,    -1,    -1,   109,  1274,  1275,    -1,    -1,
     3291      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3292    1288,    -1,    -1,    -1,    -1,    -1,    -1,  1017,  1018,    -1,
     3293    1020,  1021,    -1,    -1,    -1,   639,    -1,   590,    -1,    -1,
     3294      -1,    -1,    -1,   647,    -1,    -1,    -1,    -1,    -1,    -1,
     3295    1040,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1327,
     3296      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3297      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3298      -1,   634,   635,   636,    -1,  1075,  1076,    -1,    -1,    -1,
     3299      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
     3300      -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
     3301      -1,    -1,    -1,    -1,    -1,    -1,   344,   670,   346,    -1,
     3302      -1,    49,    -1,    -1,    -1,    -1,  1394,    -1,   681,   357,
     3303     358,    -1,    37,    38,    39,    40,    -1,    -1,    66,    -1,
     3304      -1,   745,    -1,   747,    -1,    -1,    -1,    -1,    -1,    -1,
     3305      -1,    -1,    -1,   757,   707,    -1,  1146,   710,    -1,   763,
     3306      -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3307      -1,    76,    -1,  1441,    79,    80,    81,    82,    83,    84,
     3308    1448,    86,    87,    -1,    -1,   113,    -1,    -1,    -1,   117,
     3309      -1,    -1,   745,    -1,    -1,    -1,    -1,    -1,    -1,  1189,
     3310      -1,   805,   806,    -1,   109,   809,   111,    -1,    -1,    -1,
     3311      -1,    -1,   117,   118,   119,   120,   121,   122,   146,   823,
     3312      -1,  1211,    -1,    -1,    -1,    -1,    -1,    -1,   156,    -1,
     3313      -1,  1499,   160,  1223,    -1,  1225,   789,    -1,    -1,    -1,
     3314      -1,    -1,    -1,    -1,    -1,    -1,   799,    -1,   801,    -1,
     3315      -1,    -1,    -1,   806,    -1,    -1,   809,    -1,    -1,   863,
     3316     813,    -1,    -1,   867,    -1,  1255,    -1,    -1,    -1,    -1,
     3317      -1,    -1,    -1,  1263,  1264,  1265,    -1,    -1,    -1,    -1,
     3318      -1,   209,    -1,    -1,  1274,  1275,    -1,    -1,    -1,    -1,
     3319      -1,    -1,    -1,   221,    -1,    -1,    -1,    -1,  1288,    -1,
     3320     904,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
     3321      -1,   239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3322      -1,   874,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3323      -1,    -1,    66,    -1,    -1,    -1,   264,  1327,    72,   943,
     3324      -1,    -1,    76,   271,    -1,    79,    80,    81,    82,    83,
     3325      84,   904,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3326      -1,    -1,    -1,    -1,    -1,    -1,   294,   971,    -1,    -1,
     3327      -1,    -1,    -1,   977,    -1,   109,    -1,   981,    -1,   307,
     3328      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3329      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1002,    -1,
     3330      -1,    -1,    -1,    -1,  1394,    -1,    -1,    -1,    -1,  1013,
     3331      -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,    -1,    -1,
     3332      -1,    -1,   350,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3333      -1,  1035,    -1,  1037,    -1,    -1,    -1,    -1,    -1,    -1,
     3334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1052,  1053,
     3335      -1,  1441,    -1,    -1,    -1,    -1,    -1,    -1,  1448,    -1,
     3336      -1,    -1,    -1,    -1,  1017,  1018,    -1,  1020,  1021,  1073,
     3337      -1,   699,    -1,   701,    -1,    -1,    -1,    -1,    -1,    -1,
     3338     708,   709,    -1,    -1,    -1,   713,    -1,  1040,    -1,    -1,
     3339      -1,    -1,    -1,    -1,    -1,    -1,    -1,   725,   426,   427,
     3340      -1,    -1,   730,    -1,    -1,   433,    -1,    -1,    -1,  1499,
     3341      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3342      -1,    -1,  1075,  1076,  1128,    -1,   454,    -1,    -1,    -1,
     3343     758,     7,    -1,    -1,    10,    11,    12,    13,    14,    -1,
     3344      -1,    -1,  1146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3345      -1,    -1,    -1,    -1,   482,    -1,    -1,  1161,  1162,    -1,
     3346      -1,    37,    38,    39,    40,    -1,   494,    -1,    -1,    -1,
     3347      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   506,    -1,
     3348     508,    -1,    -1,   511,    -1,   513,   514,    -1,    -1,    -1,
     3349      66,    67,    -1,  1146,    -1,    -1,    72,    -1,   526,    -1,
     3350      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3351      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3352      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   857,
     3353     858,   859,   860,   109,   862,   111,  1189,    -1,    -1,    -1,
     3354      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,   877,
     3355     578,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1211,    -1,
     3356      -1,    -1,   590,   891,    -1,    -1,   594,    -1,    -1,    -1,
     3357    1223,    -1,  1225,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3358      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3359      -1,    -1,   620,    -1,    -1,    -1,    -1,   625,  1302,    -1,
     3360      -1,  1305,  1255,   931,    -1,    -1,   634,   635,   636,    -1,
     3361    1263,  1264,  1265,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3362      -1,  1274,  1275,    -1,   652,    -1,    -1,    -1,    -1,    -1,
     3363      -1,    -1,    -1,    -1,    -1,  1288,    -1,    -1,    -1,    -1,
     3364      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   976,    -1,
     3365      -1,    -1,    -1,    -1,   982,    -1,   684,    -1,    -1,   987,
     3366      -1,    -1,    -1,    -1,   992,    -1,   994,    -1,    66,    -1,
     3367     998,    -1,  1000,  1001,  1327,    -1,  1004,    75,    -1,    77,
     3368      -1,    79,   710,    -1,   712,  1013,    -1,    -1,    86,    -1,
     3369      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3370      -1,    -1,    -1,  1031,  1032,    -1,    -1,    -1,    -1,    -1,
     3371      -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,   117,
     3372      -1,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
     3373    1058,    -1,    -1,  1061,    -1,    -1,    -1,    -1,    -1,    -1,
     3374      -1,  1394,    -1,    10,    11,    12,    13,    14,    15,    16,
     3375      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3376      27,    -1,   160,    30,    31,    32,    -1,    -1,    -1,    -1,
     3377      -1,    -1,    39,   801,    -1,    -1,  1104,   805,    -1,    -1,
     3378      -1,   809,  1110,  1111,    -1,    -1,    -1,    -1,  1441,    -1,
     3379      -1,    -1,    -1,    -1,    -1,  1448,    -1,    -1,    -1,    -1,
     3380      67,    -1,  1130,    -1,    -1,  1133,    -1,    74,    75,  1137,
     3381      -1,  1515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3382      -1,    -1,  1150,   221,    -1,   223,   224,   225,    -1,    -1,
     3383      -1,    -1,    -1,    44,    -1,  1163,    -1,  1165,  1166,  1167,
     3384    1168,    -1,   109,    -1,   111,    -1,  1499,    -1,    -1,    -1,
     3385     117,   118,    -1,  1181,    -1,  1183,    -1,    -1,    -1,  1187,
     3386      -1,   259,    -1,    -1,    -1,    -1,   264,    -1,    -1,    -1,
     3387      -1,    -1,    -1,    -1,    -1,    -1,   904,    -1,    -1,    -1,
     3388      91,   279,    -1,    -1,    -1,    -1,    -1,    -1,  1216,  1217,
     3389     101,   919,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
    32423390      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3243       23,    24,    25,    26,    27,    28,    -1,    30,    31,    32,
    3244       -1,    -1,    -1,    -1,   381,    -1,    39,    -1,    -1,    -1,
    3245       -1,  1076,  1077,    -1,    -1,    -1,    -1,    -1,  1395,   790,
    3246       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   800,
    3247       -1,   802,    -1,    -1,    67,    -1,   807,   989,  1207,   810,
    3248       -1,    74,    75,   814,    -1,    78,    -1,   344,    -1,   346,
    3249       -1,    -1,    -1,    -1,  1006,    -1,    -1,    -1,    -1,    -1,
    3250      357,   358,    -1,    -1,    -1,  1442,    -1,    -1,    -1,    -1,
    3251       37,    38,  1449,    40,    -1,    -1,   109,    -1,   111,    -1,
    3252       -1,    -1,  1147,    -1,   117,   118,    -1,    -1,    -1,    -1,
    3253       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3254       -1,    -1,    -1,    -1,   875,    72,    -1,    -1,    -1,    76,
    3255       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3256       87,    -1,    -1,  1500,    -1,  1190,    -1,    -1,    -1,    -1,
    3257       -1,    -1,  1084,    -1,   905,    -1,    -1,    -1,    -1,    -1,
    3258       -1,    -1,   109,    -1,   111,    -1,    -1,  1212,    -1,    -1,
    3259      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,  1224,
    3260       -1,  1226,     7,   130,    -1,    10,    11,    12,    13,    14,
    3261       -1,    -1,  1124,   550,   551,   552,   553,   554,   555,   556,
     3391      23,    24,    25,    26,    27,   943,    -1,    30,    31,    32,
     3392      -1,    -1,    -1,    -1,    -1,    -1,    39,    40,    -1,    -1,
     3393     328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1266,  1267,
     3394      -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,  1276,    -1,
     3395      -1,    -1,   350,    -1,    67,    -1,    -1,   355,   356,    -1,
     3396     171,    74,    75,    -1,    -1,   363,    -1,    -1,    -1,    -1,
     3397      -1,   999,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3398      -1,    -1,    -1,   194,    -1,    -1,    -1,    -1,    -1,    -1,
     3399      -1,    -1,  1020,  1021,    -1,    -1,    -1,   208,   111,    -1,
     3400      -1,    -1,   115,    -1,   117,   118,   217,    -1,   406,  1337,
     3401      -1,  1339,  1340,  1341,    -1,    -1,   227,    -1,    -1,    -1,
     3402      -1,    -1,    -1,  1351,    -1,    -1,   424,    37,    38,    -1,
     3403      40,   429,  1360,   431,    -1,    -1,    -1,    -1,    -1,    -1,
     3404      -1,   252,    -1,    -1,    -1,    -1,   257,    -1,    -1,    -1,
     3405     448,    -1,  1080,   451,   452,    -1,    66,  1385,    -1,   270,
     3406      -1,   459,    72,    -1,    -1,   276,    76,   278,    -1,    79,
     3407      80,    81,    82,    83,    84,   473,    86,    87,    -1,    -1,
     3408      -1,    -1,   480,    -1,   295,    -1,    -1,    -1,    -1,    -1,
     3409      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3410    1428,  1429,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
     3411     120,   121,   122,  1441,    -1,    -1,    -1,    -1,  1146,    -1,
     3412    1448,    -1,    -1,    -1,    -1,    -1,    -1,   338,    -1,    -1,
     3413      -1,    -1,   343,    10,    11,    12,    13,    14,    15,    16,
     3414      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3415      27,    28,  1480,    -1,    -1,    -1,  1484,    -1,    -1,    -1,
     3416    1188,   372,    39,    -1,    -1,   376,   377,    -1,   379,    -1,
     3417      -1,    -1,    -1,    -1,    -1,   386,   387,    -1,   389,   390,
     3418      -1,   392,    -1,   394,  1512,    -1,  1514,    -1,    -1,    -1,
     3419      67,    -1,    37,    38,    -1,    40,   594,  1225,    -1,    -1,
     3420     411,    78,    -1,    -1,    -1,    -1,    -1,    -1,   419,    -1,
     3421      -1,    -1,    -1,    -1,  1542,  1543,    -1,    -1,    -1,    -1,
     3422      -1,    66,  1550,  1551,   622,    -1,    -1,    72,    -1,   627,
     3423      -1,    76,    -1,   444,    79,    80,    81,    82,    83,    84,
     3424      -1,    86,    87,    -1,    -1,    -1,  1274,  1275,    -1,    -1,
     3425      -1,    -1,    -1,    -1,    -1,  1283,    -1,    -1,    -1,   470,
     3426      -1,    -1,    -1,    -1,   109,   476,   111,    -1,    -1,   114,
     3427     481,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3428      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3429      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3430     698,    30,    31,    32,    -1,    -1,   517,    -1,    -1,    -1,
     3431      39,    -1,    -1,    -1,   712,   282,    -1,   284,   285,    -1,
     3432      -1,   532,    -1,    -1,    -1,   292,   293,    -1,    -1,    -1,
     3433      -1,    -1,    -1,    -1,   732,    -1,    -1,    -1,    67,    -1,
     3434     307,   308,    -1,    72,    -1,    74,    75,    76,    -1,    78,
     3435      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,   570,
     3436      -1,    -1,    -1,    -1,    -1,    -1,  1394,    -1,   579,    -1,
     3437      -1,    -1,    -1,    -1,    -1,   586,    -1,    -1,   345,    -1,
     3438     109,   592,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3439     601,    -1,    -1,    -1,    -1,   793,    -1,    -1,    -1,    -1,
     3440      -1,    -1,    -1,    -1,    -1,    -1,    -1,   805,    -1,    -1,
     3441      -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
     3442      -1,    -1,  1450,    -1,  1452,    -1,   824,    -1,    -1,    -1,
     3443     641,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3444      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3445      25,    26,    27,    28,    -1,    30,    31,    32,  1486,    -1,
     3446    1488,    -1,    -1,    -1,    39,    -1,   677,    -1,    -1,    -1,
     3447      -1,    -1,    -1,    -1,   685,    -1,    -1,    -1,    -1,    -1,
     3448      -1,    -1,    -1,    37,    38,    -1,    40,  1515,    -1,    -1,
     3449     155,   156,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3450      75,    76,    -1,    78,    -1,   716,    -1,    -1,    83,    84,
     3451      -1,    -1,    66,    -1,    -1,   726,   727,    -1,    72,    -1,
     3452      -1,    -1,    76,    -1,   189,    79,    80,    81,    82,    83,
     3453      84,   196,    86,    87,    -1,    -1,   111,    -1,    -1,   937,
     3454      -1,    -1,   117,   118,    -1,    -1,    -1,    -1,   759,    -1,
     3455      -1,    -1,    -1,   764,    -1,   109,    -1,   111,    -1,    -1,
     3456      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,   967,
     3457      -1,    -1,    -1,    -1,    -1,    -1,   130,    -1,    -1,    -1,
     3458      -1,    -1,   549,   550,   551,   552,   553,   554,   555,   556,
    32623459     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
    3263      567,  1256,    37,    38,    39,    40,    -1,    -1,    -1,  1264,
    3264     1265,  1266,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3265     1275,  1276,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3266       -1,    66,    67,    -1,  1289,    -1,    -1,    72,    -1,    -1,
    3267       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3268       -1,    86,    87,    -1,    -1,    -1,    -1,  1018,  1019,    -1,
    3269     1021,  1022,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3270       -1,    -1,    -1,  1328,   109,    -1,   111,    -1,    -1,    -1,
    3271     1041,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3272        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3273       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3274       23,    24,    25,    26,    27,  1076,  1077,    30,    31,    32,
    3275       33,    -1,    -1,    36,    37,    38,    39,    40,    -1,   696,
     3460      -1,    -1,    -1,   268,  1002,    -1,    -1,    -1,    -1,    -1,
     3461      -1,    -1,    -1,    -1,    -1,  1013,    -1,   828,    -1,    -1,
     3462      -1,    -1,    -1,    -1,   835,    -1,    -1,    -1,    -1,    -1,
     3463      -1,    -1,    -1,    -1,    -1,    -1,    -1,   848,    -1,   850,
    32763464      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3277     1395,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3278       -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
    3279       -1,    74,    75,    76,    49,    -1,    79,    80,    81,    82,
    3280       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3281       -1,    66,    -1,    -1,    -1,    -1,  1147,  1442,    -1,    -1,
    3282      757,    -1,    -1,    -1,  1449,    -1,   109,    -1,   111,    -1,
    3283       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3284       -1,    -1,    -1,   700,    -1,   702,    -1,    -1,    -1,   132,
    3285      787,    -1,   709,   710,    -1,    -1,    -1,   714,   113,  1190,
    3286       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,   726,
    3287       -1,    -1,    -1,    -1,   731,  1500,    -1,    -1,    -1,    -1,
    3288       -1,  1212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3289       -1,   146,    -1,  1224,    -1,  1226,    -1,    -1,    -1,    -1,
    3290       -1,   156,   759,    -1,    -1,   160,    -1,    -1,    -1,    -1,
    3291       -1,    -1,    -1,    -1,    -1,    -1,     7,    -1,    -1,    10,
    3292       11,    12,    13,    14,    -1,  1256,    -1,    -1,    -1,    -1,
    3293       -1,    -1,    -1,  1264,  1265,  1266,    -1,    -1,    -1,    -1,
    3294       -1,    -1,    -1,    -1,  1275,  1276,    37,    38,    39,    40,
    3295       -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,  1289,    -1,
    3296       -1,    -1,    -1,    -1,    -1,    -1,   221,    -1,    -1,    -1,
    3297      907,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
    3298       -1,    72,    -1,    -1,   239,    76,    -1,    -1,    79,    80,
    3299       81,    82,    83,    84,    -1,    86,    87,  1328,    -1,    -1,
    3300       -1,   858,   859,   860,   861,    -1,   863,    -1,    -1,   264,
    3301       -1,    -1,    -1,    -1,    -1,   952,   271,    -1,   109,    -1,
    3302      111,   878,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
    3303      121,   122,    -1,    -1,    -1,   892,    -1,    -1,    -1,   294,
     3465      -1,    -1,    -1,   864,    -1,    -1,    -1,    -1,   323,   870,
     3466      -1,    -1,    -1,    -1,    -1,    -1,   331,   332,    -1,   334,
     3467     335,   882,    -1,    -1,   885,    -1,    -1,    -1,    -1,    -1,
     3468     345,    -1,    -1,    -1,   349,    -1,    -1,  1085,    -1,    -1,
    33043469      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3305      987,    -1,   307,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3306       -1,    -1,    -1,  1000,  1395,    -1,    -1,    -1,    75,    -1,
    3307       77,    -1,    79,    -1,    -1,   932,    -1,    -1,    -1,    86,
     3470      -1,  1099,    -1,   368,    -1,    -1,   371,    -1,    -1,    -1,
     3471      -1,    37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,
     3472      46,    47,    48,    49,    50,    51,    52,    53,   695,    -1,
     3473      56,    57,    -1,   398,    -1,    61,    62,   402,    64,    -1,
     3474      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
     3475      76,   962,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3476      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,
    33083477      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3309      345,    -1,    -1,    -1,    -1,   350,    -1,    -1,    -1,    -1,
    3310       -1,    -1,    -1,    -1,  1041,    -1,    -1,    -1,    -1,    -1,
    3311      117,  1442,   119,   120,   121,    -1,    -1,    -1,  1449,    -1,
    3312      977,    -1,    -1,    -1,    -1,    -1,   983,    -1,    -1,    -1,
    3313       -1,   988,    -1,    -1,    -1,    -1,   993,    -1,   995,    -1,
    3314       -1,    -1,   999,    -1,  1001,  1002,    -1,    -1,  1005,    -1,
    3315       -1,    -1,    -1,   160,    -1,    -1,    -1,  1014,    -1,    -1,
    3316       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1500,
    3317       -1,   426,   427,    -1,    -1,  1032,  1033,    -1,   433,    -1,
    3318       -1,  1118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3319       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   454,
    3320       -1,    -1,  1059,    -1,    -1,  1062,    -1,    -1,    -1,    -1,
    3321       -1,    -1,    -1,    -1,   221,    -1,   223,   224,   225,    -1,
    3322       -1,    -1,    -1,    -1,    -1,    -1,    -1,   482,    -1,    -1,
    3323       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,   494,
    3324       -1,  1178,  1179,    -1,    -1,    -1,    -1,    -1,  1105,    -1,
    3325       -1,   506,   259,   508,  1111,  1112,   511,   264,   513,   514,
    3326       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3327       -1,   526,   279,    -1,  1131,    -1,    -1,  1134,    -1,    -1,
    3328       -1,  1138,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3329       -1,    -1,    -1,    72,  1151,    74,    75,    76,    -1,    -1,
    3330       -1,    -1,    -1,    -1,    83,    84,    -1,  1164,    -1,  1166,
    3331     1167,  1168,  1169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3332       -1,   328,    -1,    -1,   579,  1182,    -1,  1184,    -1,    -1,
    3333      109,  1188,    -1,    -1,    -1,    -1,   591,    -1,   117,   118,
    3334      595,    -1,    -1,   350,    -1,    -1,    -1,    -1,   355,   356,
    3335       -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,    -1,
    3336     1217,  1218,    -1,    -1,    -1,    -1,   621,    -1,    -1,    -1,
    3337       -1,   626,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3338      635,   636,   637,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3339       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   653,   406,
     3478      -1,    -1,    -1,   109,    -1,   111,   997,    -1,   114,   756,
     3479    1188,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3480      -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,
     3481      -1,    -1,    -1,    -1,   479,    -1,    -1,   482,    -1,   786,
     3482      -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3483      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3484      24,    25,    26,    27,  1055,    -1,    30,    31,    32,    -1,
     3485    1061,    -1,    -1,    -1,    -1,    39,   521,    -1,    -1,    -1,
     3486     525,   526,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3487      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3488      26,    27,    28,    67,  1095,  1283,    -1,    -1,    72,  1100,
     3489      74,    75,    76,    39,    -1,    -1,    -1,  1108,    -1,    83,
     3490      84,    -1,    -1,    -1,    -1,   570,   571,    -1,    -1,    -1,
    33403491      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3341     1267,  1268,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,
    3342     1277,    -1,   429,    -1,   431,    -1,    -1,    -1,    -1,    -1,
    3343      685,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3344       -1,   448,    -1,    -1,   451,   452,  1383,    -1,    -1,    -1,
    3345       -1,    -1,   459,    -1,    -1,    -1,   711,    -1,   713,    -1,
    3346       -1,    -1,  1399,    -1,    -1,    -1,   473,    -1,    -1,    -1,
    3347       -1,    -1,    -1,   480,    -1,    -1,    -1,    -1,    -1,    -1,
    3348       -1,  1338,    -1,  1340,  1341,  1342,    -1,    -1,    -1,    -1,
    3349       -1,   746,    -1,    -1,    -1,  1352,    44,    -1,    -1,    -1,
    3350       -1,    -1,    -1,    -1,  1361,    10,    11,    12,    13,    14,
    3351       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3352       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,  1386,
    3353       -1,    -1,  1469,  1470,    39,    -1,    -1,    10,    11,    12,
    3354       13,    14,    -1,    91,    -1,    -1,    -1,   802,    -1,    -1,
    3355       -1,   806,    -1,   101,    -1,   810,    -1,    -1,    -1,    -1,
    3356       -1,    -1,    67,    -1,    -1,    -1,    39,    72,    -1,    74,
    3357       75,    76,  1429,  1430,    -1,    -1,    -1,    -1,    83,    84,
    3358       -1,    -1,    -1,    -1,    -1,  1442,    -1,    -1,   595,    -1,
    3359       -1,    -1,  1449,    -1,    67,    -1,    -1,    -1,    -1,    72,
    3360       -1,    74,    75,    76,   109,    -1,   111,    -1,    -1,   157,
    3361       83,    84,   117,   118,    -1,    -1,   623,    -1,    -1,    -1,
    3362       -1,   628,    -1,   171,  1481,    -1,    -1,    -1,  1485,    -1,
    3363       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
    3364       -1,    -1,    -1,    -1,   117,   118,   194,    -1,    -1,    -1,
    3365      905,    -1,    -1,    -1,    -1,    -1,  1513,    -1,  1515,    -1,
    3366      208,    -1,    -1,    -1,    -1,   920,    -1,    -1,    -1,   217,
    3367       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   227,
    3368       -1,    -1,    -1,    -1,    -1,    -1,  1543,  1544,    -1,   944,
    3369       -1,    -1,   699,    -1,  1551,  1552,    -1,    -1,    -1,    -1,
    3370       -1,    -1,    -1,    -1,   252,    -1,   713,    -1,    -1,   257,
     3492      -1,    67,    -1,    -1,   589,   590,    -1,   111,    -1,    -1,
     3493    1141,    -1,    78,   117,   118,   600,    -1,   602,   603,   906,
     3494      -1,    -1,  1153,    -1,   609,  1156,    -1,  1158,    -1,    -1,
     3495      -1,    -1,    -1,    -1,   619,   620,    -1,    -1,    -1,    -1,
     3496     625,  1172,  1173,    -1,    -1,    -1,    -1,    -1,    -1,   634,
     3497     635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3498      -1,    -1,    -1,  1194,   951,    -1,    -1,   652,    -1,    -1,
     3499      -1,    -1,   657,   658,    -1,    -1,   661,   662,    -1,    -1,
     3500      -1,    -1,    -1,   668,    -1,    -1,    -1,    -1,    -1,    -1,
     3501      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   986,
     3502      -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3503    1241,    -1,   999,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3504      -1,    -1,    -1,    -1,    -1,   710,   711,    -1,    -1,    10,
     3505      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3506      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3507      31,    32,    -1,  1040,    -1,    -1,    -1,    -1,    39,   744,
     3508     745,    -1,    -1,    -1,   749,   750,    -1,    -1,    -1,    -1,
    33713509      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3372       -1,    -1,   270,    -1,    -1,    -1,   733,    -1,   276,    -1,
    3373      278,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3374       -1,    -1,    -1,    -1,    -1,  1000,    -1,   295,    10,    11,
    3375       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3376       22,    23,    24,    25,    26,    27,  1021,  1022,    30,    31,
    3377       32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    3378       -1,    -1,    -1,    -1,    -1,    -1,    -1,   794,    -1,    -1,
    3379      338,    -1,    -1,    -1,    -1,   343,    -1,    -1,    -1,   806,
    3380       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3381       72,    -1,    74,    75,    76,    -1,    -1,    -1,   825,    -1,
    3382       -1,    83,    84,    -1,   372,    -1,  1081,    -1,   376,   377,
    3383       -1,   379,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,
    3384       -1,   389,   390,    -1,   392,    -1,   394,   109,    -1,   111,
    3385       -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,
    3386       -1,    -1,    -1,   411,    -1,    -1,    -1,    -1,    -1,    -1,
    3387       -1,   419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
    3388      156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3389       -1,    -1,  1147,    -1,    -1,    -1,   444,    -1,    -1,    -1,
    3390       -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
    3391       14,    -1,    -1,   189,    -1,    -1,    -1,    -1,    -1,    -1,
    3392      196,    -1,   470,    -1,    -1,    -1,    -1,    -1,   476,    -1,
    3393       -1,   938,    -1,   481,  1189,    39,    10,    11,    12,    13,
     3510      -1,    -1,    -1,    -1,    -1,  1316,    67,  1318,    -1,    -1,
     3511      -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,  1330,
     3512      -1,  1332,    -1,    -1,    -1,    -1,    -1,    -1,   793,    -1,
     3513      -1,    -1,  1530,    -1,    -1,    -1,   801,    -1,  1349,    -1,
     3514      -1,    -1,    -1,   808,   809,    -1,    -1,   812,    -1,   814,
     3515    1117,    -1,    -1,    -1,  1365,  1366,   117,   118,    -1,   824,
     3516      -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,  1379,    -1,
     3517      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3518      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1400,
     3519      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1409,    -1,
     3520      -1,  1412,    -1,  1414,  1415,  1416,    -1,    -1,    -1,    -1,
     3521    1177,  1178,    10,    11,    12,    13,    14,    15,    16,    17,
     3522      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3523      -1,   896,    30,    31,    32,    -1,    -1,    -1,   903,   904,
     3524     905,    39,   907,  1454,    -1,  1456,   911,  1458,    -1,    -1,
     3525      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3526      -1,    -1,  1473,    -1,    -1,    -1,    -1,   932,   933,    67,
     3527      -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
     3528      -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
     3529      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3530      -1,    -1,   967,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3531      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
     3532     118,    -1,    -1,   988,   989,    -1,    -1,    -1,    -1,    -1,
     3533      -1,    -1,    -1,    -1,   999,    -1,    -1,    -1,    -1,    -1,
     3534    1005,  1006,    -1,  1008,  1009,  1010,    -1,    -1,    -1,    -1,
     3535      -1,    -1,    -1,    -1,    -1,  1020,  1021,    -1,    -1,    -1,
     3536      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     3537       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    33943538      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3395       24,    25,    26,    27,    28,    -1,    30,    31,    32,    -1,
    3396       -1,   968,    -1,    67,    -1,    39,    -1,    -1,    72,   517,
    3397       -1,  1226,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    3398       84,    -1,    -1,    -1,   532,    -1,    -1,    -1,    -1,    -1,
    3399       -1,    -1,   268,    67,    -1,    -1,  1003,    -1,    72,    -1,
    3400       74,    75,    76,    -1,    78,   109,    -1,  1014,    -1,    83,
    3401       84,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
    3402     1275,  1276,    -1,   571,    -1,    -1,    -1,    -1,    -1,  1284,
    3403       -1,    -1,   580,    -1,    -1,   109,    -1,   111,   146,   587,
    3404       -1,    -1,    -1,   117,   118,   593,    -1,   323,   156,    -1,
    3405       -1,    -1,    -1,    -1,   602,   331,   332,    -1,   334,   335,
    3406      168,   169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
    3407       -1,    -1,    -1,   349,    -1,    -1,    -1,    -1,    -1,  1086,
     3539      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
     3540      -1,    -1,    36,    37,    38,    39,    40,    -1,    -1,    -1,
     3541      -1,    -1,    -1,    -1,    -1,  1382,    -1,    -1,  1083,    -1,
     3542    1085,    -1,    -1,    -1,    -1,  1090,    -1,    -1,    -1,    -1,
     3543      -1,  1398,    66,    67,  1099,    69,    -1,    71,    72,    -1,
     3544      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3545      84,    -1,    86,    87,    -1,    -1,    -1,  1122,  1123,  1124,
    34083546      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3409       -1,    -1,   368,  1100,   642,   371,     3,     4,     5,     6,
    3410        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3411       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3412       27,    -1,   398,    30,    31,    32,   402,    -1,    -1,    -1,
    3413      678,   239,    39,    -1,    -1,    -1,    -1,    -1,   686,    -1,
    3414     1395,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
    3415       -1,    -1,    -1,    -1,    -1,   263,    -1,   433,    -1,    -1,
    3416       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,   717,
    3417       -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,   727,
    3418      728,    76,  1189,    -1,    79,    80,    81,    82,    83,    84,
    3419       -1,    86,    87,    -1,    -1,    -1,  1451,    -1,  1453,    -1,
    3420       -1,    -1,    -1,   479,   111,    -1,   482,    -1,    -1,    -1,
    3421      117,   118,   760,    -1,   109,    -1,   111,   765,    -1,   114,
    3422       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3423       -1,    -1,  1487,    -1,  1489,    -1,    -1,    -1,    -1,    -1,
    3424       -1,    -1,    -1,    -1,    -1,   521,    -1,    -1,    -1,   525,
    3425      526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3426       -1,  1516,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,    -1,   380,    -1,    -1,    -1,    -1,  1284,    -1,    -1,
    3428       -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,   836,    -1,
    3429       -1,    -1,    -1,    -1,    -1,   571,   572,    -1,    -1,    -1,
    3430       -1,   849,    -1,   851,    -1,    -1,    -1,    -1,    -1,    -1,
    3431       -1,    -1,    -1,    -1,   590,   591,    -1,   865,    -1,    -1,
    3432       -1,    -1,    -1,   871,    -1,   601,    -1,   603,   604,    -1,
    3433       -1,    -1,    -1,    -1,   610,   883,    -1,    -1,   886,    -1,
    3434       -1,    -1,    -1,    -1,   620,   621,    -1,    -1,    -1,    -1,
    3435      626,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   635,
    3436      636,   637,    -1,    -1,    -1,    -1,   474,    -1,    -1,    -1,
    3437       -1,    -1,    -1,    -1,    -1,    -1,    -1,   653,    -1,    -1,
    3438       -1,    -1,   658,   659,    -1,    -1,   662,   663,    -1,    -1,
    3439       -1,    -1,    -1,   669,    -1,    -1,    -1,    -1,    -1,    -1,
    3440       -1,    -1,    -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,
    3441       -1,    -1,   688,    -1,    -1,   963,    -1,    -1,   526,    -1,
    3442       -1,    -1,    -1,   531,    -1,    -1,   534,    -1,    -1,    -1,
    3443       -1,    -1,    -1,    -1,    -1,   711,   712,    -1,    -1,   547,
    3444       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3445      998,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3446       -1,   569,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,
    3447      746,   579,    -1,    -1,   750,   751,    -1,    -1,   586,    -1,
    3448       -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,
    3449       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3450       20,    21,    22,    23,    24,    25,    26,    27,  1056,    -1,
    3451       30,    31,    32,    -1,  1062,    -1,    -1,    -1,   794,    39,
    3452       -1,    -1,    -1,    -1,  1531,    -1,   802,    -1,    -1,    -1,
    3453       -1,    -1,   640,   809,   810,    -1,    -1,   813,    -1,   815,
    3454      648,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1096,   825,
    3455       -1,    -1,    72,  1101,    74,    75,    76,    -1,    -1,    -1,
    3456       -1,  1109,    -1,    83,    84,    -1,    10,    11,    12,    13,
    3457       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3458       24,    25,    26,    27,    28,    -1,    -1,    -1,    -1,   109,
    3459       -1,   111,    -1,    -1,  1142,    39,    -1,   117,   118,    -1,
    3460       -1,    -1,    -1,    -1,    -1,    -1,  1154,    -1,    -1,  1157,
    3461       -1,  1159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3462       -1,   897,    -1,    67,    -1,  1173,  1174,    -1,   904,   905,
    3463      906,    -1,   908,    -1,    78,    -1,   912,    -1,   746,    -1,
    3464      748,    -1,    -1,    -1,    -1,    -1,    -1,  1195,    -1,    -1,
    3465      758,    -1,    -1,    -1,    -1,    -1,   764,   933,   934,    -1,
    3466       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3467       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3468       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3469       -1,    -1,   968,    -1,  1242,    -1,    -1,    -1,   806,   807,
    3470       -1,    -1,   810,    -1,    -1,    -1,    -1,    -1,    37,    38,
    3471       -1,    40,    -1,   989,   990,    -1,   824,    67,    -1,    -1,
    3472       -1,    -1,    -1,    -1,  1000,    -1,    -1,    -1,    78,    -1,
    3473     1006,  1007,    -1,  1009,  1010,  1011,    -1,    66,    -1,    -1,
    3474       -1,    -1,    -1,    72,    -1,  1021,  1022,    76,    -1,    -1,
    3475       79,    80,    81,    82,    83,    84,   864,    86,    87,    -1,
    3476      868,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1317,
    3477       -1,  1319,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3478      109,    -1,   111,  1331,    -1,  1333,    -1,   116,   117,   118,
    3479      119,   120,   121,   122,    -1,    -1,    -1,   905,    -1,    -1,
    3480       -1,    -1,  1350,    -1,    -1,    -1,    -1,    -1,  1084,    -1,
    3481     1086,    -1,    -1,    -1,    -1,  1091,    -1,    -1,  1366,  1367,
    3482       -1,    -1,    -1,    -1,  1100,    -1,    -1,    -1,    -1,  1377,
    3483       -1,    -1,  1380,    -1,    -1,    -1,   944,    -1,    -1,    -1,
    3484       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1123,  1124,  1125,
    3485       -1,    -1,    -1,  1401,    -1,    -1,    -1,    -1,    -1,    -1,
    3486       -1,    -1,  1410,    -1,   972,  1413,    -1,  1415,  1416,  1417,
    3487      978,  1147,    -1,    -1,   982,    37,    38,    -1,    40,    -1,
    3488       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3489       -1,    -1,    -1,    -1,    -1,  1003,    -1,    -1,    -1,    -1,
    3490       -1,    -1,    -1,    -1,    66,    -1,  1014,  1455,    -1,  1457,
    3491       72,  1459,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3492       82,    83,    84,    -1,    86,    87,  1474,    -1,  1036,    -1,
    3493     1038,    -1,  1208,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3494       -1,    -1,    -1,    -1,    -1,  1053,  1054,   109,    -1,   111,
    3495     1226,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
    3496      122,    -1,    -1,    -1,    -1,    -1,  1074,    -1,    -1,    -1,
    3497       -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3498        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3499       19,    20,    21,    22,    23,    24,    25,    26,    27,  1275,
    3500     1276,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
    3501       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3502       -1,  1129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3503       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1147,
    3504       69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,
    3505       -1,    -1,    -1,    -1,  1162,  1163,    -1,     3,     4,     5,
    3506        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3507       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3508       26,    27,   111,    -1,    30,    31,    32,    33,   117,   118,
    3509       36,    37,    38,    39,    40,    41,    -1,    43,    -1,    -1,
    3510       46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    3511       -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,  1395,
    3512       66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
     3547      -1,    37,    38,    -1,    40,   109,    -1,   111,    -1,    -1,
     3548      -1,  1146,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3549      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,    -1,
     3550      66,  1468,  1469,    -1,    -1,    -1,    72,    -1,    74,    75,
    35133551      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    35143552      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35153553      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3516       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
     3554      -1,    -1,  1207,   109,    -1,   111,    -1,   113,   114,    -1,
    35173555      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3518       -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,
    3519       -1,    -1,    -1,    -1,    -1,  1303,    -1,    -1,  1306,    -1,
    3520       -1,    -1,    -1,    -1,    -1,    -1,  1482,    -1,    -1,    -1,
     3556    1225,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
     3557       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3558      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3559      25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
     3560      -1,    36,    37,    38,    39,    40,    41,    -1,    43,  1274,
     3561    1275,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3562      -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
     3563      -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3564      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3565      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35213566      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3567      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3568      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3569      -1,    -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,
     3570      -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
     3571      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3572      20,    21,    22,    23,    24,    25,    26,    27,    -1,  1394,
     3573      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
     3574      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3575      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3576      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    69,
     3577      39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3578      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3579      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3580      -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,   109,
     3581      -1,   111,    -1,    -1,    83,    84,  1481,   117,   118,   119,
     3582     120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35223583      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3523     1506,  1507,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3584    1505,  1506,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
    35243585      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3525       -1,    -1,    -1,    -1,    -1,  1531,     3,     4,     5,     6,
    3526        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3527       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3528       27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,
    3529       37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    3530       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3531       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
    3532       67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
    3533       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3534       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3535       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    3536       -1,    -1,   109,    -1,   111,    -1,    -1,    83,    84,    -1,
    3537      117,   118,   119,   120,   121,   122,     4,     5,     6,     7,
     3586      -1,    -1,    -1,    -1,    -1,  1530,     4,     5,     6,     7,
    35383587       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    35393588      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3540       -1,    -1,    30,    31,    32,    -1,    -1,    -1,  1516,    37,
     3589      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
    35413590      38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
    35423591      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     
    35453594      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    35463595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3547       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    3548       -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,   117,
     3596      67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,
     3597      -1,   109,    -1,   111,    -1,    -1,    83,    84,   116,   117,
    35493598     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
    35503599       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     
    35653614      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    35663615      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3567       -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,
     3616      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    69,
    35683617      39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    35693618      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    35703619      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3571       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3620      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
    35723621      -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,
    35733622     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
     
    36733722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36743723      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
    3675       -1,    78,     4,     5,     6,     7,     8,     9,    10,    11,
     3724      -1,    78,     3,     4,     5,     6,     7,     8,     9,    10,
     3725      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3726      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3727      31,    32,    33,    -1,   111,    36,    -1,    -1,    39,    -1,
     3728     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3729      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3730      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3731      71,    -1,    -1,    74,    75,     3,     4,     5,     6,     7,
     3732       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3733      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3734      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3735     111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
     3736      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3737      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3738      -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,     4,
     3739       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3740      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3741      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3742      -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,   117,
     3743     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3744      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3745      -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3746      75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,
     3747      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3748      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3749      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3750      -1,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
     3751      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3752      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3753      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
     3754      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3755      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3756      26,    27,    -1,    -1,    30,    31,    32,    67,    -1,    69,
     3757      -1,    71,    -1,    39,    74,    75,    -1,     4,     5,     6,
     3758       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3759      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3760      27,    67,    -1,    30,    31,    32,    -1,    -1,    74,    75,
     3761     110,   111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,
     3762      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3763      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3764      67,    -1,    69,    -1,    71,   111,    -1,    74,    75,    -1,
     3765      -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3766      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,
     3767      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3768      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3769     117,   118,     4,     5,     6,     7,     8,     9,    10,    11,
    36763770      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    36773771      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3678       32,    -1,    -1,    -1,   111,    -1,    -1,    39,    -1,    -1,
    3679      117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3772      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
     3773      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3774      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3775      -1,    30,    31,    32,    -1,    67,    -1,    69,    -1,    71,
     3776      39,    40,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
    36803777      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3681       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3682       72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,
    3683       -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3684       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3685       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3778      -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    67,    -1,
     3779      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   111,
    36863780      -1,    -1,    -1,    -1,    -1,   117,   118,     4,     5,     6,
    36873781       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    36883782      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3689       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3690       -1,    -1,    39,    -1,    -1,    -1,    -1,    10,    11,    12,
    3691       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3692       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3693       67,    -1,    69,    -1,    71,    -1,    39,    74,    75,    -1,
     3783      27,    -1,   111,    30,    31,    32,   115,    -1,   117,   118,
     3784      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3785      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3786      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3787      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
    36943788       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    36953789      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3696       24,    25,    26,    27,    67,    -1,    30,    31,    32,    -1,
    3697       -1,    74,    75,   110,   111,    39,    -1,    -1,    -1,    -1,
     3790      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3791      -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
    36983792     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3699       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3700       -1,    -1,    -1,    67,    -1,    69,   109,    71,   111,    -1,
    3701       74,    75,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
    3702       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3703       -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3704       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    3705       -1,    -1,    -1,   117,   118,     4,     5,     6,     7,     8,
    3706        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3707       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3708       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3709       39,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3710       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3711       26,    27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,
    3712       69,    -1,    71,    39,    40,    74,    75,    -1,    -1,    -1,
    3713       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3714       -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
    3715       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    3716       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
    3717        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3718       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3719       24,    25,    26,    27,    -1,   111,    30,    31,    32,   115,
    3720       -1,   117,   118,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    3721       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37223793      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37233794      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     
    37363807      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37373808      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3738       -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,     4,
    3739        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3740       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3741       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3742       -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,   117,
     3809      -1,    69,    -1,    71,    -1,    -1,    74,    75,    10,    11,
     3810      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3811      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3812      32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
     3813      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
    37433814     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3815      -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,    -1,
     3816      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3817      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    37443818      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3745       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3746       75,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3819      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3820      -1,    -1,   114,    -1,    -1,   117,   118,   119,   120,   121,
     3821     122,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    37473822      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    37483823      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    3749       39,    40,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3750       -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
    3751       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,
    3752       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3824      39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
     3825      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3826      -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
     3827      -1,    39,    40,    72,    -1,    74,    75,    76,    -1,    -1,
    37533828      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3754       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3755       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3756      109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,
     3829      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3830      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
     3831     109,   110,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
    37573832     119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
    37583833      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3759       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3760       -1,    37,    38,    39,    40,    10,    11,    12,    13,    14,
     3834      26,    27,    -1,   111,    30,    31,    32,   115,    -1,   117,
     3835     118,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    37613836      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37623837      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     
    37643839      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    37653840      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3766       -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3767       75,    76,    -1,   109,   110,   111,    -1,    -1,    83,    84,
     3841      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3842      75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    37683843      -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
    37693844      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     
    37763851      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    37773852      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3778       72,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
    3779       -1,    83,    84,    -1,   117,   118,   119,   120,   121,   122,
     3853      -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3854      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    37803855      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    37813856      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
     
    37843859      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    37853860      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,
    3786       39,    40,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3861      39,    -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    37873862      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    37883863      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     
    37913866     120,   121,   122,    10,    11,    12,    13,    14,    15,    16,
    37923867      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3793       27,    -1,   111,    30,    31,    32,   115,    -1,   117,   118,
    3794       37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    3795       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3796       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
    3797       67,    -1,    -1,    39,    40,    72,    -1,    74,    75,    76,
    3798       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3868      27,    -1,   111,    30,    31,    32,    -1,    -1,   117,   118,
     3869      37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,
     3870      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3871      19,    20,    21,    22,    23,    24,    25,    26,    27,    66,
     3872      67,    30,    31,    32,    -1,    72,    -1,    74,    75,    76,
     3873      39,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    37993874      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3800       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    3801       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3802      117,   118,   119,   120,   121,   122,    10,    11,    12,    13,
     3875      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3876      -1,    -1,   109,    -1,   111,    74,    75,    -1,    -1,    -1,
     3877     117,   118,   119,   120,   121,   122,     3,     4,     5,     6,
     3878       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3879      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3880      27,    -1,   111,    30,    31,    32,    -1,    -1,   117,   118,
     3881      -1,    -1,    39,    -1,    -1,    -1,    10,    11,    12,    13,
    38033882      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3804       24,    25,    26,    27,    -1,   111,    30,    31,    32,   115,
    3805       -1,   117,   118,    37,    38,    39,    40,    -1,    -1,    -1,
     3883      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3884      67,    -1,    69,    -1,    71,    39,    -1,    74,    75,    -1,
    38063885      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    38073886      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3808       26,    27,    66,    67,    30,    31,    32,    -1,    72,    -1,
    3809       74,    75,    76,    39,    -1,    79,    80,    81,    82,    83,
    3810       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3887      26,    27,    -1,    67,    30,    31,    32,    -1,    72,    -1,
     3888      74,    75,    76,    39,    -1,    -1,    -1,   114,    -1,    83,
     3889      84,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3890      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3891      -1,    67,    30,    31,    32,   109,    72,   111,    74,    75,
     3892      76,    39,    -1,   117,   118,    -1,    -1,    83,    84,    -1,
     3893      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3894      20,    21,    22,    23,    24,    25,    26,    27,    28,    67,
     3895      30,    31,    32,   109,    72,   111,    74,    75,    76,    39,
     3896      -1,   117,   118,    -1,    -1,    83,    84,    -1,    10,    11,
     3897      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3898      22,    23,    24,    25,    26,    27,    28,    67,    30,    31,
     3899      32,   109,    -1,   111,    74,    75,    -1,    39,    78,   117,
     3900     118,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3901      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3902      -1,    30,    31,    32,    -1,    67,    -1,    -1,    -1,   109,
     3903      39,   111,    74,    75,    -1,    -1,    78,   117,   118,    -1,
    38113904      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3812       -1,    67,    -1,    -1,    -1,   109,    -1,   111,    74,    75,
    3813       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     3,
     3905      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3906      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   111,
     3907      -1,    -1,    -1,    -1,    -1,   117,   118,     4,     5,     6,
     3908       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3909      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3910      27,    -1,   111,    30,    31,    32,    -1,    -1,   117,   118,
     3911      -1,    -1,    39,    -1,    37,    38,    -1,    40,    41,    -1,
     3912      43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
     3913      53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,
     3914      67,    64,    69,    66,    71,    -1,    -1,    74,    75,    72,
     3915      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3916      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3917      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3918      -1,    -1,    -1,   110,    -1,    -1,   109,    -1,   111,    -1,
     3919      -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3920      -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,   132,
    38143921       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    38153922      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3816       24,    25,    26,    27,    -1,   111,    30,    31,    32,    -1,
    3817       -1,   117,   118,    -1,    -1,    39,    -1,    -1,    -1,    10,
    3818       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3819       21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
    3820       31,    32,    -1,    67,    -1,    69,    -1,    71,    39,    -1,
    3821       74,    75,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
    3822       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3823       23,    24,    25,    26,    27,    -1,    67,    30,    31,    32,
    3824       -1,    72,    -1,    74,    75,    76,    39,    78,    -1,    -1,
    3825      114,    -1,    83,    84,    -1,    10,    11,    12,    13,    14,
    3826       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3827       25,    26,    27,    28,    67,    30,    31,    32,    -1,    72,
    3828      111,    74,    75,    76,    39,    -1,   117,   118,    -1,    -1,
    3829       83,    84,    -1,    10,    11,    12,    13,    14,    15,    16,
    3830       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3831       27,    -1,    67,    30,    31,    32,   109,    -1,   111,    74,
    3832       75,    -1,    39,    78,   117,   118,    10,    11,    12,    13,
    3833       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    38343923      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3835       67,    -1,    -1,    -1,    -1,    39,   111,    74,    75,    -1,
    3836       -1,    -1,   117,   118,    10,    11,    12,    13,    14,    15,
    3837       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3838       26,    27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,
    3839       74,    75,    -1,    39,   111,    -1,    -1,    -1,    -1,    -1,
    3840      117,   118,    10,    11,    12,    13,    14,    15,    16,    17,
    3841       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3842       -1,    67,    30,    31,    32,    -1,    -1,   111,    74,    75,
    3843       -1,    39,    -1,   117,   118,    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,    67,
    3846       -1,    -1,    -1,    -1,    39,   111,    74,    75,    -1,    -1,
    3847       -1,   117,   118,    10,    11,    12,    13,    14,    15,    16,
    3848       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3849       27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,    74,
    3850       75,    -1,    39,   111,    -1,    -1,    -1,    -1,    -1,   117,
    3851      118,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3852       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3853       67,    30,    31,    32,    -1,    -1,   111,    74,    75,    -1,
    3854       39,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
    3855       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3856       20,    21,    22,    23,    24,    25,    26,    27,    67,    -1,
    3857       30,    31,    32,    -1,   111,    74,    75,    -1,    -1,    39,
    3858      117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3924      -1,    -1,    -1,    -1,    -1,    39,    -1,    37,    38,    -1,
     3925      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
     3926      50,    51,    52,    53,    -1,    -1,    56,    57,    -1,    -1,
     3927      -1,    61,    62,    67,    64,    69,    66,    71,    -1,    -1,
     3928      74,    75,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3929      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3930      -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3931      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3932      -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,   119,
     3933     120,   121,   122,    -1,    -1,    37,    38,   127,    40,    41,
     3934      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
     3935      52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,
     3936      62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    -1,
     3937      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     3938      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    38593939      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3860       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3861       -1,    71,    -1,    -1,    74,    75,    -1,    -1,   117,   118,
    3862       37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,    46,
    3863       47,    48,    49,    50,    51,    52,    53,    -1,    -1,    56,
    3864       57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,
    3865      110,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3940      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3941      -1,    -1,   114,    -1,    -1,   117,   118,   119,   120,   121,
     3942     122,    -1,    -1,    37,    38,   127,    40,    41,    -1,    43,
     3943      -1,    -1,    46,    47,    48,    49,    50,    51,    52,    53,
     3944      -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,
     3945      64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     3946      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3947      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3948      37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
     3949      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3950     114,    -1,    -1,   117,   118,   119,   120,   121,   122,    66,
     3951      -1,    -1,    -1,   127,    -1,    72,    -1,    -1,    -1,    76,
    38663952      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3867       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3868       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3869       -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
    3870      117,   118,   119,   120,   121,   122,    -1,    -1,    37,    38,
    3871      127,    40,    41,    -1,    43,   132,    -1,    46,    47,    48,
    3872       49,    50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,
    3873       -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,
    3874       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3875       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3876       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3877       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3878      109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,
    3879      119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,    -1,
    3880       -1,    -1,    -1,   132,     4,     5,     6,     7,     8,     9,
    3881       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3882       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3883       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3884       -1,    37,    38,    -1,    40,    41,    -1,    43,    44,    45,
    3885       46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    3886       56,    57,    -1,    -1,    -1,    61,    62,    67,    64,    69,
    3887       66,    71,    -1,    -1,    74,    75,    72,    -1,    -1,    -1,
    3888       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3889       86,    87,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
    3890       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3891       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
    3892       -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    37,
    3893       38,   127,    40,    41,    -1,    43,    44,    45,    46,    47,
    3894       48,    49,    50,    51,    52,    53,    -1,    -1,    -1,    57,
    3895       -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,
    3896       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    3897       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3898       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3900       -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,
    3901      118,   119,   120,   121,   122,    -1,    -1,    37,    38,   127,
    3902       40,    41,    -1,    43,    -1,    -1,    46,    47,    48,    49,
    3903       50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
    3904       -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
     3953      87,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,
     3954      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3955      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,
     3956     117,   118,   119,   120,   121,   122,    66,    -1,    -1,    -1,
    39053957      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    39063958      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     
    39083960      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    39093961      -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,   119,
    3910      120,   121,   122,    66,    -1,    -1,    -1,   127,    -1,    72,
     3962     120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,
    39113963      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    39123964      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    39133965      -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    39143966      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
    3915       -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3967      37,    38,    -1,    40,   117,   118,   119,   120,   121,   122,
    39163968      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    3917       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3918       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
    3919       -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3920       -1,    -1,    -1,   109,    -1,   111,    -1,    37,    38,    -1,
    3921       40,   117,   118,   119,   120,   121,   122,    66,    -1,    -1,
    3922       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3923       79,    80,    81,    82,    83,    84,    66,    86,    87,    -1,
     3969      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    66,
     3970      86,    87,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3971      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3972      87,    -1,    -1,   109,    -1,   111,    -1,    37,    38,    -1,
     3973      40,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3974      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3975     117,   118,   119,   120,   121,   122,    66,    -1,    -1,    -1,
    39243976      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    39253977      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3926      109,    -1,   111,    -1,    37,    38,    -1,    40,   117,   118,
    3927      119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,   109,
    3928       -1,   111,    -1,    37,    38,    -1,    40,   117,   118,   119,
    3929      120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,
    3930       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3931       83,    84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,
    3932       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3933       84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,    -1,
    3934       37,    38,    -1,    40,   117,   118,   119,   120,   121,   122,
    3935       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    37,
    3936       38,    -1,    40,   117,   118,   119,   120,   121,   122,    66,
    3937       -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    3938       -1,    -1,    79,    80,    81,    82,    83,    84,    66,    86,
    3939       87,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    3940       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3941       -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3942      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
    3943       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3944      118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
     3978      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3979      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3980      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
     3981     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
     3982      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3983      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    -1,
     3984      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,
     3985      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3986      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3987      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3988      71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3989      -1,    -1,    83,    84,     3,     4,     5,     6,     7,     8,
    39453990       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    39463991      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3947       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3992      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    39483993      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39493994      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39503995      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3951       69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3952       -1,    -1,    -1,    -1,    83,    84,     3,     4,     5,     6,
    3953        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3954       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3955       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3956       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3996      69,    -1,    71,    -1,    -1,    74,    75,     3,     4,     5,
     3997       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3998      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3999      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     4000      -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    39574001      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39584002      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3959       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     3,
     4003      -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
    39604004       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    39614005      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    39654009      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39664010      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3967       74,    75,     4,     5,     6,     7,     8,     9,    10,    11,
    3968       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3969       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3970       32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    3971       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3972       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3973       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3974       -1,    -1,    74,    75
     4011      74,    75
    39754012};
    39764013
     
    40334070     174,   226,   275,   366,   370,   112,   134,    82,    85,    86,
    40344071      87,   109,   111,   113,   114,    97,    98,    99,   100,   101,
    4035      102,   103,   104,   105,   106,   107,   131,   167,   152,   152,
    4036      117,   123,   124,   119,   120,    88,    89,    90,    91,   125,
    4037      126,    92,    93,   118,   127,   128,    94,    95,   129,   131,
    4038      373,   109,   150,   345,   346,   347,   348,   349,   110,   116,
    4039      109,   349,   350,   109,   349,   350,   134,   109,   226,   368,
    4040      112,   134,   135,   111,   226,   228,   361,   362,   370,   371,
    4041      135,   109,   111,   150,   319,   336,   337,   338,   339,   340,
    4042      341,   342,   343,   344,   350,   351,   352,   353,   354,   355,
    4043      356,   150,   370,   228,   135,   135,   150,   226,   228,   363,
    4044      272,   226,   350,   363,   272,   109,   134,   134,   134,   112,
    4045      134,    72,   111,   113,   140,   274,   278,   279,   280,   281,
    4046      282,   134,   134,   134,   134,   134,   134,   309,   110,   110,
    4047      110,   110,   110,   110,   110,   318,   331,   109,   277,   112,
    4048      208,   134,   309,   170,   276,   170,   276,   309,   111,   208,
    4049      311,   174,   134,   208,   110,    40,   111,   115,   226,   249,
    4050      250,   251,   366,   114,   116,   372,   131,   259,   114,   228,
    4051      264,   265,   266,   269,   270,   110,   116,   174,   134,   117,
    4052      165,   134,   225,   228,   263,   362,   370,   303,   304,   109,
    4053      150,   336,   110,   116,   373,   274,   286,   109,   114,   274,
    4054      276,   286,   110,   116,   109,   141,   110,   130,   275,   275,
    4055      275,   146,   165,   276,   275,   112,   134,   110,   116,   110,
    4056      109,   150,   349,   357,   358,   359,   360,   110,   116,   165,
    4057      111,   139,   145,   146,   134,   111,   139,   145,   165,   152,
    4058      152,   152,   153,   153,   154,   154,   155,   155,   155,   155,
    4059      156,   156,   157,   158,   159,   160,   161,   130,   170,   165,
    4060      134,   346,   347,   348,   228,   345,   312,   312,   165,   276,
    4061      134,   271,   134,   226,   350,   363,   228,   232,   112,   112,
    4062      134,   370,   112,   109,   134,   319,   337,   338,   339,   342,
    4063      352,   353,   354,   112,   134,   228,   336,   340,   351,   109,
    4064      312,   355,   373,   312,   312,   373,   109,   312,   355,   312,
    4065      312,   312,   312,   350,   226,   361,   371,   272,   112,   116,
    4066      112,   116,   373,   226,   363,   373,   260,   261,   262,   263,
    4067      260,   260,   272,   165,   134,   111,   274,   130,   116,   372,
    4068      278,   111,   130,   282,    29,   210,   211,   272,   260,   139,
    4069      309,   139,   311,   109,   349,   350,   109,   349,   350,   142,
    4070      350,   174,   264,   110,   110,   110,   110,   112,   174,   208,
    4071      174,   114,   250,   251,   112,   134,   109,   130,   150,   252,
    4072      254,   318,   319,   331,   357,   116,   132,   116,   132,   274,
    4073      248,   274,   115,   163,   164,   258,   135,   135,   139,   223,
    4074      135,   135,   260,   109,   150,   370,   135,   115,   228,   287,
    4075      288,   135,   134,   134,   109,   135,   110,   316,   170,   171,
    4076      130,   132,   111,   141,   201,   202,   203,   110,   116,   110,
    4077      110,   110,   110,   111,   165,   358,   359,   360,   228,   357,
    4078      312,   312,   114,   152,   168,   165,   166,   169,   116,   135,
    4079      134,   110,   116,   165,   134,   115,   163,   130,   264,   110,
    4080      110,   110,   345,   264,   110,   260,   226,   363,   111,   117,
    4081      150,   165,   165,   228,   342,   264,   110,   110,   110,   110,
    4082      110,   110,   110,     7,   228,   336,   340,   351,   134,   134,
    4083      373,   134,   134,   110,   135,   135,   135,   135,   277,   135,
    4084      163,   164,   165,   310,   134,   278,   280,   115,   134,   212,
    4085      274,    40,    41,    43,    46,    47,    48,    49,    50,    51,
    4086       52,    53,    57,    61,    62,    72,   111,   127,   171,   172,
    4087      173,   174,   175,   176,   178,   179,   191,   193,   194,   199,
    4088      213,   308,    29,   135,   131,   277,   134,   134,   110,   135,
    4089      174,   248,   132,   132,   319,   164,   228,   253,   254,   253,
    4090      274,   312,   115,   259,   372,   110,   116,   112,   112,   135,
    4091      228,   116,   373,   290,   110,   286,   216,   218,   226,   298,
    4092      299,   300,   301,   292,   110,   110,   130,   164,   109,   110,
    4093      130,   116,   139,   112,   110,   110,   110,   357,   279,   116,
    4094      135,   169,   112,   139,   147,   148,   146,   135,   147,   163,
    4095      168,   135,   109,   349,   350,   135,   135,   134,   135,   135,
    4096      135,   165,   110,   135,   109,   349,   350,   109,   355,   109,
    4097      355,   350,   227,     7,   117,   135,   165,   264,   264,   263,
    4098      267,   267,   268,   116,   116,   110,   110,   112,    96,   122,
    4099      135,   135,   147,   278,   165,   116,   132,   213,   217,   228,
    4100      232,   109,   109,   172,   109,   109,    72,   132,    72,   132,
    4101       72,   117,   171,   109,   174,   166,   166,   130,   112,   144,
    4102      132,   135,   134,   135,   212,   110,   165,   264,   264,   312,
    4103      110,   115,   252,   115,   134,   110,   134,   135,   309,   115,
    4104      134,   135,   135,   110,   114,   201,   112,   164,   132,   201,
    4105      203,   110,   109,   349,   350,   372,   166,   112,   135,    85,
    4106      113,   116,   135,   112,   135,   110,   134,   110,   110,   112,
    4107      112,   112,   135,   110,   134,   134,   134,   165,   165,   135,
    4108      112,   135,   135,   135,   135,   134,   134,   164,   164,   112,
    4109      112,   135,   135,   274,   228,   170,   170,    47,   170,   134,
    4110      132,   132,   132,   170,   132,   170,    58,    59,    60,   195,
    4111      196,   197,   132,    63,   132,   312,   114,   176,   115,   132,
    4112      135,   135,    96,   269,   270,   110,   299,   116,   132,   116,
    4113      132,   115,   297,   130,   141,   110,   110,   130,   134,   115,
    4114      112,   111,   148,   111,   148,   148,   112,   112,   264,   112,
    4115      264,   264,   264,   135,   135,   112,   112,   110,   110,   112,
    4116      116,    96,   263,    96,   135,   112,   112,   110,   110,   109,
    4117      110,   171,   192,   213,   132,   110,   109,   109,   174,   197,
    4118       58,    59,   165,   172,   145,   110,   110,   114,   134,   134,
    4119      298,   141,   204,   109,   132,   204,   264,   134,   134,   135,
    4120      135,   135,   135,   112,   112,   134,   135,   112,   172,    44,
    4121       45,   114,   182,   183,   184,   170,   172,   135,   110,   171,
    4122      114,   184,    96,   134,    96,   134,   109,   109,   132,   115,
    4123      134,   272,   309,   115,   116,   130,   164,   110,   135,   147,
    4124      147,   110,   110,   110,   110,   267,    42,   164,   180,   181,
    4125      310,   130,   134,   172,   182,   110,   132,   172,   132,   134,
    4126      110,   134,   110,   134,    96,   134,    96,   134,   132,   298,
    4127      141,   139,   205,   110,   132,   110,   135,   135,   172,    96,
    4128      116,   130,   135,   206,   207,   213,   132,   171,   171,   206,
    4129      174,   198,   226,   366,   174,   198,   110,   134,   110,   134,
    4130      115,   110,   116,   112,   112,   164,   180,   183,   185,   186,
    4131      134,   132,   183,   187,   188,   135,   109,   150,   309,   357,
    4132      139,   135,   174,   198,   174,   198,   109,   132,   139,   172,
    4133      177,   115,   183,   213,   171,    56,   177,   190,   115,   183,
    4134      110,   228,   110,   135,   135,   292,   172,   177,   132,   189,
    4135      190,   177,   190,   174,   174,   110,   110,   110,   189,   135,
    4136      135,   174,   174,   135,   135
     4072     102,   103,   104,   105,   106,   131,   167,   152,   152,   117,
     4073     123,   124,   119,   120,    88,    89,    90,    91,   125,   126,
     4074      92,    93,   118,   127,   128,    94,    95,   129,   131,   373,
     4075     109,   150,   345,   346,   347,   348,   349,   110,   116,   109,
     4076     349,   350,   109,   349,   350,   134,   109,   226,   368,   112,
     4077     134,   135,   111,   226,   228,   361,   362,   370,   371,   135,
     4078     109,   111,   150,   319,   336,   337,   338,   339,   340,   341,
     4079     342,   343,   344,   350,   351,   352,   353,   354,   355,   356,
     4080     150,   370,   228,   135,   135,   150,   226,   228,   363,   272,
     4081     226,   350,   363,   272,   109,   134,   134,   134,   112,   134,
     4082      72,   111,   113,   140,   274,   278,   279,   280,   281,   282,
     4083     134,   134,   134,   134,   134,   134,   309,   110,   110,   110,
     4084     110,   110,   110,   110,   318,   331,   109,   277,   112,   208,
     4085     134,   309,   170,   276,   170,   276,   309,   111,   208,   311,
     4086     174,   134,   208,   110,    40,   111,   115,   226,   249,   250,
     4087     251,   366,   114,   116,   372,   131,   259,   114,   228,   264,
     4088     265,   266,   269,   270,   110,   116,   174,   134,   117,   165,
     4089     134,   225,   228,   263,   362,   370,   303,   304,   109,   150,
     4090     336,   110,   116,   373,   274,   286,   109,   114,   274,   276,
     4091     286,   110,   116,   109,   141,   110,   130,   275,   275,   275,
     4092     146,   165,   276,   275,   112,   134,   110,   116,   110,   109,
     4093     150,   349,   357,   358,   359,   360,   110,   116,   165,   111,
     4094     139,   145,   146,   134,   111,   139,   145,   165,   152,   152,
     4095     152,   153,   153,   154,   154,   155,   155,   155,   155,   156,
     4096     156,   157,   158,   159,   160,   161,   130,   170,   165,   134,
     4097     346,   347,   348,   228,   345,   312,   312,   165,   276,   134,
     4098     271,   134,   226,   350,   363,   228,   232,   112,   112,   134,
     4099     370,   112,   109,   134,   319,   337,   338,   339,   342,   352,
     4100     353,   354,   112,   134,   228,   336,   340,   351,   109,   312,
     4101     355,   373,   312,   312,   373,   109,   312,   355,   312,   312,
     4102     312,   312,   350,   226,   361,   371,   272,   112,   116,   112,
     4103     116,   373,   226,   363,   373,   260,   261,   262,   263,   260,
     4104     260,   272,   165,   134,   111,   274,   130,   116,   372,   278,
     4105     111,   130,   282,    29,   210,   211,   272,   260,   139,   309,
     4106     139,   311,   109,   349,   350,   109,   349,   350,   141,   350,
     4107     174,   264,   110,   110,   110,   110,   112,   174,   208,   174,
     4108     114,   250,   251,   112,   134,   109,   130,   150,   252,   254,
     4109     318,   319,   331,   357,   116,   132,   116,   132,   274,   248,
     4110     274,   115,   163,   164,   258,   135,   135,   139,   223,   135,
     4111     135,   260,   109,   150,   370,   135,   115,   228,   287,   288,
     4112     135,   134,   134,   109,   135,   110,   316,   170,   171,   130,
     4113     132,   111,   141,   201,   202,   203,   110,   116,   110,   110,
     4114     110,   110,   111,   165,   358,   359,   360,   228,   357,   312,
     4115     312,   114,   152,   168,   165,   166,   169,   116,   135,   134,
     4116     110,   116,   165,   134,   115,   163,   130,   264,   110,   110,
     4117     110,   345,   264,   110,   260,   226,   363,   111,   117,   150,
     4118     165,   165,   228,   342,   264,   110,   110,   110,   110,   110,
     4119     110,   110,     7,   228,   336,   340,   351,   134,   134,   373,
     4120     134,   134,   110,   135,   135,   135,   135,   277,   135,   163,
     4121     164,   165,   310,   134,   278,   280,   115,   134,   212,   274,
     4122      40,    41,    43,    46,    47,    48,    49,    50,    51,    52,
     4123      53,    57,    61,    62,    72,   111,   127,   171,   172,   173,
     4124     174,   175,   176,   178,   179,   191,   193,   194,   199,   213,
     4125     308,    29,   135,   131,   277,   134,   134,   110,   135,   174,
     4126     248,   132,   132,   319,   164,   228,   253,   254,   253,   274,
     4127     312,   115,   259,   372,   110,   116,   112,   112,   135,   228,
     4128     116,   373,   290,   110,   286,   216,   218,   226,   298,   299,
     4129     300,   301,   292,   110,   110,   130,   164,   109,   110,   130,
     4130     116,   139,   112,   110,   110,   110,   357,   279,   116,   135,
     4131     169,   112,   139,   147,   148,   146,   135,   147,   163,   168,
     4132     135,   109,   349,   350,   135,   135,   134,   135,   135,   135,
     4133     165,   110,   135,   109,   349,   350,   109,   355,   109,   355,
     4134     350,   227,     7,   117,   135,   165,   264,   264,   263,   267,
     4135     267,   268,   116,   116,   110,   110,   112,    96,   122,   135,
     4136     135,   147,   278,   165,   116,   132,   213,   217,   228,   232,
     4137     109,   109,   172,   109,   109,    72,   132,    72,   132,    72,
     4138     117,   171,   109,   174,   166,   166,   130,   112,   144,   132,
     4139     135,   134,   135,   212,   110,   165,   264,   264,   312,   110,
     4140     115,   252,   115,   134,   110,   134,   135,   309,   115,   134,
     4141     135,   135,   110,   114,   201,   112,   164,   132,   201,   203,
     4142     110,   109,   349,   350,   372,   166,   112,   135,    85,   113,
     4143     116,   135,   112,   135,   110,   134,   110,   110,   112,   112,
     4144     112,   135,   110,   134,   134,   134,   165,   165,   135,   112,
     4145     135,   135,   135,   135,   134,   134,   164,   164,   112,   112,
     4146     135,   135,   274,   228,   170,   170,    47,   170,   134,   132,
     4147     132,   132,   170,   132,   170,    58,    59,    60,   195,   196,
     4148     197,   132,    63,   132,   312,   114,   176,   115,   132,   135,
     4149     135,    96,   269,   270,   110,   299,   116,   132,   116,   132,
     4150     115,   297,   130,   141,   110,   110,   130,   134,   115,   112,
     4151     111,   148,   111,   148,   148,   112,   112,   264,   112,   264,
     4152     264,   264,   135,   135,   112,   112,   110,   110,   112,   116,
     4153      96,   263,    96,   135,   112,   112,   110,   110,   109,   110,
     4154     171,   192,   213,   132,   110,   109,   109,   174,   197,    58,
     4155      59,   165,   172,   145,   110,   110,   114,   134,   134,   298,
     4156     141,   204,   109,   132,   204,   264,   134,   134,   135,   135,
     4157     135,   135,   112,   112,   134,   135,   112,   172,    44,    45,
     4158     114,   182,   183,   184,   170,   172,   135,   110,   171,   114,
     4159     184,    96,   134,    96,   134,   109,   109,   132,   115,   134,
     4160     272,   309,   115,   116,   130,   164,   110,   135,   147,   147,
     4161     110,   110,   110,   110,   267,    42,   164,   180,   181,   310,
     4162     130,   134,   172,   182,   110,   132,   172,   132,   134,   110,
     4163     134,   110,   134,    96,   134,    96,   134,   132,   298,   141,
     4164     139,   205,   110,   132,   110,   135,   135,   172,    96,   116,
     4165     130,   135,   206,   207,   213,   132,   171,   171,   206,   174,
     4166     198,   226,   366,   174,   198,   110,   134,   110,   134,   115,
     4167     110,   116,   112,   112,   164,   180,   183,   185,   186,   134,
     4168     132,   183,   187,   188,   135,   109,   150,   309,   357,   139,
     4169     135,   174,   198,   174,   198,   109,   132,   139,   172,   177,
     4170     115,   183,   213,   171,    56,   177,   190,   115,   183,   110,
     4171     228,   110,   135,   135,   292,   172,   177,   132,   189,   190,
     4172     177,   190,   174,   174,   110,   110,   110,   189,   135,   135,
     4173     174,   174,   135,   135
    41374174};
    41384175
     
    49715008
    49725009/* Line 1806 of yacc.c  */
    4973 #line 300 "parser.yy"
     5010#line 341 "parser.yy"
    49745011    { typedefTable.enterScope(); }
    49755012    break;
     
    49785015
    49795016/* Line 1806 of yacc.c  */
    4980 #line 304 "parser.yy"
     5017#line 345 "parser.yy"
    49815018    { typedefTable.leaveScope(); }
    49825019    break;
     
    49855022
    49865023/* Line 1806 of yacc.c  */
    4987 #line 311 "parser.yy"
     5024#line 352 "parser.yy"
    49885025    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    49895026    break;
     
    49925029
    49935030/* Line 1806 of yacc.c  */
    4994 #line 312 "parser.yy"
     5031#line 353 "parser.yy"
    49955032    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    49965033    break;
     
    49995036
    50005037/* Line 1806 of yacc.c  */
    5001 #line 313 "parser.yy"
     5038#line 354 "parser.yy"
    50025039    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    50035040    break;
     
    50065043
    50075044/* Line 1806 of yacc.c  */
    5008 #line 338 "parser.yy"
     5045#line 379 "parser.yy"
    50095046    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    50105047    break;
     
    50135050
    50145051/* Line 1806 of yacc.c  */
    5015 #line 342 "parser.yy"
     5052#line 383 "parser.yy"
    50165053    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    50175054    break;
     
    50205057
    50215058/* Line 1806 of yacc.c  */
    5022 #line 344 "parser.yy"
     5059#line 385 "parser.yy"
    50235060    {
    50245061                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    50315068
    50325069/* Line 1806 of yacc.c  */
    5033 #line 355 "parser.yy"
     5070#line 396 "parser.yy"
    50345071    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50355072    break;
     
    50385075
    50395076/* Line 1806 of yacc.c  */
    5040 #line 357 "parser.yy"
     5077#line 398 "parser.yy"
    50415078    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50425079    break;
     
    50455082
    50465083/* Line 1806 of yacc.c  */
    5047 #line 359 "parser.yy"
     5084#line 400 "parser.yy"
    50485085    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50495086    break;
     
    50525089
    50535090/* Line 1806 of yacc.c  */
    5054 #line 361 "parser.yy"
     5091#line 402 "parser.yy"
    50555092    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    50565093    break;
     
    50595096
    50605097/* Line 1806 of yacc.c  */
    5061 #line 371 "parser.yy"
     5098#line 412 "parser.yy"
    50625099    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    50635100    break;
     
    50665103
    50675104/* Line 1806 of yacc.c  */
    5068 #line 373 "parser.yy"
     5105#line 414 "parser.yy"
    50695106    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    50705107    break;
     
    50735110
    50745111/* Line 1806 of yacc.c  */
    5075 #line 377 "parser.yy"
     5112#line 418 "parser.yy"
    50765113    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50775114    break;
     
    50805117
    50815118/* Line 1806 of yacc.c  */
    5082 #line 380 "parser.yy"
     5119#line 421 "parser.yy"
    50835120    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50845121    break;
     
    50875124
    50885125/* Line 1806 of yacc.c  */
    5089 #line 383 "parser.yy"
     5126#line 424 "parser.yy"
    50905127    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    50915128    break;
     
    50945131
    50955132/* Line 1806 of yacc.c  */
    5096 #line 385 "parser.yy"
     5133#line 426 "parser.yy"
    50975134    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    50985135    break;
     
    51015138
    51025139/* Line 1806 of yacc.c  */
    5103 #line 387 "parser.yy"
     5140#line 428 "parser.yy"
    51045141    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    51055142    break;
     
    51085145
    51095146/* Line 1806 of yacc.c  */
    5110 #line 389 "parser.yy"
     5147#line 430 "parser.yy"
    51115148    {
    51125149                        Token fn;
     
    51195156
    51205157/* Line 1806 of yacc.c  */
    5121 #line 399 "parser.yy"
     5158#line 440 "parser.yy"
    51225159    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    51235160    break;
     
    51265163
    51275164/* Line 1806 of yacc.c  */
    5128 #line 404 "parser.yy"
     5165#line 445 "parser.yy"
    51295166    { (yyval.en) = 0; }
    51305167    break;
     
    51335170
    51345171/* Line 1806 of yacc.c  */
    5135 #line 410 "parser.yy"
     5172#line 451 "parser.yy"
    51365173    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    51375174    break;
     
    51405177
    51415178/* Line 1806 of yacc.c  */
    5142 #line 415 "parser.yy"
     5179#line 456 "parser.yy"
    51435180    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    51445181    break;
     
    51475184
    51485185/* Line 1806 of yacc.c  */
    5149 #line 419 "parser.yy"
     5186#line 460 "parser.yy"
    51505187    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51515188    break;
     
    51545191
    51555192/* Line 1806 of yacc.c  */
    5156 #line 421 "parser.yy"
     5193#line 462 "parser.yy"
    51575194    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51585195    break;
     
    51615198
    51625199/* Line 1806 of yacc.c  */
    5163 #line 423 "parser.yy"
     5200#line 464 "parser.yy"
    51645201    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51655202    break;
     
    51685205
    51695206/* Line 1806 of yacc.c  */
    5170 #line 425 "parser.yy"
     5207#line 466 "parser.yy"
    51715208    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51725209    break;
     
    51755212
    51765213/* Line 1806 of yacc.c  */
    5177 #line 433 "parser.yy"
     5214#line 474 "parser.yy"
    51785215    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51795216    break;
     
    51825219
    51835220/* Line 1806 of yacc.c  */
    5184 #line 435 "parser.yy"
     5221#line 476 "parser.yy"
    51855222    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    51865223    break;
     
    51895226
    51905227/* Line 1806 of yacc.c  */
    5191 #line 437 "parser.yy"
     5228#line 478 "parser.yy"
    51925229    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    51935230    break;
     
    51965233
    51975234/* Line 1806 of yacc.c  */
    5198 #line 442 "parser.yy"
     5235#line 483 "parser.yy"
    51995236    {
    52005237                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52145251
    52155252/* Line 1806 of yacc.c  */
    5216 #line 455 "parser.yy"
     5253#line 496 "parser.yy"
    52175254    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    52185255    break;
     
    52215258
    52225259/* Line 1806 of yacc.c  */
    5223 #line 457 "parser.yy"
     5260#line 498 "parser.yy"
    52245261    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    52255262    break;
     
    52285265
    52295266/* Line 1806 of yacc.c  */
    5230 #line 459 "parser.yy"
     5267#line 500 "parser.yy"
    52315268    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    52325269    break;
     
    52355272
    52365273/* Line 1806 of yacc.c  */
    5237 #line 461 "parser.yy"
     5274#line 502 "parser.yy"
    52385275    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52395276    break;
     
    52425279
    52435280/* Line 1806 of yacc.c  */
    5244 #line 463 "parser.yy"
     5281#line 504 "parser.yy"
    52455282    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52465283    break;
     
    52495286
    52505287/* Line 1806 of yacc.c  */
    5251 #line 465 "parser.yy"
     5288#line 506 "parser.yy"
    52525289    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52535290    break;
     
    52565293
    52575294/* Line 1806 of yacc.c  */
    5258 #line 467 "parser.yy"
     5295#line 508 "parser.yy"
    52595296    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52605297    break;
     
    52635300
    52645301/* Line 1806 of yacc.c  */
    5265 #line 469 "parser.yy"
     5302#line 510 "parser.yy"
    52665303    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    52675304    break;
     
    52705307
    52715308/* Line 1806 of yacc.c  */
    5272 #line 471 "parser.yy"
     5309#line 512 "parser.yy"
    52735310    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    52745311    break;
     
    52775314
    52785315/* Line 1806 of yacc.c  */
    5279 #line 473 "parser.yy"
     5316#line 514 "parser.yy"
    52805317    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    52815318    break;
     
    52845321
    52855322/* Line 1806 of yacc.c  */
    5286 #line 475 "parser.yy"
     5323#line 516 "parser.yy"
    52875324    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    52885325    break;
     
    52915328
    52925329/* Line 1806 of yacc.c  */
    5293 #line 481 "parser.yy"
     5330#line 522 "parser.yy"
    52945331    { (yyval.op) = OperKinds::PointTo; }
    52955332    break;
     
    52985335
    52995336/* Line 1806 of yacc.c  */
    5300 #line 482 "parser.yy"
     5337#line 523 "parser.yy"
    53015338    { (yyval.op) = OperKinds::AddressOf; }
    53025339    break;
     
    53055342
    53065343/* Line 1806 of yacc.c  */
    5307 #line 488 "parser.yy"
     5344#line 529 "parser.yy"
    53085345    { (yyval.op) = OperKinds::UnPlus; }
    53095346    break;
     
    53125349
    53135350/* Line 1806 of yacc.c  */
    5314 #line 489 "parser.yy"
     5351#line 530 "parser.yy"
    53155352    { (yyval.op) = OperKinds::UnMinus; }
    53165353    break;
     
    53195356
    53205357/* Line 1806 of yacc.c  */
    5321 #line 490 "parser.yy"
     5358#line 531 "parser.yy"
    53225359    { (yyval.op) = OperKinds::Neg; }
    53235360    break;
     
    53265363
    53275364/* Line 1806 of yacc.c  */
    5328 #line 491 "parser.yy"
     5365#line 532 "parser.yy"
    53295366    { (yyval.op) = OperKinds::BitNeg; }
    53305367    break;
     
    53335370
    53345371/* Line 1806 of yacc.c  */
    5335 #line 497 "parser.yy"
     5372#line 538 "parser.yy"
    53365373    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53375374    break;
     
    53405377
    53415378/* Line 1806 of yacc.c  */
    5342 #line 499 "parser.yy"
     5379#line 540 "parser.yy"
    53435380    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53445381    break;
     
    53475384
    53485385/* Line 1806 of yacc.c  */
    5349 #line 505 "parser.yy"
     5386#line 546 "parser.yy"
    53505387    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53515388    break;
     
    53545391
    53555392/* Line 1806 of yacc.c  */
    5356 #line 507 "parser.yy"
     5393#line 548 "parser.yy"
    53575394    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53585395    break;
     
    53615398
    53625399/* Line 1806 of yacc.c  */
    5363 #line 509 "parser.yy"
     5400#line 550 "parser.yy"
    53645401    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53655402    break;
     
    53685405
    53695406/* Line 1806 of yacc.c  */
    5370 #line 515 "parser.yy"
     5407#line 556 "parser.yy"
    53715408    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53725409    break;
     
    53755412
    53765413/* Line 1806 of yacc.c  */
    5377 #line 517 "parser.yy"
     5414#line 558 "parser.yy"
    53785415    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53795416    break;
     
    53825419
    53835420/* Line 1806 of yacc.c  */
    5384 #line 523 "parser.yy"
     5421#line 564 "parser.yy"
    53855422    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53865423    break;
     
    53895426
    53905427/* Line 1806 of yacc.c  */
    5391 #line 525 "parser.yy"
     5428#line 566 "parser.yy"
    53925429    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53935430    break;
     
    53965433
    53975434/* Line 1806 of yacc.c  */
    5398 #line 531 "parser.yy"
     5435#line 572 "parser.yy"
    53995436    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54005437    break;
     
    54035440
    54045441/* Line 1806 of yacc.c  */
    5405 #line 533 "parser.yy"
     5442#line 574 "parser.yy"
    54065443    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54075444    break;
     
    54105447
    54115448/* Line 1806 of yacc.c  */
    5412 #line 535 "parser.yy"
     5449#line 576 "parser.yy"
    54135450    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54145451    break;
     
    54175454
    54185455/* Line 1806 of yacc.c  */
    5419 #line 537 "parser.yy"
     5456#line 578 "parser.yy"
    54205457    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54215458    break;
     
    54245461
    54255462/* Line 1806 of yacc.c  */
    5426 #line 543 "parser.yy"
     5463#line 584 "parser.yy"
    54275464    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54285465    break;
     
    54315468
    54325469/* Line 1806 of yacc.c  */
    5433 #line 545 "parser.yy"
     5470#line 586 "parser.yy"
    54345471    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54355472    break;
     
    54385475
    54395476/* Line 1806 of yacc.c  */
    5440 #line 551 "parser.yy"
     5477#line 592 "parser.yy"
    54415478    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54425479    break;
     
    54455482
    54465483/* Line 1806 of yacc.c  */
    5447 #line 557 "parser.yy"
     5484#line 598 "parser.yy"
    54485485    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54495486    break;
     
    54525489
    54535490/* Line 1806 of yacc.c  */
    5454 #line 563 "parser.yy"
     5491#line 604 "parser.yy"
    54555492    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54565493    break;
     
    54595496
    54605497/* Line 1806 of yacc.c  */
    5461 #line 569 "parser.yy"
     5498#line 610 "parser.yy"
    54625499    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54635500    break;
     
    54665503
    54675504/* Line 1806 of yacc.c  */
    5468 #line 575 "parser.yy"
     5505#line 616 "parser.yy"
    54695506    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    54705507    break;
     
    54735510
    54745511/* Line 1806 of yacc.c  */
    5475 #line 581 "parser.yy"
     5512#line 622 "parser.yy"
    54765513    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54775514    break;
     
    54805517
    54815518/* Line 1806 of yacc.c  */
    5482 #line 584 "parser.yy"
     5519#line 625 "parser.yy"
    54835520    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    54845521    break;
     
    54875524
    54885525/* Line 1806 of yacc.c  */
    5489 #line 586 "parser.yy"
     5526#line 627 "parser.yy"
    54905527    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54915528    break;
     
    54945531
    54955532/* Line 1806 of yacc.c  */
    5496 #line 597 "parser.yy"
     5533#line 638 "parser.yy"
    54975534    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54985535    break;
     
    55015538
    55025539/* Line 1806 of yacc.c  */
    5503 #line 599 "parser.yy"
     5540#line 640 "parser.yy"
    55045541    { (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) ) ); }
    55055542    break;
     
    55085545
    55095546/* Line 1806 of yacc.c  */
    5510 #line 604 "parser.yy"
     5547#line 645 "parser.yy"
    55115548    { (yyval.en) = nullptr; }
    55125549    break;
     
    55155552
    55165553/* Line 1806 of yacc.c  */
    5517 #line 609 "parser.yy"
     5554#line 650 "parser.yy"
    55185555    { (yyval.op) = OperKinds::Assign; }
    55195556    break;
     
    55225559
    55235560/* Line 1806 of yacc.c  */
    5524 #line 610 "parser.yy"
    5525     { (yyval.op) = OperKinds::AtAssn; }
     5561#line 651 "parser.yy"
     5562    { (yyval.op) = OperKinds::MulAssn; }
    55265563    break;
    55275564
     
    55295566
    55305567/* Line 1806 of yacc.c  */
    5531 #line 611 "parser.yy"
    5532     { (yyval.op) = OperKinds::MulAssn; }
     5568#line 652 "parser.yy"
     5569    { (yyval.op) = OperKinds::DivAssn; }
    55335570    break;
    55345571
     
    55365573
    55375574/* Line 1806 of yacc.c  */
    5538 #line 612 "parser.yy"
    5539     { (yyval.op) = OperKinds::DivAssn; }
     5575#line 653 "parser.yy"
     5576    { (yyval.op) = OperKinds::ModAssn; }
    55405577    break;
    55415578
     
    55435580
    55445581/* Line 1806 of yacc.c  */
    5545 #line 613 "parser.yy"
    5546     { (yyval.op) = OperKinds::ModAssn; }
     5582#line 654 "parser.yy"
     5583    { (yyval.op) = OperKinds::PlusAssn; }
    55475584    break;
    55485585
     
    55505587
    55515588/* Line 1806 of yacc.c  */
    5552 #line 614 "parser.yy"
    5553     { (yyval.op) = OperKinds::PlusAssn; }
     5589#line 655 "parser.yy"
     5590    { (yyval.op) = OperKinds::MinusAssn; }
    55545591    break;
    55555592
     
    55575594
    55585595/* Line 1806 of yacc.c  */
    5559 #line 615 "parser.yy"
    5560     { (yyval.op) = OperKinds::MinusAssn; }
     5596#line 656 "parser.yy"
     5597    { (yyval.op) = OperKinds::LSAssn; }
    55615598    break;
    55625599
     
    55645601
    55655602/* Line 1806 of yacc.c  */
    5566 #line 616 "parser.yy"
    5567     { (yyval.op) = OperKinds::LSAssn; }
     5603#line 657 "parser.yy"
     5604    { (yyval.op) = OperKinds::RSAssn; }
    55685605    break;
    55695606
     
    55715608
    55725609/* Line 1806 of yacc.c  */
    5573 #line 617 "parser.yy"
    5574     { (yyval.op) = OperKinds::RSAssn; }
     5610#line 658 "parser.yy"
     5611    { (yyval.op) = OperKinds::AndAssn; }
    55755612    break;
    55765613
     
    55785615
    55795616/* Line 1806 of yacc.c  */
    5580 #line 618 "parser.yy"
    5581     { (yyval.op) = OperKinds::AndAssn; }
     5617#line 659 "parser.yy"
     5618    { (yyval.op) = OperKinds::ERAssn; }
    55825619    break;
    55835620
     
    55855622
    55865623/* Line 1806 of yacc.c  */
    5587 #line 619 "parser.yy"
    5588     { (yyval.op) = OperKinds::ERAssn; }
     5624#line 660 "parser.yy"
     5625    { (yyval.op) = OperKinds::OrAssn; }
    55895626    break;
    55905627
     
    55925629
    55935630/* Line 1806 of yacc.c  */
    5594 #line 620 "parser.yy"
    5595     { (yyval.op) = OperKinds::OrAssn; }
     5631#line 667 "parser.yy"
     5632    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    55965633    break;
    55975634
     
    55995636
    56005637/* Line 1806 of yacc.c  */
    5601 #line 627 "parser.yy"
    5602     { (yyval.en) = new ExpressionNode( build_tuple() ); }
     5638#line 669 "parser.yy"
     5639    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    56035640    break;
    56045641
     
    56065643
    56075644/* Line 1806 of yacc.c  */
    5608 #line 629 "parser.yy"
    5609     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     5645#line 671 "parser.yy"
     5646    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    56105647    break;
    56115648
     
    56135650
    56145651/* Line 1806 of yacc.c  */
    5615 #line 631 "parser.yy"
    5616     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    5617     break;
    5618 
    5619   case 123:
    5620 
    5621 /* Line 1806 of yacc.c  */
    5622 #line 633 "parser.yy"
     5652#line 673 "parser.yy"
    56235653    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    56245654    break;
    56255655
    5626   case 125:
    5627 
    5628 /* Line 1806 of yacc.c  */
    5629 #line 639 "parser.yy"
     5656  case 124:
     5657
     5658/* Line 1806 of yacc.c  */
     5659#line 679 "parser.yy"
    56305660    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    56315661    break;
    56325662
     5663  case 126:
     5664
     5665/* Line 1806 of yacc.c  */
     5666#line 685 "parser.yy"
     5667    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5668    break;
     5669
    56335670  case 127:
    56345671
    56355672/* Line 1806 of yacc.c  */
    5636 #line 645 "parser.yy"
    5637     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5638     break;
    5639 
    5640   case 128:
    5641 
    5642 /* Line 1806 of yacc.c  */
    5643 #line 650 "parser.yy"
     5673#line 690 "parser.yy"
    56445674    { (yyval.en) = 0; }
    56455675    break;
    56465676
    5647   case 132:
    5648 
    5649 /* Line 1806 of yacc.c  */
    5650 #line 659 "parser.yy"
     5677  case 131:
     5678
     5679/* Line 1806 of yacc.c  */
     5680#line 699 "parser.yy"
    56515681    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56525682    break;
    56535683
    5654   case 138:
    5655 
    5656 /* Line 1806 of yacc.c  */
    5657 #line 666 "parser.yy"
     5684  case 137:
     5685
     5686/* Line 1806 of yacc.c  */
     5687#line 706 "parser.yy"
    56585688    {
    56595689                        Token fn;
     
    56635693    break;
    56645694
    5665   case 139:
    5666 
    5667 /* Line 1806 of yacc.c  */
    5668 #line 676 "parser.yy"
     5695  case 138:
     5696
     5697/* Line 1806 of yacc.c  */
     5698#line 716 "parser.yy"
    56695699    {
    56705700                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56725702    break;
    56735703
     5704  case 139:
     5705
     5706/* Line 1806 of yacc.c  */
     5707#line 723 "parser.yy"
     5708    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5709    break;
     5710
    56745711  case 140:
    56755712
    56765713/* Line 1806 of yacc.c  */
    5677 #line 683 "parser.yy"
    5678     { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    5679     break;
    5680 
    5681   case 141:
    5682 
    5683 /* Line 1806 of yacc.c  */
    5684 #line 690 "parser.yy"
     5714#line 730 "parser.yy"
    56855715    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    56865716    break;
    56875717
     5718  case 142:
     5719
     5720/* Line 1806 of yacc.c  */
     5721#line 736 "parser.yy"
     5722    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5723    break;
     5724
    56885725  case 143:
    56895726
    56905727/* Line 1806 of yacc.c  */
    5691 #line 696 "parser.yy"
    5692     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5728#line 741 "parser.yy"
     5729    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56935730    break;
    56945731
     
    56965733
    56975734/* Line 1806 of yacc.c  */
    5698 #line 701 "parser.yy"
    5699     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5700     break;
    5701 
    5702   case 145:
    5703 
    5704 /* Line 1806 of yacc.c  */
    5705 #line 703 "parser.yy"
     5735#line 743 "parser.yy"
    57065736    {   // mark all fields in list
    57075737                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    57115741    break;
    57125742
    5713   case 146:
    5714 
    5715 /* Line 1806 of yacc.c  */
    5716 #line 709 "parser.yy"
     5743  case 145:
     5744
     5745/* Line 1806 of yacc.c  */
     5746#line 749 "parser.yy"
    57175747    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57185748    break;
    57195749
     5750  case 148:
     5751
     5752/* Line 1806 of yacc.c  */
     5753#line 756 "parser.yy"
     5754    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5755    break;
     5756
    57205757  case 149:
    57215758
    57225759/* Line 1806 of yacc.c  */
    5723 #line 716 "parser.yy"
    5724     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5760#line 761 "parser.yy"
     5761    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57255762    break;
    57265763
     
    57285765
    57295766/* Line 1806 of yacc.c  */
    5730 #line 721 "parser.yy"
    5731     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5767#line 767 "parser.yy"
     5768    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    57325769    break;
    57335770
     
    57355772
    57365773/* Line 1806 of yacc.c  */
    5737 #line 727 "parser.yy"
    5738     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     5774#line 769 "parser.yy"
     5775    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    57395776    break;
    57405777
     
    57425779
    57435780/* Line 1806 of yacc.c  */
    5744 #line 729 "parser.yy"
    5745     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
     5781#line 771 "parser.yy"
     5782    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57465783    break;
    57475784
     
    57495786
    57505787/* Line 1806 of yacc.c  */
    5751 #line 731 "parser.yy"
    5752     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5753     break;
    5754 
    5755   case 154:
    5756 
    5757 /* Line 1806 of yacc.c  */
    5758 #line 733 "parser.yy"
     5788#line 773 "parser.yy"
    57595789    {
    57605790                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57685798    break;
    57695799
     5800  case 154:
     5801
     5802/* Line 1806 of yacc.c  */
     5803#line 783 "parser.yy"
     5804    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5805    break;
     5806
    57705807  case 155:
    57715808
    57725809/* Line 1806 of yacc.c  */
    5773 #line 743 "parser.yy"
    5774     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5775     break;
    5776 
    5777   case 156:
    5778 
    5779 /* Line 1806 of yacc.c  */
    5780 #line 745 "parser.yy"
     5810#line 785 "parser.yy"
    57815811    {
    57825812                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57855815    break;
    57865816
     5817  case 156:
     5818
     5819/* Line 1806 of yacc.c  */
     5820#line 795 "parser.yy"
     5821    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5822    break;
     5823
    57875824  case 157:
    57885825
    57895826/* Line 1806 of yacc.c  */
    5790 #line 755 "parser.yy"
    5791     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5792     break;
    5793 
    5794   case 158:
    5795 
    5796 /* Line 1806 of yacc.c  */
    5797 #line 757 "parser.yy"
     5827#line 797 "parser.yy"
    57985828    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57995829    break;
    58005830
     5831  case 159:
     5832
     5833/* Line 1806 of yacc.c  */
     5834#line 802 "parser.yy"
     5835    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5836    break;
     5837
    58015838  case 160:
    58025839
    58035840/* Line 1806 of yacc.c  */
    5804 #line 762 "parser.yy"
    5805     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5841#line 804 "parser.yy"
     5842    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    58065843    break;
    58075844
     
    58095846
    58105847/* Line 1806 of yacc.c  */
    5811 #line 764 "parser.yy"
    5812     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5848#line 808 "parser.yy"
     5849    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    58135850    break;
    58145851
     
    58165853
    58175854/* Line 1806 of yacc.c  */
    5818 #line 768 "parser.yy"
    5819     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    5820     break;
    5821 
    5822   case 163:
    5823 
    5824 /* Line 1806 of yacc.c  */
    5825 #line 769 "parser.yy"
     5855#line 809 "parser.yy"
    58265856    { (yyval.sn) = new StatementNode( build_default() ); }
    58275857    break;
    58285858
     5859  case 164:
     5860
     5861/* Line 1806 of yacc.c  */
     5862#line 815 "parser.yy"
     5863    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5864    break;
     5865
    58295866  case 165:
    58305867
    58315868/* Line 1806 of yacc.c  */
    5832 #line 775 "parser.yy"
    5833     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5869#line 819 "parser.yy"
     5870    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58345871    break;
    58355872
     
    58375874
    58385875/* Line 1806 of yacc.c  */
    5839 #line 779 "parser.yy"
     5876#line 824 "parser.yy"
     5877    { (yyval.sn) = 0; }
     5878    break;
     5879
     5880  case 168:
     5881
     5882/* Line 1806 of yacc.c  */
     5883#line 830 "parser.yy"
    58405884    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58415885    break;
    58425886
    5843   case 167:
    5844 
    5845 /* Line 1806 of yacc.c  */
    5846 #line 784 "parser.yy"
     5887  case 169:
     5888
     5889/* Line 1806 of yacc.c  */
     5890#line 832 "parser.yy"
     5891    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5892    break;
     5893
     5894  case 170:
     5895
     5896/* Line 1806 of yacc.c  */
     5897#line 837 "parser.yy"
    58475898    { (yyval.sn) = 0; }
    58485899    break;
    58495900
    5850   case 169:
    5851 
    5852 /* Line 1806 of yacc.c  */
    5853 #line 790 "parser.yy"
    5854     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    5855     break;
    5856 
    5857   case 170:
    5858 
    5859 /* Line 1806 of yacc.c  */
    5860 #line 792 "parser.yy"
    5861     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    5862     break;
    5863 
    5864   case 171:
    5865 
    5866 /* Line 1806 of yacc.c  */
    5867 #line 797 "parser.yy"
     5901  case 172:
     5902
     5903/* Line 1806 of yacc.c  */
     5904#line 843 "parser.yy"
     5905    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5906    break;
     5907
     5908  case 173:
     5909
     5910/* Line 1806 of yacc.c  */
     5911#line 845 "parser.yy"
     5912    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5913    break;
     5914
     5915  case 174:
     5916
     5917/* Line 1806 of yacc.c  */
     5918#line 847 "parser.yy"
     5919    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5920    break;
     5921
     5922  case 175:
     5923
     5924/* Line 1806 of yacc.c  */
     5925#line 849 "parser.yy"
     5926    { (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) ) ) ) ) ) ); }
     5927    break;
     5928
     5929  case 176:
     5930
     5931/* Line 1806 of yacc.c  */
     5932#line 854 "parser.yy"
     5933    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5934    break;
     5935
     5936  case 178:
     5937
     5938/* Line 1806 of yacc.c  */
     5939#line 860 "parser.yy"
    58685940    { (yyval.sn) = 0; }
    58695941    break;
    58705942
    5871   case 173:
    5872 
    5873 /* Line 1806 of yacc.c  */
    5874 #line 803 "parser.yy"
    5875     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5876     break;
    5877 
    5878   case 174:
    5879 
    5880 /* Line 1806 of yacc.c  */
    5881 #line 805 "parser.yy"
    5882     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    5883     break;
    5884 
    5885   case 175:
    5886 
    5887 /* Line 1806 of yacc.c  */
    5888 #line 807 "parser.yy"
    5889     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5890     break;
    5891 
    5892   case 176:
    5893 
    5894 /* Line 1806 of yacc.c  */
    5895 #line 809 "parser.yy"
    5896     { (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) ) ) ) ) ) ); }
    5897     break;
    5898 
    5899   case 177:
    5900 
    5901 /* Line 1806 of yacc.c  */
    5902 #line 814 "parser.yy"
     5943  case 179:
     5944
     5945/* Line 1806 of yacc.c  */
     5946#line 862 "parser.yy"
     5947    { (yyval.sn) = 0; }
     5948    break;
     5949
     5950  case 180:
     5951
     5952/* Line 1806 of yacc.c  */
     5953#line 867 "parser.yy"
     5954    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5955    break;
     5956
     5957  case 181:
     5958
     5959/* Line 1806 of yacc.c  */
     5960#line 869 "parser.yy"
     5961    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
     5962    break;
     5963
     5964  case 182:
     5965
     5966/* Line 1806 of yacc.c  */
     5967#line 871 "parser.yy"
     5968    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5969    break;
     5970
     5971  case 183:
     5972
     5973/* Line 1806 of yacc.c  */
     5974#line 876 "parser.yy"
     5975    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5976    break;
     5977
     5978  case 184:
     5979
     5980/* Line 1806 of yacc.c  */
     5981#line 878 "parser.yy"
     5982    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5983    break;
     5984
     5985  case 185:
     5986
     5987/* Line 1806 of yacc.c  */
     5988#line 883 "parser.yy"
     5989    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5990    break;
     5991
     5992  case 186:
     5993
     5994/* Line 1806 of yacc.c  */
     5995#line 887 "parser.yy"
     5996    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5997    break;
     5998
     5999  case 187:
     6000
     6001/* Line 1806 of yacc.c  */
     6002#line 890 "parser.yy"
     6003    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     6004    break;
     6005
     6006  case 188:
     6007
     6008/* Line 1806 of yacc.c  */
     6009#line 894 "parser.yy"
     6010    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     6011    break;
     6012
     6013  case 189:
     6014
     6015/* Line 1806 of yacc.c  */
     6016#line 897 "parser.yy"
    59036017    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59046018    break;
    59056019
    5906   case 179:
    5907 
    5908 /* Line 1806 of yacc.c  */
    5909 #line 820 "parser.yy"
    5910     { (yyval.sn) = 0; }
    5911     break;
    5912 
    5913   case 180:
    5914 
    5915 /* Line 1806 of yacc.c  */
    5916 #line 822 "parser.yy"
    5917     { (yyval.sn) = 0; }
    5918     break;
    5919 
    5920   case 181:
    5921 
    5922 /* Line 1806 of yacc.c  */
    5923 #line 827 "parser.yy"
    5924     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5925     break;
    5926 
    5927   case 182:
    5928 
    5929 /* Line 1806 of yacc.c  */
    5930 #line 829 "parser.yy"
    5931     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
    5932     break;
    5933 
    5934   case 183:
    5935 
    5936 /* Line 1806 of yacc.c  */
    5937 #line 831 "parser.yy"
    5938     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    5939     break;
    5940 
    5941   case 184:
    5942 
    5943 /* Line 1806 of yacc.c  */
    5944 #line 836 "parser.yy"
    5945     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    5946     break;
    5947 
    5948   case 185:
    5949 
    5950 /* Line 1806 of yacc.c  */
    5951 #line 838 "parser.yy"
    5952     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5953     break;
    5954 
    5955   case 186:
    5956 
    5957 /* Line 1806 of yacc.c  */
    5958 #line 843 "parser.yy"
    5959     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    5960     break;
    5961 
    5962   case 187:
    5963 
    5964 /* Line 1806 of yacc.c  */
    5965 #line 847 "parser.yy"
    5966     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    5967     break;
    5968 
    5969   case 188:
    5970 
    5971 /* Line 1806 of yacc.c  */
    5972 #line 850 "parser.yy"
    5973     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    5974     break;
    5975 
    5976   case 189:
    5977 
    5978 /* Line 1806 of yacc.c  */
    5979 #line 854 "parser.yy"
    5980     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    5981     break;
    5982 
    59836020  case 190:
    59846021
    59856022/* Line 1806 of yacc.c  */
    5986 #line 857 "parser.yy"
    5987     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     6023#line 901 "parser.yy"
     6024    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    59886025    break;
    59896026
     
    59916028
    59926029/* Line 1806 of yacc.c  */
    5993 #line 861 "parser.yy"
    5994     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     6030#line 903 "parser.yy"
     6031    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    59956032    break;
    59966033
     
    59986035
    59996036/* Line 1806 of yacc.c  */
    6000 #line 863 "parser.yy"
    6001     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     6037#line 905 "parser.yy"
     6038    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60026039    break;
    60036040
     
    60056042
    60066043/* Line 1806 of yacc.c  */
    6007 #line 865 "parser.yy"
     6044#line 907 "parser.yy"
    60086045    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60096046    break;
     
    60126049
    60136050/* Line 1806 of yacc.c  */
    6014 #line 867 "parser.yy"
    6015     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6051#line 909 "parser.yy"
     6052    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60166053    break;
    60176054
     
    60196056
    60206057/* Line 1806 of yacc.c  */
    6021 #line 869 "parser.yy"
    6022     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     6058#line 914 "parser.yy"
     6059    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    60236060    break;
    60246061
     
    60266063
    60276064/* Line 1806 of yacc.c  */
    6028 #line 874 "parser.yy"
    6029     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     6065#line 916 "parser.yy"
     6066    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    60306067    break;
    60316068
     
    60336070
    60346071/* Line 1806 of yacc.c  */
    6035 #line 876 "parser.yy"
    6036     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    6037     break;
    6038 
    6039   case 198:
    6040 
    6041 /* Line 1806 of yacc.c  */
    6042 #line 878 "parser.yy"
     6072#line 918 "parser.yy"
    60436073    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    60446074    break;
    60456075
     6076  case 199:
     6077
     6078/* Line 1806 of yacc.c  */
     6079#line 925 "parser.yy"
     6080    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6081    break;
     6082
    60466083  case 200:
    60476084
    60486085/* Line 1806 of yacc.c  */
    6049 #line 885 "parser.yy"
     6086#line 927 "parser.yy"
     6087    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6088    break;
     6089
     6090  case 201:
     6091
     6092/* Line 1806 of yacc.c  */
     6093#line 929 "parser.yy"
    60506094    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60516095    break;
    60526096
    6053   case 201:
    6054 
    6055 /* Line 1806 of yacc.c  */
    6056 #line 887 "parser.yy"
     6097  case 202:
     6098
     6099/* Line 1806 of yacc.c  */
     6100#line 931 "parser.yy"
    60576101    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60586102    break;
    60596103
    6060   case 202:
    6061 
    6062 /* Line 1806 of yacc.c  */
    6063 #line 889 "parser.yy"
    6064     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    6065     break;
    6066 
    60676104  case 203:
    60686105
    60696106/* Line 1806 of yacc.c  */
    6070 #line 891 "parser.yy"
    6071     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6107#line 936 "parser.yy"
     6108    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60726109    break;
    60736110
     
    60756112
    60766113/* Line 1806 of yacc.c  */
    6077 #line 896 "parser.yy"
     6114#line 938 "parser.yy"
     6115    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     6116    break;
     6117
     6118  case 205:
     6119
     6120/* Line 1806 of yacc.c  */
     6121#line 940 "parser.yy"
    60786122    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60796123    break;
    60806124
    6081   case 205:
    6082 
    6083 /* Line 1806 of yacc.c  */
    6084 #line 898 "parser.yy"
     6125  case 206:
     6126
     6127/* Line 1806 of yacc.c  */
     6128#line 942 "parser.yy"
    60856129    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60866130    break;
    60876131
    6088   case 206:
    6089 
    6090 /* Line 1806 of yacc.c  */
    6091 #line 900 "parser.yy"
    6092     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    6093     break;
    6094 
    60956132  case 207:
    60966133
    60976134/* Line 1806 of yacc.c  */
    6098 #line 902 "parser.yy"
    6099     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    6100     break;
    6101 
    6102   case 208:
    6103 
    6104 /* Line 1806 of yacc.c  */
    6105 #line 907 "parser.yy"
     6135#line 947 "parser.yy"
    61066136    {
    61076137                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    61096139    break;
    61106140
    6111   case 210:
    6112 
    6113 /* Line 1806 of yacc.c  */
    6114 #line 920 "parser.yy"
     6141  case 209:
     6142
     6143/* Line 1806 of yacc.c  */
     6144#line 960 "parser.yy"
    61156145    {
    61166146                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61196149    break;
    61206150
     6151  case 210:
     6152
     6153/* Line 1806 of yacc.c  */
     6154#line 965 "parser.yy"
     6155    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6156    break;
     6157
    61216158  case 211:
    61226159
    61236160/* Line 1806 of yacc.c  */
    6124 #line 925 "parser.yy"
    6125     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    6126     break;
    6127 
    6128   case 212:
    6129 
    6130 /* Line 1806 of yacc.c  */
    6131 #line 927 "parser.yy"
     6161#line 967 "parser.yy"
    61326162    {
    61336163                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61366166    break;
    61376167
     6168  case 213:
     6169
     6170/* Line 1806 of yacc.c  */
     6171#line 976 "parser.yy"
     6172    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6173    break;
     6174
    61386175  case 214:
    61396176
    61406177/* Line 1806 of yacc.c  */
    6141 #line 936 "parser.yy"
    6142     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6178#line 978 "parser.yy"
     6179    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    61436180    break;
    61446181
     
    61466183
    61476184/* Line 1806 of yacc.c  */
    6148 #line 938 "parser.yy"
    6149     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     6185#line 980 "parser.yy"
     6186    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    61506187    break;
    61516188
     
    61536190
    61546191/* Line 1806 of yacc.c  */
    6155 #line 940 "parser.yy"
    6156     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     6192#line 982 "parser.yy"
     6193    { (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) ) ); }
    61576194    break;
    61586195
     
    61606197
    61616198/* Line 1806 of yacc.c  */
    6162 #line 942 "parser.yy"
    6163     { (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) ) ); }
     6199#line 984 "parser.yy"
     6200    { (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) ) ); }
    61646201    break;
    61656202
     
    61676204
    61686205/* Line 1806 of yacc.c  */
    6169 #line 944 "parser.yy"
    6170     { (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) ) ); }
     6206#line 989 "parser.yy"
     6207    { (yyval.flag) = false; }
    61716208    break;
    61726209
     
    61746211
    61756212/* Line 1806 of yacc.c  */
    6176 #line 949 "parser.yy"
    6177     { (yyval.flag) = false; }
     6213#line 991 "parser.yy"
     6214    { (yyval.flag) = true; }
    61786215    break;
    61796216
     
    61816218
    61826219/* Line 1806 of yacc.c  */
    6183 #line 951 "parser.yy"
    6184     { (yyval.flag) = true; }
    6185     break;
    6186 
    6187   case 221:
    6188 
    6189 /* Line 1806 of yacc.c  */
    6190 #line 956 "parser.yy"
     6220#line 996 "parser.yy"
    61916221    { (yyval.en) = 0; }
    61926222    break;
    61936223
     6224  case 223:
     6225
     6226/* Line 1806 of yacc.c  */
     6227#line 1003 "parser.yy"
     6228    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     6229    break;
     6230
    61946231  case 224:
    61956232
    61966233/* Line 1806 of yacc.c  */
    6197 #line 963 "parser.yy"
    6198     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     6234#line 1008 "parser.yy"
     6235    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    61996236    break;
    62006237
     
    62026239
    62036240/* Line 1806 of yacc.c  */
    6204 #line 968 "parser.yy"
    6205     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     6241#line 1010 "parser.yy"
     6242    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    62066243    break;
    62076244
     
    62096246
    62106247/* Line 1806 of yacc.c  */
    6211 #line 970 "parser.yy"
    6212     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     6248#line 1015 "parser.yy"
     6249    { (yyval.en) = 0; }
    62136250    break;
    62146251
     
    62166253
    62176254/* Line 1806 of yacc.c  */
    6218 #line 975 "parser.yy"
    6219     { (yyval.en) = 0; }
     6255#line 1017 "parser.yy"
     6256    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62206257    break;
    62216258
     
    62236260
    62246261/* Line 1806 of yacc.c  */
    6225 #line 977 "parser.yy"
    6226     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     6262#line 1019 "parser.yy"
     6263    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62276264    break;
    62286265
     
    62306267
    62316268/* Line 1806 of yacc.c  */
    6232 #line 979 "parser.yy"
    6233     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    6234     break;
    6235 
    6236   case 230:
    6237 
    6238 /* Line 1806 of yacc.c  */
    6239 #line 984 "parser.yy"
     6269#line 1024 "parser.yy"
    62406270    {
    62416271                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    62446274    break;
    62456275
    6246   case 231:
    6247 
    6248 /* Line 1806 of yacc.c  */
    6249 #line 989 "parser.yy"
     6276  case 230:
     6277
     6278/* Line 1806 of yacc.c  */
     6279#line 1029 "parser.yy"
    62506280    {
    62516281                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    62546284    break;
    62556285
    6256   case 232:
    6257 
    6258 /* Line 1806 of yacc.c  */
    6259 #line 999 "parser.yy"
     6286  case 231:
     6287
     6288/* Line 1806 of yacc.c  */
     6289#line 1039 "parser.yy"
    62606290    { (yyval.decl) = 0; }
    62616291    break;
    62626292
     6293  case 234:
     6294
     6295/* Line 1806 of yacc.c  */
     6296#line 1046 "parser.yy"
     6297    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6298    break;
     6299
    62636300  case 235:
    62646301
    62656302/* Line 1806 of yacc.c  */
    6266 #line 1006 "parser.yy"
     6303#line 1051 "parser.yy"
     6304    { (yyval.decl) = 0; }
     6305    break;
     6306
     6307  case 238:
     6308
     6309/* Line 1806 of yacc.c  */
     6310#line 1058 "parser.yy"
    62676311    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62686312    break;
    62696313
    6270   case 236:
    6271 
    6272 /* Line 1806 of yacc.c  */
    6273 #line 1011 "parser.yy"
    6274     { (yyval.decl) = 0; }
    6275     break;
    6276 
    6277   case 239:
    6278 
    6279 /* Line 1806 of yacc.c  */
    6280 #line 1018 "parser.yy"
    6281     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6314  case 243:
     6315
     6316/* Line 1806 of yacc.c  */
     6317#line 1072 "parser.yy"
     6318    {}
    62826319    break;
    62836320
     
    62856322
    62866323/* Line 1806 of yacc.c  */
    6287 #line 1032 "parser.yy"
     6324#line 1073 "parser.yy"
    62886325    {}
    62896326    break;
    62906327
    6291   case 245:
    6292 
    6293 /* Line 1806 of yacc.c  */
    6294 #line 1033 "parser.yy"
    6295     {}
    6296     break;
    6297 
    6298   case 253:
    6299 
    6300 /* Line 1806 of yacc.c  */
    6301 #line 1062 "parser.yy"
     6328  case 252:
     6329
     6330/* Line 1806 of yacc.c  */
     6331#line 1102 "parser.yy"
    63026332    {
    63036333                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63066336    break;
    63076337
    6308   case 254:
    6309 
    6310 /* Line 1806 of yacc.c  */
    6311 #line 1069 "parser.yy"
     6338  case 253:
     6339
     6340/* Line 1806 of yacc.c  */
     6341#line 1109 "parser.yy"
    63126342    {
    63136343                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63166346    break;
    63176347
    6318   case 255:
    6319 
    6320 /* Line 1806 of yacc.c  */
    6321 #line 1074 "parser.yy"
     6348  case 254:
     6349
     6350/* Line 1806 of yacc.c  */
     6351#line 1114 "parser.yy"
    63226352    {
    63236353                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63266356    break;
    63276357
    6328   case 256:
    6329 
    6330 /* Line 1806 of yacc.c  */
    6331 #line 1084 "parser.yy"
     6358  case 255:
     6359
     6360/* Line 1806 of yacc.c  */
     6361#line 1124 "parser.yy"
    63326362    {
    63336363                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63366366    break;
    63376367
    6338   case 257:
    6339 
    6340 /* Line 1806 of yacc.c  */
    6341 #line 1089 "parser.yy"
     6368  case 256:
     6369
     6370/* Line 1806 of yacc.c  */
     6371#line 1129 "parser.yy"
    63426372    {
    63436373                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63466376    break;
    63476377
    6348   case 258:
    6349 
    6350 /* Line 1806 of yacc.c  */
    6351 #line 1094 "parser.yy"
     6378  case 257:
     6379
     6380/* Line 1806 of yacc.c  */
     6381#line 1134 "parser.yy"
    63526382    {
    63536383                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63566386    break;
    63576387
    6358   case 259:
    6359 
    6360 /* Line 1806 of yacc.c  */
    6361 #line 1102 "parser.yy"
     6388  case 258:
     6389
     6390/* Line 1806 of yacc.c  */
     6391#line 1142 "parser.yy"
    63626392    {
    63636393                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63666396    break;
    63676397
    6368   case 260:
    6369 
    6370 /* Line 1806 of yacc.c  */
    6371 #line 1107 "parser.yy"
     6398  case 259:
     6399
     6400/* Line 1806 of yacc.c  */
     6401#line 1147 "parser.yy"
    63726402    {
    63736403                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63766406    break;
    63776407
    6378   case 261:
    6379 
    6380 /* Line 1806 of yacc.c  */
    6381 #line 1112 "parser.yy"
     6408  case 260:
     6409
     6410/* Line 1806 of yacc.c  */
     6411#line 1152 "parser.yy"
    63826412    {
    63836413                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63866416    break;
    63876417
    6388   case 262:
    6389 
    6390 /* Line 1806 of yacc.c  */
    6391 #line 1117 "parser.yy"
     6418  case 261:
     6419
     6420/* Line 1806 of yacc.c  */
     6421#line 1157 "parser.yy"
    63926422    {
    63936423                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63966426    break;
    63976427
    6398   case 263:
    6399 
    6400 /* Line 1806 of yacc.c  */
    6401 #line 1122 "parser.yy"
     6428  case 262:
     6429
     6430/* Line 1806 of yacc.c  */
     6431#line 1162 "parser.yy"
    64026432    {
    64036433                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64066436    break;
    64076437
    6408   case 264:
    6409 
    6410 /* Line 1806 of yacc.c  */
    6411 #line 1130 "parser.yy"
     6438  case 263:
     6439
     6440/* Line 1806 of yacc.c  */
     6441#line 1170 "parser.yy"
    64126442    {
    64136443                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64156445    break;
    64166446
    6417   case 265:
    6418 
    6419 /* Line 1806 of yacc.c  */
    6420 #line 1153 "parser.yy"
     6447  case 264:
     6448
     6449/* Line 1806 of yacc.c  */
     6450#line 1193 "parser.yy"
    64216451    {
    64226452                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64246454    break;
    64256455
    6426   case 266:
    6427 
    6428 /* Line 1806 of yacc.c  */
    6429 #line 1157 "parser.yy"
     6456  case 265:
     6457
     6458/* Line 1806 of yacc.c  */
     6459#line 1197 "parser.yy"
    64306460    {
    64316461                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64336463    break;
    64346464
     6465  case 266:
     6466
     6467/* Line 1806 of yacc.c  */
     6468#line 1204 "parser.yy"
     6469    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6470    break;
     6471
    64356472  case 267:
    64366473
    64376474/* Line 1806 of yacc.c  */
    6438 #line 1164 "parser.yy"
    6439     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6475#line 1208 "parser.yy"
     6476    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64406477    break;
    64416478
     
    64436480
    64446481/* Line 1806 of yacc.c  */
    6445 #line 1168 "parser.yy"
    6446     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    6447     break;
    6448 
    6449   case 269:
    6450 
    6451 /* Line 1806 of yacc.c  */
    6452 #line 1173 "parser.yy"
     6482#line 1213 "parser.yy"
    64536483    {
    64546484                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64576487    break;
    64586488
    6459   case 270:
    6460 
    6461 /* Line 1806 of yacc.c  */
    6462 #line 1178 "parser.yy"
     6489  case 269:
     6490
     6491/* Line 1806 of yacc.c  */
     6492#line 1218 "parser.yy"
    64636493    {
    64646494                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64676497    break;
    64686498
    6469   case 271:
    6470 
    6471 /* Line 1806 of yacc.c  */
    6472 #line 1183 "parser.yy"
     6499  case 270:
     6500
     6501/* Line 1806 of yacc.c  */
     6502#line 1223 "parser.yy"
    64736503    {
    64746504                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64776507    break;
    64786508
    6479   case 272:
    6480 
    6481 /* Line 1806 of yacc.c  */
    6482 #line 1194 "parser.yy"
     6509  case 271:
     6510
     6511/* Line 1806 of yacc.c  */
     6512#line 1234 "parser.yy"
    64836513    {
    64846514                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64876517    break;
    64886518
    6489   case 273:
    6490 
    6491 /* Line 1806 of yacc.c  */
    6492 #line 1199 "parser.yy"
     6519  case 272:
     6520
     6521/* Line 1806 of yacc.c  */
     6522#line 1239 "parser.yy"
    64936523    {
    64946524                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64976527    break;
    64986528
    6499   case 274:
    6500 
    6501 /* Line 1806 of yacc.c  */
    6502 #line 1204 "parser.yy"
     6529  case 273:
     6530
     6531/* Line 1806 of yacc.c  */
     6532#line 1244 "parser.yy"
    65036533    {
    65046534                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65076537    break;
    65086538
    6509   case 275:
    6510 
    6511 /* Line 1806 of yacc.c  */
    6512 #line 1209 "parser.yy"
     6539  case 274:
     6540
     6541/* Line 1806 of yacc.c  */
     6542#line 1249 "parser.yy"
    65136543    {
    65146544                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65176547    break;
    65186548
    6519   case 276:
    6520 
    6521 /* Line 1806 of yacc.c  */
    6522 #line 1214 "parser.yy"
     6549  case 275:
     6550
     6551/* Line 1806 of yacc.c  */
     6552#line 1254 "parser.yy"
    65236553    {
    65246554                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65276557    break;
    65286558
    6529   case 277:
    6530 
    6531 /* Line 1806 of yacc.c  */
    6532 #line 1223 "parser.yy"
     6559  case 276:
     6560
     6561/* Line 1806 of yacc.c  */
     6562#line 1263 "parser.yy"
    65336563    {
    65346564                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65376567    break;
    65386568
    6539   case 278:
    6540 
    6541 /* Line 1806 of yacc.c  */
    6542 #line 1228 "parser.yy"
     6569  case 277:
     6570
     6571/* Line 1806 of yacc.c  */
     6572#line 1268 "parser.yy"
    65436573    {
    65446574                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65476577    break;
    65486578
    6549   case 283:
    6550 
    6551 /* Line 1806 of yacc.c  */
    6552 #line 1245 "parser.yy"
     6579  case 282:
     6580
     6581/* Line 1806 of yacc.c  */
     6582#line 1285 "parser.yy"
    65536583    {
    65546584                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65576587    break;
    65586588
    6559   case 284:
    6560 
    6561 /* Line 1806 of yacc.c  */
    6562 #line 1250 "parser.yy"
     6589  case 283:
     6590
     6591/* Line 1806 of yacc.c  */
     6592#line 1290 "parser.yy"
    65636593    {
    65646594                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65676597    break;
    65686598
    6569   case 293:
    6570 
    6571 /* Line 1806 of yacc.c  */
    6572 #line 1272 "parser.yy"
     6599  case 292:
     6600
     6601/* Line 1806 of yacc.c  */
     6602#line 1312 "parser.yy"
    65736603    { (yyval.decl) = 0; }
    65746604    break;
    65756605
    6576   case 296:
    6577 
    6578 /* Line 1806 of yacc.c  */
    6579 #line 1284 "parser.yy"
     6606  case 295:
     6607
     6608/* Line 1806 of yacc.c  */
     6609#line 1324 "parser.yy"
    65806610    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65816611    break;
    65826612
     6613  case 298:
     6614
     6615/* Line 1806 of yacc.c  */
     6616#line 1335 "parser.yy"
     6617    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6618    break;
     6619
    65836620  case 299:
    65846621
    65856622/* Line 1806 of yacc.c  */
    6586 #line 1295 "parser.yy"
    6587     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6623#line 1337 "parser.yy"
     6624    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65886625    break;
    65896626
     
    65916628
    65926629/* Line 1806 of yacc.c  */
    6593 #line 1297 "parser.yy"
    6594     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6630#line 1339 "parser.yy"
     6631    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65956632    break;
    65966633
     
    65986635
    65996636/* Line 1806 of yacc.c  */
    6600 #line 1299 "parser.yy"
    6601     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6637#line 1341 "parser.yy"
     6638    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66026639    break;
    66036640
     
    66056642
    66066643/* Line 1806 of yacc.c  */
    6607 #line 1301 "parser.yy"
    6608     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6644#line 1343 "parser.yy"
     6645    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66096646    break;
    66106647
     
    66126649
    66136650/* Line 1806 of yacc.c  */
    6614 #line 1303 "parser.yy"
    6615     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6616     break;
    6617 
    6618   case 304:
    6619 
    6620 /* Line 1806 of yacc.c  */
    6621 #line 1305 "parser.yy"
     6651#line 1345 "parser.yy"
    66226652    {
    66236653                        typedefTable.enterScope();
     
    66256655    break;
    66266656
    6627   case 305:
    6628 
    6629 /* Line 1806 of yacc.c  */
    6630 #line 1309 "parser.yy"
     6657  case 304:
     6658
     6659/* Line 1806 of yacc.c  */
     6660#line 1349 "parser.yy"
    66316661    {
    66326662                        typedefTable.leaveScope();
     
    66356665    break;
    66366666
     6667  case 306:
     6668
     6669/* Line 1806 of yacc.c  */
     6670#line 1358 "parser.yy"
     6671    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6672    break;
     6673
    66376674  case 307:
    66386675
    66396676/* Line 1806 of yacc.c  */
    6640 #line 1318 "parser.yy"
     6677#line 1360 "parser.yy"
     6678    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6679    break;
     6680
     6681  case 309:
     6682
     6683/* Line 1806 of yacc.c  */
     6684#line 1371 "parser.yy"
    66416685    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66426686    break;
    66436687
    6644   case 308:
    6645 
    6646 /* Line 1806 of yacc.c  */
    6647 #line 1320 "parser.yy"
     6688  case 310:
     6689
     6690/* Line 1806 of yacc.c  */
     6691#line 1376 "parser.yy"
     6692    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6693    break;
     6694
     6695  case 311:
     6696
     6697/* Line 1806 of yacc.c  */
     6698#line 1378 "parser.yy"
     6699    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6700    break;
     6701
     6702  case 312:
     6703
     6704/* Line 1806 of yacc.c  */
     6705#line 1380 "parser.yy"
     6706    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6707    break;
     6708
     6709  case 313:
     6710
     6711/* Line 1806 of yacc.c  */
     6712#line 1382 "parser.yy"
     6713    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6714    break;
     6715
     6716  case 314:
     6717
     6718/* Line 1806 of yacc.c  */
     6719#line 1384 "parser.yy"
     6720    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6721    break;
     6722
     6723  case 315:
     6724
     6725/* Line 1806 of yacc.c  */
     6726#line 1386 "parser.yy"
     6727    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6728    break;
     6729
     6730  case 316:
     6731
     6732/* Line 1806 of yacc.c  */
     6733#line 1388 "parser.yy"
     6734    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6735    break;
     6736
     6737  case 317:
     6738
     6739/* Line 1806 of yacc.c  */
     6740#line 1390 "parser.yy"
     6741    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6742    break;
     6743
     6744  case 318:
     6745
     6746/* Line 1806 of yacc.c  */
     6747#line 1395 "parser.yy"
     6748    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6749    break;
     6750
     6751  case 319:
     6752
     6753/* Line 1806 of yacc.c  */
     6754#line 1397 "parser.yy"
     6755    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6756    break;
     6757
     6758  case 320:
     6759
     6760/* Line 1806 of yacc.c  */
     6761#line 1399 "parser.yy"
     6762    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6763    break;
     6764
     6765  case 321:
     6766
     6767/* Line 1806 of yacc.c  */
     6768#line 1401 "parser.yy"
     6769    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6770    break;
     6771
     6772  case 322:
     6773
     6774/* Line 1806 of yacc.c  */
     6775#line 1403 "parser.yy"
     6776    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6777    break;
     6778
     6779  case 323:
     6780
     6781/* Line 1806 of yacc.c  */
     6782#line 1405 "parser.yy"
     6783    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6784    break;
     6785
     6786  case 324:
     6787
     6788/* Line 1806 of yacc.c  */
     6789#line 1407 "parser.yy"
     6790    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6791    break;
     6792
     6793  case 325:
     6794
     6795/* Line 1806 of yacc.c  */
     6796#line 1409 "parser.yy"
     6797    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6798    break;
     6799
     6800  case 326:
     6801
     6802/* Line 1806 of yacc.c  */
     6803#line 1411 "parser.yy"
     6804    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6805    break;
     6806
     6807  case 327:
     6808
     6809/* Line 1806 of yacc.c  */
     6810#line 1413 "parser.yy"
     6811    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6812    break;
     6813
     6814  case 328:
     6815
     6816/* Line 1806 of yacc.c  */
     6817#line 1415 "parser.yy"
     6818    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6819    break;
     6820
     6821  case 329:
     6822
     6823/* Line 1806 of yacc.c  */
     6824#line 1417 "parser.yy"
     6825    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6826    break;
     6827
     6828  case 330:
     6829
     6830/* Line 1806 of yacc.c  */
     6831#line 1419 "parser.yy"
     6832    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6833    break;
     6834
     6835  case 332:
     6836
     6837/* Line 1806 of yacc.c  */
     6838#line 1426 "parser.yy"
     6839    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6840    break;
     6841
     6842  case 333:
     6843
     6844/* Line 1806 of yacc.c  */
     6845#line 1428 "parser.yy"
     6846    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6847    break;
     6848
     6849  case 334:
     6850
     6851/* Line 1806 of yacc.c  */
     6852#line 1430 "parser.yy"
    66486853    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66496854    break;
    66506855
    6651   case 310:
    6652 
    6653 /* Line 1806 of yacc.c  */
    6654 #line 1331 "parser.yy"
     6856  case 335:
     6857
     6858/* Line 1806 of yacc.c  */
     6859#line 1432 "parser.yy"
     6860    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6861    break;
     6862
     6863  case 337:
     6864
     6865/* Line 1806 of yacc.c  */
     6866#line 1438 "parser.yy"
     6867    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6868    break;
     6869
     6870  case 339:
     6871
     6872/* Line 1806 of yacc.c  */
     6873#line 1445 "parser.yy"
     6874    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6875    break;
     6876
     6877  case 340:
     6878
     6879/* Line 1806 of yacc.c  */
     6880#line 1447 "parser.yy"
    66556881    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66566882    break;
    66576883
    6658   case 311:
    6659 
    6660 /* Line 1806 of yacc.c  */
    6661 #line 1336 "parser.yy"
    6662     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6663     break;
    6664 
    6665   case 312:
    6666 
    6667 /* Line 1806 of yacc.c  */
    6668 #line 1338 "parser.yy"
    6669     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6670     break;
    6671 
    6672   case 313:
    6673 
    6674 /* Line 1806 of yacc.c  */
    6675 #line 1340 "parser.yy"
    6676     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6677     break;
    6678 
    6679   case 314:
    6680 
    6681 /* Line 1806 of yacc.c  */
    6682 #line 1342 "parser.yy"
    6683     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6684     break;
    6685 
    6686   case 315:
    6687 
    6688 /* Line 1806 of yacc.c  */
    6689 #line 1345 "parser.yy"
    6690     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    6691     break;
    6692 
    6693   case 316:
    6694 
    6695 /* Line 1806 of yacc.c  */
    6696 #line 1347 "parser.yy"
    6697     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6698     break;
    6699 
    6700   case 317:
    6701 
    6702 /* Line 1806 of yacc.c  */
    6703 #line 1350 "parser.yy"
    6704     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    6705     break;
    6706 
    6707   case 318:
    6708 
    6709 /* Line 1806 of yacc.c  */
    6710 #line 1352 "parser.yy"
    6711     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6712     break;
    6713 
    6714   case 319:
    6715 
    6716 /* Line 1806 of yacc.c  */
    6717 #line 1357 "parser.yy"
    6718     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6719     break;
    6720 
    6721   case 320:
    6722 
    6723 /* Line 1806 of yacc.c  */
    6724 #line 1359 "parser.yy"
    6725     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6726     break;
    6727 
    6728   case 321:
    6729 
    6730 /* Line 1806 of yacc.c  */
    6731 #line 1361 "parser.yy"
    6732     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6733     break;
    6734 
    6735   case 322:
    6736 
    6737 /* Line 1806 of yacc.c  */
    6738 #line 1363 "parser.yy"
    6739     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6740     break;
    6741 
    6742   case 323:
    6743 
    6744 /* Line 1806 of yacc.c  */
    6745 #line 1365 "parser.yy"
    6746     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6747     break;
    6748 
    6749   case 324:
    6750 
    6751 /* Line 1806 of yacc.c  */
    6752 #line 1367 "parser.yy"
    6753     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6754     break;
    6755 
    6756   case 325:
    6757 
    6758 /* Line 1806 of yacc.c  */
    6759 #line 1369 "parser.yy"
    6760     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6761     break;
    6762 
    6763   case 326:
    6764 
    6765 /* Line 1806 of yacc.c  */
    6766 #line 1371 "parser.yy"
    6767     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6768     break;
    6769 
    6770   case 327:
    6771 
    6772 /* Line 1806 of yacc.c  */
    6773 #line 1373 "parser.yy"
    6774     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6775     break;
    6776 
    6777   case 328:
    6778 
    6779 /* Line 1806 of yacc.c  */
    6780 #line 1375 "parser.yy"
    6781     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6782     break;
    6783 
    6784   case 329:
    6785 
    6786 /* Line 1806 of yacc.c  */
    6787 #line 1377 "parser.yy"
    6788     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6789     break;
    6790 
    6791   case 330:
    6792 
    6793 /* Line 1806 of yacc.c  */
    6794 #line 1379 "parser.yy"
    6795     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6796     break;
    6797 
    6798   case 331:
    6799 
    6800 /* Line 1806 of yacc.c  */
    6801 #line 1381 "parser.yy"
    6802     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6803     break;
    6804 
    6805   case 333:
    6806 
    6807 /* Line 1806 of yacc.c  */
    6808 #line 1388 "parser.yy"
     6884  case 341:
     6885
     6886/* Line 1806 of yacc.c  */
     6887#line 1449 "parser.yy"
     6888    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6889    break;
     6890
     6891  case 342:
     6892
     6893/* Line 1806 of yacc.c  */
     6894#line 1454 "parser.yy"
     6895    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6896    break;
     6897
     6898  case 343:
     6899
     6900/* Line 1806 of yacc.c  */
     6901#line 1456 "parser.yy"
     6902    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6903    break;
     6904
     6905  case 344:
     6906
     6907/* Line 1806 of yacc.c  */
     6908#line 1458 "parser.yy"
     6909    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6910    break;
     6911
     6912  case 345:
     6913
     6914/* Line 1806 of yacc.c  */
     6915#line 1460 "parser.yy"
     6916    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6917    break;
     6918
     6919  case 347:
     6920
     6921/* Line 1806 of yacc.c  */
     6922#line 1466 "parser.yy"
    68096923    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68106924    break;
    68116925
    6812   case 334:
    6813 
    6814 /* Line 1806 of yacc.c  */
    6815 #line 1390 "parser.yy"
     6926  case 348:
     6927
     6928/* Line 1806 of yacc.c  */
     6929#line 1468 "parser.yy"
    68166930    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68176931    break;
    68186932
    6819   case 335:
    6820 
    6821 /* Line 1806 of yacc.c  */
    6822 #line 1392 "parser.yy"
     6933  case 349:
     6934
     6935/* Line 1806 of yacc.c  */
     6936#line 1470 "parser.yy"
    68236937    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68246938    break;
    68256939
    6826   case 336:
    6827 
    6828 /* Line 1806 of yacc.c  */
    6829 #line 1394 "parser.yy"
    6830     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6831     break;
    6832 
    6833   case 338:
    6834 
    6835 /* Line 1806 of yacc.c  */
    6836 #line 1400 "parser.yy"
    6837     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6838     break;
    6839 
    6840   case 340:
    6841 
    6842 /* Line 1806 of yacc.c  */
    6843 #line 1407 "parser.yy"
     6940  case 351:
     6941
     6942/* Line 1806 of yacc.c  */
     6943#line 1476 "parser.yy"
    68446944    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68456945    break;
    68466946
    6847   case 341:
    6848 
    6849 /* Line 1806 of yacc.c  */
    6850 #line 1409 "parser.yy"
     6947  case 352:
     6948
     6949/* Line 1806 of yacc.c  */
     6950#line 1478 "parser.yy"
    68516951    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68526952    break;
    68536953
    6854   case 342:
    6855 
    6856 /* Line 1806 of yacc.c  */
    6857 #line 1411 "parser.yy"
    6858     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6859     break;
    6860 
    6861   case 343:
    6862 
    6863 /* Line 1806 of yacc.c  */
    6864 #line 1416 "parser.yy"
    6865     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6866     break;
    6867 
    6868   case 344:
    6869 
    6870 /* Line 1806 of yacc.c  */
    6871 #line 1418 "parser.yy"
    6872     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6873     break;
    6874 
    6875   case 345:
    6876 
    6877 /* Line 1806 of yacc.c  */
    6878 #line 1420 "parser.yy"
    6879     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6880     break;
    6881 
    6882   case 346:
    6883 
    6884 /* Line 1806 of yacc.c  */
    6885 #line 1422 "parser.yy"
    6886     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6887     break;
    6888 
    6889   case 348:
    6890 
    6891 /* Line 1806 of yacc.c  */
    6892 #line 1428 "parser.yy"
     6954  case 354:
     6955
     6956/* Line 1806 of yacc.c  */
     6957#line 1484 "parser.yy"
    68936958    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68946959    break;
    68956960
    6896   case 349:
    6897 
    6898 /* Line 1806 of yacc.c  */
    6899 #line 1430 "parser.yy"
     6961  case 355:
     6962
     6963/* Line 1806 of yacc.c  */
     6964#line 1486 "parser.yy"
    69006965    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69016966    break;
    69026967
    6903   case 350:
    6904 
    6905 /* Line 1806 of yacc.c  */
    6906 #line 1432 "parser.yy"
     6968  case 356:
     6969
     6970/* Line 1806 of yacc.c  */
     6971#line 1488 "parser.yy"
    69076972    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69086973    break;
    69096974
    6910   case 352:
    6911 
    6912 /* Line 1806 of yacc.c  */
    6913 #line 1438 "parser.yy"
    6914     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6915     break;
    6916 
    6917   case 353:
    6918 
    6919 /* Line 1806 of yacc.c  */
    6920 #line 1440 "parser.yy"
     6975  case 357:
     6976
     6977/* Line 1806 of yacc.c  */
     6978#line 1493 "parser.yy"
     6979    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6980    break;
     6981
     6982  case 358:
     6983
     6984/* Line 1806 of yacc.c  */
     6985#line 1495 "parser.yy"
     6986    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6987    break;
     6988
     6989  case 359:
     6990
     6991/* Line 1806 of yacc.c  */
     6992#line 1497 "parser.yy"
    69216993    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69226994    break;
    69236995
    6924   case 355:
    6925 
    6926 /* Line 1806 of yacc.c  */
    6927 #line 1446 "parser.yy"
    6928     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6929     break;
    6930 
    6931   case 356:
    6932 
    6933 /* Line 1806 of yacc.c  */
    6934 #line 1448 "parser.yy"
    6935     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6936     break;
    6937 
    6938   case 357:
    6939 
    6940 /* Line 1806 of yacc.c  */
    6941 #line 1450 "parser.yy"
    6942     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6943     break;
    6944 
    6945   case 358:
    6946 
    6947 /* Line 1806 of yacc.c  */
    6948 #line 1455 "parser.yy"
    6949     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6950     break;
    6951 
    6952   case 359:
    6953 
    6954 /* Line 1806 of yacc.c  */
    6955 #line 1457 "parser.yy"
    6956     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6957     break;
    6958 
    6959   case 360:
    6960 
    6961 /* Line 1806 of yacc.c  */
    6962 #line 1459 "parser.yy"
    6963     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6996  case 362:
     6997
     6998/* Line 1806 of yacc.c  */
     6999#line 1507 "parser.yy"
     7000    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    69647001    break;
    69657002
     
    69677004
    69687005/* Line 1806 of yacc.c  */
    6969 #line 1469 "parser.yy"
    6970     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    6971     break;
    6972 
    6973   case 364:
    6974 
    6975 /* Line 1806 of yacc.c  */
    6976 #line 1471 "parser.yy"
     7006#line 1509 "parser.yy"
    69777007    {
    69787008                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69817011    break;
    69827012
     7013  case 364:
     7014
     7015/* Line 1806 of yacc.c  */
     7016#line 1514 "parser.yy"
     7017    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7018    break;
     7019
    69837020  case 365:
    69847021
    69857022/* Line 1806 of yacc.c  */
    6986 #line 1476 "parser.yy"
    6987     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7023#line 1516 "parser.yy"
     7024    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
    69887025    break;
    69897026
     
    69917028
    69927029/* Line 1806 of yacc.c  */
    6993 #line 1478 "parser.yy"
    6994     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
     7030#line 1518 "parser.yy"
     7031    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    69957032    break;
    69967033
     
    69987035
    69997036/* Line 1806 of yacc.c  */
    7000 #line 1480 "parser.yy"
    7001     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     7037#line 1520 "parser.yy"
     7038    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70027039    break;
    70037040
     
    70057042
    70067043/* Line 1806 of yacc.c  */
    7007 #line 1482 "parser.yy"
    7008     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7044#line 1525 "parser.yy"
     7045    { (yyval.aggKey) = DeclarationNode::Struct; }
    70097046    break;
    70107047
     
    70127049
    70137050/* Line 1806 of yacc.c  */
    7014 #line 1487 "parser.yy"
    7015     { (yyval.aggKey) = DeclarationNode::Struct; }
     7051#line 1527 "parser.yy"
     7052    { (yyval.aggKey) = DeclarationNode::Union; }
    70167053    break;
    70177054
     
    70197056
    70207057/* Line 1806 of yacc.c  */
    7021 #line 1489 "parser.yy"
    7022     { (yyval.aggKey) = DeclarationNode::Union; }
     7058#line 1532 "parser.yy"
     7059    { (yyval.decl) = 0; }
    70237060    break;
    70247061
     
    70267063
    70277064/* Line 1806 of yacc.c  */
    7028 #line 1494 "parser.yy"
    7029     { (yyval.decl) = 0; }
    7030     break;
    7031 
    7032   case 372:
    7033 
    7034 /* Line 1806 of yacc.c  */
    7035 #line 1496 "parser.yy"
     7065#line 1534 "parser.yy"
    70367066    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70377067    break;
    70387068
    7039   case 374:
    7040 
    7041 /* Line 1806 of yacc.c  */
    7042 #line 1502 "parser.yy"
     7069  case 373:
     7070
     7071/* Line 1806 of yacc.c  */
     7072#line 1540 "parser.yy"
    70437073    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70447074    break;
    70457075
    7046   case 376:
    7047 
    7048 /* Line 1806 of yacc.c  */
    7049 #line 1505 "parser.yy"
     7076  case 375:
     7077
     7078/* Line 1806 of yacc.c  */
     7079#line 1543 "parser.yy"
    70507080    {   // mark all fields in list
    70517081                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    70557085    break;
    70567086
     7087  case 377:
     7088
     7089/* Line 1806 of yacc.c  */
     7090#line 1553 "parser.yy"
     7091    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7092    break;
     7093
    70577094  case 378:
    70587095
    70597096/* Line 1806 of yacc.c  */
    7060 #line 1515 "parser.yy"
    7061     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7097#line 1555 "parser.yy"
     7098    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    70627099    break;
    70637100
     
    70657102
    70667103/* Line 1806 of yacc.c  */
    7067 #line 1517 "parser.yy"
    7068     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7104#line 1557 "parser.yy"
     7105    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70697106    break;
    70707107
     
    70727109
    70737110/* Line 1806 of yacc.c  */
    7074 #line 1519 "parser.yy"
    7075     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7111#line 1562 "parser.yy"
     7112    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70767113    break;
    70777114
     
    70797116
    70807117/* Line 1806 of yacc.c  */
    7081 #line 1524 "parser.yy"
    7082     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7118#line 1564 "parser.yy"
     7119    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70837120    break;
    70847121
     
    70867123
    70877124/* Line 1806 of yacc.c  */
    7088 #line 1526 "parser.yy"
    7089     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7125#line 1569 "parser.yy"
     7126    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70907127    break;
    70917128
     
    70937130
    70947131/* Line 1806 of yacc.c  */
    7095 #line 1531 "parser.yy"
    7096     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7132#line 1571 "parser.yy"
     7133    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70977134    break;
    70987135
     
    71007137
    71017138/* Line 1806 of yacc.c  */
    7102 #line 1533 "parser.yy"
    7103     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7139#line 1574 "parser.yy"
     7140    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71047141    break;
    71057142
     
    71077144
    71087145/* Line 1806 of yacc.c  */
    7109 #line 1536 "parser.yy"
     7146#line 1577 "parser.yy"
    71107147    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71117148    break;
    71127149
    7113   case 386:
    7114 
    7115 /* Line 1806 of yacc.c  */
    7116 #line 1539 "parser.yy"
    7117     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7150  case 387:
     7151
     7152/* Line 1806 of yacc.c  */
     7153#line 1583 "parser.yy"
     7154    { (yyval.en) = 0; }
    71187155    break;
    71197156
     
    71217158
    71227159/* Line 1806 of yacc.c  */
    7123 #line 1545 "parser.yy"
    7124     { (yyval.en) = 0; }
     7160#line 1585 "parser.yy"
     7161    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71257162    break;
    71267163
     
    71287165
    71297166/* Line 1806 of yacc.c  */
    7130 #line 1547 "parser.yy"
    7131     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7132     break;
    7133 
    7134   case 390:
    7135 
    7136 /* Line 1806 of yacc.c  */
    7137 #line 1552 "parser.yy"
     7167#line 1590 "parser.yy"
    71387168    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71397169    break;
    71407170
     7171  case 391:
     7172
     7173/* Line 1806 of yacc.c  */
     7174#line 1599 "parser.yy"
     7175    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     7176    break;
     7177
    71417178  case 392:
    71427179
    71437180/* Line 1806 of yacc.c  */
    7144 #line 1561 "parser.yy"
    7145     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7146     break;
    7147 
    7148   case 393:
    7149 
    7150 /* Line 1806 of yacc.c  */
    7151 #line 1563 "parser.yy"
     7181#line 1601 "parser.yy"
    71527182    {
    71537183                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71567186    break;
    71577187
     7188  case 393:
     7189
     7190/* Line 1806 of yacc.c  */
     7191#line 1606 "parser.yy"
     7192    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7193    break;
     7194
    71587195  case 394:
    71597196
    71607197/* Line 1806 of yacc.c  */
    7161 #line 1568 "parser.yy"
    7162     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7198#line 1608 "parser.yy"
     7199    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    71637200    break;
    71647201
     
    71667203
    71677204/* Line 1806 of yacc.c  */
    7168 #line 1570 "parser.yy"
    7169     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7205#line 1613 "parser.yy"
     7206    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    71707207    break;
    71717208
     
    71737210
    71747211/* Line 1806 of yacc.c  */
    7175 #line 1575 "parser.yy"
    7176     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7212#line 1615 "parser.yy"
     7213    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71777214    break;
    71787215
     
    71807217
    71817218/* Line 1806 of yacc.c  */
    7182 #line 1577 "parser.yy"
    7183     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7219#line 1620 "parser.yy"
     7220    { (yyval.en) = 0; }
    71847221    break;
    71857222
     
    71877224
    71887225/* Line 1806 of yacc.c  */
    7189 #line 1582 "parser.yy"
    7190     { (yyval.en) = 0; }
     7226#line 1622 "parser.yy"
     7227    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71917228    break;
    71927229
     
    71947231
    71957232/* Line 1806 of yacc.c  */
    7196 #line 1584 "parser.yy"
    7197     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7198     break;
    7199 
    7200   case 400:
    7201 
    7202 /* Line 1806 of yacc.c  */
    7203 #line 1591 "parser.yy"
     7233#line 1629 "parser.yy"
    72047234    { (yyval.decl) = 0; }
    72057235    break;
    72067236
     7237  case 403:
     7238
     7239/* Line 1806 of yacc.c  */
     7240#line 1637 "parser.yy"
     7241    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7242    break;
     7243
    72077244  case 404:
    72087245
    72097246/* Line 1806 of yacc.c  */
    7210 #line 1599 "parser.yy"
     7247#line 1639 "parser.yy"
     7248    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7249    break;
     7250
     7251  case 405:
     7252
     7253/* Line 1806 of yacc.c  */
     7254#line 1641 "parser.yy"
     7255    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7256    break;
     7257
     7258  case 407:
     7259
     7260/* Line 1806 of yacc.c  */
     7261#line 1649 "parser.yy"
    72117262    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72127263    break;
    72137264
    7214   case 405:
    7215 
    7216 /* Line 1806 of yacc.c  */
    7217 #line 1601 "parser.yy"
     7265  case 408:
     7266
     7267/* Line 1806 of yacc.c  */
     7268#line 1651 "parser.yy"
     7269    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7270    break;
     7271
     7272  case 409:
     7273
     7274/* Line 1806 of yacc.c  */
     7275#line 1653 "parser.yy"
     7276    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7277    break;
     7278
     7279  case 411:
     7280
     7281/* Line 1806 of yacc.c  */
     7282#line 1659 "parser.yy"
     7283    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7284    break;
     7285
     7286  case 412:
     7287
     7288/* Line 1806 of yacc.c  */
     7289#line 1664 "parser.yy"
     7290    { (yyval.decl) = 0; }
     7291    break;
     7292
     7293  case 415:
     7294
     7295/* Line 1806 of yacc.c  */
     7296#line 1671 "parser.yy"
    72187297    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72197298    break;
    72207299
    7221   case 406:
    7222 
    7223 /* Line 1806 of yacc.c  */
    7224 #line 1603 "parser.yy"
    7225     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7226     break;
    7227 
    7228   case 408:
    7229 
    7230 /* Line 1806 of yacc.c  */
    7231 #line 1611 "parser.yy"
     7300  case 418:
     7301
     7302/* Line 1806 of yacc.c  */
     7303#line 1678 "parser.yy"
    72327304    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72337305    break;
    72347306
    7235   case 409:
    7236 
    7237 /* Line 1806 of yacc.c  */
    7238 #line 1613 "parser.yy"
     7307  case 419:
     7308
     7309/* Line 1806 of yacc.c  */
     7310#line 1680 "parser.yy"
    72397311    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72407312    break;
    72417313
    7242   case 410:
    7243 
    7244 /* Line 1806 of yacc.c  */
    7245 #line 1615 "parser.yy"
    7246     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7247     break;
    7248 
    7249   case 412:
    7250 
    7251 /* Line 1806 of yacc.c  */
    7252 #line 1621 "parser.yy"
    7253     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7254     break;
    7255 
    7256   case 413:
    7257 
    7258 /* Line 1806 of yacc.c  */
    7259 #line 1626 "parser.yy"
    7260     { (yyval.decl) = 0; }
    7261     break;
    7262 
    7263   case 416:
    7264 
    7265 /* Line 1806 of yacc.c  */
    7266 #line 1633 "parser.yy"
    7267     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7268     break;
    7269 
    7270   case 419:
    7271 
    7272 /* Line 1806 of yacc.c  */
    7273 #line 1640 "parser.yy"
    7274     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7275     break;
    7276 
    7277   case 420:
    7278 
    7279 /* Line 1806 of yacc.c  */
    7280 #line 1642 "parser.yy"
    7281     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7314  case 421:
     7315
     7316/* Line 1806 of yacc.c  */
     7317#line 1689 "parser.yy"
     7318    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72827319    break;
    72837320
     
    72857322
    72867323/* Line 1806 of yacc.c  */
    7287 #line 1651 "parser.yy"
     7324#line 1692 "parser.yy"
    72887325    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72897326    break;
     
    72927329
    72937330/* Line 1806 of yacc.c  */
    7294 #line 1654 "parser.yy"
    7295     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7296     break;
    7297 
    7298   case 424:
    7299 
    7300 /* Line 1806 of yacc.c  */
    7301 #line 1656 "parser.yy"
     7331#line 1694 "parser.yy"
    73027332    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73037333    break;
    73047334
    7305   case 429:
    7306 
    7307 /* Line 1806 of yacc.c  */
    7308 #line 1666 "parser.yy"
     7335  case 428:
     7336
     7337/* Line 1806 of yacc.c  */
     7338#line 1704 "parser.yy"
    73097339    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73107340    break;
    73117341
    7312   case 431:
    7313 
    7314 /* Line 1806 of yacc.c  */
    7315 #line 1672 "parser.yy"
     7342  case 430:
     7343
     7344/* Line 1806 of yacc.c  */
     7345#line 1710 "parser.yy"
    73167346    {
    73177347                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73207350    break;
    73217351
    7322   case 432:
    7323 
    7324 /* Line 1806 of yacc.c  */
    7325 #line 1677 "parser.yy"
     7352  case 431:
     7353
     7354/* Line 1806 of yacc.c  */
     7355#line 1715 "parser.yy"
    73267356    {
    73277357                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73307360    break;
    73317361
     7362  case 433:
     7363
     7364/* Line 1806 of yacc.c  */
     7365#line 1724 "parser.yy"
     7366    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7367    break;
     7368
    73327369  case 434:
    73337370
    73347371/* Line 1806 of yacc.c  */
    7335 #line 1686 "parser.yy"
     7372#line 1733 "parser.yy"
     7373    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7374    break;
     7375
     7376  case 435:
     7377
     7378/* Line 1806 of yacc.c  */
     7379#line 1735 "parser.yy"
     7380    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7381    break;
     7382
     7383  case 447:
     7384
     7385/* Line 1806 of yacc.c  */
     7386#line 1760 "parser.yy"
    73367387    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73377388    break;
    73387389
    7339   case 435:
    7340 
    7341 /* Line 1806 of yacc.c  */
    7342 #line 1695 "parser.yy"
    7343     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7344     break;
    7345 
    7346   case 436:
    7347 
    7348 /* Line 1806 of yacc.c  */
    7349 #line 1697 "parser.yy"
    7350     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    7351     break;
    7352 
    7353   case 448:
    7354 
    7355 /* Line 1806 of yacc.c  */
    7356 #line 1722 "parser.yy"
     7390  case 451:
     7391
     7392/* Line 1806 of yacc.c  */
     7393#line 1768 "parser.yy"
    73577394    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73587395    break;
     
    73617398
    73627399/* Line 1806 of yacc.c  */
    7363 #line 1730 "parser.yy"
    7364     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7400#line 1773 "parser.yy"
     7401    { (yyval.in) = 0; }
    73657402    break;
    73667403
     
    73687405
    73697406/* Line 1806 of yacc.c  */
    7370 #line 1735 "parser.yy"
     7407#line 1775 "parser.yy"
     7408    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7409    break;
     7410
     7411  case 454:
     7412
     7413/* Line 1806 of yacc.c  */
     7414#line 1777 "parser.yy"
     7415    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7416    break;
     7417
     7418  case 455:
     7419
     7420/* Line 1806 of yacc.c  */
     7421#line 1781 "parser.yy"
     7422    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7423    break;
     7424
     7425  case 456:
     7426
     7427/* Line 1806 of yacc.c  */
     7428#line 1782 "parser.yy"
     7429    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7430    break;
     7431
     7432  case 457:
     7433
     7434/* Line 1806 of yacc.c  */
     7435#line 1787 "parser.yy"
    73717436    { (yyval.in) = 0; }
    73727437    break;
    73737438
    7374   case 454:
    7375 
    7376 /* Line 1806 of yacc.c  */
    7377 #line 1737 "parser.yy"
    7378     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7379     break;
    7380 
    7381   case 455:
    7382 
    7383 /* Line 1806 of yacc.c  */
    7384 #line 1739 "parser.yy"
    7385     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7386     break;
    7387 
    7388   case 456:
    7389 
    7390 /* Line 1806 of yacc.c  */
    7391 #line 1743 "parser.yy"
    7392     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7393     break;
    7394 
    7395   case 457:
    7396 
    7397 /* Line 1806 of yacc.c  */
    7398 #line 1744 "parser.yy"
    7399     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7400     break;
    7401 
    7402   case 458:
    7403 
    7404 /* Line 1806 of yacc.c  */
    7405 #line 1749 "parser.yy"
    7406     { (yyval.in) = 0; }
     7439  case 459:
     7440
     7441/* Line 1806 of yacc.c  */
     7442#line 1789 "parser.yy"
     7443    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74077444    break;
    74087445
     
    74107447
    74117448/* Line 1806 of yacc.c  */
    7412 #line 1751 "parser.yy"
    7413     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7449#line 1790 "parser.yy"
     7450    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    74147451    break;
    74157452
     
    74177454
    74187455/* Line 1806 of yacc.c  */
    7419 #line 1752 "parser.yy"
    7420     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    7421     break;
    7422 
    7423   case 462:
    7424 
    7425 /* Line 1806 of yacc.c  */
    7426 #line 1754 "parser.yy"
     7456#line 1792 "parser.yy"
    74277457    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74287458    break;
    74297459
    7430   case 464:
    7431 
    7432 /* Line 1806 of yacc.c  */
    7433 #line 1770 "parser.yy"
     7460  case 463:
     7461
     7462/* Line 1806 of yacc.c  */
     7463#line 1808 "parser.yy"
    74347464    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74357465    break;
    74367466
     7467  case 465:
     7468
     7469/* Line 1806 of yacc.c  */
     7470#line 1814 "parser.yy"
     7471    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     7472    break;
     7473
    74377474  case 466:
    74387475
    74397476/* Line 1806 of yacc.c  */
    7440 #line 1776 "parser.yy"
    7441     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     7477#line 1820 "parser.yy"
     7478    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74427479    break;
    74437480
     
    74457482
    74467483/* Line 1806 of yacc.c  */
    7447 #line 1782 "parser.yy"
    7448     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     7484#line 1823 "parser.yy"
     7485    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74497486    break;
    74507487
     
    74527489
    74537490/* Line 1806 of yacc.c  */
    7454 #line 1785 "parser.yy"
     7491#line 1825 "parser.yy"
    74557492    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74567493    break;
     
    74597496
    74607497/* Line 1806 of yacc.c  */
    7461 #line 1787 "parser.yy"
    7462     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7498#line 1827 "parser.yy"
     7499    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    74637500    break;
    74647501
     
    74667503
    74677504/* Line 1806 of yacc.c  */
    7468 #line 1789 "parser.yy"
    7469     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    7470     break;
    7471 
    7472   case 471:
    7473 
    7474 /* Line 1806 of yacc.c  */
    7475 #line 1791 "parser.yy"
     7505#line 1829 "parser.yy"
    74767506    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74777507    break;
    74787508
     7509  case 472:
     7510
     7511/* Line 1806 of yacc.c  */
     7512#line 1853 "parser.yy"
     7513    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7514    break;
     7515
    74797516  case 473:
    74807517
    74817518/* Line 1806 of yacc.c  */
    7482 #line 1815 "parser.yy"
     7519#line 1855 "parser.yy"
     7520    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7521    break;
     7522
     7523  case 474:
     7524
     7525/* Line 1806 of yacc.c  */
     7526#line 1857 "parser.yy"
     7527    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7528    break;
     7529
     7530  case 476:
     7531
     7532/* Line 1806 of yacc.c  */
     7533#line 1863 "parser.yy"
    74837534    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74847535    break;
    74857536
    7486   case 474:
    7487 
    7488 /* Line 1806 of yacc.c  */
    7489 #line 1817 "parser.yy"
     7537  case 477:
     7538
     7539/* Line 1806 of yacc.c  */
     7540#line 1865 "parser.yy"
    74907541    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74917542    break;
    74927543
    7493   case 475:
    7494 
    7495 /* Line 1806 of yacc.c  */
    7496 #line 1819 "parser.yy"
    7497     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7498     break;
    7499 
    7500   case 477:
    7501 
    7502 /* Line 1806 of yacc.c  */
    7503 #line 1825 "parser.yy"
    7504     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7505     break;
    7506 
    75077544  case 478:
    75087545
    75097546/* Line 1806 of yacc.c  */
    7510 #line 1827 "parser.yy"
    7511     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7512     break;
    7513 
    7514   case 479:
    7515 
    7516 /* Line 1806 of yacc.c  */
    7517 #line 1832 "parser.yy"
     7547#line 1870 "parser.yy"
    75187548    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75197549    break;
    75207550
     7551  case 480:
     7552
     7553/* Line 1806 of yacc.c  */
     7554#line 1876 "parser.yy"
     7555    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7556    break;
     7557
    75217558  case 481:
    75227559
    75237560/* Line 1806 of yacc.c  */
    7524 #line 1838 "parser.yy"
    7525     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7561#line 1881 "parser.yy"
     7562    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75267563    break;
    75277564
     
    75297566
    75307567/* Line 1806 of yacc.c  */
    7531 #line 1843 "parser.yy"
    7532     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7533     break;
    7534 
    7535   case 483:
    7536 
    7537 /* Line 1806 of yacc.c  */
    7538 #line 1845 "parser.yy"
     7568#line 1883 "parser.yy"
    75397569    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75407570    break;
    75417571
     7572  case 484:
     7573
     7574/* Line 1806 of yacc.c  */
     7575#line 1889 "parser.yy"
     7576    { (yyval.tclass) = DeclarationNode::Type; }
     7577    break;
     7578
    75427579  case 485:
    75437580
    75447581/* Line 1806 of yacc.c  */
    7545 #line 1851 "parser.yy"
    7546     { (yyval.tclass) = DeclarationNode::Type; }
     7582#line 1891 "parser.yy"
     7583    { (yyval.tclass) = DeclarationNode::Ftype; }
    75477584    break;
    75487585
     
    75507587
    75517588/* Line 1806 of yacc.c  */
    7552 #line 1853 "parser.yy"
    7553     { (yyval.tclass) = DeclarationNode::Ftype; }
     7589#line 1893 "parser.yy"
     7590    { (yyval.tclass) = DeclarationNode::Dtype; }
    75547591    break;
    75557592
     
    75577594
    75587595/* Line 1806 of yacc.c  */
    7559 #line 1855 "parser.yy"
    7560     { (yyval.tclass) = DeclarationNode::Dtype; }
     7596#line 1898 "parser.yy"
     7597    { (yyval.decl) = 0; }
    75617598    break;
    75627599
     
    75647601
    75657602/* Line 1806 of yacc.c  */
    7566 #line 1860 "parser.yy"
    7567     { (yyval.decl) = 0; }
     7603#line 1900 "parser.yy"
     7604    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    75687605    break;
    75697606
     
    75717608
    75727609/* Line 1806 of yacc.c  */
    7573 #line 1862 "parser.yy"
    7574     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    7575     break;
    7576 
    7577   case 490:
    7578 
    7579 /* Line 1806 of yacc.c  */
    7580 #line 1867 "parser.yy"
     7610#line 1905 "parser.yy"
    75817611    {
    75827612                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75857615    break;
    75867616
     7617  case 490:
     7618
     7619/* Line 1806 of yacc.c  */
     7620#line 1910 "parser.yy"
     7621    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7622    break;
     7623
    75877624  case 491:
    75887625
    75897626/* Line 1806 of yacc.c  */
    7590 #line 1872 "parser.yy"
    7591     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7627#line 1912 "parser.yy"
     7628    { (yyval.decl) = 0; }
    75927629    break;
    75937630
     
    75957632
    75967633/* Line 1806 of yacc.c  */
    7597 #line 1874 "parser.yy"
    7598     { (yyval.decl) = 0; }
    7599     break;
    7600 
    7601   case 493:
    7602 
    7603 /* Line 1806 of yacc.c  */
    7604 #line 1879 "parser.yy"
     7634#line 1917 "parser.yy"
    76057635    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    76067636    break;
    76077637
     7638  case 494:
     7639
     7640/* Line 1806 of yacc.c  */
     7641#line 1920 "parser.yy"
     7642    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7643    break;
     7644
    76087645  case 495:
    76097646
    76107647/* Line 1806 of yacc.c  */
    7611 #line 1882 "parser.yy"
    7612     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7648#line 1922 "parser.yy"
     7649    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    76137650    break;
    76147651
     
    76167653
    76177654/* Line 1806 of yacc.c  */
    7618 #line 1884 "parser.yy"
    7619     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     7655#line 1927 "parser.yy"
     7656    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76207657    break;
    76217658
     
    76237660
    76247661/* Line 1806 of yacc.c  */
    7625 #line 1889 "parser.yy"
    7626     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7662#line 1929 "parser.yy"
     7663    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76277664    break;
    76287665
     
    76307667
    76317668/* Line 1806 of yacc.c  */
    7632 #line 1891 "parser.yy"
    7633     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7669#line 1931 "parser.yy"
     7670    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76347671    break;
    76357672
     
    76377674
    76387675/* Line 1806 of yacc.c  */
    7639 #line 1893 "parser.yy"
    7640     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7676#line 1936 "parser.yy"
     7677    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76417678    break;
    76427679
     
    76447681
    76457682/* Line 1806 of yacc.c  */
    7646 #line 1898 "parser.yy"
    7647     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7683#line 1938 "parser.yy"
     7684    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76487685    break;
    76497686
     
    76517688
    76527689/* Line 1806 of yacc.c  */
    7653 #line 1900 "parser.yy"
    7654     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7655     break;
    7656 
    7657   case 502:
    7658 
    7659 /* Line 1806 of yacc.c  */
    7660 #line 1905 "parser.yy"
     7690#line 1943 "parser.yy"
    76617691    {
    76627692                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76657695    break;
    76667696
    7667   case 503:
    7668 
    7669 /* Line 1806 of yacc.c  */
    7670 #line 1910 "parser.yy"
     7697  case 502:
     7698
     7699/* Line 1806 of yacc.c  */
     7700#line 1948 "parser.yy"
    76717701    {
    76727702                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76757705    break;
    76767706
    7677   case 504:
    7678 
    7679 /* Line 1806 of yacc.c  */
    7680 #line 1918 "parser.yy"
     7707  case 503:
     7708
     7709/* Line 1806 of yacc.c  */
     7710#line 1956 "parser.yy"
    76817711    {
    76827712                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76857715    break;
    76867716
    7687   case 505:
    7688 
    7689 /* Line 1806 of yacc.c  */
    7690 #line 1923 "parser.yy"
     7717  case 504:
     7718
     7719/* Line 1806 of yacc.c  */
     7720#line 1961 "parser.yy"
    76917721    {
    76927722                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    76957725    break;
    76967726
    7697   case 506:
    7698 
    7699 /* Line 1806 of yacc.c  */
    7700 #line 1928 "parser.yy"
     7727  case 505:
     7728
     7729/* Line 1806 of yacc.c  */
     7730#line 1966 "parser.yy"
    77017731    {
    77027732                        typedefTable.leaveTrait();
     
    77067736    break;
    77077737
    7708   case 508:
    7709 
    7710 /* Line 1806 of yacc.c  */
    7711 #line 1938 "parser.yy"
     7738  case 507:
     7739
     7740/* Line 1806 of yacc.c  */
     7741#line 1976 "parser.yy"
    77127742    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77137743    break;
    77147744
    7715   case 511:
    7716 
    7717 /* Line 1806 of yacc.c  */
    7718 #line 1948 "parser.yy"
     7745  case 510:
     7746
     7747/* Line 1806 of yacc.c  */
     7748#line 1986 "parser.yy"
    77197749    {
    77207750                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77237753    break;
    77247754
    7725   case 512:
    7726 
    7727 /* Line 1806 of yacc.c  */
    7728 #line 1953 "parser.yy"
     7755  case 511:
     7756
     7757/* Line 1806 of yacc.c  */
     7758#line 1991 "parser.yy"
    77297759    {
    77307760                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77337763    break;
    77347764
    7735   case 513:
    7736 
    7737 /* Line 1806 of yacc.c  */
    7738 #line 1958 "parser.yy"
     7765  case 512:
     7766
     7767/* Line 1806 of yacc.c  */
     7768#line 1996 "parser.yy"
    77397769    {
    77407770                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77437773    break;
    77447774
    7745   case 514:
    7746 
    7747 /* Line 1806 of yacc.c  */
    7748 #line 1966 "parser.yy"
     7775  case 513:
     7776
     7777/* Line 1806 of yacc.c  */
     7778#line 2004 "parser.yy"
    77497779    {
    77507780                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77537783    break;
    77547784
    7755   case 515:
    7756 
    7757 /* Line 1806 of yacc.c  */
    7758 #line 1971 "parser.yy"
     7785  case 514:
     7786
     7787/* Line 1806 of yacc.c  */
     7788#line 2009 "parser.yy"
    77597789    {
    77607790                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77637793    break;
    77647794
     7795  case 515:
     7796
     7797/* Line 1806 of yacc.c  */
     7798#line 2019 "parser.yy"
     7799    {}
     7800    break;
     7801
    77657802  case 516:
    77667803
    77677804/* Line 1806 of yacc.c  */
    7768 #line 1981 "parser.yy"
     7805#line 2021 "parser.yy"
     7806    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
     7807    break;
     7808
     7809  case 518:
     7810
     7811/* Line 1806 of yacc.c  */
     7812#line 2027 "parser.yy"
     7813    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7814    break;
     7815
     7816  case 519:
     7817
     7818/* Line 1806 of yacc.c  */
     7819#line 2032 "parser.yy"
     7820    { (yyval.decl) = 0; }
     7821    break;
     7822
     7823  case 523:
     7824
     7825/* Line 1806 of yacc.c  */
     7826#line 2040 "parser.yy"
    77697827    {}
    77707828    break;
    77717829
    7772   case 517:
    7773 
    7774 /* Line 1806 of yacc.c  */
    7775 #line 1983 "parser.yy"
    7776     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    7777     break;
    7778 
    7779   case 519:
    7780 
    7781 /* Line 1806 of yacc.c  */
    7782 #line 1989 "parser.yy"
    7783     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7784     break;
    7785 
    7786   case 520:
    7787 
    7788 /* Line 1806 of yacc.c  */
    7789 #line 1994 "parser.yy"
    7790     { (yyval.decl) = 0; }
    7791     break;
    7792 
    77937830  case 524:
    77947831
    77957832/* Line 1806 of yacc.c  */
    7796 #line 2002 "parser.yy"
    7797     {}
    7798     break;
    7799 
    7800   case 525:
    7801 
    7802 /* Line 1806 of yacc.c  */
    7803 #line 2004 "parser.yy"
     7833#line 2042 "parser.yy"
    78047834    {
    78057835                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    78087838    break;
    78097839
    7810   case 526:
    7811 
    7812 /* Line 1806 of yacc.c  */
    7813 #line 2009 "parser.yy"
     7840  case 525:
     7841
     7842/* Line 1806 of yacc.c  */
     7843#line 2047 "parser.yy"
    78147844    {
    78157845                        linkage = linkageStack.top();
     
    78197849    break;
    78207850
    7821   case 527:
    7822 
    7823 /* Line 1806 of yacc.c  */
    7824 #line 2015 "parser.yy"
     7851  case 526:
     7852
     7853/* Line 1806 of yacc.c  */
     7854#line 2053 "parser.yy"
    78257855    {   // mark all fields in list
    78267856                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    78307860    break;
    78317861
    7832   case 529:
    7833 
    7834 /* Line 1806 of yacc.c  */
    7835 #line 2030 "parser.yy"
     7862  case 528:
     7863
     7864/* Line 1806 of yacc.c  */
     7865#line 2068 "parser.yy"
    78367866    {
    78377867                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78417871    break;
    78427872
    7843   case 530:
    7844 
    7845 /* Line 1806 of yacc.c  */
    7846 #line 2036 "parser.yy"
     7873  case 529:
     7874
     7875/* Line 1806 of yacc.c  */
     7876#line 2074 "parser.yy"
    78477877    {
    78487878                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78527882    break;
    78537883
    7854   case 531:
    7855 
    7856 /* Line 1806 of yacc.c  */
    7857 #line 2045 "parser.yy"
     7884  case 530:
     7885
     7886/* Line 1806 of yacc.c  */
     7887#line 2083 "parser.yy"
    78587888    {
    78597889                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78637893    break;
    78647894
    7865   case 532:
    7866 
    7867 /* Line 1806 of yacc.c  */
    7868 #line 2051 "parser.yy"
     7895  case 531:
     7896
     7897/* Line 1806 of yacc.c  */
     7898#line 2089 "parser.yy"
    78697899    {
    78707900                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78747904    break;
    78757905
    7876   case 533:
    7877 
    7878 /* Line 1806 of yacc.c  */
    7879 #line 2057 "parser.yy"
     7906  case 532:
     7907
     7908/* Line 1806 of yacc.c  */
     7909#line 2095 "parser.yy"
    78807910    {
    78817911                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78857915    break;
    78867916
    7887   case 534:
    7888 
    7889 /* Line 1806 of yacc.c  */
    7890 #line 2063 "parser.yy"
     7917  case 533:
     7918
     7919/* Line 1806 of yacc.c  */
     7920#line 2101 "parser.yy"
    78917921    {
    78927922                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78967926    break;
    78977927
    7898   case 535:
    7899 
    7900 /* Line 1806 of yacc.c  */
    7901 #line 2069 "parser.yy"
     7928  case 534:
     7929
     7930/* Line 1806 of yacc.c  */
     7931#line 2107 "parser.yy"
    79027932    {
    79037933                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79077937    break;
    79087938
    7909   case 536:
    7910 
    7911 /* Line 1806 of yacc.c  */
    7912 #line 2077 "parser.yy"
     7939  case 535:
     7940
     7941/* Line 1806 of yacc.c  */
     7942#line 2115 "parser.yy"
    79137943    {
    79147944                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79187948    break;
    79197949
    7920   case 537:
    7921 
    7922 /* Line 1806 of yacc.c  */
    7923 #line 2083 "parser.yy"
     7950  case 536:
     7951
     7952/* Line 1806 of yacc.c  */
     7953#line 2121 "parser.yy"
    79247954    {
    79257955                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79297959    break;
    79307960
    7931   case 538:
    7932 
    7933 /* Line 1806 of yacc.c  */
    7934 #line 2091 "parser.yy"
     7961  case 537:
     7962
     7963/* Line 1806 of yacc.c  */
     7964#line 2129 "parser.yy"
    79357965    {
    79367966                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79407970    break;
    79417971
    7942   case 539:
    7943 
    7944 /* Line 1806 of yacc.c  */
    7945 #line 2097 "parser.yy"
     7972  case 538:
     7973
     7974/* Line 1806 of yacc.c  */
     7975#line 2135 "parser.yy"
    79467976    {
    79477977                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79517981    break;
    79527982
    7953   case 543:
    7954 
    7955 /* Line 1806 of yacc.c  */
    7956 #line 2112 "parser.yy"
     7983  case 542:
     7984
     7985/* Line 1806 of yacc.c  */
     7986#line 2150 "parser.yy"
    79577987    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79587988    break;
     
    79617991
    79627992/* Line 1806 of yacc.c  */
    7963 #line 2117 "parser.yy"
    7964     { delete (yyvsp[(3) - (5)].str); }
    7965     break;
    7966 
    7967   case 546:
    7968 
    7969 /* Line 1806 of yacc.c  */
    7970 #line 2122 "parser.yy"
     7993#line 2160 "parser.yy"
    79717994    { (yyval.decl) = 0; }
    79727995    break;
    79737996
     7997  case 548:
     7998
     7999/* Line 1806 of yacc.c  */
     8000#line 2167 "parser.yy"
     8001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8002    break;
     8003
    79748004  case 549:
    79758005
    79768006/* Line 1806 of yacc.c  */
    7977 #line 2129 "parser.yy"
    7978     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7979     break;
    7980 
    7981   case 550:
    7982 
    7983 /* Line 1806 of yacc.c  */
    7984 #line 2135 "parser.yy"
     8007#line 2173 "parser.yy"
    79858008    { (yyval.decl) = 0; }
    79868009    break;
     
    79898012
    79908013/* Line 1806 of yacc.c  */
    7991 #line 2146 "parser.yy"
    7992     { delete (yyvsp[(3) - (4)].en); }
     8014#line 2188 "parser.yy"
     8015    { delete (yyvsp[(1) - (1)].tok); }
    79938016    break;
    79948017
     
    79968019
    79978020/* Line 1806 of yacc.c  */
    7998 #line 2150 "parser.yy"
    7999     { delete (yyvsp[(1) - (1)].tok); }
     8021#line 2189 "parser.yy"
     8022    { delete (yyvsp[(1) - (1)].decl); }
    80008023    break;
    80018024
     
    80038026
    80048027/* Line 1806 of yacc.c  */
    8005 #line 2151 "parser.yy"
     8028#line 2190 "parser.yy"
    80068029    { delete (yyvsp[(1) - (1)].decl); }
    80078030    break;
     
    80108033
    80118034/* Line 1806 of yacc.c  */
    8012 #line 2152 "parser.yy"
     8035#line 2191 "parser.yy"
    80138036    { delete (yyvsp[(1) - (1)].decl); }
    80148037    break;
     
    80178040
    80188041/* Line 1806 of yacc.c  */
    8019 #line 2153 "parser.yy"
    8020     { delete (yyvsp[(1) - (1)].decl); }
    8021     break;
    8022 
    8023   case 560:
    8024 
    8025 /* Line 1806 of yacc.c  */
    8026 #line 2188 "parser.yy"
     8042#line 2226 "parser.yy"
    80278043    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80288044    break;
    80298045
     8046  case 561:
     8047
     8048/* Line 1806 of yacc.c  */
     8049#line 2229 "parser.yy"
     8050    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8051    break;
     8052
    80308053  case 562:
    80318054
    80328055/* Line 1806 of yacc.c  */
    8033 #line 2191 "parser.yy"
     8056#line 2231 "parser.yy"
    80348057    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80358058    break;
     
    80388061
    80398062/* Line 1806 of yacc.c  */
    8040 #line 2193 "parser.yy"
    8041     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8042     break;
    8043 
    8044   case 564:
    8045 
    8046 /* Line 1806 of yacc.c  */
    8047 #line 2198 "parser.yy"
     8063#line 2236 "parser.yy"
    80488064    {
    80498065                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80528068    break;
    80538069
     8070  case 564:
     8071
     8072/* Line 1806 of yacc.c  */
     8073#line 2241 "parser.yy"
     8074    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8075    break;
     8076
    80548077  case 565:
    80558078
    80568079/* Line 1806 of yacc.c  */
    8057 #line 2203 "parser.yy"
     8080#line 2246 "parser.yy"
     8081    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8082    break;
     8083
     8084  case 566:
     8085
     8086/* Line 1806 of yacc.c  */
     8087#line 2248 "parser.yy"
     8088    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8089    break;
     8090
     8091  case 567:
     8092
     8093/* Line 1806 of yacc.c  */
     8094#line 2250 "parser.yy"
    80588095    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80598096    break;
    80608097
    8061   case 566:
    8062 
    8063 /* Line 1806 of yacc.c  */
    8064 #line 2208 "parser.yy"
     8098  case 568:
     8099
     8100/* Line 1806 of yacc.c  */
     8101#line 2255 "parser.yy"
     8102    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8103    break;
     8104
     8105  case 569:
     8106
     8107/* Line 1806 of yacc.c  */
     8108#line 2257 "parser.yy"
     8109    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8110    break;
     8111
     8112  case 570:
     8113
     8114/* Line 1806 of yacc.c  */
     8115#line 2259 "parser.yy"
     8116    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8117    break;
     8118
     8119  case 571:
     8120
     8121/* Line 1806 of yacc.c  */
     8122#line 2261 "parser.yy"
     8123    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8124    break;
     8125
     8126  case 572:
     8127
     8128/* Line 1806 of yacc.c  */
     8129#line 2266 "parser.yy"
     8130    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8131    break;
     8132
     8133  case 573:
     8134
     8135/* Line 1806 of yacc.c  */
     8136#line 2268 "parser.yy"
     8137    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8138    break;
     8139
     8140  case 574:
     8141
     8142/* Line 1806 of yacc.c  */
     8143#line 2277 "parser.yy"
     8144    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8145    break;
     8146
     8147  case 576:
     8148
     8149/* Line 1806 of yacc.c  */
     8150#line 2280 "parser.yy"
     8151    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8152    break;
     8153
     8154  case 577:
     8155
     8156/* Line 1806 of yacc.c  */
     8157#line 2285 "parser.yy"
     8158    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8159    break;
     8160
     8161  case 578:
     8162
     8163/* Line 1806 of yacc.c  */
     8164#line 2287 "parser.yy"
     8165    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8166    break;
     8167
     8168  case 579:
     8169
     8170/* Line 1806 of yacc.c  */
     8171#line 2289 "parser.yy"
     8172    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8173    break;
     8174
     8175  case 580:
     8176
     8177/* Line 1806 of yacc.c  */
     8178#line 2294 "parser.yy"
    80658179    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80668180    break;
    80678181
    8068   case 567:
    8069 
    8070 /* Line 1806 of yacc.c  */
    8071 #line 2210 "parser.yy"
     8182  case 581:
     8183
     8184/* Line 1806 of yacc.c  */
     8185#line 2296 "parser.yy"
    80728186    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80738187    break;
    80748188
    8075   case 568:
    8076 
    8077 /* Line 1806 of yacc.c  */
    8078 #line 2212 "parser.yy"
     8189  case 582:
     8190
     8191/* Line 1806 of yacc.c  */
     8192#line 2298 "parser.yy"
    80798193    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80808194    break;
    80818195
    8082   case 569:
    8083 
    8084 /* Line 1806 of yacc.c  */
    8085 #line 2217 "parser.yy"
     8196  case 583:
     8197
     8198/* Line 1806 of yacc.c  */
     8199#line 2303 "parser.yy"
     8200    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8201    break;
     8202
     8203  case 584:
     8204
     8205/* Line 1806 of yacc.c  */
     8206#line 2305 "parser.yy"
     8207    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8208    break;
     8209
     8210  case 585:
     8211
     8212/* Line 1806 of yacc.c  */
     8213#line 2307 "parser.yy"
     8214    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8215    break;
     8216
     8217  case 589:
     8218
     8219/* Line 1806 of yacc.c  */
     8220#line 2322 "parser.yy"
     8221    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8222    break;
     8223
     8224  case 590:
     8225
     8226/* Line 1806 of yacc.c  */
     8227#line 2324 "parser.yy"
     8228    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8229    break;
     8230
     8231  case 591:
     8232
     8233/* Line 1806 of yacc.c  */
     8234#line 2326 "parser.yy"
     8235    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8236    break;
     8237
     8238  case 592:
     8239
     8240/* Line 1806 of yacc.c  */
     8241#line 2331 "parser.yy"
     8242    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8243    break;
     8244
     8245  case 593:
     8246
     8247/* Line 1806 of yacc.c  */
     8248#line 2333 "parser.yy"
     8249    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8250    break;
     8251
     8252  case 594:
     8253
     8254/* Line 1806 of yacc.c  */
     8255#line 2335 "parser.yy"
     8256    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8257    break;
     8258
     8259  case 595:
     8260
     8261/* Line 1806 of yacc.c  */
     8262#line 2340 "parser.yy"
     8263    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8264    break;
     8265
     8266  case 596:
     8267
     8268/* Line 1806 of yacc.c  */
     8269#line 2342 "parser.yy"
     8270    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8271    break;
     8272
     8273  case 597:
     8274
     8275/* Line 1806 of yacc.c  */
     8276#line 2344 "parser.yy"
     8277    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8278    break;
     8279
     8280  case 598:
     8281
     8282/* Line 1806 of yacc.c  */
     8283#line 2359 "parser.yy"
     8284    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8285    break;
     8286
     8287  case 600:
     8288
     8289/* Line 1806 of yacc.c  */
     8290#line 2362 "parser.yy"
     8291    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8292    break;
     8293
     8294  case 601:
     8295
     8296/* Line 1806 of yacc.c  */
     8297#line 2364 "parser.yy"
     8298    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8299    break;
     8300
     8301  case 603:
     8302
     8303/* Line 1806 of yacc.c  */
     8304#line 2370 "parser.yy"
     8305    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8306    break;
     8307
     8308  case 604:
     8309
     8310/* Line 1806 of yacc.c  */
     8311#line 2375 "parser.yy"
     8312    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8313    break;
     8314
     8315  case 605:
     8316
     8317/* Line 1806 of yacc.c  */
     8318#line 2377 "parser.yy"
     8319    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8320    break;
     8321
     8322  case 606:
     8323
     8324/* Line 1806 of yacc.c  */
     8325#line 2379 "parser.yy"
     8326    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8327    break;
     8328
     8329  case 607:
     8330
     8331/* Line 1806 of yacc.c  */
     8332#line 2384 "parser.yy"
    80868333    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80878334    break;
    80888335
    8089   case 570:
    8090 
    8091 /* Line 1806 of yacc.c  */
    8092 #line 2219 "parser.yy"
     8336  case 608:
     8337
     8338/* Line 1806 of yacc.c  */
     8339#line 2386 "parser.yy"
    80938340    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80948341    break;
    80958342
    8096   case 571:
    8097 
    8098 /* Line 1806 of yacc.c  */
    8099 #line 2221 "parser.yy"
     8343  case 609:
     8344
     8345/* Line 1806 of yacc.c  */
     8346#line 2388 "parser.yy"
    81008347    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81018348    break;
    81028349
    8103   case 572:
    8104 
    8105 /* Line 1806 of yacc.c  */
    8106 #line 2223 "parser.yy"
     8350  case 610:
     8351
     8352/* Line 1806 of yacc.c  */
     8353#line 2390 "parser.yy"
    81078354    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81088355    break;
    81098356
    8110   case 573:
    8111 
    8112 /* Line 1806 of yacc.c  */
    8113 #line 2228 "parser.yy"
     8357  case 611:
     8358
     8359/* Line 1806 of yacc.c  */
     8360#line 2395 "parser.yy"
     8361    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8362    break;
     8363
     8364  case 612:
     8365
     8366/* Line 1806 of yacc.c  */
     8367#line 2397 "parser.yy"
    81148368    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81158369    break;
    81168370
    8117   case 574:
    8118 
    8119 /* Line 1806 of yacc.c  */
    8120 #line 2230 "parser.yy"
     8371  case 613:
     8372
     8373/* Line 1806 of yacc.c  */
     8374#line 2399 "parser.yy"
    81218375    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81228376    break;
    81238377
    8124   case 575:
    8125 
    8126 /* Line 1806 of yacc.c  */
    8127 #line 2239 "parser.yy"
     8378  case 614:
     8379
     8380/* Line 1806 of yacc.c  */
     8381#line 2409 "parser.yy"
    81288382    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81298383    break;
    81308384
    8131   case 577:
    8132 
    8133 /* Line 1806 of yacc.c  */
    8134 #line 2242 "parser.yy"
     8385  case 616:
     8386
     8387/* Line 1806 of yacc.c  */
     8388#line 2412 "parser.yy"
    81358389    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81368390    break;
    81378391
    8138   case 578:
    8139 
    8140 /* Line 1806 of yacc.c  */
    8141 #line 2247 "parser.yy"
     8392  case 617:
     8393
     8394/* Line 1806 of yacc.c  */
     8395#line 2414 "parser.yy"
     8396    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8397    break;
     8398
     8399  case 618:
     8400
     8401/* Line 1806 of yacc.c  */
     8402#line 2419 "parser.yy"
     8403    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8404    break;
     8405
     8406  case 619:
     8407
     8408/* Line 1806 of yacc.c  */
     8409#line 2421 "parser.yy"
     8410    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8411    break;
     8412
     8413  case 620:
     8414
     8415/* Line 1806 of yacc.c  */
     8416#line 2423 "parser.yy"
     8417    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8418    break;
     8419
     8420  case 621:
     8421
     8422/* Line 1806 of yacc.c  */
     8423#line 2428 "parser.yy"
     8424    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8425    break;
     8426
     8427  case 622:
     8428
     8429/* Line 1806 of yacc.c  */
     8430#line 2430 "parser.yy"
     8431    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8432    break;
     8433
     8434  case 623:
     8435
     8436/* Line 1806 of yacc.c  */
     8437#line 2432 "parser.yy"
     8438    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8439    break;
     8440
     8441  case 624:
     8442
     8443/* Line 1806 of yacc.c  */
     8444#line 2434 "parser.yy"
     8445    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8446    break;
     8447
     8448  case 625:
     8449
     8450/* Line 1806 of yacc.c  */
     8451#line 2439 "parser.yy"
    81428452    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81438453    break;
    81448454
    8145   case 579:
    8146 
    8147 /* Line 1806 of yacc.c  */
    8148 #line 2249 "parser.yy"
     8455  case 626:
     8456
     8457/* Line 1806 of yacc.c  */
     8458#line 2441 "parser.yy"
    81498459    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81508460    break;
    81518461
    8152   case 580:
    8153 
    8154 /* Line 1806 of yacc.c  */
    8155 #line 2251 "parser.yy"
     8462  case 627:
     8463
     8464/* Line 1806 of yacc.c  */
     8465#line 2443 "parser.yy"
    81568466    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81578467    break;
    81588468
    8159   case 581:
    8160 
    8161 /* Line 1806 of yacc.c  */
    8162 #line 2256 "parser.yy"
    8163     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8164     break;
    8165 
    8166   case 582:
    8167 
    8168 /* Line 1806 of yacc.c  */
    8169 #line 2258 "parser.yy"
    8170     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8171     break;
    8172 
    8173   case 583:
    8174 
    8175 /* Line 1806 of yacc.c  */
    8176 #line 2260 "parser.yy"
    8177     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8178     break;
    8179 
    8180   case 584:
    8181 
    8182 /* Line 1806 of yacc.c  */
    8183 #line 2265 "parser.yy"
    8184     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8185     break;
    8186 
    8187   case 585:
    8188 
    8189 /* Line 1806 of yacc.c  */
    8190 #line 2267 "parser.yy"
    8191     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8192     break;
    8193 
    8194   case 586:
    8195 
    8196 /* Line 1806 of yacc.c  */
    8197 #line 2269 "parser.yy"
    8198     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8199     break;
    8200 
    8201   case 590:
    8202 
    8203 /* Line 1806 of yacc.c  */
    8204 #line 2284 "parser.yy"
    8205     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8206     break;
    8207 
    8208   case 591:
    8209 
    8210 /* Line 1806 of yacc.c  */
    8211 #line 2286 "parser.yy"
    8212     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8213     break;
    8214 
    8215   case 592:
    8216 
    8217 /* Line 1806 of yacc.c  */
    8218 #line 2288 "parser.yy"
    8219     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8220     break;
    8221 
    8222   case 593:
    8223 
    8224 /* Line 1806 of yacc.c  */
    8225 #line 2293 "parser.yy"
    8226     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8227     break;
    8228 
    8229   case 594:
    8230 
    8231 /* Line 1806 of yacc.c  */
    8232 #line 2295 "parser.yy"
    8233     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8234     break;
    8235 
    8236   case 595:
    8237 
    8238 /* Line 1806 of yacc.c  */
    8239 #line 2297 "parser.yy"
    8240     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8241     break;
    8242 
    8243   case 596:
    8244 
    8245 /* Line 1806 of yacc.c  */
    8246 #line 2302 "parser.yy"
    8247     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8248     break;
    8249 
    8250   case 597:
    8251 
    8252 /* Line 1806 of yacc.c  */
    8253 #line 2304 "parser.yy"
    8254     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8255     break;
    8256 
    8257   case 598:
    8258 
    8259 /* Line 1806 of yacc.c  */
    8260 #line 2306 "parser.yy"
    8261     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8262     break;
    8263 
    8264   case 599:
    8265 
    8266 /* Line 1806 of yacc.c  */
    8267 #line 2321 "parser.yy"
     8469  case 628:
     8470
     8471/* Line 1806 of yacc.c  */
     8472#line 2474 "parser.yy"
    82688473    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82698474    break;
    82708475
    8271   case 601:
    8272 
    8273 /* Line 1806 of yacc.c  */
    8274 #line 2324 "parser.yy"
     8476  case 630:
     8477
     8478/* Line 1806 of yacc.c  */
     8479#line 2477 "parser.yy"
    82758480    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82768481    break;
    82778482
    8278   case 602:
    8279 
    8280 /* Line 1806 of yacc.c  */
    8281 #line 2326 "parser.yy"
     8483  case 631:
     8484
     8485/* Line 1806 of yacc.c  */
     8486#line 2479 "parser.yy"
    82828487    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82838488    break;
    82848489
    8285   case 604:
    8286 
    8287 /* Line 1806 of yacc.c  */
    8288 #line 2332 "parser.yy"
    8289     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8290     break;
    8291 
    8292   case 605:
    8293 
    8294 /* Line 1806 of yacc.c  */
    8295 #line 2337 "parser.yy"
    8296     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8297     break;
    8298 
    8299   case 606:
    8300 
    8301 /* Line 1806 of yacc.c  */
    8302 #line 2339 "parser.yy"
    8303     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8304     break;
    8305 
    8306   case 607:
    8307 
    8308 /* Line 1806 of yacc.c  */
    8309 #line 2341 "parser.yy"
    8310     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8311     break;
    8312 
    8313   case 608:
    8314 
    8315 /* Line 1806 of yacc.c  */
    8316 #line 2346 "parser.yy"
    8317     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8318     break;
    8319 
    8320   case 609:
    8321 
    8322 /* Line 1806 of yacc.c  */
    8323 #line 2348 "parser.yy"
    8324     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8325     break;
    8326 
    8327   case 610:
    8328 
    8329 /* Line 1806 of yacc.c  */
    8330 #line 2350 "parser.yy"
    8331     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8332     break;
    8333 
    8334   case 611:
    8335 
    8336 /* Line 1806 of yacc.c  */
    8337 #line 2352 "parser.yy"
    8338     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8339     break;
    8340 
    8341   case 612:
    8342 
    8343 /* Line 1806 of yacc.c  */
    8344 #line 2357 "parser.yy"
    8345     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8346     break;
    8347 
    8348   case 613:
    8349 
    8350 /* Line 1806 of yacc.c  */
    8351 #line 2359 "parser.yy"
    8352     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8353     break;
    8354 
    8355   case 614:
    8356 
    8357 /* Line 1806 of yacc.c  */
    8358 #line 2361 "parser.yy"
    8359     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8360     break;
    8361 
    8362   case 615:
    8363 
    8364 /* Line 1806 of yacc.c  */
    8365 #line 2371 "parser.yy"
    8366     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8367     break;
    8368 
    8369   case 617:
    8370 
    8371 /* Line 1806 of yacc.c  */
    8372 #line 2374 "parser.yy"
    8373     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8374     break;
    8375 
    8376   case 618:
    8377 
    8378 /* Line 1806 of yacc.c  */
    8379 #line 2376 "parser.yy"
    8380     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8381     break;
    8382 
    8383   case 619:
    8384 
    8385 /* Line 1806 of yacc.c  */
    8386 #line 2381 "parser.yy"
    8387     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8388     break;
    8389 
    8390   case 620:
    8391 
    8392 /* Line 1806 of yacc.c  */
    8393 #line 2383 "parser.yy"
    8394     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8395     break;
    8396 
    8397   case 621:
    8398 
    8399 /* Line 1806 of yacc.c  */
    8400 #line 2385 "parser.yy"
    8401     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8402     break;
    8403 
    8404   case 622:
    8405 
    8406 /* Line 1806 of yacc.c  */
    8407 #line 2390 "parser.yy"
    8408     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8409     break;
    8410 
    8411   case 623:
    8412 
    8413 /* Line 1806 of yacc.c  */
    8414 #line 2392 "parser.yy"
    8415     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8416     break;
    8417 
    8418   case 624:
    8419 
    8420 /* Line 1806 of yacc.c  */
    8421 #line 2394 "parser.yy"
    8422     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8423     break;
    8424 
    8425   case 625:
    8426 
    8427 /* Line 1806 of yacc.c  */
    8428 #line 2396 "parser.yy"
    8429     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8430     break;
    8431 
    8432   case 626:
    8433 
    8434 /* Line 1806 of yacc.c  */
    8435 #line 2401 "parser.yy"
    8436     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8437     break;
    8438 
    8439   case 627:
    8440 
    8441 /* Line 1806 of yacc.c  */
    8442 #line 2403 "parser.yy"
    8443     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8444     break;
    8445 
    8446   case 628:
    8447 
    8448 /* Line 1806 of yacc.c  */
    8449 #line 2405 "parser.yy"
    8450     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8451     break;
    8452 
    8453   case 629:
    8454 
    8455 /* Line 1806 of yacc.c  */
    8456 #line 2436 "parser.yy"
    8457     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8458     break;
    8459 
    8460   case 631:
    8461 
    8462 /* Line 1806 of yacc.c  */
    8463 #line 2439 "parser.yy"
    8464     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8465     break;
    8466 
    84678490  case 632:
    84688491
    84698492/* Line 1806 of yacc.c  */
    8470 #line 2441 "parser.yy"
    8471     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8472     break;
    8473 
    8474   case 633:
    8475 
    8476 /* Line 1806 of yacc.c  */
    8477 #line 2446 "parser.yy"
     8493#line 2484 "parser.yy"
    84788494    {
    84798495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84828498    break;
    84838499
    8484   case 634:
    8485 
    8486 /* Line 1806 of yacc.c  */
    8487 #line 2451 "parser.yy"
     8500  case 633:
     8501
     8502/* Line 1806 of yacc.c  */
     8503#line 2489 "parser.yy"
    84888504    {
    84898505                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84928508    break;
    84938509
     8510  case 634:
     8511
     8512/* Line 1806 of yacc.c  */
     8513#line 2497 "parser.yy"
     8514    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8515    break;
     8516
    84948517  case 635:
    84958518
    84968519/* Line 1806 of yacc.c  */
    8497 #line 2459 "parser.yy"
     8520#line 2499 "parser.yy"
     8521    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8522    break;
     8523
     8524  case 636:
     8525
     8526/* Line 1806 of yacc.c  */
     8527#line 2501 "parser.yy"
     8528    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8529    break;
     8530
     8531  case 637:
     8532
     8533/* Line 1806 of yacc.c  */
     8534#line 2506 "parser.yy"
     8535    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8536    break;
     8537
     8538  case 638:
     8539
     8540/* Line 1806 of yacc.c  */
     8541#line 2508 "parser.yy"
     8542    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8543    break;
     8544
     8545  case 639:
     8546
     8547/* Line 1806 of yacc.c  */
     8548#line 2513 "parser.yy"
     8549    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8550    break;
     8551
     8552  case 640:
     8553
     8554/* Line 1806 of yacc.c  */
     8555#line 2515 "parser.yy"
     8556    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8557    break;
     8558
     8559  case 642:
     8560
     8561/* Line 1806 of yacc.c  */
     8562#line 2530 "parser.yy"
     8563    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8564    break;
     8565
     8566  case 643:
     8567
     8568/* Line 1806 of yacc.c  */
     8569#line 2532 "parser.yy"
     8570    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8571    break;
     8572
     8573  case 644:
     8574
     8575/* Line 1806 of yacc.c  */
     8576#line 2537 "parser.yy"
     8577    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8578    break;
     8579
     8580  case 645:
     8581
     8582/* Line 1806 of yacc.c  */
     8583#line 2539 "parser.yy"
     8584    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8585    break;
     8586
     8587  case 646:
     8588
     8589/* Line 1806 of yacc.c  */
     8590#line 2541 "parser.yy"
    84988591    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84998592    break;
    85008593
    8501   case 636:
    8502 
    8503 /* Line 1806 of yacc.c  */
    8504 #line 2461 "parser.yy"
     8594  case 647:
     8595
     8596/* Line 1806 of yacc.c  */
     8597#line 2543 "parser.yy"
    85058598    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85068599    break;
    85078600
    8508   case 637:
    8509 
    8510 /* Line 1806 of yacc.c  */
    8511 #line 2463 "parser.yy"
     8601  case 648:
     8602
     8603/* Line 1806 of yacc.c  */
     8604#line 2545 "parser.yy"
    85128605    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85138606    break;
    85148607
    8515   case 638:
    8516 
    8517 /* Line 1806 of yacc.c  */
    8518 #line 2468 "parser.yy"
     8608  case 650:
     8609
     8610/* Line 1806 of yacc.c  */
     8611#line 2551 "parser.yy"
     8612    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8613    break;
     8614
     8615  case 651:
     8616
     8617/* Line 1806 of yacc.c  */
     8618#line 2553 "parser.yy"
     8619    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8620    break;
     8621
     8622  case 652:
     8623
     8624/* Line 1806 of yacc.c  */
     8625#line 2555 "parser.yy"
     8626    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8627    break;
     8628
     8629  case 653:
     8630
     8631/* Line 1806 of yacc.c  */
     8632#line 2560 "parser.yy"
     8633    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8634    break;
     8635
     8636  case 654:
     8637
     8638/* Line 1806 of yacc.c  */
     8639#line 2562 "parser.yy"
     8640    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8641    break;
     8642
     8643  case 655:
     8644
     8645/* Line 1806 of yacc.c  */
     8646#line 2564 "parser.yy"
     8647    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8648    break;
     8649
     8650  case 656:
     8651
     8652/* Line 1806 of yacc.c  */
     8653#line 2570 "parser.yy"
     8654    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8655    break;
     8656
     8657  case 657:
     8658
     8659/* Line 1806 of yacc.c  */
     8660#line 2572 "parser.yy"
     8661    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8662    break;
     8663
     8664  case 659:
     8665
     8666/* Line 1806 of yacc.c  */
     8667#line 2578 "parser.yy"
     8668    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8669    break;
     8670
     8671  case 660:
     8672
     8673/* Line 1806 of yacc.c  */
     8674#line 2580 "parser.yy"
     8675    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8676    break;
     8677
     8678  case 661:
     8679
     8680/* Line 1806 of yacc.c  */
     8681#line 2582 "parser.yy"
     8682    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8683    break;
     8684
     8685  case 662:
     8686
     8687/* Line 1806 of yacc.c  */
     8688#line 2584 "parser.yy"
     8689    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8690    break;
     8691
     8692  case 664:
     8693
     8694/* Line 1806 of yacc.c  */
     8695#line 2599 "parser.yy"
     8696    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8697    break;
     8698
     8699  case 665:
     8700
     8701/* Line 1806 of yacc.c  */
     8702#line 2601 "parser.yy"
     8703    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8704    break;
     8705
     8706  case 666:
     8707
     8708/* Line 1806 of yacc.c  */
     8709#line 2606 "parser.yy"
     8710    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8711    break;
     8712
     8713  case 667:
     8714
     8715/* Line 1806 of yacc.c  */
     8716#line 2608 "parser.yy"
     8717    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8718    break;
     8719
     8720  case 668:
     8721
     8722/* Line 1806 of yacc.c  */
     8723#line 2610 "parser.yy"
     8724    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8725    break;
     8726
     8727  case 669:
     8728
     8729/* Line 1806 of yacc.c  */
     8730#line 2612 "parser.yy"
     8731    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8732    break;
     8733
     8734  case 670:
     8735
     8736/* Line 1806 of yacc.c  */
     8737#line 2614 "parser.yy"
     8738    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8739    break;
     8740
     8741  case 672:
     8742
     8743/* Line 1806 of yacc.c  */
     8744#line 2620 "parser.yy"
     8745    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8746    break;
     8747
     8748  case 673:
     8749
     8750/* Line 1806 of yacc.c  */
     8751#line 2622 "parser.yy"
     8752    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8753    break;
     8754
     8755  case 674:
     8756
     8757/* Line 1806 of yacc.c  */
     8758#line 2624 "parser.yy"
     8759    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8760    break;
     8761
     8762  case 675:
     8763
     8764/* Line 1806 of yacc.c  */
     8765#line 2629 "parser.yy"
     8766    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8767    break;
     8768
     8769  case 676:
     8770
     8771/* Line 1806 of yacc.c  */
     8772#line 2631 "parser.yy"
     8773    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8774    break;
     8775
     8776  case 677:
     8777
     8778/* Line 1806 of yacc.c  */
     8779#line 2633 "parser.yy"
     8780    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8781    break;
     8782
     8783  case 679:
     8784
     8785/* Line 1806 of yacc.c  */
     8786#line 2640 "parser.yy"
    85198787    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85208788    break;
    85218789
    8522   case 639:
    8523 
    8524 /* Line 1806 of yacc.c  */
    8525 #line 2470 "parser.yy"
     8790  case 681:
     8791
     8792/* Line 1806 of yacc.c  */
     8793#line 2651 "parser.yy"
     8794    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8795    break;
     8796
     8797  case 682:
     8798
     8799/* Line 1806 of yacc.c  */
     8800#line 2654 "parser.yy"
     8801    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8802    break;
     8803
     8804  case 683:
     8805
     8806/* Line 1806 of yacc.c  */
     8807#line 2656 "parser.yy"
     8808    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8809    break;
     8810
     8811  case 684:
     8812
     8813/* Line 1806 of yacc.c  */
     8814#line 2659 "parser.yy"
     8815    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8816    break;
     8817
     8818  case 685:
     8819
     8820/* Line 1806 of yacc.c  */
     8821#line 2661 "parser.yy"
     8822    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8823    break;
     8824
     8825  case 686:
     8826
     8827/* Line 1806 of yacc.c  */
     8828#line 2663 "parser.yy"
     8829    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8830    break;
     8831
     8832  case 688:
     8833
     8834/* Line 1806 of yacc.c  */
     8835#line 2677 "parser.yy"
     8836    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8837    break;
     8838
     8839  case 689:
     8840
     8841/* Line 1806 of yacc.c  */
     8842#line 2679 "parser.yy"
     8843    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8844    break;
     8845
     8846  case 690:
     8847
     8848/* Line 1806 of yacc.c  */
     8849#line 2684 "parser.yy"
     8850    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8851    break;
     8852
     8853  case 691:
     8854
     8855/* Line 1806 of yacc.c  */
     8856#line 2686 "parser.yy"
     8857    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8858    break;
     8859
     8860  case 692:
     8861
     8862/* Line 1806 of yacc.c  */
     8863#line 2688 "parser.yy"
     8864    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8865    break;
     8866
     8867  case 693:
     8868
     8869/* Line 1806 of yacc.c  */
     8870#line 2690 "parser.yy"
     8871    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8872    break;
     8873
     8874  case 694:
     8875
     8876/* Line 1806 of yacc.c  */
     8877#line 2692 "parser.yy"
     8878    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8879    break;
     8880
     8881  case 696:
     8882
     8883/* Line 1806 of yacc.c  */
     8884#line 2698 "parser.yy"
    85268885    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85278886    break;
    85288887
    8529   case 640:
    8530 
    8531 /* Line 1806 of yacc.c  */
    8532 #line 2475 "parser.yy"
    8533     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8534     break;
    8535 
    8536   case 641:
    8537 
    8538 /* Line 1806 of yacc.c  */
    8539 #line 2477 "parser.yy"
     8888  case 697:
     8889
     8890/* Line 1806 of yacc.c  */
     8891#line 2700 "parser.yy"
     8892    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8893    break;
     8894
     8895  case 698:
     8896
     8897/* Line 1806 of yacc.c  */
     8898#line 2702 "parser.yy"
     8899    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8900    break;
     8901
     8902  case 699:
     8903
     8904/* Line 1806 of yacc.c  */
     8905#line 2707 "parser.yy"
    85408906    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85418907    break;
    85428908
    8543   case 643:
    8544 
    8545 /* Line 1806 of yacc.c  */
    8546 #line 2492 "parser.yy"
    8547     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8548     break;
    8549 
    8550   case 644:
    8551 
    8552 /* Line 1806 of yacc.c  */
    8553 #line 2494 "parser.yy"
    8554     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8555     break;
    8556 
    8557   case 645:
    8558 
    8559 /* Line 1806 of yacc.c  */
    8560 #line 2499 "parser.yy"
    8561     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8562     break;
    8563 
    8564   case 646:
    8565 
    8566 /* Line 1806 of yacc.c  */
    8567 #line 2501 "parser.yy"
    8568     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8569     break;
    8570 
    8571   case 647:
    8572 
    8573 /* Line 1806 of yacc.c  */
    8574 #line 2503 "parser.yy"
    8575     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8576     break;
    8577 
    8578   case 648:
    8579 
    8580 /* Line 1806 of yacc.c  */
    8581 #line 2505 "parser.yy"
    8582     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8583     break;
    8584 
    8585   case 649:
    8586 
    8587 /* Line 1806 of yacc.c  */
    8588 #line 2507 "parser.yy"
     8909  case 700:
     8910
     8911/* Line 1806 of yacc.c  */
     8912#line 2709 "parser.yy"
    85898913    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85908914    break;
    85918915
    8592   case 651:
    8593 
    8594 /* Line 1806 of yacc.c  */
    8595 #line 2513 "parser.yy"
    8596     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8597     break;
    8598 
    8599   case 652:
    8600 
    8601 /* Line 1806 of yacc.c  */
    8602 #line 2515 "parser.yy"
    8603     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8604     break;
    8605 
    8606   case 653:
    8607 
    8608 /* Line 1806 of yacc.c  */
    8609 #line 2517 "parser.yy"
    8610     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8611     break;
    8612 
    8613   case 654:
    8614 
    8615 /* Line 1806 of yacc.c  */
    8616 #line 2522 "parser.yy"
    8617     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8618     break;
    8619 
    8620   case 655:
    8621 
    8622 /* Line 1806 of yacc.c  */
    8623 #line 2524 "parser.yy"
    8624     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8625     break;
    8626 
    8627   case 656:
    8628 
    8629 /* Line 1806 of yacc.c  */
    8630 #line 2526 "parser.yy"
    8631     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8632     break;
    8633 
    8634   case 657:
    8635 
    8636 /* Line 1806 of yacc.c  */
    8637 #line 2532 "parser.yy"
    8638     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8639     break;
    8640 
    8641   case 658:
    8642 
    8643 /* Line 1806 of yacc.c  */
    8644 #line 2534 "parser.yy"
    8645     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8646     break;
    8647 
    8648   case 660:
    8649 
    8650 /* Line 1806 of yacc.c  */
    8651 #line 2540 "parser.yy"
    8652     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8653     break;
    8654 
    8655   case 661:
    8656 
    8657 /* Line 1806 of yacc.c  */
    8658 #line 2542 "parser.yy"
    8659     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8660     break;
    8661 
    8662   case 662:
    8663 
    8664 /* Line 1806 of yacc.c  */
    8665 #line 2544 "parser.yy"
    8666     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8667     break;
    8668 
    8669   case 663:
    8670 
    8671 /* Line 1806 of yacc.c  */
    8672 #line 2546 "parser.yy"
    8673     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8674     break;
    8675 
    8676   case 665:
    8677 
    8678 /* Line 1806 of yacc.c  */
    8679 #line 2561 "parser.yy"
    8680     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8681     break;
    8682 
    8683   case 666:
    8684 
    8685 /* Line 1806 of yacc.c  */
    8686 #line 2563 "parser.yy"
    8687     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8688     break;
    8689 
    8690   case 667:
    8691 
    8692 /* Line 1806 of yacc.c  */
    8693 #line 2568 "parser.yy"
    8694     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8695     break;
    8696 
    8697   case 668:
    8698 
    8699 /* Line 1806 of yacc.c  */
    8700 #line 2570 "parser.yy"
    8701     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8702     break;
    8703 
    8704   case 669:
    8705 
    8706 /* Line 1806 of yacc.c  */
    8707 #line 2572 "parser.yy"
    8708     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8709     break;
    8710 
    8711   case 670:
    8712 
    8713 /* Line 1806 of yacc.c  */
    8714 #line 2574 "parser.yy"
    8715     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8716     break;
    8717 
    8718   case 671:
    8719 
    8720 /* Line 1806 of yacc.c  */
    8721 #line 2576 "parser.yy"
    8722     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8723     break;
    8724 
    8725   case 673:
    8726 
    8727 /* Line 1806 of yacc.c  */
    8728 #line 2582 "parser.yy"
    8729     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8730     break;
    8731 
    8732   case 674:
    8733 
    8734 /* Line 1806 of yacc.c  */
    8735 #line 2584 "parser.yy"
    8736     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8737     break;
    8738 
    8739   case 675:
    8740 
    8741 /* Line 1806 of yacc.c  */
    8742 #line 2586 "parser.yy"
    8743     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8744     break;
    8745 
    8746   case 676:
    8747 
    8748 /* Line 1806 of yacc.c  */
    8749 #line 2591 "parser.yy"
    8750     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8751     break;
    8752 
    8753   case 677:
    8754 
    8755 /* Line 1806 of yacc.c  */
    8756 #line 2593 "parser.yy"
    8757     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8758     break;
    8759 
    8760   case 678:
    8761 
    8762 /* Line 1806 of yacc.c  */
    8763 #line 2595 "parser.yy"
    8764     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8765     break;
    8766 
    8767   case 680:
    8768 
    8769 /* Line 1806 of yacc.c  */
    8770 #line 2602 "parser.yy"
    8771     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8772     break;
    8773 
    8774   case 682:
    8775 
    8776 /* Line 1806 of yacc.c  */
    8777 #line 2613 "parser.yy"
    8778     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8779     break;
    8780 
    8781   case 683:
    8782 
    8783 /* Line 1806 of yacc.c  */
    8784 #line 2616 "parser.yy"
     8916  case 703:
     8917
     8918/* Line 1806 of yacc.c  */
     8919#line 2719 "parser.yy"
     8920    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8921    break;
     8922
     8923  case 706:
     8924
     8925/* Line 1806 of yacc.c  */
     8926#line 2729 "parser.yy"
     8927    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8928    break;
     8929
     8930  case 707:
     8931
     8932/* Line 1806 of yacc.c  */
     8933#line 2731 "parser.yy"
     8934    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8935    break;
     8936
     8937  case 708:
     8938
     8939/* Line 1806 of yacc.c  */
     8940#line 2733 "parser.yy"
     8941    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8942    break;
     8943
     8944  case 709:
     8945
     8946/* Line 1806 of yacc.c  */
     8947#line 2735 "parser.yy"
     8948    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8949    break;
     8950
     8951  case 710:
     8952
     8953/* Line 1806 of yacc.c  */
     8954#line 2737 "parser.yy"
     8955    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8956    break;
     8957
     8958  case 711:
     8959
     8960/* Line 1806 of yacc.c  */
     8961#line 2739 "parser.yy"
     8962    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8963    break;
     8964
     8965  case 712:
     8966
     8967/* Line 1806 of yacc.c  */
     8968#line 2746 "parser.yy"
     8969    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8970    break;
     8971
     8972  case 713:
     8973
     8974/* Line 1806 of yacc.c  */
     8975#line 2748 "parser.yy"
     8976    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8977    break;
     8978
     8979  case 714:
     8980
     8981/* Line 1806 of yacc.c  */
     8982#line 2750 "parser.yy"
     8983    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8984    break;
     8985
     8986  case 715:
     8987
     8988/* Line 1806 of yacc.c  */
     8989#line 2752 "parser.yy"
     8990    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8991    break;
     8992
     8993  case 716:
     8994
     8995/* Line 1806 of yacc.c  */
     8996#line 2754 "parser.yy"
     8997    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8998    break;
     8999
     9000  case 717:
     9001
     9002/* Line 1806 of yacc.c  */
     9003#line 2756 "parser.yy"
     9004    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9005    break;
     9006
     9007  case 718:
     9008
     9009/* Line 1806 of yacc.c  */
     9010#line 2758 "parser.yy"
     9011    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9012    break;
     9013
     9014  case 719:
     9015
     9016/* Line 1806 of yacc.c  */
     9017#line 2760 "parser.yy"
     9018    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9019    break;
     9020
     9021  case 720:
     9022
     9023/* Line 1806 of yacc.c  */
     9024#line 2762 "parser.yy"
     9025    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9026    break;
     9027
     9028  case 721:
     9029
     9030/* Line 1806 of yacc.c  */
     9031#line 2764 "parser.yy"
     9032    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9033    break;
     9034
     9035  case 722:
     9036
     9037/* Line 1806 of yacc.c  */
     9038#line 2769 "parser.yy"
    87859039    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87869040    break;
    87879041
    8788   case 684:
    8789 
    8790 /* Line 1806 of yacc.c  */
    8791 #line 2618 "parser.yy"
    8792     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8793     break;
    8794 
    8795   case 685:
    8796 
    8797 /* Line 1806 of yacc.c  */
    8798 #line 2621 "parser.yy"
     9042  case 723:
     9043
     9044/* Line 1806 of yacc.c  */
     9045#line 2771 "parser.yy"
    87999046    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88009047    break;
    88019048
    8802   case 686:
    8803 
    8804 /* Line 1806 of yacc.c  */
    8805 #line 2623 "parser.yy"
    8806     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8807     break;
    8808 
    8809   case 687:
    8810 
    8811 /* Line 1806 of yacc.c  */
    8812 #line 2625 "parser.yy"
    8813     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8814     break;
    8815 
    8816   case 689:
    8817 
    8818 /* Line 1806 of yacc.c  */
    8819 #line 2639 "parser.yy"
    8820     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8821     break;
    8822 
    8823   case 690:
    8824 
    8825 /* Line 1806 of yacc.c  */
    8826 #line 2641 "parser.yy"
    8827     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8828     break;
    8829 
    8830   case 691:
    8831 
    8832 /* Line 1806 of yacc.c  */
    8833 #line 2646 "parser.yy"
    8834     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8835     break;
    8836 
    8837   case 692:
    8838 
    8839 /* Line 1806 of yacc.c  */
    8840 #line 2648 "parser.yy"
    8841     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8842     break;
    8843 
    8844   case 693:
    8845 
    8846 /* Line 1806 of yacc.c  */
    8847 #line 2650 "parser.yy"
    8848     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8849     break;
    8850 
    8851   case 694:
    8852 
    8853 /* Line 1806 of yacc.c  */
    8854 #line 2652 "parser.yy"
    8855     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8856     break;
    8857 
    8858   case 695:
    8859 
    8860 /* Line 1806 of yacc.c  */
    8861 #line 2654 "parser.yy"
    8862     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8863     break;
    8864 
    8865   case 697:
    8866 
    8867 /* Line 1806 of yacc.c  */
    8868 #line 2660 "parser.yy"
    8869     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8870     break;
    8871 
    8872   case 698:
    8873 
    8874 /* Line 1806 of yacc.c  */
    8875 #line 2662 "parser.yy"
    8876     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8877     break;
    8878 
    8879   case 699:
    8880 
    8881 /* Line 1806 of yacc.c  */
    8882 #line 2664 "parser.yy"
    8883     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8884     break;
    8885 
    8886   case 700:
    8887 
    8888 /* Line 1806 of yacc.c  */
    8889 #line 2669 "parser.yy"
    8890     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8891     break;
    8892 
    8893   case 701:
    8894 
    8895 /* Line 1806 of yacc.c  */
    8896 #line 2671 "parser.yy"
    8897     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8898     break;
    8899 
    8900   case 704:
    8901 
    8902 /* Line 1806 of yacc.c  */
    8903 #line 2681 "parser.yy"
     9049  case 724:
     9050
     9051/* Line 1806 of yacc.c  */
     9052#line 2776 "parser.yy"
     9053    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9054    break;
     9055
     9056  case 725:
     9057
     9058/* Line 1806 of yacc.c  */
     9059#line 2778 "parser.yy"
     9060    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9061    break;
     9062
     9063  case 727:
     9064
     9065/* Line 1806 of yacc.c  */
     9066#line 2805 "parser.yy"
    89049067    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89059068    break;
    89069069
    8907   case 707:
    8908 
    8909 /* Line 1806 of yacc.c  */
    8910 #line 2691 "parser.yy"
     9070  case 731:
     9071
     9072/* Line 1806 of yacc.c  */
     9073#line 2816 "parser.yy"
    89119074    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89129075    break;
    89139076
    8914   case 708:
    8915 
    8916 /* Line 1806 of yacc.c  */
    8917 #line 2693 "parser.yy"
     9077  case 732:
     9078
     9079/* Line 1806 of yacc.c  */
     9080#line 2818 "parser.yy"
    89189081    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89199082    break;
    89209083
    8921   case 709:
    8922 
    8923 /* Line 1806 of yacc.c  */
    8924 #line 2695 "parser.yy"
     9084  case 733:
     9085
     9086/* Line 1806 of yacc.c  */
     9087#line 2820 "parser.yy"
    89259088    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89269089    break;
    89279090
    8928   case 710:
    8929 
    8930 /* Line 1806 of yacc.c  */
    8931 #line 2697 "parser.yy"
     9091  case 734:
     9092
     9093/* Line 1806 of yacc.c  */
     9094#line 2822 "parser.yy"
    89329095    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89339096    break;
    89349097
    8935   case 711:
    8936 
    8937 /* Line 1806 of yacc.c  */
    8938 #line 2699 "parser.yy"
     9098  case 735:
     9099
     9100/* Line 1806 of yacc.c  */
     9101#line 2824 "parser.yy"
    89399102    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89409103    break;
    89419104
    8942   case 712:
    8943 
    8944 /* Line 1806 of yacc.c  */
    8945 #line 2701 "parser.yy"
     9105  case 736:
     9106
     9107/* Line 1806 of yacc.c  */
     9108#line 2826 "parser.yy"
    89469109    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89479110    break;
    89489111
    8949   case 713:
    8950 
    8951 /* Line 1806 of yacc.c  */
    8952 #line 2708 "parser.yy"
     9112  case 737:
     9113
     9114/* Line 1806 of yacc.c  */
     9115#line 2833 "parser.yy"
    89539116    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89549117    break;
    89559118
    8956   case 714:
    8957 
    8958 /* Line 1806 of yacc.c  */
    8959 #line 2710 "parser.yy"
     9119  case 738:
     9120
     9121/* Line 1806 of yacc.c  */
     9122#line 2835 "parser.yy"
     9123    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9124    break;
     9125
     9126  case 739:
     9127
     9128/* Line 1806 of yacc.c  */
     9129#line 2837 "parser.yy"
    89609130    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89619131    break;
    89629132
    8963   case 715:
    8964 
    8965 /* Line 1806 of yacc.c  */
    8966 #line 2712 "parser.yy"
     9133  case 740:
     9134
     9135/* Line 1806 of yacc.c  */
     9136#line 2839 "parser.yy"
     9137    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9138    break;
     9139
     9140  case 741:
     9141
     9142/* Line 1806 of yacc.c  */
     9143#line 2841 "parser.yy"
    89679144    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89689145    break;
    89699146
    8970   case 716:
    8971 
    8972 /* Line 1806 of yacc.c  */
    8973 #line 2714 "parser.yy"
    8974     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8975     break;
    8976 
    8977   case 717:
    8978 
    8979 /* Line 1806 of yacc.c  */
    8980 #line 2716 "parser.yy"
     9147  case 742:
     9148
     9149/* Line 1806 of yacc.c  */
     9150#line 2843 "parser.yy"
    89819151    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89829152    break;
    89839153
    8984   case 718:
    8985 
    8986 /* Line 1806 of yacc.c  */
    8987 #line 2718 "parser.yy"
    8988     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8989     break;
    8990 
    8991   case 719:
    8992 
    8993 /* Line 1806 of yacc.c  */
    8994 #line 2720 "parser.yy"
    8995     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8996     break;
    8997 
    8998   case 720:
    8999 
    9000 /* Line 1806 of yacc.c  */
    9001 #line 2722 "parser.yy"
    9002     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9003     break;
    9004 
    9005   case 721:
    9006 
    9007 /* Line 1806 of yacc.c  */
    9008 #line 2724 "parser.yy"
    9009     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9010     break;
    9011 
    9012   case 722:
    9013 
    9014 /* Line 1806 of yacc.c  */
    9015 #line 2726 "parser.yy"
    9016     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9017     break;
    9018 
    9019   case 723:
    9020 
    9021 /* Line 1806 of yacc.c  */
    9022 #line 2731 "parser.yy"
    9023     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    9024     break;
    9025 
    9026   case 724:
    9027 
    9028 /* Line 1806 of yacc.c  */
    9029 #line 2733 "parser.yy"
    9030     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    9031     break;
    9032 
    9033   case 725:
    9034 
    9035 /* Line 1806 of yacc.c  */
    9036 #line 2738 "parser.yy"
    9037     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9038     break;
    9039 
    9040   case 726:
    9041 
    9042 /* Line 1806 of yacc.c  */
    9043 #line 2740 "parser.yy"
    9044     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    9045     break;
    9046 
    9047   case 728:
    9048 
    9049 /* Line 1806 of yacc.c  */
    9050 #line 2767 "parser.yy"
    9051     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    9052     break;
    9053 
    9054   case 732:
    9055 
    9056 /* Line 1806 of yacc.c  */
    9057 #line 2778 "parser.yy"
    9058     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9059     break;
    9060 
    9061   case 733:
    9062 
    9063 /* Line 1806 of yacc.c  */
    9064 #line 2780 "parser.yy"
    9065     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9066     break;
    9067 
    9068   case 734:
    9069 
    9070 /* Line 1806 of yacc.c  */
    9071 #line 2782 "parser.yy"
    9072     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9073     break;
    9074 
    9075   case 735:
    9076 
    9077 /* Line 1806 of yacc.c  */
    9078 #line 2784 "parser.yy"
    9079     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9080     break;
    9081 
    9082   case 736:
    9083 
    9084 /* Line 1806 of yacc.c  */
    9085 #line 2786 "parser.yy"
    9086     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9087     break;
    9088 
    9089   case 737:
    9090 
    9091 /* Line 1806 of yacc.c  */
    9092 #line 2788 "parser.yy"
    9093     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9094     break;
    9095 
    9096   case 738:
    9097 
    9098 /* Line 1806 of yacc.c  */
    9099 #line 2795 "parser.yy"
    9100     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9101     break;
    9102 
    9103   case 739:
    9104 
    9105 /* Line 1806 of yacc.c  */
    9106 #line 2797 "parser.yy"
    9107     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9108     break;
    9109 
    9110   case 740:
    9111 
    9112 /* Line 1806 of yacc.c  */
    9113 #line 2799 "parser.yy"
    9114     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9115     break;
    9116 
    9117   case 741:
    9118 
    9119 /* Line 1806 of yacc.c  */
    9120 #line 2801 "parser.yy"
    9121     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9122     break;
    9123 
    9124   case 742:
    9125 
    9126 /* Line 1806 of yacc.c  */
    9127 #line 2803 "parser.yy"
    9128     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9129     break;
    9130 
    91319154  case 743:
    91329155
    91339156/* Line 1806 of yacc.c  */
    9134 #line 2805 "parser.yy"
    9135     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9157#line 2848 "parser.yy"
     9158    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91369159    break;
    91379160
     
    91399162
    91409163/* Line 1806 of yacc.c  */
    9141 #line 2810 "parser.yy"
    9142     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9164#line 2853 "parser.yy"
     9165    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    91439166    break;
    91449167
     
    91469169
    91479170/* Line 1806 of yacc.c  */
    9148 #line 2815 "parser.yy"
    9149     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     9171#line 2855 "parser.yy"
     9172    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91509173    break;
    91519174
     
    91539176
    91549177/* Line 1806 of yacc.c  */
    9155 #line 2817 "parser.yy"
     9178#line 2857 "parser.yy"
    91569179    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91579180    break;
    91589181
    9159   case 747:
    9160 
    9161 /* Line 1806 of yacc.c  */
    9162 #line 2819 "parser.yy"
    9163     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9182  case 749:
     9183
     9184/* Line 1806 of yacc.c  */
     9185#line 2881 "parser.yy"
     9186    { (yyval.en) = 0; }
    91649187    break;
    91659188
     
    91679190
    91689191/* Line 1806 of yacc.c  */
    9169 #line 2843 "parser.yy"
    9170     { (yyval.en) = 0; }
    9171     break;
    9172 
    9173   case 751:
    9174 
    9175 /* Line 1806 of yacc.c  */
    9176 #line 2845 "parser.yy"
     9192#line 2883 "parser.yy"
    91779193    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91789194    break;
     
    91819197
    91829198/* Line 1806 of yacc.c  */
    9183 #line 9184 "Parser/parser.cc"
     9199#line 9200 "Parser/parser.cc"
    91849200      default: break;
    91859201    }
     
    94129428
    94139429/* Line 2067 of yacc.c  */
    9414 #line 2848 "parser.yy"
     9430#line 2886 "parser.yy"
    94159431
    94169432// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.