compiler/libec; ecere; ide: Safer default virtual method calls
[sdk] / compiler / bootstrap / libec / bootstrap / grammar.c
1 /* Code generated from eC source file: grammar.ec */
2 #if defined(_WIN32)
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
6 #else
7 #define __runtimePlatform 2
8 #endif
9 #if defined(__GNUC__)
10 typedef long long int64;
11 typedef unsigned long long uint64;
12 #ifndef _WIN32
13 #define __declspec(x)
14 #endif
15 #elif defined(__TINYC__)
16 #include <stdarg.h>
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
20 #ifdef _WIN32
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
24 #else
25 #define __declspec(x)
26 #endif
27 typedef long long int64;
28 typedef unsigned long long uint64;
29 #else
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
32 #endif
33 #ifdef __BIG_ENDIAN__
34 #define __ENDIAN_PAD(x) (8 - (x))
35 #else
36 #define __ENDIAN_PAD(x) 0
37 #endif
38 #if defined(_WIN32)
39 #   if defined(__GNUC__) || defined(__TINYC__)
40 #      define ecere_stdcall __attribute__((__stdcall__))
41 #      define ecere_gcc_struct __attribute__((gcc_struct))
42 #   else
43 #      define ecere_stdcall __stdcall
44 #      define ecere_gcc_struct
45 #   endif
46 #else
47 #   define ecere_stdcall
48 #   define ecere_gcc_struct
49 #endif
50 #include <stdint.h>
51 #include <sys/types.h>
52 enum yytokentype
53 {
54 IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372, WIDE_STRING_LITERAL = 373, BUILTIN_OFFSETOF = 374
55 };
56
57 extern char * yytext;
58
59 int yylex();
60
61 int yyerror();
62
63 unsigned int guess;
64
65 unsigned int deleteWatchable = 0;
66
67 int memberAccessStack[256];
68
69 int defaultMemberAccess = -1;
70
71 typedef unsigned char yytype_uint8;
72
73 typedef signed char yytype_int8;
74
75 typedef unsigned short int yytype_uint16;
76
77 typedef short int yytype_int16;
78
79 void * malloc(size_t);
80
81 void free(void *);
82
83 static const yytype_uint8 yytranslate[] =
84 {
85 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 139, 2, 2, 133, 141, 136, 2, 123, 124, 120, 137, 128, 138, 131, 140, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 132, 126, 121, 127, 122, 144, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 134, 2, 135, 142, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 130, 143, 129, 125, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119
86 };
87
88 static const yytype_uint16 yyprhs[] =
89 {
90 0, 0, 3, 6, 9, 11, 14, 16, 18, 20, 25, 30, 33, 35, 39, 44, 48, 51, 54, 56, 60, 63, 66, 69, 72, 75, 78, 81, 85, 88, 90, 93, 95, 98, 101, 104, 107, 110, 113, 115, 117, 121, 123, 127, 131, 133, 135, 139, 143, 145, 149, 153, 157, 161, 163, 166, 169, 171, 173, 176, 179, 182, 185, 188, 191, 193, 195, 197, 200, 203, 205, 208, 211, 214, 217, 219, 222, 225, 229, 234, 240, 245, 249, 254, 257, 261, 266, 272, 277, 281, 286, 292, 298, 303, 306, 310, 314, 318, 322, 325, 330, 334, 338, 341, 346, 350, 353, 357, 360, 364, 367, 369, 372, 376, 380, 384, 387, 389, 393, 397, 399, 403, 407, 410, 415, 421, 425, 430, 434, 436, 440, 444, 448, 451, 455, 458, 463, 469, 473, 478, 482, 484, 488, 492, 495, 497, 500, 503, 506, 508, 511, 517, 525, 535, 542, 551, 556, 563, 565, 568, 572, 577, 580, 583, 585, 587, 590, 593, 595, 597, 599, 601, 609, 611, 614, 619, 621, 623, 626, 630, 633, 636, 639, 643, 645, 648, 651, 654, 656, 658, 660, 663, 666, 669, 673, 677, 679, 681, 684, 687, 689, 692, 695, 698, 701, 703, 706, 708, 711, 714, 719, 724, 731, 734, 739, 744, 751, 753, 755, 759, 761, 766, 772, 774, 776, 778, 780, 784, 786, 788, 790, 794, 798, 802, 804, 808, 810, 813, 816, 820, 824, 830, 836, 843, 850, 853, 856, 860, 864, 868, 872, 876, 880, 884, 888, 892, 896, 900, 902, 904, 908, 910, 913, 918, 920, 922, 924, 929, 934, 940, 949, 952, 954, 956, 958, 961, 968, 975, 981, 987, 994, 1001, 1007, 1013, 1021, 1029, 1036, 1043, 1051, 1059, 1066, 1073, 1078, 1084, 1089, 1096, 1101, 1103, 1105, 1107, 1109, 1113, 1116, 1118, 1121, 1124, 1127, 1129, 1134, 1139, 1143, 1148, 1153, 1157, 1161, 1164, 1167, 1172, 1177, 1181, 1186, 1190, 1194, 1197, 1200, 1202, 1204, 1208, 1212, 1214, 1216, 1220, 1224, 1227, 1230, 1233, 1236, 1239, 1242, 1247, 1253, 1259, 1262, 1267, 1274, 1276, 1278, 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1301, 1303, 1307, 1311, 1315, 1319, 1323, 1327, 1329, 1333, 1337, 1341, 1345, 1347, 1351, 1355, 1359, 1363, 1366, 1368, 1371, 1375, 1379, 1383, 1387, 1391, 1395, 1399, 1401, 1405, 1409, 1413, 1417, 1421, 1425, 1429, 1433, 1435, 1439, 1443, 1447, 1451, 1453, 1457, 1461, 1465, 1469, 1471, 1475, 1479, 1483, 1487, 1489, 1493, 1497, 1499, 1503, 1507, 1509, 1515, 1521, 1527, 1533, 1539, 1545, 1551, 1557, 1563, 1569, 1575, 1581, 1587, 1593, 1599, 1605, 1607, 1611, 1615, 1619, 1623, 1627, 1631, 1635, 1639, 1641, 1643, 1645, 1647, 1649, 1651, 1653, 1655, 1657, 1659, 1661, 1663, 1667, 1671, 1674, 1676, 1680, 1684, 1686, 1688, 1691, 1694, 1698, 1702, 1706, 1710, 1714, 1718, 1722, 1725, 1728, 1731, 1734, 1737, 1743, 1750, 1757, 1760, 1766, 1768, 1770, 1772, 1777, 1779, 1783, 1787, 1791, 1795, 1799, 1803, 1805, 1809, 1813, 1817, 1821, 1823, 1827, 1831, 1835, 1839, 1841, 1844, 1848, 1852, 1856, 1860, 1864, 1868, 1872, 1874, 1878, 1882, 1886, 1890, 1894, 1898, 1902, 1906, 1908, 1912, 1916, 1920, 1924, 1926, 1930, 1934, 1938, 1942, 1944, 1948, 1952, 1956, 1960, 1962, 1966, 1970, 1972, 1976, 1980, 1982, 1988, 1994, 2000, 2006, 2011, 2016, 2021, 2026, 2032, 2038, 2044, 2050, 2055, 2060, 2065, 2070, 2076, 2082, 2088, 2094, 2100, 2106, 2112, 2118, 2122, 2126, 2129, 2132, 2134, 2138, 2142, 2146, 2150, 2152, 2155, 2159, 2163, 2166, 2169, 2172, 2174, 2177, 2181, 2185, 2187, 2189, 2191, 2193, 2195, 2197, 2199, 2201, 2203, 2205, 2207, 2209, 2211, 2213, 2215, 2217, 2219, 2223, 2227, 2229, 2233, 2236, 2238, 2241, 2244, 2247, 2252, 2257, 2261, 2265, 2270, 2276, 2281, 2288, 2295, 2300, 2306, 2311, 2318, 2325, 2331, 2337, 2340, 2343, 2346, 2352, 2356, 2362, 2369, 2375, 2383, 2391, 2400, 2409, 2417, 2425, 2429, 2433, 2437, 2442, 2446, 2452, 2458, 2465, 2473, 2480, 2485, 2487, 2489, 2491, 2493, 2495, 2497, 2499, 2501, 2503, 2506, 2508, 2510, 2512, 2514, 2516, 2518, 2520, 2522, 2524, 2526, 2528, 2530, 2532, 2534, 2536, 2538, 2543, 2548, 2553, 2555, 2557, 2559, 2561, 2563, 2565, 2567, 2569, 2571, 2573, 2575, 2577, 2579, 2581, 2583, 2585, 2587, 2589, 2591, 2593, 2595, 2597, 2599, 2601, 2603, 2605, 2607, 2612, 2617, 2622, 2624, 2626, 2629, 2632, 2636, 2642, 2645, 2649, 2655, 2661, 2667, 2669, 2673, 2676, 2679, 2683, 2687, 2690, 2694, 2698, 2703, 2707, 2711, 2715, 2719, 2723, 2727, 2732, 2737, 2742, 2744, 2746, 2751, 2755, 2758, 2762, 2766, 2770, 2774, 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806, 2808, 2810, 2812, 2815, 2817, 2820, 2822, 2825, 2827, 2830, 2832, 2835, 2837, 2840, 2842, 2845, 2847, 2850, 2852, 2855, 2857, 2860, 2862, 2865, 2867, 2870, 2872, 2875, 2877, 2880, 2882, 2885, 2887, 2890, 2892, 2895, 2897, 2900, 2902, 2905, 2907, 2910, 2912, 2915, 2917, 2920, 2922, 2925, 2927, 2930, 2932, 2935, 2937, 2940, 2942, 2944, 2946, 2949, 2951, 2954, 2956, 2959, 2961, 2964, 2969, 2975, 2977, 2979, 2981, 2984, 2986, 2989, 2991, 2994, 2996, 2999, 3004, 3010, 3012, 3015, 3017, 3020, 3022, 3025, 3027, 3030, 3032, 3035, 3037, 3040, 3045, 3051, 3053, 3056, 3058, 3061, 3063, 3066, 3068, 3071, 3073, 3076, 3078, 3081, 3086, 3092, 3096, 3100, 3102, 3106, 3110, 3114, 3118, 3120, 3122, 3124, 3129, 3134, 3139, 3143, 3148, 3153, 3158, 3162, 3164, 3168, 3173, 3177, 3182, 3187, 3192, 3197, 3201, 3204, 3208, 3212, 3216, 3220, 3223, 3226, 3229, 3233, 3238, 3240, 3242, 3245, 3249, 3253, 3257, 3261, 3264, 3267, 3270, 3274, 3279, 3281, 3283, 3285, 3287, 3289, 3294, 3296, 3298, 3300, 3302, 3304, 3306, 3308, 3310, 3312, 3317, 3319, 3322, 3326, 3333, 3339, 3343, 3348, 3351, 3355, 3359, 3363, 3367, 3372, 3377, 3382, 3385, 3389, 3393, 3397, 3402, 3407, 3411, 3416, 3419, 3423, 3427, 3431, 3436, 3441, 3443, 3446, 3449, 3453, 3455, 3457, 3460, 3463, 3467, 3469, 3471, 3474, 3477, 3481, 3483, 3486, 3490, 3493, 3496, 3498, 3501, 3505, 3508, 3510, 3513, 3517, 3521, 3523, 3526, 3530, 3534, 3536, 3539, 3543, 3547, 3549, 3552, 3556, 3560, 3562, 3565, 3569, 3573, 3575, 3579, 3584, 3586, 3591, 3594, 3600, 3604, 3606, 3608, 3610, 3612, 3614, 3616, 3620, 3624, 3627, 3630, 3632, 3634, 3638, 3641, 3645, 3647, 3651, 3655, 3659, 3663, 3667, 3669, 3672, 3676, 3680, 3682, 3685, 3687, 3690, 3693, 3696, 3699, 3703, 3705, 3707, 3711, 3715, 3717, 3721, 3726, 3730, 3735, 3739, 3743, 3748, 3752, 3757, 3759, 3763, 3767, 3772, 3776, 3780, 3784, 3789, 3791, 3795, 3799, 3803, 3807, 3811, 3813, 3817, 3820, 3822, 3824, 3826, 3828, 3830, 3833, 3835, 3837, 3839, 3841, 3844, 3847, 3850, 3852, 3854, 3856, 3858, 3860, 3863, 3865, 3867, 3872, 3880, 3882, 3886, 3887, 3894, 3903, 3914, 3927, 3936, 3947, 3958, 3964, 3972, 3982, 3994, 4002, 4012, 4022, 4026, 4031, 4036, 4040, 4044, 4048, 4053, 4058, 4062, 4066, 4070, 4075, 4080, 4084, 4087, 4091, 4094, 4098, 4103, 4108, 4112, 4116, 4118, 4120, 4122, 4124, 4126, 4129, 4133, 4136, 4139, 4142, 4146, 4150, 4153, 4159, 4166, 4169, 4172, 4175, 4178, 4181, 4184, 4186, 4189, 4192, 4196, 4198, 4201, 4203, 4206, 4209, 4211, 4214, 4217, 4220, 4223, 4226, 4229, 4231, 4233, 4236, 4239, 4241, 4243, 4246, 4249, 4251, 4254, 4257, 4259, 4262, 4264, 4267, 4270, 4276, 4282, 4290, 4298, 4304, 4310, 4314, 4317, 4323, 4328, 4333, 4341, 4348, 4355, 4361, 4369, 4376, 4381, 4389, 4399, 4403, 4408, 4413, 4419, 4425, 4432, 4440, 4447, 4454, 4460, 4466, 4471, 4475, 4478, 4480, 4483, 4488, 4492, 4498, 4503, 4507, 4510, 4513, 4516, 4520, 4524, 4528, 4532, 4535, 4538, 4540, 4542, 4547, 4551, 4556, 4560, 4564, 4567, 4572, 4576, 4581, 4585, 4589, 4592, 4594, 4597, 4599, 4601, 4604, 4606, 4609, 4613, 4617, 4619, 4622, 4625, 4628, 4632, 4637, 4642, 4645, 4648, 4651, 4654, 4656, 4659, 4661, 4664, 4666, 4669, 4672, 4674, 4677, 4679, 4682, 4685, 4688, 4691, 4693, 4696, 4699, 4703, 4705, 4707, 4708, 4715, 4722, 4728, 4733, 4735, 4738, 4741, 4743, 4747, 4751, 4756, 4758, 4760, 4763, 4766, 4773, 4780, 4787
91 };
92
93 static const yytype_int16 yyrhs[] =
94 {
95 391, 0, -1, 217, 120, -1, 217, 121, -1, 150, -1, 217, 217, -1, 28, -1, 28, -1, 148, -1, 148, 121, 211, 122, -1, 148, 121, 211, 11, -1, 300, 335, -1, 333, -1, 300, 123, 124, -1, 125, 300, 123, 124, -1, 78, 300, 335, -1, 78, 333, -1, 300, 336, -1, 334, -1, 78, 300, 336, -1, 78, 334, -1, 151, 375, -1, 154, 375, -1, 154, 126, -1, 152, 375, -1, 153, 375, -1, 151, 126, -1, 151, 325, 126, -1, 151, 376, -1, 155, -1, 154, 376, -1, 156, -1, 156, 126, -1, 299, 335, -1, 299, 337, -1, 299, 336, -1, 159, 375, -1, 159, 376, -1, 160, -1, 159, -1, 225, 127, 340, -1, 340, -1, 225, 127, 341, -1, 225, 127, 1, -1, 341, -1, 163, -1, 165, 128, 163, -1, 166, 128, 163, -1, 164, -1, 165, 128, 164, -1, 166, 128, 164, -1, 165, 128, 1, -1, 166, 128, 1, -1, 128, -1, 165, 126, -1, 166, 126, -1, 167, -1, 161, -1, 170, 167, -1, 170, 161, -1, 168, 167, -1, 168, 161, -1, 170, 126, -1, 168, 126, -1, 126, -1, 168, -1, 165, -1, 168, 165, -1, 170, 165, -1, 162, -1, 169, 162, -1, 170, 162, -1, 168, 162, -1, 168, 166, -1, 166, -1, 165, 1, -1, 172, 129, -1, 172, 1, 129, -1, 299, 217, 130, 170, -1, 299, 217, 130, 169, 1, -1, 299, 217, 130, 169, -1, 299, 217, 130, -1, 299, 217, 130, 1, -1, 174, 129, -1, 174, 1, 129, -1, 300, 217, 130, 170, -1, 300, 217, 130, 169, 1, -1, 300, 217, 130, 169, -1, 300, 217, 130, -1, 300, 217, 130, 1, -1, 301, 217, 130, 169, 129, -1, 301, 217, 130, 170, 129, -1, 301, 217, 130, 129, -1, 177, 129, -1, 177, 1, 129, -1, 150, 130, 169, -1, 217, 130, 169, -1, 150, 130, 170, -1, 150, 130, -1, 150, 130, 169, 1, -1, 150, 130, 1, -1, 217, 130, 170, -1, 217, 130, -1, 217, 130, 169, 1, -1, 217, 130, 1, -1, 179, 129, -1, 179, 1, 129, -1, 130, 170, -1, 130, 169, 1, -1, 130, 1, -1, 130, -1, 130, 169, -1, 225, 127, 340, -1, 225, 127, 341, -1, 225, 127, 1, -1, 225, 1, -1, 180, -1, 182, 128, 180, -1, 183, 128, 180, -1, 181, -1, 182, 128, 181, -1, 183, 128, 181, -1, 182, 1, -1, 68, 305, 217, 130, -1, 68, 305, 329, 217, 130, -1, 68, 305, 130, -1, 68, 305, 329, 130, -1, 68, 1, 130, -1, 184, -1, 185, 69, 375, -1, 185, 70, 375, -1, 185, 95, 375, -1, 185, 91, -1, 185, 97, 219, -1, 185, 129, -1, 99, 305, 217, 130, -1, 99, 305, 329, 217, 130, -1, 99, 305, 130, -1, 99, 305, 329, 130, -1, 99, 1, 130, -1, 187, -1, 188, 69, 375, -1, 188, 70, 375, -1, 188, 129, -1, 217, -1, 190, 217, -1, 190, 375, -1, 73, 375, -1, 191, -1, 192, 191, -1, 88, 123, 190, 124, 375, -1, 88, 123, 244, 124, 130, 192, 129, -1, 244, 131, 88, 123, 244, 124, 130, 192, 129, -1, 89, 123, 244, 128, 190, 124, -1, 244, 131, 89, 123, 244, 128, 190, 124, -1, 89, 123, 244, 124, -1, 244, 131, 89, 123, 244, 124, -1, 90, -1, 90, 190, -1, 225, 131, 90, -1, 244, 131, 90, 190, -1, 198, 126, -1, 182, 126, -1, 157, -1, 186, -1, 363, 157, -1, 363, 186, -1, 189, -1, 91, -1, 93, -1, 94, -1, 99, 123, 217, 124, 127, 340, 126, -1, 126, -1, 363, 132, -1, 363, 123, 217, 124, -1, 158, -1, 300, -1, 300, 287, -1, 363, 300, 287, -1, 363, 300, -1, 363, 176, -1, 363, 173, -1, 98, 300, 287, -1, 193, -1, 92, 217, -1, 92, 150, -1, 96, 217, -1, 176, -1, 173, -1, 182, -1, 174, 1, -1, 177, 1, -1, 363, 158, -1, 363, 174, 1, -1, 363, 177, 1, -1, 183, -1, 197, -1, 199, 197, -1, 200, 197, -1, 198, -1, 199, 1, -1, 200, 1, -1, 199, 198, -1, 200, 198, -1, 300, -1, 300, 329, -1, 300, -1, 300, 329, -1, 65, 217, -1, 65, 217, 127, 202, -1, 65, 217, 132, 201, -1, 65, 217, 132, 201, 127, 202, -1, 65, 149, -1, 65, 149, 127, 202, -1, 65, 149, 132, 201, -1, 65, 149, 132, 201, 127, 202, -1, 217, -1, 217, -1, 217, 127, 204, -1, 234, -1, 300, 217, 127, 206, -1, 300, 329, 217, 127, 206, -1, 203, -1, 205, -1, 207, -1, 208, -1, 209, 128, 208, -1, 206, -1, 204, -1, 202, -1, 217, 127, 206, -1, 217, 127, 204, -1, 217, 127, 202, -1, 210, -1, 211, 128, 210, -1, 65, -1, 212, 217, -1, 212, 148, -1, 217, 212, 217, -1, 217, 212, 148, -1, 212, 217, 121, 209, 122, -1, 212, 148, 121, 209, 122, -1, 217, 212, 217, 121, 209, 122, -1, 217, 212, 148, 121, 209, 122, -1, 216, 129, -1, 215, 126, -1, 213, 130, 129, -1, 215, 130, 129, -1, 212, 217, 126, -1, 212, 147, 126, -1, 213, 132, 304, -1, 213, 130, 200, -1, 215, 130, 200, -1, 213, 130, 199, -1, 215, 130, 199, -1, 213, 130, 1, -1, 215, 130, 1, -1, 3, -1, 221, -1, 123, 246, 124, -1, 386, -1, 133, 386, -1, 133, 386, 131, 386, -1, 4, -1, 217, -1, 176, -1, 85, 123, 375, 124, -1, 85, 123, 246, 124, -1, 85, 123, 347, 124, 338, -1, 85, 123, 347, 124, 123, 347, 124, 338, -1, 220, 217, -1, 220, -1, 219, -1, 118, -1, 123, 124, -1, 71, 307, 330, 134, 266, 135, -1, 71, 307, 330, 134, 267, 135, -1, 71, 307, 134, 266, 135, -1, 71, 307, 134, 267, 135, -1, 102, 307, 330, 134, 266, 135, -1, 102, 307, 330, 134, 267, 135, -1, 102, 307, 134, 266, 135, -1, 102, 307, 134, 267, 135, -1, 72, 266, 306, 330, 134, 266, 135, -1, 72, 266, 306, 330, 134, 267, 135, -1, 72, 266, 306, 134, 266, 135, -1, 72, 266, 306, 134, 267, 135, -1, 103, 266, 306, 330, 134, 266, 135, -1, 103, 266, 306, 330, 134, 267, 135, -1, 103, 266, 306, 134, 266, 135, -1, 103, 266, 306, 134, 267, 135, -1, 65, 123, 299, 124, -1, 65, 123, 299, 329, 124, -1, 65, 123, 217, 124, -1, 104, 123, 244, 128, 347, 124, -1, 98, 123, 217, 124, -1, 398, -1, 399, -1, 400, -1, 401, -1, 134, 226, 135, -1, 134, 135, -1, 178, -1, 179, 1, -1, 123, 246, -1, 123, 264, -1, 218, -1, 225, 134, 246, 135, -1, 225, 134, 264, 135, -1, 225, 123, 124, -1, 225, 123, 226, 124, -1, 225, 123, 227, 124, -1, 225, 131, 217, -1, 225, 7, 217, -1, 225, 8, -1, 225, 9, -1, 248, 134, 246, 135, -1, 248, 134, 264, 135, -1, 248, 123, 124, -1, 248, 123, 226, 124, -1, 248, 131, 217, -1, 248, 7, 217, -1, 248, 8, -1, 248, 9, -1, 244, -1, 222, -1, 226, 128, 244, -1, 226, 128, 222, -1, 263, -1, 223, -1, 226, 128, 263, -1, 226, 128, 223, -1, 226, 128, -1, 8, 229, -1, 9, 229, -1, 230, 231, -1, 230, 222, -1, 6, 229, -1, 6, 123, 348, 124, -1, 6, 123, 65, 147, 124, -1, 6, 123, 65, 146, 124, -1, 109, 229, -1, 109, 123, 348, 124, -1, 119, 123, 348, 128, 217, 124, -1, 228, -1, 225, -1, 136, -1, 120, -1, 137, -1, 138, -1, 125, -1, 139, -1, 73, -1, 84, -1, 229, -1, 123, 347, 124, 231, -1, 231, -1, 232, 120, 231, -1, 232, 140, 231, -1, 232, 141, 231, -1, 252, 120, 231, -1, 252, 140, 231, -1, 252, 141, 231, -1, 232, -1, 233, 137, 232, -1, 233, 138, 232, -1, 253, 137, 232, -1, 253, 138, 232, -1, 233, -1, 234, 10, 233, -1, 234, 11, 233, -1, 254, 10, 233, -1, 254, 11, 233, -1, 236, 121, -1, 234, -1, 235, 234, -1, 236, 122, 234, -1, 236, 12, 234, -1, 236, 13, 234, -1, 255, 121, 234, -1, 255, 122, 234, -1, 255, 12, 234, -1, 255, 13, 234, -1, 236, -1, 237, 14, 236, -1, 237, 15, 236, -1, 256, 14, 236, -1, 256, 15, 236, -1, 237, 14, 222, -1, 237, 15, 222, -1, 256, 14, 222, -1, 256, 15, 222, -1, 237, -1, 238, 136, 237, -1, 257, 136, 237, -1, 238, 136, 222, -1, 257, 136, 222, -1, 238, -1, 239, 142, 238, -1, 258, 142, 238, -1, 239, 142, 222, -1, 258, 142, 222, -1, 239, -1, 240, 143, 239, -1, 259, 143, 239, -1, 240, 143, 222, -1, 259, 143, 222, -1, 240, -1, 241, 16, 240, -1, 260, 16, 240, -1, 241, -1, 242, 17, 241, -1, 261, 17, 241, -1, 242, -1, 242, 144, 246, 132, 243, -1, 242, 144, 264, 132, 243, -1, 261, 144, 246, 132, 243, -1, 261, 144, 264, 132, 243, -1, 242, 144, 247, 132, 243, -1, 242, 144, 265, 132, 243, -1, 261, 144, 247, 132, 243, -1, 261, 144, 265, 132, 243, -1, 242, 144, 246, 132, 222, -1, 242, 144, 264, 132, 222, -1, 261, 144, 246, 132, 222, -1, 261, 144, 264, 132, 222, -1, 242, 144, 247, 132, 222, -1, 242, 144, 265, 132, 222, -1, 261, 144, 247, 132, 222, -1, 261, 144, 265, 132, 222, -1, 243, -1, 229, 245, 244, -1, 250, 245, 244, -1, 243, 245, 244, -1, 262, 245, 244, -1, 229, 245, 222, -1, 250, 245, 222, -1, 243, 245, 222, -1, 262, 245, 222, -1, 127, -1, 18, -1, 19, -1, 20, -1, 21, -1, 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, 27, -1, 244, -1, 246, 128, 244, -1, 264, 128, 244, -1, 264, 124, -1, 222, -1, 246, 128, 222, -1, 264, 128, 222, -1, 224, -1, 1, -1, 225, 1, -1, 177, 1, -1, 225, 7, 1, -1, 248, 7, 1, -1, 225, 123, 226, -1, 225, 123, 227, -1, 225, 131, 1, -1, 248, 123, 227, -1, 248, 131, 1, -1, 8, 250, -1, 9, 250, -1, 230, 251, -1, 230, 223, -1, 6, 250, -1, 6, 123, 348, 124, 1, -1, 6, 123, 65, 147, 124, 1, -1, 6, 123, 65, 146, 124, 1, -1, 109, 250, -1, 109, 123, 348, 124, 1, -1, 249, -1, 248, -1, 250, -1, 123, 347, 124, 251, -1, 251, -1, 232, 120, 251, -1, 232, 140, 251, -1, 232, 141, 251, -1, 252, 120, 251, -1, 252, 140, 251, -1, 252, 141, 251, -1, 252, -1, 233, 137, 252, -1, 233, 138, 252, -1, 253, 137, 252, -1, 253, 138, 252, -1, 253, -1, 234, 10, 253, -1, 234, 11, 253, -1, 254, 10, 253, -1, 254, 11, 253, -1, 254, -1, 235, 254, -1, 236, 122, 254, -1, 236, 12, 254, -1, 236, 13, 254, -1, 255, 121, 254, -1, 255, 122, 254, -1, 255, 12, 254, -1, 255, 13, 254, -1, 255, -1, 237, 14, 255, -1, 237, 15, 255, -1, 256, 14, 255, -1, 256, 15, 255, -1, 237, 14, 223, -1, 237, 15, 223, -1, 256, 14, 223, -1, 256, 15, 223, -1, 256, -1, 238, 136, 256, -1, 257, 136, 256, -1, 238, 136, 223, -1, 257, 136, 223, -1, 257, -1, 239, 142, 257, -1, 258, 142, 257, -1, 239, 142, 223, -1, 258, 142, 223, -1, 258, -1, 240, 143, 258, -1, 259, 143, 258, -1, 240, 143, 223, -1, 259, 143, 223, -1, 259, -1, 241, 16, 259, -1, 260, 16, 259, -1, 260, -1, 242, 17, 260, -1, 261, 17, 260, -1, 261, -1, 242, 144, 246, 132, 261, -1, 242, 144, 264, 132, 261, -1, 261, 144, 246, 132, 261, -1, 261, 144, 264, 132, 261, -1, 242, 144, 246, 132, -1, 242, 144, 264, 132, -1, 261, 144, 246, 132, -1, 261, 144, 264, 132, -1, 242, 144, 247, 132, 261, -1, 242, 144, 265, 132, 261, -1, 261, 144, 247, 132, 261, -1, 261, 144, 265, 132, 261, -1, 242, 144, 247, 132, -1, 242, 144, 265, 132, -1, 261, 144, 247, 132, -1, 261, 144, 265, 132, -1, 242, 144, 246, 132, 223, -1, 242, 144, 264, 132, 223, -1, 261, 144, 246, 132, 223, -1, 261, 144, 264, 132, 223, -1, 242, 144, 247, 132, 223, -1, 242, 144, 265, 132, 223, -1, 261, 144, 247, 132, 223, -1, 261, 144, 265, 132, 223, -1, 242, 144, 132, -1, 261, 144, 132, -1, 242, 144, -1, 261, 144, -1, 262, -1, 229, 245, 263, -1, 250, 245, 263, -1, 229, 245, 223, -1, 250, 245, 223, -1, 263, -1, 244, 1, -1, 246, 128, 263, -1, 264, 128, 263, -1, 246, 246, -1, 264, 246, -1, 246, 264, -1, 223, -1, 222, 1, -1, 246, 128, 223, -1, 264, 128, 223, -1, 243, -1, 262, -1, 29, -1, 30, -1, 31, -1, 117, -1, 32, -1, 33, -1, 116, -1, 29, -1, 30, -1, 31, -1, 117, -1, 32, -1, 33, -1, 116, -1, 217, -1, 217, 127, 266, -1, 217, 127, 267, -1, 270, -1, 271, 128, 270, -1, 271, 128, -1, 50, -1, 272, 217, -1, 272, 150, -1, 275, 129, -1, 272, 217, 130, 129, -1, 272, 150, 130, 129, -1, 272, 130, 271, -1, 272, 130, 1, -1, 272, 217, 130, 271, -1, 272, 217, 130, 271, 1, -1, 272, 217, 130, 1, -1, 272, 217, 130, 271, 126, 199, -1, 272, 217, 130, 271, 126, 200, -1, 272, 150, 130, 271, -1, 272, 150, 130, 271, 1, -1, 272, 150, 130, 1, -1, 272, 150, 130, 271, 126, 199, -1, 272, 150, 130, 271, 126, 200, -1, 272, 217, 130, 271, 126, -1, 272, 150, 130, 271, 126, -1, 272, 217, -1, 272, 150, -1, 278, 129, -1, 276, 132, 304, 130, 129, -1, 276, 130, 129, -1, 276, 132, 304, 130, 271, -1, 276, 132, 304, 130, 271, 1, -1, 276, 132, 304, 130, 1, -1, 276, 132, 304, 130, 271, 126, 199, -1, 276, 132, 304, 130, 271, 126, 200, -1, 276, 132, 304, 130, 271, 1, 126, 199, -1, 276, 132, 304, 130, 271, 1, 126, 200, -1, 276, 132, 304, 130, 1, 126, 199, -1, 276, 132, 304, 130, 1, 126, 200, -1, 272, 130, 271, -1, 272, 130, 1, -1, 276, 130, 271, -1, 276, 130, 271, 1, -1, 276, 130, 1, -1, 276, 130, 271, 126, 199, -1, 276, 130, 271, 126, 200, -1, 276, 132, 304, 130, 271, 126, -1, 276, 132, 304, 130, 271, 1, 126, -1, 276, 132, 304, 130, 1, 126, -1, 276, 130, 271, 126, -1, 277, -1, 294, -1, 278, -1, 295, -1, 320, -1, 44, -1, 45, -1, 281, -1, 282, -1, 283, 282, -1, 46, -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, -1, 47, -1, 39, -1, 42, -1, 43, -1, 40, -1, 41, -1, 85, -1, 291, -1, 273, -1, 147, -1, 87, 123, 244, 124, -1, 100, 123, 147, 124, -1, 100, 123, 217, 124, -1, 66, -1, 82, -1, 83, -1, 113, -1, 112, -1, 114, -1, 115, -1, 46, -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, -1, 47, -1, 39, -1, 42, -1, 43, -1, 40, -1, 41, -1, 85, -1, 291, -1, 273, -1, 150, -1, 113, -1, 112, -1, 114, -1, 115, -1, 87, 123, 244, 124, -1, 100, 123, 147, 124, -1, 100, 123, 217, 124, -1, 66, -1, 337, -1, 337, 325, -1, 132, 266, -1, 337, 132, 266, -1, 337, 132, 266, 132, 266, -1, 132, 267, -1, 337, 132, 267, -1, 337, 132, 266, 132, 267, -1, 337, 132, 267, 132, 267, -1, 337, 132, 267, 132, 266, -1, 286, -1, 287, 128, 286, -1, 296, 217, -1, 296, 148, -1, 296, 320, 217, -1, 296, 320, 148, -1, 290, 129, -1, 288, 130, 129, -1, 296, 130, 129, -1, 296, 320, 130, 129, -1, 288, 130, 199, -1, 288, 130, 200, -1, 288, 130, 1, -1, 296, 130, 199, -1, 296, 130, 200, -1, 296, 130, 1, -1, 296, 320, 130, 199, -1, 296, 320, 130, 200, -1, 296, 320, 130, 1, -1, 288, -1, 288, -1, 288, 121, 209, 122, -1, 292, 132, 304, -1, 295, 129, -1, 293, 130, 129, -1, 292, 130, 129, -1, 296, 130, 129, -1, 293, 130, 199, -1, 293, 130, 200, -1, 293, 130, 1, -1, 292, 130, 199, -1, 292, 130, 200, -1, 292, 130, 1, -1, 296, 130, 199, -1, 296, 130, 200, -1, 296, 130, 1, -1, 48, -1, 49, -1, 282, -1, 297, 282, -1, 284, -1, 297, 284, -1, 274, -1, 297, 274, -1, 289, -1, 297, 289, -1, 282, -1, 298, 282, -1, 284, -1, 298, 284, -1, 146, -1, 298, 146, -1, 274, -1, 298, 274, -1, 289, -1, 298, 289, -1, 268, -1, 299, 268, -1, 282, -1, 299, 282, -1, 285, -1, 299, 285, -1, 274, -1, 299, 274, -1, 289, -1, 299, 289, -1, 268, -1, 300, 268, -1, 282, -1, 300, 282, -1, 284, -1, 300, 284, -1, 146, -1, 300, 146, -1, 289, -1, 300, 289, -1, 274, -1, 300, 274, -1, 269, -1, 301, 269, -1, 282, -1, 301, 282, -1, 284, -1, 301, 284, -1, 146, -1, 301, 146, -1, 279, -1, 301, 279, -1, 280, -1, 301, 280, -1, 81, -1, 80, -1, 268, -1, 303, 268, -1, 282, -1, 303, 282, -1, 285, -1, 303, 285, -1, 217, -1, 303, 217, -1, 217, 121, 211, 122, -1, 303, 217, 121, 211, 122, -1, 303, -1, 296, -1, 268, -1, 305, 268, -1, 282, -1, 305, 282, -1, 285, -1, 305, 285, -1, 217, -1, 305, 217, -1, 217, 121, 211, 122, -1, 305, 217, 121, 211, 122, -1, 268, -1, 306, 268, -1, 282, -1, 306, 282, -1, 285, -1, 306, 285, -1, 289, -1, 306, 289, -1, 274, -1, 306, 274, -1, 217, -1, 306, 217, -1, 217, 121, 211, 122, -1, 306, 217, 121, 211, 122, -1, 268, -1, 307, 268, -1, 282, -1, 307, 282, -1, 285, -1, 307, 285, -1, 289, -1, 307, 289, -1, 274, -1, 307, 274, -1, 217, -1, 307, 217, -1, 217, 121, 211, 122, -1, 307, 217, 121, 211, 122, -1, 309, 128, 1, -1, 308, 128, 1, -1, 217, -1, 309, 128, 217, -1, 308, 128, 217, -1, 351, 128, 217, -1, 352, 128, 217, -1, 311, -1, 148, -1, 37, -1, 148, 134, 266, 135, -1, 148, 134, 267, 135, -1, 148, 134, 147, 135, -1, 148, 134, 135, -1, 310, 134, 266, 135, -1, 310, 134, 267, 135, -1, 310, 134, 147, 135, -1, 310, 134, 135, -1, 217, -1, 123, 331, 124, -1, 123, 320, 331, 124, -1, 123, 332, 124, -1, 123, 320, 332, 124, -1, 311, 134, 266, 135, -1, 311, 134, 267, 135, -1, 311, 134, 147, 135, -1, 311, 134, 135, -1, 311, 123, -1, 312, 353, 124, -1, 312, 354, 124, -1, 312, 309, 124, -1, 312, 308, 124, -1, 312, 124, -1, 312, 308, -1, 312, 1, -1, 312, 351, 123, -1, 312, 300, 217, 123, -1, 313, -1, 311, -1, 310, 123, -1, 316, 353, 124, -1, 316, 354, 124, -1, 316, 309, 124, -1, 316, 308, 124, -1, 316, 124, -1, 316, 308, -1, 316, 1, -1, 316, 351, 123, -1, 316, 300, 217, 123, -1, 317, -1, 310, -1, 74, -1, 75, -1, 325, -1, 86, 123, 386, 124, -1, 79, -1, 110, -1, 111, -1, 3, -1, 28, -1, 75, -1, 74, -1, 44, -1, 322, -1, 322, 123, 246, 124, -1, 323, -1, 324, 323, -1, 324, 128, 323, -1, 321, 123, 123, 324, 124, 124, -1, 321, 123, 123, 124, 124, -1, 123, 329, 124, -1, 123, 320, 329, 124, -1, 134, 135, -1, 134, 266, 135, -1, 134, 267, 135, -1, 134, 147, 135, -1, 326, 134, 135, -1, 326, 134, 266, 135, -1, 326, 134, 147, 135, -1, 326, 134, 267, 135, -1, 123, 124, -1, 123, 353, 124, -1, 123, 354, 124, -1, 326, 123, 124, -1, 326, 123, 353, 124, -1, 326, 123, 354, 124, -1, 123, 330, 124, -1, 123, 320, 330, 124, -1, 123, 124, -1, 123, 353, 124, -1, 123, 354, 124, -1, 327, 123, 124, -1, 327, 123, 353, 124, -1, 327, 123, 354, 124, -1, 120, -1, 120, 283, -1, 120, 328, -1, 120, 283, 328, -1, 328, -1, 326, -1, 328, 326, -1, 320, 328, -1, 320, 328, 326, -1, 328, -1, 327, -1, 328, 327, -1, 320, 328, -1, 320, 328, 327, -1, 315, -1, 328, 315, -1, 320, 328, 315, -1, 331, 320, -1, 337, 320, -1, 319, -1, 328, 319, -1, 320, 328, 319, -1, 332, 320, -1, 313, -1, 328, 313, -1, 320, 328, 313, -1, 328, 320, 313, -1, 314, -1, 328, 314, -1, 320, 328, 314, -1, 328, 320, 314, -1, 317, -1, 328, 317, -1, 320, 328, 317, -1, 328, 320, 317, -1, 318, -1, 328, 318, -1, 320, 328, 318, -1, 328, 320, 318, -1, 310, -1, 328, 310, -1, 320, 328, 310, -1, 328, 320, 310, -1, 244, -1, 130, 342, 129, -1, 130, 342, 128, 129, -1, 263, -1, 130, 342, 129, 1, -1, 130, 342, -1, 130, 342, 128, 129, 1, -1, 130, 342, 128, -1, 243, -1, 222, -1, 262, -1, 223, -1, 338, -1, 339, -1, 342, 128, 338, -1, 342, 128, 339, -1, 342, 338, -1, 342, 339, -1, 331, -1, 332, -1, 331, 127, 338, -1, 331, 1, -1, 331, 127, 339, -1, 343, -1, 345, 128, 343, -1, 37, 128, 343, -1, 38, 128, 343, -1, 148, 128, 343, -1, 346, 128, 343, -1, 344, -1, 343, 1, -1, 345, 128, 344, -1, 346, 128, 344, -1, 297, -1, 297, 329, -1, 298, -1, 298, 329, -1, 300, 332, -1, 300, 329, -1, 300, 136, -1, 300, 136, 332, -1, 300, -1, 65, -1, 300, 332, 1, -1, 300, 329, 1, -1, 349, -1, 351, 128, 349, -1, 351, 1, 128, 349, -1, 352, 128, 349, -1, 352, 1, 128, 349, -1, 1, 128, 349, -1, 309, 128, 349, -1, 309, 1, 128, 349, -1, 308, 128, 349, -1, 308, 1, 128, 349, -1, 350, -1, 351, 128, 350, -1, 352, 128, 350, -1, 352, 1, 128, 350, -1, 1, 128, 350, -1, 309, 128, 350, -1, 308, 128, 350, -1, 308, 1, 128, 350, -1, 351, -1, 351, 128, 51, -1, 352, 128, 51, -1, 309, 128, 51, -1, 308, 128, 51, -1, 1, 128, 51, -1, 352, -1, 351, 128, 1, -1, 352, 1, -1, 360, -1, 325, -1, 375, -1, 126, -1, 132, -1, 246, 126, -1, 378, -1, 380, -1, 382, -1, 359, -1, 196, 126, -1, 195, 126, -1, 194, 126, -1, 361, -1, 381, -1, 376, -1, 379, -1, 383, -1, 382, 1, -1, 264, -1, 386, -1, 386, 123, 244, 124, -1, 134, 217, 135, 386, 123, 244, 124, -1, 357, -1, 358, 128, 357, -1, -1, 86, 282, 123, 386, 124, 126, -1, 86, 282, 123, 386, 132, 358, 124, 126, -1, 86, 282, 123, 386, 132, 358, 132, 358, 124, 126, -1, 86, 282, 123, 386, 132, 358, 132, 358, 132, 358, 124, 126, -1, 86, 282, 123, 386, 3, 358, 124, 126, -1, 86, 282, 123, 386, 3, 358, 132, 358, 124, 126, -1, 86, 282, 123, 386, 132, 358, 3, 358, 124, 126, -1, 86, 123, 386, 124, 126, -1, 86, 123, 386, 132, 358, 124, 126, -1, 86, 123, 386, 132, 358, 132, 358, 124, 126, -1, 86, 123, 386, 132, 358, 132, 358, 132, 358, 124, 126, -1, 86, 123, 386, 3, 358, 124, 126, -1, 86, 123, 386, 3, 358, 132, 358, 124, 126, -1, 86, 123, 386, 132, 358, 3, 358, 124, 126, -1, 217, 132, 355, -1, 52, 266, 132, 355, -1, 52, 267, 132, 355, -1, 52, 132, 355, -1, 53, 132, 355, -1, 217, 132, 364, -1, 52, 266, 132, 364, -1, 52, 267, 132, 364, -1, 52, 132, 364, -1, 53, 132, 364, -1, 217, 132, 356, -1, 52, 266, 132, 356, -1, 52, 267, 132, 356, -1, 52, 132, 356, -1, 52, 132, -1, 53, 132, 356, -1, 53, 132, -1, 217, 132, 367, -1, 52, 266, 132, 367, -1, 52, 267, 132, 367, -1, 52, 132, 367, -1, 53, 132, 367, -1, 80, -1, 81, -1, 53, -1, 80, -1, 81, -1, 299, 126, -1, 299, 345, 126, -1, 171, 126, -1, 367, 126, -1, 301, 126, -1, 301, 345, 126, -1, 302, 345, 126, -1, 175, 126, -1, 77, 217, 127, 243, 126, -1, 31, 77, 217, 127, 243, 126, -1, 301, 1, -1, 299, 1, -1, 367, 1, -1, 172, 1, -1, 171, 1, -1, 299, 346, -1, 364, -1, 368, 364, -1, 369, 364, -1, 368, 1, 126, -1, 367, -1, 368, 367, -1, 355, -1, 370, 355, -1, 371, 355, -1, 356, -1, 370, 356, -1, 371, 356, -1, 370, 364, -1, 371, 364, -1, 370, 367, -1, 371, 367, -1, 370, -1, 368, -1, 368, 370, -1, 369, 370, -1, 371, -1, 369, -1, 368, 371, -1, 369, 371, -1, 130, -1, 376, 129, -1, 374, 373, -1, 374, -1, 374, 372, -1, 126, -1, 246, 126, -1, 264, 126, -1, 54, 123, 246, 124, 355, -1, 54, 123, 264, 124, 355, -1, 54, 123, 246, 124, 355, 64, 355, -1, 54, 123, 264, 124, 355, 64, 355, -1, 55, 123, 246, 124, 355, -1, 55, 123, 264, 124, 355, -1, 54, 123, 264, -1, 378, 1, -1, 56, 123, 246, 124, 355, -1, 56, 123, 264, 355, -1, 56, 123, 124, 355, -1, 57, 355, 56, 123, 246, 124, 126, -1, 57, 355, 56, 123, 264, 126, -1, 58, 123, 377, 377, 124, 355, -1, 58, 123, 377, 124, 355, -1, 58, 123, 377, 377, 246, 124, 355, -1, 58, 123, 377, 377, 264, 355, -1, 58, 123, 124, 355, -1, 58, 123, 217, 132, 246, 124, 355, -1, 58, 123, 217, 132, 246, 126, 246, 124, 355, -1, 58, 123, 1, -1, 58, 123, 264, 1, -1, 58, 123, 377, 1, -1, 58, 123, 377, 264, 1, -1, 58, 123, 377, 377, 264, -1, 58, 123, 377, 377, 124, 356, -1, 58, 123, 377, 377, 246, 124, 356, -1, 58, 123, 377, 377, 264, 356, -1, 57, 355, 56, 123, 246, 124, -1, 57, 355, 56, 123, 246, -1, 57, 355, 56, 123, 264, -1, 57, 355, 56, 123, -1, 57, 355, 56, -1, 57, 355, -1, 57, -1, 56, 1, -1, 56, 123, 124, 1, -1, 56, 123, 264, -1, 56, 123, 246, 124, 356, -1, 56, 123, 264, 356, -1, 59, 217, 126, -1, 60, 126, -1, 61, 126, -1, 62, 126, -1, 62, 246, 126, -1, 62, 264, 126, -1, 62, 222, 126, -1, 62, 223, 126, -1, 62, 264, -1, 62, 223, -1, 62, -1, 59, -1, 301, 333, 368, 375, -1, 301, 333, 375, -1, 301, 335, 368, 375, -1, 301, 335, 375, -1, 333, 368, 375, -1, 333, 375, -1, 301, 333, 368, 376, -1, 301, 333, 376, -1, 301, 335, 368, 376, -1, 301, 335, 376, -1, 333, 368, 376, -1, 333, 376, -1, 5, -1, 386, 5, -1, 384, -1, 214, -1, 301, 214, -1, 365, -1, 76, 386, -1, 76, 31, 386, -1, 76, 217, 386, -1, 126, -1, 362, 384, -1, 362, 214, -1, 362, 365, -1, 362, 76, 386, -1, 362, 76, 31, 386, -1, 362, 76, 217, 386, -1, 362, 132, -1, 31, 132, -1, 101, 217, -1, 101, 150, -1, 392, -1, 362, 392, -1, 216, -1, 301, 216, -1, 385, -1, 362, 216, -1, 362, 385, -1, 366, -1, 362, 366, -1, 388, -1, 390, 388, -1, 389, 388, -1, 390, 1, -1, 389, 1, -1, 387, -1, 390, 387, -1, 389, 214, -1, 389, 362, 214, -1, 390, -1, 389, -1, -1, 105, 386, 217, 130, 397, 129, -1, 105, 386, 150, 130, 397, 129, -1, 105, 386, 130, 397, 129, -1, 300, 217, 386, 126, -1, 217, -1, 122, 217, -1, 121, 217, -1, 394, -1, 395, 128, 394, -1, 107, 395, 126, -1, 107, 395, 217, 126, -1, 393, -1, 396, -1, 397, 393, -1, 397, 396, -1, 108, 123, 244, 128, 244, 124, -1, 106, 123, 386, 128, 217, 124, -1, 107, 123, 386, 128, 217, 124, -1, 105, 123, 386, 124, -1
96 };
97
98 static const yytype_uint16 yyrline[] =
99 {
100 0, 284, 284, 303, 342, 343, 423, 427, 430, 431, 432, 471, 473, 478, 483, 488, 490, 495, 497, 502, 504, 509, 511, 513, 515, 517, 521, 525, 538, 540, 542, 544, 546, 552, 554, 559, 564, 569, 571, 573, 578, 579, 583, 584, 595, 599, 600, 602, 607, 608, 610, 613, 625, 636, 655, 657, 662, 663, 664, 665, 666, 667, 668, 669, 682, 686, 687, 688, 689, 693, 694, 695, 696, 697, 698, 699, 703, 705, 710, 712, 714, 716, 718, 748, 750, 755, 757, 759, 761, 763, 792, 794, 796, 801, 803, 808, 810, 814, 816, 818, 820, 825, 828, 831, 834, 899, 901, 906, 908, 910, 912, 914, 945, 949, 950, 951, 955, 956, 957, 961, 962, 963, 964, 968, 971, 974, 977, 980, 985, 986, 988, 990, 992, 994, 999, 1003, 1006, 1009, 1012, 1015, 1020, 1021, 1023, 1028, 1032, 1034, 1039, 1041, 1046, 1048, 1053, 1058, 1060, 1065, 1067, 1069, 1071, 1076, 1078, 1080, 1082, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1099, 1100, 1102, 1106, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1124, 1125, 1129, 1130, 1131, 1135, 1139, 1140, 1141, 1145, 1146, 1147, 1148, 1149, 1153, 1154, 1166, 1167, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1182, 1186, 1187, 1191, 1199, 1200, 1204, 1205, 1206, 1210, 1211, 1215, 1216, 1217, 1218, 1219, 1220, 1260, 1261, 1265, 1273, 1274, 1282, 1283, 1285, 1286, 1295, 1296, 1300, 1307, 1314, 1320, 1327, 1333, 1342, 1349, 1355, 1361, 1367, 1373, 1379, 1390, 1395, 1396, 1401, 1402, 1403, 1407, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1455, 1456, 1457, 1458, 1459, 1461, 1462, 1466, 1470, 1474, 1475, 1479, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1525, 1526, 1527, 1528, 1532, 1533, 1534, 1535, 1536, 1540, 1541, 1542, 1543, 1545, 1546, 1547, 1548, 1551, 1552, 1554, 1558, 1559, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1579, 1580, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1594, 1595, 1596, 1597, 1598, 1602, 1603, 1604, 1605, 1606, 1610, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1630, 1631, 1632, 1633, 1634, 1636, 1637, 1638, 1639, 1643, 1644, 1645, 1647, 1648, 1652, 1653, 1654, 1656, 1657, 1661, 1662, 1663, 1665, 1666, 1670, 1671, 1672, 1676, 1677, 1678, 1682, 1683, 1684, 1685, 1686, 1688, 1689, 1690, 1691, 1693, 1694, 1695, 1696, 1698, 1699, 1700, 1701, 1705, 1706, 1707, 1708, 1709, 1711, 1712, 1713, 1714, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1732, 1733, 1734, 1735, 1739, 1740, 1741, 1745, 1746, 1747, 1748, 1750, 1751, 1753, 1754, 1759, 1761, 1766, 1794, 1795, 1796, 1797, 1799, 1800, 1801, 1802, 1804, 1805, 1809, 1810, 1819, 1820, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1834, 1835, 1839, 1843, 1847, 1854, 1855, 1856, 1857, 1858, 1862, 1863, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1916, 1917, 1918, 1919, 1920, 1927, 1928, 1929, 1930, 1934, 1935, 1936, 1938, 1939, 1943, 1944, 1945, 1947, 1948, 1952, 1953, 1954, 1956, 1957, 1961, 1962, 1963, 1967, 1968, 1969, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2002, 2010, 2014, 2019, 2026, 2027, 2031, 2036, 2037, 2041, 2042, 2043, 2044, 2050, 2051, 2052, 2056, 2057, 2058, 2059, 2063, 2065, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2089, 2090, 2091, 2095, 2096, 2097, 2101, 2105, 2106, 2110, 2111, 2112, 2116, 2117, 2119, 2120, 2121, 2122, 2123, 2125, 2126, 2127, 2128, 2129, 2131, 2132, 2136, 2137, 2141, 2142, 2143, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2157, 2158, 2160, 2161, 2162, 2163, 2164, 2166, 2167, 2168, 2169, 2173, 2174, 2178, 2179, 2183, 2187, 2188, 2189, 2194, 2195, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2257, 2259, 2261, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2280, 2281, 2285, 2291, 2297, 2304, 2314, 2315, 2316, 2317, 2321, 2322, 2323, 2325, 2326, 2327, 2329, 2330, 2331, 2335, 2339, 2347, 2356, 2365, 2366, 2368, 2369, 2373, 2380, 2387, 2390, 2403, 2417, 2420, 2422, 2424, 2429, 2430, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2499, 2500, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2514, 2516, 2524, 2534, 2535, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2555, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2584, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2613, 2622, 2623, 2627, 2628, 2629, 2630, 2631, 2635, 2636, 2643, 2645, 2654, 2663, 2672, 2681, 2682, 2683, 2684, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2700, 2704, 2705, 2706, 2707, 2708, 2713, 2722, 2731, 2740, 2754, 2755, 2760, 2764, 2765, 2766, 2767, 2768, 2773, 2782, 2791, 2800, 2814, 2815, 2864, 2865, 2866, 2867, 2879, 2880, 2881, 2886, 2887, 2888, 2889, 2890, 2894, 2895, 2899, 2900, 2901, 2905, 2906, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2940, 2941, 2942, 2943, 2947, 2948, 2949, 2950, 2951, 2955, 2956, 2957, 2958, 2959, 2963, 2964, 2966, 2968, 2970, 2975, 2976, 2978, 2980, 2985, 2986, 2987, 2988, 2992, 2993, 2994, 2995, 2999, 3000, 3001, 3002, 3006, 3007, 3008, 3009, 3013, 3014, 3015, 3016, 3020, 3021, 3022, 3039, 3040, 3041, 3042, 3055, 3072, 3073, 3078, 3079, 3083, 3084, 3085, 3086, 3089, 3090, 3094, 3095, 3096, 3100, 3104, 3108, 3109, 3110, 3111, 3112, 3121, 3130, 3131, 3132, 3133, 3137, 3138, 3142, 3143, 3148, 3149, 3150, 3151, 3152, 3153, 3172, 3173, 3177, 3178, 3179, 3180, 3181, 3182, 3184, 3185, 3186, 3187, 3191, 3192, 3193, 3194, 3195, 3197, 3198, 3199, 3203, 3204, 3205, 3206, 3207, 3208, 3212, 3213, 3214, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3245, 3246, 3247, 3251, 3252, 3253, 3257, 3258, 3259, 3260, 3262, 3263, 3264, 3266, 3267, 3268, 3269, 3271, 3272, 3273, 3277, 3278, 3279, 3280, 3281, 3283, 3284, 3285, 3286, 3287, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3299, 3300, 3301, 3302, 3303, 3307, 3308, 3309, 3313, 3314, 3318, 3319, 3320, 3321, 3325, 3326, 3327, 3329, 3330, 3331, 3335, 3339, 3340, 3342, 3343, 3344, 3348, 3349, 3350, 3351, 3355, 3356, 3360, 3361, 3362, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3376, 3377, 3378, 3379, 3383, 3384, 3385, 3386, 3390, 3394, 3398, 3400, 3403, 3409, 3410, 3411, 3415, 3416, 3417, 3418, 3419, 3420, 3424, 3425, 3429, 3430, 3431, 3433, 3434, 3436, 3437, 3438, 3439, 3440, 3442, 3443, 3447, 3448, 3449, 3450, 3454, 3455, 3456, 3457, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3468, 3472, 3473, 3477, 3478, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3493, 3494, 3495, 3496, 3502, 3503, 3505, 3506, 3509, 3510, 3513, 3514, 3515, 3516, 3517, 3518, 3522, 3523, 3535, 3536, 3539, 3542, 3544, 3545, 3546, 3556, 3558, 3559, 3561, 3562, 3563, 3564, 3574, 3575, 3576, 3577, 3578, 3579, 3583, 3584, 3593, 3595, 3596, 3598, 3600, 3604, 3605, 3606, 3607, 3608, 3612, 3613, 3614, 3616, 3621, 3622, 3623, 3627, 3628, 3629, 3633, 3637, 3638, 3639, 3643, 3644, 3648, 3649, 3653, 3654, 3655, 3656, 3660, 3664, 3668, 3672
101 };
102
103 static const char * const yytname[] =
104 {
105 "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT", "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP", "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR", "SHORT", "INT", "UINT", "INT64", "LONG", "SIGNED", "UNSIGNED", "FLOAT", "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT", "UNION", "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE", "DO", "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE", "CLASS", "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP", "NEWOP", "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT", "DEFINE", "VIRTUAL", "ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT", "ANY_OBJECT", "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH", "STOPWATCHING", "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER", "CLASS_NO_EXPANSION", "CLASS_FIXED", "ISPROPSET", "CLASS_DEFAULT_PROPERTY", "PROPERTY_CATEGORY", "CLASS_DATA", "CLASS_PROPERTY", "SUBCLASS", "NAMESPACE", "NEW0OP", "RENEW0", "VAARG", "DBTABLE", "DBFIELD", "DBINDEX", "DATABASE_OPEN", "ALIGNOF", "ATTRIB_DEP", "__ATTRIB", "BOOL", "_BOOL", "_COMPLEX", "_IMAGINARY", "RESTRICT", "THREAD", "WIDE_STRING_LITERAL", "BUILTIN_OFFSETOF", "'*'", "'<'", "'>'", "'('", "')'", "'~'", "';'", "'='", "','", "'}'", "'{'", "'.'", "':'", "'$'", "'['", "']'", "'&'", "'+'", "'-'", "'!'", "'/'", "'%'", "'^'", "'|'", "'?'", "$accept", "guess_type", "type", "base_strict_type", "base_strict_type_name", "strict_type", "class_function_definition_start", "constructor_function_definition_start", "destructor_function_definition_start", "virtual_class_function_definition_start", "class_function_definition_start_error", "virtual_class_function_definition_start_error", "class_function_definition", "class_function_definition_error", "instance_class_function_definition_start", "instance_class_function_definition_start_error", "instance_class_function_definition", "instance_class_function_definition_error", "data_member_initialization", "data_member_initialization_error", "data_member_initialization_list", "data_member_initialization_list_error", "data_member_initialization_list_coloned", "members_initialization_list_coloned", "members_initialization_list", "members_initialization_list_error", "instantiation_named", "instantiation_named_error", "guess_instantiation_named", "guess_instantiation_named_error", "external_guess_instantiation_named", "instantiation_unnamed", "instantiation_unnamed_error", "instantiation_anon", "instantiation_anon_error", "default_property", "default_property_error", "default_property_list", "default_property_list_error", "property_start", "property_body", "property", "class_property_start", "class_property_body", "class_property", "watch_property_list", "property_watch", "property_watch_list", "self_watch_definition", "watch_definition", "stopwatching", "firewatchers", "struct_declaration", "struct_declaration_error", "struct_declaration_list", "struct_declaration_list_error", "template_datatype", "template_type_argument", "template_type_parameter", "template_identifier_argument", "template_identifier_parameter", "template_expression_argument", "template_expression_parameter", "template_parameter", "template_parameters_list", "template_argument", "template_arguments_list", "class_entry", "class_decl", "class", "class_head", "class_error", "identifier", "primary_expression", "i18n_string", "constant", "simple_primary_expression", "anon_instantiation_expression", "anon_instantiation_expression_error", "primary_expression_error", "postfix_expression", "argument_expression_list", "argument_expression_list_error", "common_unary_expression", "unary_expression", "unary_operator", "cast_expression", "multiplicative_expression", "additive_expression", "shift_expression", "relational_expression_smaller_than", "relational_expression", "equality_expression", "and_expression", "exclusive_or_expression", "inclusive_or_expression", "logical_and_expression", "logical_or_expression", "conditional_expression", "assignment_expression", "assignment_operator", "expression", "expression_anon_inst", "postfix_expression_error", "common_unary_expression_error", "unary_expression_error", "cast_expression_error", "multiplicative_expression_error", "additive_expression_error", "shift_expression_error", "relational_expression_error", "equality_expression_error", "and_expression_error", "exclusive_or_expression_error", "inclusive_or_expression_error", "logical_and_expression_error", "logical_or_expression_error", "conditional_expression_error", "assignment_expression_error", "expression_error", "expression_anon_inst_error", "constant_expression", "constant_expression_error", "storage_class_specifier", "external_storage_class_specifier", "enumerator", "enumerator_list", "enum_specifier", "enum_specifier_nocompound", "enum_specifier_compound", "enum_specifier_compound_error", "enum_decl", "enum_class", "enum_class_error", "class_specifier", "class_specifier_error", "ext_storage", "type_qualifier", "type_qualifier_list", "type_specifier", "strict_type_specifier", "struct_declarator", "struct_declarator_list", "struct_entry", "struct_or_union_specifier_compound", "struct_or_union_specifier_compound_error", "struct_or_union_specifier_nocompound", "struct_decl", "struct_head", "struct_class", "struct_class_error", "struct_or_union", "specifier_qualifier_list", "guess_specifier_qualifier_list", "declaration_specifiers", "guess_declaration_specifiers", "external_guess_declaration_specifiers", "external_guess_declaration_specifiers_error", "_inheritance_specifiers", "inheritance_specifiers", "property_specifiers", "renew_specifiers", "new_specifiers", "identifier_list_error", "identifier_list", "direct_declarator_nofunction_type_ok", "direct_declarator_nofunction", "direct_declarator_function_start", "direct_declarator_function", "direct_declarator_function_error", "direct_declarator", "direct_declarator_function_start_type_ok", "direct_declarator_function_type_ok", "direct_declarator_function_error_type_ok", "direct_declarator_type_ok", "ext_decl", "_attrib", "attribute_word", "attribute", "attribs_list", "attrib", "direct_abstract_declarator", "direct_abstract_declarator_noarray", "pointer", "abstract_declarator", "abstract_declarator_noarray", "declarator", "declarator_type_ok", "declarator_function", "declarator_function_error", "declarator_function_type_ok", "declarator_function_error_type_ok", "declarator_nofunction_type_ok", "initializer", "initializer_error", "initializer_condition", "initializer_condition_error", "initializer_list", "init_declarator", "init_declarator_error", "init_declarator_list", "init_declarator_list_error", "type_name", "guess_type_name", "parameter_declaration", "parameter_declaration_error", "parameter_list", "parameter_list_error", "parameter_type_list", "parameter_type_list_error", "statement", "statement_error", "asm_field", "asm_field_list", "asm_statement", "labeled_statement", "labeled_statement_error", "declaration_mode", "member_access", "declaration", "external_guess_declaration", "external_guess_declaration_error", "declaration_error", "declaration_list", "declaration_list_error", "statement_list", "statement_list_error", "compound_inside", "compound_inside_error", "compound_start", "compound_statement", "compound_statement_error", "expression_statement", "selection_statement", "selection_statement_error", "iteration_statement", "iteration_statement_error", "jump_statement", "jump_statement_error", "function_definition", "function_definition_error", "string_literal", "external_declaration", "external_declaration_error", "translation_unit_error", "translation_unit", "thefile", "dbtable_definition", "dbfield_entry", "dbindex_item", "dbindex_item_list", "dbindex_entry", "dbfield_definition_list", "database_open", "dbfield", "dbindex", "dbtable", 0
106 };
107
108 static const yytype_uint16 yyr1[] =
109 {
110 0, 145, 146, 146, 147, 147, 148, 149, 150, 150, 150, 151, 151, 152, 153, 154, 154, 155, 155, 156, 156, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 159, 159, 160, 161, 162, 162, 162, 163, 163, 164, 164, 164, 165, 165, 165, 166, 166, 166, 166, 166, 166, 167, 167, 168, 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 171, 171, 172, 172, 172, 172, 172, 173, 173, 174, 174, 174, 174, 174, 175, 175, 175, 176, 176, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 178, 178, 179, 179, 179, 179, 179, 180, 181, 181, 181, 182, 182, 182, 183, 183, 183, 183, 184, 184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 186, 187, 187, 187, 187, 187, 188, 188, 188, 189, 190, 190, 191, 191, 192, 192, 193, 194, 194, 195, 195, 195, 195, 196, 196, 196, 196, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 199, 199, 199, 200, 200, 200, 200, 200, 201, 201, 202, 202, 203, 203, 203, 203, 203, 203, 203, 203, 204, 205, 205, 206, 207, 207, 208, 208, 208, 209, 209, 210, 210, 210, 210, 210, 210, 211, 211, 212, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 215, 216, 216, 216, 216, 216, 216, 217, 218, 218, 219, 219, 219, 220, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, 223, 224, 224, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 231, 231, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 251, 251, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, 257, 257, 257, 257, 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 263, 263, 263, 263, 263, 264, 264, 264, 264, 264, 264, 264, 265, 265, 265, 265, 266, 267, 268, 268, 268, 268, 268, 268, 268, 269, 269, 269, 269, 269, 269, 269, 270, 270, 270, 271, 271, 271, 272, 273, 273, 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, 277, 277, 277, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 279, 279, 280, 280, 281, 282, 282, 282, 283, 283, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, 287, 288, 288, 288, 288, 289, 289, 289, 289, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 292, 292, 293, 294, 294, 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, 295, 296, 296, 297, 297, 297, 297, 297, 297, 297, 297, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 302, 302, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 304, 304, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 308, 308, 309, 309, 309, 309, 309, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 311, 311, 311, 311, 311, 311, 311, 311, 311, 312, 313, 313, 313, 313, 313, 314, 314, 314, 314, 315, 315, 316, 317, 317, 317, 317, 317, 318, 318, 318, 318, 319, 319, 320, 320, 320, 320, 321, 321, 321, 322, 322, 322, 322, 322, 323, 323, 324, 324, 324, 325, 325, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 327, 327, 327, 327, 327, 327, 327, 327, 328, 328, 328, 328, 329, 329, 329, 329, 329, 330, 330, 330, 330, 330, 331, 331, 331, 331, 331, 332, 332, 332, 332, 333, 333, 333, 333, 334, 334, 334, 334, 335, 335, 335, 335, 336, 336, 336, 336, 337, 337, 337, 337, 338, 338, 338, 339, 339, 339, 339, 339, 340, 340, 341, 341, 342, 342, 342, 342, 342, 342, 343, 343, 343, 344, 344, 345, 345, 345, 345, 345, 345, 346, 346, 346, 346, 347, 347, 348, 348, 349, 349, 349, 349, 349, 349, 350, 350, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 352, 352, 352, 352, 352, 352, 352, 352, 353, 353, 353, 353, 353, 353, 354, 354, 354, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 356, 356, 356, 356, 356, 356, 356, 357, 357, 357, 358, 358, 358, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 362, 362, 362, 363, 363, 364, 364, 364, 364, 365, 365, 365, 365, 365, 365, 366, 367, 367, 367, 367, 367, 368, 368, 368, 368, 369, 369, 370, 370, 370, 371, 371, 371, 371, 371, 371, 371, 372, 372, 372, 372, 373, 373, 373, 373, 374, 375, 376, 376, 376, 377, 377, 377, 378, 378, 378, 378, 378, 378, 379, 379, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 382, 382, 382, 382, 382, 382, 382, 382, 383, 383, 383, 383, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 386, 386, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 388, 388, 388, 388, 388, 388, 388, 389, 389, 389, 389, 389, 390, 390, 390, 390, 391, 391, 391, 392, 392, 392, 393, 394, 394, 394, 395, 395, 396, 396, 397, 397, 397, 397, 398, 399, 400, 401
111 };
112
113 static const yytype_uint8 yyr2[] =
114 {
115 0, 2, 2, 2, 1, 2, 1, 1, 1, 4, 4, 2, 1, 3, 4, 3, 2, 2, 1, 3, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 3, 1, 3, 3, 1, 1, 3, 3, 1, 3, 3, 3, 3, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 3, 4, 5, 4, 3, 4, 2, 3, 4, 5, 4, 3, 4, 5, 5, 4, 2, 3, 3, 3, 3, 2, 4, 3, 3, 2, 4, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 2, 1, 3, 3, 1, 3, 3, 2, 4, 5, 3, 4, 3, 1, 3, 3, 3, 2, 3, 2, 4, 5, 3, 4, 3, 1, 3, 3, 2, 1, 2, 2, 2, 1, 2, 5, 7, 9, 6, 8, 4, 6, 1, 2, 3, 4, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 7, 1, 2, 4, 1, 1, 2, 3, 2, 2, 2, 3, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 3, 3, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 4, 4, 6, 2, 4, 4, 6, 1, 1, 3, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, 1, 3, 1, 2, 2, 3, 3, 5, 5, 6, 6, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 2, 4, 1, 1, 1, 4, 4, 5, 8, 2, 1, 1, 1, 2, 6, 6, 5, 5, 6, 6, 5, 5, 7, 7, 6, 6, 7, 7, 6, 6, 4, 5, 4, 6, 4, 1, 1, 1, 1, 3, 2, 1, 2, 2, 2, 1, 4, 4, 3, 4, 4, 3, 3, 2, 2, 4, 4, 3, 4, 3, 3, 2, 2, 1, 1, 3, 3, 1, 1, 3, 3, 2, 2, 2, 2, 2, 2, 4, 5, 5, 2, 4, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 1, 3, 3, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 5, 6, 6, 2, 5, 1, 1, 1, 4, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 2, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 5, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 2, 2, 1, 3, 3, 3, 3, 1, 2, 3, 3, 2, 2, 2, 1, 2, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 2, 1, 2, 2, 2, 4, 4, 3, 3, 4, 5, 4, 6, 6, 4, 5, 4, 6, 6, 5, 5, 2, 2, 2, 5, 3, 5, 6, 5, 7, 7, 8, 8, 7, 7, 3, 3, 3, 4, 3, 5, 5, 6, 7, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 2, 2, 3, 5, 2, 3, 5, 5, 5, 1, 3, 2, 2, 3, 3, 2, 3, 3, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 1, 1, 4, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 5, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 4, 4, 4, 3, 4, 4, 4, 3, 1, 3, 4, 3, 4, 4, 4, 4, 3, 2, 3, 3, 3, 3, 2, 2, 2, 3, 4, 1, 1, 2, 3, 3, 3, 3, 2, 2, 2, 3, 4, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 3, 6, 5, 3, 4, 2, 3, 3, 3, 3, 4, 4, 4, 2, 3, 3, 3, 4, 4, 3, 4, 2, 3, 3, 3, 4, 4, 1, 2, 2, 3, 1, 1, 2, 2, 3, 1, 1, 2, 2, 3, 1, 2, 3, 2, 2, 1, 2, 3, 2, 1, 2, 3, 3, 1, 2, 3, 3, 1, 2, 3, 3, 1, 2, 3, 3, 1, 2, 3, 3, 1, 3, 4, 1, 4, 2, 5, 3, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 1, 1, 3, 2, 3, 1, 3, 3, 3, 3, 3, 1, 2, 3, 3, 1, 2, 1, 2, 2, 2, 2, 3, 1, 1, 3, 3, 1, 3, 4, 3, 4, 3, 3, 4, 3, 4, 1, 3, 3, 4, 3, 3, 3, 4, 1, 3, 3, 3, 3, 3, 1, 3, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 4, 7, 1, 3, 0, 6, 8, 10, 12, 8, 10, 10, 5, 7, 9, 11, 7, 9, 9, 3, 4, 4, 3, 3, 3, 4, 4, 3, 3, 3, 4, 4, 3, 2, 3, 2, 3, 4, 4, 3, 3, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, 3, 3, 2, 5, 6, 2, 2, 2, 2, 2, 2, 1, 2, 2, 3, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 5, 5, 7, 7, 5, 5, 3, 2, 5, 4, 4, 7, 6, 6, 5, 7, 6, 4, 7, 9, 3, 4, 4, 5, 5, 6, 7, 6, 6, 5, 5, 4, 3, 2, 1, 2, 4, 3, 5, 4, 3, 2, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 4, 3, 4, 3, 3, 2, 4, 3, 4, 3, 3, 2, 1, 2, 1, 1, 2, 1, 2, 3, 3, 1, 2, 2, 2, 3, 4, 4, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 3, 1, 1, 0, 6, 6, 5, 4, 1, 2, 2, 1, 3, 3, 4, 1, 1, 2, 2, 6, 6, 6, 4
116 };
117
118 static const yytype_uint16 yydefact[] =
119 {
120 1290, 257, 6, 592, 593, 594, 596, 597, 661, 662, 663, 664, 665, 667, 670, 671, 668, 669, 655, 656, 660, 666, 756, 757, 605, 1135, 235, 679, 913, 914, 0, 0, 917, 1133, 1134, 680, 681, 672, 0, 0, 0, 0, 0, 918, 919, 683, 682, 684, 685, 598, 595, 956, 0, 1259, 804, 675, 8, 4, 0, 0, 0, 1253, 0, 1272, 880, 798, 0, 674, 0, 650, 652, 806, 808, 657, 800, 802, 739, 673, 0, 0, 651, 653, 0, 0, 0, 0, 0, 979, 654, 0, 915, 0, 0, 0, 1255, 1277, 1252, 1274, 1284, 1279, 0, 0, 0, 1270, 0, 1267, 1250, 0, 0, 1256, 0, 0, 0, 0, 1269, 1268, 0, 658, 957, 654, 958, 871, 870, 880, 912, 869, 899, 970, 0, 911, 975, 0, 0, 0, 0, 0, 0, 1145, 0, 237, 236, 0, 0, 245, 0, 244, 2, 3, 0, 5, 0, 607, 606, 0, 0, 627, 0, 0, 0, 0, 743, 0, 723, 722, 0, 1148, 594, 664, 665, 1142, 805, 8, 1254, 1273, 880, 799, 807, 809, 801, 803, 979, 987, 654, 0, 0, 1018, 0, 0, 0, 1028, 0, 0, 871, 0, 870, 0, 0, 889, 0, 0, 585, 586, 587, 589, 590, 1041, 591, 588, 894, 792, 864, 786, 0, 796, 0, 788, 790, 739, 794, 0, 0, 1040, 0, 0, 1044, 1054, 0, 0, 0, 0, 0, 0, 980, 0, 687, 688, 689, 690, 691, 693, 696, 697, 694, 695, 686, 692, 709, 698, 0, 0, 703, 702, 704, 705, 1178, 701, 0, 0, 776, 700, 782, 778, 780, 784, 699, 0, 1154, 0, 0, 0, 0, 1243, 1249, 594, 0, 1266, 1261, 1275, 0, 1262, 1278, 1260, 1276, 1271, 1283, 1286, 0, 0, 0, 0, 0, 1281, 1282, 1285, 1280, 1, 0, 1257, 1258, 1251, 0, 0, 458, 263, 0, 0, 0, 0, 0, 0, 352, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 347, 0, 350, 0, 0, 346, 348, 349, 351, 0, 265, 0, 264, 306, 272, 271, 258, 457, 0, 344, 354, 0, 356, 363, 368, 374, 0, 383, 392, 397, 402, 407, 410, 413, 430, 0, 479, 478, 480, 482, 489, 494, 499, 508, 517, 522, 527, 532, 535, 538, 0, 260, 296, 297, 298, 299, 0, 0, 0, 0, 0, 659, 959, 0, 901, 0, 906, 0, 0, 0, 0, 0, 0, 0, 912, 971, 976, 0, 881, 973, 883, 978, 974, 672, 4, 229, 228, 227, 233, 0, 264, 354, 219, 480, 0, 206, 249, 0, 0, 248, 255, 0, 0, 1136, 1137, 0, 168, 0, 169, 170, 0, 0, 0, 0, 0, 172, 246, 0, 0, 0, 0, 29, 31, 163, 175, 188, 0, 187, 0, 116, 119, 0, 195, 128, 0, 164, 140, 0, 167, 183, 196, 199, 0, 0, 264, 0, 0, 176, 0, 983, 654, 0, 12, 18, 0, 811, 810, 818, 812, 0, 814, 816, 739, 823, 822, 250, 256, 247, 0, 0, 239, 238, 640, 599, 602, 639, 643, 629, 0, 0, 0, 222, 223, 224, 225, 0, 217, 0, 752, 745, 0, 0, 742, 749, 744, 0, 0, 755, 746, 0, 0, 725, 724, 0, 0, 0, 0, 0, 980, 988, 0, 1020, 0, 0, 1239, 1245, 0, 1241, 1247, 1029, 1143, 0, 0, 0, 1144, 888, 0, 264, 583, 584, 0, 0, 0, 0, 607, 606, 608, 0, 726, 0, 0, 664, 0, 0, 1038, 793, 8, 880, 787, 797, 789, 791, 795, 912, 869, 654, 961, 960, 0, 0, 0, 893, 0, 0, 892, 0, 0, 0, 1070, 0, 890, 891, 981, 0, 982, 0, 0, 1152, 1140, 1151, 76, 1149, 690, 691, 1138, 880, 777, 783, 779, 781, 785, 654, 0, 1153, 1150, 1141, 0, 1155, 0, 1242, 1248, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 1237, 0, 0, 0, 698, 0, 0, 0, 157, 1074, 1075, 701, 0, 0, 0, 264, 0, 354, 0, 0, 480, 567, 572, 0, 1072, 1160, 1163, 1080, 1071, 1084, 0, 0, 0, 0, 1182, 1180, 1073, 1086, 0, 1087, 1078, 1085, 0, 1088, 1179, 0, 0, 1263, 880, 0, 0, 0, 1273, 0, 869, 987, 654, 0, 0, 0, 0, 1249, 1287, 0, 0, 413, 0, 0, 916, 0, 337, 472, 0, 333, 468, 334, 469, 0, 858, 848, 856, 850, 852, 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 476, 0, 274, 0, 0, 0, 762, 758, 760, 764, 1032, 0, 261, 0, 301, 302, 0, 325, 0, 324, 0, 460, 93, 0, 270, 459, 0, 314, 315, 0, 0, 0, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 439, 0, 0, 336, 471, 335, 470, 0, 0, 0, 0, 0, 0, 0, 375, 500, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 676, 0, 322, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 677, 678, 0, 0, 0, 1302, 1303, 0, 0, 0, 875, 0, 0, 0, 879, 0, 0, 0, 905, 904, 902, 903, 912, 971, 976, 882, 884, 998, 10, 9, 0, 0, 0, 654, 960, 207, 0, 0, 264, 206, 0, 0, 830, 824, 826, 828, 0, 0, 0, 16, 20, 0, 185, 184, 186, 0, 0, 0, 0, 347, 0, 264, 0, 26, 0, 21, 28, 24, 0, 25, 23, 22, 30, 32, 190, 83, 191, 122, 162, 0, 0, 0, 0, 132, 0, 0, 134, 0, 0, 143, 161, 200, 197, 202, 201, 198, 203, 115, 0, 0, 0, 880, 720, 177, 995, 0, 991, 654, 0, 11, 17, 710, 896, 1040, 0, 0, 0, 984, 0, 0, 173, 165, 192, 181, 0, 180, 0, 166, 880, 179, 0, 607, 606, 819, 813, 815, 817, 0, 0, 0, 604, 642, 0, 0, 7, 212, 208, 741, 0, 0, 0, 0, 1017, 1024, 1025, 1026, 64, 53, 92, 39, 38, 57, 69, 45, 48, 0, 74, 56, 0, 0, 0, 1008, 1010, 0, 1007, 1009, 0, 41, 44, 912, 981, 972, 989, 977, 998, 990, 0, 999, 1002, 1019, 1021, 1238, 1244, 1240, 1246, 1023, 1030, 1027, 1031, 887, 885, 886, 1067, 1049, 1058, 612, 611, 0, 0, 458, 727, 0, 0, 458, 728, 0, 0, 0, 942, 880, 0, 0, 654, 960, 0, 0, 0, 934, 0, 0, 0, 0, 0, 1039, 963, 0, 0, 962, 1043, 1042, 0, 863, 1066, 866, 1052, 1060, 0, 862, 1065, 865, 1050, 1059, 0, 1069, 1063, 867, 1045, 1055, 0, 1064, 868, 1047, 1056, 920, 921, 924, 923, 922, 0, 925, 927, 0, 0, 0, 0, 77, 0, 1139, 1157, 0, 0, 0, 0, 0, 0, 1221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 1072, 1219, 1077, 1079, 0, 0, 1227, 1228, 1229, 0, 1235, 0, 0, 0, 0, 0, 0, 158, 144, 1083, 1082, 1081, 0, 0, 0, 573, 0, 1076, 0, 0, 0, 0, 453, 0, 0, 458, 0, 0, 0, 0, 1161, 1164, 1166, 0, 1162, 1165, 1167, 0, 1193, 1089, 1264, 1265, 237, 236, 0, 0, 0, 988, 0, 0, 1245, 0, 1247, 1248, 0, 0, 1146, 0, 0, 770, 264, 772, 766, 768, 774, 1034, 0, 0, 0, 0, 0, 0, 859, 849, 857, 851, 853, 855, 654, 966, 965, 0, 844, 834, 842, 836, 838, 840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 763, 759, 761, 765, 1033, 0, 0, 458, 0, 0, 0, 105, 0, 300, 458, 0, 0, 94, 458, 0, 0, 461, 313, 309, 329, 463, 464, 328, 465, 312, 0, 0, 435, 431, 303, 357, 483, 358, 484, 359, 485, 364, 490, 365, 491, 369, 495, 370, 496, 377, 502, 378, 503, 376, 501, 388, 513, 384, 509, 389, 514, 385, 510, 395, 520, 393, 518, 400, 525, 398, 523, 405, 530, 403, 528, 408, 533, 411, 536, 563, 0, 579, 0, 0, 0, 0, 437, 433, 462, 321, 318, 0, 466, 467, 320, 0, 0, 436, 432, 360, 486, 361, 487, 362, 488, 366, 492, 367, 493, 371, 497, 372, 498, 381, 506, 382, 507, 379, 504, 380, 505, 390, 515, 386, 511, 391, 516, 387, 512, 396, 521, 394, 519, 401, 526, 399, 524, 406, 531, 404, 529, 409, 534, 412, 537, 564, 0, 0, 0, 0, 438, 434, 0, 0, 1295, 1298, 0, 0, 1293, 1304, 1305, 0, 0, 874, 872, 873, 878, 876, 877, 234, 232, 231, 230, 264, 654, 963, 241, 0, 207, 240, 127, 0, 125, 831, 825, 827, 829, 0, 654, 0, 15, 19, 0, 182, 995, 654, 0, 139, 0, 137, 831, 0, 264, 654, 0, 27, 84, 117, 120, 118, 121, 129, 130, 131, 133, 141, 142, 114, 112, 113, 13, 712, 715, 0, 0, 908, 1040, 0, 0, 0, 996, 992, 0, 0, 711, 880, 897, 985, 986, 880, 193, 194, 178, 0, 0, 0, 0, 600, 601, 603, 0, 0, 632, 628, 0, 0, 0, 0, 0, 226, 218, 216, 0, 0, 0, 36, 37, 75, 54, 0, 55, 0, 63, 61, 72, 67, 73, 60, 90, 39, 70, 62, 91, 59, 71, 68, 0, 58, 0, 690, 33, 35, 34, 1011, 1012, 0, 620, 610, 0, 615, 609, 0, 458, 729, 0, 0, 0, 960, 0, 932, 943, 944, 937, 935, 936, 0, 964, 945, 0, 0, 938, 0, 0, 0, 1053, 1061, 1040, 1051, 1046, 1048, 1057, 931, 0, 0, 0, 928, 706, 707, 708, 458, 0, 0, 1114, 1124, 1119, 0, 0, 0, 1115, 1126, 1120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1218, 1206, 0, 1183, 264, 0, 0, 0, 1226, 1232, 1233, 1230, 1231, 0, 0, 0, 0, 145, 1111, 1121, 1116, 0, 159, 570, 568, 0, 0, 0, 451, 574, 571, 569, 452, 575, 0, 989, 1244, 1246, 1147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 771, 773, 767, 769, 775, 1035, 0, 293, 291, 0, 0, 950, 654, 0, 0, 0, 0, 0, 0, 968, 0, 967, 0, 0, 0, 845, 835, 843, 837, 839, 841, 0, 267, 0, 266, 295, 0, 0, 0, 0, 0, 0, 1309, 0, 0, 0, 0, 0, 355, 481, 262, 108, 106, 327, 326, 99, 103, 310, 0, 311, 307, 308, 580, 0, 0, 0, 0, 0, 0, 319, 316, 317, 0, 0, 0, 0, 1297, 1296, 1300, 0, 0, 0, 1292, 1291, 0, 960, 218, 0, 0, 123, 126, 0, 0, 0, 0, 0, 996, 0, 135, 138, 0, 14, 458, 0, 0, 721, 0, 880, 909, 997, 993, 994, 713, 716, 898, 174, 820, 0, 243, 242, 0, 631, 0, 213, 214, 204, 209, 210, 220, 0, 0, 51, 46, 49, 52, 47, 50, 37, 43, 40, 42, 0, 0, 1015, 1016, 619, 0, 614, 0, 963, 962, 933, 946, 947, 940, 939, 941, 1037, 1036, 0, 930, 929, 79, 1112, 1122, 1117, 0, 1113, 1123, 1118, 0, 0, 0, 0, 0, 1222, 1196, 0, 0, 1195, 1225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1203, 0, 1184, 1207, 1185, 1208, 0, 0, 0, 1096, 916, 1096, 0, 0, 155, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 292, 860, 0, 965, 0, 948, 951, 952, 277, 278, 0, 969, 953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 281, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 477, 0, 331, 330, 455, 581, 422, 555, 414, 539, 426, 559, 418, 547, 456, 582, 423, 556, 415, 540, 427, 560, 419, 548, 424, 557, 416, 541, 428, 561, 420, 549, 425, 558, 417, 542, 429, 562, 421, 550, 1299, 1301, 1294, 832, 0, 124, 150, 997, 0, 136, 86, 910, 0, 0, 821, 0, 0, 0, 0, 0, 0, 205, 0, 221, 0, 0, 1013, 1014, 1003, 0, 0, 0, 0, 926, 1186, 1187, 1190, 1191, 1194, 1224, 0, 0, 0, 0, 0, 0, 0, 1200, 1209, 0, 0, 0, 0, 1094, 0, 1091, 1104, 0, 1096, 0, 1096, 0, 0, 0, 0, 475, 474, 967, 949, 861, 954, 955, 275, 276, 846, 285, 286, 0, 0, 0, 0, 279, 280, 289, 290, 0, 0, 294, 1307, 1308, 1306, 343, 833, 0, 714, 717, 719, 718, 0, 0, 215, 211, 0, 1000, 1005, 0, 0, 0, 0, 0, 0, 0, 1214, 1198, 0, 0, 1199, 1211, 0, 1202, 1213, 0, 0, 0, 1096, 0, 1096, 0, 1096, 0, 1097, 0, 0, 0, 148, 0, 153, 0, 156, 0, 847, 283, 284, 0, 287, 288, 171, 1001, 1188, 1189, 0, 0, 1197, 1204, 0, 1201, 1212, 0, 1108, 1095, 0, 0, 0, 1105, 0, 0, 1096, 1096, 0, 1096, 147, 146, 151, 149, 0, 0, 355, 481, 269, 0, 0, 0, 1092, 0, 0, 1096, 1101, 0, 0, 1098, 0, 0, 154, 1205, 0, 1109, 1110, 1106, 0, 0, 0, 0, 1096, 152, 0, 0, 1102, 1103, 1099, 0, 1093, 1107, 0, 1100
121 };
122
123 static const yytype_int16 yydefgoto[] =
124 {
125 -1, 209, 55, 56, 975, 333, 441, 442, 443, 444, 445, 446, 447, 448, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 256, 257, 449, 450, 58, 334, 335, 746, 775, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 2093, 2094, 2095, 463, 646, 647, 648, 464, 465, 466, 467, 1787, 409, 505, 410, 506, 411, 507, 508, 867, 412, 413, 59, 60, 61, 62, 63, 336, 337, 338, 339, 340, 1001, 1002, 341, 342, 749, 1269, 343, 651, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 734, 829, 653, 1326, 360, 361, 654, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 655, 656, 1127, 1328, 554, 555, 211, 65, 498, 499, 212, 67, 213, 214, 68, 69, 70, 71, 72, 73, 215, 118, 216, 262, 932, 933, 217, 218, 219, 77, 78, 79, 80, 81, 220, 741, 1203, 265, 471, 83, 84, 488, 489, 877, 1226, 718, 1050, 1051, 124, 85, 472, 87, 473, 127, 128, 129, 936, 130, 119, 89, 1099, 1100, 1101, 90, 580, 1217, 475, 582, 1219, 133, 185, 476, 477, 187, 940, 135, 1019, 1537, 1007, 1008, 1538, 188, 189, 190, 191, 742, 1204, 224, 225, 226, 227, 228, 229, 659, 660, 2013, 2014, 661, 662, 663, 93, 478, 266, 94, 95, 267, 268, 269, 666, 667, 668, 669, 270, 670, 898, 1621, 1130, 673, 674, 675, 1131, 677, 96, 97, 375, 98, 99, 100, 101, 102, 103, 835, 1398, 1399, 836, 837, 376, 377, 378, 379
126 };
127
128 static const int yypact[] =
129 {
130 39187, -1899, -1899, -1899, -1899, 28, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1069, 108, -1899, -1899, -1899, -1899, -1899, -1899, 247, 289, 412, 684, 114, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 2473, 2733, -1899, -1899, -1899, 241, -1899, 473, 684, 570, -1899, 243, 511, 1084, -1899, 314, -1899, 630, -1899, 602, -1899, -1899, -1899, -1899, -1899, 1093, -1899, 669, 710, -1899, 768, 1102, 38788, 2421, 232, 39484, -1899, 660, 811, -1899, 1887, 42123, 37351, -1899, -1899, -1899, -1899, -1899, -1899, 39290, 38383, 939, -1899, 108, -1899, -1899, 114, 114, 946, 873, 114, 29983, 684, -1899, -1899, 608, -1899, 2473, -1899, -1899, -1899, 822, -1899, 309, 1051, -1899, -1899, 39582, -1899, -1899, 2733, 1716, 1792, 2148, 1291, 23700, -1899, 897, 66, 555, 31128, 41746, -1899, 31255, -1899, -1899, -1899, 684, -1899, 1240, 1213, 1331, 166, 41746, -1899, 41476, 31382, 41746, 31509, -1899, 31636, -1899, -1899, 684, -1899, -1899, 271, 947, -1899, -1899, 950, -1899, 511, 649, -1899, -1899, -1899, -1899, -1899, 1262, 1409, 660, 1716, 1265, 1291, 42123, 42123, 416, -1899, 1354, 952, 961, 947, 535, 660, 1363, -1899, 28283, 979, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 672, -1899, 395, -1899, 991, -1899, -1899, 1013, -1899, 1019, 1548, 36431, 408, 515, -1899, -1899, 758, 775, 1038, 1056, 144, 1064, -1899, 144, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1104, 1107, -1899, -1899, -1899, -1899, -1899, -1899, 181, 36, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 38988, -1899, 17556, 6071, 42328, 17696, -1899, 1063, 1174, 1137, -1899, -1899, 511, 38888, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 602, 768, 40072, 42123, 40360, -1899, -1899, -1899, -1899, -1899, 1164, 946, 946, -1899, 29983, 504, -1899, -1899, 30068, 30153, 30153, 1142, 41926, 29983, -1899, -1899, 1198, 1232, 41926, 29983, 1237, 1244, 1271, 1280, 1283, 30238, -1899, 1311, -1899, 11066, -1899, 114, 25648, -1899, -1899, -1899, -1899, 1325, -1899, 84, 1341, -1899, -1899, 108, -1899, -1899, 12949, -1899, 1485, 28368, -1899, 1014, 902, 1199, 29983, 844, 1114, 1305, 1376, 1359, 1514, 135, 1485, 1412, 719, -1899, 1485, -1899, 1097, 1168, 1550, 1113, 1615, 1404, 1403, 1406, 1536, 286, 1485, 946, -1899, -1899, -1899, -1899, 1462, 159, 41566, 1473, 1480, -1899, -1899, 28453, -1899, 28538, -1899, 786, 829, 1497, 1519, 1716, 2692, 2694, 309, -1899, -1899, 905, -1899, -1899, -1899, -1899, -1899, 1198, 1325, -1899, -1899, -1899, -1899, 682, 971, -1899, 1199, -1899, 1550, 36546, -1899, 23823, 41476, -1899, 697, 41206, 40456, -1899, -1899, 1469, -1899, 684, -1899, -1899, 108, 40648, 40264, 10801, 41836, -1899, -1899, 1413, 1506, 1506, 806, -1899, 1538, -1899, -1899, -1899, 93, 1048, 137, -1899, -1899, 30485, 1539, -1899, 1223, -1899, -1899, 696, -1899, -1899, -1899, 1544, 30620, 30747, 439, 399, 719, 37561, 39680, -1899, 660, 1887, -1899, -1899, 37456, -1899, -1899, 1556, -1899, 684, -1899, -1899, -1899, 2130, 41926, -1899, 697, -1899, 30874, 31001, 1561, 1572, -1899, 1557, -1899, 1566, -1899, -1899, 2525, 1575, 927, -1899, -1899, -1899, -1899, 847, 627, 36546, 863, -1899, 31763, 31890, -1899, 863, -1899, 32017, 32144, 863, -1899, 32271, 32398, -1899, -1899, 2733, 2733, 2733, 21893, 905, 1262, 1409, 905, -1899, 28623, 6071, -1899, 1063, 6071, -1899, 1063, -1899, -1899, 2733, 2733, 905, -1899, -1899, 1564, 328, -1899, -1899, 1567, 1573, 41296, 1512, 1585, 1586, -1899, 32525, -1899, 32652, 547, -1899, 36198, 28708, 2733, -1899, 1138, 672, -1899, -1899, -1899, -1899, -1899, 309, 1583, 660, 556, 70, 379, 1617, 1581, -1899, 40936, 1590, -1899, 41026, 1593, 41116, 1594, 41386, -1899, -1899, -1899, 1294, -1899, 29983, 684, -1899, -1899, 1595, -1899, -1899, 271, 947, -1899, 1596, -1899, -1899, -1899, -1899, -1899, 660, 1388, 952, -1899, -1899, 1597, -1899, 17836, -1899, 1063, -1899, 222, 28793, 1598, 1602, 1606, 190, 17976, 1608, 108, 1607, 1611, 18116, 1198, 2305, 1609, 1616, 108, -1899, -1899, 1325, 1622, 1623, 1624, 1395, 16151, 1485, 16296, 25733, 1485, 1485, -1899, 16436, 39088, -1899, -1899, -1899, -1899, -1899, 18256, 18396, 18536, 18676, -1899, -1899, -1899, 1063, 18816, -1899, -1899, -1899, 18956, -1899, -1899, 114, 114, 946, 685, 684, 1396, 1604, -1899, 309, 232, -1899, 660, 1716, 42123, 42123, 6071, -1899, -1899, 40168, 29983, 347, 1628, 448, -1899, 11861, -1899, -1899, 28878, -1899, -1899, -1899, -1899, 41926, 1636, -1899, -1899, -1899, -1899, -1899, 36891, 41926, 23946, 108, 37006, 41926, 29983, 114, 114, 114, 29983, 11066, -1899, -1899, 10428, -1899, 13106, 13251, 13396, -1899, -1899, -1899, -1899, 10253, 1635, 94, 22032, -1899, -1899, 175, -1899, -26, -1899, 22171, 1631, -1899, 22310, -1899, -1899, 1563, -1899, -1899, 25818, 1569, 29983, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 28368, 198, -1899, -1899, -1899, -1899, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 1199, 1550, 29983, 29983, -1899, 29983, 28368, 28368, 28368, 28368, 28368, 29983, 29983, 13541, 28368, -1899, 1579, -1899, -1899, 25903, 1580, 29983, 28368, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983, 28368, 28368, 28368, 28368, 28368, 29983, 29983, 13686, 28368, -1899, -1899, 257, 672, 41836, -1899, -1899, 38482, 41566, 41566, -1899, 1630, 1632, 1633, -1899, 1634, 1637, 1639, -1899, -1899, -1899, -1899, 309, -1899, -1899, -1899, -1899, 1641, -1899, -1899, 23700, 23700, 36316, 660, 718, -1899, 337, 849, 1735, 36546, 870, 1646, 1645, -1899, -1899, -1899, 2130, 36661, 40552, -1899, -1899, 108, -1899, -1899, -1899, 37666, 1648, 108, 36776, 1981, 24069, 2321, 40744, -1899, 1656, -1899, 1063, -1899, 1063, -1899, -1899, -1899, 1063, -1899, 1642, -1899, 1010, -1899, -1899, 4135, 4135, 1506, 1506, -1899, 1506, 212, -1899, 1506, 1506, -1899, -1899, 893, -1899, 1544, 893, -1899, 1544, 1150, 28963, 2288, 29983, 892, -1899, 1658, 309, 39778, -1899, 660, 1716, -1899, -1899, 916, 979, 36431, 30350, 793, 144, -1899, 144, 2733, -1899, -1899, -1899, -1899, 201, -1899, 227, -1899, 439, 37561, 23700, -1899, -1899, 1663, -1899, -1899, -1899, 41476, 41476, 29983, 108, -1899, 32779, 193, -1899, 650, 747, -1899, 41476, 108, 651, 108, 1411, -1899, -1899, -1899, -1899, -1899, -1899, 1506, -1899, -1899, -1899, -1899, -1899, 37771, 1465, -1899, 22449, 42226, 22588, -1899, -1899, 12607, -1899, -1899, 40840, -1899, -1899, 309, 1262, -1899, 1409, -1899, 309, -1899, 28623, -1899, -1899, -1899, -1899, -1899, 1063, -1899, 1063, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1566, 206, 299, 1668, -1899, 32906, 33033, 1669, -1899, 33160, 33287, 33414, -1899, 615, 478, 517, 1873, 1966, 1676, 1679, 1680, -1899, 1672, 1675, 1678, 660, 905, 1291, 70, 39876, 29048, 556, -1899, -1899, 41656, -1899, -1899, 672, -1899, -1899, 41656, -1899, -1899, 672, -1899, -1899, 41656, -1899, -1899, 672, -1899, -1899, 41656, -1899, 672, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1690, 1692, -1899, 1078, 1693, 1694, 170, -1899, 22727, -1899, -1899, 19096, 1684, 1687, 19236, 29983, 29983, -1899, 29133, 29218, 1691, 1701, 1706, 11397, 1707, 108, 25988, 2583, 1468, 26073, -1899, 1775, -1899, -1899, 26158, 1712, -1899, -1899, -1899, 1717, 1722, 26243, 16576, 114, 1709, 29983, 29983, 108, -1899, -1899, -1899, -1899, 21615, 358, 28368, -1899, 1360, -1899, 29983, 13831, 13976, 28368, -1899, 29983, 14121, 1597, 19376, 19516, 19656, 19796, -1899, -1899, -1899, 19936, -1899, -1899, -1899, 20076, -1899, -1899, 946, 946, 1721, 1730, 35954, 36080, 905, -1899, 905, 6071, -1899, 6071, -1899, -1899, 1727, 28368, -1899, 28368, 861, -1899, 439, -1899, -1899, -1899, -1899, 10253, 1736, 1744, 42016, 23700, 39386, 29983, 1733, -1899, -1899, -1899, -1899, -1899, 660, 1710, 1746, 1738, 1756, -1899, -1899, -1899, -1899, -1899, 37121, 26328, 1755, 1758, 1763, 29983, 1757, 37236, 1752, 618, 35, 72, 1764, 1770, 1768, -1899, 108, -1899, -1899, -1899, -1899, -1899, 29983, 114, 239, 37873, 22866, 1771, -1899, 28368, -1899, 254, 37975, 23005, -1899, 262, 38077, 23144, -1899, -1899, -1899, -1899, 1136, 1773, -1899, -1899, -1899, 26413, 6546, -1899, -1899, 1771, -1899, -1899, -1899, -1899, -1899, -1899, 1014, 1097, 1014, 1097, 902, 1168, 902, 1168, 1199, 1550, 1199, 1550, 1199, 1550, -1899, -1899, 844, 1113, -1899, -1899, 844, 1113, -1899, -1899, 1114, 1615, -1899, -1899, 1305, 1404, -1899, -1899, 1376, 1403, 1359, 1406, 1514, 1536, -1899, 53, -1899, 26498, 1767, 7374, 1772, -1899, -1899, -1899, -1899, -1899, 1218, -1899, -1899, -1899, 26583, 24713, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1014, 1097, 1014, 1097, 902, 1168, 902, 1168, 1199, 1550, 1199, 1550, 1199, 1550, 1199, 1550, -1899, -1899, 844, 1113, -1899, -1899, 844, 1113, -1899, -1899, 1114, 1615, -1899, -1899, 1305, 1404, -1899, -1899, 1376, 1403, 1359, 1406, 1514, 1536, -1899, 26668, 1776, 24798, 1777, -1899, -1899, 108, 108, -1899, -1899, 208, 1108, -1899, -1899, -1899, 38584, 38686, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1287, 2555, 718, -1899, 23700, 108, -1899, -1899, 23700, -1899, -6, -1899, -1899, -1899, 518, 660, 1716, -1899, -1899, 294, 1658, 1641, 660, 1716, -1899, 1788, -1899, 565, 559, 1467, 2733, 1801, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1316, -1899, -1899, -1899, -1899, -1899, 23283, 2369, 979, 36431, 12778, 817, 905, 309, -1899, 905, 29983, -1899, 587, -1899, -1899, -1899, 1802, 1642, 1631, 1658, 888, 23700, 955, 1041, -1899, -1899, -1899, 33541, 33668, 1803, -1899, 3552, 41836, 41836, 41836, 41836, -1899, -1899, -1899, 29983, 1800, 29303, -1899, 1063, -1899, -1899, 29388, -1899, 29473, -1899, -1899, -1899, 1491, 1465, -1899, -1899, 1506, -1899, -1899, -1899, -1899, -1899, 1491, 1465, -1899, 29558, 4798, -1899, -1899, -1899, -1899, -1899, 20216, -1899, -1899, 215, -1899, -1899, 248, 1804, -1899, 33795, 33922, 660, 1966, 1806, -1899, -1899, -1899, -1899, -1899, -1899, 905, 556, -1899, 1808, 1810, -1899, 1805, 1807, 1809, -1899, -1899, 36431, -1899, -1899, -1899, -1899, -1899, 29983, 1811, 1275, -1899, -1899, -1899, -1899, 268, 38179, 23422, -1899, -1899, -1899, 20356, 21615, 21615, -1899, -1899, -1899, 20496, 26753, 16716, 26838, 26923, 24435, 27008, 16856, 21754, 1814, 1817, 21754, 29983, 29643, 1880, 27093, 1722, 24883, 114, 21754, 1815, 12175, 11397, -1899, 1496, 27178, 24968, 27263, -1899, -1899, -1899, -1899, -1899, 107, 114, 1813, 1250, -1899, -1899, -1899, -1899, 20636, -1899, -1899, -1899, 1818, 1820, 108, -1899, -1899, -1899, -1899, -1899, -1899, 41476, -1899, -1899, -1899, -1899, 27348, 1819, 25053, 1821, 27433, 1822, 25138, 1826, 1836, 1839, -1899, -1899, -1899, -1899, -1899, -1899, 14266, -1899, -1899, 1840, 1073, -1899, 2824, 1841, 1843, 1846, 1837, 1852, 23700, 1746, 39974, 1710, 29983, 23700, 29983, 1829, -1899, -1899, -1899, -1899, -1899, 1847, -1899, 29728, -1899, -1899, 1860, 1864, 29983, 29983, 1870, 10428, -1899, 108, 108, 29983, 14411, 108, -1899, -1899, 946, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 14556, -1899, -1899, -1899, -1899, 28368, 14701, 14846, 28368, 14991, 15136, -1899, -1899, -1899, 15281, 15426, 15571, 15716, -1899, -1899, -1899, 257, 1845, 344, -1899, -1899, 660, 718, 1994, 1118, 23700, -1899, -1899, 1876, 905, 905, 1506, 905, 1641, 1881, -1899, -1899, 1884, -1899, 281, 38281, 23561, -1899, 660, 881, -1899, 309, -1899, -1899, 1888, 1891, -1899, -1899, -1899, 1152, -1899, -1899, 34049, 1890, 34176, -1899, 1892, 36546, -1899, 1897, -1899, 29983, 28623, 1907, -1899, -1899, 1907, -1899, -1899, -1899, 1907, -1899, -1899, 20776, 20916, -1899, -1899, -1899, 34303, -1899, 34430, 70, 556, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1291, 27518, -1899, -1899, -1899, -1899, -1899, -1899, 21056, -1899, -1899, -1899, 21196, 11397, 24157, 11397, 24157, 12412, -1899, 24574, 16996, -1899, -1899, 21754, 21754, 27603, 11397, 27688, 24296, 1904, 25223, 27773, 140, 21336, -1899, 29983, -1899, 12412, -1899, 12175, 11397, 25308, 29813, 12, 1906, 12, 200, 1900, -1899, 108, 29983, 29983, 108, 28368, 28368, 28368, 28368, 28368, 28368, 28368, 28368, 15861, 16006, -1899, -1899, -1899, 660, 1746, 1909, -1899, -1899, -1899, -1899, -1899, 1167, 1710, -1899, 1910, 1911, 1901, 1908, 1187, 1918, 1919, 23700, 29983, 11066, -1899, -1899, -1899, 1922, 1926, 1927, 1928, 29983, 1920, 1940, 1944, 1946, -1899, 1949, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, 448, -1899, -1899, -1899, -1899, 1231, -1899, -1899, 1641, 28368, -1899, -1899, -1899, 29983, 29983, -1899, 34557, 34684, 34811, 34938, 35065, 41836, -1899, 41836, -1899, 25393, 21476, -1899, -1899, -1899, 35192, 35319, 35446, 35573, -1899, 1978, 1982, -1899, -1899, -1899, -1899, 11397, 29983, 29898, 1906, 17136, 17276, 25478, -1899, 12412, 24574, 27858, 17416, 108, -1899, 1124, 593, -1899, 126, 12, 1953, 12, 360, 616, 1951, 1255, -1899, -1899, 1710, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, -1899, 1236, 1945, 1948, 1957, -1899, -1899, -1899, -1899, 1950, 1959, -1899, -1899, -1899, -1899, -1899, -1899, 1960, -1899, -1899, -1899, -1899, 35700, 35827, -1899, -1899, 27943, -1899, -1899, 11397, 11397, 28028, 25563, 11397, 28113, 24296, 1962, -1899, 11397, 29983, -1899, -1899, 24574, -1899, -1899, 1961, 1980, 12, 12, 29983, 12, 1983, 12, 1349, -1899, 205, 1506, 579, -1899, 621, -1899, 1974, -1899, 108, -1899, -1899, -1899, 29303, -1899, -1899, -1899, -1899, -1899, -1899, 1962, 11397, -1899, -1899, 28198, -1899, -1899, 114, -1899, -1899, 1256, 1984, 1257, -1899, 1431, 1986, 12, 12, 1987, 12, -1899, -1899, -1899, -1899, 360, 721, -1899, -1899, -1899, 11397, 610, 1989, -1899, 1990, 1992, 12, -1899, 1298, 1301, -1899, 1533, 623, -1899, -1899, 29983, -1899, -1899, -1899, 1312, 1993, 1995, 1996, 12, -1899, 2001, 2000, -1899, -1899, -1899, 1338, -1899, -1899, 2011, -1899
131 };
132
133 static const yytype_int16 yypgoto[] =
134 {
135 -1899, 151, 58, 9484, -1899, 2031, -1899, -1899, -1899, -1899, -1899, -1899, 1649, 1662, -966, -1899, -972, -339, 121, 130, -953, -943, -892, -1899, -691, -682, -1899, -1899, 1664, 1665, -1899, 2123, 3736, -1899, -225, 736, 753, -1899, -1899, -1899, -1899, 1671, -1899, -1899, -1899, -634, -1898, -14, -1899, -1899, -1899, -1899, -278, 2317, -22, 11, 652, -847, -1899, -793, -1899, -855, -1899, 1176, -124, 1296, -884, 1, 1872, -13, 1874, -4, 0, -1899, 1248, -1899, -1899, 3946, 4235, -1899, 5852, -413, 1362, -1899, 3731, -1899, -330, 503, 799, 401, -1899, -436, -703, -470, -151, -423, -10, 596, 7321, 4625, -178, 8783, -803, 1754, -1899, 4298, -326, 629, 853, 1443, 275, 24, 67, 238, 189, 287, 699, 5125, -422, 7552, -799, -114, 1044, 10555, -59, 1195, -144, 2639, 11101, 8232, -1899, -1899, -1899, -64, -40, -35, -1899, 6856, -1899, 1474, 2550, 702, -810, 3233, 8991, -1899, 11338, -1899, -1899, -1899, -29, 3260, -1899, -1899, 1130, 6347, -19, -1899, -1899, 1310, 1734, 1451, 1862, -84, -70, 7545, 10130, 4094, 6722, -448, -127, -421, 666, -920, 74, 2901, -1899, -1899, -1078, -1899, 4468, -559, -1208, 7654, 362, -625, 50, 359, 218, 1740, -281, -566, -458, -995, -533, -924, -917, 385, 755, 1128, -38, 1914, -708, 261, 197, -468, -438, -1899, -89, -77, 8198, 146, 97, -1371, -1899, -1899, -1899, 2082, -1899, 2219, 2090, -58, 2586, -8, 1916, 1011, 1015, -1899, -1899, -1899, -91, 367, -1531, -203, -1899, -1899, -1899, 6, -1899, 2091, -55, 19, 2094, 1587, -1899, -1899, -1899, 2098, -817, 454, -1899, -795, 851, -1899, -1899, -1899, -1899
136 };
137
138 static const yytype_int16 yytable[] =
139 {
140 64, 271, 222, 1020, 1461, 399, 1415, 693, 1145, 502, 1684, 1462, 1228, 941, 1413, 778, 223, 106, 1474, 779, 1402, 1536, 1067, 1578, 175, 1390, 1516, 947, 1526, 1392, 108, 110, 509, 1522, 945, 280, 286, 603, 282, 393, 299, 115, 1403, 176, 391, 1518, 196, 1528, 177, 109, 935, 394, 123, 1251, 1725, 1519, 399, 1529, 392, 140, 1258, 116, 1252, 1262, 149, 148, 152, 672, 1414, 1259, 172, 287, 1263, 1, 278, 1436, 1486, 299, 1852, 173, 276, 288, 163, 174, 123, 752, 210, 285, 1034, 277, 1863, 123, 1308, 64, 904, 538, 541, 1232, 2, 299, 64, 64, 1255, 747, 296, 104, 1520, 121, 1530, 1256, 1864, 1, 299, 381, 1018, 1751, 384, 138, 1075, 106, 1374, 1081, 492, 1087, 1752, 1092, 297, 298, 210, 2086, 301, 123, 123, 184, 184, 514, 414, 519, 906, 523, 149, 468, 481, 1864, 468, 299, 2012, 1, 495, 1485, 497, 54, 799, 497, 481, 493, 510, 468, 481, 468, 105, 468, 1, 1706, 526, 604, 774, 500, 515, 1, 520, 380, 524, 1, 149, 148, 1253, 623, 537, 540, 801, 396, 601, 123, 809, -454, 1503, 421, 922, 925, 939, 1115, -8, 566, 1495, 719, 1, 2133, 551, 1277, 1707, 723, 1483, 2018, 567, 299, 400, 1539, 2127, 1, 149, 1, 559, 753, 922, 925, 1808, 106, 92, 175, 163, 571, 905, 618, 286, 1249, 286, 616, 1484, 175, 123, 1865, 280, 123, 170, 282, 922, 925, 176, 1866, -109, 922, 925, 177, 54, 922, 925, 1435, 176, 1810, 2087, 54, 54, 2133, 2083, -100, 550, 400, 2088, 287, 1, 287, 664, -104, 2003, 609, 753, 52, 853, -82, 649, 697, 1866, 842, 680, 846, 676, 696, 682, 800, 1526, 694, -89, 831, 686, 1522, 277, 1526, 64, 683, 64, 1526, 1522, 681, 1581, 501, 1522, 1, 870, 1528, 1542, 186, 1, 827, 1254, 1067, 1528, 602, 712, 1529, 1528, 92, 1434, 1116, 712, 184, 1529, 1, 289, 92, 1529, 2002, 1496, 1673, 2019, 551, 1312, 1254, 184, 2128, 905, 1, 2020, 2083, 1741, 1540, 1742, 2129, 1270, 755, 1, 1809, 2, 970, -618, 327, 743, 1268, 619, 299, 895, 897, 899, 901, 1378, 197, 753, 1300, 1304, 1271, 1530, 1, 136, 1, 799, 974, 198, 1530, -109, 143, 111, 1530, 569, 144, 1811, 1318, 970, -613, 1395, 1396, 1068, 149, 833, -100, 1270, 1366, 1370, 551, 944, 551, 1654, -104, 1658, 1334, 1656, 123, 1660, -82, 1, 527, 927, 123, 223, 1384, 1011, -871, 757, 758, 759, 584, -89, 134, 112, 1036, 149, 1583, 693, 543, 1757, 833, 1011, 868, 510, 2, 1584, 872, 571, 941, 1543, 170, 828, 883, 388, 2092, 884, 833, 872, 891, 833, 170, 1534, 54, 1, 389, 150, 841, 1021, 845, 1636, 1023, 1278, 1280, 1282, 1059, 1279, 1281, 1283, 935, 754, 272, 711, 672, 672, 672, 672, 827, 468, 468, 149, 854, 1962, 931, 210, 1152, 1896, 123, 1159, 1055, 958, 584, 1342, 1344, 1346, 962, 1343, 1345, 1347, 163, 963, 1056, 397, 1193, 468, 468, 1067, 2017, 186, 1471, 1480, 1824, 1481, 941, -1037, -1037, 976, 1559, 692, -1037, 289, 299, 149, 980, 1474, 1110, 468, 468, 587, 935, 587, 468, 468, 1, 760, 468, 468, 557, 928, 123, 123, 123, 761, 123, 585, 762, 123, 113, 586, 416, 935, 1041, 1750, 1045, -1022, 1806, -1022, 123, 123, 123, 1535, 747, 1, 149, 1773, 539, 542, 1774, 833, 497, 1, 146, 147, 468, 1, 468, 526, 1415, 1049, 551, 123, 754, 569, 149, 1042, 1413, 1046, 2, 747, 982, 982, 982, 583, 123, 1, 1676, 747, 935, 1073, 1402, 1402, 1079, 1, 1085, 1195, 1090, 1018, 184, 184, 1433, 299, 137, 1104, 1694, 1568, 1780, 747, 1013, 586, 1802, 1703, 1403, 1403, 1, 1526, 299, 1803, 299, -864, 1522, 1, 1, 1573, 1013, 569, 299, 1, 1058, 1, 1749, 702, 1229, 1, 1528, 1126, 286, 1133, 624, 2, 671, 175, 588, 145, 1529, 1146, 589, 879, 589, 1316, 2089, 1753, 2091, 1791, 1786, 1, 1789, 1, 400, 695, 176, 1103, 1517, 1523, 1527, 569, 529, 649, 649, 649, 649, 287, 387, 676, 676, 676, 676, 1382, 1, 422, 1047, 939, 1065, 2027, 423, 149, 1181, 1187, 1189, 1751, 1, 1, 1762, 1066, 123, 1530, 858, 2092, 1761, 2092, 571, 1178, 1179, 141, 1908, 142, 1198, -458, -458, -458, 146, 147, 254, 1777, 1205, 2, 2120, 26, 2122, 2085, 2124, 1210, 1220, 551, 1230, 1210, 1220, 1, 1533, 803, 804, 805, 1198, 1638, 155, 833, 2154, 1643, 146, 147, 1645, 382, 1647, 2096, 1242, 1705, -864, 1235, 1236, 1237, 146, 147, 181, 2132, 787, 2163, 1033, 979, 2147, 2148, 1265, 2150, 590, 153, 1272, 154, 922, 925, 917, 918, 922, 925, 146, 147, 146, 147, 1055, 2158, 1766, 592, 1498, 1505, 530, 51, 865, 1499, 1074, 1767, 1056, 1080, 584, 1086, 1320, 1091, 2169, 146, 147, 590, 1526, 134, 1895, 1536, 157, 1522, 158, 1902, 1332, 859, 146, 147, 1337, 896, 1986, 860, 902, 1169, 1173, 1528, 530, 1464, 1386, 590, 1309, 1454, 1455, 416, 1456, 1529, 919, 1458, 1459, -458, 1497, 587, -458, 1397, 149, 1400, 1773, 1774, 833, 833, 833, 159, 862, 806, 1488, 1489, 2152, 393, 1375, 170, 533, 807, 1470, 567, 808, 1197, 1490, 789, 790, 394, 1559, 414, 1416, 210, 1313, 1, 392, 976, 1964, 149, 980, -458, -458, -458, 981, 1500, 1530, 163, 1426, 571, 1501, 1197, 1146, -1062, 1197, 1, 571, 591, 1441, 1443, 2, 1445, 1379, 833, 1541, 1544, 1, 699, 160, 1508, -1068, -458, -458, -458, 593, 1022, 699, 672, 1024, 1, 672, 848, 699, 1523, 1527, 586, 692, 1479, -1062, 1711, 1523, 1527, 591, 1712, 1523, 1527, 134, 399, 1063, 1054, 123, 1, 149, 900, 2, 231, 210, 254, 1983, 123, 295, 1771, -1062, 121, 1478, 181, 591, 123, 672, 123, 1482, 1493, 299, 1565, 849, 689, 974, 387, 589, 149, 931, 414, 672, 672, 672, 672, 791, 792, 510, 510, 977, 497, 1419, 468, 497, 1, 978, 1561, 978, 510, 1504, 149, 1506, -216, 1494, 711, 569, -458, 1319, 1562, 1806, 1239, 1813, 1422, 1240, -458, 32, 1916, -458, 978, 701, 300, 146, 147, 1603, 1971, 1807, 123, 1873, 701, 941, 1779, 935, 146, 147, 701, 1385, 860, -460, -460, -460, 569, 2037, 1466, 420, -458, 1547, 43, 44, 52, 569, 747, 671, 671, 671, 671, 1317, 569, 497, 497, 783, 784, 468, 468, 569, 2053, 468, 468, 468, 1476, 149, 1889, 935, 123, 123, 935, -265, -265, -265, 1548, 1188, 1190, 1191, 123, 1383, 123, 210, 551, 1986, 1301, 1305, 833, 136, 1, 149, 106, 528, 833, 1781, 529, 149, 546, 1093, 833, 978, 387, 149, 1321, 1, 833, 527, 149, 146, 147, -216, 569, 1679, 1367, 1371, 861, -216, 107, 754, 396, 1247, 149, 1, 1094, 556, 2138, 649, 569, 1, 649, 106, 1387, 676, 1018, 1699, 676, 1677, 560, 1126, 1095, 1133, 1564, 817, 818, 400, 793, 794, 2, 1678, 1618, 2060, 780, 2061, 400, 689, 1013, 1260, 1, -460, 106, 561, -870, 1631, -870, -870, 562, 26, 649, 1272, 1096, 1097, 781, 782, 676, -459, -459, -459, 1627, 492, 594, 1782, 649, 649, 649, 649, 679, 978, 676, 676, 676, 676, 197, -265, 28, 29, -900, -265, 595, 32, 468, 468, 123, 198, 123, 597, 38, 1813, 1292, 1294, 678, 1296, 493, 1886, 833, 1012, 149, 2040, 1015, 860, 1576, 833, 146, 147, 1577, 414, 210, 785, 786, -870, 43, 44, 156, 922, 925, 810, 1356, 1358, 1360, 1362, -870, -740, 1054, -740, 1688, 599, 146, 147, 600, 1421, 161, 1688, 819, 820, 2022, 811, 812, 1430, 1963, 496, 149, 1, 1523, 1527, 860, -870, 2082, 134, 1444, 104, 2083, 1559, 1662, 1586, 2084, -870, 1592, 136, 1720, 416, 416, -899, 1721, 711, 535, 1567, 1713, 922, 925, 1987, 387, 1570, 1974, -870, -870, -870, 1093, 1571, 860, -459, 983, 984, 985, 1572, 1284, 1286, 134, 2029, 1, 698, 911, 912, 699, 860, 1633, 1093, -216, 1923, 1025, 1027, 583, 1094, 1643, 813, 814, 1647, 134, 2034, 1169, 1173, 1169, 1173, 913, 860, 1348, 1350, 914, 1095, 915, 720, 1094, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 935, 935, -899, -899, 1095, 28, 29, -899, 1732, -626, 32, -626, 1721, 1661, -899, 1096, 1097, 38, 916, 2052, 1663, 721, 1509, 1185, 2100, 860, 724, 416, 1775, 689, 860, 28, 29, 725, 1096, 1097, 32, 1018, -899, -899, 1869, 43, 44, 38, 1870, 2098, 2141, 2143, 1018, 2099, 2083, 2083, 672, 672, -899, -899, -899, -1017, 536, -1017, 726, 1739, 1740, 701, 672, 1743, 149, 43, 44, 727, 833, 833, 728, 146, 147, -216, -911, 397, 1285, 1287, 1551, -216, 149, 754, 1098, 1744, 1416, 1506, 2159, 853, 414, 2160, 2083, 1523, 1527, 2083, 1754, 843, 123, 847, 732, 1631, 2165, -458, -458, 123, 2083, 795, 1349, 1351, 1763, 149, 123, -458, 1639, 1640, 1641, 1807, -458, -458, -458, 751, -458, -458, -458, -458, -458, -625, 2172, -625, 503, 2135, 2083, 123, 516, 1770, 1, 754, 123, 2125, 75, 123, 671, 2083, 149, 671, 544, 2126, 545, -911, -911, 28, 29, 414, -911, 548, 32, 545, 32, 468, 468, -911, 396, 38, 833, 833, 833, 833, 797, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 1035, 1107, 1, 545, 671, 796, -911, -911, 43, 44, 43, 44, 754, 1182, 1150, 142, 1987, 798, 671, 671, 671, 671, -911, 802, -911, 1507, 893, 823, -880, -880, 254, 689, 824, -880, 468, 468, 825, 123, 1, 826, -880, 1650, 2144, 1651, 179, 123, 2083, 815, 816, 1018, 2145, 1264, 1668, 1, 75, 1672, 571, 1271, 1900, 1, 1903, 75, 75, 2, -880, -880, 418, 1331, 1336, 1, 1, 1288, 1290, 830, 1911, 1913, 649, 649, 1513, 881, 1514, 1898, 676, 676, 754, 754, 1126, 1613, 649, 1126, 838, 1185, 1126, 1899, 676, 416, 1618, 839, 1060, 773, 1126, 1352, 1354, 1126, 1511, 1069, 1512, 569, 850, 28, 29, 854, 689, 754, 32, 1856, 821, 822, 1853, 1013, 1795, 38, 1798, 254, 672, 1289, 1291, 1018, 1146, 1796, 851, 1799, 1450, 1452, 1867, 510, 747, 747, 747, 747, 747, 747, 747, 747, 2161, 43, 44, 1006, 2083, 1451, 1453, 903, 2162, 1966, 910, 1353, 1355, 920, 1111, 689, 1026, 1028, 1164, 1166, 960, 563, 1165, 1167, 414, 967, 210, 969, 1011, 414, 291, 294, 1404, 1405, 28, 29, 968, 970, 575, 32, 922, 925, 1029, 922, 925, 1030, 38, 1242, 973, 1917, 1918, 1031, 1070, 1921, 922, 925, 922, 925, 1037, 1038, 198, 1076, 1, 569, 1082, 1088, 1108, 1105, 1113, 1106, 43, 44, 1114, 1112, 1132, 1143, 1134, 1183, 1827, 1831, 1135, 1, 1144, -1036, -1036, 1397, 747, 2, -1036, -216, 1843, 1147, 1148, 1149, 414, 179, 121, 1194, 123, 123, 1207, 123, 1248, 1260, 1975, 179, 1978, 75, 1406, 1424, 1407, 1408, 1409, 149, 1449, 1410, 2136, 1411, 389, 1423, 2137, 1440, 1551, 922, 925, 1448, 468, 1487, 468, 1467, 1989, 833, 1991, 28, 29, 2038, 788, 1976, 32, 1979, -732, -735, 739, 1552, 2045, 38, 1553, 1554, 397, 672, 1555, 672, 468, 1556, 468, 123, 1557, 1574, 1575, 1589, 1579, 1580, 1590, 1990, 416, 1992, 1605, 1606, 416, 43, 44, 583, 1607, 1609, 1614, 1628, 1683, 1126, 1126, 1126, 1126, 1622, 52, 649, 1206, 1648, 1623, 1126, 1126, 676, 1126, 1624, 1126, 1649, 422, 1015, 1652, 1681, 146, 147, -216, 2054, 2056, 1669, 1126, 1420, -216, 418, 754, 28, 29, 1670, 1208, 1146, 32, 1685, 1631, 1006, 672, 1, 1686, 38, 1696, 1704, 1006, 1697, 2015, 1006, 2015, 1013, 1698, 416, 1800, 1, 1701, 1708, 575, 1709, 470, 1710, 1722, 470, 1728, 1715, 2, 43, 44, 1731, 414, 416, 551, 1736, 1738, 121, 470, 1760, 470, -458, 470, 402, -458, -458, -458, -458, -458, -458, -458, -458, 1764, 1778, 1792, 1821, 1783, 1814, 1820, 1815, -738, 1816, 1823, 1850, 1868, 1854, 569, 1817, 1871, 1818, 1872, 1819, 575, 1844, 28, 29, 1845, 1905, 1875, 32, 1877, 1879, 2058, 671, 671, 1881, 38, 1882, 28, 29, 1883, 1885, 1890, 32, 1891, 671, 1, 1892, 1961, 1893, 38, 1465, 468, 468, 468, 468, 468, 833, 1906, 833, 43, 44, 575, 1999, 1894, 2059, 468, 468, 468, 468, 51, 2, 1909, 566, 43, 44, 1910, 1126, 2130, 2131, 121, 1915, -231, 1965, 567, 1968, 649, 52, 649, 2081, 1491, 1969, 676, 1977, 676, -956, 1980, 1972, 1146, 1631, 1973, 1982, 18, 19, 2001, -458, -458, 2021, 57, 2016, 2028, 2030, 2031, 2032, 2015, -458, 2015, 28, 29, 2065, 2033, 2047, 32, 2066, -458, -458, -458, -458, -458, 38, 2035, 2036, 28, 29, 2041, 468, 468, 32, 2042, 2043, 2044, 2048, 1126, 1126, 38, 2049, 1126, 2050, 1126, 114, 2051, 1126, 2097, 43, 44, 649, 2090, 2101, 2103, 416, 2102, 676, 2104, 2106, 416, 2112, 566, 57, 43, 44, 1631, 2105, 1146, 2117, 151, 1185, 1146, 567, 51, 2015, 2015, 2134, 2015, 2118, 2015, 2142, 2123, 1566, 1126, 2146, 2149, 57, 2155, 2156, 57, 2157, 2166, 2151, 2167, 2168, 255, 57, 2170, 2171, 951, 1006, 1006, 1006, 57, 57, 1, 1146, 1631, 2140, 2173, 1649, 1126, 952, 1015, 953, 954, 57, 2015, 2015, 383, 2015, 957, 1981, 1146, 416, 1790, 1502, 2077, 1412, 2080, 2, 57, 684, 1604, 685, 1457, 2015, 1492, 880, 408, 1335, 1768, 888, 179, 408, 255, 1233, 408, 722, 1201, 1984, 617, 2119, 2015, 290, 279, 281, 255, 665, 57, 408, 255, 408, 283, 408, 416, 739, 293, 1960, 0, 0, 0, 0, 0, 0, 1201, 28, 29, 1201, 671, 0, 32, 0, 0, 0, 0, 0, 1245, 38, 255, 255, 0, 470, 470, 28, 29, 2116, 0, 0, 32, 0, 408, 0, 0, 1293, 1295, 38, 1297, 1006, 0, 0, 0, 43, 44, 0, 558, 0, 0, 470, 470, 0, 0, 0, 0, 57, 1680, 0, 0, 0, 0, 43, 44, 1357, 1359, 1361, 1363, 451, 0, 0, 451, 470, 470, 0, 0, 404, 470, 470, 1700, 0, 470, 470, 0, 451, 0, 451, 0, 451, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 255, 0, 0, 255, 255, 645, 0, 418, 418, 0, 416, 0, 575, 57, 0, 0, 0, 0, 0, 470, 2, 470, 0, 57, 255, 57, 0, 699, 699, 121, 699, 699, 0, 0, 0, 699, 699, 699, 699, 0, 0, 0, 0, 255, 0, 0, 0, 575, 0, 255, 0, 0, 0, 18, 19, 0, 575, 0, 0, 0, 408, 0, 0, 575, 0, 0, 28, 29, 739, 0, 575, 32, 0, 0, 0, 0, 1, 0, 38, 0, 671, 0, 671, 28, 29, 1006, 1006, 0, 32, 0, 0, 0, 1006, 1006, 0, 38, 1006, 1006, 0, -880, -880, 2, 43, 44, -880, 0, 0, 418, 0, 0, 121, -880, 51, 0, 0, 52, 1463, 57, 0, 43, 44, 575, 408, 0, 408, 1649, 1015, 0, 1, 0, 1929, 1933, 1141, 1939, 1943, -880, -880, 575, 1947, 1951, 1955, 1959, 0, 0, 0, 0, 0, 28, 29, 671, 0, 0, 32, 2, 57, 754, 408, 57, 0, 38, 255, 57, 192, 193, 0, 0, 882, 0, 0, 0, 57, 255, 0, 57, 699, 699, 699, 699, 699, 699, 699, 699, 0, 43, 44, 0, 0, 0, 0, 0, 0, 621, 625, 51, 0, 0, 52, 0, 0, 28, 29, 408, 408, 0, 32, 930, 57, 57, 0, 0, 0, 38, 0, 408, 0, 0, 0, 0, 961, 0, 0, 18, 19, 255, 1776, 0, 0, 408, 408, 0, 971, 0, -641, 0, 0, 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 51, 57, 0, 52, 408, 408, 28, 29, 0, 408, 408, 32, -641, 408, 408, 0, 0, 0, 38, 0, 645, -641, -641, 699, 0, 0, 0, 255, 0, 0, 255, 0, 701, 701, 701, 701, 701, 701, 701, 701, 0, 0, 43, 44, 0, 0, 57, 0, 451, 451, 0, 408, 51, 408, 0, 1006, 57, 408, -641, -641, 955, 0, 0, -641, 0, 0, 0, 0, 0, 0, -641, 0, 0, 0, 451, 451, 57, 0, 0, 57, 0, 57, 0, 57, 0, 0, 18, 19, 28, 29, 57, 0, 0, 32, -641, -641, 451, 451, 66, 0, 38, 451, 451, 0, -641, 451, 451, -641, 0, 418, 972, 0, 970, -641, 0, 0, 28, 29, 0, 0, 0, 32, 470, 470, 43, 44, 701, 0, 38, 0, 0, 0, 0, 0, 51, 0, 1666, 862, 0, 0, 0, 0, 0, 451, 0, 451, 0, 0, 567, 0, 0, 485, 43, 44, 645, 645, 645, 645, 0, 0, 0, 0, 0, 485, 0, 1612, 0, 485, 0, 0, 0, 0, 1006, 1006, 0, 0, 0, 0, 0, 0, 0, 66, 255, 255, 255, 470, 0, 57, 1901, 0, 1904, 66, 0, 408, 0, 1, 0, 0, 66, 66, 0, 255, 0, 0, 1912, 1914, 0, 0, 255, 255, 408, 0, 255, 255, 0, 621, 0, 0, 621, 408, 2, 0, 57, 0, 0, 28, 29, 28, 29, 121, 32, 57, 32, 0, 645, 0, 0, 38, 0, 38, 483, 645, 923, 926, 645, 0, 0, 0, 0, 0, 0, 0, 483, 0, 470, 470, 483, 0, 470, 470, 470, 43, 44, 43, 44, 0, 28, 29, 923, 926, 0, 32, 0, 0, 613, 855, 0, 856, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 923, 926, 0, 0, 0, 923, 926, 0, 0, 923, 926, 0, 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 51, 622, 626, 52, 0, 716, 0, 0, 0, 0, 418, 716, 57, 0, 418, 57, 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 625, 1170, 1174, 0, 0, 0, 0, 408, 408, 57, 0, 0, 1006, 1006, 28, 29, 57, 88, 0, 32, 0, 0, 0, 0, 255, 57, 38, 0, 0, 621, 0, 0, 57, 66, 0, 255, 0, 408, 0, 57, 0, 0, 0, 66, 0, 66, 418, 0, 0, 0, 43, 44, 470, 470, 0, 0, 0, 0, 0, 575, 51, 0, 0, 1208, 418, 0, 2039, 0, 0, 131, 0, 0, 0, 0, 0, 2046, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 57, 875, 0, 0, 0, 0, 0, 0, 0, 164, 182, 195, 875, 0, 0, 0, 57, 408, 233, 0, 88, 0, 0, 0, 57, 57, 0, 88, 88, 408, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 2055, 2057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 255, 645, 195, 401, 403, 405, 406, 255, 966, 0, 0, 0, 474, 575, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 0, 474, 0, 474, 0, 483, 0, 0, 0, 0, 0, 0, 0, 408, 408, 0, 483, 408, 408, 408, 0, 0, 0, 0, 0, 534, 403, 405, 0, 0, 0, 0, 0, 0, 0, 0, 451, 57, 408, 0, 0, 0, 57, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 57, 0, 564, 579, 622, 418, 0, 622, 483, 0, 418, 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, 645, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 451, 451, 615, 0, 451, 451, 451, 0, 0, 0, 0, 0, 0, 0, 739, 182, 0, 645, 0, 0, 0, 0, 0, 0, 0, 690, 0, 88, 0, 0, 418, 645, 645, 645, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 408, 0, 0, 0, 255, 0, 255, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 76, 57, 418, 0, 255, 408, 57, 0, 0, 0, 0, 0, 0, 0, 470, 470, 0, 622, 626, 1171, 1175, 0, 0, 0, 255, 0, 0, 82, 0, 575, 0, 255, 0, 0, 0, 1214, 1224, 0, 0, 1214, 1224, 0, 0, 0, 0, 0, 0, 622, 0, 255, 645, 0, 0, 0, 0, 0, 255, 645, 0, 0, 255, 645, 0, 401, 403, 405, 0, 0, 470, 470, 0, 0, 451, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 863, 0, 0, 0, 0, 0, 76, 474, 1587, 0, 0, 1593, 0, 76, 76, 0, 66, 0, 131, 0, 0, 0, 0, 82, 0, 0, 0, 0, 418, 0, 0, 0, 0, 82, 0, 0, 0, 0, 923, 926, 82, 82, 923, 926, 0, 0, 0, 474, 474, 1634, 0, 0, 937, 0, 0, 486, 948, 0, 0, 474, 0, 739, 0, 1170, 1174, 1170, 1174, 486, 164, 0, 0, 486, 0, 474, 474, 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 621, 0, 621, 0, 0, 0, 863, 0, 487, 474, 474, 0, 487, 0, 474, 474, 0, 0, 474, 474, 0, 1429, 195, 195, 195, 0, 0, 0, 0, 57, 57, 0, 1429, 0, 0, 0, 0, 0, 0, 0, 195, 195, 0, 0, 0, 408, 0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 474, 0, 474, 0, 0, 1052, 0, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 483, 0, 408, 0, 0, 76, 0, 76, 408, 408, 0, 483, 0, 57, 57, 57, 57, 0, 0, 0, 0, 470, 82, 470, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 82, 0, 0, 1784, 0, -630, 613, 0, 0, 0, 0, 0, 0, 470, 0, 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 408, -630, 0, 0, 0, 0, 0, 0, 0, 0, -630, -630, 0, 1186, 0, 0, 0, 0, 0, 690, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 645, 451, 451, 0, 1216, 645, 645, 0, 1216, 0, 0, -630, -630, 0, 0, 0, -630, 0, 645, 0, 0, 645, 0, -630, 0, 0, 0, 863, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, 0, 0, -630, -630, 0, 0, 0, 0, 0, 486, 451, 451, -630, 0, 0, -630, 0, 0, 1785, 57, 970, -630, 0, 0, 0, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1588, 876, 0, 1594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 0, 57, 0, 0, 408, 0, 0, 0, 486, 0, 0, 0, 0, 0, 0, 0, 470, 470, 470, 470, 470, 0, 57, 1635, 0, 0, 0, 0, 0, 0, 470, 470, 470, 470, 0, 876, 0, 1171, 1175, 1171, 1175, 0, 0, 613, 0, 0, 0, 0, 0, 0, 1417, 0, 0, 0, 0, 0, 0, 863, 0, 0, 622, 0, 622, 1692, 164, 863, 1431, 0, 0, 408, 1692, 0, 0, 1438, 0, 0, 863, 0, 1446, 0, 0, 0, 0, 0, 255, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1828, 1832, 923, 926, 470, 470, 408, 0, 408, 0, 0, 57, 0, 1587, 0, 0, 1593, 0, 0, 0, 0, 0, 131, 0, 1634, 0, 0, 0, 0, 0, 0, 1475, 408, 0, 408, 344, 579, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, 0, 0, 0, 923, 926, 0, 415, 0, 0, 0, 0, 0, 474, 0, 645, 645, 452, 0, 0, 452, 0, 0, 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 0, 452, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 451, 937, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 76, 0, 451, 0, 451, 0, 408, 0, 408, 0, 0, 0, 474, 474, 0, 0, 474, 474, 474, 0, 0, 0, 0, 1549, 401, 0, 0, 82, 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408, 408, 408, 408, 408, 57, 0, 57, 0, 0, 0, 0, 0, 0, 408, 408, 408, 408, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 704, 707, 709, 0, 0, 415, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 1828, 1832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 415, 0, 474, 474, 0, 0, 0, 0, 408, 408, 0, 0, 0, 86, 0, 0, 0, 451, 451, 451, 451, 451, 0, 863, 0, 0, 863, 0, 1675, 486, 0, 451, 451, 451, 451, 0, 0, 415, 0, 415, 486, 0, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 0, 0, 1216, 0, 302, 876, 1, 303, 106, 0, 0, 0, 0, 0, 86, 0, 876, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1829, 1833, 86, 86, 0, 0, 451, 451, 0, 0, 86, 0, 86, 626, 0, 0, 626, 0, 0, 86, 86, 0, 0, 0, 626, 307, 0, 452, 452, 0, 0, 308, 309, 0, 0, 0, 0, 0, 0, 956, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 86, 86, 0, 452, 452, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 0, 0, 0, 0, 0, 0, 452, 452, 0, 322, 0, 452, 452, 0, 706, 452, 452, 415, 0, 0, 0, 0, 0, 0, 327, 328, 0, 0, 0, 0, 748, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 776, 923, 926, 0, 923, 926, 452, 415, 452, 0, 0, 0, 0, 0, 0, 923, 926, 923, 926, 0, 0, 0, 0, 0, 0, 0, 0, 1747, 0, 0, 0, 0, 0, 86, 0, 0, 86, 0, 0, 344, 0, 0, 1756, 0, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 86, 0, 0, 0, 0, 0, 0, 0, 0, 1769, 0, 579, 0, 86, 0, 0, 923, 926, 0, 0, 0, 0, 0, 86, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 626, 626, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 474, 0, 401, 0, 0, 0, 344, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 415, 0, 0, 415, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 415, 415, 415, 415, 415, 415, 415, 0, 0, 415, 415, 0, 415, 415, 415, 415, 415, 415, 415, 415, 86, 344, 0, 0, 0, 0, 0, 0, 0, 344, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1887, 0, 0, 0, 777, 0, 0, 1137, 0, 0, 0, 0, 0, 0, 0, 415, 415, 0, 0, 0, 0, 0, 417, 0, 0, 0, 705, 708, 710, 0, 0, 417, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 731, 0, 86, 86, 86, 0, 86, 362, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 86, 86, 0, 417, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 86, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, 417, 474, 417, 0, 863, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 748, 0, 452, 0, 474, 0, 474, 0, 0, 0, 0, 0, 0, 417, 1275, 0, 405, 0, 0, 0, 0, 0, 0, 415, 0, 415, 0, 0, 0, 0, 0, 359, 658, 1298, 1302, 1306, 1310, 1314, 0, 0, 1323, 1329, 0, 0, 0, 0, 748, 0, 0, 1340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 1368, 1372, 1376, 1380, 0, 0, 1323, 1393, 0, 452, 452, 0, 0, 452, 452, 452, 0, 86, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 415, 0, -871, 0, 0, -871, -871, -871, 0, -871, -871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -871, 0, 417, 0, 0, 0, -871, -871, -871, 1138, 0, 344, 344, 474, 474, 474, 474, 474, 0, -871, 0, 0, 0, 0, 0, 0, 0, 474, 474, 474, 474, 0, 652, -871, 362, 0, 0, -871, -871, -871, -871, -871, -871, -871, -871, 0, 894, 0, 0, 0, 0, 0, 0, -871, -871, 452, 452, 0, 0, 0, -871, -871, 417, -871, -871, -871, 0, 0, -871, -871, 0, -871, -871, -871, -871, 415, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 0, 0, 0, 0, 0, 474, 474, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 415, 86, 0, 344, 0, 0, 0, 415, 0, 0, 0, 415, 1267, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 86, 0, 0, 362, 0, 1299, 1303, 1307, 1311, 1315, 0, 0, 1324, 0, 0, 0, 0, 0, 1267, 417, 86, 0, 0, 0, 0, 0, 417, 0, 0, 417, 0, 0, 0, 1365, 1369, 1373, 1377, 1381, 0, 0, 1324, 0, 0, 0, 0, 0, 0, 1137, 0, 362, 0, 0, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 0, 0, 417, 417, 0, 417, 417, 417, 417, 417, 417, 417, 417, 1275, 362, 1128, 0, 0, 0, 0, 1340, 0, 362, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 362, 0, 0, 0, 0, 658, 658, 658, 658, 0, 0, 0, 1323, 0, 1323, 0, 0, 0, 0, 86, 86, 0, 0, 0, 415, 0, 0, 0, 415, 0, 0, 417, 417, 0, 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 1716, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 1102, 0, 417, 0, 417, 452, 452, 0, 0, 0, 0, 0, 415, 374, 344, 0, 0, 0, 0, 415, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 417, 0, 0, 0, 415, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 86, 0, 0, 452, 452, 0, 0, 0, 0, 652, 652, 652, 652, 0, 0, 0, 417, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1234, 0, 0, 0, 1238, 0, 0, 0, 0, 0, 1610, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 0, 1637, 0, 0, 0, 0, 0, 0, 1644, 0, 0, 0, 0, 1276, 0, 0, 0, 0, 417, 0, 0, 0, 0, 1477, 0, 0, 415, 0, 0, 417, 415, 415, 415, 0, 0, 0, 0, 0, 0, 0, 1330, 344, 1324, 0, 1324, 750, 415, 415, 1341, 0, 0, 0, 0, 344, 0, 362, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 1394, 0, 0, 0, 415, 415, 0, 415, 415, 0, 0, 0, 415, 415, 415, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 417, 0, 417, 0, 0, 0, 0, 553, 0, 553, 0, 0, 0, 0, 452, 0, 452, 0, 415, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 452, 417, 452, 0, 0, 417, 0, 0, 362, 0, 0, 0, 417, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 344, 0, 415, 415, 415, 415, 415, 415, 415, 415, 0, 0, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 658, 658, 658, 415, 415, 0, 0, 0, 1017, 0, 0, 86, 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1716, 0, 0, 0, 0, 1924, 1926, 1930, 1934, 1936, 1940, 0, 0, 0, 1944, 1948, 1952, 1956, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 415, 415, 0, 0, 0, 0, 0, 0, 452, 452, 452, 452, 452, 0, 0, 417, 0, 0, 0, 417, 0, 374, 452, 452, 452, 452, 0, 0, 0, 0, 0, 652, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 1629, 1630, 0, 0, 0, 0, 417, 652, 0, 1276, 0, 0, 0, 1642, 0, 0, 1341, 417, 1646, 0, 0, 652, 652, 652, 652, 0, 452, 452, 0, 0, 0, 0, 0, 0, 0, 417, 0, 362, 0, 0, 0, 0, 417, 0, 417, 0, 0, 0, 344, 0, 0, 0, 1926, 1930, 1936, 1940, 1944, 1948, 1952, 1956, 0, 417, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 1005, 1717, 0, 417, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 1922, 0, 0, 0, 0, 1925, 1927, 1931, 1935, 1937, 1941, 0, 0, 0, 1945, 1949, 1953, 1957, 0, 0, 0, 0, 0, 417, 0, 0, 0, 417, 417, 417, 0, 0, 0, 0, 0, 0, 0, 469, 362, 0, 469, 0, 0, 417, 417, 0, 0, 0, 0, 0, 362, 0, 0, 469, 0, 469, 0, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 417, 0, 417, 417, 0, 0, 0, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 1005, 0, 553, 0, 658, 658, 0, 0, 0, 0, 0, 0, 417, 0, 1128, 0, 1128, 658, 0, 620, 658, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 1128, 0, 0, 0, 0, 0, 417, 0, 0, 0, 553, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 650, 1005, 0, 1005, 0, 0, 0, 0, 0, 0, 1017, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 1017, 0, 0, 0, 0, 0, 362, 362, 249, 417, 417, 417, 417, 417, 417, 417, 417, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 417, 417, 0, 0, 0, 0, 0, 0, 0, 0, 417, 652, 652, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 652, 652, 0, 0, 652, 1005, 0, 0, 0, 0, 0, 0, 652, 0, 0, 652, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 374, 374, 417, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1128, 1128, 1128, 1128, 0, 0, 1128, 0, 0, 0, 658, 658, 0, 1128, 0, 1128, 469, 469, 0, 1017, 0, 0, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 1919, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 469, 1717, 0, 0, 0, 0, 1642, 0, 0, 1646, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 469, 0, 0, 0, 469, 469, 0, 0, 469, 469, 1005, 0, 0, 374, 0, 1003, 362, 1005, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 0, 469, 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 652, 652, 652, 652, 0, 0, 652, 0, 0, 1128, 652, 652, 0, 652, 0, 652, 221, 0, 1128, 0, 1128, 0, 0, 0, 419, 650, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2023, 2024, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 650, 650, 650, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1128, 1128, 0, 0, 1128, 0, 1128, 0, 0, 1128, 0, 0, 0, 1128, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 1003, 0, 0, 0, 0, 553, 0, 1003, 0, 0, 1003, 1128, 0, 1017, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 311, 312, 374, 0, 652, 0, 652, 1005, 0, 1005, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 1005, 0, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 1724, 329, 330, 331, 332, 0, 1017, 0, 0, 652, 652, 0, 0, 652, 0, 652, 0, 0, 652, 0, 0, 0, 652, 0, 0, 0, 0, 0, 1005, 2121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 834, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 469, 0, 652, 0, 0, 0, 869, 511, 0, 0, 0, 878, 126, 0, 0, 0, 0, 2164, 0, 0, 885, 0, 0, 892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 126, 0, 0, 0, 553, 0, 553, 232, 0, 0, 0, 0, 0, 943, 0, 374, 0, 0, 469, 959, 553, 553, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1003, 0, 1003, 126, 126, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 469, 469, 0, 0, 469, 469, 469, 0, 0, 0, 221, 0, 532, 0, 117, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 221, 0, 221, 178, 221, 0, 0, 0, 0, 0, 0, 0, 261, 74, 0, 0, 596, 0, 0, 598, 74, 74, 1003, 0, 0, 650, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 650, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 374, 374, 484, 0, 180, 0, 650, 0, 0, 0, 0, 0, 0, 0, 484, 0, 0, 0, 484, 0, 650, 650, 650, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 469, 469, 0, 0, 0, 0, 553, 0, 261, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 553, 0, 0, 0, 0, 0, 1003, 0, 0, 0, 0, 0, 0, 1003, 0, 0, 0, 1003, 0, 126, 0, 0, 0, 612, 0, 0, 261, 261, 261, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 261, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 834, 834, 834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 419, 221, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126, 126, 0, 1010, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126, 126, 0, 0, 0, 0, 0, 574, 0, 0, 0, 374, 0, 874, 1469, 0, 0, 0, 0, 0, 126, 0, 0, 0, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 511, 511, 0, 0, 1003, 0, 0, 0, 0, 0, 0, 511, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 965, 469, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1003, 0, 1003, 574, 0, 0, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 261, 0, 0, 0, 0, 0, 0, 261, 0, 0, 261, 0, 0, 469, 469, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 232, 0, 0, 0, 221, 0, 0, 0, 0, 0, 1569, 0, 0, 0, 0, 0, 1569, 0, 0, 0, 0, 0, 221, 1003, 0, 0, 307, 0, 650, 650, 0, 0, 308, 309, 310, 0, 0, 0, 650, 0, 650, 650, 0, 0, 650, 311, 312, 0, 0, 0, 0, 0, 650, 0, 0, 650, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, 0, 0, 0, 0, 322, 323, 324, 1142, 0, 325, 1160, 326, 0, 0, 1729, 0, 0, 0, 1730, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 552, 261, 261, 261, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 261, 261, 0, 0, 178, 419, 221, 0, 0, 0, 1200, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 1213, 1223, 738, 0, 1213, 1223, 0, 0, 0, 0, 0, 1200, 0, 0, 1200, 0, 0, 0, 0, 0, 0, 0, 0, 1244, 0, 0, 261, 0, 0, 0, 0, 0, 0, 261, 0, 0, 261, 0, 126, 0, 0, 0, 0, 0, 0, 1003, 0, 700, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 469, 552, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 91, 0, 0, 0, 0, 0, 0, 469, 0, 469, 0, 0, 0, 0, 596, 0, 598, 126, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 650, 650, 650, 650, 574, 0, 650, 0, 0, 0, 650, 650, 0, 650, 0, 650, 0, 0, 0, 120, 132, 0, 552, 0, 552, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 398, 0, 0, 0, 0, 1428, 574, 0, 0, 183, 132, 0, 0, 574, 230, 0, 1428, 117, 738, 91, 574, 0, 0, 834, 834, 0, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 419, 0, 0, 0, 419, 386, 0, 126, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 657, 0, 0, 0, 0, 469, 469, 469, 469, 469, 0, 687, 419, 0, 531, 0, 0, 0, 0, 469, 469, 469, 469, 419, 1788, 419, 1788, 547, 0, 1004, 650, 0, 261, 261, 261, 0, 0, 0, 0, 650, 612, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 598, 0, 469, 469, 0, 0, 0, 0, 0, 650, 650, 132, 0, 650, 0, 650, 0, 0, 650, 0, 0, 0, 650, 0, 183, 0, 0, 0, 0, 0, 0, 0, 852, 0, 691, 0, 91, 0, 857, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 650, 0, 261, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1142, 0, 0, 0, 0, 0, 0, 0, 736, 0, 650, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 934, 0, 0, 1192, 261, 261, 261, 261, 0, 0, 0, 0, 419, 0, 221, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1665, 0, 0, 612, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 1004, 864, 0, 1004, 1009, 0, 0, 1014, 0, 0, 1691, 0, 0, 0, 0, 0, 0, 1691, 0, 132, 1009, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 261, 261, 0, 0, 0, 0, 577, 261, 261, 0, 0, 261, 261, 0, 0, 0, 0, 0, 938, 577, 0, 946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 0, 0, 0, 0, 0, 1140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 657, 657, 657, 657, 1053, 0, 1062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1064, 0, 0, 687, 0, 0, 0, 0, 0, 687, 0, 0, 0, 0, 0, 0, 1004, 0, 552, 419, 0, 0, 736, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 547, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 1158, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1274, 0, 0, 0, 0, 1004, 0, 1004, 261, 0, 260, 574, 0, 419, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, 0, 0, 0, 0, 0, 0, 691, 1327, 0, 0, 0, 0, 0, 0, 0, 1339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1218, 0, 0, 0, 1218, 0, 0, 0, 1391, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 260, 0, 0, 0, 687, 0, 574, 0, 1004, 0, 0, 1437, 0, 0, 0, 0, 0, 0, 0, 552, 261, 261, 0, 736, 0, 0, 261, 261, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 261, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1473, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 260, 260, 260, 0, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 864, 1418, 0, 0, 0, 260, 0, 864, 0, 0, 0, 0, 0, 0, 552, 864, 1432, 0, 126, 0, 0, 0, 0, 1439, 714, 0, 864, 120, 132, 0, 714, 0, 0, 0, 0, 934, 552, 0, 0, 0, 0, 737, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 132, 1004, 0, 0, 0, 0, 0, 0, 1472, 0, 0, 0, 0, 0, 581, 398, 0, 0, 0, 0, 132, 0, 0, 0, 577, 0, 577, 0, 0, 0, 938, 0, 0, 0, 0, 0, 0, 0, 0, 261, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, 938, 657, 0, 0, 657, 1596, 1598, 0, 1601, 0, 0, 0, 0, 0, 0, 0, 1611, 0, 0, 0, 0, 0, 0, 0, 1620, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 0, 261, 261, 657, 573, 0, 0, 1550, 0, 0, 1158, 0, 0, 0, 0, 1158, 1558, 657, 657, 657, 657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 687, 0, 687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, 0, 1655, 0, 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 738, 0, 0, 0, 0, 0, 260, 0, 0, 260, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 1129, 0, 0, 1004, 0, 1004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 0, 864, 0, 0, 864, 0, 1218, 0, 1168, 1172, 0, 0, 0, 0, 1682, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 1218, 0, 0, 0, 0, 0, 0, 1218, 0, 0, 1158, 0, 0, 0, 0, 0, 260, 260, 260, 260, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 1199, 0, 0, 0, 0, 0, 1158, 0, 260, 0, 0, 0, 0, 0, 0, 1212, 1222, 737, 0, 1212, 1222, 0, 0, 0, 0, 0, 1199, 0, 0, 1199, 0, 0, 0, 0, 0, 0, 0, 0, 1243, 0, 0, 260, 687, 0, 0, 0, 0, 0, 260, 1759, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 552, 0, 0, 0, 1437, 0, 577, 0, 0, 1772, 0, 0, 1014, 0, 552, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1928, 1932, 0, 1938, 1942, 0, 0, 0, 1946, 1950, 1954, 1958, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 1748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 1755, 0, 0, 1004, 0, 0, 0, 1758, 0, 0, 852, 0, 0, 0, 0, 395, 573, 0, 577, 0, 0, 0, 0, 735, 0, 573, 0, 0, 0, 577, 0, 0, 573, 0, 0, 0, 1439, 737, 581, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 657, 657, 0, 0, 0, 0, 1158, 0, 1158, 0, 0, 1158, 657, 0, 0, 0, 0, 1846, 1849, 0, 1851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 1862, 0, 573, 0, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 1928, 1932, 1938, 1942, 1946, 1950, 1954, 1958, 1812, 0, 1158, 0, 0, 0, 1158, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 581, 0, 0, 0, 552, 0, 0, 260, 260, 260, 0, 0, 0, 552, 0, 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 0, 0, 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 0, 552, 552, 0, 0, 0, 0, 717, 687, 687, 0, 1967, 0, 717, 0, 1585, 0, 0, 1591, 0, 0, 0, 0, 0, 740, 0, 0, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1888, 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 260, 0, 0, 260, 0, 0, 0, 1632, 0, 0, 0, 0, 0, 0, 0, 0, 1009, 0, 0, 0, 0, 1168, 1172, 1168, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 657, 1158, 0, 0, 260, 260, 260, 260, 1158, 1418, 0, 0, 1851, 0, 2005, 0, 0, 0, 576, 0, 0, 0, 0, 2011, 0, 0, 0, 260, 1139, 260, 0, 1758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, 1157, 0, 611, 0, 1162, 0, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1690, 736, 0, 0, 576, 0, 0, 1690, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 260, 0, 735, 0, 0, 735, 260, 260, 0, 0, 260, 260, 0, 0, 0, 0, 0, 0, 576, 1227, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 1157, 1162, 0, 263, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 0, 0, 122, 0, 0, 0, 0, 1682, 0, 139, 0, 1273, 0, 0, 0, 0, 0, 0, 0, 2068, 2071, 0, 1158, 0, 1158, 0, 0, 657, 1158, 657, 0, 0, 162, 171, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1325, 0, 0, 0, 0, 0, 0, 0, 1338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1389, 0, 0, 0, 122, 122, 0, 0, 1158, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 657, 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, 263, 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, 1158, 122, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 1202, 0, 0, 0, 260, 0, 0, 573, 263, 0, 162, 570, 0, 0, 0, 1215, 1225, 740, 0, 1215, 1225, 0, 0, 0, 0, 0, 1202, 0, 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0, 1246, 0, 0, 263, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1826, 1830, 0, 0, 0, 0, 0, 0, 0, 0, 1839, 0, 1842, 1585, 573, 0, 1591, 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, 1855, 260, 260, 0, 0, 0, 0, 260, 260, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 576, 0, 0, 122, 0, 740, 0, 576, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1595, 1597, 0, 1600, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 1162, 0, 0, 0, 0, 1619, 0, 0, 0, 0, 0, 570, 1157, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 737, 0, 0, 0, 1157, 1162, 0, 0, 0, 1157, 0, 0, 0, 0, 576, 0, 0, 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 1653, 0, 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 0, 0, 0, 0, 0, 614, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 122, 122, 122, 0, 122, 0, 0, 122, 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 1994, 1995, 1996, 1997, 0, 0, 1998, 0, 0, 0, 1826, 1830, 0, 1839, 0, 1842, 525, 0, 570, 0, 122, 0, 0, 0, 1157, 1162, 0, 2007, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 263, 0, 0, 0, 0, 1157, 0, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 737, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 1180, 0, 0, 0, 0, 1157, 0, 1162, 122, 0, 0, 263, 0, 263, 570, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1667, 0, 0, 614, 1998, 0, 0, 0, 0, 0, 0, 0, 0, 2076, 0, 2079, 0, 0, 0, 125, 125, 0, 0, 1693, 0, 0, 0, 0, 0, 0, 1693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 0, 263, 263, 0, 0, 263, 263, 0, 1, 0, 0, 0, 0, 125, 125, 2108, 2109, 0, 0, 2076, 0, 2079, 0, 0, 2113, 0, 0, 0, 2115, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 2115, 0, 0, 0, 125, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 2153, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 40, 0, 0, 0, 0, 1822, 0, 162, 0, 570, 43, 44, 45, 46, 47, 48, 570, 0, 0, 0, 51, 570, 0, 862, 0, 1157, 1162, 1157, 1162, 0, 1157, 1841, 0, 0, 567, 0, 1595, 1848, 0, 1619, 0, 1162, 125, 0, 0, 0, 0, 0, 0, 1157, 1162, 1619, 0, 0, 0, 125, 0, 0, 0, 0, 122, 0, 0, 0, 0, 688, 0, 0, 0, 122, 0, 0, 0, 0, 570, 0, 0, 0, 1, 0, 122, 0, 0, 1157, 0, 1162, 0, 1157, 0, 1162, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 263, 0, 0, 576, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 40, 0, 0, 578, 0, 0, 0, 0, 122, 122, 43, 44, 45, 46, 47, 48, 0, 0, 122, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 0, 0, 578, 0, 0, 263, 1157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 0, 0, 0, 0, 1162, 0, 1157, 1841, 0, 1162, 1619, 0, 2004, 0, 2006, 0, 0, 0, 0, 0, 1162, 2010, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 125, 125, 0, 125, 0, 0, 688, 0, 0, 0, 122, 0, 122, 0, 0, 0, 0, 125, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 740, 125, 482, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 482, 0, 578, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 576, 0, 0, 0, 0, 2067, 2070, 0, 1157, 1162, 1157, 0, 0, 0, 1157, 1841, 0, 0, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 610, 688, 0, 258, 258, 258, 0, 688, 0, 2, 0, 0, 0, 0, 0, 263, 263, 0, 121, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 1157, 1162, 0, 1157, 1841, 0, 0, 0, 2114, 0, 0, 0, 0, 713, 0, 0, 307, 0, 0, 713, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 740, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 122, 0, 0, 322, 323, 889, 0, 122, 890, 733, 326, 0, 0, 0, 122, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 570, 0, 0, 122, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 122, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 572, 302, 578, 1, 303, 106, 304, 578, 305, 306, 0, 0, 0, 125, 0, 0, 0, 0, 0, 258, 0, 0, 0, 578, 0, 0, 258, 0, 2, 258, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 0, 0, 578, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 125, 125, 322, 323, 324, 0, 0, 325, 733, 326, 578, 259, 578, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 0, 122, 259, 0, 0, 0, 258, 258, 258, 0, 0, 0, 0, 0, 259, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 1211, 1221, 0, 0, 1211, 1221, 0, 0, 0, 0, 0, 0, 0, 0, 259, 259, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 258, 0, 0, 0, 0, 0, 0, 258, 0, 0, 258, 0, 0, 0, 0, 688, 0, 688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, 259, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 259, 0, 0, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 259, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 572, 2, 0, 0, 0, 0, 264, 0, 1427, 572, 0, 0, 0, 0, 0, 0, 572, 0, 0, 1427, 0, 0, 0, 572, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 264, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 264, 0, 0, 313, 264, 0, 572, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 572, 322, 323, 324, 0, 0, 325, 0, 326, 643, 264, 264, 259, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 258, 0, 0, 0, 0, 0, 610, 578, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 578, 0, 578, 0, 0, 578, 264, 0, 578, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 258, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 610, 0, 264, 0, 259, 259, 259, 259, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 1689, 0, 0, 0, 0, 0, 0, 1689, 0, 0, 0, 0, 259, 259, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 259, 258, 258, 0, 0, 258, 258, 259, 259, 0, 0, 259, 259, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, 0, 0, 0, 0, 0, 0, 302, 0, 1, 303, 106, 304, 264, 305, 306, 0, 0, 0, 0, 264, 0, 0, 264, 0, 0, 0, 0, 0, 0, 578, 578, 0, 578, 2, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1196, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 125, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 0, 259, 322, 323, 324, 0, 0, 325, 733, 326, 0, 0, 259, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 264, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 572, 0, 0, 0, 0, 0, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 264, 0, 0, 264, 0, 0, 0, 0, 0, 0, 259, 259, 259, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 259, 0, 0, 259, 0, 0, 259, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, 0, 0, 0, 0, -458, -458, -458, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, -458, -458, 0, 0, 0, 0, 259, 259, 259, 259, 0, 0, 0, 0, -458, 0, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 259, 0, 259, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, -458, 259, -458, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 258, 258, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 259, 0, 264, 264, 264, 0, 0, 0, 0, 572, 264, 0, 0, 0, 0, 0, 0, 0, 259, 259, 0, 0, 0, 0, 0, 259, 259, 0, 0, 259, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 264, 0, 0, 264, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, 0, 0, 0, 0, -458, -458, -458, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, -458, -458, 0, 0, 0, 0, 264, 264, 264, 264, 0, 0, 0, 0, -458, 0, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 264, 0, 264, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, -458, -458, 0, 0, -458, 264, -458, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 259, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, 0, 0, 0, 264, 264, 0, 0, 264, 264, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 757, 758, 759, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, 0, 0, 0, 0, 0, 0, 0, -345, -345, 0, 259, 259, -345, 0, 0, 0, 259, 259, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 259, -345, 0, 0, 0, 0, 0, 0, 259, 0, 0, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, -345, -345, -345, 760, 0, 0, -345, 1531, -345, -345, 0, 761, 0, 0, 762, 0, -345, -345, -345, 0, -345, -345, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -907, 584, 0, -907, -907, -907, -907, 0, -907, -907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, 0, 0, -907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -907, -907, 0, -907, 0, 0, -907, -907, -907, -907, -907, 0, 0, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, 259, 259, -907, -907, -907, -907, 0, -907, 0, -907, -907, -907, 0, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, -907, 0, 0, -907, 848, -907, -907, 0, 586, -907, -907, 0, 0, -907, -907, 0, -907, -907, -907, -907, 0, 0, 0, 264, 264, 0, 0, 0, 0, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 264, 0, 259, 259, 0, 0, -345, 756, 264, -345, -345, -345, -345, 757, 758, 759, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, -345, -345, 0, -345, 0, 0, -345, -345, -345, -345, -345, 0, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, -345, 0, -345, -345, -345, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 760, -345, -345, -345, -345, -345, -345, -345, 761, -345, -345, 762, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 264, -450, 1153, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, 0, -450, -450, 0, -450, 0, 0, -450, -450, -450, -450, -450, 264, 264, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, -450, 0, -450, -450, -450, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -304, 302, 0, 1, 303, 106, 304, -304, 305, 306, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 2, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 0, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 0, 0, 307, -304, 0, -304, 0, 0, 308, 309, 310, -304, -304, 0, 0, -304, -304, -304, -304, -304, -304, 311, 312, -304, -304, -304, -304, -304, -304, -304, -304, -304, 0, -304, 0, 313, -304, -304, 0, 314, 315, 316, 317, 318, 319, 320, 321, -304, -304, -304, -304, -304, -304, -304, -304, 322, 323, 324, -304, -304, 325, 1241, 326, -304, -304, 1156, -304, -304, -304, -304, 327, 328, -304, 329, 330, 331, 332, -304, -304, -304, -304, -304, -305, 302, 0, 1, 303, 106, 304, -305, 305, 306, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 2, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 0, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 0, 0, 307, -305, 0, -305, 0, 0, 308, 309, 310, -305, -305, 0, 0, -305, -305, -305, -305, -305, -305, 311, 312, -305, -305, -305, -305, -305, -305, -305, -305, -305, 0, -305, 0, 313, -305, -305, 0, 314, 315, 316, 317, 318, 319, 320, 321, -305, -305, -305, -305, -305, -305, -305, -305, 322, 323, 324, -305, -305, 325, 1160, 326, -305, -305, 1161, -305, -305, -305, -305, 327, 328, -305, 329, 330, 331, 332, -305, -305, -305, -305, -305, -565, 302, 0, 1, 303, 106, 304, -565, 305, 306, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, 2, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, 0, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, 0, 0, 307, -565, 0, -565, 0, 0, 308, 309, 310, -565, -565, 0, 0, -565, -565, -565, -565, -565, -565, 311, 312, -565, -565, -565, -565, -565, -565, -565, -565, -565, 0, -565, 0, 313, -565, -565, 0, 314, 315, 316, 317, 318, 319, 320, 321, -565, -565, -565, -565, -565, -565, -565, -565, 322, 323, 324, -565, -565, 325, -565, 326, -565, -565, -565, -565, 744, -565, 1322, 327, 328, -565, 329, 330, 331, 332, -565, -565, -565, -565, -565, -566, 302, 0, 1, 303, 106, 304, -566, 305, 306, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, 2, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, 0, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, 0, 0, 307, -566, 0, -566, 0, 0, 308, 309, 310, -566, -566, 0, 0, -566, -566, -566, -566, -566, -566, 311, 312, -566, -566, -566, -566, -566, -566, -566, -566, -566, 0, -566, 0, 313, -566, -566, 0, 314, 315, 316, 317, 318, 319, 320, 321, -566, -566, -566, -566, -566, -566, -566, -566, 322, 323, 324, -566, -566, 325, -566, 326, -566, -566, -566, -566, 744, -566, 1388, 327, 328, -566, 329, 330, 331, 332, -566, -566, -566, -566, -566, -576, 302, 0, 1, 303, 106, 304, -576, 305, 306, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, 2, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, 0, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, 0, 0, 307, -576, 0, -576, 0, 0, 308, 309, 310, -576, -576, 0, 0, -576, -576, -576, -576, -576, -576, 311, 312, -576, -576, -576, -576, -576, -576, -576, -576, -576, 0, -576, 0, 313, -576, -576, 0, 314, 315, 316, 317, 318, 319, 320, 321, -576, -576, -576, -576, -576, -576, -576, -576, 322, 323, 324, -576, -576, 325, -576, 326, -576, -576, 1156, -576, -576, -576, -576, 327, 328, -576, 329, 330, 331, 332, -576, -576, -576, -576, -576, -578, 302, 0, 1, 303, 106, 304, -578, 305, 306, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, 2, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, 0, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, 0, 0, 307, -578, 0, -578, 0, 0, 308, 309, 310, -578, -578, 0, 0, -578, -578, -578, -578, -578, -578, 311, 312, -578, -578, -578, -578, -578, -578, -578, -578, -578, 0, -578, 0, 313, -578, -578, 0, 314, 315, 316, 317, 318, 319, 320, 321, -578, -578, -578, -578, -578, -578, -578, -578, 322, 323, 324, -578, -578, 325, 1160, 326, -578, -578, 1161, -578, -578, -578, -578, 327, 328, -578, 329, 330, 331, 332, -578, -578, -578, -578, -578, -577, 302, 0, 1, 303, 106, 304, -577, 305, 306, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 2, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, 0, 307, -577, 0, -577, 0, 0, 308, 309, 310, -577, -577, 0, 0, -577, -577, -577, -577, -577, -577, 311, 312, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, 0, 313, -577, -577, 0, 314, 315, 316, 317, 318, 319, 320, 321, -577, -577, -577, -577, -577, -577, -577, -577, 322, 323, 324, -577, -577, 325, -577, 326, -577, -577, 1156, -577, -577, -577, -577, 327, 328, -577, 329, 330, 331, 332, -577, -577, -577, -577, -577, -338, 1884, 0, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 0, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 0, 0, -338, -338, 0, -338, 0, 0, -338, -338, -338, -338, -338, 0, 0, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 0, -338, 0, -338, -338, -338, 0, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -342, 1920, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 0, 0, -342, -342, 0, -342, 0, 0, -342, -342, -342, -342, -342, 0, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 0, -342, 0, -342, -342, -342, 0, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -332, 302, 0, 1, 303, 106, 304, -332, 305, 306, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 2, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 0, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 0, 0, 307, -332, 0, -332, 0, 0, 308, 309, 310, -332, -332, 0, 0, -332, -332, -332, -332, -332, -332, 311, 312, -332, -332, -332, -332, -332, -332, -332, -332, -332, 0, -332, 0, 313, -332, -332, 0, 314, 315, 316, 317, 318, 319, 320, 321, -332, -332, -332, -332, -332, -332, -332, -332, 322, 323, 324, -332, -332, 325, -332, 326, -332, -332, -332, -332, 744, -332, -332, 327, 328, -332, 329, 330, 331, 332, -332, -332, -332, -332, -332, -543, 302, 0, 1, 303, 106, 304, -543, 305, 306, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, 2, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, 0, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, 0, 0, 307, -543, 0, -543, 0, 0, 308, 309, 310, -543, -543, 0, 0, -543, -543, -543, -543, -543, -543, 311, 312, -543, -543, -543, -543, -543, -543, -543, -543, -543, 0, -543, 0, 313, -543, -543, 0, 314, 315, 316, 317, 318, 319, 320, 321, -543, -543, -543, -543, -543, -543, -543, -543, 322, 323, 324, -543, -543, 325, -543, 326, -543, -543, -543, -543, 744, -543, -543, 327, 328, -543, 329, 330, 331, 332, -543, -543, -543, -543, -543, -551, 302, 0, 1, 303, 106, 304, -551, 305, 306, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, 2, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, 0, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, 0, 0, 307, -551, 0, -551, 0, 0, 308, 309, 310, -551, -551, 0, 0, -551, -551, -551, -551, -551, -551, 311, 312, -551, -551, -551, -551, -551, -551, -551, -551, -551, 0, -551, 0, 313, -551, -551, 0, 314, 315, 316, 317, 318, 319, 320, 321, -551, -551, -551, -551, -551, -551, -551, -551, 322, 323, 324, -551, -551, 325, -551, 326, -551, -551, -551, -551, 744, -551, -551, 327, 328, -551, 329, 330, 331, 332, -551, -551, -551, -551, -551, -544, 302, 0, 1, 303, 106, 304, -544, 305, 306, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, 2, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, 0, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, 0, 0, 307, -544, 0, -544, 0, 0, 308, 309, 310, -544, -544, 0, 0, -544, -544, -544, -544, -544, -544, 311, 312, -544, -544, -544, -544, -544, -544, -544, -544, -544, 0, -544, 0, 313, -544, -544, 0, 314, 315, 316, 317, 318, 319, 320, 321, -544, -544, -544, -544, -544, -544, -544, -544, 322, 323, 324, -544, -544, 325, -544, 326, -544, -544, -544, -544, 744, -544, -544, 327, 328, -544, 329, 330, 331, 332, -544, -544, -544, -544, -544, -552, 302, 0, 1, 303, 106, 304, -552, 305, 306, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, 2, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, 0, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, 0, 0, 307, -552, 0, -552, 0, 0, 308, 309, 310, -552, -552, 0, 0, -552, -552, -552, -552, -552, -552, 311, 312, -552, -552, -552, -552, -552, -552, -552, -552, -552, 0, -552, 0, 313, -552, -552, 0, 314, 315, 316, 317, 318, 319, 320, 321, -552, -552, -552, -552, -552, -552, -552, -552, 322, 323, 324, -552, -552, 325, -552, 326, -552, -552, -552, -552, 744, -552, -552, 327, 328, -552, 329, 330, 331, 332, -552, -552, -552, -552, -552, -545, 302, 0, 1, 303, 106, 304, -545, 305, 306, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, 2, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, 0, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, 0, 0, 307, -545, 0, -545, 0, 0, 308, 309, 310, -545, -545, 0, 0, -545, -545, -545, -545, -545, -545, 311, 312, -545, -545, -545, -545, -545, -545, -545, -545, -545, 0, -545, 0, 313, -545, -545, 0, 314, 315, 316, 317, 318, 319, 320, 321, -545, -545, -545, -545, -545, -545, -545, -545, 322, 323, 324, -545, -545, 325, -545, 326, -545, -545, -545, -545, 744, -545, -545, 327, 328, -545, 329, 330, 331, 332, -545, -545, -545, -545, -545, -553, 302, 0, 1, 303, 106, 304, -553, 305, 306, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, 2, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, 0, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, 0, 0, 307, -553, 0, -553, 0, 0, 308, 309, 310, -553, -553, 0, 0, -553, -553, -553, -553, -553, -553, 311, 312, -553, -553, -553, -553, -553, -553, -553, -553, -553, 0, -553, 0, 313, -553, -553, 0, 314, 315, 316, 317, 318, 319, 320, 321, -553, -553, -553, -553, -553, -553, -553, -553, 322, 323, 324, -553, -553, 325, -553, 326, -553, -553, -553, -553, 744, -553, -553, 327, 328, -553, 329, 330, 331, 332, -553, -553, -553, -553, -553, -546, 302, 0, 1, 303, 106, 304, -546, 305, 306, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, 2, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, 0, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, 0, 0, 307, -546, 0, -546, 0, 0, 308, 309, 310, -546, -546, 0, 0, -546, -546, -546, -546, -546, -546, 311, 312, -546, -546, -546, -546, -546, -546, -546, -546, -546, 0, -546, 0, 313, -546, -546, 0, 314, 315, 316, 317, 318, 319, 320, 321, -546, -546, -546, -546, -546, -546, -546, -546, 322, 323, 324, -546, -546, 325, -546, 326, -546, -546, -546, -546, 744, -546, -546, 327, 328, -546, 329, 330, 331, 332, -546, -546, -546, -546, -546, -554, 302, 0, 1, 303, 106, 304, -554, 305, 306, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, 2, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, 0, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, 0, 0, 307, -554, 0, -554, 0, 0, 308, 309, 310, -554, -554, 0, 0, -554, -554, -554, -554, -554, -554, 311, 312, -554, -554, -554, -554, -554, -554, -554, -554, -554, 0, -554, 0, 313, -554, -554, 0, 314, 315, 316, 317, 318, 319, 320, 321, -554, -554, -554, -554, -554, -554, -554, -554, 322, 323, 324, -554, -554, 325, -554, 326, -554, -554, -554, -554, 744, -554, -554, 327, 328, -554, 329, 330, 331, 332, -554, -554, -554, -554, -554, -340, 2025, 0, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 0, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 0, 0, -340, -340, 0, -340, 0, 0, -340, -340, -340, -340, -340, 0, 0, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 0, -340, 0, -340, -340, -340, 0, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -339, 2026, 0, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 0, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 0, 0, -339, -339, 0, -339, 0, 0, -339, -339, -339, -339, -339, 0, 0, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 0, -339, 0, -339, -339, -339, 0, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -345, 756, 0, -345, -345, -345, -345, 757, 758, 759, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, -345, -345, 0, -345, 0, 0, -345, -345, -345, -345, -345, 0, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, -345, 0, -345, -345, -345, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 760, -345, -345, -345, -345, -345, -345, -345, 1151, -345, -345, 762, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -450, 1153, 0, -450, -450, -450, -450, 0, -450, -450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, 0, -450, -450, 0, -450, 0, 0, -450, -450, -450, -450, -450, 0, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, -450, 0, -450, -450, -450, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, 0, -450, -450, -450, -450, 0, -450, -450, -450, 1154, -450, -450, -450, 0, -450, -450, -450, -450, -1090, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, 0, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, 0, 0, 307, -1090, 0, -1090, 0, 0, 308, 309, 310, -1090, -1090, 0, 0, -1090, -1090, -1090, -1090, -1090, -1090, 311, 312, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, 0, -1090, 0, 313, -1090, -1090, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1090, -1090, -1090, -1090, -1090, -1090, -1090, -1090, 322, 323, 324, 0, 0, 325, 1160, 326, -1090, 0, 1161, -1090, -1090, 0, -1090, 327, 328, 0, 329, 330, 331, 332, -1234, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, 0, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, 0, 0, 307, -1234, 0, -1234, 0, 0, 308, 309, 310, -1234, -1234, 0, 0, -1234, -1234, -1234, -1234, -1234, -1234, 311, 312, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, 0, -1234, 0, 313, -1234, -1234, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1234, -1234, -1234, -1234, -1234, -1234, -1234, -1234, 322, 323, 324, 0, 0, 325, 1160, 326, 1626, 0, 1161, -1234, -1234, 0, -1234, 327, 328, 0, 329, 330, 331, 332, -1192, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, 0, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, 0, 0, 307, -1192, 0, -1192, 0, 0, 308, 309, 310, -1192, -1192, 0, 0, -1192, -1192, -1192, -1192, -1192, -1192, 311, 312, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, 0, -1192, 0, 313, -1192, -1192, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, 322, 323, 324, 0, 0, 325, 1835, 326, -1192, 0, 1161, -1192, -1192, 0, -1192, 327, 328, 0, 329, 330, 331, 332, -1223, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, -1223, 0, -1223, 0, 0, 308, 309, 310, -1223, -1223, 0, 0, -1223, 32, -1223, -1223, -1223, -1223, 311, 312, 1125, -1223, 640, 641, 642, -1223, -1223, -1223, -1223, 0, -1223, 0, 313, -1223, -1223, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, -1223, -1223, -1223, -1223, -1223, -1223, 322, 323, 324, 0, 0, 325, 1160, 326, 643, 0, 1161, -1223, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -577, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, 0, 307, -577, 0, -577, 0, 0, 308, 309, 310, -577, -577, 0, 0, -577, -577, -577, -577, -577, -577, 311, 312, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, 0, 313, -577, -577, 0, 314, 315, 316, 317, 318, 319, 320, 321, -577, -577, -577, -577, -577, -577, -577, -577, 322, 323, 324, 0, 0, 325, -577, 326, 1155, 0, 1156, -577, -577, 0, -577, 327, 328, 0, 329, 330, 331, 332, -1215, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, 0, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, 0, 0, 307, -1215, 0, -1215, 0, 0, 308, 309, 310, -1215, -1215, 0, 0, -1215, -1215, -1215, -1215, -1215, -1215, 311, 312, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, 0, -1215, 0, 313, -1215, -1215, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1215, -1215, -1215, -1215, -1215, -1215, -1215, -1215, 322, 323, 324, 0, 0, 325, 2072, 326, -1215, 0, 1156, -1215, -1215, 0, -1215, 327, 328, 0, 329, 330, 331, 332, -1216, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, 0, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, 0, 0, 307, -1216, 0, -1216, 0, 0, 308, 309, 310, -1216, -1216, 0, 0, -1216, -1216, -1216, -1216, -1216, -1216, 311, 312, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, 0, -1216, 0, 313, -1216, -1216, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1216, -1216, -1216, -1216, -1216, -1216, -1216, -1216, 322, 323, 324, 0, 0, 325, 1160, 326, 2073, 0, 1161, -1216, -1216, 0, -1216, 327, 328, 0, 329, 330, 331, 332, -1210, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, -1210, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, -1210, 0, -1210, 0, 0, 308, 309, 310, -1210, -1210, 0, 0, -1210, 32, -1210, -1210, -1210, -1210, 311, 312, 1125, -1210, 640, 641, 642, -1210, -1210, -1210, -1210, 0, -1210, 0, 313, -1210, -1210, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, -1210, -1210, -1210, -1210, -1210, -1210, 322, 323, 324, 0, 0, 325, 1160, 326, 643, 0, 1161, -1210, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1158, 618, 0, -1158, -1158, -1158, -1158, 0, -1158, -1158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, 0, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, 0, 0, -1158, -1158, 0, -1158, 0, 0, -1158, -1158, -1158, -1158, -1158, 0, 0, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, 0, -1158, 0, -1158, -1158, -1158, 0, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, -1158, 0, 0, -1158, 0, -1158, 619, 0, -1158, -1158, -1158, 0, -1158, -1158, -1158, 0, -1158, -1158, -1158, -1158, -1181, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1181, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1181, 32, -1181, -1181, -1181, -1181, 311, 638, 639, 248, 640, 641, 642, -1181, -1181, -1181, -1181, 0, -1181, 0, 313, -1181, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1181, -1181, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1159, 618, 0, -1159, -1159, -1159, -1159, 0, -1159, -1159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, 0, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, 0, 0, -1159, -1159, 0, -1159, 0, 0, -1159, -1159, -1159, -1159, -1159, 0, 0, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, 0, -1159, 0, -1159, -1159, -1159, 0, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, -1159, 0, 0, -1159, 0, -1159, 619, 0, -1159, -1159, -1159, 0, -1159, -1159, -1159, 0, -1159, -1159, -1159, -1159, -1220, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, -1220, 0, -1220, 0, 0, 308, 309, 310, -1220, -1220, 0, 0, -1220, 32, -1220, -1220, -1220, -1220, 311, 312, 1125, -1220, 640, 641, 642, -1220, -1220, -1220, -1220, 0, -1220, 0, 313, -1220, -1220, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, -1220, -1220, -1220, -1220, -1220, -1220, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1220, -1220, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1236, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, 0, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, 0, 0, 307, -1236, 0, -1236, 0, 0, 308, 309, 310, -1236, -1236, 0, 0, -1236, -1236, -1236, -1236, -1236, -1236, 311, 312, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, 0, -1236, 0, 313, -1236, -1236, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1236, -1236, -1236, -1236, -1236, -1236, -1236, -1236, 322, 323, 324, 0, 0, 325, 0, 326, 1136, 0, -1236, -1236, 744, 0, -1236, 327, 328, 0, 329, 330, 331, 332, -1171, 1163, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1171, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1171, 32, -1171, -1171, -1171, -1171, 311, 638, 639, 248, 640, 641, 642, -1171, -1171, -1171, -1171, 0, -1171, 0, 313, -1171, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1171, -1171, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1175, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1175, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1175, 32, -1175, -1175, -1175, -1175, 311, 638, 639, 248, 640, 641, 642, -1175, -1175, -1175, -1175, 0, -1175, 0, 313, -1175, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1175, -1175, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1170, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1170, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1170, 32, -1170, -1170, -1170, -1170, 311, 638, 639, 248, 640, 641, 642, -1170, -1170, -1170, -1170, 0, -1170, 0, 313, -1170, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1170, -1170, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1174, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1174, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1174, 32, -1174, -1174, -1174, -1174, 311, 638, 639, 248, 640, 641, 642, -1174, -1174, -1174, -1174, 0, -1174, 0, 313, -1174, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1174, -1174, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1077, 1176, 0, -1077, -1077, -1077, -1077, 0, -1077, -1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, 0, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, 0, 0, -1077, -1077, 0, -1077, 0, 0, -1077, -1077, -1077, -1077, -1077, 0, 0, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, 0, -1077, 0, -1077, -1077, -1077, 0, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, -1077, 0, 0, -1077, 0, -1077, -1077, 0, -1077, -1077, -1077, 0, -1077, -1077, -1077, 0, -1077, -1077, -1077, -1077, -1079, 1177, 0, -1079, -1079, -1079, -1079, 0, -1079, -1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, 0, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, 0, 0, -1079, -1079, 0, -1079, 0, 0, -1079, -1079, -1079, -1079, -1079, 0, 0, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, 0, -1079, 0, -1079, -1079, -1079, 0, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, 0, 0, -1079, 0, -1079, -1079, 0, -1079, -1079, -1079, 0, -1079, -1079, -1079, 0, -1079, -1079, -1079, -1079, -1125, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1125, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1125, 32, -1125, -1125, -1125, -1125, 311, 638, 639, 248, 640, 641, 642, -1125, -1125, -1125, -1125, 0, -1125, 0, 313, -1125, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1125, -1125, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1127, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1127, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1127, 32, -1127, -1127, -1127, -1127, 311, 638, 639, 248, 640, 641, 642, -1127, -1127, -1127, -1127, 0, -1127, 0, 313, -1127, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1127, -1127, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1172, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1172, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1172, 32, -1172, -1172, -1172, -1172, 311, 638, 639, 248, 640, 641, 642, -1172, -1172, -1172, -1172, 0, -1172, 0, 313, -1172, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1172, -1172, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1176, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1176, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1176, 32, -1176, -1176, -1176, -1176, 311, 638, 639, 248, 640, 641, 642, -1176, -1176, -1176, -1176, 0, -1176, 0, 313, -1176, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1176, -1176, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1173, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1173, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1173, 32, -1173, -1173, -1173, -1173, 311, 638, 639, 248, 640, 641, 642, -1173, -1173, -1173, -1173, 0, -1173, 0, 313, -1173, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1173, -1173, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1177, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, -1177, 0, 0, 308, 309, 310, 28, 29, 0, 0, -1177, 32, -1177, -1177, -1177, -1177, 311, 638, 639, 248, 640, 641, 642, -1177, -1177, -1177, -1177, 0, -1177, 0, 313, -1177, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, -1177, -1177, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, -1168, 618, 0, -1168, -1168, -1168, -1168, 0, -1168, -1168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, 0, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, 0, 0, -1168, -1168, 0, -1168, 0, 0, -1168, -1168, -1168, -1168, -1168, 0, 0, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, 0, -1168, 0, -1168, -1168, -1168, 0, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, -1168, 0, 0, -1168, 0, -1168, 619, 0, -1168, -1168, -1168, 0, -1168, -1168, -1168, 0, -1168, -1168, -1168, -1168, -1169, 618, 0, -1169, -1169, -1169, -1169, 0, -1169, -1169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, 0, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, 0, 0, -1169, -1169, 0, -1169, 0, 0, -1169, -1169, -1169, -1169, -1169, 0, 0, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, 0, -1169, 0, -1169, -1169, -1169, 0, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, -1169, 0, 0, -1169, 0, -1169, 619, 0, -1169, -1169, -1169, 0, -1169, -1169, -1169, 0, -1169, -1169, -1169, -1169, -1004, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, 0, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, 0, 0, 307, -1004, 0, -1004, 0, 0, 308, 309, 310, -1004, -1004, 0, 0, -1004, -1004, -1004, -1004, -1004, -1004, 311, 312, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, 0, -1004, 0, 313, -1004, -1004, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1004, -1004, -1004, -1004, -1004, -1004, -1004, -1004, 322, 323, 324, 0, 0, 325, 0, 326, -1004, 0, 1804, 1805, 1016, 0, -1004, 327, 328, 0, 329, 330, 331, 332, -1131, 618, 0, -1131, -1131, -1131, -1131, 0, -1131, -1131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, 0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, 0, 0, -1131, -1131, 0, -1131, 0, 0, -1131, -1131, -1131, -1131, -1131, 0, 0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, 0, -1131, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, -1131, 0, 0, -1131, 0, -1131, 619, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, -1131, -1132, 618, 0, -1132, -1132, -1132, -1132, 0, -1132, -1132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, 0, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, 0, 0, -1132, -1132, 0, -1132, 0, 0, -1132, -1132, -1132, -1132, -1132, 0, 0, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, 0, -1132, 0, -1132, -1132, -1132, 0, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, -1132, 0, 0, -1132, 0, -1132, 619, 0, -1132, -1132, -1132, 0, -1132, -1132, -1132, 0, -1132, -1132, -1132, -1132, -1128, 618, 0, -1128, -1128, -1128, -1128, 0, -1128, -1128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, 0, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, 0, 0, -1128, -1128, 0, -1128, 0, 0, -1128, -1128, -1128, -1128, -1128, 0, 0, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, 0, -1128, 0, -1128, -1128, -1128, 0, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, -1128, 0, 0, -1128, 0, -1128, 619, 0, -1128, -1128, -1128, 0, -1128, -1128, -1128, 0, -1128, -1128, -1128, -1128, -1006, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 0, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 0, 0, 307, -1006, 0, -1006, 0, 0, 308, 309, 310, -1006, -1006, 0, 0, -1006, -1006, -1006, -1006, -1006, -1006, 311, 312, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 0, -1006, 0, 313, -1006, -1006, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 322, 323, 324, 0, 0, 325, 0, 326, -1006, 0, -1006, 1985, 1016, 0, -1006, 327, 328, 0, 329, 330, 331, 332, -1000, 1988, 0, -1000, -1000, -1000, -1000, 0, -1000, -1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 0, 0, -1000, -1000, 0, -1000, 0, 0, -1000, -1000, -1000, -1000, -1000, 0, 0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 0, -1000, 0, -1000, -1000, -1000, 0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 0, 0, -1000, 0, -1000, -1000, 0, -1000, -1000, -1000, 0, -1000, -1000, -1000, 0, -1000, -1000, -1000, -1000, -1129, 618, 0, -1129, -1129, -1129, -1129, 0, -1129, -1129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, 0, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, 0, 0, -1129, -1129, 0, -1129, 0, 0, -1129, -1129, -1129, -1129, -1129, 0, 0, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, 0, -1129, 0, -1129, -1129, -1129, 0, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, -1129, 0, 0, -1129, 0, -1129, 619, 0, -1129, -1129, -1129, 0, -1129, -1129, -1129, 0, -1129, -1129, -1129, -1129, -1130, 618, 0, -1130, -1130, -1130, -1130, 0, -1130, -1130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, 0, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, 0, 0, -1130, -1130, 0, -1130, 0, 0, -1130, -1130, -1130, -1130, -1130, 0, 0, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, 0, -1130, 0, -1130, -1130, -1130, 0, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, -1130, 0, 0, -1130, 0, -1130, 619, 0, -1130, -1130, -1130, 0, -1130, -1130, -1130, 0, -1130, -1130, -1130, -1130, -1217, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, 0, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, 0, 0, 307, -1217, 0, -1217, 0, 0, 308, 309, 310, -1217, -1217, 0, 0, -1217, -1217, -1217, -1217, -1217, -1217, 311, 312, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, 0, -1217, 0, 313, -1217, -1217, 0, 314, 315, 316, 317, 318, 319, 320, 321, -1217, -1217, -1217, -1217, -1217, -1217, -1217, -1217, 322, 323, 324, 0, 0, 325, 0, 326, -1217, 0, -1217, -1217, -1217, 0, -1217, 327, 328, 0, 329, 330, 331, 332, -1001, 2064, 0, -1001, -1001, -1001, -1001, 0, -1001, -1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 0, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 0, 0, -1001, -1001, 0, -1001, 0, 0, -1001, -1001, -1001, -1001, -1001, 0, 0, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 0, -1001, 0, -1001, -1001, -1001, 0, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 0, 0, -1001, 0, -1001, -1001, 0, -1001, -1001, -1001, 0, -1001, -1001, -1001, 0, -1001, -1001, -1001, -1001, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 639, 248, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, 0, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 639, 248, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, 0, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, 988, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1250, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -110, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1257, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -98, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1261, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -102, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1515, 0, 987, -65, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, 1525, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1582, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -81, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -107, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -97, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -101, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1765, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 986, 0, 987, -88, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -78, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 246, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 311, 638, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 249, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 250, 251, 252, 253, 206, 207, 322, 323, 324, 0, 0, 325, 0, 326, 1524, 0, 987, -85, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 206, 207, 322, 323, 324, 0, 0, 325, 302, 326, 1, 303, 106, 304, 0, 305, 306, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 866, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 206, 207, 322, 323, 324, 0, 0, 325, 302, 326, 1, 303, 106, 304, 0, 305, 306, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 0, 0, 322, 323, 324, 0, 0, 325, 302, 326, 1, 303, 106, 304, 254, 305, 306, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 0, 0, 0, 308, 309, 310, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 311, 407, 38, 39, 0, 302, 0, 1, 303, 106, 304, 0, 305, 306, 313, 0, 40, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 45, 46, 47, 48, 2, 0, 322, 323, 889, 0, 0, 890, 733, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, -453, 326, 643, 0, -453, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 643, 0, 1161, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 1838, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117, 1118, 1119, 630, 1120, 1121, 1122, 1123, 635, 636, 1124, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, 0, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 311, 312, 1125, 0, 640, 641, 642, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 43, 44, 0, 0, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 643, 0, 0, 0, 254, 0, 644, 327, 328, 0, 329, 330, 331, 332, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 1734, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1729, 0, 0, 0, 1737, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1858, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 1626, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 1859, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1729, 0, 0, 0, 1876, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1729, 0, 0, 0, 1880, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 2008, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 1859, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 1859, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 2062, 2063, 1016, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2074, 326, 2075, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 2073, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 745, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 1155, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1266, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1333, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 1136, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1615, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1160, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1616, 326, 1617, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 1625, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1695, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 1723, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1726, 0, 0, 0, 1727, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 1733, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1726, 0, 0, 0, 1735, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1834, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1836, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1837, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1840, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1616, 326, 1617, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1860, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 1857, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1861, 326, 1617, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1726, 0, 0, 0, 1874, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 1726, 0, 0, 0, 1878, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1993, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1835, 326, 0, 0, 1161, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2000, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1861, 326, 1617, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2078, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 2107, 1016, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2110, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2111, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2139, 326, 0, 0, 1156, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 549, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 840, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 844, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 1016, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 1057, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 1109, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1460, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 733, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 1563, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1599, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 1602, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1794, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 1793, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1797, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 1801, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 744, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 1847, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 1907, 0, 326, 0, 0, 0, 0, 1793, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2009, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 2069, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 703, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 302, 0, 1, 303, 106, 304, 0, 305, 306, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, 2, 0, 0, 0, 0, 322, 323, 324, 0, 0, 706, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 308, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, -895, 584, 0, -895, -895, -895, 322, 323, 324, 0, 0, 729, 0, 326, 0, 0, 0, 0, 0, 0, 0, 327, 328, 0, 329, 330, 331, 332, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, -895, 0, 0, -895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -895, -895, 0, -895, 0, 0, -895, -895, 0, -895, -895, 0, 0, -895, -895, -895, -895, -895, -895, 0, -895, -895, -895, -895, 0, 0, -895, -895, -895, -895, 0, -895, 0, -895, -895, -895, 0, -895, -895, -895, -895, -895, -895, -895, 0, -895, -895, -895, -895, -895, -895, -895, -895, -895, 0, -895, 0, 0, -895, 585, -895, -895, 0, 586, -895, 0, 0, 0, -895, -895, -189, 907, 0, -189, -189, -189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, 0, 0, -189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -189, -189, 0, -189, 0, 0, -189, -189, 0, -189, -189, 0, 0, -189, -189, -189, -189, -189, -189, 0, -189, -189, -189, -189, 0, 0, -189, -189, -189, -189, 0, -189, 0, -189, -189, -189, 0, -189, -189, -189, -189, -189, -189, -189, 0, -189, -189, -189, -189, -189, -189, -189, -189, -189, 0, -189, 0, 0, -189, 0, -189, 908, 0, 909, -189, 0, 0, 0, -189, -189, -253, 921, 0, 1, 303, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, -253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, -251, 924, -253, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, -251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, -254, 921, -251, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, -254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, -252, 924, -254, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, -252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 424, -252, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 490, 440, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 512, 491, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 517, 513, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 521, 518, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, 522, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -750, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -751, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -747, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -748, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -753, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 1039, -754, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 1043, 1040, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, 1044, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -649, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -730, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -731, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -733, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 1545, -734, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, 1546, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -644, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -645, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -736, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -737, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -648, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -646, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -624, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -623, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -637, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 302, -638, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -647, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -633, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -634, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -621, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -622, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -616, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 921, -617, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 924, -635, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 0, 424, -636, 1, 303, 106, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 0, 51, 0, 0, 437, 0, 438, 439, 490, 0, 1, 303, 106, 0, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 27, 0, 425, 0, 0, 308, 309, 0, 28, 29, 0, 0, 426, 32, 427, 428, 35, 36, 0, 407, 38, 39, 429, 0, 0, 430, 431, 432, 433, 0, 434, 0, 435, 436, 40, 0, 314, 315, 316, 317, 318, 319, 320, 0, 43, 44, 45, 46, 47, 48, 206, 207, 322, 199, 51, 1, 0, 437, 0, 438, 439, 0, 0, 0, 0, 0, 0, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 199, 51, 1, 0, 566, 1048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 1, 0, 51, 0, 0, 862, 1048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 1, 0, 51, 0, 0, 566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 568, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 1, 0, 51, 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 862, 0, 0, 0, 0, 0, 0, 1425, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 862, 0, 0, 0, 0, 0, 0, 1442, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1687, 0, 0, 0, 0, 0, 0, 0, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 1, 0, 51, 0, 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1702, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 273, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 274, 31, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 42, 0, 0, 1, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 275, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 425, 0, 0, 0, 0, 0, 28, 29, 0, 0, 426, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 949, 0, 438, 0, 0, 0, 0, 0, 0, 950, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 1, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 0, 930, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 1510, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 930, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, 0, 0, -66, -66, 0, 0, 0, -66, 0, 0, 0, 0, 0, -66, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 0, 1714, 0, 0, 0, 0, 0, 0, -66, -66, -66, -66, -66, -66, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0, 1511, 0, 1512, -66, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 1718, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 1719, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 1825, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 1970, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, -1288, 292, 0, 1, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -87, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 31, 0, 32, 33, 34, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 1, 0, 0, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 53, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 1, 0, 832, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1401, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 1, 0, 832, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1745, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 165, 0, 1, 0, 832, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1746, 2, 3, 4, 166, 6, 7, 8, 9, 10, 167, 168, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 165, 0, 1, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 169, 0, 2, 3, 4, 166, 6, 7, 8, 9, 10, 167, 168, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 605, 0, 1, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 169, 0, 2, 200, 201, 202, 203, 204, 234, 235, 236, 606, 607, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, -915, 0, -915, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 51, 0, 0, 52, 0, 0, 608, 0, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -915, 0, 0, 0, 0, 0, 0, 0, -915, -915, 0, 0, 0, -915, 0, 0, 0, 0, 0, -915, -915, -915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -915, 0, 1, 0, 0, 0, 0, 0, 0, 0, -915, -915, -915, -915, -915, -915, -915, -915, 0, 0, -915, 0, 0, -915, 0, 0, -915, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 31, 0, 32, 33, 34, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 0, -1289, 284, 42, 1, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 0, 0, 53, 0, 0, 0, 0, 2, 3, 4, 166, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 33, 34, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 1208, 1674, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 208, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 390, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1468, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 208, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 390, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 1560, 0, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 0, 1897, 0, 2, 3, 4, 166, 6, 7, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 2, 3, 4, 166, 6, 7, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 887, 2, 3, 4, 166, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 50, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 565, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 721, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 0, 0, 0, 0, 0, 1447, 2, 200, 201, 202, 203, 204, 234, 235, 236, 1532, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1071, 0, 1, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 51, 0, 0, 52, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 1077, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 1083, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 871, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 504, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 832, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 479, 480, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 2, 200, 201, 202, 203, 204, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 35, 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 206, 207, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 51, 0, 0, 862, 1671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1521, 2, 200, 201, 202, 203, 204, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 18, 19, 244, 245, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 28, 29, 0, 0, 0, 32, 0, 0, 0, 0, 0, 247, 38, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 250, 251, 252, 253, 206, 207
141 };
142
143 static const yytype_int16 yycheck[] =
144 {
145 0, 92, 86, 536, 928, 132, 861, 288, 642, 153, 1218, 928, 720, 471, 861, 345, 86, 5, 938, 345, 837, 1016, 581, 1101, 83, 828, 998, 475, 1000, 828, 30, 31, 156, 999, 472, 93, 100, 1, 93, 128, 5, 41, 837, 83, 128, 998, 84, 1000, 83, 30, 471, 128, 52, 744, 1, 998, 183, 1000, 128, 59, 751, 42, 744, 754, 64, 64, 66, 270, 861, 751, 83, 100, 754, 3, 93, 885, 960, 5, 1609, 83, 93, 100, 82, 83, 84, 1, 86, 100, 556, 93, 1621, 91, 795, 93, 1, 186, 187, 722, 28, 5, 100, 101, 128, 328, 104, 77, 998, 37, 1000, 135, 3, 3, 5, 113, 536, 121, 116, 59, 586, 5, 823, 589, 144, 591, 130, 593, 107, 108, 128, 3, 111, 131, 132, 83, 84, 157, 136, 159, 1, 161, 140, 141, 142, 3, 144, 5, 134, 3, 148, 959, 150, 0, 17, 153, 154, 144, 156, 157, 158, 159, 132, 161, 3, 128, 164, 129, 344, 1, 157, 3, 159, 113, 161, 3, 174, 174, 1, 268, 186, 187, 358, 131, 1, 183, 362, 132, 979, 121, 466, 467, 471, 1, 126, 123, 1, 309, 3, 2095, 198, 1, 128, 315, 1, 3, 134, 5, 132, 1, 3, 3, 210, 3, 212, 129, 492, 493, 1, 5, 0, 278, 220, 221, 129, 1, 288, 131, 290, 265, 1, 288, 230, 124, 290, 233, 83, 290, 514, 515, 278, 132, 1, 519, 520, 278, 93, 523, 524, 881, 288, 1, 124, 100, 101, 2151, 128, 1, 198, 183, 132, 288, 3, 290, 270, 1, 124, 265, 129, 123, 395, 1, 270, 290, 132, 387, 274, 389, 270, 290, 278, 144, 1252, 289, 1, 124, 288, 1251, 290, 1259, 288, 288, 290, 1263, 1258, 274, 124, 129, 1262, 3, 422, 1252, 1, 83, 3, 17, 129, 864, 1259, 126, 308, 1252, 1263, 93, 878, 123, 314, 265, 1259, 3, 100, 101, 1263, 1852, 129, 1207, 124, 325, 796, 129, 278, 124, 129, 3, 132, 128, 126, 129, 128, 132, 760, 339, 3, 126, 28, 128, 129, 133, 327, 760, 126, 5, 441, 442, 443, 444, 824, 123, 129, 793, 794, 1, 1252, 3, 121, 3, 17, 28, 134, 1259, 129, 126, 123, 1263, 221, 130, 126, 798, 128, 129, 121, 122, 1, 381, 382, 129, 806, 821, 822, 387, 472, 389, 1193, 129, 1195, 806, 1193, 395, 1195, 129, 3, 128, 1, 401, 472, 826, 531, 134, 7, 8, 9, 1, 129, 52, 123, 557, 414, 1106, 697, 1, 124, 419, 547, 421, 422, 28, 1106, 425, 426, 885, 129, 278, 144, 431, 123, 73, 434, 435, 436, 437, 438, 288, 1006, 290, 3, 134, 130, 387, 537, 389, 90, 540, 780, 781, 782, 567, 780, 781, 782, 878, 130, 92, 123, 664, 665, 666, 667, 17, 466, 467, 468, 395, 126, 471, 472, 651, 1682, 475, 654, 566, 478, 1, 810, 811, 812, 483, 810, 811, 812, 487, 488, 566, 131, 144, 492, 493, 1053, 1866, 278, 935, 946, 1577, 948, 959, 123, 124, 504, 1064, 288, 128, 290, 5, 510, 511, 1432, 627, 514, 515, 1, 938, 1, 519, 520, 3, 123, 523, 524, 130, 127, 527, 528, 529, 131, 531, 124, 134, 534, 123, 128, 136, 959, 561, 1424, 563, 126, 1538, 128, 545, 546, 547, 1006, 774, 3, 551, 1472, 186, 187, 1475, 556, 557, 3, 120, 121, 561, 3, 563, 564, 1420, 566, 567, 568, 130, 419, 571, 561, 1420, 563, 28, 801, 527, 528, 529, 221, 581, 3, 1208, 809, 1006, 586, 1404, 1405, 589, 3, 591, 144, 593, 1016, 545, 546, 878, 5, 126, 600, 1226, 1070, 1487, 829, 531, 128, 1531, 1233, 1404, 1405, 3, 1584, 5, 1531, 5, 1, 1583, 3, 3, 1088, 547, 471, 5, 3, 567, 3, 1420, 124, 720, 3, 1584, 632, 697, 634, 268, 28, 270, 697, 124, 129, 1584, 642, 128, 426, 128, 797, 2018, 130, 2020, 1505, 1498, 3, 1500, 3, 581, 289, 697, 600, 998, 999, 1000, 511, 128, 664, 665, 666, 667, 697, 134, 664, 665, 666, 667, 825, 3, 121, 130, 959, 123, 1888, 126, 682, 683, 692, 693, 121, 3, 3, 130, 134, 691, 1584, 11, 73, 130, 73, 697, 679, 680, 130, 1696, 132, 703, 7, 8, 9, 120, 121, 130, 123, 711, 28, 2084, 65, 2086, 123, 2088, 718, 719, 720, 721, 722, 723, 3, 1006, 7, 8, 9, 729, 1152, 129, 732, 123, 1156, 120, 121, 1159, 130, 1161, 124, 741, 124, 128, 725, 726, 727, 120, 121, 83, 129, 350, 129, 556, 127, 2126, 2127, 757, 2129, 1, 130, 761, 132, 1041, 1042, 69, 70, 1045, 1046, 120, 121, 120, 121, 862, 2145, 1466, 1, 127, 127, 130, 120, 419, 132, 586, 1466, 862, 589, 1, 591, 799, 593, 2162, 120, 121, 1, 1767, 437, 1681, 1793, 130, 1766, 132, 1686, 803, 122, 120, 121, 807, 441, 1804, 128, 444, 666, 667, 1767, 130, 930, 827, 1, 795, 911, 912, 421, 914, 1767, 129, 917, 918, 131, 973, 1, 134, 832, 833, 834, 1755, 1756, 837, 838, 839, 130, 123, 123, 967, 968, 124, 935, 823, 697, 183, 131, 935, 134, 134, 703, 969, 12, 13, 935, 1418, 860, 861, 862, 796, 3, 935, 866, 1751, 868, 869, 7, 8, 9, 511, 127, 1767, 876, 877, 878, 132, 729, 881, 124, 732, 3, 885, 128, 887, 888, 28, 890, 824, 892, 1037, 1038, 3, 300, 129, 989, 124, 7, 8, 9, 128, 537, 309, 1109, 540, 3, 1112, 124, 315, 1251, 1252, 128, 697, 123, 124, 1248, 1258, 1259, 128, 1248, 1262, 1263, 566, 1053, 568, 566, 929, 3, 931, 126, 28, 123, 935, 130, 1792, 938, 0, 123, 124, 37, 943, 278, 128, 946, 1150, 948, 949, 972, 5, 1066, 124, 288, 28, 134, 128, 958, 959, 960, 1164, 1165, 1166, 1167, 121, 122, 967, 968, 122, 970, 122, 972, 973, 3, 128, 1065, 128, 978, 979, 980, 981, 11, 972, 123, 834, 123, 798, 1065, 1984, 729, 1550, 122, 732, 131, 79, 1704, 134, 128, 300, 127, 120, 121, 1117, 123, 1538, 1006, 1641, 309, 1467, 122, 1432, 120, 121, 315, 826, 128, 7, 8, 9, 869, 1905, 130, 126, 131, 1047, 110, 111, 123, 878, 1255, 664, 665, 666, 667, 797, 885, 1037, 1038, 137, 138, 1041, 1042, 892, 1968, 1045, 1046, 1047, 132, 1049, 1675, 1472, 1052, 1053, 1475, 7, 8, 9, 1047, 692, 693, 694, 1062, 825, 1064, 1065, 1066, 2062, 793, 794, 1070, 121, 3, 1073, 5, 128, 1076, 122, 128, 1079, 128, 3, 1082, 128, 134, 1085, 799, 3, 1088, 128, 1090, 120, 121, 122, 943, 1209, 821, 822, 127, 128, 31, 130, 1052, 741, 1104, 3, 28, 128, 2103, 1109, 959, 3, 1112, 5, 827, 1109, 1538, 1231, 1112, 1208, 129, 1121, 44, 1123, 1066, 12, 13, 1053, 14, 15, 28, 1208, 1132, 1980, 120, 1982, 1062, 471, 1064, 129, 3, 131, 5, 130, 6, 1145, 8, 9, 129, 65, 1150, 1151, 74, 75, 140, 141, 1150, 7, 8, 9, 1141, 1183, 124, 122, 1164, 1165, 1166, 1167, 31, 128, 1164, 1165, 1166, 1167, 123, 127, 74, 75, 127, 131, 124, 79, 1182, 1183, 1184, 134, 1186, 123, 86, 1748, 789, 790, 129, 792, 1183, 122, 1196, 531, 1198, 1907, 534, 128, 124, 1203, 120, 121, 128, 1207, 1208, 10, 11, 73, 110, 111, 121, 1493, 1494, 120, 817, 818, 819, 820, 84, 130, 862, 132, 1226, 123, 120, 121, 123, 869, 130, 1233, 121, 122, 1870, 140, 141, 877, 122, 1, 1242, 3, 1583, 1584, 128, 109, 124, 890, 888, 77, 128, 1812, 1196, 1109, 132, 119, 1112, 121, 124, 860, 861, 1, 128, 123, 1, 1070, 1249, 1547, 1548, 1804, 134, 1076, 122, 137, 138, 139, 3, 1082, 128, 131, 527, 528, 529, 1088, 783, 784, 929, 122, 3, 127, 69, 70, 698, 128, 1150, 3, 11, 1721, 545, 546, 943, 28, 1726, 137, 138, 1729, 949, 122, 1164, 1165, 1166, 1167, 91, 128, 813, 814, 95, 44, 97, 123, 28, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1755, 1756, 74, 75, 44, 74, 75, 79, 124, 130, 79, 132, 128, 1196, 86, 74, 75, 86, 129, 122, 1203, 123, 989, 691, 122, 128, 123, 960, 1476, 697, 128, 74, 75, 123, 74, 75, 79, 1793, 110, 111, 124, 110, 111, 86, 128, 124, 124, 124, 1804, 128, 128, 128, 1589, 1590, 126, 127, 128, 126, 127, 128, 123, 1395, 1396, 698, 1601, 1399, 1400, 110, 111, 123, 1404, 1405, 123, 120, 121, 122, 1, 1052, 783, 784, 1052, 128, 1416, 130, 124, 1400, 1420, 1421, 124, 1550, 1424, 124, 128, 1766, 1767, 128, 1430, 387, 1432, 389, 123, 1435, 124, 121, 122, 1439, 128, 136, 813, 814, 1444, 1445, 1446, 131, 88, 89, 90, 1984, 136, 137, 138, 130, 140, 141, 142, 143, 144, 130, 124, 132, 154, 2099, 128, 1467, 158, 1469, 3, 130, 1472, 124, 0, 1475, 1109, 128, 1478, 1112, 126, 132, 128, 74, 75, 74, 75, 1487, 79, 126, 79, 128, 79, 1493, 1494, 86, 1446, 86, 1498, 1499, 1500, 1501, 143, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1, 126, 3, 128, 1150, 142, 110, 111, 110, 111, 110, 111, 130, 130, 132, 132, 2062, 16, 1164, 1165, 1166, 1167, 126, 124, 128, 127, 126, 136, 74, 75, 130, 878, 142, 79, 1547, 1548, 143, 1550, 3, 16, 86, 1187, 124, 1189, 83, 1558, 128, 10, 11, 1984, 132, 1, 1203, 3, 93, 1206, 1569, 1, 1685, 3, 1687, 100, 101, 28, 110, 111, 136, 1, 1, 3, 3, 785, 786, 124, 1701, 1702, 1589, 1590, 126, 123, 128, 1683, 1589, 1590, 130, 130, 1599, 132, 1601, 1602, 130, 938, 1605, 1683, 1601, 1207, 1609, 130, 567, 127, 1613, 815, 816, 1616, 126, 1, 128, 1469, 124, 74, 75, 1550, 959, 130, 79, 132, 14, 15, 1612, 1558, 1512, 86, 1514, 130, 1840, 785, 786, 2062, 1641, 1512, 124, 1514, 909, 910, 1628, 1648, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 124, 110, 111, 530, 128, 909, 910, 126, 132, 1757, 128, 815, 816, 126, 627, 1006, 545, 546, 664, 665, 121, 130, 664, 665, 1681, 121, 1683, 127, 1812, 1686, 100, 101, 838, 839, 74, 75, 121, 128, 221, 79, 1975, 1976, 135, 1978, 1979, 135, 86, 1704, 130, 1706, 1707, 135, 128, 1710, 1989, 1990, 1991, 1992, 130, 130, 134, 128, 3, 1569, 128, 128, 126, 129, 123, 130, 110, 111, 123, 132, 123, 123, 126, 130, 1589, 1590, 126, 3, 123, 123, 124, 1742, 1968, 28, 128, 11, 1601, 126, 126, 126, 1751, 278, 37, 126, 1755, 1756, 121, 1758, 124, 129, 1783, 288, 1785, 290, 135, 121, 135, 135, 135, 1770, 129, 135, 2103, 135, 134, 130, 2103, 130, 1417, 2058, 2059, 126, 1783, 121, 1785, 128, 1809, 1788, 1811, 74, 75, 1906, 350, 1783, 79, 1785, 129, 129, 325, 124, 1915, 86, 124, 124, 1446, 2009, 135, 2011, 1809, 135, 1811, 1812, 135, 124, 123, 132, 124, 124, 132, 1809, 1420, 1811, 132, 123, 1424, 110, 111, 1469, 123, 123, 56, 123, 123, 1834, 1835, 1836, 1837, 126, 123, 1840, 711, 121, 126, 1844, 1845, 1840, 1847, 126, 1849, 1184, 121, 1186, 126, 121, 120, 121, 122, 1972, 1973, 124, 1861, 127, 128, 421, 130, 74, 75, 124, 123, 1870, 79, 134, 1873, 744, 2078, 3, 121, 86, 124, 128, 751, 124, 1864, 754, 1866, 1812, 124, 1487, 1522, 3, 134, 128, 419, 124, 141, 128, 124, 144, 132, 129, 28, 110, 111, 132, 1905, 1505, 1907, 132, 132, 37, 157, 124, 159, 7, 161, 124, 10, 11, 12, 13, 14, 15, 16, 17, 124, 124, 127, 1569, 126, 124, 1569, 124, 129, 124, 124, 56, 124, 123, 1788, 135, 123, 135, 123, 135, 471, 132, 74, 75, 132, 121, 132, 79, 132, 132, 1977, 1589, 1590, 132, 86, 124, 74, 75, 124, 124, 124, 79, 124, 1601, 3, 124, 126, 135, 86, 930, 1975, 1976, 1977, 1978, 1979, 1980, 134, 1982, 110, 111, 511, 1840, 135, 1977, 1989, 1990, 1991, 1992, 120, 28, 135, 123, 110, 111, 135, 2000, 2092, 2093, 37, 134, 11, 130, 134, 127, 2009, 123, 2011, 2012, 969, 130, 2009, 126, 2011, 37, 127, 132, 2021, 2022, 132, 127, 44, 45, 123, 121, 122, 130, 0, 126, 124, 124, 124, 135, 2018, 131, 2020, 74, 75, 64, 135, 124, 79, 64, 140, 141, 142, 143, 144, 86, 135, 135, 74, 75, 135, 2058, 2059, 79, 135, 135, 135, 124, 2065, 2066, 86, 124, 2069, 124, 2071, 41, 124, 2074, 124, 110, 111, 2078, 126, 135, 124, 1681, 135, 2078, 135, 126, 1686, 126, 123, 59, 110, 111, 2093, 135, 2095, 135, 66, 1432, 2099, 134, 120, 2083, 2084, 130, 2086, 126, 2088, 124, 126, 1066, 2111, 126, 126, 83, 126, 126, 86, 126, 126, 2134, 126, 126, 92, 93, 124, 126, 478, 998, 999, 1000, 100, 101, 3, 2134, 2135, 2117, 126, 1472, 2139, 478, 1475, 478, 478, 113, 2126, 2127, 116, 2129, 478, 1788, 2151, 1751, 1501, 978, 2009, 860, 2011, 28, 128, 288, 1117, 288, 915, 2145, 970, 426, 136, 806, 1467, 436, 697, 141, 142, 723, 144, 314, 703, 1793, 265, 2083, 2162, 100, 93, 93, 154, 270, 156, 157, 158, 159, 93, 161, 1792, 720, 101, 1742, -1, -1, -1, -1, -1, -1, 729, 74, 75, 732, 1840, -1, 79, -1, -1, -1, -1, -1, 741, 86, 186, 187, -1, 466, 467, 74, 75, 2078, -1, -1, 79, -1, 198, -1, -1, 789, 790, 86, 792, 1106, -1, -1, -1, 110, 111, -1, 212, -1, -1, 492, 493, -1, -1, -1, -1, 221, 1209, -1, -1, -1, -1, 110, 111, 817, 818, 819, 820, 141, -1, -1, 144, 514, 515, -1, -1, 124, 519, 520, 1231, -1, 523, 524, -1, 157, -1, 159, -1, 161, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, 860, 861, -1, 1905, -1, 834, 278, -1, -1, -1, -1, -1, 561, 28, 563, -1, 288, 289, 290, -1, 1727, 1728, 37, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, 308, -1, -1, -1, 869, -1, 314, -1, -1, -1, 44, 45, -1, 878, -1, -1, -1, 325, -1, -1, 885, -1, -1, 74, 75, 890, -1, 892, 79, -1, -1, -1, -1, 3, -1, 86, -1, 2009, -1, 2011, 74, 75, 1251, 1252, -1, 79, -1, -1, -1, 1258, 1259, -1, 86, 1262, 1263, -1, 74, 75, 28, 110, 111, 79, -1, -1, 960, -1, -1, 37, 86, 120, -1, -1, 123, 124, 382, -1, 110, 111, 943, 387, -1, 389, 1755, 1756, -1, 3, -1, 1727, 1728, 123, 1730, 1731, 110, 111, 959, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, 74, 75, 2078, -1, -1, 79, 28, 419, 130, 421, 422, -1, 86, 425, 426, 37, 38, -1, -1, 431, -1, -1, -1, 435, 436, -1, 438, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, 110, 111, -1, -1, -1, -1, -1, -1, 268, 269, 120, -1, -1, 123, -1, -1, 74, 75, 466, 467, -1, 79, 132, 471, 472, -1, -1, -1, 86, -1, 478, -1, -1, -1, -1, 483, -1, -1, 44, 45, 488, 1476, -1, -1, 492, 493, -1, 1, -1, 3, -1, -1, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, 120, 511, -1, 123, 514, 515, 74, 75, -1, 519, 520, 79, 28, 523, 524, -1, -1, -1, 86, -1, 530, 37, 38, 1968, -1, -1, -1, 537, -1, -1, 540, -1, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, -1, 110, 111, -1, -1, 556, -1, 466, 467, -1, 561, 120, 563, -1, 1466, 566, 567, 74, 75, 478, -1, -1, 79, -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, 492, 493, 586, -1, -1, 589, -1, 591, -1, 593, -1, -1, 44, 45, 74, 75, 600, -1, -1, 79, 110, 111, 514, 515, 0, -1, 86, 519, 520, -1, 120, 523, 524, 123, -1, 1207, 126, -1, 128, 129, -1, -1, 74, 75, -1, -1, -1, 79, 909, 910, 110, 111, 1968, -1, 86, -1, -1, -1, -1, -1, 120, -1, 1203, 123, -1, -1, -1, -1, -1, 561, -1, 563, -1, -1, 134, -1, -1, 142, 110, 111, 664, 665, 666, 667, -1, -1, -1, -1, -1, 154, -1, 123, -1, 158, -1, -1, -1, -1, 1583, 1584, -1, -1, -1, -1, -1, -1, -1, 83, 692, 693, 694, 972, -1, 697, 1685, -1, 1687, 93, -1, 703, -1, 3, -1, -1, 100, 101, -1, 711, -1, -1, 1701, 1702, -1, -1, 718, 719, 720, -1, 722, 723, -1, 537, -1, -1, 540, 729, 28, -1, 732, -1, -1, 74, 75, 74, 75, 37, 79, 741, 79, -1, 744, -1, -1, 86, -1, 86, 142, 751, 466, 467, 754, -1, -1, -1, -1, -1, -1, -1, 154, -1, 1041, 1042, 158, -1, 1045, 1046, 1047, 110, 111, 110, 111, -1, 74, 75, 492, 493, -1, 79, -1, -1, 265, 124, -1, 124, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, 515, -1, -1, -1, 519, 520, -1, -1, 523, 524, -1, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, 120, 268, 269, 123, -1, 308, -1, -1, -1, -1, 1420, 314, 834, -1, 1424, 837, 838, 839, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, 860, 861, 862, -1, -1, 1766, 1767, 74, 75, 869, 0, -1, 79, -1, -1, -1, -1, 877, 878, 86, -1, -1, 694, -1, -1, 885, 278, -1, 888, -1, 890, -1, 892, -1, -1, -1, 288, -1, 290, 1487, -1, -1, -1, 110, 111, 1182, 1183, -1, -1, -1, -1, -1, 1469, 120, -1, -1, 123, 1505, -1, 1906, -1, -1, 52, -1, -1, -1, -1, -1, 1915, -1, -1, -1, -1, -1, -1, 935, -1, -1, -1, -1, -1, -1, -1, 943, 425, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 436, -1, -1, -1, 959, 960, 91, -1, 93, -1, -1, -1, 967, 968, -1, 100, 101, 972, -1, -1, -1, -1, -1, 978, -1, -1, -1, -1, -1, -1, 1972, 1973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 998, 999, 1000, 131, 132, 133, 134, 135, 1006, 488, -1, -1, -1, 141, 1569, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, 159, -1, 161, -1, 425, -1, -1, -1, -1, -1, -1, -1, 1041, 1042, -1, 436, 1045, 1046, 1047, -1, -1, -1, -1, -1, 183, 184, 185, -1, -1, -1, -1, -1, -1, -1, -1, 972, 1065, 1066, -1, -1, -1, 1070, -1, -1, -1, -1, -1, 1076, -1, -1, -1, -1, -1, 1082, -1, -1, -1, -1, -1, 1088, -1, 220, 221, 537, 1681, -1, 540, 488, -1, 1686, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1041, 1042, 265, -1, 1045, 1046, 1047, -1, -1, -1, -1, -1, -1, -1, 1704, 278, -1, 1150, -1, -1, -1, -1, -1, -1, -1, 288, -1, 290, -1, -1, 1751, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1182, 1183, -1, -1, -1, 1187, -1, 1189, -1, -1, -1, -1, -1, -1, 1196, -1, -1, -1, -1, -1, 0, 1203, 1792, -1, 1206, 1207, 1208, -1, -1, -1, -1, -1, -1, -1, 1493, 1494, -1, 664, 665, 666, 667, -1, -1, -1, 1226, -1, -1, 0, -1, 1788, -1, 1233, -1, -1, -1, 718, 719, -1, -1, 722, 723, -1, -1, -1, -1, -1, -1, 694, -1, 1251, 1252, -1, -1, -1, -1, -1, 1258, 1259, -1, -1, 1262, 1263, -1, 395, 396, 397, -1, -1, 1547, 1548, -1, -1, 1182, 1183, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, 419, -1, -1, -1, -1, -1, 93, 426, 1109, -1, -1, 1112, -1, 100, 101, -1, 697, -1, 437, -1, -1, -1, -1, 83, -1, -1, -1, -1, 1905, -1, -1, -1, -1, 93, -1, -1, -1, -1, 1041, 1042, 100, 101, 1045, 1046, -1, -1, -1, 466, 467, 1150, -1, -1, 471, -1, -1, 142, 475, -1, -1, 478, -1, 1907, -1, 1164, 1165, 1166, 1167, 154, 487, -1, -1, 158, -1, 492, 493, -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, 1187, -1, 1189, -1, -1, -1, 511, -1, 154, 514, 515, -1, 158, -1, 519, 520, -1, -1, 523, 524, -1, 877, 527, 528, 529, -1, -1, -1, -1, 1404, 1405, -1, 888, -1, -1, -1, -1, -1, -1, -1, 545, 546, -1, -1, -1, 1420, -1, -1, -1, 1424, -1, -1, -1, -1, -1, -1, 561, -1, 563, -1, -1, 566, -1, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 583, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, 1469, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, 877, -1, 1487, -1, -1, 288, -1, 290, 1493, 1494, -1, 888, -1, 1498, 1499, 1500, 1501, -1, -1, -1, -1, 1783, 278, 1785, -1, -1, -1, -1, -1, -1, -1, -1, 288, -1, 290, -1, -1, 1, -1, 3, 1006, -1, -1, -1, -1, -1, -1, 1809, -1, 1811, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1547, 1548, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 691, -1, -1, -1, -1, -1, 697, -1, 1569, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1583, 1584, 1493, 1494, -1, 718, 1589, 1590, -1, 722, -1, -1, 74, 75, -1, -1, -1, 79, -1, 1602, -1, -1, 1605, -1, 86, -1, -1, -1, 741, -1, 1613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 425, -1, -1, -1, 110, 111, -1, -1, -1, -1, -1, 436, 1547, 1548, 120, -1, -1, 123, -1, -1, 126, 1648, 128, 129, -1, -1, -1, 425, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1109, 436, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1681, -1, 1683, -1, -1, 1686, -1, -1, -1, 488, -1, -1, -1, -1, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, -1, 1704, 1150, -1, -1, -1, -1, -1, -1, 1989, 1990, 1991, 1992, -1, 488, -1, 1164, 1165, 1166, 1167, -1, -1, 1206, -1, -1, -1, -1, -1, -1, 862, -1, -1, -1, -1, -1, -1, 869, -1, -1, 1187, -1, 1189, 1226, 876, 877, 878, -1, -1, 1751, 1233, -1, -1, 885, -1, -1, 888, -1, 890, -1, -1, -1, -1, -1, 1766, 1767, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1589, 1590, 1493, 1494, 2058, 2059, 1783, -1, 1785, -1, -1, 1788, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, -1, 929, -1, 1613, -1, -1, -1, -1, -1, -1, 938, 1809, -1, 1811, 112, 943, -1, -1, -1, -1, -1, 949, -1, -1, -1, -1, -1, -1, -1, -1, -1, 959, -1, -1, -1, 1547, 1548, -1, 136, -1, -1, -1, -1, -1, 972, -1, 1844, 1845, 141, -1, -1, 144, -1, -1, 982, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, 159, -1, 161, -1, -1, -1, -1, -1, -1, -1, -1, 1783, 1006, 1785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, 697, -1, 1809, -1, 1811, -1, 1905, -1, 1907, -1, -1, -1, 1041, 1042, -1, -1, 1045, 1046, 1047, -1, -1, -1, -1, 1052, 1053, -1, -1, 697, -1, -1, -1, -1, -1, -1, 1063, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, 1980, -1, 1982, -1, -1, -1, -1, -1, -1, 1989, 1990, 1991, 1992, -1, -1, -1, -1, -1, -1, -1, 300, -1, -1, -1, 304, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 315, -1, -1, -1, -1, -1, 321, -1, -1, -1, -1, -1, -1, 328, -1, -1, -1, 1844, 1845, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, -1, -1, -1, -1, 350, -1, 1182, 1183, -1, -1, -1, -1, 2058, 2059, -1, -1, -1, 0, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, -1, 1203, -1, -1, 1206, -1, 1208, 877, -1, 1989, 1990, 1991, 1992, -1, -1, 387, -1, 389, 888, -1, -1, -1, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, 1, 877, 3, 4, 5, -1, -1, -1, -1, -1, 52, -1, 888, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1589, 1590, 83, 84, -1, -1, 2058, 2059, -1, -1, 91, -1, 93, 1602, -1, -1, 1605, -1, -1, 100, 101, -1, -1, -1, 1613, 65, -1, 466, 467, -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 478, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, 131, 132, -1, 492, 493, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, 514, 515, -1, 118, -1, 519, 520, -1, 123, 523, 524, 530, -1, -1, -1, -1, -1, -1, 133, 134, -1, -1, -1, -1, 328, -1, -1, 183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 1975, 1976, -1, 1978, 1979, 561, 567, 563, -1, -1, -1, -1, -1, -1, 1989, 1990, 1991, 1992, -1, -1, -1, -1, -1, -1, -1, -1, 1417, -1, -1, -1, -1, -1, 230, -1, -1, 233, -1, -1, 599, -1, -1, 1432, -1, -1, -1, -1, -1, -1, 1439, -1, -1, -1, -1, -1, -1, 1446, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 627, 265, -1, -1, -1, -1, -1, -1, -1, -1, 1467, -1, 1469, -1, 278, -1, -1, 2058, 2059, -1, -1, -1, -1, -1, 288, -1, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1493, 1494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 698, 1844, 1845, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1547, 1548, -1, 1550, -1, -1, -1, 724, -1, -1, -1, 728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, -1, -1, -1, -1, 774, -1, -1, -1, -1, -1, 780, 781, 782, 783, 784, 785, 786, -1, -1, 789, 790, -1, 792, 793, 794, 795, 796, 797, 798, 799, 437, 801, -1, -1, -1, -1, -1, -1, -1, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, -1, 829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1675, -1, -1, -1, 345, -1, -1, 637, -1, -1, -1, -1, -1, -1, -1, 860, 861, -1, -1, -1, -1, -1, 300, -1, -1, -1, 304, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 315, -1, -1, -1, -1, -1, 321, -1, 527, 528, 529, -1, 531, 328, -1, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 545, 546, 547, -1, 345, -1, -1, -1, -1, 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 928, 566, 930, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1783, 387, 1785, 389, -1, 1788, -1, 960, -1, -1, -1, -1, -1, -1, -1, -1, 969, -1, -1, -1, -1, -1, 760, -1, 972, -1, 1809, -1, 1811, -1, -1, -1, -1, -1, -1, 421, 774, -1, 1821, -1, -1, -1, -1, -1, -1, 998, -1, 1000, -1, -1, -1, -1, -1, 112, 270, 793, 794, 795, 796, 797, -1, -1, 800, 801, -1, -1, -1, -1, 806, -1, -1, 809, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 821, 822, 823, 824, 825, -1, -1, 828, 829, -1, 1041, 1042, -1, -1, 1045, 1046, 1047, -1, 691, -1, -1, -1, -1, -1, 697, -1, -1, -1, -1, -1, 1066, -1, 1, -1, -1, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, 567, -1, -1, -1, 71, 72, 73, 637, -1, 1143, 1144, 1975, 1976, 1977, 1978, 1979, -1, 84, -1, -1, -1, -1, -1, -1, -1, 1989, 1990, 1991, 1992, -1, 270, 98, 599, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, 441, -1, -1, -1, -1, -1, -1, 118, 119, 1182, 1183, -1, -1, -1, 125, 126, 627, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1207, -1, 1209, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, -1, -1, -1, -1, -1, 2058, 2059, -1, 1231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1248, -1, -1, -1, 1252, 890, -1, 1255, -1, -1, -1, 1259, -1, -1, -1, 1263, 760, 698, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 724, 929, -1, -1, 728, -1, 793, 794, 795, 796, 797, -1, -1, 800, -1, -1, -1, -1, -1, 806, 744, 949, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, 821, 822, 823, 824, 825, -1, -1, 828, -1, -1, -1, -1, -1, -1, 1124, -1, 774, -1, -1, -1, -1, -1, 780, 781, 782, 783, 784, 785, 786, -1, -1, 789, 790, -1, 792, 793, 794, 795, 796, 797, 798, 799, 1152, 801, 632, -1, -1, -1, -1, 1159, -1, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, -1, 829, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, 1193, -1, 1195, -1, -1, -1, -1, 1052, 1053, -1, -1, -1, 1420, -1, -1, -1, 1424, -1, -1, 860, 861, -1, 536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, -1, 1255, -1, -1, -1, -1, -1, 1476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1487, -1, -1, -1, -1, -1, 599, -1, 928, -1, 930, 1493, 1494, -1, -1, -1, -1, -1, 1505, 112, 1507, -1, -1, -1, -1, 1512, -1, 1514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 632, 960, -1, -1, -1, 1531, -1, -1, -1, -1, 969, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, 1186, -1, -1, 1547, 1548, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, 998, -1, 1000, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1584, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 724, -1, -1, -1, 728, -1, -1, -1, -1, -1, 1124, -1, -1, -1, -1, 1066, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 760, -1, 1152, -1, -1, -1, -1, -1, -1, 1159, -1, -1, -1, -1, 774, -1, -1, -1, -1, 1106, -1, -1, -1, -1, 941, -1, -1, 1681, -1, -1, 1117, 1685, 1686, 1687, -1, -1, -1, -1, -1, -1, -1, 801, 1696, 1193, -1, 1195, 806, 1701, 1702, 809, -1, -1, -1, -1, 1708, -1, 1143, 1144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, 829, -1, -1, -1, 1727, 1728, -1, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1751, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1767, -1, -1, -1, -1, -1, -1, 1207, -1, 1209, -1, -1, -1, -1, 387, -1, 389, -1, -1, -1, -1, 1783, -1, 1785, -1, 1792, -1, -1, -1, -1, -1, 1231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1446, -1, -1, -1, -1, 1809, 1248, 1811, -1, -1, 1252, -1, -1, 1255, -1, -1, -1, 1259, -1, -1, -1, 1263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, 1121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1871, 1872, -1, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1164, 1165, 1166, 1167, 1905, 1906, -1, -1, -1, 1016, -1, -1, 1550, -1, 1915, -1, -1, -1, -1, -1, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1721, -1, -1, -1, -1, 1726, 1727, 1728, 1729, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, -1, -1, 567, -1, -1, -1, -1, -1, -1, 1968, -1, -1, -1, 1972, 1973, -1, -1, -1, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, -1, -1, 1420, -1, -1, -1, 1424, -1, 599, 1989, 1990, 1991, 1992, -1, -1, -1, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, 1121, -1, -1, -1, -1, -1, 627, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, -1, 1143, 1144, -1, -1, -1, -1, 1476, 1150, -1, 1152, -1, -1, -1, 1156, -1, -1, 1159, 1487, 1161, -1, -1, 1164, 1165, 1166, 1167, -1, 2058, 2059, -1, -1, -1, -1, -1, -1, -1, 1505, -1, 1507, -1, -1, -1, -1, 1512, -1, 1514, -1, -1, -1, 2085, -1, -1, -1, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, 1531, -1, -1, -1, -1, 2103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 724, -1, -1, -1, 728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, 1255, -1, 1584, -1, -1, 2154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 774, -1, -1, -1, -1, -1, -1, 1812, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 801, -1, -1, -1, -1, -1, -1, -1, 809, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 829, -1, 1721, -1, -1, -1, -1, 1726, 1727, 1728, 1729, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, 1681, -1, -1, -1, 1685, 1686, 1687, -1, -1, -1, -1, -1, -1, -1, 141, 1696, -1, 144, -1, -1, 1701, 1702, -1, -1, -1, -1, -1, 1708, -1, -1, 157, -1, 159, -1, 161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1727, 1728, -1, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1751, -1, -1, -1, 928, -1, 930, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, 1767, -1, 1599, -1, 1601, 1602, -1, 1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, 1616, -1, -1, -1, -1, -1, 1792, -1, -1, -1, 969, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 270, 998, -1, 1000, -1, -1, -1, -1, -1, -1, 1507, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, 1538, -1, -1, -1, -1, -1, 1871, 1872, 100, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 1066, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, 1905, 1906, -1, -1, -1, -1, -1, -1, -1, -1, 1915, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, 1599, -1, 1601, 1602, -1, -1, 1605, 1106, -1, -1, -1, -1, -1, -1, 1613, -1, -1, 1616, 1117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1968, -1, 1143, 1144, 1972, 1973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1834, 1835, 1836, 1837, -1, -1, 1840, -1, -1, -1, 1844, 1845, -1, 1847, -1, 1849, 466, 467, -1, 1696, -1, -1, -1, -1, -1, -1, -1, 1861, -1, -1, -1, 1708, 1209, -1, -1, -1, -1, -1, -1, -1, -1, -1, 492, 493, 1721, -1, -1, -1, -1, 1726, -1, -1, 1729, -1, 1231, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, 515, -1, -1, -1, 519, 520, -1, -1, 523, 524, 1252, -1, -1, 1255, -1, 530, 2085, 1259, -1, -1, -1, 1263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 561, -1, 563, -1, -1, 1793, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1804, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2154, -1, -1, -1, -1, -1, -1, 1834, 1835, 1836, 1837, -1, -1, 1840, -1, -1, 2000, 1844, 1845, -1, 1847, -1, 1849, 128, -1, 2009, -1, 2011, -1, -1, -1, 136, 632, -1, 1861, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1871, 1872, -1, -1, -1, -1, -1, 156, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2065, 2066, -1, -1, 2069, -1, 2071, -1, -1, 2074, -1, -1, -1, 2078, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, 2111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, -1, -1, 744, -1, -1, -1, -1, 1476, -1, 751, -1, -1, 754, 2139, -1, 1984, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 2000, -1, -1, -1, -1, 84, 85, 1507, -1, 2009, -1, 2011, 1512, -1, 1514, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 1531, -1, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, 2062, -1, -1, 2065, 2066, -1, -1, 2069, -1, 2071, -1, -1, 2074, -1, -1, -1, 2078, -1, -1, -1, -1, -1, 1584, 2085, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2103, 382, -1, -1, -1, -1, -1, -1, 2111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 909, 910, -1, 2139, -1, -1, -1, 421, 422, -1, -1, -1, 426, 52, -1, -1, -1, -1, 2154, -1, -1, 435, -1, -1, 438, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 1685, -1, 1687, 91, -1, -1, -1, -1, -1, 472, -1, 1696, -1, -1, 972, 478, 1701, 1702, -1, -1, -1, -1, -1, 1708, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 998, -1, 1000, 131, 132, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1767, 1041, 1042, -1, -1, 1045, 1046, 1047, -1, -1, -1, 556, -1, 183, -1, 51, -1, -1, -1, -1, -1, 566, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 586, -1, -1, 589, -1, 591, 83, 593, -1, -1, -1, -1, -1, -1, -1, 92, 93, -1, -1, 230, -1, -1, 233, 100, 101, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, 1121, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, 1871, 1872, 142, -1, 278, -1, 1150, -1, -1, -1, -1, -1, -1, -1, 154, -1, -1, -1, 158, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1906, -1, -1, 1182, 1183, -1, -1, -1, -1, 1915, -1, 186, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1972, 1973, -1, -1, -1, -1, -1, 1252, -1, -1, -1, -1, -1, -1, 1259, -1, -1, -1, 1263, -1, 395, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 437, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, -1, -1, 837, 838, 839, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 475, -1, -1, -1, -1, -1, -1, -1, -1, -1, 860, 861, 862, 2085, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 529, -1, 531, -1, -1, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 545, 546, 547, -1, -1, -1, -1, -1, 419, -1, -1, -1, 2154, -1, 425, 935, -1, -1, -1, -1, -1, 566, -1, -1, -1, 436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 960, -1, -1, -1, -1, -1, -1, 967, 968, -1, -1, 1466, -1, -1, -1, -1, -1, -1, 978, -1, 471, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 488, 1493, 1494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1512, -1, 1514, 511, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, 530, -1, -1, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, 1547, 1548, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1065, 691, -1, -1, -1, 1070, -1, -1, -1, -1, -1, 1076, -1, -1, -1, -1, -1, 1082, -1, -1, -1, -1, -1, 1088, 1584, -1, -1, 65, -1, 1589, 1590, -1, -1, 71, 72, 73, -1, -1, -1, 1599, -1, 1601, 1602, -1, -1, 1605, 84, 85, -1, -1, -1, -1, -1, 1613, -1, -1, 1616, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, 118, 119, 120, 639, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, 198, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, 693, 694, -1, -1, 697, 1207, 1208, -1, -1, -1, 703, -1, -1, -1, -1, -1, -1, -1, 711, -1, -1, -1, -1, -1, -1, 718, 719, 720, -1, 722, 723, -1, -1, -1, -1, -1, 729, -1, -1, 732, -1, -1, -1, -1, -1, -1, -1, -1, 741, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, 890, -1, -1, -1, -1, -1, -1, 1767, -1, 300, -1, -1, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, 1783, 315, 1785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 929, -1, -1, 0, -1, -1, -1, -1, -1, -1, 1809, -1, 1811, -1, -1, -1, -1, 946, -1, 948, 949, -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, 1834, 1835, 1836, 1837, 834, -1, 1840, -1, -1, -1, 1844, 1845, -1, 1847, -1, 1849, -1, -1, -1, 51, 52, -1, 387, -1, 389, -1, -1, 1861, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 869, -1, -1, 183, -1, -1, -1, -1, 877, 878, -1, -1, 83, 84, -1, -1, 885, 88, -1, 888, 889, 890, 93, 892, -1, -1, 1404, 1405, -1, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, 1420, -1, -1, -1, 1424, 118, -1, 1052, 1053, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 943, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 959, -1, -1, -1, -1, -1, -1, 270, -1, -1, -1, -1, 1975, 1976, 1977, 1978, 1979, -1, 288, 1487, -1, 182, -1, -1, -1, -1, 1989, 1990, 1991, 1992, 1498, 1499, 1500, 1501, 195, -1, 530, 2000, -1, 998, 999, 1000, -1, -1, -1, -1, 2009, 1006, 2011, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, -1, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 567, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, 1186, -1, 2058, 2059, -1, -1, -1, -1, -1, 2065, 2066, 265, -1, 2069, -1, 2071, -1, -1, 2074, -1, -1, -1, 2078, -1, 278, -1, -1, -1, -1, -1, -1, -1, 395, -1, 288, -1, 290, -1, 401, -1, 627, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1106, 2111, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1125, -1, -1, -1, -1, -1, -1, -1, 437, -1, 2139, -1, -1, -1, 1648, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, 471, -1, -1, 698, 1164, 1165, 1166, 1167, -1, -1, -1, -1, 1681, -1, 1683, -1, -1, 1686, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1187, -1, 1189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1203, -1, -1, 1206, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, 419, -1, 754, 531, -1, -1, 534, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, 437, 547, -1, -1, -1, -1, -1, 1751, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, 568, 1258, 1259, -1, -1, 1262, 1263, -1, -1, -1, -1, -1, 471, 581, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 511, -1, -1, 1446, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 529, -1, -1, -1, -1, -1, 637, -1, -1, -1, -1, -1, -1, -1, -1, -1, 545, 546, -1, -1, -1, -1, 653, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, 566, -1, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 579, -1, -1, 691, -1, -1, -1, -1, -1, 697, -1, -1, -1, -1, -1, -1, 928, -1, 930, 1905, -1, -1, 703, -1, -1, 706, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 615, -1, -1, 1550, -1, -1, -1, -1, -1, -1, -1, -1, 729, -1, -1, -1, -1, -1, 735, -1, -1, 969, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 762, -1, -1, -1, -1, 998, -1, 1000, 1466, -1, 92, 1469, -1, 1980, -1, 1982, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 690, -1, -1, -1, -1, -1, -1, 697, 800, -1, -1, -1, -1, -1, -1, -1, 808, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 718, -1, -1, -1, 722, -1, -1, -1, 828, -1, -1, -1, -1, -1, -1, 1066, -1, -1, -1, -1, -1, -1, -1, 741, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, 187, -1, -1, -1, 878, -1, 1569, -1, 1106, -1, -1, 885, -1, -1, -1, -1, -1, -1, -1, 1117, 1583, 1584, -1, 890, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, 221, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 938, -1, -1, -1, -1, 943, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, 959, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 862, 863, -1, -1, -1, 289, -1, 869, -1, -1, -1, -1, -1, -1, 1209, 877, 878, -1, 1812, -1, -1, -1, -1, 885, 308, -1, 888, 889, 890, -1, 314, -1, -1, -1, -1, 1006, 1231, -1, -1, -1, -1, 325, -1, -1, 1704, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1252, -1, -1, -1, -1, -1, -1, 1259, -1, -1, 929, 1263, -1, -1, -1, -1, -1, -1, 937, -1, -1, -1, -1, -1, 943, 1053, -1, -1, -1, -1, 949, -1, -1, -1, 1062, -1, 1064, -1, -1, -1, 959, -1, -1, -1, -1, -1, -1, -1, -1, 1766, 1767, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1788, -1, -1, -1, -1, -1, -1, 419, -1, -1, -1, -1, -1, -1, -1, -1, 1006, 1109, -1, -1, 1112, 1113, 1114, -1, 1116, -1, -1, -1, -1, -1, -1, -1, 1124, -1, -1, -1, -1, -1, -1, -1, 1132, -1, -1, -1, -1, -1, -1, 1139, -1, -1, -1, -1, -1, -1, -1, -1, 1844, 1845, 1150, 471, -1, -1, 1052, -1, -1, 1157, -1, -1, -1, -1, 1162, 1061, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, 1186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 511, -1, 1193, -1, 1195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 1907, -1, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, -1, -1, -1, -1, 1227, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1273, -1, -1, -1, -1, 632, -1, -1, 1512, -1, 1514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1531, -1, -1, -1, -1, 1203, -1, -1, 1206, -1, 1208, -1, 666, 667, -1, -1, -1, -1, 1216, -1, -1, -1, -1, -1, -1, 1325, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, -1, 1338, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, 1584, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, -1, -1, -1, 703, -1, -1, -1, -1, -1, 1389, -1, 711, -1, -1, -1, -1, -1, -1, 718, 719, 720, -1, 722, 723, -1, -1, -1, -1, -1, 729, -1, -1, 732, -1, -1, -1, -1, -1, -1, -1, -1, 741, -1, -1, 744, 1432, -1, -1, -1, -1, -1, 751, 1439, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1685, -1, 1687, -1, -1, -1, 1467, -1, 1469, -1, -1, 1472, -1, -1, 1475, -1, 1701, 1702, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1727, 1728, -1, 1730, 1731, -1, -1, -1, 1735, 1736, 1737, 1738, -1, -1, -1, -1, -1, -1, 834, -1, -1, -1, -1, 1417, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, -1, 1431, -1, -1, 1767, -1, -1, -1, 1438, -1, -1, 1550, -1, -1, -1, -1, 1446, 869, -1, 1558, -1, -1, -1, -1, 325, -1, 878, -1, -1, -1, 1569, -1, -1, 885, -1, -1, -1, 1467, 890, 1469, 892, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, 1595, -1, 1597, -1, -1, 1600, 1601, -1, -1, -1, -1, 1606, 1607, -1, 1609, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1619, -1, 1621, -1, 943, -1, 186, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 959, -1, -1, -1, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1549, -1, 1653, -1, -1, -1, 1657, -1, -1, 221, -1, -1, -1, -1, -1, -1, -1, 437, -1, -1, 1569, -1, -1, -1, 1906, -1, -1, 998, 999, 1000, -1, -1, -1, 1915, -1, 1006, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, -1, -1, -1, 1968, -1, -1, -1, 1972, 1973, -1, -1, -1, -1, 308, 1755, 1756, -1, 1758, -1, 314, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, 325, -1, -1, 1121, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1675, -1, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, 1812, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, 1822, -1, -1, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1840, 1841, -1, -1, 1164, 1165, 1166, 1167, 1848, 1747, -1, -1, 1852, -1, 1854, -1, -1, -1, 419, -1, -1, -1, -1, 1863, -1, -1, -1, 1187, 637, 1189, -1, 1769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1203, 653, -1, 1206, -1, 657, -1, 1788, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1226, 1907, -1, -1, 471, -1, -1, 1233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, 703, -1, -1, 706, 1258, 1259, -1, -1, 1262, 1263, -1, -1, -1, -1, -1, -1, 511, 720, -1, -1, -1, -1, -1, -1, -1, -1, 729, -1, -1, -1, -1, -1, 735, 736, -1, 530, -1, -1, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, -1, -1, 52, -1, -1, -1, -1, 1887, -1, 59, -1, 762, -1, -1, -1, -1, -1, -1, -1, 2001, 2002, -1, 2004, -1, 2006, -1, -1, 2009, 2010, 2011, -1, -1, 82, 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 800, -1, -1, -1, -1, -1, -1, -1, 808, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 828, -1, -1, -1, 131, 132, -1, -1, 2067, -1, -1, 2070, -1, -1, -1, -1, -1, -1, -1, 2078, -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, 2114, 183, -1, -1, -1, -1, -1, 890, -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, -1, -1, -1, 703, -1, -1, -1, 1466, -1, -1, 1469, 711, -1, 220, 221, -1, -1, -1, 718, 719, 720, -1, 722, 723, -1, -1, -1, -1, -1, 729, -1, -1, 732, -1, -1, -1, -1, -1, -1, -1, -1, 741, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, 288, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, 1599, -1, 1601, 1602, 1569, -1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, 1616, 1583, 1584, -1, -1, -1, -1, 1589, 1590, -1, -1, 834, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 869, -1, -1, -1, -1, -1, -1, -1, -1, 878, -1, -1, -1, -1, -1, -1, 885, -1, -1, 395, -1, 890, -1, 892, -1, 401, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1113, 1114, -1, 1116, -1, -1, -1, -1, -1, -1, -1, 1124, -1, -1, 1127, -1, -1, -1, -1, 1132, -1, -1, -1, -1, -1, 437, 1139, 1140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 943, -1, 1704, -1, -1, -1, 1157, 1158, -1, -1, -1, 1162, -1, -1, -1, -1, 959, -1, -1, -1, -1, 471, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 487, -1, -1, -1, -1, 1193, -1, 1195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 998, 999, 1000, -1, -1, -1, -1, -1, 1006, 1766, 1767, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1227, 527, 528, 529, -1, 531, -1, -1, 534, -1, 1788, -1, -1, -1, -1, -1, -1, -1, -1, 545, 546, 547, 1834, 1835, 1836, 1837, -1, -1, 1840, -1, -1, -1, 1844, 1845, -1, 1847, -1, 1849, 564, -1, 566, -1, 568, -1, -1, -1, 1273, 1274, -1, 1861, -1, -1, -1, -1, -1, 581, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1844, 1845, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, 1325, -1, 1327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1338, 1339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1907, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, 683, -1, -1, -1, -1, 1389, -1, 1391, 691, -1, -1, 1187, -1, 1189, 697, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1203, -1, -1, 1206, 2000, -1, -1, -1, -1, -1, -1, -1, -1, 2009, -1, 2011, -1, -1, -1, 83, 84, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, -1, 1258, 1259, -1, -1, 1262, 1263, -1, 3, -1, -1, -1, -1, 131, 132, 2065, 2066, -1, -1, 2069, -1, 2071, -1, -1, 2074, -1, -1, -1, 2078, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, 2111, -1, -1, -1, 183, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 2139, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, -1, 100, -1, -1, -1, -1, 1575, -1, 876, -1, 878, 110, 111, 112, 113, 114, 115, 885, -1, -1, -1, 120, 890, -1, 123, -1, 1595, 1596, 1597, 1598, -1, 1600, 1601, -1, -1, 134, -1, 1606, 1607, -1, 1609, -1, 1611, 265, -1, -1, -1, -1, -1, -1, 1619, 1620, 1621, -1, -1, -1, 278, -1, -1, -1, -1, 929, -1, -1, -1, -1, 288, -1, -1, -1, 938, -1, -1, -1, -1, 943, -1, -1, -1, 3, -1, 949, -1, -1, 1653, -1, 1655, -1, 1657, -1, 1659, 959, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 1466, -1, -1, 1469, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1006, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 395, -1, -1, 100, -1, -1, 401, -1, -1, -1, -1, 1052, 1053, 110, 111, 112, 113, 114, 115, -1, -1, 1062, -1, 1064, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, -1, -1, 437, -1, -1, -1, -1, -1, -1, 1583, 1584, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, 471, -1, -1, 1613, 1822, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1841, -1, -1, -1, -1, 1846, -1, 1848, 1849, -1, 1851, 1852, -1, 1854, -1, 1856, -1, -1, -1, -1, -1, 1862, 1863, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, 527, 528, 529, -1, 531, -1, -1, 534, -1, -1, -1, 1184, -1, 1186, -1, -1, -1, -1, 545, 546, 547, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1907, -1, -1, -1, -1, 1704, 566, 142, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 154, -1, 581, -1, 158, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1766, 1767, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 221, -1, -1, 1788, -1, -1, -1, -1, 2001, 2002, -1, 2004, 2005, 2006, -1, -1, -1, 2010, 2011, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, 691, -1, 268, 269, 270, -1, 697, -1, 28, -1, -1, -1, -1, -1, 1844, 1845, -1, 37, -1, -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, 2067, 2068, -1, 2070, 2071, -1, -1, -1, 2075, -1, -1, -1, -1, 308, -1, -1, 65, -1, -1, 314, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2114, 1907, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, 1432, -1, -1, 118, 119, 120, -1, 1439, 123, 124, 125, -1, -1, -1, 1446, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1467, -1, 1469, -1, -1, 1472, -1, -1, 1475, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 419, -1, -1, -1, -1, -1, 425, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 878, -1, -1, -1, -1, -1, -1, 885, -1, -1, -1, -1, 890, -1, -1, -1, -1, -1, 471, -1, -1, -1, -1, -1, -1, -1, 1550, -1, -1, -1, -1, -1, -1, -1, 1558, 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, -1, 929, -1, -1, -1, -1, -1, -1, 511, 1, 938, 3, 4, 5, 6, 943, 8, 9, -1, -1, -1, 949, -1, -1, -1, -1, -1, 530, -1, -1, -1, 959, -1, -1, 537, -1, 28, 540, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, 1006, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 1052, 1053, 118, 119, 120, -1, -1, 123, 124, 125, 1062, 92, 1064, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1755, 1756, -1, 1758, 142, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, 154, -1, -1, -1, 158, -1, -1, -1, -1, -1, -1, 711, -1, -1, -1, -1, -1, -1, 718, 719, -1, -1, 722, 723, -1, -1, -1, -1, -1, -1, -1, -1, 186, 187, -1, -1, -1, -1, -1, -1, -1, 1812, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, -1, 1184, -1, 1186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 834, 289, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, 869, 28, -1, -1, -1, -1, 92, -1, 877, 878, -1, -1, -1, -1, -1, -1, 885, -1, -1, 888, -1, -1, -1, 892, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, 142, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, 154, -1, -1, 98, 158, -1, 943, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, 959, 118, 119, 120, -1, -1, 123, -1, 125, 126, 186, 187, 425, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 998, 999, 1000, -1, -1, -1, -1, -1, 1006, 1432, -1, -1, -1, -1, -1, -1, 1439, -1, -1, -1, -1, -1, -1, 1446, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 488, -1, -1, -1, -1, -1, -1, -1, 1467, -1, 1469, -1, -1, 1472, 265, -1, 1475, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1550, -1, -1, -1, -1, -1, -1, -1, 1558, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1187, -1, 1189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1206, -1, 425, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, 436, -1, -1, -1, -1, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, 711, 1258, 1259, -1, -1, 1262, 1263, 718, 719, -1, -1, 722, 723, -1, 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 530, 8, 9, -1, -1, -1, -1, 537, -1, -1, 540, -1, -1, -1, -1, -1, -1, 1755, 1756, -1, 1758, 28, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, 1812, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, -1, 877, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 888, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, 664, 665, 666, 667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, -1, 1469, -1, -1, -1, -1, -1, 692, 693, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 711, -1, -1, -1, -1, -1, -1, 718, 719, -1, -1, 722, 723, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 744, -1, -1, -1, -1, -1, -1, 751, -1, -1, 754, -1, -1, -1, -1, -1, -1, 998, 999, 1000, -1, -1, -1, -1, -1, 1006, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1569, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1583, 1584, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, -1, -1, -1, -1, -1, -1, 1613, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, 877, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 1187, -1, 1189, -1, -1, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, -1, -1, 131, 1206, 133, 134, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, 1766, 1767, -1, -1, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 1233, -1, 998, 999, 1000, -1, -1, -1, -1, 1788, 1006, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, -1, 1258, 1259, -1, -1, 1262, 1263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1844, 1845, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, -1, -1, 1106, -1, -1, 1109, -1, -1, 1112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, 1150, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, 1164, 1165, 1166, 1167, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 1187, -1, 1189, -1, -1, 118, 119, 120, 121, 122, 123, 124, 125, -1, 127, 128, -1, -1, 131, 1206, 133, 134, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, -1, -1, -1, 1226, -1, -1, 1466, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1251, 1252, -1, -1, -1, -1, -1, 1258, 1259, -1, -1, 1262, 1263, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, 1583, 1584, 79, -1, -1, -1, 1589, 1590, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, 100, -1, -1, -1, -1, -1, -1, 1613, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, 121, 122, 123, -1, -1, 126, 127, 128, 129, -1, 131, -1, -1, 134, -1, 136, 137, 138, -1, 140, 141, 142, 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1466, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 1766, 1767, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, 1583, 1584, -1, -1, -1, -1, 1589, 1590, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1602, -1, -1, 1605, -1, 1844, 1845, -1, -1, 0, 1, 1613, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1766, 1767, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, 1844, 1845, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, 131, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 0, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 1, 125, 3, 4, 5, 6, -1, 8, 9, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, 123, 1, 125, 3, 4, 5, 6, -1, 8, 9, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, -1, -1, 118, 119, 120, -1, -1, 123, 1, 125, 3, 4, 5, 6, 130, 8, 9, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 98, -1, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 28, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, 132, 133, 134, -1, 136, 137, 138, 139, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, 126, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, 128, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, 129, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, 128, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, 132, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, 28, -1, -1, -1, -1, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, 0, 1, -1, 3, 4, 5, 118, 119, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, 136, 137, 138, 139, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, 124, 125, 126, -1, 128, 129, -1, -1, -1, 133, 134, 0, 1, -1, 3, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 128, 129, -1, -1, -1, 133, 134, 0, 1, -1, 3, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, 0, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, 0, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, 0, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, -1, 1, 129, 3, 4, 5, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, -1, -1, 123, -1, 125, 126, 1, -1, 3, 4, 5, -1, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, 71, 72, -1, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, 85, 86, 87, 88, -1, -1, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, 1, 120, 3, -1, 123, -1, 125, 126, -1, -1, -1, -1, -1, -1, 133, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, 1, 120, 3, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, 136, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 3, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, 76, 77, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, 105, -1, -1, 3, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, 132, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, 68, -1, -1, -1, -1, -1, 74, 75, -1, -1, 78, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, 3, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, 132, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, 3, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, 132, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, 1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, 132, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, 128, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, 0, 1, -1, 3, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, 76, 77, -1, 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, 3, -1, -1, 105, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, 3, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, 3, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, 1, -1, 3, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 1, -1, 3, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 1, -1, 3, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 1, -1, 3, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, 3, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, 76, 77, -1, 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, 0, 1, 105, 3, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, -1, -1, 126, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, 80, 81, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 100, 3, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, 124, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, 107, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, 82, 83, -1, 85, 86, 87, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, 79, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, 117
146 };
147
148 static const yytype_uint16 yystos[] =
149 {
150 0, 3, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 53, 65, 66, 74, 75, 76, 77, 79, 80, 81, 82, 83, 85, 86, 87, 100, 101, 105, 110, 111, 112, 113, 114, 115, 116, 117, 120, 123, 126, 146, 147, 148, 150, 175, 212, 213, 214, 215, 216, 217, 269, 272, 273, 276, 277, 278, 279, 280, 281, 282, 284, 288, 291, 292, 293, 294, 295, 296, 301, 302, 311, 312, 313, 320, 321, 325, 328, 333, 362, 365, 366, 384, 385, 387, 388, 389, 390, 391, 392, 77, 132, 5, 31, 217, 386, 217, 123, 123, 123, 150, 217, 386, 282, 283, 320, 328, 37, 148, 217, 310, 311, 313, 315, 316, 317, 319, 320, 328, 331, 332, 337, 121, 126, 147, 148, 217, 130, 132, 126, 130, 129, 120, 121, 212, 217, 130, 150, 217, 130, 132, 129, 121, 130, 132, 130, 129, 130, 148, 217, 320, 1, 31, 37, 38, 126, 146, 148, 214, 216, 217, 269, 279, 280, 282, 284, 313, 317, 320, 328, 331, 332, 333, 335, 343, 344, 345, 346, 37, 38, 148, 320, 345, 123, 134, 1, 29, 30, 31, 32, 33, 65, 116, 117, 124, 146, 217, 268, 272, 274, 275, 282, 284, 288, 289, 290, 296, 300, 308, 309, 349, 350, 351, 352, 353, 354, 328, 123, 313, 320, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 47, 66, 85, 87, 100, 112, 113, 114, 115, 130, 150, 171, 172, 268, 273, 274, 282, 285, 289, 291, 299, 364, 367, 368, 369, 374, 375, 376, 31, 76, 132, 214, 216, 301, 365, 366, 384, 385, 392, 1, 214, 278, 295, 301, 333, 362, 388, 1, 387, 388, 0, 217, 386, 386, 5, 127, 386, 1, 4, 6, 8, 9, 65, 71, 72, 73, 84, 85, 98, 102, 103, 104, 105, 106, 107, 108, 109, 118, 119, 120, 123, 125, 133, 134, 136, 137, 138, 139, 150, 176, 177, 217, 218, 219, 220, 221, 224, 225, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 386, 398, 399, 400, 401, 147, 217, 130, 150, 217, 282, 328, 134, 123, 134, 124, 308, 309, 353, 354, 328, 331, 332, 310, 315, 319, 320, 124, 320, 124, 320, 320, 85, 150, 202, 204, 206, 210, 211, 217, 229, 234, 250, 254, 300, 126, 121, 121, 126, 1, 68, 78, 80, 81, 88, 91, 92, 93, 94, 96, 98, 99, 123, 125, 126, 129, 151, 152, 153, 154, 155, 156, 157, 158, 173, 174, 176, 177, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 193, 197, 198, 199, 200, 217, 225, 248, 300, 312, 314, 320, 328, 333, 334, 363, 80, 81, 217, 268, 272, 282, 285, 288, 296, 303, 304, 1, 129, 199, 200, 148, 217, 1, 217, 270, 271, 1, 129, 271, 304, 65, 203, 205, 207, 208, 209, 217, 300, 1, 129, 199, 200, 304, 1, 129, 199, 200, 1, 129, 199, 200, 148, 217, 128, 128, 128, 130, 328, 313, 317, 320, 1, 127, 368, 375, 376, 368, 375, 376, 1, 126, 128, 128, 328, 126, 135, 147, 217, 243, 262, 266, 267, 128, 130, 150, 217, 129, 130, 129, 130, 320, 37, 123, 134, 136, 146, 148, 217, 268, 274, 282, 284, 289, 310, 311, 320, 326, 328, 329, 332, 1, 124, 128, 1, 124, 128, 1, 128, 1, 128, 124, 124, 313, 123, 313, 123, 123, 1, 126, 1, 129, 1, 37, 38, 126, 217, 268, 274, 282, 285, 289, 320, 345, 346, 1, 126, 1, 364, 367, 375, 376, 364, 367, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 85, 86, 88, 89, 90, 126, 132, 150, 194, 195, 196, 217, 225, 229, 244, 246, 250, 262, 263, 264, 325, 355, 356, 359, 360, 361, 368, 369, 370, 371, 372, 373, 375, 376, 378, 379, 380, 381, 382, 383, 129, 31, 217, 386, 217, 212, 213, 215, 216, 310, 311, 317, 320, 328, 333, 335, 368, 376, 214, 301, 127, 242, 243, 261, 124, 123, 229, 250, 123, 229, 250, 229, 250, 123, 217, 268, 274, 282, 285, 289, 307, 266, 123, 123, 307, 266, 123, 123, 123, 123, 123, 123, 229, 250, 123, 124, 244, 246, 264, 274, 282, 284, 289, 297, 347, 386, 130, 135, 178, 179, 222, 226, 244, 130, 1, 129, 130, 217, 1, 7, 8, 9, 123, 131, 134, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 127, 245, 179, 222, 223, 231, 251, 120, 140, 141, 137, 138, 10, 11, 234, 254, 12, 13, 121, 122, 14, 15, 136, 142, 143, 16, 17, 144, 245, 124, 7, 8, 9, 123, 131, 134, 245, 120, 140, 141, 137, 138, 10, 11, 12, 13, 121, 122, 14, 15, 136, 142, 143, 16, 17, 144, 245, 124, 124, 107, 217, 300, 393, 396, 397, 130, 130, 135, 147, 266, 267, 135, 147, 266, 267, 124, 124, 124, 124, 310, 315, 319, 124, 124, 310, 11, 122, 128, 127, 123, 320, 328, 329, 65, 209, 217, 300, 209, 1, 217, 268, 282, 285, 296, 305, 300, 333, 334, 123, 150, 217, 217, 300, 1, 123, 305, 120, 123, 217, 300, 126, 325, 375, 376, 375, 376, 375, 126, 375, 376, 126, 1, 129, 1, 1, 126, 128, 128, 69, 70, 91, 95, 97, 129, 69, 70, 129, 126, 1, 197, 198, 1, 197, 198, 1, 127, 123, 132, 217, 286, 287, 310, 316, 318, 320, 328, 335, 336, 337, 1, 300, 308, 351, 328, 314, 320, 123, 132, 157, 158, 173, 174, 176, 177, 186, 217, 300, 121, 150, 217, 217, 268, 282, 285, 121, 121, 127, 128, 1, 126, 130, 28, 149, 217, 122, 128, 127, 217, 329, 331, 343, 343, 343, 126, 128, 129, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 222, 223, 225, 243, 262, 299, 340, 341, 310, 313, 315, 317, 319, 310, 317, 130, 244, 263, 338, 339, 375, 376, 375, 376, 343, 344, 343, 344, 135, 135, 135, 51, 349, 350, 1, 271, 130, 130, 1, 129, 199, 200, 1, 129, 199, 200, 130, 124, 217, 308, 309, 320, 328, 329, 353, 354, 135, 147, 266, 267, 320, 328, 332, 328, 123, 134, 326, 1, 1, 128, 1, 51, 217, 349, 350, 128, 1, 51, 217, 349, 350, 128, 1, 51, 217, 349, 350, 128, 51, 217, 349, 350, 3, 28, 44, 74, 75, 124, 322, 323, 324, 244, 147, 217, 129, 130, 126, 126, 132, 266, 267, 132, 123, 123, 1, 123, 52, 53, 54, 56, 57, 58, 59, 62, 86, 217, 264, 325, 355, 378, 382, 123, 217, 126, 126, 126, 222, 223, 246, 264, 123, 282, 123, 123, 190, 217, 126, 126, 126, 132, 131, 245, 1, 131, 126, 128, 246, 264, 245, 124, 128, 246, 1, 370, 371, 370, 371, 355, 356, 364, 367, 355, 356, 364, 367, 1, 1, 386, 386, 148, 217, 130, 130, 328, 317, 320, 368, 376, 368, 376, 376, 243, 144, 126, 144, 65, 146, 217, 274, 282, 284, 289, 298, 348, 217, 299, 121, 123, 134, 217, 268, 274, 282, 285, 289, 320, 327, 328, 330, 217, 268, 274, 282, 285, 289, 306, 246, 347, 375, 217, 134, 330, 306, 244, 386, 386, 386, 244, 348, 348, 124, 217, 274, 282, 284, 289, 329, 124, 131, 1, 169, 170, 1, 129, 128, 135, 1, 169, 170, 129, 1, 169, 170, 1, 217, 124, 223, 226, 227, 263, 1, 217, 246, 264, 222, 244, 1, 231, 251, 231, 251, 231, 251, 232, 252, 232, 252, 233, 253, 233, 253, 234, 254, 234, 254, 234, 254, 222, 223, 236, 255, 222, 223, 236, 255, 222, 223, 237, 256, 222, 223, 238, 257, 222, 223, 239, 258, 240, 259, 241, 260, 132, 222, 223, 246, 247, 264, 265, 222, 244, 1, 217, 124, 226, 227, 1, 217, 246, 264, 222, 244, 231, 251, 231, 251, 231, 251, 232, 252, 232, 252, 233, 253, 233, 253, 234, 254, 234, 254, 234, 254, 234, 254, 222, 223, 236, 255, 222, 223, 236, 255, 222, 223, 237, 256, 222, 223, 238, 257, 222, 223, 239, 258, 240, 259, 241, 260, 132, 246, 247, 264, 265, 222, 244, 121, 122, 217, 394, 395, 217, 129, 393, 396, 397, 397, 135, 135, 135, 135, 135, 135, 210, 202, 204, 206, 217, 320, 328, 122, 127, 329, 122, 130, 121, 130, 217, 268, 282, 285, 329, 320, 328, 335, 336, 190, 287, 310, 320, 328, 130, 217, 130, 217, 329, 217, 320, 123, 126, 129, 180, 181, 180, 181, 375, 375, 375, 219, 375, 375, 1, 340, 341, 124, 266, 267, 130, 128, 1, 300, 308, 351, 328, 310, 318, 320, 132, 325, 217, 123, 314, 314, 217, 1, 1, 287, 211, 121, 209, 209, 266, 267, 270, 199, 200, 1, 129, 271, 127, 132, 127, 132, 208, 204, 217, 127, 217, 127, 375, 376, 1, 126, 128, 126, 128, 126, 161, 162, 165, 166, 167, 129, 159, 162, 126, 129, 161, 162, 165, 166, 167, 127, 37, 335, 336, 337, 338, 339, 342, 1, 129, 271, 1, 129, 271, 1, 129, 199, 200, 320, 328, 329, 124, 124, 124, 135, 135, 135, 328, 326, 124, 353, 354, 135, 147, 266, 267, 349, 350, 300, 349, 349, 349, 350, 124, 123, 124, 128, 323, 124, 124, 124, 1, 169, 170, 355, 356, 364, 367, 132, 132, 355, 356, 364, 367, 246, 264, 246, 264, 124, 246, 264, 132, 266, 267, 132, 123, 123, 355, 123, 223, 264, 123, 132, 56, 1, 124, 126, 217, 246, 264, 377, 126, 126, 126, 126, 126, 386, 123, 244, 244, 217, 355, 356, 364, 367, 90, 223, 263, 88, 89, 90, 244, 263, 223, 263, 244, 263, 121, 317, 376, 376, 126, 246, 247, 264, 265, 246, 247, 264, 265, 146, 147, 146, 274, 282, 284, 289, 329, 124, 124, 124, 329, 211, 124, 320, 330, 353, 354, 266, 267, 121, 328, 123, 327, 134, 121, 134, 217, 268, 274, 282, 285, 289, 330, 124, 124, 124, 124, 266, 267, 134, 134, 330, 128, 124, 128, 128, 128, 124, 128, 231, 251, 386, 1, 129, 222, 244, 1, 1, 124, 128, 124, 135, 135, 1, 128, 132, 132, 128, 132, 132, 124, 135, 135, 132, 132, 132, 132, 217, 217, 126, 128, 217, 386, 129, 129, 320, 328, 204, 211, 121, 130, 130, 217, 328, 320, 124, 328, 310, 124, 130, 130, 217, 124, 1, 169, 170, 286, 320, 217, 123, 310, 318, 318, 266, 267, 123, 124, 122, 211, 122, 122, 126, 1, 126, 202, 201, 300, 202, 201, 206, 127, 130, 1, 163, 164, 1, 163, 164, 376, 1, 340, 341, 128, 129, 338, 339, 1, 126, 1, 126, 328, 326, 124, 124, 124, 135, 135, 135, 329, 332, 246, 124, 323, 1, 355, 356, 364, 367, 355, 356, 364, 367, 124, 124, 124, 124, 1, 355, 124, 246, 355, 356, 132, 132, 264, 124, 246, 264, 56, 264, 377, 386, 123, 355, 132, 126, 1, 126, 1, 124, 264, 377, 3, 124, 132, 386, 124, 124, 128, 123, 123, 190, 132, 132, 132, 132, 132, 132, 132, 132, 124, 124, 1, 124, 122, 320, 328, 330, 124, 124, 124, 135, 135, 211, 327, 124, 353, 354, 266, 267, 211, 266, 267, 121, 134, 123, 338, 135, 135, 266, 267, 266, 267, 134, 347, 217, 217, 244, 1, 217, 223, 263, 222, 223, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 243, 261, 222, 223, 243, 261, 394, 126, 126, 122, 211, 130, 375, 310, 127, 130, 1, 123, 132, 132, 122, 199, 200, 126, 199, 200, 127, 329, 127, 206, 342, 129, 338, 339, 1, 199, 200, 199, 200, 124, 355, 355, 355, 355, 355, 356, 124, 123, 377, 124, 246, 264, 246, 355, 1, 124, 246, 264, 134, 357, 358, 386, 126, 358, 3, 124, 132, 130, 190, 244, 244, 1, 1, 327, 124, 122, 124, 124, 135, 135, 122, 135, 135, 211, 266, 267, 347, 135, 135, 135, 135, 266, 267, 124, 124, 124, 124, 124, 122, 340, 266, 267, 266, 267, 199, 200, 202, 202, 128, 129, 1, 64, 64, 246, 264, 124, 246, 264, 124, 126, 124, 126, 355, 356, 124, 355, 356, 217, 124, 128, 132, 123, 3, 124, 132, 358, 126, 358, 73, 190, 191, 192, 124, 124, 124, 128, 122, 135, 135, 124, 135, 135, 126, 129, 355, 355, 124, 124, 126, 355, 246, 355, 356, 135, 126, 357, 358, 244, 358, 126, 358, 124, 132, 3, 124, 132, 375, 375, 129, 191, 130, 190, 231, 251, 338, 124, 386, 124, 124, 124, 124, 132, 126, 358, 358, 126, 358, 192, 124, 355, 123, 126, 126, 126, 358, 124, 124, 124, 132, 129, 244, 124, 126, 126, 126, 358, 124, 126, 124, 126
151 };
152
153 void exit(int status);
154
155 void * calloc(size_t nmemb, size_t size);
156
157 void free(void * ptr);
158
159 void * malloc(size_t size);
160
161 void * realloc(void * ptr, size_t size);
162
163 long int strtol(const char * nptr, char ** endptr, int base);
164
165 long long int strtoll(const char * nptr, char ** endptr, int base);
166
167 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
168
169 typedef __builtin_va_list va_list;
170
171 typedef void FILE;
172
173 FILE * bsl_stdin(void);
174
175 FILE * bsl_stdout(void);
176
177 FILE * bsl_stderr(void);
178
179 char * fgets(char * s, int size, FILE * stream);
180
181 FILE * fopen(const char * path, const char * mode);
182
183 int fclose(FILE * fp);
184
185 int fflush(FILE * stream);
186
187 int fgetc(FILE * stream);
188
189 int fprintf(FILE * stream, const char * format, ...);
190
191 int fputc(int c, FILE * stream);
192
193 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
194
195 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
196
197 int vsnprintf(char *, size_t, const char *, va_list args);
198
199 int snprintf(char * str, size_t, const char * format, ...);
200
201 int fseek(FILE * stream, long offset, int whence);
202
203 long ftell(FILE * stream);
204
205 int feof(FILE * stream);
206
207 int ferror(FILE * stream);
208
209 int fileno(FILE * stream);
210
211 int yydebug;
212
213 int yyparse(void);
214
215 int yychar;
216
217 int yynerrs;
218
219 extern unsigned int skipErrors;
220
221 extern int structDeclMode;
222
223 extern int declMode;
224
225 extern int defaultDeclMode;
226
227 struct __ecereNameSpace__ecere__sys__OldList
228 {
229 void *  first;
230 void *  last;
231 int count;
232 unsigned int offset;
233 unsigned int circ;
234 } ecere_gcc_struct;
235
236 struct __ecereNameSpace__ecere__sys__BTNode;
237
238 struct Type;
239
240 struct __ecereNameSpace__ecere__com__DataValue
241 {
242 union
243 {
244 char c;
245 unsigned char uc;
246 short s;
247 unsigned short us;
248 int i;
249 unsigned int ui;
250 void *  p;
251 float f;
252 double d;
253 long long i64;
254 uint64 ui64;
255 } ecere_gcc_struct __anon1;
256 } ecere_gcc_struct;
257
258 struct __ecereNameSpace__ecere__com__SerialBuffer
259 {
260 unsigned char *  _buffer;
261 unsigned int count;
262 unsigned int _size;
263 unsigned int pos;
264 } ecere_gcc_struct;
265
266 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
267
268 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
269
270 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
271
272 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
273
274 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
275
276 struct Enumerator;
277
278 struct Pointer;
279
280 struct TypeName;
281
282 struct Context;
283
284 struct ExtDecl;
285
286 struct PropertyWatch;
287
288 struct TemplateParameter;
289
290 struct TemplateDatatype;
291
292 struct DBTableEntry;
293
294 struct DBIndexItem;
295
296 struct CodePosition
297 {
298 int line;
299 int charPos;
300 int pos;
301 int included;
302 } ecere_gcc_struct;
303
304 extern char *  __ecereNameSpace__ecere__sys__CopyString(const char *  string);
305
306 struct ModuleImport;
307
308 struct ClassImport;
309
310 extern size_t strlen(const char * );
311
312 extern void Compiler_Error(const char *  format, ...);
313
314 extern const char *  __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char *  string, const char *  stringAndContext);
315
316 extern char *  __ecereNameSpace__ecere__sys__RSearchString(const char *  buffer, const char *  subStr, int maxLen, unsigned int matchCase, unsigned int matchWord);
317
318 extern char *  strcpy(char * , const char * );
319
320 extern char *  strcat(char * , const char * );
321
322 extern void Compiler_Warning(const char *  format, ...);
323
324 extern void *  memcpy(void * , const void * , size_t size);
325
326 struct __ecereNameSpace__ecere__com__LinkList
327 {
328 void * first;
329 void * last;
330 int count;
331 } ecere_gcc_struct;
332
333 extern int strcmp(const char * , const char * );
334
335 static void yy_stack_print(yytype_int16 * yybottom, yytype_int16 * yytop)
336 {
337 fprintf((bsl_stderr()), "Stack now");
338 for(; yybottom <= yytop; yybottom++)
339 {
340 int yybot = *yybottom;
341
342 fprintf((bsl_stderr()), " %d", yybot);
343 }
344 fprintf((bsl_stderr()), "\n");
345 }
346
347 struct __ecereNameSpace__ecere__sys__OldList * ast;
348
349 extern void FreeList(struct __ecereNameSpace__ecere__sys__OldList * list, void (*  FreeFunction)(void * ));
350
351 extern struct __ecereNameSpace__ecere__sys__OldList *  MkList(void);
352
353 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void *  item);
354
355 extern struct __ecereNameSpace__ecere__sys__OldList *  MkListOne(void *  item);
356
357 extern void FreeEnumerator(struct Enumerator * enumerator);
358
359 extern void FreePointer(struct Pointer * pointer);
360
361 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
362
363 extern void FreeTypeName(struct TypeName * typeName);
364
365 extern struct Context * curContext;
366
367 extern void PopContext(struct Context * ctx);
368
369 extern void FreeContext(struct Context * context);
370
371 extern struct Context * globalContext;
372
373 extern struct Context * PushContext(void);
374
375 extern void FreeExtDecl(struct ExtDecl * extDecl);
376
377 extern struct ExtDecl * MkExtDeclString(char * s);
378
379 extern void FreeTemplateParameter(struct TemplateParameter * param);
380
381 extern void FreeTemplateDataType(struct TemplateDatatype * type);
382
383 struct Location
384 {
385 struct CodePosition start;
386 struct CodePosition end;
387 } ecere_gcc_struct;
388
389 extern void resetScannerPos(struct CodePosition * pos);
390
391 extern struct Location yylloc;
392
393 struct Location yylloc;
394
395 struct Attrib
396 {
397 struct Location loc;
398 int type;
399 struct __ecereNameSpace__ecere__sys__OldList *  attribs;
400 } ecere_gcc_struct;
401
402 extern void FreeAttrib(struct Attrib * attr);
403
404 extern struct ExtDecl * MkExtDeclAttrib(struct Attrib * attr);
405
406 extern struct Attrib * MkAttrib(int type, struct __ecereNameSpace__ecere__sys__OldList *  attribs);
407
408 struct __ecereNameSpace__ecere__com__Class;
409
410 struct __ecereNameSpace__ecere__com__Instance
411 {
412 void * *  _vTbl;
413 struct __ecereNameSpace__ecere__com__Class * _class;
414 int _refCount;
415 } ecere_gcc_struct;
416
417 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
418
419 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
420
421 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
422
423 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
424
425 extern struct __ecereNameSpace__ecere__com__Instance * fileInput;
426
427 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
428
429 struct __ecereNameSpace__ecere__com__Property;
430
431 struct __ecereNameSpace__ecere__com__Property
432 {
433 struct __ecereNameSpace__ecere__com__Property * prev;
434 struct __ecereNameSpace__ecere__com__Property * next;
435 const char *  name;
436 unsigned int isProperty;
437 int memberAccess;
438 int id;
439 struct __ecereNameSpace__ecere__com__Class * _class;
440 const char *  dataTypeString;
441 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
442 struct Type * dataType;
443 void (*  Set)(void * , int);
444 int (*  Get)(void * );
445 unsigned int (*  IsSet)(void * );
446 void *  data;
447 void *  symbol;
448 int vid;
449 unsigned int conversion;
450 unsigned int watcherOffset;
451 const char *  category;
452 unsigned int compiled;
453 unsigned int selfWatchable;
454 unsigned int isWatchable;
455 } ecere_gcc_struct;
456
457 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
458
459 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
460
461 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
462
463 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
464
465 struct Specifier;
466
467 extern void FreeSpecifier(struct Specifier * spec);
468
469 extern struct Specifier * MkSpecifierName(const char *  name);
470
471 extern void SetClassTemplateArgs(struct Specifier * spec, struct __ecereNameSpace__ecere__sys__OldList * templateArgs);
472
473 extern struct Specifier * MkSpecifier(int specifier);
474
475 extern struct Specifier * MkSpecifierExtended(struct ExtDecl * extDecl);
476
477 extern struct Specifier * MkSpecifierSubClass(struct Specifier * _class);
478
479 extern void AddStructDefinitions(struct Specifier * spec, struct __ecereNameSpace__ecere__sys__OldList * definitions);
480
481 extern struct Specifier * MkSpecifierNameArgs(const char *  name, struct __ecereNameSpace__ecere__sys__OldList *  templateArgs);
482
483 struct ClassFunction;
484
485 extern void FreeClassFunction(struct ClassFunction * func);
486
487 struct MemberInit;
488
489 extern void FreeMemberInit(struct MemberInit * init);
490
491 struct MembersInit;
492
493 extern void FreeMembersInit(struct MembersInit * init);
494
495 extern struct MembersInit * MkMembersInitList(struct __ecereNameSpace__ecere__sys__OldList * dataMembers);
496
497 struct MembersInit
498 {
499 struct MembersInit * prev;
500 struct MembersInit * next;
501 struct Location loc;
502 int type;
503 union
504 {
505 struct __ecereNameSpace__ecere__sys__OldList *  dataMembers;
506 struct ClassFunction * function;
507 } ecere_gcc_struct __anon1;
508 } ecere_gcc_struct;
509
510 extern struct MembersInit * MkMembersInitMethod(struct ClassFunction * function);
511
512 struct Instantiation;
513
514 extern void FreeInstance(struct Instantiation * inst);
515
516 struct PropertyDef;
517
518 extern void FreeProperty(struct PropertyDef * def);
519
520 struct ClassDef;
521
522 extern void FreeClassDef(struct ClassDef * def);
523
524 extern struct ClassDef * MkClassDefDefaultProperty(struct __ecereNameSpace__ecere__sys__OldList * defProperties);
525
526 extern struct ClassDef * MkClassDefFunction(struct ClassFunction * function);
527
528 extern struct ClassDef * MkClassDefProperty(struct PropertyDef * propertyDef);
529
530 extern struct ClassDef * MkClassDefClassProperty(struct PropertyDef * propertyDef);
531
532 extern struct ClassDef * MkClassDefNoExpansion(void);
533
534 extern struct ClassDef * MkClassDefFixed(void);
535
536 extern struct ClassDef * MkClassDefMemberAccess(void);
537
538 extern struct ClassDef * MkClassDefPropertyWatch(struct PropertyWatch * watcher);
539
540 extern struct ClassDef * MkClassDefDesigner(const char *  designer);
541
542 struct TemplateArgument;
543
544 extern void FreeTemplateArgument(struct TemplateArgument * arg);
545
546 extern struct TemplateArgument * MkTemplateTypeArgument(struct TemplateDatatype * tplDatatype);
547
548 struct ClassDefinition;
549
550 extern void FreeClass(struct ClassDefinition * _class);
551
552 struct Identifier;
553
554 extern void FreeIdentifier(struct Identifier * id);
555
556 extern struct ClassDef * MkClassDefAccessOverride(int access, struct Identifier * id);
557
558 extern struct ClassDef * MkClassDefDesignerDefaultProperty(struct Identifier * id);
559
560 extern struct TemplateParameter * MkTypeTemplateParameter(struct Identifier * identifier, struct TemplateDatatype * baseTplDatatype, struct TemplateArgument * defaultArgument);
561
562 extern struct Identifier * MkIdentifier(const char *  string);
563
564 extern struct TemplateArgument * MkTemplateIdentifierArgument(struct Identifier * ident);
565
566 extern struct TemplateParameter * MkIdentifierTemplateParameter(struct Identifier * identifier, int memberType, struct TemplateArgument * defaultArgument);
567
568 extern struct TemplateParameter * MkExpressionTemplateParameter(struct Identifier * identifier, struct TemplateDatatype * dataType, struct TemplateArgument * defaultArgument);
569
570 extern struct Specifier * MkEnum(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * list);
571
572 extern struct Specifier * MkStructOrUnion(int type, struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * definitions);
573
574 extern struct DBTableEntry * MkDBFieldEntry(struct TypeName * type, struct Identifier * id, char *  name);
575
576 extern struct DBIndexItem * MkDBIndexItem(struct Identifier * id, int order);
577
578 extern struct DBTableEntry * MkDBIndexEntry(struct __ecereNameSpace__ecere__sys__OldList *  items, struct Identifier * id);
579
580 struct Expression;
581
582 extern void FreeExpression(struct Expression * exp);
583
584 extern struct Expression * MkExpDummy(void);
585
586 extern struct Instantiation * MkInstantiationNamed(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
587
588 extern struct Expression * MkExpIdentifier(struct Identifier * id);
589
590 extern struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
591
592 extern struct TemplateArgument * MkTemplateExpressionArgument(struct Expression * expr);
593
594 struct TemplateArgument
595 {
596 struct TemplateArgument * prev;
597 struct TemplateArgument * next;
598 struct Location loc;
599 struct Identifier * name;
600 int type;
601 union
602 {
603 struct Expression * expression;
604 struct Identifier * identifier;
605 struct TemplateDatatype * templateDatatype;
606 } ecere_gcc_struct __anon1;
607 } ecere_gcc_struct;
608
609 extern struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions);
610
611 extern struct Expression * MkExpString(const char *  string);
612
613 extern struct Expression * MkExpIntlString(const char *  string, const char *  context);
614
615 extern struct Expression * MkExpConstant(const char *  string);
616
617 extern struct Expression * MkExpInstance(struct Instantiation * inst);
618
619 extern struct Expression * MkExpExtensionExpression(struct __ecereNameSpace__ecere__sys__OldList *  expressions);
620
621 extern struct Expression * MkExpMember(struct Expression * expression, struct Identifier * member);
622
623 extern struct Expression * MkExpWideString(const char *  string);
624
625 extern struct Expression * MkExpNew(struct TypeName * type, struct Expression * size);
626
627 extern struct Expression * MkExpNew0(struct TypeName * type, struct Expression * size);
628
629 extern struct Expression * MkExpRenew(struct Expression * memExp, struct TypeName * type, struct Expression * size);
630
631 extern struct Expression * MkExpRenew0(struct Expression * memExp, struct TypeName * type, struct Expression * size);
632
633 extern struct Expression * MkExpVaArg(struct Expression * exp, struct TypeName * type);
634
635 extern struct Expression * MkExpClassData(struct Identifier * id);
636
637 extern struct Expression * MkExpArray(struct __ecereNameSpace__ecere__sys__OldList *  expressions);
638
639 extern struct Expression * MkExpIndex(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * index);
640
641 extern struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments);
642
643 extern struct Expression * MkExpPointer(struct Expression * expression, struct Identifier * member);
644
645 extern struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2);
646
647 extern struct Expression * MkExpTypeSize(struct TypeName * typeName);
648
649 extern struct Expression * MkExpClassSize(struct Specifier * _class);
650
651 extern struct Expression * MkExpTypeAlign(struct TypeName * typeName);
652
653 extern struct Expression * MkExpOffsetOf(struct TypeName * typeName, struct Identifier * id);
654
655 extern struct Expression * MkExpCast(struct TypeName * typeName, struct Expression * expression);
656
657 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
658
659 extern struct Enumerator * MkEnumerator(struct Identifier * id, struct Expression * exp);
660
661 extern struct Specifier * MkSpecifierTypeOf(struct Expression * expression);
662
663 extern struct Expression * MkExpDBOpen(struct Expression * ds, struct Expression * dbName);
664
665 extern struct Expression * MkExpDBField(char *  table, struct Identifier * id);
666
667 extern struct Expression * MkExpDBIndex(char *  table, struct Identifier * id);
668
669 extern struct Expression * MkExpDBTable(char *  table);
670
671 struct Declarator;
672
673 extern void FreeDeclarator(struct Declarator * decl);
674
675 extern struct ClassFunction * MkClassFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Specifier * _class, struct Declarator * decl, struct __ecereNameSpace__ecere__sys__OldList * declList);
676
677 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
678
679 extern struct Declarator * MkDeclaratorFunction(struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * parameters);
680
681 extern struct TemplateDatatype * MkTemplateDatatype(struct __ecereNameSpace__ecere__sys__OldList *  specifiers, struct Declarator * decl);
682
683 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
684
685 extern struct Expression * MkExpClass(struct __ecereNameSpace__ecere__sys__OldList *  specifiers, struct Declarator * decl);
686
687 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
688
689 extern struct Declarator * MkDeclaratorArray(struct Declarator * declarator, struct Expression * exp);
690
691 extern struct Declarator * MkDeclaratorEnumArray(struct Declarator * declarator, struct Specifier * _class);
692
693 extern struct Declarator * MkDeclaratorBrackets(struct Declarator * declarator);
694
695 extern struct Declarator * MkDeclaratorExtended(struct ExtDecl * extended, struct Declarator * declarator);
696
697 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
698
699 extern struct Declarator * MkDeclaratorExtendedEnd(struct ExtDecl * extended, struct Declarator * declarator);
700
701 extern struct TypeName * MkTypeNameGuessDecl(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
702
703 struct Attribute;
704
705 extern void FreeAttribute(struct Attribute * attr);
706
707 extern struct Attribute * MkAttribute(char * attr, struct Expression * exp);
708
709 struct Attribute
710 {
711 struct Attribute * prev;
712 struct Attribute * next;
713 struct Location loc;
714 char * attr;
715 struct Expression * exp;
716 } ecere_gcc_struct;
717
718 struct Initializer;
719
720 extern void FreeInitializer(struct Initializer * initializer);
721
722 extern struct MemberInit * MkMemberInitExp(struct Expression * idExp, struct Initializer * initializer);
723
724 struct MemberInit
725 {
726 struct MemberInit * prev;
727 struct MemberInit * next;
728 struct Location loc;
729 struct Location realLoc;
730 struct __ecereNameSpace__ecere__sys__OldList *  identifiers;
731 struct Initializer * initializer;
732 unsigned int used;
733 unsigned int variable;
734 unsigned int takeOutExp;
735 } ecere_gcc_struct;
736
737 struct Initializer
738 {
739 struct Initializer * prev;
740 struct Initializer * next;
741 struct Location loc;
742 int type;
743 union
744 {
745 struct Expression * exp;
746 struct __ecereNameSpace__ecere__sys__OldList *  list;
747 } ecere_gcc_struct __anon1;
748 unsigned int isConstant;
749 struct Identifier * id;
750 } ecere_gcc_struct;
751
752 extern struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer);
753
754 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
755
756 extern struct ClassDef * MkClassDefClassPropertyValue(struct Identifier * id, struct Initializer * initializer);
757
758 extern struct Expression * MkExpExtensionInitializer(struct TypeName * typeName, struct Initializer * initializer);
759
760 extern struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sys__OldList * list);
761
762 struct InitDeclarator;
763
764 extern void FreeInitDeclarator(struct InitDeclarator * decl);
765
766 extern struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer);
767
768 struct InitDeclarator
769 {
770 struct InitDeclarator * prev;
771 struct InitDeclarator * next;
772 struct Location loc;
773 struct Declarator * declarator;
774 struct Initializer * initializer;
775 } ecere_gcc_struct;
776
777 struct Statement;
778
779 extern void FreeStatement(struct Statement * stmt);
780
781 extern void ProcessClassFunctionBody(struct ClassFunction * func, struct Statement * body);
782
783 struct Expression
784 {
785 struct Expression * prev;
786 struct Expression * next;
787 struct Location loc;
788 int type;
789 union
790 {
791 struct
792 {
793 char *  constant;
794 struct Identifier * identifier;
795 } ecere_gcc_struct __anon1;
796 struct Statement * compound;
797 struct Instantiation * instance;
798 struct
799 {
800 char *  string;
801 unsigned int intlString;
802 unsigned int wideString;
803 } ecere_gcc_struct __anon2;
804 struct __ecereNameSpace__ecere__sys__OldList *  list;
805 struct
806 {
807 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
808 struct Declarator * decl;
809 } ecere_gcc_struct _classExp;
810 struct
811 {
812 struct Identifier * id;
813 } ecere_gcc_struct classData;
814 struct
815 {
816 struct Expression * exp;
817 struct __ecereNameSpace__ecere__sys__OldList * arguments;
818 struct Location argLoc;
819 } ecere_gcc_struct call;
820 struct
821 {
822 struct Expression * exp;
823 struct __ecereNameSpace__ecere__sys__OldList * index;
824 } ecere_gcc_struct index;
825 struct
826 {
827 struct Expression * exp;
828 struct Identifier * member;
829 int memberType;
830 unsigned int thisPtr;
831 } ecere_gcc_struct member;
832 struct
833 {
834 int op;
835 struct Expression * exp1;
836 struct Expression * exp2;
837 } ecere_gcc_struct op;
838 struct TypeName * typeName;
839 struct Specifier * _class;
840 struct
841 {
842 struct TypeName * typeName;
843 struct Expression * exp;
844 } ecere_gcc_struct cast;
845 struct
846 {
847 struct Expression * cond;
848 struct __ecereNameSpace__ecere__sys__OldList * exp;
849 struct Expression * elseExp;
850 } ecere_gcc_struct cond;
851 struct
852 {
853 struct TypeName * typeName;
854 struct Expression * size;
855 } ecere_gcc_struct _new;
856 struct
857 {
858 struct TypeName * typeName;
859 struct Expression * size;
860 struct Expression * exp;
861 } ecere_gcc_struct _renew;
862 struct
863 {
864 char * table;
865 struct Identifier * id;
866 } ecere_gcc_struct db;
867 struct
868 {
869 struct Expression * ds;
870 struct Expression * name;
871 } ecere_gcc_struct dbopen;
872 struct
873 {
874 struct TypeName * typeName;
875 struct Initializer * initializer;
876 } ecere_gcc_struct initializer;
877 struct
878 {
879 struct Expression * exp;
880 struct TypeName * typeName;
881 } ecere_gcc_struct vaArg;
882 struct
883 {
884 struct TypeName * typeName;
885 struct Identifier * id;
886 } ecere_gcc_struct offset;
887 } ecere_gcc_struct __anon1;
888 unsigned int debugValue;
889 struct __ecereNameSpace__ecere__com__DataValue val;
890 uint64 address;
891 unsigned int hasAddress;
892 struct Type * expType;
893 struct Type * destType;
894 unsigned int usage;
895 int tempCount;
896 unsigned int byReference;
897 unsigned int isConstant;
898 unsigned int addedThis;
899 unsigned int needCast;
900 unsigned int thisPtr;
901 unsigned int opDestType;
902 unsigned int usedInComparison;
903 unsigned int ambiguousUnits;
904 unsigned int parentOpDestType;
905 unsigned int needTemplateCast;
906 } ecere_gcc_struct;
907
908 extern struct PropertyDef * MkProperty(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl, struct Identifier * id, struct Statement * setStmt, struct Statement * getStmt);
909
910 extern struct PropertyWatch * MkPropertyWatch(struct __ecereNameSpace__ecere__sys__OldList * properties, struct Statement * compound);
911
912 extern struct PropertyWatch * MkDeleteWatch(struct Statement * compound);
913
914 extern struct Statement * MkWatchStmt(struct Expression * watcher, struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches);
915
916 extern struct Statement * MkStopWatchingStmt(struct Expression * watcher, struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches);
917
918 extern struct Statement * MkFireWatchersStmt(struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches);
919
920 extern struct Expression * MkExpExtensionCompound(struct Statement * compound);
921
922 extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions);
923
924 extern struct Statement * MkAsmStmt(struct Specifier * spec, char *  statements, struct __ecereNameSpace__ecere__sys__OldList * inputFields, struct __ecereNameSpace__ecere__sys__OldList * outputFields, struct __ecereNameSpace__ecere__sys__OldList * clobberedFields);
925
926 extern struct Statement * MkLabeledStmt(struct Identifier * id, struct Statement * statement);
927
928 extern struct Statement * MkCaseStmt(struct Expression * exp, struct Statement * statement);
929
930 extern struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements);
931
932 extern struct Statement * MkIfStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement, struct Statement * elseStmt);
933
934 extern struct Statement * MkSwitchStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement);
935
936 extern struct Statement * MkWhileStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement);
937
938 extern struct Statement * MkDoWhileStmt(struct Statement * statement, struct __ecereNameSpace__ecere__sys__OldList * exp);
939
940 extern struct Statement * MkForStmt(struct Statement * init, struct Statement * check, struct __ecereNameSpace__ecere__sys__OldList * inc, struct Statement * statement);
941
942 extern struct Statement * MkForEachStmt(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * exp, struct __ecereNameSpace__ecere__sys__OldList * filter, struct Statement * statement);
943
944 extern struct Statement * MkGotoStmt(struct Identifier * id);
945
946 extern struct Statement * MkContinueStmt(void);
947
948 extern struct Statement * MkBreakStmt(void);
949
950 extern struct Statement * MkReturnStmt(struct __ecereNameSpace__ecere__sys__OldList * exp);
951
952 struct Declaration;
953
954 extern void FreeDeclaration(struct Declaration * decl);
955
956 struct Statement
957 {
958 struct Statement * prev;
959 struct Statement * next;
960 struct Location loc;
961 int type;
962 union
963 {
964 struct __ecereNameSpace__ecere__sys__OldList *  expressions;
965 struct
966 {
967 struct Identifier * id;
968 struct Statement * stmt;
969 } ecere_gcc_struct labeled;
970 struct
971 {
972 struct Expression * exp;
973 struct Statement * stmt;
974 } ecere_gcc_struct caseStmt;
975 struct
976 {
977 struct __ecereNameSpace__ecere__sys__OldList * declarations;
978 struct __ecereNameSpace__ecere__sys__OldList * statements;
979 struct Context * context;
980 unsigned int isSwitch;
981 } ecere_gcc_struct compound;
982 struct
983 {
984 struct __ecereNameSpace__ecere__sys__OldList * exp;
985 struct Statement * stmt;
986 struct Statement * elseStmt;
987 } ecere_gcc_struct ifStmt;
988 struct
989 {
990 struct __ecereNameSpace__ecere__sys__OldList * exp;
991 struct Statement * stmt;
992 } ecere_gcc_struct switchStmt;
993 struct
994 {
995 struct __ecereNameSpace__ecere__sys__OldList * exp;
996 struct Statement * stmt;
997 } ecere_gcc_struct whileStmt;
998 struct
999 {
1000 struct __ecereNameSpace__ecere__sys__OldList * exp;
1001 struct Statement * stmt;
1002 } ecere_gcc_struct doWhile;
1003 struct
1004 {
1005 struct Statement * init;
1006 struct Statement * check;
1007 struct __ecereNameSpace__ecere__sys__OldList * increment;
1008 struct Statement * stmt;
1009 } ecere_gcc_struct forStmt;
1010 struct
1011 {
1012 struct Identifier * id;
1013 } ecere_gcc_struct gotoStmt;
1014 struct
1015 {
1016 struct Specifier * spec;
1017 char * statements;
1018 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
1019 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
1020 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
1021 } ecere_gcc_struct asmStmt;
1022 struct
1023 {
1024 struct Expression * watcher;
1025 struct Expression * object;
1026 struct __ecereNameSpace__ecere__sys__OldList * watches;
1027 } ecere_gcc_struct _watch;
1028 struct
1029 {
1030 struct Identifier * id;
1031 struct __ecereNameSpace__ecere__sys__OldList * exp;
1032 struct __ecereNameSpace__ecere__sys__OldList * filter;
1033 struct Statement * stmt;
1034 } ecere_gcc_struct forEachStmt;
1035 struct Declaration * decl;
1036 } ecere_gcc_struct __anon1;
1037 } ecere_gcc_struct;
1038
1039 struct ClassDef
1040 {
1041 struct ClassDef * prev;
1042 struct ClassDef * next;
1043 struct Location loc;
1044 int type;
1045 union
1046 {
1047 struct Declaration * decl;
1048 struct ClassFunction * function;
1049 struct __ecereNameSpace__ecere__sys__OldList *  defProperties;
1050 struct PropertyDef * propertyDef;
1051 struct PropertyWatch * propertyWatch;
1052 char *  designer;
1053 struct Identifier * defaultProperty;
1054 struct
1055 {
1056 struct Identifier * id;
1057 struct Initializer * initializer;
1058 } ecere_gcc_struct __anon1;
1059 } ecere_gcc_struct __anon1;
1060 int memberAccess;
1061 void *  object;
1062 } ecere_gcc_struct;
1063
1064 extern struct ClassDef * MkClassDefDeclaration(struct Declaration * decl);
1065
1066 extern struct Declaration * MkStructDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * declarators, struct Specifier * extStorage);
1067
1068 extern struct Declaration * MkDeclarationClassInst(struct Instantiation * inst);
1069
1070 extern struct ClassDef * MkClassDefClassData(struct Declaration * decl);
1071
1072 extern struct Statement * MkBadDeclStmt(struct Declaration * decl);
1073
1074 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
1075
1076 extern struct Declaration * MkDeclarationInst(struct Instantiation * inst);
1077
1078 extern struct Declaration * MkDeclarationDefine(struct Identifier * id, struct Expression * exp);
1079
1080 struct FunctionDefinition;
1081
1082 extern void FreeFunction(struct FunctionDefinition * func);
1083
1084 extern struct FunctionDefinition * MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList);
1085
1086 extern void ProcessFunctionBody(struct FunctionDefinition * func, struct Statement * body);
1087
1088 struct External;
1089
1090 extern void FreeExternal(struct External * external);
1091
1092 extern struct External * MkExternalFunction(struct FunctionDefinition * function);
1093
1094 extern struct External * MkExternalClass(struct ClassDefinition * _class);
1095
1096 extern struct External * MkExternalDeclaration(struct Declaration * declaration);
1097
1098 extern struct External * MkExternalImport(char *  name, int importType, int importAccess);
1099
1100 extern struct External * MkExternalNameSpace(struct Identifier * identifier);
1101
1102 struct Symbol;
1103
1104 extern struct Symbol * _DeclClass(struct Specifier * _class, const char *  name);
1105
1106 struct Identifier
1107 {
1108 struct Identifier * prev;
1109 struct Identifier * next;
1110 struct Location loc;
1111 struct Symbol * classSym;
1112 struct Specifier * _class;
1113 char *  string;
1114 struct Identifier * badID;
1115 } ecere_gcc_struct;
1116
1117 struct Specifier
1118 {
1119 struct Specifier * prev;
1120 struct Specifier * next;
1121 struct Location loc;
1122 int type;
1123 union
1124 {
1125 int specifier;
1126 struct
1127 {
1128 struct ExtDecl * extDecl;
1129 char *  name;
1130 struct Symbol * symbol;
1131 struct __ecereNameSpace__ecere__sys__OldList *  templateArgs;
1132 struct Specifier * nsSpec;
1133 } ecere_gcc_struct __anon1;
1134 struct
1135 {
1136 struct Identifier * id;
1137 struct __ecereNameSpace__ecere__sys__OldList *  list;
1138 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
1139 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
1140 unsigned int addNameSpace;
1141 struct Context * ctx;
1142 struct ExtDecl * extDeclStruct;
1143 } ecere_gcc_struct __anon2;
1144 struct Expression * expression;
1145 struct Specifier * _class;
1146 struct TemplateParameter * templateParameter;
1147 } ecere_gcc_struct __anon1;
1148 } ecere_gcc_struct;
1149
1150 struct ClassFunction
1151 {
1152 struct ClassFunction * prev;
1153 struct ClassFunction * next;
1154 struct Location loc;
1155 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1156 struct Declarator * declarator;
1157 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
1158 struct Statement * body;
1159 struct __ecereNameSpace__ecere__com__Class * _class;
1160 struct __ecereNameSpace__ecere__sys__OldList attached;
1161 int declMode;
1162 struct Type * type;
1163 struct Symbol * propSet;
1164 unsigned int isVirtual;
1165 unsigned int isConstructor;
1166 unsigned int isDestructor;
1167 unsigned int dontMangle;
1168 int id;
1169 int idCode;
1170 } ecere_gcc_struct;
1171
1172 struct Declarator
1173 {
1174 struct Declarator * prev;
1175 struct Declarator * next;
1176 struct Location loc;
1177 int type;
1178 struct Symbol * symbol;
1179 struct Declarator * declarator;
1180 union
1181 {
1182 struct Identifier * identifier;
1183 struct
1184 {
1185 struct Expression * exp;
1186 struct Expression * posExp;
1187 struct Attrib * attrib;
1188 } ecere_gcc_struct structDecl;
1189 struct
1190 {
1191 struct Expression * exp;
1192 struct Specifier * enumClass;
1193 } ecere_gcc_struct array;
1194 struct
1195 {
1196 struct __ecereNameSpace__ecere__sys__OldList * parameters;
1197 } ecere_gcc_struct function;
1198 struct
1199 {
1200 struct Pointer * pointer;
1201 } ecere_gcc_struct pointer;
1202 struct
1203 {
1204 struct ExtDecl * extended;
1205 } ecere_gcc_struct extended;
1206 } ecere_gcc_struct __anon1;
1207 } ecere_gcc_struct;
1208
1209 struct Instantiation
1210 {
1211 struct Instantiation * prev;
1212 struct Instantiation * next;
1213 struct Location loc;
1214 struct Specifier * _class;
1215 struct Expression * exp;
1216 struct __ecereNameSpace__ecere__sys__OldList *  members;
1217 struct Symbol * symbol;
1218 unsigned int fullSet;
1219 unsigned int isConstant;
1220 unsigned char *  data;
1221 struct Location nameLoc;
1222 struct Location insideLoc;
1223 unsigned int built;
1224 } ecere_gcc_struct;
1225
1226 struct PropertyDef
1227 {
1228 struct PropertyDef * prev;
1229 struct PropertyDef * next;
1230 struct Location loc;
1231 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1232 struct Declarator * declarator;
1233 struct Identifier * id;
1234 struct Statement * getStmt;
1235 struct Statement * setStmt;
1236 struct Statement * issetStmt;
1237 struct Symbol * symbol;
1238 struct Expression * category;
1239 struct
1240 {
1241 unsigned int conversion : 1;
1242 unsigned int isWatchable : 1;
1243 unsigned int isDBProp : 1;
1244 } ecere_gcc_struct __anon1;
1245 } ecere_gcc_struct;
1246
1247 struct Declaration
1248 {
1249 struct Declaration * prev;
1250 struct Declaration * next;
1251 struct Location loc;
1252 int type;
1253 union
1254 {
1255 struct
1256 {
1257 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1258 struct __ecereNameSpace__ecere__sys__OldList *  declarators;
1259 } ecere_gcc_struct __anon1;
1260 struct Instantiation * inst;
1261 struct
1262 {
1263 struct Identifier * id;
1264 struct Expression * exp;
1265 } ecere_gcc_struct __anon2;
1266 } ecere_gcc_struct __anon1;
1267 struct Specifier * extStorage;
1268 struct Symbol * symbol;
1269 int declMode;
1270 } ecere_gcc_struct;
1271
1272 extern struct Symbol * DeclClassAddNameSpace(struct Specifier * _class, const char *  className);
1273
1274 extern struct Symbol * DeclClass(struct Specifier * _class, const char *  name);
1275
1276 struct ClassDefinition
1277 {
1278 struct ClassDefinition * prev;
1279 struct ClassDefinition * next;
1280 struct Location loc;
1281 struct Specifier * _class;
1282 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
1283 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
1284 struct Symbol * symbol;
1285 struct Location blockStart;
1286 struct Location nameLoc;
1287 int declMode;
1288 unsigned int deleteWatchable;
1289 } ecere_gcc_struct;
1290
1291 extern struct ClassDefinition * MkClass(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs, struct __ecereNameSpace__ecere__sys__OldList * definitions);
1292
1293 extern void SetupBaseSpecs(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs);
1294
1295 struct FunctionDefinition
1296 {
1297 struct FunctionDefinition * prev;
1298 struct FunctionDefinition * next;
1299 struct Location loc;
1300 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1301 struct Declarator * declarator;
1302 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
1303 struct Statement * body;
1304 struct __ecereNameSpace__ecere__com__Class * _class;
1305 struct __ecereNameSpace__ecere__sys__OldList attached;
1306 int declMode;
1307 struct Type * type;
1308 struct Symbol * propSet;
1309 int tempCount;
1310 unsigned int propertyNoThis;
1311 } ecere_gcc_struct;
1312
1313 struct DBTableDef
1314 {
1315 char *  name;
1316 struct Symbol * symbol;
1317 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
1318 int declMode;
1319 } ecere_gcc_struct;
1320
1321 struct External
1322 {
1323 struct External * prev;
1324 struct External * next;
1325 struct Location loc;
1326 int type;
1327 struct Symbol * symbol;
1328 union
1329 {
1330 struct FunctionDefinition * function;
1331 struct ClassDefinition * _class;
1332 struct Declaration * declaration;
1333 char *  importString;
1334 struct Identifier * id;
1335 struct DBTableDef * table;
1336 } ecere_gcc_struct __anon1;
1337 int importType;
1338 struct External * fwdDecl;
1339 struct __ecereNameSpace__ecere__com__Instance * outgoing;
1340 struct __ecereNameSpace__ecere__com__Instance * incoming;
1341 int nonBreakableIncoming;
1342 } ecere_gcc_struct;
1343
1344 extern struct External * MkExternalDBTable(struct DBTableDef * table);
1345
1346 extern struct DBTableDef * MkDBTableDef(char *  name, struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList *  definitions);
1347
1348 struct __ecereNameSpace__ecere__sys__BinaryTree;
1349
1350 struct __ecereNameSpace__ecere__sys__BinaryTree
1351 {
1352 struct __ecereNameSpace__ecere__sys__BTNode * root;
1353 int count;
1354 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
1355 void (*  FreeKey)(void *  key);
1356 } ecere_gcc_struct;
1357
1358 struct __ecereNameSpace__ecere__com__Method;
1359
1360 struct __ecereNameSpace__ecere__com__Method
1361 {
1362 const char *  name;
1363 struct __ecereNameSpace__ecere__com__Method * parent;
1364 struct __ecereNameSpace__ecere__com__Method * left;
1365 struct __ecereNameSpace__ecere__com__Method * right;
1366 int depth;
1367 int (*  function)();
1368 int vid;
1369 int type;
1370 struct __ecereNameSpace__ecere__com__Class * _class;
1371 void *  symbol;
1372 const char *  dataTypeString;
1373 struct Type * dataType;
1374 int memberAccess;
1375 } ecere_gcc_struct;
1376
1377 struct Symbol
1378 {
1379 char *  string;
1380 struct Symbol * parent;
1381 struct Symbol * left;
1382 struct Symbol * right;
1383 int depth;
1384 struct Type * type;
1385 union
1386 {
1387 struct __ecereNameSpace__ecere__com__Method * method;
1388 struct __ecereNameSpace__ecere__com__Property * _property;
1389 struct __ecereNameSpace__ecere__com__Class * registered;
1390 } ecere_gcc_struct __anon1;
1391 unsigned int notYetDeclared;
1392 union
1393 {
1394 struct
1395 {
1396 struct External * pointerExternal;
1397 struct External * structExternal;
1398 } ecere_gcc_struct __anon1;
1399 struct
1400 {
1401 struct External * externalGet;
1402 struct External * externalSet;
1403 struct External * externalPtr;
1404 struct External * externalIsSet;
1405 } ecere_gcc_struct __anon2;
1406 struct
1407 {
1408 struct External * methodExternal;
1409 struct External * methodCodeExternal;
1410 } ecere_gcc_struct __anon3;
1411 } ecere_gcc_struct __anon2;
1412 unsigned int imported;
1413 unsigned int declaredStructSym;
1414 struct __ecereNameSpace__ecere__com__Class * _class;
1415 unsigned int declaredStruct;
1416 unsigned int needConstructor;
1417 unsigned int needDestructor;
1418 char *  constructorName;
1419 char *  structName;
1420 char *  className;
1421 char *  destructorName;
1422 struct ModuleImport * module;
1423 struct ClassImport * _import;
1424 struct Location nameLoc;
1425 unsigned int isParam;
1426 unsigned int isRemote;
1427 unsigned int isStruct;
1428 unsigned int fireWatchersDone;
1429 int declaring;
1430 unsigned int classData;
1431 unsigned int isStatic;
1432 char *  shortName;
1433 struct __ecereNameSpace__ecere__sys__OldList *  templateParams;
1434 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
1435 struct Context * ctx;
1436 int isIterator;
1437 struct Expression * propCategory;
1438 unsigned int mustRegister;
1439 } ecere_gcc_struct;
1440
1441 struct AsmField;
1442
1443 typedef union YYSTYPE
1444 {
1445 int specifierType;
1446 int i;
1447 int declMode;
1448 struct Identifier * id;
1449 struct Expression * exp;
1450 struct Specifier * specifier;
1451 struct __ecereNameSpace__ecere__sys__OldList * list;
1452 struct Enumerator * enumerator;
1453 struct Declarator * declarator;
1454 struct Pointer * pointer;
1455 struct Initializer * initializer;
1456 struct InitDeclarator * initDeclarator;
1457 struct TypeName * typeName;
1458 struct Declaration * declaration;
1459 struct Statement * stmt;
1460 struct FunctionDefinition * function;
1461 struct External * external;
1462 struct Context * context;
1463 struct AsmField * asmField;
1464 struct Attrib * attrib;
1465 struct ExtDecl * extDecl;
1466 struct Attribute * attribute;
1467 struct Instantiation * instance;
1468 struct MembersInit * membersInit;
1469 struct MemberInit * memberInit;
1470 struct ClassFunction * classFunction;
1471 struct ClassDefinition * _class;
1472 struct ClassDef * classDef;
1473 struct PropertyDef * prop;
1474 char * string;
1475 struct Symbol * symbol;
1476 struct PropertyWatch * propertyWatch;
1477 struct TemplateParameter * templateParameter;
1478 struct TemplateArgument * templateArgument;
1479 struct TemplateDatatype * templateDatatype;
1480 struct DBTableEntry * dbtableEntry;
1481 struct DBIndexItem * dbindexItem;
1482 struct DBTableDef * dbtableDef;
1483 } ecere_gcc_struct YYSTYPE;
1484
1485 extern YYSTYPE yylval;
1486
1487 union yyalloc
1488 {
1489 yytype_int16 yyss_alloc;
1490 YYSTYPE yyvs_alloc;
1491 struct Location yyls_alloc;
1492 } ecere_gcc_struct;
1493
1494 static void yy_symbol_value_print(FILE * yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct Location const * const yylocationp)
1495 {
1496 if(!yyvaluep)
1497 return ;
1498 ((void)(yylocationp));
1499 ((void)(yyoutput));
1500 switch(yytype)
1501 {
1502 default:
1503 break;
1504 }
1505 }
1506
1507 YYSTYPE yylval;
1508
1509 extern struct AsmField * MkAsmField(char *  command, struct Expression * expression, struct Identifier * symbolic);
1510
1511 struct AsmField
1512 {
1513 struct AsmField * prev;
1514 struct AsmField * next;
1515 struct Location loc;
1516 char *  command;
1517 struct Expression * expression;
1518 struct Identifier * symbolic;
1519 } ecere_gcc_struct;
1520
1521 static void yy_symbol_print(FILE * yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct Location const * const yylocationp)
1522 {
1523 if(yytype < 145)
1524 fprintf(yyoutput, "token %s (", yytname[yytype]);
1525 else
1526 fprintf(yyoutput, "nterm %s (", yytname[yytype]);
1527 ((void)0);
1528 fprintf(yyoutput, ": ");
1529 yy_symbol_value_print(yyoutput, yytype, yyvaluep, yylocationp);
1530 fprintf(yyoutput, ")");
1531 }
1532
1533 static void yy_reduce_print(YYSTYPE * yyvsp, struct Location * yylsp, int yyrule)
1534 {
1535 int yynrhs = yyr2[yyrule];
1536 int yyi;
1537 unsigned long int yylno = yyrline[yyrule];
1538
1539 fprintf((bsl_stderr()), "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno);
1540 for(yyi = 0; yyi < yynrhs; yyi++)
1541 {
1542 fprintf((bsl_stderr()), "   $%d = ", yyi + 1);
1543 yy_symbol_print((bsl_stderr()), yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]), &(yylsp[(yyi + 1) - (yynrhs)]));
1544 fprintf((bsl_stderr()), "\n");
1545 }
1546 }
1547
1548 struct __ecereNameSpace__ecere__com__NameSpace;
1549
1550 struct __ecereNameSpace__ecere__com__NameSpace
1551 {
1552 const char *  name;
1553 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
1554 struct __ecereNameSpace__ecere__com__NameSpace *  left;
1555 struct __ecereNameSpace__ecere__com__NameSpace *  right;
1556 int depth;
1557 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
1558 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1559 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1560 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1561 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1562 } ecere_gcc_struct;
1563
1564 struct __ecereNameSpace__ecere__com__Application
1565 {
1566 int argc;
1567 const char * *  argv;
1568 int exitCode;
1569 unsigned int isGUIApp;
1570 struct __ecereNameSpace__ecere__sys__OldList allModules;
1571 char *  parsedCommand;
1572 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1573 } ecere_gcc_struct;
1574
1575 struct __ecereNameSpace__ecere__com__DataMember;
1576
1577 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
1578 {
1579 union
1580 {
1581 struct
1582 {
1583 const char *  dataTypeString;
1584 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
1585 } ecere_gcc_struct __anon1;
1586 struct __ecereNameSpace__ecere__com__DataValue expression;
1587 struct
1588 {
1589 const char *  memberString;
1590 union
1591 {
1592 struct __ecereNameSpace__ecere__com__DataMember * member;
1593 struct __ecereNameSpace__ecere__com__Property * prop;
1594 struct __ecereNameSpace__ecere__com__Method * method;
1595 } ecere_gcc_struct __anon1;
1596 } ecere_gcc_struct __anon2;
1597 } ecere_gcc_struct __anon1;
1598 } ecere_gcc_struct;
1599
1600 struct __ecereNameSpace__ecere__com__DataMember
1601 {
1602 struct __ecereNameSpace__ecere__com__DataMember * prev;
1603 struct __ecereNameSpace__ecere__com__DataMember * next;
1604 const char *  name;
1605 unsigned int isProperty;
1606 int memberAccess;
1607 int id;
1608 struct __ecereNameSpace__ecere__com__Class * _class;
1609 const char *  dataTypeString;
1610 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
1611 struct Type * dataType;
1612 int type;
1613 int offset;
1614 int memberID;
1615 struct __ecereNameSpace__ecere__sys__OldList members;
1616 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
1617 int memberOffset;
1618 short structAlignment;
1619 short pointerAlignment;
1620 } ecere_gcc_struct;
1621
1622 struct __ecereNameSpace__ecere__com__Module;
1623
1624 struct __ecereNameSpace__ecere__com__Module
1625 {
1626 struct __ecereNameSpace__ecere__com__Instance * application;
1627 struct __ecereNameSpace__ecere__sys__OldList classes;
1628 struct __ecereNameSpace__ecere__sys__OldList defines;
1629 struct __ecereNameSpace__ecere__sys__OldList functions;
1630 struct __ecereNameSpace__ecere__sys__OldList modules;
1631 struct __ecereNameSpace__ecere__com__Instance * prev;
1632 struct __ecereNameSpace__ecere__com__Instance * next;
1633 const char *  name;
1634 void *  library;
1635 void *  Unload;
1636 int importType;
1637 int origImportType;
1638 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1639 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1640 } ecere_gcc_struct;
1641
1642 struct __ecereNameSpace__ecere__com__Class
1643 {
1644 struct __ecereNameSpace__ecere__com__Class * prev;
1645 struct __ecereNameSpace__ecere__com__Class * next;
1646 const char *  name;
1647 int offset;
1648 int structSize;
1649 void * *  _vTbl;
1650 int vTblSize;
1651 unsigned int (*  Constructor)(void * );
1652 void (*  Destructor)(void * );
1653 int offsetClass;
1654 int sizeClass;
1655 struct __ecereNameSpace__ecere__com__Class * base;
1656 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
1657 struct __ecereNameSpace__ecere__sys__BinaryTree members;
1658 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
1659 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
1660 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
1661 struct __ecereNameSpace__ecere__sys__OldList derivatives;
1662 int memberID;
1663 int startMemberID;
1664 int type;
1665 struct __ecereNameSpace__ecere__com__Instance * module;
1666 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
1667 const char *  dataTypeString;
1668 struct Type * dataType;
1669 int typeSize;
1670 int defaultAlignment;
1671 void (*  Initialize)();
1672 int memberOffset;
1673 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
1674 const char *  designerClass;
1675 unsigned int noExpansion;
1676 const char *  defaultProperty;
1677 unsigned int comRedefinition;
1678 int count;
1679 int isRemote;
1680 unsigned int internalDecl;
1681 void *  data;
1682 unsigned int computeSize;
1683 short structAlignment;
1684 short pointerAlignment;
1685 int destructionWatchOffset;
1686 unsigned int fixed;
1687 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
1688 int inheritanceAccess;
1689 const char *  fullName;
1690 void *  symbol;
1691 struct __ecereNameSpace__ecere__sys__OldList conversions;
1692 struct __ecereNameSpace__ecere__sys__OldList templateParams;
1693 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
1694 struct __ecereNameSpace__ecere__com__Class * templateClass;
1695 struct __ecereNameSpace__ecere__sys__OldList templatized;
1696 int numParams;
1697 unsigned int isInstanceClass;
1698 unsigned int byValueSystemClass;
1699 } ecere_gcc_struct;
1700
1701 void __ecereRegisterModule_grammar(struct __ecereNameSpace__ecere__com__Instance * module)
1702 {
1703 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
1704
1705 }
1706
1707 void __ecereUnregisterModule_grammar(struct __ecereNameSpace__ecere__com__Instance * module)
1708 {
1709
1710 }
1711
1712 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
1713
1714 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1715
1716 static void yydestruct(const char * yymsg, int yytype, YYSTYPE * yyvaluep, struct Location * yylocationp)
1717 {
1718 ((void)(yyvaluep));
1719 ((void)(yylocationp));
1720 if(!yymsg)
1721 yymsg = "Deleting";
1722 do
1723 {
1724 if(yydebug)
1725 {
1726 fprintf((bsl_stderr()), "%s ", yymsg);
1727 yy_symbol_print((bsl_stderr()), yytype, yyvaluep, yylocationp);
1728 fprintf((bsl_stderr()), "\n");
1729 }
1730 }while((0));
1731 switch(yytype)
1732 {
1733 case 146:
1734 {
1735 FreeSpecifier((*yyvaluep).specifier);
1736 }
1737 ;
1738 break;
1739 case 147:
1740 {
1741 FreeSpecifier((*yyvaluep).specifier);
1742 }
1743 ;
1744 break;
1745 case 148:
1746 {
1747 FreeSpecifier((*yyvaluep).specifier);
1748 }
1749 ;
1750 break;
1751 case 149:
1752 {
1753 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
1754 }
1755 ;
1756 break;
1757 case 150:
1758 {
1759 FreeSpecifier((*yyvaluep).specifier);
1760 }
1761 ;
1762 break;
1763 case 151:
1764 {
1765 FreeClassFunction((*yyvaluep).classFunction);
1766 }
1767 ;
1768 break;
1769 case 152:
1770 {
1771 FreeClassFunction((*yyvaluep).classFunction);
1772 }
1773 ;
1774 break;
1775 case 153:
1776 {
1777 FreeClassFunction((*yyvaluep).classFunction);
1778 }
1779 ;
1780 break;
1781 case 154:
1782 {
1783 FreeClassFunction((*yyvaluep).classFunction);
1784 }
1785 ;
1786 break;
1787 case 155:
1788 {
1789 FreeClassFunction((*yyvaluep).classFunction);
1790 }
1791 ;
1792 break;
1793 case 156:
1794 {
1795 FreeClassFunction((*yyvaluep).classFunction);
1796 }
1797 ;
1798 break;
1799 case 157:
1800 {
1801 FreeClassFunction((*yyvaluep).classFunction);
1802 }
1803 ;
1804 break;
1805 case 158:
1806 {
1807 FreeClassFunction((*yyvaluep).classFunction);
1808 }
1809 ;
1810 break;
1811 case 159:
1812 {
1813 FreeClassFunction((*yyvaluep).classFunction);
1814 }
1815 ;
1816 break;
1817 case 160:
1818 {
1819 FreeClassFunction((*yyvaluep).classFunction);
1820 }
1821 ;
1822 break;
1823 case 161:
1824 {
1825 FreeClassFunction((*yyvaluep).classFunction);
1826 }
1827 ;
1828 break;
1829 case 162:
1830 {
1831 FreeClassFunction((*yyvaluep).classFunction);
1832 }
1833 ;
1834 break;
1835 case 163:
1836 {
1837 FreeMemberInit((*yyvaluep).memberInit);
1838 }
1839 ;
1840 break;
1841 case 164:
1842 {
1843 FreeMemberInit((*yyvaluep).memberInit);
1844 }
1845 ;
1846 break;
1847 case 165:
1848 {
1849 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1850 }
1851 ;
1852 break;
1853 case 166:
1854 {
1855 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1856 }
1857 ;
1858 break;
1859 case 167:
1860 {
1861 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1862 }
1863 ;
1864 break;
1865 case 168:
1866 {
1867 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1868 }
1869 ;
1870 break;
1871 case 169:
1872 {
1873 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1874 }
1875 ;
1876 break;
1877 case 170:
1878 {
1879 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1880 }
1881 ;
1882 break;
1883 case 171:
1884 {
1885 FreeInstance((*yyvaluep).instance);
1886 }
1887 ;
1888 break;
1889 case 172:
1890 {
1891 FreeInstance((*yyvaluep).instance);
1892 }
1893 ;
1894 break;
1895 case 176:
1896 {
1897 FreeInstance((*yyvaluep).instance);
1898 }
1899 ;
1900 break;
1901 case 177:
1902 {
1903 FreeInstance((*yyvaluep).instance);
1904 }
1905 ;
1906 break;
1907 case 180:
1908 {
1909 FreeMemberInit((*yyvaluep).memberInit);
1910 }
1911 ;
1912 break;
1913 case 181:
1914 {
1915 FreeMemberInit((*yyvaluep).memberInit);
1916 }
1917 ;
1918 break;
1919 case 182:
1920 {
1921 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1922 }
1923 ;
1924 break;
1925 case 183:
1926 {
1927 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1928 }
1929 ;
1930 break;
1931 case 186:
1932 {
1933 FreeProperty((*yyvaluep).prop);
1934 }
1935 ;
1936 break;
1937 case 197:
1938 {
1939 FreeClassDef((*yyvaluep).classDef);
1940 }
1941 ;
1942 break;
1943 case 198:
1944 {
1945 FreeClassDef((*yyvaluep).classDef);
1946 }
1947 ;
1948 break;
1949 case 199:
1950 {
1951 FreeList((*yyvaluep).list, (void *)(FreeClassDef));
1952 }
1953 ;
1954 break;
1955 case 200:
1956 {
1957 FreeList((*yyvaluep).list, (void *)(FreeClassDef));
1958 }
1959 ;
1960 break;
1961 case 201:
1962 {
1963 FreeTemplateDataType((*yyvaluep).templateDatatype);
1964 }
1965 ;
1966 break;
1967 case 202:
1968 {
1969 FreeTemplateArgument((*yyvaluep).templateArgument);
1970 }
1971 ;
1972 break;
1973 case 203:
1974 {
1975 FreeTemplateParameter((*yyvaluep).templateParameter);
1976 }
1977 ;
1978 break;
1979 case 204:
1980 {
1981 FreeTemplateArgument((*yyvaluep).templateArgument);
1982 }
1983 ;
1984 break;
1985 case 205:
1986 {
1987 FreeTemplateParameter((*yyvaluep).templateParameter);
1988 }
1989 ;
1990 break;
1991 case 206:
1992 {
1993 FreeTemplateArgument((*yyvaluep).templateArgument);
1994 }
1995 ;
1996 break;
1997 case 207:
1998 {
1999 FreeTemplateParameter((*yyvaluep).templateParameter);
2000 }
2001 ;
2002 break;
2003 case 208:
2004 {
2005 FreeTemplateParameter((*yyvaluep).templateParameter);
2006 }
2007 ;
2008 break;
2009 case 209:
2010 {
2011 FreeList((*yyvaluep).list, (void *)(FreeTemplateParameter));
2012 }
2013 ;
2014 break;
2015 case 210:
2016 {
2017 FreeTemplateArgument((*yyvaluep).templateArgument);
2018 }
2019 ;
2020 break;
2021 case 211:
2022 {
2023 FreeList((*yyvaluep).list, (void *)(FreeTemplateArgument));
2024 }
2025 ;
2026 break;
2027 case 212:
2028 {
2029 struct Context * ctx = curContext;
2030
2031 PopContext(ctx);
2032 FreeContext(ctx);
2033 ((ctx ? __extension__ ({
2034 void * __ecerePtrToDelete = (ctx);
2035
2036 __ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
2037 }) : 0), ctx = 0);
2038 }
2039 ;
2040 break;
2041 case 213:
2042 {
2043 struct Context * ctx = curContext;
2044
2045 PopContext(ctx);
2046 FreeContext(ctx);
2047 ((ctx ? __extension__ ({
2048 void * __ecerePtrToDelete = (ctx);
2049
2050 __ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
2051 }) : 0), ctx = 0);
2052 }
2053 ;
2054 break;
2055 case 214:
2056 {
2057 FreeClass((*yyvaluep)._class);
2058 }
2059 ;
2060 break;
2061 case 215:
2062 {
2063 FreeClass((*yyvaluep)._class);
2064 }
2065 ;
2066 break;
2067 case 216:
2068 {
2069 FreeClass((*yyvaluep)._class);
2070 }
2071 ;
2072 break;
2073 case 217:
2074 {
2075 FreeIdentifier((*yyvaluep).id);
2076 }
2077 ;
2078 break;
2079 case 218:
2080 {
2081 FreeExpression((*yyvaluep).exp);
2082 }
2083 ;
2084 break;
2085 case 219:
2086 {
2087 FreeExpression((*yyvaluep).exp);
2088 }
2089 ;
2090 break;
2091 case 224:
2092 {
2093 FreeExpression((*yyvaluep).exp);
2094 }
2095 ;
2096 break;
2097 case 225:
2098 {
2099 FreeExpression((*yyvaluep).exp);
2100 }
2101 ;
2102 break;
2103 case 226:
2104 {
2105 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2106 }
2107 ;
2108 break;
2109 case 227:
2110 {
2111 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2112 }
2113 ;
2114 break;
2115 case 229:
2116 {
2117 FreeExpression((*yyvaluep).exp);
2118 }
2119 ;
2120 break;
2121 case 231:
2122 {
2123 FreeExpression((*yyvaluep).exp);
2124 }
2125 ;
2126 break;
2127 case 232:
2128 {
2129 FreeExpression((*yyvaluep).exp);
2130 }
2131 ;
2132 break;
2133 case 233:
2134 {
2135 FreeExpression((*yyvaluep).exp);
2136 }
2137 ;
2138 break;
2139 case 234:
2140 {
2141 FreeExpression((*yyvaluep).exp);
2142 }
2143 ;
2144 break;
2145 case 236:
2146 {
2147 FreeExpression((*yyvaluep).exp);
2148 }
2149 ;
2150 break;
2151 case 237:
2152 {
2153 FreeExpression((*yyvaluep).exp);
2154 }
2155 ;
2156 break;
2157 case 238:
2158 {
2159 FreeExpression((*yyvaluep).exp);
2160 }
2161 ;
2162 break;
2163 case 239:
2164 {
2165 FreeExpression((*yyvaluep).exp);
2166 }
2167 ;
2168 break;
2169 case 240:
2170 {
2171 FreeExpression((*yyvaluep).exp);
2172 }
2173 ;
2174 break;
2175 case 241:
2176 {
2177 FreeExpression((*yyvaluep).exp);
2178 }
2179 ;
2180 break;
2181 case 242:
2182 {
2183 FreeExpression((*yyvaluep).exp);
2184 }
2185 ;
2186 break;
2187 case 243:
2188 {
2189 FreeExpression((*yyvaluep).exp);
2190 }
2191 ;
2192 break;
2193 case 244:
2194 {
2195 FreeExpression((*yyvaluep).exp);
2196 }
2197 ;
2198 break;
2199 case 246:
2200 {
2201 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2202 }
2203 ;
2204 break;
2205 case 248:
2206 {
2207 FreeExpression((*yyvaluep).exp);
2208 }
2209 ;
2210 break;
2211 case 250:
2212 {
2213 FreeExpression((*yyvaluep).exp);
2214 }
2215 ;
2216 break;
2217 case 251:
2218 {
2219 FreeExpression((*yyvaluep).exp);
2220 }
2221 ;
2222 break;
2223 case 252:
2224 {
2225 FreeExpression((*yyvaluep).exp);
2226 }
2227 ;
2228 break;
2229 case 253:
2230 {
2231 FreeExpression((*yyvaluep).exp);
2232 }
2233 ;
2234 break;
2235 case 254:
2236 {
2237 FreeExpression((*yyvaluep).exp);
2238 }
2239 ;
2240 break;
2241 case 255:
2242 {
2243 FreeExpression((*yyvaluep).exp);
2244 }
2245 ;
2246 break;
2247 case 256:
2248 {
2249 FreeExpression((*yyvaluep).exp);
2250 }
2251 ;
2252 break;
2253 case 257:
2254 {
2255 FreeExpression((*yyvaluep).exp);
2256 }
2257 ;
2258 break;
2259 case 258:
2260 {
2261 FreeExpression((*yyvaluep).exp);
2262 }
2263 ;
2264 break;
2265 case 259:
2266 {
2267 FreeExpression((*yyvaluep).exp);
2268 }
2269 ;
2270 break;
2271 case 260:
2272 {
2273 FreeExpression((*yyvaluep).exp);
2274 }
2275 ;
2276 break;
2277 case 261:
2278 {
2279 FreeExpression((*yyvaluep).exp);
2280 }
2281 ;
2282 break;
2283 case 262:
2284 {
2285 FreeExpression((*yyvaluep).exp);
2286 }
2287 ;
2288 break;
2289 case 263:
2290 {
2291 FreeExpression((*yyvaluep).exp);
2292 }
2293 ;
2294 break;
2295 case 264:
2296 {
2297 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2298 }
2299 ;
2300 break;
2301 case 266:
2302 {
2303 FreeExpression((*yyvaluep).exp);
2304 }
2305 ;
2306 break;
2307 case 267:
2308 {
2309 FreeExpression((*yyvaluep).exp);
2310 }
2311 ;
2312 break;
2313 case 268:
2314 {
2315 FreeSpecifier((*yyvaluep).specifier);
2316 }
2317 ;
2318 break;
2319 case 269:
2320 {
2321 FreeSpecifier((*yyvaluep).specifier);
2322 }
2323 ;
2324 break;
2325 case 270:
2326 {
2327 FreeEnumerator((*yyvaluep).enumerator);
2328 }
2329 ;
2330 break;
2331 case 271:
2332 {
2333 FreeList((*yyvaluep).list, (void *)(FreeEnumerator));
2334 }
2335 ;
2336 break;
2337 case 273:
2338 {
2339 FreeSpecifier((*yyvaluep).specifier);
2340 }
2341 ;
2342 break;
2343 case 274:
2344 {
2345 FreeSpecifier((*yyvaluep).specifier);
2346 }
2347 ;
2348 break;
2349 case 275:
2350 {
2351 FreeSpecifier((*yyvaluep).specifier);
2352 }
2353 ;
2354 break;
2355 case 277:
2356 {
2357 FreeSpecifier((*yyvaluep).specifier);
2358 }
2359 ;
2360 break;
2361 case 278:
2362 {
2363 FreeSpecifier((*yyvaluep).specifier);
2364 }
2365 ;
2366 break;
2367 case 279:
2368 {
2369 FreeSpecifier((*yyvaluep).specifier);
2370 }
2371 ;
2372 break;
2373 case 280:
2374 {
2375 FreeSpecifier((*yyvaluep).specifier);
2376 }
2377 ;
2378 break;
2379 case 281:
2380 {
2381 FreeSpecifier((*yyvaluep).specifier);
2382 }
2383 ;
2384 break;
2385 case 282:
2386 {
2387 FreeSpecifier((*yyvaluep).specifier);
2388 }
2389 ;
2390 break;
2391 case 283:
2392 {
2393 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2394 }
2395 ;
2396 break;
2397 case 284:
2398 {
2399 FreeSpecifier((*yyvaluep).specifier);
2400 }
2401 ;
2402 break;
2403 case 285:
2404 {
2405 FreeSpecifier((*yyvaluep).specifier);
2406 }
2407 ;
2408 break;
2409 case 286:
2410 {
2411 FreeDeclarator((*yyvaluep).declarator);
2412 }
2413 ;
2414 break;
2415 case 287:
2416 {
2417 FreeList((*yyvaluep).list, (void *)(FreeDeclarator));
2418 }
2419 ;
2420 break;
2421 case 288:
2422 {
2423 FreeSpecifier((*yyvaluep).specifier);
2424 }
2425 ;
2426 break;
2427 case 289:
2428 {
2429 FreeSpecifier((*yyvaluep).specifier);
2430 }
2431 ;
2432 break;
2433 case 290:
2434 {
2435 FreeSpecifier((*yyvaluep).specifier);
2436 }
2437 ;
2438 break;
2439 case 291:
2440 {
2441 FreeSpecifier((*yyvaluep).specifier);
2442 }
2443 ;
2444 break;
2445 case 292:
2446 {
2447 FreeSpecifier((*yyvaluep).specifier);
2448 }
2449 ;
2450 break;
2451 case 293:
2452 {
2453 FreeSpecifier((*yyvaluep).specifier);
2454 }
2455 ;
2456 break;
2457 case 294:
2458 {
2459 FreeSpecifier((*yyvaluep).specifier);
2460 }
2461 ;
2462 break;
2463 case 295:
2464 {
2465 FreeSpecifier((*yyvaluep).specifier);
2466 }
2467 ;
2468 break;
2469 case 297:
2470 {
2471 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2472 }
2473 ;
2474 break;
2475 case 298:
2476 {
2477 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2478 }
2479 ;
2480 break;
2481 case 299:
2482 {
2483 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2484 }
2485 ;
2486 break;
2487 case 300:
2488 {
2489 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2490 }
2491 ;
2492 break;
2493 case 301:
2494 {
2495 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2496 }
2497 ;
2498 break;
2499 case 302:
2500 {
2501 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2502 }
2503 ;
2504 break;
2505 case 303:
2506 {
2507 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2508 }
2509 ;
2510 break;
2511 case 304:
2512 {
2513 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2514 }
2515 ;
2516 break;
2517 case 308:
2518 {
2519 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2520 }
2521 ;
2522 break;
2523 case 309:
2524 {
2525 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2526 }
2527 ;
2528 break;
2529 case 310:
2530 {
2531 FreeDeclarator((*yyvaluep).declarator);
2532 }
2533 ;
2534 break;
2535 case 311:
2536 {
2537 FreeDeclarator((*yyvaluep).declarator);
2538 }
2539 ;
2540 break;
2541 case 312:
2542 {
2543 FreeDeclarator((*yyvaluep).declarator);
2544 }
2545 ;
2546 break;
2547 case 313:
2548 {
2549 FreeDeclarator((*yyvaluep).declarator);
2550 }
2551 ;
2552 break;
2553 case 314:
2554 {
2555 FreeDeclarator((*yyvaluep).declarator);
2556 }
2557 ;
2558 break;
2559 case 315:
2560 {
2561 FreeDeclarator((*yyvaluep).declarator);
2562 }
2563 ;
2564 break;
2565 case 316:
2566 {
2567 FreeDeclarator((*yyvaluep).declarator);
2568 }
2569 ;
2570 break;
2571 case 317:
2572 {
2573 FreeDeclarator((*yyvaluep).declarator);
2574 }
2575 ;
2576 break;
2577 case 318:
2578 {
2579 FreeDeclarator((*yyvaluep).declarator);
2580 }
2581 ;
2582 break;
2583 case 319:
2584 {
2585 FreeDeclarator((*yyvaluep).declarator);
2586 }
2587 ;
2588 break;
2589 case 320:
2590 {
2591 FreeExtDecl((*yyvaluep).extDecl);
2592 }
2593 ;
2594 break;
2595 case 322:
2596 {
2597 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
2598 }
2599 ;
2600 break;
2601 case 323:
2602 {
2603 FreeAttribute((*yyvaluep).attribute);
2604 }
2605 ;
2606 break;
2607 case 324:
2608 {
2609 FreeList((*yyvaluep).list, (void *)(FreeAttribute));
2610 }
2611 ;
2612 break;
2613 case 325:
2614 {
2615 FreeAttrib((*yyvaluep).attrib);
2616 }
2617 ;
2618 break;
2619 case 326:
2620 {
2621 FreeDeclarator((*yyvaluep).declarator);
2622 }
2623 ;
2624 break;
2625 case 327:
2626 {
2627 FreeDeclarator((*yyvaluep).declarator);
2628 }
2629 ;
2630 break;
2631 case 328:
2632 {
2633 FreePointer((*yyvaluep).pointer);
2634 }
2635 ;
2636 break;
2637 case 329:
2638 {
2639 FreeDeclarator((*yyvaluep).declarator);
2640 }
2641 ;
2642 break;
2643 case 330:
2644 {
2645 FreeDeclarator((*yyvaluep).declarator);
2646 }
2647 ;
2648 break;
2649 case 331:
2650 {
2651 FreeDeclarator((*yyvaluep).declarator);
2652 }
2653 ;
2654 break;
2655 case 332:
2656 {
2657 FreeDeclarator((*yyvaluep).declarator);
2658 }
2659 ;
2660 break;
2661 case 333:
2662 {
2663 FreeDeclarator((*yyvaluep).declarator);
2664 }
2665 ;
2666 break;
2667 case 334:
2668 {
2669 FreeDeclarator((*yyvaluep).declarator);
2670 }
2671 ;
2672 break;
2673 case 335:
2674 {
2675 FreeDeclarator((*yyvaluep).declarator);
2676 }
2677 ;
2678 break;
2679 case 336:
2680 {
2681 FreeDeclarator((*yyvaluep).declarator);
2682 }
2683 ;
2684 break;
2685 case 337:
2686 {
2687 FreeDeclarator((*yyvaluep).declarator);
2688 }
2689 ;
2690 break;
2691 case 338:
2692 {
2693 FreeInitializer((*yyvaluep).initializer);
2694 }
2695 ;
2696 break;
2697 case 339:
2698 {
2699 FreeInitializer((*yyvaluep).initializer);
2700 }
2701 ;
2702 break;
2703 case 340:
2704 {
2705 FreeInitializer((*yyvaluep).initializer);
2706 }
2707 ;
2708 break;
2709 case 341:
2710 {
2711 FreeInitializer((*yyvaluep).initializer);
2712 }
2713 ;
2714 break;
2715 case 342:
2716 {
2717 FreeList((*yyvaluep).list, (void *)(FreeInitializer));
2718 }
2719 ;
2720 break;
2721 case 343:
2722 {
2723 FreeInitDeclarator((*yyvaluep).initDeclarator);
2724 }
2725 ;
2726 break;
2727 case 344:
2728 {
2729 FreeInitDeclarator((*yyvaluep).initDeclarator);
2730 }
2731 ;
2732 break;
2733 case 345:
2734 {
2735 FreeList((*yyvaluep).list, (void *)(FreeInitDeclarator));
2736 }
2737 ;
2738 break;
2739 case 346:
2740 {
2741 FreeList((*yyvaluep).list, (void *)(FreeInitDeclarator));
2742 }
2743 ;
2744 break;
2745 case 347:
2746 {
2747 FreeTypeName((*yyvaluep).typeName);
2748 }
2749 ;
2750 break;
2751 case 348:
2752 {
2753 FreeTypeName((*yyvaluep).typeName);
2754 }
2755 ;
2756 break;
2757 case 349:
2758 {
2759 FreeTypeName((*yyvaluep).typeName);
2760 }
2761 ;
2762 break;
2763 case 350:
2764 {
2765 FreeTypeName((*yyvaluep).typeName);
2766 }
2767 ;
2768 break;
2769 case 351:
2770 {
2771 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2772 }
2773 ;
2774 break;
2775 case 352:
2776 {
2777 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2778 }
2779 ;
2780 break;
2781 case 353:
2782 {
2783 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2784 }
2785 ;
2786 break;
2787 case 354:
2788 {
2789 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2790 }
2791 ;
2792 break;
2793 case 355:
2794 {
2795 FreeStatement((*yyvaluep).stmt);
2796 }
2797 ;
2798 break;
2799 case 356:
2800 {
2801 FreeStatement((*yyvaluep).stmt);
2802 }
2803 ;
2804 break;
2805 case 360:
2806 {
2807 FreeStatement((*yyvaluep).stmt);
2808 }
2809 ;
2810 break;
2811 case 361:
2812 {
2813 FreeStatement((*yyvaluep).stmt);
2814 }
2815 ;
2816 break;
2817 case 362:
2818 {
2819 }
2820 ;
2821 break;
2822 case 364:
2823 {
2824 FreeDeclaration((*yyvaluep).declaration);
2825 }
2826 ;
2827 break;
2828 case 368:
2829 {
2830 FreeList((*yyvaluep).list, (void *)(FreeDeclaration));
2831 }
2832 ;
2833 break;
2834 case 369:
2835 {
2836 FreeList((*yyvaluep).list, (void *)(FreeDeclaration));
2837 }
2838 ;
2839 break;
2840 case 370:
2841 {
2842 FreeList((*yyvaluep).list, (void *)(FreeStatement));
2843 }
2844 ;
2845 break;
2846 case 371:
2847 {
2848 FreeList((*yyvaluep).list, (void *)(FreeStatement));
2849 }
2850 ;
2851 break;
2852 case 372:
2853 {
2854 FreeStatement((*yyvaluep).stmt);
2855 }
2856 ;
2857 break;
2858 case 373:
2859 {
2860 FreeStatement((*yyvaluep).stmt);
2861 }
2862 ;
2863 break;
2864 case 374:
2865 {
2866 PopContext((*yyvaluep).context);
2867 FreeContext((*yyvaluep).context);
2868 (((*yyvaluep).context ? __extension__ ({
2869 void * __ecerePtrToDelete = ((*yyvaluep).context);
2870
2871 __ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
2872 }) : 0), (*yyvaluep).context = 0);
2873 }
2874 ;
2875 break;
2876 case 375:
2877 {
2878 FreeStatement((*yyvaluep).stmt);
2879 }
2880 ;
2881 break;
2882 case 376:
2883 {
2884 FreeStatement((*yyvaluep).stmt);
2885 }
2886 ;
2887 break;
2888 case 377:
2889 {
2890 FreeStatement((*yyvaluep).stmt);
2891 }
2892 ;
2893 break;
2894 case 378:
2895 {
2896 FreeStatement((*yyvaluep).stmt);
2897 }
2898 ;
2899 break;
2900 case 379:
2901 {
2902 FreeStatement((*yyvaluep).stmt);
2903 }
2904 ;
2905 break;
2906 case 380:
2907 {
2908 FreeStatement((*yyvaluep).stmt);
2909 }
2910 ;
2911 break;
2912 case 381:
2913 {
2914 FreeStatement((*yyvaluep).stmt);
2915 }
2916 ;
2917 break;
2918 case 382:
2919 {
2920 FreeStatement((*yyvaluep).stmt);
2921 }
2922 ;
2923 break;
2924 case 383:
2925 {
2926 FreeStatement((*yyvaluep).stmt);
2927 }
2928 ;
2929 break;
2930 case 384:
2931 {
2932 FreeFunction((*yyvaluep).function);
2933 }
2934 ;
2935 break;
2936 case 385:
2937 {
2938 FreeFunction((*yyvaluep).function);
2939 }
2940 ;
2941 break;
2942 case 386:
2943 {
2944 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
2945 }
2946 ;
2947 break;
2948 case 387:
2949 {
2950 FreeExternal((*yyvaluep).external);
2951 }
2952 ;
2953 break;
2954 case 388:
2955 {
2956 FreeExternal((*yyvaluep).external);
2957 }
2958 ;
2959 break;
2960 case 389:
2961 {
2962 if((*yyvaluep).list != ast)
2963 FreeList((*yyvaluep).list, (void *)(FreeExternal));
2964 }
2965 ;
2966 break;
2967 case 390:
2968 {
2969 if((*yyvaluep).list != ast)
2970 FreeList((*yyvaluep).list, (void *)(FreeExternal));
2971 }
2972 ;
2973 break;
2974 default:
2975 break;
2976 }
2977 }
2978
2979 int yyparse(void)
2980 {
2981 int yystate;
2982 int yyerrstatus;
2983 yytype_int16 yyssa[200];
2984 yytype_int16 * yyss;
2985 yytype_int16 * yyssp;
2986 YYSTYPE yyvsa[200];
2987 YYSTYPE * yyvs;
2988 YYSTYPE * yyvsp;
2989 struct Location yylsa[200];
2990 struct Location * yyls;
2991 struct Location * yylsp;
2992 struct Location yyerror_range[2];
2993 size_t yystacksize;
2994 int yyn;
2995 int yyresult;
2996 int yytoken;
2997 YYSTYPE yyval;
2998 struct Location yyloc;
2999 int yylen = 0;
3000
3001 yytoken = 0;
3002 yyss = yyssa;
3003 yyvs = yyvsa;
3004 yyls = yylsa;
3005 yystacksize = 200;
3006 do
3007 {
3008 if(yydebug)
3009 fprintf((bsl_stderr()), "Starting parse\n");
3010 }while((0));
3011 yystate = 0;
3012 yyerrstatus = 0;
3013 yynerrs = 0;
3014 yychar = (-2);
3015 yyssp = yyss;
3016 yyvsp = yyvs;
3017 yylsp = yyls;
3018 goto yysetstate;
3019 yynewstate:
3020 yyssp++;
3021 yysetstate:
3022 *yyssp = yystate;
3023 if(yyss + yystacksize - 1 <= yyssp)
3024 {
3025 size_t yysize = yyssp - yyss + 1;
3026
3027 if(10000 <= yystacksize)
3028 goto yyexhaustedlab;
3029 yystacksize *= 2;
3030 if(10000 < yystacksize)
3031 yystacksize = 10000;
3032 {
3033 yytype_int16 * yyss1 = yyss;
3034 union yyalloc * yyptr = (union yyalloc *)malloc(((yystacksize) * (sizeof(yytype_int16) + sizeof(YYSTYPE) + sizeof(struct Location)) + 2 * (sizeof(union yyalloc) - 1)));
3035
3036 if(!yyptr)
3037 goto yyexhaustedlab;
3038 do
3039 {
3040 size_t yynewbytes;
3041
3042 __builtin_memcpy(&(*yyptr).yyss_alloc, yyss, (yysize) * sizeof (*(yyss)));
3043 yyss = &(*yyptr).yyss_alloc;
3044 yynewbytes = yystacksize * sizeof (*yyss) + (sizeof(union yyalloc) - 1);
3045 yyptr += yynewbytes / sizeof (*yyptr);
3046 }while((0));
3047 do
3048 {
3049 size_t yynewbytes;
3050
3051 __builtin_memcpy(&(*yyptr).yyvs_alloc, yyvs, (yysize) * sizeof (*(yyvs)));
3052 yyvs = &(*yyptr).yyvs_alloc;
3053 yynewbytes = yystacksize * sizeof (*yyvs) + (sizeof(union yyalloc) - 1);
3054 yyptr += yynewbytes / sizeof (*yyptr);
3055 }while((0));
3056 do
3057 {
3058 size_t yynewbytes;
3059
3060 __builtin_memcpy(&(*yyptr).yyls_alloc, yyls, (yysize) * sizeof (*(yyls)));
3061 yyls = &(*yyptr).yyls_alloc;
3062 yynewbytes = yystacksize * sizeof (*yyls) + (sizeof(union yyalloc) - 1);
3063 yyptr += yynewbytes / sizeof (*yyptr);
3064 }while((0));
3065 if(yyss1 != yyssa)
3066 free(yyss1);
3067 }
3068 yyssp = yyss + yysize - 1;
3069 yyvsp = yyvs + yysize - 1;
3070 yylsp = yyls + yysize - 1;
3071 do
3072 {
3073 if(yydebug)
3074 fprintf((bsl_stderr()), "Stack size increased to %lu\n", (unsigned long int)yystacksize);
3075 }while((0));
3076 if(yyss + yystacksize - 1 <= yyssp)
3077 goto yyabortlab;
3078 }
3079 do
3080 {
3081 if(yydebug)
3082 fprintf((bsl_stderr()), "Entering state %d\n", yystate);
3083 }while((0));
3084 if(yystate == 295)
3085 goto yyacceptlab;
3086 goto yybackup;
3087 yybackup:
3088 yyn = yypact[yystate];
3089 if(yyn == -1899)
3090 goto yydefault;
3091 if(yychar == (-2))
3092 {
3093 do
3094 {
3095 if(yydebug)
3096 fprintf((bsl_stderr()), "Reading a token: ");
3097 }while((0));
3098 yychar = yylex();
3099 }
3100 if(yychar <= 0)
3101 {
3102 yychar = yytoken = 0;
3103 do
3104 {
3105 if(yydebug)
3106 fprintf((bsl_stderr()), "Now at end of input.\n");
3107 }while((0));
3108 }
3109 else
3110 {
3111 yytoken = ((unsigned int)(yychar) <= 374 ? yytranslate[yychar] : 2);
3112 do
3113 {
3114 if(yydebug)
3115 {
3116 fprintf((bsl_stderr()), "%s ", "Next token is");
3117 yy_symbol_print((bsl_stderr()), yytoken, &yylval, &yylloc);
3118 fprintf((bsl_stderr()), "\n");
3119 }
3120 }while((0));
3121 }
3122 yyn += yytoken;
3123 if(yyn < 0 || 42445 < yyn || yycheck[yyn] != yytoken)
3124 goto yydefault;
3125 yyn = yytable[yyn];
3126 if(yyn <= 0)
3127 {
3128 if(yyn == 0 || yyn == -1290)
3129 goto yyerrlab;
3130 yyn = -yyn;
3131 goto yyreduce;
3132 }
3133 if(yyerrstatus)
3134 yyerrstatus--;
3135 do
3136 {
3137 if(yydebug)
3138 {
3139 fprintf((bsl_stderr()), "%s ", "Shifting");
3140 yy_symbol_print((bsl_stderr()), yytoken, &yylval, &yylloc);
3141 fprintf((bsl_stderr()), "\n");
3142 }
3143 }while((0));
3144 yychar = (-2);
3145 yystate = yyn;
3146 *++yyvsp = yylval;
3147 *++yylsp = yylloc;
3148 goto yynewstate;
3149 yydefault:
3150 yyn = yydefact[yystate];
3151 if(yyn == 0)
3152 goto yyerrlab;
3153 goto yyreduce;
3154 yyreduce:
3155 yylen = yyr2[yyn];
3156 yyval = yyvsp[1 - yylen];
3157 (yyloc.start = ((yylsp - yylen))[1].start);
3158 (yyloc.end = ((yylsp - yylen))[yylen].end);
3159 ;
3160 do
3161 {
3162 if(yydebug)
3163 yy_reduce_print(yyvsp, yylsp, yyn);
3164 }while((0));
3165 switch(yyn)
3166 {
3167 case 2:
3168 {
3169 yyval.specifier = (((void *)0));
3170 _DeclClass(yyvsp[(1) - (2)].id->_class, yyvsp[(1) - (2)].id->string);
3171 FreeIdentifier(yyvsp[(1) - (2)].id);
3172 (__extension__ ({
3173 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
3174
3175 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3176 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3177
3178 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3179 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
3180 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).start.pos, 0) : (unsigned int)1;
3181 }));
3182 resetScannerPos(&(yylsp[(1) - (2)]).start);
3183 (yychar = (-2));
3184 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3185 yystate = *yyssp;
3186 do
3187 {
3188 if(yydebug)
3189 yy_stack_print((yyss), (yyssp));
3190 }while((0));
3191 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3192 yystate = *yyssp;
3193 do
3194 {
3195 if(yydebug)
3196 yy_stack_print((yyss), (yyssp));
3197 }while((0));
3198 goto yysetstate;
3199 ;
3200 }
3201 break;
3202 case 3:
3203 {
3204 yyval.specifier = (((void *)0));
3205 _DeclClass(yyvsp[(1) - (2)].id->_class, yyvsp[(1) - (2)].id->string);
3206 FreeIdentifier(yyvsp[(1) - (2)].id);
3207 (__extension__ ({
3208 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
3209
3210 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3211 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3212
3213 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3214 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
3215 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).start.pos, 0) : (unsigned int)1;
3216 }));
3217 resetScannerPos(&(yylsp[(1) - (2)]).start);
3218 (yychar = (-2));
3219 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3220 yystate = *yyssp;
3221 do
3222 {
3223 if(yydebug)
3224 yy_stack_print((yyss), (yyssp));
3225 }while((0));
3226 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3227 yystate = *yyssp;
3228 do
3229 {
3230 if(yydebug)
3231 yy_stack_print((yyss), (yyssp));
3232 }while((0));
3233 goto yysetstate;
3234 ;
3235 }
3236 break;
3237 case 4:
3238 {
3239 yyval.specifier = yyvsp[(1) - (1)].specifier;
3240 ;
3241 }
3242 break;
3243 case 5:
3244 {
3245 if(!yyvsp[(1) - (2)].id->string[0])
3246 {
3247 yyval.specifier = MkSpecifierName(yyvsp[(1) - (2)].id->string);
3248 FreeIdentifier(yyvsp[(1) - (2)].id);
3249 FreeIdentifier(yyvsp[(2) - (2)].id);
3250 }
3251 else
3252 {
3253 _DeclClass(yyvsp[(1) - (2)].id->_class, yyvsp[(1) - (2)].id->string);
3254 FreeIdentifier(yyvsp[(1) - (2)].id);
3255 FreeIdentifier(yyvsp[(2) - (2)].id);
3256 (__extension__ ({
3257 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
3258
3259 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3260 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3261
3262 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3263 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
3264 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).start.pos, 0) : (unsigned int)1;
3265 }));
3266 resetScannerPos(&(yylsp[(1) - (2)]).start);
3267 (yychar = (-2));
3268 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3269 yystate = *yyssp;
3270 do
3271 {
3272 if(yydebug)
3273 yy_stack_print((yyss), (yyssp));
3274 }while((0));
3275 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
3276 yystate = *yyssp;
3277 do
3278 {
3279 if(yydebug)
3280 yy_stack_print((yyss), (yyssp));
3281 }while((0));
3282 goto yysetstate;
3283 }
3284 ;
3285 }
3286 break;
3287 case 6:
3288 {
3289 yyval.specifier = MkSpecifierName(yytext);
3290 ;
3291 }
3292 break;
3293 case 7:
3294 {
3295 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
3296 ;
3297 }
3298 break;
3299 case 9:
3300 {
3301 yyval.specifier = yyvsp[(1) - (4)].specifier;
3302 SetClassTemplateArgs(yyval.specifier, yyvsp[(3) - (4)].list);
3303 yyval.specifier->loc = (yyloc);
3304 ;
3305 }
3306 break;
3307 case 10:
3308 {
3309 yyval.specifier = yyvsp[(1) - (4)].specifier;
3310 SetClassTemplateArgs(yyval.specifier, yyvsp[(3) - (4)].list);
3311 yyval.specifier->loc = (yyloc);
3312 (yylsp[(4) - (4)]).end.pos--;
3313 (__extension__ ({
3314 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
3315
3316 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3317 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3318
3319 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3320 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
3321 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(4) - (4)]).end.pos, 0) : (unsigned int)1;
3322 }));
3323 resetScannerPos(&(yylsp[(4) - (4)]).end);
3324 (yychar = (-2));
3325 ;
3326 }
3327 break;
3328 case 11:
3329 {
3330 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3331 yyval.classFunction->loc = (yyloc);
3332 ;
3333 }
3334 break;
3335 case 12:
3336 {
3337 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(1) - (1)].declarator, (((void *)0)));
3338 yyval.classFunction->loc = (yyloc);
3339 ;
3340 }
3341 break;
3342 case 13:
3343 {
3344 yyval.classFunction = MkClassFunction(yyvsp[(1) - (3)].list, (((void *)0)), (((void *)0)), (((void *)0)));
3345 yyval.classFunction->isConstructor = 1;
3346 yyval.classFunction->loc = (yyloc);
3347 ;
3348 }
3349 break;
3350 case 14:
3351 {
3352 yyval.classFunction = MkClassFunction(yyvsp[(2) - (4)].list, (((void *)0)), (((void *)0)), (((void *)0)));
3353 yyval.classFunction->isDestructor = 1;
3354 yyval.classFunction->loc = (yyloc);
3355 ;
3356 }
3357 break;
3358 case 15:
3359 {
3360 yyval.classFunction = MkClassFunction(yyvsp[(2) - (3)].list, (((void *)0)), yyvsp[(3) - (3)].declarator, (((void *)0)));
3361 yyval.classFunction->isVirtual = 1;
3362 yyval.classFunction->loc = (yyloc);
3363 ;
3364 }
3365 break;
3366 case 16:
3367 {
3368 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3369 yyval.classFunction->isVirtual = 1;
3370 yyval.classFunction->loc = (yyloc);
3371 ;
3372 }
3373 break;
3374 case 17:
3375 {
3376 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3377 yyval.classFunction->loc = (yyloc);
3378 ;
3379 }
3380 break;
3381 case 18:
3382 {
3383 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(1) - (1)].declarator, (((void *)0)));
3384 yyval.classFunction->loc = (yyloc);
3385 ;
3386 }
3387 break;
3388 case 19:
3389 {
3390 yyval.classFunction = MkClassFunction(yyvsp[(2) - (3)].list, (((void *)0)), yyvsp[(3) - (3)].declarator, (((void *)0)));
3391 yyval.classFunction->isVirtual = 1;
3392 yyval.classFunction->loc = (yyloc);
3393 ;
3394 }
3395 break;
3396 case 20:
3397 {
3398 yyval.classFunction = MkClassFunction((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3399 yyval.classFunction->isVirtual = 1;
3400 yyval.classFunction->loc = (yyloc);
3401 ;
3402 }
3403 break;
3404 case 21:
3405 {
3406 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3407 yyval.classFunction->loc = (yyloc);
3408 ;
3409 }
3410 break;
3411 case 22:
3412 {
3413 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3414 yyval.classFunction->loc = (yyloc);
3415 ;
3416 }
3417 break;
3418 case 23:
3419 {
3420 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, (((void *)0)));
3421 yyval.classFunction->loc = (yyloc);
3422 ;
3423 }
3424 break;
3425 case 24:
3426 {
3427 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3428 yyval.classFunction->loc = (yyloc);
3429 ;
3430 }
3431 break;
3432 case 25:
3433 {
3434 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3435 yyval.classFunction->loc = (yyloc);
3436 ;
3437 }
3438 break;
3439 case 26:
3440 {
3441 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, (((void *)0)));
3442 yyval.classFunction->loc = (yyloc);
3443 ;
3444 }
3445 break;
3446 case 27:
3447 {
3448 if(yyvsp[(1) - (3)].classFunction->declarator)
3449 {
3450 yyvsp[(1) - (3)].classFunction->declarator = MkStructDeclarator(yyvsp[(1) - (3)].classFunction->declarator, (((void *)0)));
3451 yyvsp[(1) - (3)].classFunction->declarator->__anon1.structDecl.attrib = yyvsp[(2) - (3)].attrib;
3452 }
3453 ProcessClassFunctionBody(yyvsp[(1) - (3)].classFunction, (((void *)0)));
3454 yyval.classFunction->loc = (yyloc);
3455 ;
3456 }
3457 break;
3458 case 28:
3459 {
3460 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3461 yyval.classFunction->loc = (yyloc);
3462 yyval.classFunction->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
3463 ;
3464 }
3465 break;
3466 case 29:
3467 {
3468 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3469 yyval.classFunction->loc = (yyloc);
3470 yyval.classFunction->loc.end.charPos++;
3471 yyval.classFunction->loc.end.pos++;
3472 ;
3473 }
3474 break;
3475 case 30:
3476 {
3477 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3478 yyval.classFunction->loc = (yyloc);
3479 yyval.classFunction->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
3480 ;
3481 }
3482 break;
3483 case 31:
3484 {
3485 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3486 yyval.classFunction->loc = (yyloc);
3487 yyval.classFunction->loc.end.charPos++;
3488 yyval.classFunction->loc.end.pos++;
3489 ;
3490 }
3491 break;
3492 case 32:
3493 {
3494 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, (((void *)0)));
3495 yyval.classFunction->loc = (yyloc);
3496 yyval.classFunction->loc.end.charPos++;
3497 yyval.classFunction->loc.end.pos++;
3498 ;
3499 }
3500 break;
3501 case 33:
3502 {
3503 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3504 yyval.classFunction->loc = (yyloc);
3505 ;
3506 }
3507 break;
3508 case 34:
3509 {
3510 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), MkDeclaratorFunction(yyvsp[(2) - (2)].declarator, (((void *)0))), (((void *)0)));
3511 yyval.classFunction->loc = (yyloc);
3512 ;
3513 }
3514 break;
3515 case 35:
3516 {
3517 yyval.classFunction = MkClassFunction(yyvsp[(1) - (2)].list, (((void *)0)), yyvsp[(2) - (2)].declarator, (((void *)0)));
3518 yyval.classFunction->loc = (yyloc);
3519 ;
3520 }
3521 break;
3522 case 36:
3523 {
3524 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3525 yyval.classFunction->loc = (yyloc);
3526 ;
3527 }
3528 break;
3529 case 37:
3530 {
3531 ProcessClassFunctionBody(yyvsp[(1) - (2)].classFunction, yyvsp[(2) - (2)].stmt);
3532 yyval.classFunction->loc = (yyloc);
3533 yyval.classFunction->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
3534 yyval.classFunction->loc.end.charPos++;
3535 yyval.classFunction->loc.end.pos++;
3536 ;
3537 }
3538 break;
3539 case 38:
3540 {
3541 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3542 yyval.classFunction->loc = (yyloc);
3543 yyval.classFunction->loc.end.charPos++;
3544 yyval.classFunction->loc.end.pos++;
3545 ;
3546 }
3547 break;
3548 case 39:
3549 {
3550 ProcessClassFunctionBody(yyvsp[(1) - (1)].classFunction, (((void *)0)));
3551 yyval.classFunction->loc = (yyloc);
3552 yyval.classFunction->loc.end.charPos++;
3553 yyval.classFunction->loc.end.pos++;
3554 ;
3555 }
3556 break;
3557 case 40:
3558 {
3559 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
3560 yyval.memberInit->loc = (yyloc);
3561 yyval.memberInit->realLoc = (yyloc);
3562 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
3563 ;
3564 }
3565 break;
3566 case 41:
3567 {
3568 yyval.memberInit = MkMemberInit((((void *)0)), yyvsp[(1) - (1)].initializer);
3569 yyval.memberInit->loc = (yyloc);
3570 yyval.memberInit->realLoc = (yyloc);
3571 ;
3572 }
3573 break;
3574 case 42:
3575 {
3576 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
3577 yyval.memberInit->loc = (yyloc);
3578 yyval.memberInit->realLoc = (yyloc);
3579 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
3580 ;
3581 }
3582 break;
3583 case 43:
3584 {
3585 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, MkInitializerAssignment(MkExpDummy()));
3586 yyval.memberInit->loc = (yyloc);
3587 yyval.memberInit->realLoc = (yyloc);
3588 yyval.memberInit->initializer->loc.start = yyval.memberInit->initializer->loc.end = (yylsp[(2) - (3)]).end;
3589 (__extension__ ({
3590 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
3591
3592 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3593 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
3594
3595 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3596 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
3597 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(2) - (3)]).end.pos, 0) : (unsigned int)1;
3598 }));
3599 (yychar = (-2));
3600 resetScannerPos(&(yylsp[(2) - (3)]).end);
3601 (yyloc.start = (yylsp[(1) - (3)]).start);
3602 (yyloc.end = (yylsp[(2) - (3)]).end);
3603 ;
3604 }
3605 break;
3606 case 44:
3607 {
3608 yyval.memberInit = MkMemberInit((((void *)0)), yyvsp[(1) - (1)].initializer);
3609 yyval.memberInit->loc = (yyloc);
3610 yyval.memberInit->realLoc = (yyloc);
3611 ;
3612 }
3613 break;
3614 case 45:
3615 {
3616 yyval.list = MkList();
3617 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
3618 ;
3619 }
3620 break;
3621 case 46:
3622 {
3623 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3624 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3625 yyval.list = yyvsp[(1) - (3)].list;
3626 ;
3627 }
3628 break;
3629 case 47:
3630 {
3631 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3632 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3633 yyval.list = yyvsp[(1) - (3)].list;
3634 ;
3635 }
3636 break;
3637 case 48:
3638 {
3639 yyval.list = MkList();
3640 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
3641 ;
3642 }
3643 break;
3644 case 49:
3645 {
3646 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3647 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3648 yyval.list = yyvsp[(1) - (3)].list;
3649 ;
3650 }
3651 break;
3652 case 50:
3653 {
3654 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
3655 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
3656 yyval.list = yyvsp[(1) - (3)].list;
3657 ;
3658 }
3659 break;
3660 case 51:
3661 {
3662 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(2) - (3)]).end;
3663 {
3664 struct Initializer * dummy = MkInitializerAssignment(MkExpDummy());
3665 struct MemberInit * memberInit = MkMemberInit((((void *)0)), dummy);
3666
3667 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(2) - (3)]).end;
3668 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(2) - (3)]).end;
3669 ListAdd(yyvsp[(1) - (3)].list, memberInit);
3670 }
3671 yyval.list = yyvsp[(1) - (3)].list;
3672 ;
3673 }
3674 break;
3675 case 52:
3676 {
3677 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(2) - (3)]).end;
3678 {
3679 struct Initializer * dummy = MkInitializerAssignment(MkExpDummy());
3680 struct MemberInit * memberInit = MkMemberInit((((void *)0)), dummy);
3681
3682 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(2) - (3)]).end;
3683 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(2) - (3)]).end;
3684 ListAdd(yyvsp[(1) - (3)].list, memberInit);
3685 }
3686 yyval.list = yyvsp[(1) - (3)].list;
3687 ;
3688 }
3689 break;
3690 case 53:
3691 {
3692 struct Initializer * dummy = MkInitializerAssignment(MkExpDummy());
3693 struct MemberInit * memberInit = MkMemberInit((((void *)0)), dummy);
3694
3695 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(1) - (1)]).start;
3696 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(1) - (1)]).start;
3697 yyval.list = MkList();
3698 ListAdd(yyval.list, memberInit);
3699 dummy = MkInitializerAssignment(MkExpDummy());
3700 memberInit = MkMemberInit((((void *)0)), dummy);
3701 memberInit->realLoc.start = memberInit->loc.start = dummy->loc.start = (yylsp[(1) - (1)]).end;
3702 memberInit->realLoc.end = memberInit->loc.end = dummy->loc.end = (yylsp[(1) - (1)]).end;
3703 ListAdd(yyval.list, memberInit);
3704 ;
3705 }
3706 break;
3707 case 54:
3708 {
3709 if((*yyvsp[(1) - (2)].list).last)
3710 ((struct MemberInit *)(*yyvsp[(1) - (2)].list).last)->loc.end = (yylsp[(2) - (2)]).end;
3711 yyval.list = yyvsp[(1) - (2)].list;
3712 ;
3713 }
3714 break;
3715 case 55:
3716 {
3717 if((*yyvsp[(1) - (2)].list).last)
3718 ((struct MemberInit *)(*yyvsp[(1) - (2)].list).last)->loc.end = (yylsp[(2) - (2)]).end;
3719 yyval.list = yyvsp[(1) - (2)].list;
3720 ;
3721 }
3722 break;
3723 case 56:
3724 {
3725 struct MembersInit * members = MkMembersInitList(yyvsp[(1) - (1)].list);
3726
3727 yyval.list = MkList();
3728 ListAdd(yyval.list, members);
3729 members->loc = (yylsp[(1) - (1)]);
3730 ;
3731 }
3732 break;
3733 case 57:
3734 {
3735 yyval.list = MkList();
3736 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(1) - (1)].classFunction));
3737 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3738 ;
3739 }
3740 break;
3741 case 58:
3742 {
3743 struct MembersInit * members = MkMembersInitList(yyvsp[(2) - (2)].list);
3744
3745 ListAdd(yyval.list, members);
3746 members->loc = (yylsp[(2) - (2)]);
3747 yyval.list = yyvsp[(1) - (2)].list;
3748 ;
3749 }
3750 break;
3751 case 59:
3752 {
3753 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3754 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3755 yyval.list = yyvsp[(1) - (2)].list;
3756 ;
3757 }
3758 break;
3759 case 60:
3760 {
3761 struct MembersInit * members = MkMembersInitList(yyvsp[(2) - (2)].list);
3762
3763 ListAdd(yyval.list, members);
3764 members->loc = (yylsp[(2) - (2)]);
3765 yyval.list = yyvsp[(1) - (2)].list;
3766 ;
3767 }
3768 break;
3769 case 61:
3770 {
3771 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3772 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3773 yyval.list = yyvsp[(1) - (2)].list;
3774 ;
3775 }
3776 break;
3777 case 63:
3778 {
3779 struct MembersInit * members = (struct MembersInit *)(*yyval.list).last;
3780
3781 if(members->type == 0)
3782 (members->loc.end = yyloc.end);
3783 else
3784 {
3785 struct MembersInit * members = MkMembersInitList(MkList());
3786
3787 ListAdd(yyval.list, members);
3788 members->loc = (yylsp[(2) - (2)]);
3789 }
3790 yyval.list = yyvsp[(1) - (2)].list;
3791 ;
3792 }
3793 break;
3794 case 64:
3795 {
3796 struct MembersInit * members = MkMembersInitList(MkList());
3797
3798 yyval.list = MkList();
3799 ListAdd(yyval.list, members);
3800 members->loc = (yylsp[(1) - (1)]);
3801 ;
3802 }
3803 break;
3804 case 66:
3805 {
3806 yyval.list = MkList();
3807 ListAdd(yyval.list, MkMembersInitList(yyvsp[(1) - (1)].list));
3808 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3809 ;
3810 }
3811 break;
3812 case 67:
3813 {
3814 ListAdd(yyvsp[(1) - (2)].list, MkMembersInitList(yyvsp[(2) - (2)].list));
3815 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3816 ;
3817 }
3818 break;
3819 case 68:
3820 {
3821 ListAdd(yyvsp[(1) - (2)].list, MkMembersInitList(yyvsp[(2) - (2)].list));
3822 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3823 ;
3824 }
3825 break;
3826 case 69:
3827 {
3828 yyval.list = MkList();
3829 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(1) - (1)].classFunction));
3830 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3831 ;
3832 }
3833 break;
3834 case 70:
3835 {
3836 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3837 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3838 yyval.list = yyvsp[(1) - (2)].list;
3839 ;
3840 }
3841 break;
3842 case 71:
3843 {
3844 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3845 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3846 yyval.list = yyvsp[(1) - (2)].list;
3847 ;
3848 }
3849 break;
3850 case 72:
3851 {
3852 ListAdd(yyval.list, MkMembersInitMethod(yyvsp[(2) - (2)].classFunction));
3853 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3854 yyval.list = yyvsp[(1) - (2)].list;
3855 ;
3856 }
3857 break;
3858 case 73:
3859 {
3860 ListAdd(yyval.list, MkMembersInitList(yyvsp[(2) - (2)].list));
3861 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3862 yyval.list = yyvsp[(1) - (2)].list;
3863 ;
3864 }
3865 break;
3866 case 74:
3867 {
3868 yyval.list = MkList();
3869 ListAdd(yyval.list, MkMembersInitList(yyvsp[(1) - (1)].list));
3870 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(1) - (1)]);
3871 ;
3872 }
3873 break;
3874 case 75:
3875 {
3876 yyval.list = MkList();
3877 ListAdd(yyval.list, MkMembersInitList(yyvsp[(1) - (2)].list));
3878 ((struct MembersInit *)(*yyval.list).last)->loc = (yylsp[(2) - (2)]);
3879 ;
3880 }
3881 break;
3882 case 76:
3883 {
3884 yyval.instance->loc = (yyloc);
3885 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
3886 yyval.instance = yyvsp[(1) - (2)].instance;
3887 ;
3888 }
3889 break;
3890 case 77:
3891 {
3892 yyval.instance->loc = (yyloc);
3893 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
3894 yyval.instance = yyvsp[(1) - (3)].instance;
3895 ;
3896 }
3897 break;
3898 case 78:
3899 {
3900 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3901 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3902 yyval.instance->loc = (yyloc);
3903 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3904 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3905 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3906 yyval.instance->loc.end.charPos++;
3907 yyval.instance->loc.end.pos++;
3908 ;
3909 }
3910 break;
3911 case 79:
3912 {
3913 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
3914 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
3915 yyval.instance->loc = (yyloc);
3916 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
3917 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
3918 yyval.instance->insideLoc.end = (yylsp[(4) - (5)]).end;
3919 yyval.instance->loc.end.charPos++;
3920 yyval.instance->loc.end.pos++;
3921 ;
3922 }
3923 break;
3924 case 80:
3925 {
3926 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3927 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3928 yyval.instance->loc = (yyloc);
3929 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3930 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3931 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3932 yyval.instance->loc.end.charPos++;
3933 yyval.instance->loc.end.pos++;
3934 ;
3935 }
3936 break;
3937 case 81:
3938 {
3939 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (3)].list, MkExpIdentifier(yyvsp[(2) - (3)].id), (((void *)0)));
3940 yyval.instance->exp->loc = (yylsp[(2) - (3)]);
3941 yyval.instance->loc = (yyloc);
3942 yyval.instance->nameLoc = (yylsp[(2) - (3)]);
3943 yyval.instance->insideLoc.start = (yylsp[(3) - (3)]).end;
3944 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
3945 yyval.instance->loc.end.charPos++;
3946 yyval.instance->loc.end.pos++;
3947 ;
3948 }
3949 break;
3950 case 82:
3951 {
3952 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), (((void *)0)));
3953 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3954 yyval.instance->loc = (yyloc);
3955 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3956 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3957 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
3958 yyval.instance->loc.end.charPos++;
3959 yyval.instance->loc.end.pos++;
3960 ;
3961 }
3962 break;
3963 case 83:
3964 {
3965 yyval.instance->loc = (yyloc);
3966 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
3967 ;
3968 }
3969 break;
3970 case 84:
3971 {
3972 yyval.instance->loc = (yyloc);
3973 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
3974 ;
3975 }
3976 break;
3977 case 85:
3978 {
3979 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
3980 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
3981 yyval.instance->loc = (yyloc);
3982 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
3983 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
3984 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
3985 yyval.instance->loc.end.charPos++;
3986 yyval.instance->loc.end.pos++;
3987 ;
3988 }
3989 break;
3990 case 86:
3991 {
3992 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
3993 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
3994 yyval.instance->loc = (yyloc);
3995 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
3996 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
3997 yyval.instance->insideLoc.end = (yylsp[(4) - (5)]).end;
3998 yyval.instance->loc.end.charPos++;
3999 yyval.instance->loc.end.pos++;
4000 ;
4001 }
4002 break;
4003 case 87:
4004 {
4005 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), yyvsp[(4) - (4)].list);
4006 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
4007 yyval.instance->loc = (yyloc);
4008 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
4009 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
4010 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).end;
4011 yyval.instance->loc.end.charPos++;
4012 yyval.instance->loc.end.pos++;
4013 ;
4014 }
4015 break;
4016 case 88:
4017 {
4018 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (3)].list, MkExpIdentifier(yyvsp[(2) - (3)].id), (((void *)0)));
4019 yyval.instance->exp->loc = (yylsp[(2) - (3)]);
4020 yyval.instance->loc = (yyloc);
4021 yyval.instance->nameLoc = (yylsp[(2) - (3)]);
4022 yyval.instance->insideLoc.start = (yylsp[(3) - (3)]).end;
4023 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4024 yyval.instance->loc.end.charPos++;
4025 yyval.instance->loc.end.pos++;
4026 ;
4027 }
4028 break;
4029 case 89:
4030 {
4031 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), (((void *)0)));
4032 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
4033 yyval.instance->loc = (yyloc);
4034 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
4035 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
4036 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
4037 yyval.instance->loc.end.charPos++;
4038 yyval.instance->loc.end.pos++;
4039 ;
4040 }
4041 break;
4042 case 90:
4043 {
4044 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
4045 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
4046 yyval.instance->loc = (yyloc);
4047 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
4048 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
4049 yyval.instance->insideLoc.end = (yylsp[(5) - (5)]).start;
4050 ;
4051 }
4052 break;
4053 case 91:
4054 {
4055 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (5)].list, MkExpIdentifier(yyvsp[(2) - (5)].id), yyvsp[(4) - (5)].list);
4056 yyval.instance->exp->loc = (yylsp[(2) - (5)]);
4057 yyval.instance->loc = (yyloc);
4058 yyval.instance->nameLoc = (yylsp[(2) - (5)]);
4059 yyval.instance->insideLoc.start = (yylsp[(3) - (5)]).end;
4060 yyval.instance->insideLoc.end = (yylsp[(5) - (5)]).start;
4061 ;
4062 }
4063 break;
4064 case 92:
4065 {
4066 yyval.instance = MkInstantiationNamed(yyvsp[(1) - (4)].list, MkExpIdentifier(yyvsp[(2) - (4)].id), MkList());
4067 yyval.instance->exp->loc = (yylsp[(2) - (4)]);
4068 yyval.instance->loc = (yyloc);
4069 yyval.instance->nameLoc = (yylsp[(2) - (4)]);
4070 yyval.instance->insideLoc.start = (yylsp[(3) - (4)]).end;
4071 yyval.instance->insideLoc.end = (yylsp[(4) - (4)]).start;
4072 ;
4073 }
4074 break;
4075 case 93:
4076 {
4077 yyval.instance->loc = (yyloc);
4078 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
4079 yyval.instance = yyvsp[(1) - (2)].instance;
4080 ;
4081 }
4082 break;
4083 case 94:
4084 {
4085 yyval.instance->loc = (yyloc);
4086 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
4087 yyval.instance = yyvsp[(1) - (3)].instance;
4088 ;
4089 }
4090 break;
4091 case 95:
4092 {
4093 yyval.instance = MkInstantiation(yyvsp[(1) - (3)].specifier, (((void *)0)), yyvsp[(3) - (3)].list);
4094 yyval.instance->loc = (yyloc);
4095 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4096 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4097 yyval.instance->loc.end.charPos++;
4098 yyval.instance->loc.end.pos++;
4099 ;
4100 }
4101 break;
4102 case 96:
4103 {
4104 struct Location tmpLoc = yylloc;
4105
4106 yylloc = (yylsp[(1) - (3)]);
4107 yylloc = tmpLoc;
4108 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (3)].id->string), (((void *)0)), yyvsp[(3) - (3)].list);
4109 yyval.instance->loc = (yyloc);
4110 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4111 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4112 FreeIdentifier(yyvsp[(1) - (3)].id);
4113 ;
4114 }
4115 break;
4116 case 97:
4117 {
4118 yyval.instance = MkInstantiation(yyvsp[(1) - (3)].specifier, (((void *)0)), yyvsp[(3) - (3)].list);
4119 yyval.instance->loc = (yyloc);
4120 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4121 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4122 yyval.instance->loc.end.charPos++;
4123 yyval.instance->loc.end.pos++;
4124 ;
4125 }
4126 break;
4127 case 98:
4128 {
4129 yyval.instance = MkInstantiation(yyvsp[(1) - (2)].specifier, (((void *)0)), (((void *)0)));
4130 yyval.instance->loc = (yyloc);
4131 yyval.instance->insideLoc.start = (yylsp[(2) - (2)]).end;
4132 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4133 yyval.instance->loc.end.charPos++;
4134 yyval.instance->loc.end.pos++;
4135 ;
4136 }
4137 break;
4138 case 99:
4139 {
4140 yyval.instance = MkInstantiation(yyvsp[(1) - (4)].specifier, (((void *)0)), yyvsp[(3) - (4)].list);
4141 yyval.instance->loc = (yyloc);
4142 yyval.instance->insideLoc.start = (yylsp[(2) - (4)]).end;
4143 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
4144 yyval.instance->loc.end.charPos++;
4145 yyval.instance->loc.end.pos++;
4146 ;
4147 }
4148 break;
4149 case 100:
4150 {
4151 yyval.instance = MkInstantiation(yyvsp[(1) - (3)].specifier, (((void *)0)), (((void *)0)));
4152 yyval.instance->loc = (yyloc);
4153 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4154 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).end;
4155 yyval.instance->loc.end.charPos++;
4156 yyval.instance->loc.end.pos++;
4157 ;
4158 }
4159 break;
4160 case 101:
4161 {
4162 struct Location tmpLoc = yylloc;
4163
4164 yylloc = (yylsp[(1) - (3)]);
4165 yylloc = tmpLoc;
4166 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (3)].id->string), (((void *)0)), yyvsp[(3) - (3)].list);
4167 yyval.instance->loc = (yyloc);
4168 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4169 yyval.instance->insideLoc.end = (yylsp[(3) - (3)]).end;
4170 yyval.instance->loc.end.charPos++;
4171 yyval.instance->loc.end.pos++;
4172 FreeIdentifier(yyvsp[(1) - (3)].id);
4173 ;
4174 }
4175 break;
4176 case 102:
4177 {
4178 struct Location tmpLoc = yylloc;
4179
4180 yylloc = (yylsp[(1) - (2)]);
4181 yylloc = tmpLoc;
4182 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (2)].id->string), (((void *)0)), (((void *)0)));
4183 yyval.instance->loc = (yyloc);
4184 yyval.instance->insideLoc.start = (yylsp[(2) - (2)]).end;
4185 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4186 yyval.instance->loc.end.charPos++;
4187 yyval.instance->loc.end.pos++;
4188 FreeIdentifier(yyvsp[(1) - (2)].id);
4189 ;
4190 }
4191 break;
4192 case 103:
4193 {
4194 struct Location tmpLoc = yylloc;
4195
4196 yylloc = (yylsp[(1) - (4)]);
4197 yylloc = tmpLoc;
4198 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (4)].id->string), (((void *)0)), yyvsp[(3) - (4)].list);
4199 yyval.instance->loc = (yyloc);
4200 yyval.instance->insideLoc.start = (yylsp[(2) - (4)]).end;
4201 yyval.instance->insideLoc.end = (yylsp[(3) - (4)]).end;
4202 yyval.instance->loc.end.charPos++;
4203 yyval.instance->loc.end.pos++;
4204 FreeIdentifier(yyvsp[(1) - (4)].id);
4205 ;
4206 }
4207 break;
4208 case 104:
4209 {
4210 struct Location tmpLoc = yylloc;
4211
4212 yylloc = (yylsp[(1) - (3)]);
4213 yylloc = tmpLoc;
4214 yyval.instance = MkInstantiation(MkSpecifierName(yyvsp[(1) - (3)].id->string), (((void *)0)), (((void *)0)));
4215 yyval.instance->loc = (yyloc);
4216 yyval.instance->insideLoc.start = (yylsp[(2) - (3)]).end;
4217 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).end;
4218 yyval.instance->loc.end.charPos++;
4219 yyval.instance->loc.end.pos++;
4220 FreeIdentifier(yyvsp[(1) - (3)].id);
4221 ;
4222 }
4223 break;
4224 case 105:
4225 {
4226 yyval.instance->loc = (yyloc);
4227 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).start;
4228 ;
4229 }
4230 break;
4231 case 106:
4232 {
4233 yyval.instance->loc = (yyloc);
4234 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).start;
4235 ;
4236 }
4237 break;
4238 case 107:
4239 {
4240 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].list);
4241 yyval.instance->loc = (yyloc);
4242 yyval.instance->insideLoc.start = (yylsp[(1) - (2)]).end;
4243 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4244 yyval.instance->loc.end.charPos++;
4245 yyval.instance->loc.end.pos++;
4246 ;
4247 }
4248 break;
4249 case 108:
4250 {
4251 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), yyvsp[(2) - (3)].list);
4252 yyval.instance->loc = (yyloc);
4253 yyval.instance->insideLoc.start = (yylsp[(1) - (3)]).end;
4254 yyval.instance->insideLoc.end = (yylsp[(2) - (3)]).end;
4255 yyval.instance->loc.end.charPos++;
4256 yyval.instance->loc.end.pos++;
4257 ;
4258 }
4259 break;
4260 case 109:
4261 {
4262 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), (((void *)0)));
4263 yyval.instance->loc = (yyloc);
4264 yyval.instance->insideLoc.start = (yylsp[(1) - (2)]).end;
4265 yyval.instance->insideLoc.end = (yylsp[(1) - (2)]).end;
4266 yyval.instance->loc.end.charPos++;
4267 yyval.instance->loc.end.pos++;
4268 ;
4269 }
4270 break;
4271 case 110:
4272 {
4273 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), (((void *)0)));
4274 yyval.instance->loc = (yyloc);
4275 yyval.instance->insideLoc.start = (yylsp[(1) - (1)]).end;
4276 yyval.instance->insideLoc.end = (yylsp[(1) - (1)]).end;
4277 yyval.instance->loc.end.charPos++;
4278 yyval.instance->loc.end.pos++;
4279 ;
4280 }
4281 break;
4282 case 111:
4283 {
4284 yyval.instance = MkInstantiation((((void *)0)), (((void *)0)), yyvsp[(2) - (2)].list);
4285 yyval.instance->loc = (yyloc);
4286 yyval.instance->insideLoc.start = (yylsp[(1) - (2)]).end;
4287 yyval.instance->insideLoc.end = (yylsp[(2) - (2)]).end;
4288 yyval.instance->loc.end.charPos++;
4289 yyval.instance->loc.end.pos++;
4290 ;
4291 }
4292 break;
4293 case 112:
4294 {
4295 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
4296 yyval.memberInit->loc = (yyloc);
4297 yyval.memberInit->realLoc = (yyloc);
4298 ;
4299 }
4300 break;
4301 case 113:
4302 {
4303 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].initializer);
4304 yyval.memberInit->loc = (yyloc);
4305 yyval.memberInit->realLoc = (yyloc);
4306 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
4307 ;
4308 }
4309 break;
4310 case 114:
4311 {
4312 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (3)].exp, MkInitializerAssignment(MkExpDummy()));
4313 yyval.memberInit->loc = (yyloc);
4314 yyval.memberInit->realLoc = (yyloc);
4315 yyval.memberInit->initializer->loc.start = (yylsp[(2) - (3)]).end;
4316 yyval.memberInit->initializer->loc.end = (yylsp[(2) - (3)]).end;
4317 ;
4318 }
4319 break;
4320 case 115:
4321 {
4322 yyval.memberInit = MkMemberInitExp(yyvsp[(1) - (2)].exp, (((void *)0)));
4323 yyval.memberInit->loc = (yyloc);
4324 yyval.memberInit->realLoc = (yyloc);
4325 ;
4326 }
4327 break;
4328 case 116:
4329 {
4330 yyval.list = MkList();
4331 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
4332 ((struct MemberInit *)(*yyval.list).last)->loc = (yyloc);
4333 ;
4334 }
4335 break;
4336 case 117:
4337 {
4338 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4339 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4340 yyval.list = yyvsp[(1) - (3)].list;
4341 ;
4342 }
4343 break;
4344 case 118:
4345 {
4346 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4347 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4348 yyval.list = yyvsp[(1) - (3)].list;
4349 ;
4350 }
4351 break;
4352 case 119:
4353 {
4354 yyval.list = MkList();
4355 ListAdd(yyval.list, yyvsp[(1) - (1)].memberInit);
4356 ((struct MemberInit *)(*yyval.list).last)->loc = (yyloc);
4357 ;
4358 }
4359 break;
4360 case 120:
4361 {
4362 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4363 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4364 yyval.list = yyvsp[(1) - (3)].list;
4365 ;
4366 }
4367 break;
4368 case 121:
4369 {
4370 ((struct MemberInit *)(*yyvsp[(1) - (3)].list).last)->loc.end = (yylsp[(3) - (3)]).start;
4371 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].memberInit);
4372 yyval.list = yyvsp[(1) - (3)].list;
4373 ;
4374 }
4375 break;
4376 case 123:
4377 {
4378 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, (((void *)0)), yyvsp[(3) - (4)].id, (((void *)0)), (((void *)0)));
4379 yyval.prop->loc = (yyloc);
4380 ;
4381 }
4382 break;
4383 case 124:
4384 {
4385 yyval.prop = MkProperty(yyvsp[(2) - (5)].list, yyvsp[(3) - (5)].declarator, yyvsp[(4) - (5)].id, (((void *)0)), (((void *)0)));
4386 yyval.prop->loc = (yyloc);
4387 ;
4388 }
4389 break;
4390 case 125:
4391 {
4392 yyval.prop = MkProperty(yyvsp[(2) - (3)].list, (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4393 yyval.prop->loc = (yyloc);
4394 ;
4395 }
4396 break;
4397 case 126:
4398 {
4399 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].declarator, (((void *)0)), (((void *)0)), (((void *)0)));
4400 yyval.prop->loc = (yyloc);
4401 ;
4402 }
4403 break;
4404 case 127:
4405 {
4406 yyval.prop = MkProperty((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4407 yyval.prop->loc = (yyloc);
4408 ;
4409 }
4410 break;
4411 case 129:
4412 {
4413 yyvsp[(1) - (3)].prop->setStmt = yyvsp[(3) - (3)].stmt;
4414 ;
4415 }
4416 break;
4417 case 130:
4418 {
4419 yyvsp[(1) - (3)].prop->getStmt = yyvsp[(3) - (3)].stmt;
4420 ;
4421 }
4422 break;
4423 case 131:
4424 {
4425 yyvsp[(1) - (3)].prop->issetStmt = yyvsp[(3) - (3)].stmt;
4426 ;
4427 }
4428 break;
4429 case 132:
4430 {
4431 yyvsp[(1) - (2)].prop->__anon1.isWatchable = 1;
4432 ;
4433 }
4434 break;
4435 case 133:
4436 {
4437 yyvsp[(1) - (3)].prop->category = yyvsp[(3) - (3)].exp;
4438 ;
4439 }
4440 break;
4441 case 134:
4442 {
4443 yyvsp[(1) - (2)].prop->loc.end = (yylsp[(2) - (2)]).end;
4444 yyval.prop = yyvsp[(1) - (2)].prop;
4445 ;
4446 }
4447 break;
4448 case 135:
4449 {
4450 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, (((void *)0)), yyvsp[(3) - (4)].id, (((void *)0)), (((void *)0)));
4451 yyval.prop->loc = (yyloc);
4452 ;
4453 }
4454 break;
4455 case 136:
4456 {
4457 yyval.prop = MkProperty(yyvsp[(2) - (5)].list, yyvsp[(3) - (5)].declarator, yyvsp[(4) - (5)].id, (((void *)0)), (((void *)0)));
4458 yyval.prop->loc = (yyloc);
4459 ;
4460 }
4461 break;
4462 case 137:
4463 {
4464 yyval.prop = MkProperty(yyvsp[(2) - (3)].list, (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4465 yyval.prop->loc = (yyloc);
4466 ;
4467 }
4468 break;
4469 case 138:
4470 {
4471 yyval.prop = MkProperty(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].declarator, (((void *)0)), (((void *)0)), (((void *)0)));
4472 yyval.prop->loc = (yyloc);
4473 ;
4474 }
4475 break;
4476 case 139:
4477 {
4478 yyval.prop = MkProperty((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
4479 yyval.prop->loc = (yyloc);
4480 ;
4481 }
4482 break;
4483 case 141:
4484 {
4485 yyvsp[(1) - (3)].prop->setStmt = yyvsp[(3) - (3)].stmt;
4486 ;
4487 }
4488 break;
4489 case 142:
4490 {
4491 yyvsp[(1) - (3)].prop->getStmt = yyvsp[(3) - (3)].stmt;
4492 ;
4493 }
4494 break;
4495 case 143:
4496 {
4497 yyvsp[(1) - (2)].prop->loc.end = (yylsp[(2) - (2)]).end;
4498 ;
4499 }
4500 break;
4501 case 144:
4502 {
4503 yyval.list = MkListOne(yyvsp[(1) - (1)].id);
4504 ;
4505 }
4506 break;
4507 case 145:
4508 {
4509 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].id);
4510 ;
4511 }
4512 break;
4513 case 146:
4514 {
4515 yyval.propertyWatch = MkPropertyWatch(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
4516 ;
4517 }
4518 break;
4519 case 147:
4520 {
4521 yyval.propertyWatch = MkDeleteWatch(yyvsp[(2) - (2)].stmt);
4522 ;
4523 }
4524 break;
4525 case 148:
4526 {
4527 yyval.list = MkListOne(yyvsp[(1) - (1)].propertyWatch);
4528 ;
4529 }
4530 break;
4531 case 149:
4532 {
4533 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].propertyWatch);
4534 ;
4535 }
4536 break;
4537 case 150:
4538 {
4539 yyval.propertyWatch = MkPropertyWatch(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
4540 ;
4541 }
4542 break;
4543 case 151:
4544 {
4545 yyval.stmt = MkWatchStmt((((void *)0)), yyvsp[(3) - (7)].exp, yyvsp[(6) - (7)].list);
4546 ;
4547 }
4548 break;
4549 case 152:
4550 {
4551 yyval.stmt = MkWatchStmt(yyvsp[(1) - (9)].exp, yyvsp[(5) - (9)].exp, yyvsp[(8) - (9)].list);
4552 ;
4553 }
4554 break;
4555 case 153:
4556 {
4557 yyval.stmt = MkStopWatchingStmt((((void *)0)), yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].list);
4558 ;
4559 }
4560 break;
4561 case 154:
4562 {
4563 yyval.stmt = MkStopWatchingStmt(yyvsp[(1) - (8)].exp, yyvsp[(5) - (8)].exp, yyvsp[(7) - (8)].list);
4564 ;
4565 }
4566 break;
4567 case 155:
4568 {
4569 yyval.stmt = MkStopWatchingStmt((((void *)0)), yyvsp[(3) - (4)].exp, (((void *)0)));
4570 ;
4571 }
4572 break;
4573 case 156:
4574 {
4575 yyval.stmt = MkStopWatchingStmt(yyvsp[(1) - (6)].exp, yyvsp[(5) - (6)].exp, (((void *)0)));
4576 ;
4577 }
4578 break;
4579 case 157:
4580 {
4581 yyval.stmt = MkFireWatchersStmt((((void *)0)), (((void *)0)));
4582 ;
4583 }
4584 break;
4585 case 158:
4586 {
4587 yyval.stmt = MkFireWatchersStmt((((void *)0)), yyvsp[(2) - (2)].list);
4588 ;
4589 }
4590 break;
4591 case 159:
4592 {
4593 yyval.stmt = MkFireWatchersStmt(yyvsp[(1) - (3)].exp, (((void *)0)));
4594 ;
4595 }
4596 break;
4597 case 160:
4598 {
4599 yyval.stmt = MkFireWatchersStmt(yyvsp[(1) - (4)].exp, yyvsp[(4) - (4)].list);
4600 ;
4601 }
4602 break;
4603 case 161:
4604 {
4605 yyval.classDef = yyvsp[(1) - (2)].classDef;
4606 yyval.classDef->loc.end = (yylsp[(2) - (2)]).end;
4607 ;
4608 }
4609 break;
4610 case 162:
4611 {
4612 yyval.classDef = MkClassDefDefaultProperty(yyvsp[(1) - (2)].list);
4613 if((*yyvsp[(1) - (2)].list).last)
4614 ((struct MemberInit *)(*yyvsp[(1) - (2)].list).last)->loc.end = (yylsp[(2) - (2)]).start;
4615 yyval.classDef->loc = (yyloc);
4616 ;
4617 }
4618 break;
4619 case 163:
4620 {
4621 yyval.classDef = MkClassDefFunction(yyvsp[(1) - (1)].classFunction);
4622 yyval.classDef->loc = (yyloc);
4623 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4624 ;
4625 }
4626 break;
4627 case 164:
4628 {
4629 yyval.classDef = MkClassDefProperty(yyvsp[(1) - (1)].prop);
4630 yyval.classDef->loc = (yyloc);
4631 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4632 ;
4633 }
4634 break;
4635 case 165:
4636 {
4637 yyval.classDef = MkClassDefFunction(yyvsp[(2) - (2)].classFunction);
4638 yyval.classDef->loc = (yyloc);
4639 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4640 ;
4641 }
4642 break;
4643 case 166:
4644 {
4645 yyval.classDef = MkClassDefProperty(yyvsp[(2) - (2)].prop);
4646 yyval.classDef->loc = (yyloc);
4647 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4648 ;
4649 }
4650 break;
4651 case 167:
4652 {
4653 yyval.classDef = MkClassDefClassProperty(yyvsp[(1) - (1)].prop);
4654 yyval.classDef->loc = (yyloc);
4655 ;
4656 }
4657 break;
4658 case 168:
4659 {
4660 yyval.classDef = (((void *)0));
4661 deleteWatchable = 1;
4662 ;
4663 }
4664 break;
4665 case 169:
4666 {
4667 yyval.classDef = MkClassDefNoExpansion();
4668 ;
4669 }
4670 break;
4671 case 170:
4672 {
4673 yyval.classDef = MkClassDefFixed();
4674 ;
4675 }
4676 break;
4677 case 171:
4678 {
4679 yyval.classDef = MkClassDefClassPropertyValue(yyvsp[(3) - (7)].id, yyvsp[(6) - (7)].initializer);
4680 yyval.classDef->loc = (yyloc);
4681 ;
4682 }
4683 break;
4684 case 172:
4685 {
4686 yyval.classDef = (((void *)0));
4687 ;
4688 }
4689 break;
4690 case 173:
4691 {
4692 memberAccessStack[defaultMemberAccess] = yyvsp[(1) - (2)].declMode;
4693 if(defaultMemberAccess == 0)
4694 {
4695 yyval.classDef = MkClassDefMemberAccess();
4696 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4697 yyval.classDef->loc = (yyloc);
4698 }
4699 else
4700 yyval.classDef = (((void *)0));
4701 ;
4702 }
4703 break;
4704 case 174:
4705 {
4706 yyval.classDef = MkClassDefAccessOverride(yyvsp[(1) - (4)].declMode, yyvsp[(3) - (4)].id);
4707 yyval.classDef->loc = (yyloc);
4708 ;
4709 }
4710 break;
4711 case 175:
4712 {
4713 yyval.classDef = MkClassDefFunction(yyvsp[(1) - (1)].classFunction);
4714 yyval.classDef->loc = yyvsp[(1) - (1)].classFunction->loc;
4715 yyval.classDef->loc.end.charPos++;
4716 yyval.classDef->loc.end.pos++;
4717 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4718 ;
4719 }
4720 break;
4721 case 176:
4722 {
4723 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(1) - (1)].list, (((void *)0)), (((void *)0))));
4724 yyval.classDef->__anon1.decl->loc = (yyloc);
4725 yyval.classDef->loc = (yyloc);
4726 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4727 ;
4728 }
4729 break;
4730 case 177:
4731 {
4732 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list, (((void *)0))));
4733 yyval.classDef->__anon1.decl->loc = (yyloc);
4734 yyval.classDef->loc = (yyloc);
4735 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4736 ;
4737 }
4738 break;
4739 case 178:
4740 {
4741 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].list, (((void *)0))));
4742 yyval.classDef->__anon1.decl->loc = (yyloc);
4743 yyval.classDef->loc = (yyloc);
4744 yyval.classDef->memberAccess = yyvsp[(1) - (3)].declMode;
4745 ;
4746 }
4747 break;
4748 case 179:
4749 {
4750 yyval.classDef = MkClassDefDeclaration(MkStructDeclaration(yyvsp[(2) - (2)].list, (((void *)0)), (((void *)0))));
4751 yyval.classDef->__anon1.decl->loc = (yyloc);
4752 yyval.classDef->loc = (yyloc);
4753 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4754 ;
4755 }
4756 break;
4757 case 180:
4758 {
4759 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (2)].instance));
4760 yyval.classDef->loc = (yyloc);
4761 yyval.classDef->__anon1.decl->loc = (yyloc);
4762 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4763 ;
4764 }
4765 break;
4766 case 181:
4767 {
4768 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (2)].instance));
4769 yyval.classDef->loc = (yyloc);
4770 yyval.classDef->__anon1.decl->loc = (yyloc);
4771 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4772 ;
4773 }
4774 break;
4775 case 182:
4776 {
4777 yyval.classDef = MkClassDefClassData(MkStructDeclaration(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].list, (((void *)0))));
4778 yyval.classDef->__anon1.decl->loc = (yyloc);
4779 yyval.classDef->loc = (yyloc);
4780 ;
4781 }
4782 break;
4783 case 183:
4784 {
4785 yyval.classDef = MkClassDefPropertyWatch(yyvsp[(1) - (1)].propertyWatch);
4786 yyval.classDef->loc = (yyloc);
4787 ;
4788 }
4789 break;
4790 case 184:
4791 {
4792 yyval.classDef = MkClassDefDesigner(yyvsp[(2) - (2)].id->string);
4793 FreeIdentifier(yyvsp[(2) - (2)].id);
4794 ;
4795 }
4796 break;
4797 case 185:
4798 {
4799 yyval.classDef = MkClassDefDesigner(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
4800 FreeSpecifier(yyvsp[(2) - (2)].specifier);
4801 ;
4802 }
4803 break;
4804 case 186:
4805 {
4806 yyval.classDef = MkClassDefDesignerDefaultProperty(yyvsp[(2) - (2)].id);
4807 ;
4808 }
4809 break;
4810 case 187:
4811 {
4812 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (1)].instance));
4813 yyval.classDef->loc = (yyloc);
4814 yyval.classDef->__anon1.decl->loc = (yyloc);
4815 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4816 ;
4817 }
4818 break;
4819 case 188:
4820 {
4821 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (1)].instance));
4822 yyval.classDef->loc = (yyloc);
4823 yyval.classDef->__anon1.decl->loc = (yyloc);
4824 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4825 ;
4826 }
4827 break;
4828 case 189:
4829 {
4830 yyval.classDef = MkClassDefDefaultProperty(yyvsp[(1) - (1)].list);
4831 if((*yyvsp[(1) - (1)].list).last)
4832 ((struct MemberInit *)(*yyvsp[(1) - (1)].list).last)->loc.end = (yylsp[(1) - (1)]).end;
4833 yyval.classDef->loc = (yyloc);
4834 ;
4835 }
4836 break;
4837 case 190:
4838 {
4839 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (2)].instance));
4840 yyval.classDef->loc = yyvsp[(1) - (2)].instance->loc;
4841 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4842 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4843 ;
4844 }
4845 break;
4846 case 191:
4847 {
4848 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(1) - (2)].instance));
4849 yyval.classDef->loc = yyvsp[(1) - (2)].instance->loc;
4850 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4851 yyval.classDef->memberAccess = memberAccessStack[defaultMemberAccess];
4852 ;
4853 }
4854 break;
4855 case 192:
4856 {
4857 yyval.classDef = MkClassDefFunction(yyvsp[(2) - (2)].classFunction);
4858 yyval.classDef->loc = (yyloc);
4859 yyval.classDef->loc.end.charPos++;
4860 yyval.classDef->loc.end.pos++;
4861 yyval.classDef->memberAccess = yyvsp[(1) - (2)].declMode;
4862 ;
4863 }
4864 break;
4865 case 193:
4866 {
4867 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (3)].instance));
4868 yyval.classDef->loc = (yyloc);
4869 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4870 yyval.classDef->memberAccess = yyvsp[(1) - (3)].declMode;
4871 ;
4872 }
4873 break;
4874 case 194:
4875 {
4876 yyval.classDef = MkClassDefDeclaration(MkDeclarationClassInst(yyvsp[(2) - (3)].instance));
4877 yyval.classDef->loc = (yyloc);
4878 yyval.classDef->__anon1.decl->loc = yyval.classDef->loc;
4879 yyval.classDef->memberAccess = yyvsp[(1) - (3)].declMode;
4880 ;
4881 }
4882 break;
4883 case 195:
4884 {
4885 yyval.classDef = MkClassDefDefaultProperty(yyvsp[(1) - (1)].list);
4886 yyval.classDef->loc = (yyloc);
4887 yyval.classDef->loc.end.charPos++;
4888 yyval.classDef->loc.end.pos++;
4889 ;
4890 }
4891 break;
4892 case 196:
4893 {
4894 yyval.list = MkList();
4895 ListAdd(yyval.list, yyvsp[(1) - (1)].classDef);
4896 ;
4897 }
4898 break;
4899 case 197:
4900 {
4901 yyval.list = yyvsp[(1) - (2)].list;
4902 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].classDef);
4903 ;
4904 }
4905 break;
4906 case 198:
4907 {
4908 yyval.list = yyvsp[(1) - (2)].list;
4909 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].classDef);
4910 ;
4911 }
4912 break;
4913 case 199:
4914 {
4915 yyerror();
4916 yyval.list = MkList();
4917 ListAdd(yyval.list, yyvsp[(1) - (1)].classDef);
4918 ;
4919 }
4920 break;
4921 case 202:
4922 {
4923 yyerror();
4924 yyval.list = yyvsp[(1) - (2)].list;
4925 ListAdd(yyval.list, yyvsp[(2) - (2)].classDef);
4926 ;
4927 }
4928 break;
4929 case 203:
4930 {
4931 yyval.list = yyvsp[(1) - (2)].list;
4932 ListAdd(yyval.list, yyvsp[(2) - (2)].classDef);
4933 ;
4934 }
4935 break;
4936 case 204:
4937 {
4938 yyval.templateDatatype = MkTemplateDatatype(yyvsp[(1) - (1)].list, (((void *)0)));
4939 ;
4940 }
4941 break;
4942 case 205:
4943 {
4944 yyval.templateDatatype = MkTemplateDatatype(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
4945 ;
4946 }
4947 break;
4948 case 206:
4949 {
4950 yyval.templateArgument = MkTemplateTypeArgument(MkTemplateDatatype(yyvsp[(1) - (1)].list, (((void *)0))));
4951 ;
4952 }
4953 break;
4954 case 207:
4955 {
4956 yyval.templateArgument = MkTemplateTypeArgument(MkTemplateDatatype(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator));
4957 ;
4958 }
4959 break;
4960 case 208:
4961 {
4962 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (2)].id, (((void *)0)), (((void *)0)));
4963 ;
4964 }
4965 break;
4966 case 209:
4967 {
4968 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (4)].id, (((void *)0)), yyvsp[(4) - (4)].templateArgument);
4969 ;
4970 }
4971 break;
4972 case 210:
4973 {
4974 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (4)].id, yyvsp[(4) - (4)].templateDatatype, (((void *)0)));
4975 ;
4976 }
4977 break;
4978 case 211:
4979 {
4980 yyval.templateParameter = MkTypeTemplateParameter(yyvsp[(2) - (6)].id, yyvsp[(4) - (6)].templateDatatype, yyvsp[(6) - (6)].templateArgument);
4981 ;
4982 }
4983 break;
4984 case 212:
4985 {
4986 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (2)].string), (((void *)0)), (((void *)0)));
4987 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(2) - (2)].string), yyvsp[(2) - (2)].string = 0);
4988 ;
4989 }
4990 break;
4991 case 213:
4992 {
4993 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (4)].string), (((void *)0)), yyvsp[(4) - (4)].templateArgument);
4994 ;
4995 }
4996 break;
4997 case 214:
4998 {
4999 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (4)].string), yyvsp[(4) - (4)].templateDatatype, (((void *)0)));
5000 ;
5001 }
5002 break;
5003 case 215:
5004 {
5005 yyval.templateParameter = MkTypeTemplateParameter(MkIdentifier(yyvsp[(2) - (6)].string), yyvsp[(4) - (6)].templateDatatype, yyvsp[(6) - (6)].templateArgument);
5006 ;
5007 }
5008 break;
5009 case 216:
5010 {
5011 yyval.templateArgument = MkTemplateIdentifierArgument(yyvsp[(1) - (1)].id);
5012 ;
5013 }
5014 break;
5015 case 217:
5016 {
5017 yyval.templateParameter = MkIdentifierTemplateParameter(yyvsp[(1) - (1)].id, 0, (((void *)0)));
5018 ;
5019 }
5020 break;
5021 case 218:
5022 {
5023 yyval.templateParameter = MkIdentifierTemplateParameter(yyvsp[(1) - (3)].id, 0, yyvsp[(3) - (3)].templateArgument);
5024 ;
5025 }
5026 break;
5027 case 219:
5028 {
5029 yyval.templateArgument = MkTemplateExpressionArgument(yyvsp[(1) - (1)].exp);
5030 ;
5031 }
5032 break;
5033 case 220:
5034 {
5035 yyval.templateParameter = MkExpressionTemplateParameter(yyvsp[(2) - (4)].id, MkTemplateDatatype(yyvsp[(1) - (4)].list, (((void *)0))), yyvsp[(4) - (4)].templateArgument);
5036 ;
5037 }
5038 break;
5039 case 221:
5040 {
5041 yyval.templateParameter = MkExpressionTemplateParameter(yyvsp[(3) - (5)].id, MkTemplateDatatype(yyvsp[(1) - (5)].list, yyvsp[(2) - (5)].declarator), yyvsp[(5) - (5)].templateArgument);
5042 ;
5043 }
5044 break;
5045 case 225:
5046 {
5047 yyval.list = MkList();
5048 ListAdd(yyval.list, yyvsp[(1) - (1)].templateParameter);
5049 ;
5050 }
5051 break;
5052 case 226:
5053 {
5054 yyval.list = yyvsp[(1) - (3)].list;
5055 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].templateParameter);
5056 ;
5057 }
5058 break;
5059 case 230:
5060 {
5061 yyval.templateArgument = yyvsp[(3) - (3)].templateArgument;
5062 yyval.templateArgument->name = yyvsp[(1) - (3)].id;
5063 yyval.templateArgument->loc = (yyloc);
5064 ;
5065 }
5066 break;
5067 case 231:
5068 {
5069 yyval.templateArgument = yyvsp[(3) - (3)].templateArgument;
5070 yyval.templateArgument->name = yyvsp[(1) - (3)].id;
5071 yyval.templateArgument->loc = (yyloc);
5072 ;
5073 }
5074 break;
5075 case 232:
5076 {
5077 yyval.templateArgument = yyvsp[(3) - (3)].templateArgument;
5078 yyval.templateArgument->name = yyvsp[(1) - (3)].id;
5079 yyval.templateArgument->loc = (yyloc);
5080 ;
5081 }
5082 break;
5083 case 233:
5084 {
5085 yyval.list = MkList();
5086 ListAdd(yyval.list, yyvsp[(1) - (1)].templateArgument);
5087 ;
5088 }
5089 break;
5090 case 234:
5091 {
5092 yyval.list = yyvsp[(1) - (3)].list;
5093 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].templateArgument);
5094 ;
5095 }
5096 break;
5097 case 235:
5098 {
5099 if(curContext != globalContext)
5100 PopContext(curContext);
5101 yyval.context = PushContext();
5102 ;
5103 }
5104 break;
5105 case 236:
5106 {
5107 (void)yyvsp[(1) - (2)].context;
5108 yyval.symbol = DeclClassAddNameSpace(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
5109 FreeIdentifier(yyvsp[(2) - (2)].id);
5110 yyval.symbol->nameLoc = (yylsp[(2) - (2)]);
5111 memberAccessStack[++defaultMemberAccess] = 2;
5112 ;
5113 }
5114 break;
5115 case 237:
5116 {
5117 (void)yyvsp[(1) - (2)].context;
5118 yyval.symbol = DeclClass(yyvsp[(2) - (2)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
5119 yyval.symbol->nameLoc = (yylsp[(2) - (2)]);
5120 FreeSpecifier(yyvsp[(2) - (2)].specifier);
5121 ++defaultMemberAccess;
5122 memberAccessStack[defaultMemberAccess] = 2;
5123 ;
5124 }
5125 break;
5126 case 238:
5127 {
5128 (void)yyvsp[(2) - (3)].context;
5129 yyval.symbol = DeclClassAddNameSpace(yyvsp[(3) - (3)].id->_class, yyvsp[(3) - (3)].id->string);
5130 FreeIdentifier(yyvsp[(1) - (3)].id);
5131 FreeIdentifier(yyvsp[(3) - (3)].id);
5132 yyval.symbol->nameLoc = (yylsp[(3) - (3)]);
5133 yyval.symbol->isRemote = 1;
5134 memberAccessStack[++defaultMemberAccess] = 2;
5135 ;
5136 }
5137 break;
5138 case 239:
5139 {
5140 (void)yyvsp[(2) - (3)].context;
5141 yyval.symbol = DeclClass(yyvsp[(3) - (3)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (3)].specifier->__anon1.__anon1.name);
5142 FreeIdentifier(yyvsp[(1) - (3)].id);
5143 yyval.symbol->nameLoc = (yylsp[(3) - (3)]);
5144 yyval.symbol->isRemote = 1;
5145 FreeSpecifier(yyvsp[(3) - (3)].specifier);
5146 memberAccessStack[++defaultMemberAccess] = 2;
5147 ;
5148 }
5149 break;
5150 case 240:
5151 {
5152 (void)yyvsp[(1) - (5)].context;
5153 yyval.symbol = DeclClassAddNameSpace(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
5154 yyval.symbol->templateParams = yyvsp[(4) - (5)].list;
5155 FreeIdentifier(yyvsp[(2) - (5)].id);
5156 yyval.symbol->nameLoc = (yylsp[(2) - (5)]);
5157 memberAccessStack[++defaultMemberAccess] = 2;
5158 ;
5159 }
5160 break;
5161 case 241:
5162 {
5163 (void)yyvsp[(1) - (5)].context;
5164 yyval.symbol = DeclClass(yyvsp[(2) - (5)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (5)].specifier->__anon1.__anon1.name);
5165 yyval.symbol->templateParams = yyvsp[(4) - (5)].list;
5166 yyval.symbol->nameLoc = (yylsp[(2) - (5)]);
5167 FreeSpecifier(yyvsp[(2) - (5)].specifier);
5168 ++defaultMemberAccess;
5169 memberAccessStack[defaultMemberAccess] = 2;
5170 ;
5171 }
5172 break;
5173 case 242:
5174 {
5175 (void)yyvsp[(2) - (6)].context;
5176 yyval.symbol = DeclClassAddNameSpace(yyvsp[(3) - (6)].id->_class, yyvsp[(3) - (6)].id->string);
5177 yyval.symbol->templateParams = yyvsp[(5) - (6)].list;
5178 FreeIdentifier(yyvsp[(1) - (6)].id);
5179 FreeIdentifier(yyvsp[(3) - (6)].id);
5180 yyval.symbol->nameLoc = (yylsp[(3) - (6)]);
5181 yyval.symbol->isRemote = 1;
5182 memberAccessStack[++defaultMemberAccess] = 2;
5183 ;
5184 }
5185 break;
5186 case 243:
5187 {
5188 (void)yyvsp[(2) - (6)].context;
5189 yyval.symbol = DeclClass(yyvsp[(3) - (6)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name);
5190 yyval.symbol->templateParams = yyvsp[(5) - (6)].list;
5191 FreeIdentifier(yyvsp[(1) - (6)].id);
5192 yyval.symbol->nameLoc = (yylsp[(3) - (6)]);
5193 yyval.symbol->isRemote = 1;
5194 FreeSpecifier(yyvsp[(3) - (6)].specifier);
5195 memberAccessStack[++defaultMemberAccess] = 2;
5196 ;
5197 }
5198 break;
5199 case 244:
5200 {
5201 yyval._class->loc = (yyloc);
5202 yyval._class = yyvsp[(1) - (2)]._class;
5203 ;
5204 }
5205 break;
5206 case 245:
5207 {
5208 yyval._class = yyvsp[(1) - (2)]._class;
5209 yyval._class->definitions = MkList();
5210 yyval._class->blockStart = (yylsp[(2) - (2)]);
5211 yyval._class->loc = (yyloc);
5212 if(defaultMemberAccess > -1)
5213 defaultMemberAccess--;
5214 PopContext(curContext);
5215 ;
5216 }
5217 break;
5218 case 246:
5219 {
5220 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), MkList());
5221 yyval._class->blockStart = (yylsp[(2) - (3)]);
5222 yyval._class->loc = (yyloc);
5223 if(defaultMemberAccess > -1)
5224 defaultMemberAccess--;
5225 PopContext(curContext);
5226 ;
5227 }
5228 break;
5229 case 247:
5230 {
5231 yyval._class = yyvsp[(1) - (3)]._class;
5232 yyval._class->definitions = MkList();
5233 yyval._class->blockStart = (yylsp[(2) - (3)]);
5234 yyval._class->loc = (yyloc);
5235 if(defaultMemberAccess > -1)
5236 defaultMemberAccess--;
5237 PopContext(curContext);
5238 ;
5239 }
5240 break;
5241 case 248:
5242 {
5243 (void)yyvsp[(1) - (3)].context;
5244 yyval._class = MkClass(DeclClassAddNameSpace(yyvsp[(2) - (3)].id->_class, yyvsp[(2) - (3)].id->string), (((void *)0)), (((void *)0)));
5245 FreeIdentifier(yyvsp[(2) - (3)].id);
5246 if(defaultMemberAccess > -1)
5247 defaultMemberAccess--;
5248 PopContext(curContext);
5249 ;
5250 }
5251 break;
5252 case 249:
5253 {
5254 (void)yyvsp[(1) - (3)].context;
5255 yyval._class = MkClass(DeclClass(yyvsp[(2) - (3)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (3)].specifier->__anon1.__anon1.name), (((void *)0)), (((void *)0)));
5256 FreeSpecifier(yyvsp[(2) - (3)].specifier);
5257 if(defaultMemberAccess > -1)
5258 defaultMemberAccess--;
5259 PopContext(curContext);
5260 ;
5261 }
5262 break;
5263 case 250:
5264 {
5265 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, yyvsp[(3) - (3)].list, (((void *)0)));
5266 ;
5267 }
5268 break;
5269 case 251:
5270 {
5271 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), yyvsp[(3) - (3)].list);
5272 yyval._class->deleteWatchable = deleteWatchable;
5273 deleteWatchable = 0;
5274 yyval._class->blockStart = (yylsp[(2) - (3)]);
5275 yyval._class->loc = (yyloc);
5276 yyval._class->loc.end.charPos++;
5277 yyval._class->loc.end.pos++;
5278 if(defaultMemberAccess > -1)
5279 defaultMemberAccess--;
5280 PopContext(curContext);
5281 ;
5282 }
5283 break;
5284 case 252:
5285 {
5286 yyval._class = yyvsp[(1) - (3)]._class;
5287 yyval._class->definitions = yyvsp[(3) - (3)].list;
5288 yyval._class->deleteWatchable = deleteWatchable;
5289 deleteWatchable = 0;
5290 yyval._class->blockStart = (yylsp[(2) - (3)]);
5291 yyval._class->loc = (yyloc);
5292 yyval._class->loc.end.charPos++;
5293 yyval._class->loc.end.pos++;
5294 if(defaultMemberAccess > -1)
5295 defaultMemberAccess--;
5296 PopContext(curContext);
5297 ;
5298 }
5299 break;
5300 case 253:
5301 {
5302 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), yyvsp[(3) - (3)].list);
5303 yyval._class->deleteWatchable = deleteWatchable;
5304 deleteWatchable = 0;
5305 yyval._class->blockStart = (yylsp[(2) - (3)]);
5306 yyval._class->loc = (yyloc);
5307 yyval._class->loc.end.charPos++;
5308 yyval._class->loc.end.pos++;
5309 if(defaultMemberAccess > -1)
5310 defaultMemberAccess--;
5311 PopContext(curContext);
5312 ;
5313 }
5314 break;
5315 case 254:
5316 {
5317 yyval._class = yyvsp[(1) - (3)]._class;
5318 yyval._class->definitions = yyvsp[(3) - (3)].list;
5319 yyval._class->deleteWatchable = deleteWatchable;
5320 deleteWatchable = 0;
5321 yyval._class->blockStart = (yylsp[(2) - (3)]);
5322 yyval._class->loc = (yyloc);
5323 yyval._class->loc.end.charPos++;
5324 yyval._class->loc.end.pos++;
5325 if(defaultMemberAccess > -1)
5326 defaultMemberAccess--;
5327 PopContext(curContext);
5328 ;
5329 }
5330 break;
5331 case 255:
5332 {
5333 yyval._class = MkClass(yyvsp[(1) - (3)].symbol, (((void *)0)), MkList());
5334 yyval._class->deleteWatchable = deleteWatchable;
5335 deleteWatchable = 0;
5336 yyval._class->blockStart = (yylsp[(2) - (3)]);
5337 yyval._class->loc = (yyloc);
5338 yyval._class->loc.end.charPos++;
5339 yyval._class->loc.end.pos++;
5340 if(defaultMemberAccess > -1)
5341 defaultMemberAccess--;
5342 PopContext(curContext);
5343 ;
5344 }
5345 break;
5346 case 256:
5347 {
5348 yyval._class = yyvsp[(1) - (3)]._class;
5349 yyval._class->definitions = MkList();
5350 yyval._class->deleteWatchable = deleteWatchable;
5351 deleteWatchable = 0;
5352 yyval._class->blockStart = (yylsp[(2) - (3)]);
5353 yyval._class->loc = (yyloc);
5354 yyval._class->loc.end.charPos++;
5355 yyval._class->loc.end.pos++;
5356 if(defaultMemberAccess > -1)
5357 defaultMemberAccess--;
5358 PopContext(curContext);
5359 ;
5360 }
5361 break;
5362 case 257:
5363 {
5364 yyval.id = MkIdentifier(yytext);
5365 yyval.id->loc = (yylsp[(1) - (1)]);
5366 ;
5367 }
5368 break;
5369 case 259:
5370 {
5371 yyval.exp = MkExpBrackets(yyvsp[(2) - (3)].list);
5372 yyval.exp->loc = (yyloc);
5373 ;
5374 }
5375 break;
5376 case 260:
5377 {
5378 yyval.exp = MkExpString(yyvsp[(1) - (1)].string);
5379 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(1) - (1)].string), yyvsp[(1) - (1)].string = 0);
5380 yyval.exp->loc = (yyloc);
5381 ;
5382 }
5383 break;
5384 case 261:
5385 {
5386 yyval.exp = MkExpIntlString(yyvsp[(2) - (2)].string, (((void *)0)));
5387 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(2) - (2)].string), yyvsp[(2) - (2)].string = 0);
5388 yyval.exp->loc = (yyloc);
5389 ;
5390 }
5391 break;
5392 case 262:
5393 {
5394 yyval.exp = MkExpIntlString(yyvsp[(4) - (4)].string, yyvsp[(2) - (4)].string);
5395 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(2) - (4)].string), yyvsp[(2) - (4)].string = 0);
5396 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(4) - (4)].string), yyvsp[(4) - (4)].string = 0);
5397 yyval.exp->loc = (yyloc);
5398 ;
5399 }
5400 break;
5401 case 263:
5402 {
5403 yyval.exp = MkExpConstant(yytext);
5404 yyval.exp->loc = (yyloc);
5405 ;
5406 }
5407 break;
5408 case 264:
5409 {
5410 yyval.exp = MkExpIdentifier(yyvsp[(1) - (1)].id);
5411 yyval.exp->loc = (yyloc);
5412 ;
5413 }
5414 break;
5415 case 265:
5416 {
5417 yyval.exp = MkExpInstance(yyvsp[(1) - (1)].instance);
5418 yyval.exp->loc = (yyloc);
5419 ;
5420 }
5421 break;
5422 case 266:
5423 {
5424 yyval.exp = MkExpExtensionCompound(yyvsp[(3) - (4)].stmt);
5425 yyval.exp->loc = (yyloc);
5426 ;
5427 }
5428 break;
5429 case 267:
5430 {
5431 yyval.exp = MkExpExtensionExpression(yyvsp[(3) - (4)].list);
5432 yyval.exp->loc = (yyloc);
5433 ;
5434 }
5435 break;
5436 case 268:
5437 {
5438 yyval.exp = MkExpExtensionInitializer(yyvsp[(3) - (5)].typeName, yyvsp[(5) - (5)].initializer);
5439 yyval.exp->loc = (yyloc);
5440 ;
5441 }
5442 break;
5443 case 269:
5444 {
5445 yyval.exp = MkExpExtensionInitializer(yyvsp[(3) - (8)].typeName, MkInitializerAssignment(MkExpExtensionInitializer(yyvsp[(6) - (8)].typeName, yyvsp[(8) - (8)].initializer)));
5446 yyval.exp->loc = (yyloc);
5447 ;
5448 }
5449 break;
5450 case 270:
5451 {
5452 char * constant = yyvsp[(1) - (2)].exp->__anon1.__anon1.constant;
5453 int len = strlen(constant);
5454
5455 if(constant[len - 1] == '.')
5456 {
5457 constant[len - 1] = 0;
5458 yyval.exp = MkExpMember(yyvsp[(1) - (2)].exp, yyvsp[(2) - (2)].id);
5459 yyval.exp->loc = (yyloc);
5460 }
5461 else
5462 yyerror();
5463 ;
5464 }
5465 break;
5466 case 271:
5467 {
5468 yyval.exp = yyvsp[(1) - (1)].exp;
5469 ;
5470 }
5471 break;
5472 case 273:
5473 {
5474 yyval.exp = MkExpWideString(yytext);
5475 yyval.exp->loc = (yyloc);
5476 ;
5477 }
5478 break;
5479 case 274:
5480 {
5481 struct Expression * exp = MkExpDummy();
5482
5483 exp->loc.start = (yylsp[(1) - (2)]).end;
5484 exp->loc.end = (yylsp[(2) - (2)]).start;
5485 yyval.exp = MkExpBrackets(MkListOne(exp));
5486 yyval.exp->loc = (yyloc);
5487 yyerror();
5488 ;
5489 }
5490 break;
5491 case 275:
5492 {
5493 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5494 yyval.exp->loc = (yyloc);
5495 ;
5496 }
5497 break;
5498 case 276:
5499 {
5500 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5501 yyval.exp->loc = (yyloc);
5502 ;
5503 }
5504 break;
5505 case 277:
5506 {
5507 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5508 yyval.exp->loc = (yyloc);
5509 ;
5510 }
5511 break;
5512 case 278:
5513 {
5514 yyval.exp = MkExpNew(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5515 yyval.exp->loc = (yyloc);
5516 ;
5517 }
5518 break;
5519 case 279:
5520 {
5521 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5522 yyval.exp->loc = (yyloc);
5523 ;
5524 }
5525 break;
5526 case 280:
5527 {
5528 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (6)].list, yyvsp[(3) - (6)].declarator), yyvsp[(5) - (6)].exp);
5529 yyval.exp->loc = (yyloc);
5530 ;
5531 }
5532 break;
5533 case 281:
5534 {
5535 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5536 yyval.exp->loc = (yyloc);
5537 ;
5538 }
5539 break;
5540 case 282:
5541 {
5542 yyval.exp = MkExpNew0(MkTypeName(yyvsp[(2) - (5)].list, (((void *)0))), yyvsp[(4) - (5)].exp);
5543 yyval.exp->loc = (yyloc);
5544 ;
5545 }
5546 break;
5547 case 283:
5548 {
5549 yyval.exp = MkExpRenew(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5550 yyval.exp->loc = (yyloc);
5551 ;
5552 }
5553 break;
5554 case 284:
5555 {
5556 yyval.exp = MkExpRenew(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5557 yyval.exp->loc = (yyloc);
5558 ;
5559 }
5560 break;
5561 case 285:
5562 {
5563 yyval.exp = MkExpRenew(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5564 yyval.exp->loc = (yyloc);
5565 ;
5566 }
5567 break;
5568 case 286:
5569 {
5570 yyval.exp = MkExpRenew(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5571 yyval.exp->loc = (yyloc);
5572 ;
5573 }
5574 break;
5575 case 287:
5576 {
5577 yyval.exp = MkExpRenew0(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5578 yyval.exp->loc = (yyloc);
5579 ;
5580 }
5581 break;
5582 case 288:
5583 {
5584 yyval.exp = MkExpRenew0(yyvsp[(2) - (7)].exp, MkTypeName(yyvsp[(3) - (7)].list, yyvsp[(4) - (7)].declarator), yyvsp[(6) - (7)].exp);
5585 yyval.exp->loc = (yyloc);
5586 ;
5587 }
5588 break;
5589 case 289:
5590 {
5591 yyval.exp = MkExpRenew0(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5592 yyval.exp->loc = (yyloc);
5593 ;
5594 }
5595 break;
5596 case 290:
5597 {
5598 yyval.exp = MkExpRenew0(yyvsp[(2) - (6)].exp, MkTypeName(yyvsp[(3) - (6)].list, (((void *)0))), yyvsp[(5) - (6)].exp);
5599 yyval.exp->loc = (yyloc);
5600 ;
5601 }
5602 break;
5603 case 291:
5604 {
5605 yyval.exp = MkExpClass(yyvsp[(3) - (4)].list, (((void *)0)));
5606 yyval.exp->loc = (yyloc);
5607 ;
5608 }
5609 break;
5610 case 292:
5611 {
5612 yyval.exp = MkExpClass(yyvsp[(3) - (5)].list, yyvsp[(4) - (5)].declarator);
5613 yyval.exp->loc = (yyloc);
5614 ;
5615 }
5616 break;
5617 case 293:
5618 {
5619 yyval.exp = MkExpClass(MkListOne(MkSpecifierName(yyvsp[(3) - (4)].id->string)), (((void *)0)));
5620 FreeIdentifier(yyvsp[(3) - (4)].id);
5621 yyval.exp->loc = (yyloc);
5622 ;
5623 }
5624 break;
5625 case 294:
5626 {
5627 yyval.exp = MkExpVaArg(yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].typeName);
5628 yyval.exp->loc = (yyloc);
5629 ;
5630 }
5631 break;
5632 case 295:
5633 {
5634 yyval.exp = MkExpClassData(yyvsp[(3) - (4)].id);
5635 yyval.exp->loc = (yyloc);
5636 ;
5637 }
5638 break;
5639 case 300:
5640 {
5641 yyval.exp = MkExpArray(yyvsp[(2) - (3)].list);
5642 yyval.exp->loc = (yyloc);
5643 ;
5644 }
5645 break;
5646 case 301:
5647 {
5648 yyval.exp = MkExpArray((((void *)0)));
5649 yyval.exp->loc = (yyloc);
5650 ;
5651 }
5652 break;
5653 case 302:
5654 {
5655 yyval.exp = MkExpInstance(yyvsp[(1) - (1)].instance);
5656 yyval.exp->loc = (yyloc);
5657 ;
5658 }
5659 break;
5660 case 303:
5661 {
5662 yyval.exp = MkExpInstance(yyvsp[(1) - (2)].instance);
5663 yyval.exp->loc = (yyloc);
5664 ;
5665 }
5666 break;
5667 case 304:
5668 {
5669 yyerror();
5670 yyval.exp = MkExpBrackets(yyvsp[(2) - (2)].list);
5671 yyval.exp->loc = (yyloc);
5672 ;
5673 }
5674 break;
5675 case 305:
5676 {
5677 yyval.exp = MkExpBrackets(yyvsp[(2) - (2)].list);
5678 yyval.exp->loc = (yyloc);
5679 ;
5680 }
5681 break;
5682 case 307:
5683 {
5684 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5685 yyval.exp->loc = (yyloc);
5686 ;
5687 }
5688 break;
5689 case 308:
5690 {
5691 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5692 yyval.exp->loc = (yyloc);
5693 ;
5694 }
5695 break;
5696 case 309:
5697 {
5698 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, MkList());
5699 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
5700 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
5701 yyval.exp->loc = (yyloc);
5702 ;
5703 }
5704 break;
5705 case 310:
5706 {
5707 yyval.exp = MkExpCall(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5708 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (4)]).start;
5709 yyval.exp->__anon1.call.argLoc.end = (yylsp[(4) - (4)]).end;
5710 yyval.exp->loc = (yyloc);
5711 ;
5712 }
5713 break;
5714 case 311:
5715 {
5716 yyval.exp = MkExpCall(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5717 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (4)]).start;
5718 yyval.exp->__anon1.call.argLoc.end = (yylsp[(4) - (4)]).end;
5719 yyval.exp->loc = (yyloc);
5720 if((*yyvsp[(3) - (4)].list).last)
5721 ((struct Expression *)(*yyvsp[(3) - (4)].list).last)->loc.end = (yylsp[(4) - (4)]).start;
5722 ;
5723 }
5724 break;
5725 case 312:
5726 {
5727 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5728 yyval.exp->loc = (yyloc);
5729 ;
5730 }
5731 break;
5732 case 313:
5733 {
5734 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5735 yyval.exp->loc = (yyloc);
5736 ;
5737 }
5738 break;
5739 case 314:
5740 {
5741 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, INC_OP, (((void *)0)));
5742 yyval.exp->loc = (yyloc);
5743 ;
5744 }
5745 break;
5746 case 315:
5747 {
5748 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, DEC_OP, (((void *)0)));
5749 yyval.exp->loc = (yyloc);
5750 ;
5751 }
5752 break;
5753 case 316:
5754 {
5755 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5756 yyval.exp->loc = (yyloc);
5757 ;
5758 }
5759 break;
5760 case 317:
5761 {
5762 yyval.exp = MkExpIndex(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5763 yyval.exp->loc = (yyloc);
5764 ;
5765 }
5766 break;
5767 case 318:
5768 {
5769 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, MkList());
5770 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
5771 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
5772 yyval.exp->loc = (yyloc);
5773 ;
5774 }
5775 break;
5776 case 319:
5777 {
5778 yyval.exp = MkExpCall(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list);
5779 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (4)]).start;
5780 yyval.exp->__anon1.call.argLoc.end = (yylsp[(4) - (4)]).end;
5781 yyval.exp->loc = (yyloc);
5782 ;
5783 }
5784 break;
5785 case 320:
5786 {
5787 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5788 yyval.exp->loc = (yyloc);
5789 ;
5790 }
5791 break;
5792 case 321:
5793 {
5794 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].id);
5795 yyval.exp->loc = (yyloc);
5796 ;
5797 }
5798 break;
5799 case 322:
5800 {
5801 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, INC_OP, (((void *)0)));
5802 yyval.exp->loc = (yyloc);
5803 ;
5804 }
5805 break;
5806 case 323:
5807 {
5808 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, DEC_OP, (((void *)0)));
5809 yyval.exp->loc = (yyloc);
5810 ;
5811 }
5812 break;
5813 case 324:
5814 {
5815 yyval.list = MkList();
5816 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5817 ;
5818 }
5819 break;
5820 case 325:
5821 {
5822 yyval.list = MkList();
5823 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5824 ;
5825 }
5826 break;
5827 case 326:
5828 {
5829 yyval.list = yyvsp[(1) - (3)].list;
5830 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5831 ;
5832 }
5833 break;
5834 case 327:
5835 {
5836 yyval.list = yyvsp[(1) - (3)].list;
5837 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5838 ;
5839 }
5840 break;
5841 case 328:
5842 {
5843 yyval.list = MkList();
5844 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5845 ;
5846 }
5847 break;
5848 case 329:
5849 {
5850 yyval.list = MkList();
5851 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
5852 ;
5853 }
5854 break;
5855 case 330:
5856 {
5857 yyval.list = yyvsp[(1) - (3)].list;
5858 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5859 ;
5860 }
5861 break;
5862 case 331:
5863 {
5864 yyval.list = yyvsp[(1) - (3)].list;
5865 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
5866 ;
5867 }
5868 break;
5869 case 332:
5870 {
5871 struct Expression * exp = MkExpDummy();
5872
5873 yyerror();
5874 exp->loc.start = (yylsp[(2) - (2)]).end;
5875 exp->loc.end = (yylsp[(2) - (2)]).end;
5876 yyval.list = yyvsp[(1) - (2)].list;
5877 ListAdd(yyvsp[(1) - (2)].list, exp);
5878 ;
5879 }
5880 break;
5881 case 333:
5882 {
5883 yyval.exp = MkExpOp((((void *)0)), INC_OP, yyvsp[(2) - (2)].exp);
5884 yyval.exp->loc = (yyloc);
5885 ;
5886 }
5887 break;
5888 case 334:
5889 {
5890 yyval.exp = MkExpOp((((void *)0)), DEC_OP, yyvsp[(2) - (2)].exp);
5891 yyval.exp->loc = (yyloc);
5892 ;
5893 }
5894 break;
5895 case 335:
5896 {
5897 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
5898 yyval.exp->loc = (yyloc);
5899 ;
5900 }
5901 break;
5902 case 336:
5903 {
5904 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
5905 yyval.exp->loc = (yyloc);
5906 ;
5907 }
5908 break;
5909 case 337:
5910 {
5911 yyval.exp = MkExpOp((((void *)0)), SIZEOF, yyvsp[(2) - (2)].exp);
5912 yyval.exp->loc = (yyloc);
5913 ;
5914 }
5915 break;
5916 case 338:
5917 {
5918 yyval.exp = MkExpTypeSize(yyvsp[(3) - (4)].typeName);
5919 yyval.exp->loc = (yyloc);
5920 ;
5921 }
5922 break;
5923 case 339:
5924 {
5925 yyval.exp = MkExpClassSize(yyvsp[(4) - (5)].specifier);
5926 yyval.exp->loc = (yyloc);
5927 ;
5928 }
5929 break;
5930 case 340:
5931 {
5932 yyval.exp = MkExpClassSize(yyvsp[(4) - (5)].specifier);
5933 yyval.exp->loc = (yyloc);
5934 ;
5935 }
5936 break;
5937 case 341:
5938 {
5939 yyval.exp = MkExpOp((((void *)0)), ALIGNOF, yyvsp[(2) - (2)].exp);
5940 yyval.exp->loc = (yyloc);
5941 ;
5942 }
5943 break;
5944 case 342:
5945 {
5946 yyval.exp = MkExpTypeAlign(yyvsp[(3) - (4)].typeName);
5947 yyval.exp->loc = (yyloc);
5948 ;
5949 }
5950 break;
5951 case 343:
5952 {
5953 yyval.exp = MkExpOffsetOf(yyvsp[(3) - (6)].typeName, yyvsp[(5) - (6)].id);
5954 yyval.exp->loc = (yyloc);
5955 ;
5956 }
5957 break;
5958 case 346:
5959 {
5960 yyval.i = '&';
5961 ;
5962 }
5963 break;
5964 case 347:
5965 {
5966 yyval.i = '*';
5967 ;
5968 }
5969 break;
5970 case 348:
5971 {
5972 yyval.i = '+';
5973 ;
5974 }
5975 break;
5976 case 349:
5977 {
5978 yyval.i = '-';
5979 ;
5980 }
5981 break;
5982 case 350:
5983 {
5984 yyval.i = '~';
5985 ;
5986 }
5987 break;
5988 case 351:
5989 {
5990 yyval.i = '!';
5991 ;
5992 }
5993 break;
5994 case 352:
5995 {
5996 yyval.i = DELETE;
5997 ;
5998 }
5999 break;
6000 case 353:
6001 {
6002 yyval.i = _INCREF;
6003 ;
6004 }
6005 break;
6006 case 355:
6007 {
6008 yyval.exp = MkExpCast(yyvsp[(2) - (4)].typeName, yyvsp[(4) - (4)].exp);
6009 yyval.exp->loc = (yyloc);
6010 ;
6011 }
6012 break;
6013 case 357:
6014 {
6015 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
6016 yyval.exp->loc = (yyloc);
6017 ;
6018 }
6019 break;
6020 case 358:
6021 {
6022 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
6023 yyval.exp->loc = (yyloc);
6024 ;
6025 }
6026 break;
6027 case 359:
6028 {
6029 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6030 yyval.exp->loc = (yyloc);
6031 ;
6032 }
6033 break;
6034 case 360:
6035 {
6036 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
6037 yyval.exp->loc = (yyloc);
6038 ;
6039 }
6040 break;
6041 case 361:
6042 {
6043 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
6044 yyval.exp->loc = (yyloc);
6045 ;
6046 }
6047 break;
6048 case 362:
6049 {
6050 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6051 yyval.exp->loc = (yyloc);
6052 ;
6053 }
6054 break;
6055 case 364:
6056 {
6057 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6058 yyval.exp->loc = (yyloc);
6059 ;
6060 }
6061 break;
6062 case 365:
6063 {
6064 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6065 yyval.exp->loc = (yyloc);
6066 ;
6067 }
6068 break;
6069 case 366:
6070 {
6071 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6072 yyval.exp->loc = (yyloc);
6073 ;
6074 }
6075 break;
6076 case 367:
6077 {
6078 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6079 yyval.exp->loc = (yyloc);
6080 ;
6081 }
6082 break;
6083 case 369:
6084 {
6085 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6086 yyval.exp->loc = (yyloc);
6087 ;
6088 }
6089 break;
6090 case 370:
6091 {
6092 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6093 yyval.exp->loc = (yyloc);
6094 ;
6095 }
6096 break;
6097 case 371:
6098 {
6099 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6100 yyval.exp->loc = (yyloc);
6101 ;
6102 }
6103 break;
6104 case 372:
6105 {
6106 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6107 yyval.exp->loc = (yyloc);
6108 ;
6109 }
6110 break;
6111 case 373:
6112 {
6113 yyval.exp = yyvsp[(1) - (2)].exp;
6114 skipErrors = 1;
6115 ;
6116 }
6117 break;
6118 case 375:
6119 {
6120 skipErrors = 0;
6121 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, '<', yyvsp[(2) - (2)].exp);
6122 yyval.exp->loc = (yyloc);
6123 ;
6124 }
6125 break;
6126 case 376:
6127 {
6128 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6129 yyval.exp->loc = (yyloc);
6130 ;
6131 }
6132 break;
6133 case 377:
6134 {
6135 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6136 yyval.exp->loc = (yyloc);
6137 ;
6138 }
6139 break;
6140 case 378:
6141 {
6142 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6143 yyval.exp->loc = (yyloc);
6144 ;
6145 }
6146 break;
6147 case 379:
6148 {
6149 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '<', yyvsp[(3) - (3)].exp);
6150 yyval.exp->loc = (yyloc);
6151 ;
6152 }
6153 break;
6154 case 380:
6155 {
6156 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6157 yyval.exp->loc = (yyloc);
6158 ;
6159 }
6160 break;
6161 case 381:
6162 {
6163 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6164 yyval.exp->loc = (yyloc);
6165 ;
6166 }
6167 break;
6168 case 382:
6169 {
6170 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6171 yyval.exp->loc = (yyloc);
6172 ;
6173 }
6174 break;
6175 case 384:
6176 {
6177 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6178 yyval.exp->loc = (yyloc);
6179 ;
6180 }
6181 break;
6182 case 385:
6183 {
6184 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6185 yyval.exp->loc = (yyloc);
6186 ;
6187 }
6188 break;
6189 case 386:
6190 {
6191 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6192 yyval.exp->loc = (yyloc);
6193 ;
6194 }
6195 break;
6196 case 387:
6197 {
6198 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6199 yyval.exp->loc = (yyloc);
6200 ;
6201 }
6202 break;
6203 case 388:
6204 {
6205 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6206 yyval.exp->loc = (yyloc);
6207 ;
6208 }
6209 break;
6210 case 389:
6211 {
6212 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6213 yyval.exp->loc = (yyloc);
6214 ;
6215 }
6216 break;
6217 case 390:
6218 {
6219 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6220 yyval.exp->loc = (yyloc);
6221 ;
6222 }
6223 break;
6224 case 391:
6225 {
6226 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6227 yyval.exp->loc = (yyloc);
6228 ;
6229 }
6230 break;
6231 case 393:
6232 {
6233 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6234 yyval.exp->loc = (yyloc);
6235 ;
6236 }
6237 break;
6238 case 394:
6239 {
6240 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6241 yyval.exp->loc = (yyloc);
6242 ;
6243 }
6244 break;
6245 case 395:
6246 {
6247 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6248 yyval.exp->loc = (yyloc);
6249 ;
6250 }
6251 break;
6252 case 396:
6253 {
6254 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
6255 yyval.exp->loc = (yyloc);
6256 ;
6257 }
6258 break;
6259 case 398:
6260 {
6261 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6262 yyval.exp->loc = (yyloc);
6263 ;
6264 }
6265 break;
6266 case 399:
6267 {
6268 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6269 yyval.exp->loc = (yyloc);
6270 ;
6271 }
6272 break;
6273 case 400:
6274 {
6275 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6276 yyval.exp->loc = (yyloc);
6277 ;
6278 }
6279 break;
6280 case 401:
6281 {
6282 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
6283 yyval.exp->loc = (yyloc);
6284 ;
6285 }
6286 break;
6287 case 403:
6288 {
6289 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6290 yyval.exp->loc = (yyloc);
6291 ;
6292 }
6293 break;
6294 case 404:
6295 {
6296 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6297 yyval.exp->loc = (yyloc);
6298 ;
6299 }
6300 break;
6301 case 405:
6302 {
6303 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6304 yyval.exp->loc = (yyloc);
6305 ;
6306 }
6307 break;
6308 case 406:
6309 {
6310 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
6311 yyval.exp->loc = (yyloc);
6312 ;
6313 }
6314 break;
6315 case 408:
6316 {
6317 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
6318 yyval.exp->loc = (yyloc);
6319 ;
6320 }
6321 break;
6322 case 409:
6323 {
6324 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
6325 yyval.exp->loc = (yyloc);
6326 ;
6327 }
6328 break;
6329 case 411:
6330 {
6331 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
6332 yyval.exp->loc = (yyloc);
6333 ;
6334 }
6335 break;
6336 case 412:
6337 {
6338 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
6339 yyval.exp->loc = (yyloc);
6340 ;
6341 }
6342 break;
6343 case 414:
6344 {
6345 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6346 yyval.exp->loc = (yyloc);
6347 ;
6348 }
6349 break;
6350 case 415:
6351 {
6352 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6353 yyval.exp->loc = (yyloc);
6354 ;
6355 }
6356 break;
6357 case 416:
6358 {
6359 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6360 yyval.exp->loc = (yyloc);
6361 ;
6362 }
6363 break;
6364 case 417:
6365 {
6366 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6367 yyval.exp->loc = (yyloc);
6368 ;
6369 }
6370 break;
6371 case 418:
6372 {
6373 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6374 yyval.exp->loc = (yyloc);
6375 ;
6376 }
6377 break;
6378 case 419:
6379 {
6380 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6381 yyval.exp->loc = (yyloc);
6382 ;
6383 }
6384 break;
6385 case 420:
6386 {
6387 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6388 yyval.exp->loc = (yyloc);
6389 ;
6390 }
6391 break;
6392 case 421:
6393 {
6394 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6395 yyval.exp->loc = (yyloc);
6396 ;
6397 }
6398 break;
6399 case 422:
6400 {
6401 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6402 yyval.exp->loc = (yyloc);
6403 ;
6404 }
6405 break;
6406 case 423:
6407 {
6408 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6409 yyval.exp->loc = (yyloc);
6410 ;
6411 }
6412 break;
6413 case 424:
6414 {
6415 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6416 yyval.exp->loc = (yyloc);
6417 ;
6418 }
6419 break;
6420 case 425:
6421 {
6422 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6423 yyval.exp->loc = (yyloc);
6424 ;
6425 }
6426 break;
6427 case 426:
6428 {
6429 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6430 yyval.exp->loc = (yyloc);
6431 ;
6432 }
6433 break;
6434 case 427:
6435 {
6436 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6437 yyval.exp->loc = (yyloc);
6438 ;
6439 }
6440 break;
6441 case 428:
6442 {
6443 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6444 yyval.exp->loc = (yyloc);
6445 ;
6446 }
6447 break;
6448 case 429:
6449 {
6450 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
6451 yyval.exp->loc = (yyloc);
6452 ;
6453 }
6454 break;
6455 case 431:
6456 {
6457 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6458 yyval.exp->loc = (yyloc);
6459 ;
6460 }
6461 break;
6462 case 432:
6463 {
6464 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6465 yyval.exp->loc = (yyloc);
6466 ;
6467 }
6468 break;
6469 case 433:
6470 {
6471 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "l-value expected\n", (((void *)0))));
6472 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6473 yyval.exp->loc = (yyloc);
6474 ;
6475 }
6476 break;
6477 case 434:
6478 {
6479 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "l-value expected\n", (((void *)0))));
6480 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6481 yyval.exp->loc = (yyloc);
6482 ;
6483 }
6484 break;
6485 case 435:
6486 {
6487 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6488 yyval.exp->loc = (yyloc);
6489 ;
6490 }
6491 break;
6492 case 436:
6493 {
6494 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6495 yyval.exp->loc = (yyloc);
6496 ;
6497 }
6498 break;
6499 case 437:
6500 {
6501 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6502 yyval.exp->loc = (yyloc);
6503 ;
6504 }
6505 break;
6506 case 438:
6507 {
6508 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
6509 yyval.exp->loc = (yyloc);
6510 ;
6511 }
6512 break;
6513 case 439:
6514 {
6515 yyval.i = '=';
6516 ;
6517 }
6518 break;
6519 case 440:
6520 {
6521 yyval.i = MUL_ASSIGN;
6522 ;
6523 }
6524 break;
6525 case 441:
6526 {
6527 yyval.i = DIV_ASSIGN;
6528 ;
6529 }
6530 break;
6531 case 442:
6532 {
6533 yyval.i = MOD_ASSIGN;
6534 ;
6535 }
6536 break;
6537 case 443:
6538 {
6539 yyval.i = ADD_ASSIGN;
6540 ;
6541 }
6542 break;
6543 case 444:
6544 {
6545 yyval.i = SUB_ASSIGN;
6546 ;
6547 }
6548 break;
6549 case 445:
6550 {
6551 yyval.i = LEFT_ASSIGN;
6552 ;
6553 }
6554 break;
6555 case 446:
6556 {
6557 yyval.i = RIGHT_ASSIGN;
6558 ;
6559 }
6560 break;
6561 case 447:
6562 {
6563 yyval.i = AND_ASSIGN;
6564 ;
6565 }
6566 break;
6567 case 448:
6568 {
6569 yyval.i = XOR_ASSIGN;
6570 ;
6571 }
6572 break;
6573 case 449:
6574 {
6575 yyval.i = OR_ASSIGN;
6576 ;
6577 }
6578 break;
6579 case 450:
6580 {
6581 yyval.list = MkList();
6582 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
6583 ;
6584 }
6585 break;
6586 case 451:
6587 {
6588 yyval.list = yyvsp[(1) - (3)].list;
6589 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6590 ;
6591 }
6592 break;
6593 case 452:
6594 {
6595 yyval.list = yyvsp[(1) - (3)].list;
6596 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6597 ;
6598 }
6599 break;
6600 case 454:
6601 {
6602 yyval.list = MkList();
6603 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
6604 ;
6605 }
6606 break;
6607 case 455:
6608 {
6609 yyval.list = yyvsp[(1) - (3)].list;
6610 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6611 ;
6612 }
6613 break;
6614 case 456:
6615 {
6616 yyval.list = yyvsp[(1) - (3)].list;
6617 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
6618 ;
6619 }
6620 break;
6621 case 458:
6622 {
6623 yyval.exp = MkExpDummy();
6624 yyval.exp->loc = (yyloc);
6625 ;
6626 }
6627 break;
6628 case 460:
6629 {
6630 yyval.exp = MkExpInstance(yyvsp[(1) - (2)].instance);
6631 yyval.exp->loc = (yyloc);
6632 ;
6633 }
6634 break;
6635 case 461:
6636 {
6637 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, (((void *)0)));
6638 yyval.exp->loc = (yyloc);
6639 ;
6640 }
6641 break;
6642 case 462:
6643 {
6644 yyval.exp = MkExpPointer(yyvsp[(1) - (3)].exp, (((void *)0)));
6645 yyval.exp->loc = (yyloc);
6646 ;
6647 }
6648 break;
6649 case 463:
6650 {
6651 yyerror();
6652 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].list);
6653 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
6654 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
6655 yyval.exp->loc = (yyloc);
6656 yyval.exp->__anon1.call.argLoc.end.charPos++;
6657 ;
6658 }
6659 break;
6660 case 464:
6661 {
6662 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].list);
6663 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
6664 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
6665 yyval.exp->loc = (yyloc);
6666 yyval.exp->__anon1.call.argLoc.end.charPos++;
6667 ;
6668 }
6669 break;
6670 case 465:
6671 {
6672 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, (((void *)0)));
6673 yyval.exp->loc = (yyloc);
6674 ;
6675 }
6676 break;
6677 case 466:
6678 {
6679 yyval.exp = MkExpCall(yyvsp[(1) - (3)].exp, yyvsp[(3) - (3)].list);
6680 yyval.exp->loc = (yyloc);
6681 yyval.exp->__anon1.call.argLoc.start = (yylsp[(2) - (3)]).start;
6682 yyval.exp->__anon1.call.argLoc.end = (yylsp[(3) - (3)]).end;
6683 yyval.exp->__anon1.call.argLoc.end.charPos++;
6684 ;
6685 }
6686 break;
6687 case 467:
6688 {
6689 yyval.exp = MkExpMember(yyvsp[(1) - (3)].exp, (((void *)0)));
6690 yyval.exp->loc = (yyloc);
6691 ;
6692 }
6693 break;
6694 case 468:
6695 {
6696 yyval.exp = MkExpOp((((void *)0)), INC_OP, yyvsp[(2) - (2)].exp);
6697 yyval.exp->loc = (yyloc);
6698 ;
6699 }
6700 break;
6701 case 469:
6702 {
6703 yyval.exp = MkExpOp((((void *)0)), DEC_OP, yyvsp[(2) - (2)].exp);
6704 yyval.exp->loc = (yyloc);
6705 ;
6706 }
6707 break;
6708 case 470:
6709 {
6710 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
6711 yyval.exp->loc = (yyloc);
6712 ;
6713 }
6714 break;
6715 case 471:
6716 {
6717 yyval.exp = MkExpOp((((void *)0)), yyvsp[(1) - (2)].i, yyvsp[(2) - (2)].exp);
6718 yyval.exp->loc = (yyloc);
6719 ;
6720 }
6721 break;
6722 case 472:
6723 {
6724 yyval.exp = MkExpOp((((void *)0)), SIZEOF, yyvsp[(2) - (2)].exp);
6725 yyval.exp->loc = (yyloc);
6726 ;
6727 }
6728 break;
6729 case 473:
6730 {
6731 yyval.exp = MkExpTypeSize(yyvsp[(3) - (5)].typeName);
6732 yyval.exp->loc = (yyloc);
6733 ;
6734 }
6735 break;
6736 case 474:
6737 {
6738 yyval.exp = MkExpClassSize(yyvsp[(4) - (6)].specifier);
6739 yyval.exp->loc = (yyloc);
6740 ;
6741 }
6742 break;
6743 case 475:
6744 {
6745 yyval.exp = MkExpClassSize(yyvsp[(4) - (6)].specifier);
6746 yyval.exp->loc = (yyloc);
6747 ;
6748 }
6749 break;
6750 case 476:
6751 {
6752 yyval.exp = MkExpOp((((void *)0)), ALIGNOF, yyvsp[(2) - (2)].exp);
6753 yyval.exp->loc = (yyloc);
6754 ;
6755 }
6756 break;
6757 case 477:
6758 {
6759 yyval.exp = MkExpTypeAlign(yyvsp[(3) - (5)].typeName);
6760 yyval.exp->loc = (yyloc);
6761 ;
6762 }
6763 break;
6764 case 481:
6765 {
6766 yyval.exp = MkExpCast(yyvsp[(2) - (4)].typeName, yyvsp[(4) - (4)].exp);
6767 yyval.exp->loc = (yyloc);
6768 ;
6769 }
6770 break;
6771 case 483:
6772 {
6773 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
6774 yyval.exp->loc = (yyloc);
6775 ;
6776 }
6777 break;
6778 case 484:
6779 {
6780 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
6781 yyval.exp->loc = (yyloc);
6782 ;
6783 }
6784 break;
6785 case 485:
6786 {
6787 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6788 yyval.exp->loc = (yyloc);
6789 ;
6790 }
6791 break;
6792 case 486:
6793 {
6794 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '*', yyvsp[(3) - (3)].exp);
6795 yyval.exp->loc = (yyloc);
6796 ;
6797 }
6798 break;
6799 case 487:
6800 {
6801 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '/', yyvsp[(3) - (3)].exp);
6802 yyval.exp->loc = (yyloc);
6803 ;
6804 }
6805 break;
6806 case 488:
6807 {
6808 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '%', yyvsp[(3) - (3)].exp);
6809 yyval.exp->loc = (yyloc);
6810 ;
6811 }
6812 break;
6813 case 490:
6814 {
6815 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6816 yyval.exp->loc = (yyloc);
6817 ;
6818 }
6819 break;
6820 case 491:
6821 {
6822 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6823 yyval.exp->loc = (yyloc);
6824 ;
6825 }
6826 break;
6827 case 492:
6828 {
6829 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '+', yyvsp[(3) - (3)].exp);
6830 yyval.exp->loc = (yyloc);
6831 ;
6832 }
6833 break;
6834 case 493:
6835 {
6836 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '-', yyvsp[(3) - (3)].exp);
6837 yyval.exp->loc = (yyloc);
6838 ;
6839 }
6840 break;
6841 case 495:
6842 {
6843 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6844 yyval.exp->loc = (yyloc);
6845 ;
6846 }
6847 break;
6848 case 496:
6849 {
6850 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6851 yyval.exp->loc = (yyloc);
6852 ;
6853 }
6854 break;
6855 case 497:
6856 {
6857 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LEFT_OP, yyvsp[(3) - (3)].exp);
6858 yyval.exp->loc = (yyloc);
6859 ;
6860 }
6861 break;
6862 case 498:
6863 {
6864 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, RIGHT_OP, yyvsp[(3) - (3)].exp);
6865 yyval.exp->loc = (yyloc);
6866 ;
6867 }
6868 break;
6869 case 500:
6870 {
6871 if(yyvsp[(1) - (2)].exp->type == 0)
6872 {
6873 _DeclClass(yyvsp[(1) - (2)].exp->__anon1.__anon1.identifier->_class, yyvsp[(1) - (2)].exp->__anon1.__anon1.identifier->string);
6874 skipErrors = 0;
6875 FreeExpression(yyvsp[(1) - (2)].exp);
6876 FreeExpression(yyvsp[(2) - (2)].exp);
6877 (__extension__ ({
6878 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
6879
6880 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
6881 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
6882
6883 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
6884 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
6885 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).start.pos, 0) : (unsigned int)1;
6886 }));
6887 resetScannerPos(&(yylsp[(1) - (2)]).start);
6888 (yychar = (-2));
6889 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
6890 yystate = *yyssp;
6891 do
6892 {
6893 if(yydebug)
6894 yy_stack_print((yyss), (yyssp));
6895 }while((0));
6896 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
6897 yystate = *yyssp;
6898 do
6899 {
6900 if(yydebug)
6901 yy_stack_print((yyss), (yyssp));
6902 }while((0));
6903 (yyerrstatus = 0);
6904 goto yysetstate;
6905 }
6906 else
6907 {
6908 yyval.exp = MkExpOp(yyvsp[(1) - (2)].exp, '<', yyvsp[(2) - (2)].exp);
6909 yyval.exp->loc = (yyloc);
6910 }
6911 skipErrors = 0;
6912 ;
6913 }
6914 break;
6915 case 501:
6916 {
6917 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6918 yyval.exp->loc = (yyloc);
6919 ;
6920 }
6921 break;
6922 case 502:
6923 {
6924 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6925 yyval.exp->loc = (yyloc);
6926 ;
6927 }
6928 break;
6929 case 503:
6930 {
6931 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6932 yyval.exp->loc = (yyloc);
6933 ;
6934 }
6935 break;
6936 case 504:
6937 {
6938 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '<', yyvsp[(3) - (3)].exp);
6939 yyval.exp->loc = (yyloc);
6940 ;
6941 }
6942 break;
6943 case 505:
6944 {
6945 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '>', yyvsp[(3) - (3)].exp);
6946 yyval.exp->loc = (yyloc);
6947 ;
6948 }
6949 break;
6950 case 506:
6951 {
6952 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, LE_OP, yyvsp[(3) - (3)].exp);
6953 yyval.exp->loc = (yyloc);
6954 ;
6955 }
6956 break;
6957 case 507:
6958 {
6959 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, GE_OP, yyvsp[(3) - (3)].exp);
6960 yyval.exp->loc = (yyloc);
6961 ;
6962 }
6963 break;
6964 case 509:
6965 {
6966 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6967 yyval.exp->loc = (yyloc);
6968 ;
6969 }
6970 break;
6971 case 510:
6972 {
6973 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6974 yyval.exp->loc = (yyloc);
6975 ;
6976 }
6977 break;
6978 case 511:
6979 {
6980 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6981 yyval.exp->loc = (yyloc);
6982 ;
6983 }
6984 break;
6985 case 512:
6986 {
6987 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
6988 yyval.exp->loc = (yyloc);
6989 ;
6990 }
6991 break;
6992 case 513:
6993 {
6994 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
6995 yyval.exp->loc = (yyloc);
6996 ;
6997 }
6998 break;
6999 case 514:
7000 {
7001 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
7002 yyval.exp->loc = (yyloc);
7003 ;
7004 }
7005 break;
7006 case 515:
7007 {
7008 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, EQ_OP, yyvsp[(3) - (3)].exp);
7009 yyval.exp->loc = (yyloc);
7010 ;
7011 }
7012 break;
7013 case 516:
7014 {
7015 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, NE_OP, yyvsp[(3) - (3)].exp);
7016 yyval.exp->loc = (yyloc);
7017 ;
7018 }
7019 break;
7020 case 518:
7021 {
7022 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
7023 yyval.exp->loc = (yyloc);
7024 ;
7025 }
7026 break;
7027 case 519:
7028 {
7029 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
7030 yyval.exp->loc = (yyloc);
7031 ;
7032 }
7033 break;
7034 case 520:
7035 {
7036 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
7037 yyval.exp->loc = (yyloc);
7038 ;
7039 }
7040 break;
7041 case 521:
7042 {
7043 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '&', yyvsp[(3) - (3)].exp);
7044 yyval.exp->loc = (yyloc);
7045 ;
7046 }
7047 break;
7048 case 523:
7049 {
7050 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7051 yyval.exp->loc = (yyloc);
7052 ;
7053 }
7054 break;
7055 case 524:
7056 {
7057 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7058 yyval.exp->loc = (yyloc);
7059 ;
7060 }
7061 break;
7062 case 525:
7063 {
7064 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7065 yyval.exp->loc = (yyloc);
7066 ;
7067 }
7068 break;
7069 case 526:
7070 {
7071 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '^', yyvsp[(3) - (3)].exp);
7072 yyval.exp->loc = (yyloc);
7073 ;
7074 }
7075 break;
7076 case 528:
7077 {
7078 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7079 yyval.exp->loc = (yyloc);
7080 ;
7081 }
7082 break;
7083 case 529:
7084 {
7085 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7086 yyval.exp->loc = (yyloc);
7087 ;
7088 }
7089 break;
7090 case 530:
7091 {
7092 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7093 yyval.exp->loc = (yyloc);
7094 ;
7095 }
7096 break;
7097 case 531:
7098 {
7099 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, '|', yyvsp[(3) - (3)].exp);
7100 yyval.exp->loc = (yyloc);
7101 ;
7102 }
7103 break;
7104 case 533:
7105 {
7106 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
7107 yyval.exp->loc = (yyloc);
7108 ;
7109 }
7110 break;
7111 case 534:
7112 {
7113 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, AND_OP, yyvsp[(3) - (3)].exp);
7114 yyval.exp->loc = (yyloc);
7115 ;
7116 }
7117 break;
7118 case 536:
7119 {
7120 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
7121 yyval.exp->loc = (yyloc);
7122 ;
7123 }
7124 break;
7125 case 537:
7126 {
7127 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, OR_OP, yyvsp[(3) - (3)].exp);
7128 yyval.exp->loc = (yyloc);
7129 ;
7130 }
7131 break;
7132 case 539:
7133 {
7134 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7135 yyval.exp->loc = (yyloc);
7136 ;
7137 }
7138 break;
7139 case 540:
7140 {
7141 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7142 yyval.exp->loc = (yyloc);
7143 ;
7144 }
7145 break;
7146 case 541:
7147 {
7148 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7149 yyval.exp->loc = (yyloc);
7150 ;
7151 }
7152 break;
7153 case 542:
7154 {
7155 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7156 yyval.exp->loc = (yyloc);
7157 ;
7158 }
7159 break;
7160 case 543:
7161 {
7162 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7163 yyval.exp->loc = (yyloc);
7164 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7165 ;
7166 }
7167 break;
7168 case 544:
7169 {
7170 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7171 yyval.exp->loc = (yyloc);
7172 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7173 ;
7174 }
7175 break;
7176 case 545:
7177 {
7178 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7179 yyval.exp->loc = (yyloc);
7180 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7181 ;
7182 }
7183 break;
7184 case 546:
7185 {
7186 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7187 yyval.exp->loc = (yyloc);
7188 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7189 ;
7190 }
7191 break;
7192 case 547:
7193 {
7194 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7195 yyval.exp->loc = (yyloc);
7196 ;
7197 }
7198 break;
7199 case 548:
7200 {
7201 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7202 yyval.exp->loc = (yyloc);
7203 ;
7204 }
7205 break;
7206 case 549:
7207 {
7208 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7209 yyval.exp->loc = (yyloc);
7210 ;
7211 }
7212 break;
7213 case 550:
7214 {
7215 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7216 yyval.exp->loc = (yyloc);
7217 ;
7218 }
7219 break;
7220 case 551:
7221 {
7222 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7223 yyval.exp->loc = (yyloc);
7224 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7225 ;
7226 }
7227 break;
7228 case 552:
7229 {
7230 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7231 yyval.exp->loc = (yyloc);
7232 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7233 ;
7234 }
7235 break;
7236 case 553:
7237 {
7238 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7239 yyval.exp->loc = (yyloc);
7240 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7241 ;
7242 }
7243 break;
7244 case 554:
7245 {
7246 yyval.exp = MkExpCondition(yyvsp[(1) - (4)].exp, yyvsp[(3) - (4)].list, MkExpDummy());
7247 yyval.exp->loc = (yyloc);
7248 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (4)]);
7249 ;
7250 }
7251 break;
7252 case 555:
7253 {
7254 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7255 yyval.exp->loc = (yyloc);
7256 ;
7257 }
7258 break;
7259 case 556:
7260 {
7261 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7262 yyval.exp->loc = (yyloc);
7263 ;
7264 }
7265 break;
7266 case 557:
7267 {
7268 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7269 yyval.exp->loc = (yyloc);
7270 ;
7271 }
7272 break;
7273 case 558:
7274 {
7275 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7276 yyval.exp->loc = (yyloc);
7277 ;
7278 }
7279 break;
7280 case 559:
7281 {
7282 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7283 yyval.exp->loc = (yyloc);
7284 ;
7285 }
7286 break;
7287 case 560:
7288 {
7289 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7290 yyval.exp->loc = (yyloc);
7291 ;
7292 }
7293 break;
7294 case 561:
7295 {
7296 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7297 yyval.exp->loc = (yyloc);
7298 ;
7299 }
7300 break;
7301 case 562:
7302 {
7303 yyval.exp = MkExpCondition(yyvsp[(1) - (5)].exp, yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].exp);
7304 yyval.exp->loc = (yyloc);
7305 ;
7306 }
7307 break;
7308 case 563:
7309 {
7310 yyerror();
7311 yyval.exp = MkExpCondition(yyvsp[(1) - (3)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7312 yyval.exp->loc = (yyloc);
7313 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (3)]);
7314 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (3)]);
7315 ;
7316 }
7317 break;
7318 case 564:
7319 {
7320 yyval.exp = MkExpCondition(yyvsp[(1) - (3)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7321 yyval.exp->loc = (yyloc);
7322 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (3)]);
7323 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(3) - (3)]);
7324 ;
7325 }
7326 break;
7327 case 565:
7328 {
7329 yyerror();
7330 yyval.exp = MkExpCondition(yyvsp[(1) - (2)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7331 yyval.exp->loc = (yyloc);
7332 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (2)]);
7333 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(2) - (2)]);
7334 ;
7335 }
7336 break;
7337 case 566:
7338 {
7339 yyval.exp = MkExpCondition(yyvsp[(1) - (2)].exp, MkListOne(MkExpDummy()), MkExpDummy());
7340 yyval.exp->loc = (yyloc);
7341 ((struct Expression *)(*yyval.exp->__anon1.cond.exp).last)->loc = (yylsp[(2) - (2)]);
7342 yyval.exp->__anon1.cond.elseExp->loc = (yylsp[(2) - (2)]);
7343 ;
7344 }
7345 break;
7346 case 568:
7347 {
7348 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7349 yyval.exp->loc = (yyloc);
7350 ;
7351 }
7352 break;
7353 case 569:
7354 {
7355 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7356 yyval.exp->loc = (yyloc);
7357 ;
7358 }
7359 break;
7360 case 570:
7361 {
7362 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7363 yyval.exp->loc = (yyloc);
7364 ;
7365 }
7366 break;
7367 case 571:
7368 {
7369 yyval.exp = MkExpOp(yyvsp[(1) - (3)].exp, yyvsp[(2) - (3)].i, yyvsp[(3) - (3)].exp);
7370 yyval.exp->loc = (yyloc);
7371 ;
7372 }
7373 break;
7374 case 572:
7375 {
7376 yyval.list = MkList();
7377 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
7378 ;
7379 }
7380 break;
7381 case 573:
7382 {
7383 yyval.list = MkList();
7384 ListAdd(yyval.list, yyvsp[(1) - (2)].exp);
7385 ;
7386 }
7387 break;
7388 case 574:
7389 {
7390 yyval.list = yyvsp[(1) - (3)].list;
7391 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7392 ;
7393 }
7394 break;
7395 case 575:
7396 {
7397 yyval.list = yyvsp[(1) - (3)].list;
7398 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7399 ;
7400 }
7401 break;
7402 case 576:
7403 {
7404 yyerror();
7405 yyval.list = yyvsp[(1) - (2)].list;
7406 FreeList(yyvsp[(2) - (2)].list, (void *)(FreeExpression));
7407 ;
7408 }
7409 break;
7410 case 577:
7411 {
7412 yyval.list = yyvsp[(1) - (2)].list;
7413 FreeList(yyvsp[(2) - (2)].list, (void *)(FreeExpression));
7414 ;
7415 }
7416 break;
7417 case 578:
7418 {
7419 yyval.list = yyvsp[(1) - (2)].list;
7420 FreeList(yyvsp[(2) - (2)].list, (void *)(FreeExpression));
7421 ;
7422 }
7423 break;
7424 case 579:
7425 {
7426 yyval.list = MkList();
7427 ListAdd(yyval.list, yyvsp[(1) - (1)].exp);
7428 ;
7429 }
7430 break;
7431 case 580:
7432 {
7433 yyval.list = MkList();
7434 ListAdd(yyval.list, yyvsp[(1) - (2)].exp);
7435 ;
7436 }
7437 break;
7438 case 581:
7439 {
7440 yyval.list = yyvsp[(1) - (3)].list;
7441 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7442 ;
7443 }
7444 break;
7445 case 582:
7446 {
7447 yyval.list = yyvsp[(1) - (3)].list;
7448 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].exp);
7449 ;
7450 }
7451 break;
7452 case 585:
7453 {
7454 yyval.specifier = MkSpecifier(TYPEDEF);
7455 ;
7456 }
7457 break;
7458 case 586:
7459 {
7460 yyval.specifier = MkSpecifier(EXTERN);
7461 ;
7462 }
7463 break;
7464 case 587:
7465 {
7466 yyval.specifier = MkSpecifier(STATIC);
7467 ;
7468 }
7469 break;
7470 case 588:
7471 {
7472 yyval.specifier = MkSpecifier(THREAD);
7473 ;
7474 }
7475 break;
7476 case 589:
7477 {
7478 yyval.specifier = MkSpecifier(AUTO);
7479 ;
7480 }
7481 break;
7482 case 590:
7483 {
7484 yyval.specifier = MkSpecifier(REGISTER);
7485 ;
7486 }
7487 break;
7488 case 591:
7489 {
7490 yyval.specifier = MkSpecifier(RESTRICT);
7491 ;
7492 }
7493 break;
7494 case 592:
7495 {
7496 yyval.specifier = MkSpecifier(TYPEDEF);
7497 structDeclMode = declMode = 0;
7498 ;
7499 }
7500 break;
7501 case 593:
7502 {
7503 yyval.specifier = MkSpecifier(EXTERN);
7504 ;
7505 }
7506 break;
7507 case 594:
7508 {
7509 yyval.specifier = MkSpecifier(STATIC);
7510 structDeclMode = declMode = 3;
7511 ;
7512 }
7513 break;
7514 case 595:
7515 {
7516 yyval.specifier = MkSpecifier(THREAD);
7517 ;
7518 }
7519 break;
7520 case 596:
7521 {
7522 yyval.specifier = MkSpecifier(AUTO);
7523 ;
7524 }
7525 break;
7526 case 597:
7527 {
7528 yyval.specifier = MkSpecifier(REGISTER);
7529 ;
7530 }
7531 break;
7532 case 598:
7533 {
7534 yyval.specifier = MkSpecifier(RESTRICT);
7535 ;
7536 }
7537 break;
7538 case 599:
7539 {
7540 yyval.enumerator = MkEnumerator(yyvsp[(1) - (1)].id, (((void *)0)));
7541 ;
7542 }
7543 break;
7544 case 600:
7545 {
7546 yyval.enumerator = MkEnumerator(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].exp);
7547 ;
7548 }
7549 break;
7550 case 601:
7551 {
7552 yyval.enumerator = MkEnumerator(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].exp);
7553 ;
7554 }
7555 break;
7556 case 602:
7557 {
7558 yyval.list = MkList();
7559 ListAdd(yyval.list, yyvsp[(1) - (1)].enumerator);
7560 ;
7561 }
7562 break;
7563 case 603:
7564 {
7565 yyval.list = yyvsp[(1) - (3)].list;
7566 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].enumerator);
7567 ;
7568 }
7569 break;
7570 case 605:
7571 {
7572 memberAccessStack[++defaultMemberAccess] = 1;
7573 ;
7574 }
7575 break;
7576 case 606:
7577 {
7578 yyval.specifier = MkEnum(yyvsp[(2) - (2)].id, (((void *)0)));
7579 if(defaultMemberAccess > -1)
7580 defaultMemberAccess--;
7581 ;
7582 }
7583 break;
7584 case 607:
7585 {
7586 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name), (((void *)0)));
7587 if(defaultMemberAccess > -1)
7588 defaultMemberAccess--;
7589 ;
7590 }
7591 break;
7592 case 608:
7593 {
7594 yyval.specifier->loc = (yyloc);
7595 if(defaultMemberAccess > -1)
7596 defaultMemberAccess--;
7597 yyval.specifier = yyvsp[(1) - (2)].specifier;
7598 ;
7599 }
7600 break;
7601 case 609:
7602 {
7603 yyval.specifier = MkEnum(yyvsp[(2) - (4)].id, (((void *)0)));
7604 yyval.specifier->loc = (yyloc);
7605 if(defaultMemberAccess > -1)
7606 defaultMemberAccess--;
7607 ;
7608 }
7609 break;
7610 case 610:
7611 {
7612 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (4)].specifier->__anon1.__anon1.name), (((void *)0)));
7613 FreeSpecifier(yyvsp[(2) - (4)].specifier);
7614 yyval.specifier->loc = (yyloc);
7615 if(defaultMemberAccess > -1)
7616 defaultMemberAccess--;
7617 ;
7618 }
7619 break;
7620 case 611:
7621 {
7622 yyval.specifier = MkEnum((((void *)0)), yyvsp[(3) - (3)].list);
7623 yyval.specifier->loc = (yyloc);
7624 if(defaultMemberAccess > -1)
7625 defaultMemberAccess--;
7626 ;
7627 }
7628 break;
7629 case 612:
7630 {
7631 yyval.specifier = MkEnum((((void *)0)), (((void *)0)));
7632 yyval.specifier->loc = (yyloc);
7633 if(defaultMemberAccess > -1)
7634 defaultMemberAccess--;
7635 ;
7636 }
7637 break;
7638 case 613:
7639 {
7640 yyval.specifier = MkEnum(yyvsp[(2) - (4)].id, yyvsp[(4) - (4)].list);
7641 yyval.specifier->loc = (yyloc);
7642 if(defaultMemberAccess > -1)
7643 defaultMemberAccess--;
7644 ;
7645 }
7646 break;
7647 case 614:
7648 {
7649 yyval.specifier = MkEnum(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].list);
7650 yyval.specifier->loc = (yyloc);
7651 if(defaultMemberAccess > -1)
7652 defaultMemberAccess--;
7653 ;
7654 }
7655 break;
7656 case 615:
7657 {
7658 yyval.specifier = MkEnum(yyvsp[(2) - (4)].id, (((void *)0)));
7659 yyval.specifier->loc = (yyloc);
7660 if(defaultMemberAccess > -1)
7661 defaultMemberAccess--;
7662 ;
7663 }
7664 break;
7665 case 616:
7666 {
7667 yyval.specifier = MkEnum(yyvsp[(2) - (6)].id, yyvsp[(4) - (6)].list);
7668 yyval.specifier->loc = (yyloc);
7669 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7670 if(defaultMemberAccess > -1)
7671 defaultMemberAccess--;
7672 ;
7673 }
7674 break;
7675 case 617:
7676 {
7677 yyval.specifier = MkEnum(yyvsp[(2) - (6)].id, yyvsp[(4) - (6)].list);
7678 yyval.specifier->loc = (yyloc);
7679 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7680 if(defaultMemberAccess > -1)
7681 defaultMemberAccess--;
7682 ;
7683 }
7684 break;
7685 case 618:
7686 {
7687 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (4)].specifier->__anon1.__anon1.name), yyvsp[(4) - (4)].list);
7688 yyval.specifier->loc = (yyloc);
7689 FreeSpecifier(yyvsp[(2) - (4)].specifier);
7690 if(defaultMemberAccess > -1)
7691 defaultMemberAccess--;
7692 ;
7693 }
7694 break;
7695 case 619:
7696 {
7697 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (5)].specifier->__anon1.__anon1.name), yyvsp[(4) - (5)].list);
7698 yyval.specifier->loc = (yyloc);
7699 FreeSpecifier(yyvsp[(2) - (5)].specifier);
7700 if(defaultMemberAccess > -1)
7701 defaultMemberAccess--;
7702 ;
7703 }
7704 break;
7705 case 620:
7706 {
7707 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (4)].specifier->__anon1.__anon1.name), (((void *)0)));
7708 yyval.specifier->loc = (yyloc);
7709 FreeSpecifier(yyvsp[(2) - (4)].specifier);
7710 if(defaultMemberAccess > -1)
7711 defaultMemberAccess--;
7712 ;
7713 }
7714 break;
7715 case 621:
7716 {
7717 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (6)].specifier->__anon1.__anon1.name), yyvsp[(4) - (6)].list);
7718 yyval.specifier->loc = (yyloc);
7719 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7720 FreeSpecifier(yyvsp[(2) - (6)].specifier);
7721 if(defaultMemberAccess > -1)
7722 defaultMemberAccess--;
7723 ;
7724 }
7725 break;
7726 case 622:
7727 {
7728 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (6)].specifier->__anon1.__anon1.name), yyvsp[(4) - (6)].list);
7729 yyval.specifier->loc = (yyloc);
7730 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(6) - (6)].list;
7731 FreeSpecifier(yyvsp[(2) - (6)].specifier);
7732 if(defaultMemberAccess > -1)
7733 defaultMemberAccess--;
7734 ;
7735 }
7736 break;
7737 case 623:
7738 {
7739 yyval.specifier = MkEnum(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].list);
7740 yyval.specifier->loc = (yyloc);
7741 if(defaultMemberAccess > -1)
7742 defaultMemberAccess--;
7743 ;
7744 }
7745 break;
7746 case 624:
7747 {
7748 yyval.specifier = MkEnum(MkIdentifier(yyvsp[(2) - (5)].specifier->__anon1.__anon1.name), yyvsp[(4) - (5)].list);
7749 yyval.specifier->loc = (yyloc);
7750 FreeSpecifier(yyvsp[(2) - (5)].specifier);
7751 if(defaultMemberAccess > -1)
7752 defaultMemberAccess--;
7753 ;
7754 }
7755 break;
7756 case 625:
7757 {
7758 yyval.id = yyvsp[(2) - (2)].id;
7759 if(declMode)
7760 DeclClassAddNameSpace(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
7761 ;
7762 }
7763 break;
7764 case 626:
7765 {
7766 yyval.id = MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
7767 if(declMode)
7768 DeclClass(yyvsp[(2) - (2)].specifier->__anon1.__anon1.nsSpec, yyvsp[(2) - (2)].specifier->__anon1.__anon1.name);
7769 FreeSpecifier(yyvsp[(2) - (2)].specifier);
7770 ;
7771 }
7772 break;
7773 case 627:
7774 {
7775 yyval.specifier = yyvsp[(1) - (2)].specifier;
7776 yyval.specifier->loc = (yyloc);
7777 ;
7778 }
7779 break;
7780 case 628:
7781 {
7782 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, (((void *)0)));
7783 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (5)].list;
7784 yyval.specifier->loc = (yyloc);
7785 if(defaultMemberAccess > -1)
7786 defaultMemberAccess--;
7787 ;
7788 }
7789 break;
7790 case 629:
7791 {
7792 yyval.specifier = MkEnum(yyvsp[(1) - (3)].id, (((void *)0)));
7793 if(defaultMemberAccess > -1)
7794 defaultMemberAccess--;
7795 ;
7796 }
7797 break;
7798 case 630:
7799 {
7800 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, yyvsp[(5) - (5)].list);
7801 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (5)].list;
7802 yyval.specifier->loc = (yyloc);
7803 if(defaultMemberAccess > -1)
7804 defaultMemberAccess--;
7805 ;
7806 }
7807 break;
7808 case 631:
7809 {
7810 yyval.specifier = MkEnum(yyvsp[(1) - (6)].id, yyvsp[(5) - (6)].list);
7811 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (6)].list;
7812 yyval.specifier->loc = (yyloc);
7813 if(defaultMemberAccess > -1)
7814 defaultMemberAccess--;
7815 ;
7816 }
7817 break;
7818 case 632:
7819 {
7820 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, (((void *)0)));
7821 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (5)].list;
7822 yyval.specifier->loc = (yyloc);
7823 if(defaultMemberAccess > -1)
7824 defaultMemberAccess--;
7825 ;
7826 }
7827 break;
7828 case 633:
7829 {
7830 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, yyvsp[(5) - (7)].list);
7831 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7832 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7833 yyval.specifier->loc = (yyloc);
7834 if(defaultMemberAccess > -1)
7835 defaultMemberAccess--;
7836 ;
7837 }
7838 break;
7839 case 634:
7840 {
7841 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, yyvsp[(5) - (7)].list);
7842 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7843 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7844 yyval.specifier->loc = (yyloc);
7845 if(defaultMemberAccess > -1)
7846 defaultMemberAccess--;
7847 ;
7848 }
7849 break;
7850 case 635:
7851 {
7852 yyval.specifier = MkEnum(yyvsp[(1) - (8)].id, yyvsp[(5) - (8)].list);
7853 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (8)].list;
7854 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(8) - (8)].list;
7855 yyval.specifier->loc = (yyloc);
7856 if(defaultMemberAccess > -1)
7857 defaultMemberAccess--;
7858 ;
7859 }
7860 break;
7861 case 636:
7862 {
7863 yyval.specifier = MkEnum(yyvsp[(1) - (8)].id, yyvsp[(5) - (8)].list);
7864 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (8)].list;
7865 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(8) - (8)].list;
7866 yyval.specifier->loc = (yyloc);
7867 if(defaultMemberAccess > -1)
7868 defaultMemberAccess--;
7869 ;
7870 }
7871 break;
7872 case 637:
7873 {
7874 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, (((void *)0)));
7875 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7876 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7877 yyval.specifier->loc = (yyloc);
7878 if(defaultMemberAccess > -1)
7879 defaultMemberAccess--;
7880 ;
7881 }
7882 break;
7883 case 638:
7884 {
7885 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, (((void *)0)));
7886 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7887 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(7) - (7)].list;
7888 yyval.specifier->loc = (yyloc);
7889 if(defaultMemberAccess > -1)
7890 defaultMemberAccess--;
7891 ;
7892 }
7893 break;
7894 case 639:
7895 {
7896 yyval.specifier = MkEnum((((void *)0)), yyvsp[(3) - (3)].list);
7897 yyval.specifier->loc = (yyloc);
7898 if(defaultMemberAccess > -1)
7899 defaultMemberAccess--;
7900 ;
7901 }
7902 break;
7903 case 640:
7904 {
7905 yyval.specifier = MkEnum((((void *)0)), (((void *)0)));
7906 yyval.specifier->loc = (yyloc);
7907 if(defaultMemberAccess > -1)
7908 defaultMemberAccess--;
7909 ;
7910 }
7911 break;
7912 case 641:
7913 {
7914 yyval.specifier = MkEnum(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].list);
7915 yyval.specifier->loc = (yyloc);
7916 if(defaultMemberAccess > -1)
7917 defaultMemberAccess--;
7918 ;
7919 }
7920 break;
7921 case 642:
7922 {
7923 yyval.specifier = MkEnum(yyvsp[(1) - (4)].id, yyvsp[(3) - (4)].list);
7924 yyval.specifier->loc = (yyloc);
7925 if(defaultMemberAccess > -1)
7926 defaultMemberAccess--;
7927 ;
7928 }
7929 break;
7930 case 643:
7931 {
7932 yyval.specifier = MkEnum(yyvsp[(1) - (3)].id, (((void *)0)));
7933 yyval.specifier->loc = (yyloc);
7934 if(defaultMemberAccess > -1)
7935 defaultMemberAccess--;
7936 ;
7937 }
7938 break;
7939 case 644:
7940 {
7941 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, yyvsp[(3) - (5)].list);
7942 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(5) - (5)].list;
7943 yyval.specifier->loc = (yyloc);
7944 if(defaultMemberAccess > -1)
7945 defaultMemberAccess--;
7946 ;
7947 }
7948 break;
7949 case 645:
7950 {
7951 yyval.specifier = MkEnum(yyvsp[(1) - (5)].id, yyvsp[(3) - (5)].list);
7952 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(5) - (5)].list;
7953 yyval.specifier->loc = (yyloc);
7954 if(defaultMemberAccess > -1)
7955 defaultMemberAccess--;
7956 ;
7957 }
7958 break;
7959 case 646:
7960 {
7961 yyval.specifier = MkEnum(yyvsp[(1) - (6)].id, yyvsp[(5) - (6)].list);
7962 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (6)].list;
7963 yyval.specifier->loc = (yyloc);
7964 if(defaultMemberAccess > -1)
7965 defaultMemberAccess--;
7966 ;
7967 }
7968 break;
7969 case 647:
7970 {
7971 yyval.specifier = MkEnum(yyvsp[(1) - (7)].id, yyvsp[(5) - (7)].list);
7972 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (7)].list;
7973 yyval.specifier->loc = (yyloc);
7974 if(defaultMemberAccess > -1)
7975 defaultMemberAccess--;
7976 ;
7977 }
7978 break;
7979 case 648:
7980 {
7981 yyval.specifier = MkEnum(yyvsp[(1) - (6)].id, (((void *)0)));
7982 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (6)].list;
7983 yyval.specifier->loc = (yyloc);
7984 if(defaultMemberAccess > -1)
7985 defaultMemberAccess--;
7986 ;
7987 }
7988 break;
7989 case 649:
7990 {
7991 yyval.specifier = MkEnum(yyvsp[(1) - (4)].id, yyvsp[(3) - (4)].list);
7992 yyval.specifier->loc = (yyloc);
7993 if(defaultMemberAccess > -1)
7994 defaultMemberAccess--;
7995 ;
7996 }
7997 break;
7998 case 654:
7999 {
8000 yyval.specifier = MkSpecifierExtended(yyvsp[(1) - (1)].extDecl);
8001 ;
8002 }
8003 break;
8004 case 655:
8005 {
8006 yyval.specifier = MkSpecifier(CONST);
8007 ;
8008 }
8009 break;
8010 case 656:
8011 {
8012 yyval.specifier = MkSpecifier(VOLATILE);
8013 ;
8014 }
8015 break;
8016 case 657:
8017 {
8018 yyval.specifier = yyvsp[(1) - (1)].specifier;
8019 ;
8020 }
8021 break;
8022 case 658:
8023 {
8024 yyval.list = MkList();
8025 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8026 ;
8027 }
8028 break;
8029 case 659:
8030 {
8031 yyval.list = yyvsp[(1) - (2)].list;
8032 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8033 ;
8034 }
8035 break;
8036 case 660:
8037 {
8038 yyval.specifier = MkSpecifier(VOID);
8039 ;
8040 }
8041 break;
8042 case 661:
8043 {
8044 yyval.specifier = MkSpecifier(CHAR);
8045 ;
8046 }
8047 break;
8048 case 662:
8049 {
8050 yyval.specifier = MkSpecifier(SHORT);
8051 ;
8052 }
8053 break;
8054 case 663:
8055 {
8056 yyval.specifier = MkSpecifier(INT);
8057 ;
8058 }
8059 break;
8060 case 664:
8061 {
8062 yyval.specifier = MkSpecifier(UINT);
8063 ;
8064 }
8065 break;
8066 case 665:
8067 {
8068 yyval.specifier = MkSpecifier(INT64);
8069 ;
8070 }
8071 break;
8072 case 666:
8073 {
8074 yyval.specifier = MkSpecifier(VALIST);
8075 ;
8076 }
8077 break;
8078 case 667:
8079 {
8080 yyval.specifier = MkSpecifier(LONG);
8081 ;
8082 }
8083 break;
8084 case 668:
8085 {
8086 yyval.specifier = MkSpecifier(FLOAT);
8087 ;
8088 }
8089 break;
8090 case 669:
8091 {
8092 yyval.specifier = MkSpecifier(DOUBLE);
8093 ;
8094 }
8095 break;
8096 case 670:
8097 {
8098 yyval.specifier = MkSpecifier(SIGNED);
8099 ;
8100 }
8101 break;
8102 case 671:
8103 {
8104 yyval.specifier = MkSpecifier(UNSIGNED);
8105 ;
8106 }
8107 break;
8108 case 672:
8109 {
8110 yyval.specifier = MkSpecifier(EXTENSION);
8111 ;
8112 }
8113 break;
8114 case 676:
8115 {
8116 yyval.specifier = MkSpecifierTypeOf(yyvsp[(3) - (4)].exp);
8117 ;
8118 }
8119 break;
8120 case 677:
8121 {
8122 yyval.specifier = MkSpecifierSubClass(yyvsp[(3) - (4)].specifier);
8123 ;
8124 }
8125 break;
8126 case 678:
8127 {
8128 _DeclClass(yyvsp[(3) - (4)].id->_class, yyvsp[(3) - (4)].id->string);
8129 yyval.specifier = MkSpecifierSubClass(MkSpecifierName(yyvsp[(3) - (4)].id->string));
8130 FreeIdentifier(yyvsp[(3) - (4)].id);
8131 ;
8132 }
8133 break;
8134 case 679:
8135 {
8136 yyval.specifier = MkSpecifier(THISCLASS);
8137 ;
8138 }
8139 break;
8140 case 680:
8141 {
8142 yyval.specifier = MkSpecifier(TYPED_OBJECT);
8143 ;
8144 }
8145 break;
8146 case 681:
8147 {
8148 yyval.specifier = MkSpecifier(ANY_OBJECT);
8149 ;
8150 }
8151 break;
8152 case 682:
8153 {
8154 yyval.specifier = MkSpecifier(_BOOL);
8155 ;
8156 }
8157 break;
8158 case 683:
8159 {
8160 yyval.specifier = MkSpecifier(BOOL);
8161 ;
8162 }
8163 break;
8164 case 684:
8165 {
8166 yyval.specifier = MkSpecifier(_COMPLEX);
8167 ;
8168 }
8169 break;
8170 case 685:
8171 {
8172 yyval.specifier = MkSpecifier(_IMAGINARY);
8173 ;
8174 }
8175 break;
8176 case 686:
8177 {
8178 yyval.specifier = MkSpecifier(VOID);
8179 ;
8180 }
8181 break;
8182 case 687:
8183 {
8184 yyval.specifier = MkSpecifier(CHAR);
8185 ;
8186 }
8187 break;
8188 case 688:
8189 {
8190 yyval.specifier = MkSpecifier(SHORT);
8191 ;
8192 }
8193 break;
8194 case 689:
8195 {
8196 yyval.specifier = MkSpecifier(INT);
8197 ;
8198 }
8199 break;
8200 case 690:
8201 {
8202 yyval.specifier = MkSpecifier(UINT);
8203 ;
8204 }
8205 break;
8206 case 691:
8207 {
8208 yyval.specifier = MkSpecifier(INT64);
8209 ;
8210 }
8211 break;
8212 case 692:
8213 {
8214 yyval.specifier = MkSpecifier(VALIST);
8215 ;
8216 }
8217 break;
8218 case 693:
8219 {
8220 yyval.specifier = MkSpecifier(LONG);
8221 ;
8222 }
8223 break;
8224 case 694:
8225 {
8226 yyval.specifier = MkSpecifier(FLOAT);
8227 ;
8228 }
8229 break;
8230 case 695:
8231 {
8232 yyval.specifier = MkSpecifier(DOUBLE);
8233 ;
8234 }
8235 break;
8236 case 696:
8237 {
8238 yyval.specifier = MkSpecifier(SIGNED);
8239 ;
8240 }
8241 break;
8242 case 697:
8243 {
8244 yyval.specifier = MkSpecifier(UNSIGNED);
8245 ;
8246 }
8247 break;
8248 case 698:
8249 {
8250 yyval.specifier = MkSpecifier(EXTENSION);
8251 ;
8252 }
8253 break;
8254 case 702:
8255 {
8256 yyval.specifier = MkSpecifier(_BOOL);
8257 ;
8258 }
8259 break;
8260 case 703:
8261 {
8262 yyval.specifier = MkSpecifier(BOOL);
8263 ;
8264 }
8265 break;
8266 case 704:
8267 {
8268 yyval.specifier = MkSpecifier(_COMPLEX);
8269 ;
8270 }
8271 break;
8272 case 705:
8273 {
8274 yyval.specifier = MkSpecifier(_IMAGINARY);
8275 ;
8276 }
8277 break;
8278 case 706:
8279 {
8280 yyval.specifier = MkSpecifierTypeOf(yyvsp[(3) - (4)].exp);
8281 ;
8282 }
8283 break;
8284 case 707:
8285 {
8286 yyval.specifier = MkSpecifierSubClass(yyvsp[(3) - (4)].specifier);
8287 ;
8288 }
8289 break;
8290 case 708:
8291 {
8292 _DeclClass(yyvsp[(3) - (4)].id->_class, yyvsp[(3) - (4)].id->string);
8293 yyval.specifier = MkSpecifierSubClass(MkSpecifierName(yyvsp[(3) - (4)].id->string));
8294 FreeIdentifier(yyvsp[(3) - (4)].id);
8295 ;
8296 }
8297 break;
8298 case 709:
8299 {
8300 yyval.specifier = MkSpecifier(THISCLASS);
8301 ;
8302 }
8303 break;
8304 case 710:
8305 {
8306 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
8307 yyval.declarator->loc = (yyloc);
8308 ;
8309 }
8310 break;
8311 case 711:
8312 {
8313 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (2)].declarator, (((void *)0)));
8314 yyval.declarator->__anon1.structDecl.attrib = yyvsp[(2) - (2)].attrib;
8315 yyval.declarator->loc = (yyloc);
8316 ;
8317 }
8318 break;
8319 case 712:
8320 {
8321 yyval.declarator = MkStructDeclarator((((void *)0)), yyvsp[(2) - (2)].exp);
8322 yyval.declarator->loc = (yyloc);
8323 ;
8324 }
8325 break;
8326 case 713:
8327 {
8328 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].exp);
8329 yyval.declarator->loc = (yyloc);
8330 ;
8331 }
8332 break;
8333 case 714:
8334 {
8335 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8336 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8337 yyval.declarator->loc = (yyloc);
8338 ;
8339 }
8340 break;
8341 case 715:
8342 {
8343 yyval.declarator = MkStructDeclarator((((void *)0)), yyvsp[(2) - (2)].exp);
8344 yyval.declarator->loc = (yyloc);
8345 ;
8346 }
8347 break;
8348 case 716:
8349 {
8350 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].exp);
8351 yyval.declarator->loc = (yyloc);
8352 ;
8353 }
8354 break;
8355 case 717:
8356 {
8357 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8358 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8359 yyval.declarator->loc = (yyloc);
8360 ;
8361 }
8362 break;
8363 case 718:
8364 {
8365 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8366 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8367 yyval.declarator->loc = (yyloc);
8368 ;
8369 }
8370 break;
8371 case 719:
8372 {
8373 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8374 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8375 yyval.declarator->loc = (yyloc);
8376 ;
8377 }
8378 break;
8379 case 720:
8380 {
8381 yyval.list = MkList();
8382 ListAdd(yyval.list, yyvsp[(1) - (1)].declarator);
8383 ;
8384 }
8385 break;
8386 case 721:
8387 {
8388 yyval.list = yyvsp[(1) - (3)].list;
8389 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].declarator);
8390 ;
8391 }
8392 break;
8393 case 722:
8394 {
8395 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, yyvsp[(2) - (2)].id, (((void *)0)));
8396 yyval.specifier->__anon1.__anon2.addNameSpace = 1;
8397 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8398 ;
8399 }
8400 break;
8401 case 723:
8402 {
8403 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name), (((void *)0)));
8404 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8405 FreeSpecifier(yyvsp[(2) - (2)].specifier);
8406 ;
8407 }
8408 break;
8409 case 724:
8410 {
8411 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, yyvsp[(3) - (3)].id, (((void *)0)));
8412 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
8413 yyval.specifier->__anon1.__anon2.addNameSpace = 1;
8414 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8415 ;
8416 }
8417 break;
8418 case 725:
8419 {
8420 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, MkIdentifier(yyvsp[(3) - (3)].specifier->__anon1.__anon1.name), (((void *)0)));
8421 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
8422 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8423 FreeSpecifier(yyvsp[(3) - (3)].specifier);
8424 ;
8425 }
8426 break;
8427 case 726:
8428 {
8429 yyval.specifier = yyvsp[(1) - (2)].specifier;
8430 yyval.specifier->loc = (yyloc);
8431 ;
8432 }
8433 break;
8434 case 727:
8435 {
8436 yyval.specifier = yyvsp[(1) - (3)].specifier;
8437 yyval.specifier->loc = (yyloc);
8438 if(defaultMemberAccess > -1)
8439 defaultMemberAccess--;
8440 PopContext(curContext);
8441 ;
8442 }
8443 break;
8444 case 728:
8445 {
8446 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8447 yyval.specifier->loc = (yyloc);
8448 if(defaultMemberAccess > -1)
8449 defaultMemberAccess--;
8450 ;
8451 }
8452 break;
8453 case 729:
8454 {
8455 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), (((void *)0)));
8456 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8457 yyval.specifier->loc = (yyloc);
8458 if(defaultMemberAccess > -1)
8459 defaultMemberAccess--;
8460 ;
8461 }
8462 break;
8463 case 730:
8464 {
8465 yyval.specifier = yyvsp[(1) - (3)].specifier;
8466 AddStructDefinitions(yyvsp[(1) - (3)].specifier, yyvsp[(3) - (3)].list);
8467 if(defaultMemberAccess > -1)
8468 defaultMemberAccess--;
8469 PopContext(curContext);
8470 ;
8471 }
8472 break;
8473 case 731:
8474 {
8475 yyval.specifier = yyvsp[(1) - (3)].specifier;
8476 AddStructDefinitions(yyvsp[(1) - (3)].specifier, yyvsp[(3) - (3)].list);
8477 if(defaultMemberAccess > -1)
8478 defaultMemberAccess--;
8479 PopContext(curContext);
8480 ;
8481 }
8482 break;
8483 case 732:
8484 {
8485 yyval.specifier = yyvsp[(1) - (3)].specifier;
8486 if(defaultMemberAccess > -1)
8487 defaultMemberAccess--;
8488 PopContext(curContext);
8489 ;
8490 }
8491 break;
8492 case 733:
8493 {
8494 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8495 if(defaultMemberAccess > -1)
8496 defaultMemberAccess--;
8497 ;
8498 }
8499 break;
8500 case 734:
8501 {
8502 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8503 if(defaultMemberAccess > -1)
8504 defaultMemberAccess--;
8505 ;
8506 }
8507 break;
8508 case 735:
8509 {
8510 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8511 if(defaultMemberAccess > -1)
8512 defaultMemberAccess--;
8513 ;
8514 }
8515 break;
8516 case 736:
8517 {
8518 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), yyvsp[(4) - (4)].list);
8519 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8520 if(defaultMemberAccess > -1)
8521 defaultMemberAccess--;
8522 ;
8523 }
8524 break;
8525 case 737:
8526 {
8527 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), yyvsp[(4) - (4)].list);
8528 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8529 if(defaultMemberAccess > -1)
8530 defaultMemberAccess--;
8531 ;
8532 }
8533 break;
8534 case 738:
8535 {
8536 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), (((void *)0)));
8537 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8538 if(defaultMemberAccess > -1)
8539 defaultMemberAccess--;
8540 ;
8541 }
8542 break;
8543 case 739:
8544 {
8545 yyval.specifier = yyvsp[(1) - (1)].specifier;
8546 if(defaultMemberAccess > -1)
8547 defaultMemberAccess--;
8548 PopContext(curContext);
8549 ;
8550 }
8551 break;
8552 case 740:
8553 {
8554 yyval.specifier = yyvsp[(1) - (1)].specifier;
8555 if(declMode)
8556 {
8557 (yyvsp[(1) - (1)].specifier->__anon1.__anon2.addNameSpace ? DeclClassAddNameSpace : DeclClass)(yyvsp[(1) - (1)].specifier->__anon1.__anon2.id->_class, yyvsp[(1) - (1)].specifier->__anon1.__anon2.id->string);
8558 }
8559 ;
8560 }
8561 break;
8562 case 741:
8563 {
8564 struct Symbol * symbol = (yyvsp[(1) - (4)].specifier->__anon1.__anon2.addNameSpace ? DeclClassAddNameSpace : DeclClass)(yyvsp[(1) - (4)].specifier->__anon1.__anon2.id->_class, yyvsp[(1) - (4)].specifier->__anon1.__anon2.id->string);
8565
8566 yyval.specifier = yyvsp[(1) - (4)].specifier;
8567 symbol->templateParams = yyvsp[(3) - (4)].list;
8568 ;
8569 }
8570 break;
8571 case 742:
8572 {
8573 yyval.specifier = yyvsp[(1) - (3)].specifier;
8574 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (3)].list;
8575 SetupBaseSpecs((((void *)0)), yyvsp[(3) - (3)].list);
8576 ;
8577 }
8578 break;
8579 case 743:
8580 {
8581 yyval.specifier = yyvsp[(1) - (2)].specifier;
8582 yyval.specifier->loc = (yyloc);
8583 ;
8584 }
8585 break;
8586 case 744:
8587 {
8588 yyval.specifier = yyvsp[(1) - (3)].specifier;
8589 if(defaultMemberAccess > -1)
8590 defaultMemberAccess--;
8591 PopContext(curContext);
8592 ;
8593 }
8594 break;
8595 case 745:
8596 {
8597 yyval.specifier = yyvsp[(1) - (3)].specifier;
8598 if(defaultMemberAccess > -1)
8599 defaultMemberAccess--;
8600 PopContext(curContext);
8601 ;
8602 }
8603 break;
8604 case 746:
8605 {
8606 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8607 if(defaultMemberAccess > -1)
8608 defaultMemberAccess--;
8609 ;
8610 }
8611 break;
8612 case 747:
8613 {
8614 yyval.specifier = yyvsp[(1) - (3)].specifier;
8615 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8616 if(defaultMemberAccess > -1)
8617 defaultMemberAccess--;
8618 PopContext(curContext);
8619 ;
8620 }
8621 break;
8622 case 748:
8623 {
8624 yyval.specifier = yyvsp[(1) - (3)].specifier;
8625 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8626 if(defaultMemberAccess > -1)
8627 defaultMemberAccess--;
8628 PopContext(curContext);
8629 ;
8630 }
8631 break;
8632 case 749:
8633 {
8634 yyval.specifier = yyvsp[(1) - (3)].specifier;
8635 if(defaultMemberAccess > -1)
8636 defaultMemberAccess--;
8637 PopContext(curContext);
8638 ;
8639 }
8640 break;
8641 case 750:
8642 {
8643 PopContext(curContext);
8644 if(!declMode)
8645 {
8646 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifier->type, yyvsp[(1) - (3)].specifier->__anon1.__anon2.id, yyvsp[(3) - (3)].list);
8647 yyvsp[(1) - (3)].specifier->__anon1.__anon2.id = (((void *)0));
8648 FreeSpecifier(yyvsp[(1) - (3)].specifier);
8649 }
8650 else
8651 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8652 if(defaultMemberAccess > -1)
8653 defaultMemberAccess--;
8654 ;
8655 }
8656 break;
8657 case 751:
8658 {
8659 PopContext(curContext);
8660 if(!declMode)
8661 {
8662 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifier->type, yyvsp[(1) - (3)].specifier->__anon1.__anon2.id, yyvsp[(3) - (3)].list);
8663 yyvsp[(1) - (3)].specifier->__anon1.__anon2.id = (((void *)0));
8664 FreeSpecifier(yyvsp[(1) - (3)].specifier);
8665 }
8666 else
8667 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8668 if(defaultMemberAccess > -1)
8669 defaultMemberAccess--;
8670 ;
8671 }
8672 break;
8673 case 752:
8674 {
8675 yyval.specifier = yyvsp[(1) - (3)].specifier;
8676 if(defaultMemberAccess > -1)
8677 defaultMemberAccess--;
8678 PopContext(curContext);
8679 ;
8680 }
8681 break;
8682 case 753:
8683 {
8684 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8685 if(defaultMemberAccess > -1)
8686 defaultMemberAccess--;
8687 ;
8688 }
8689 break;
8690 case 754:
8691 {
8692 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8693 if(defaultMemberAccess > -1)
8694 defaultMemberAccess--;
8695 ;
8696 }
8697 break;
8698 case 755:
8699 {
8700 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8701 if(defaultMemberAccess > -1)
8702 defaultMemberAccess--;
8703 ;
8704 }
8705 break;
8706 case 756:
8707 {
8708 yyval.specifierType = 3;
8709 memberAccessStack[++defaultMemberAccess] = 1;
8710 ;
8711 }
8712 break;
8713 case 757:
8714 {
8715 yyval.specifierType = 4;
8716 memberAccessStack[++defaultMemberAccess] = 1;
8717 ;
8718 }
8719 break;
8720 case 758:
8721 {
8722 yyval.list = MkList();
8723 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8724 ;
8725 }
8726 break;
8727 case 759:
8728 {
8729 yyval.list = yyvsp[(1) - (2)].list;
8730 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8731 ;
8732 }
8733 break;
8734 case 760:
8735 {
8736 yyval.list = MkList();
8737 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8738 ;
8739 }
8740 break;
8741 case 761:
8742 {
8743 yyval.list = yyvsp[(1) - (2)].list;
8744 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8745 ;
8746 }
8747 break;
8748 case 762:
8749 {
8750 yyval.list = MkList();
8751 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8752 ;
8753 }
8754 break;
8755 case 763:
8756 {
8757 yyval.list = yyvsp[(1) - (2)].list;
8758 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8759 ;
8760 }
8761 break;
8762 case 764:
8763 {
8764 yyval.list = MkList();
8765 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8766 ;
8767 }
8768 break;
8769 case 765:
8770 {
8771 yyval.list = yyvsp[(1) - (2)].list;
8772 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8773 ;
8774 }
8775 break;
8776 case 766:
8777 {
8778 yyval.list = MkList();
8779 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8780 ;
8781 }
8782 break;
8783 case 767:
8784 {
8785 yyval.list = yyvsp[(1) - (2)].list;
8786 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8787 ;
8788 }
8789 break;
8790 case 768:
8791 {
8792 yyval.list = MkList();
8793 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8794 ;
8795 }
8796 break;
8797 case 769:
8798 {
8799 yyval.list = yyvsp[(1) - (2)].list;
8800 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8801 ;
8802 }
8803 break;
8804 case 770:
8805 {
8806 yyval.list = MkList();
8807 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8808 ;
8809 }
8810 break;
8811 case 771:
8812 {
8813 yyval.list = yyvsp[(1) - (2)].list;
8814 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8815 ;
8816 }
8817 break;
8818 case 772:
8819 {
8820 yyval.list = MkList();
8821 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8822 ;
8823 }
8824 break;
8825 case 773:
8826 {
8827 yyval.list = yyvsp[(1) - (2)].list;
8828 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8829 ;
8830 }
8831 break;
8832 case 774:
8833 {
8834 yyval.list = MkList();
8835 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8836 ;
8837 }
8838 break;
8839 case 775:
8840 {
8841 yyval.list = yyvsp[(1) - (2)].list;
8842 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8843 ;
8844 }
8845 break;
8846 case 776:
8847 {
8848 yyval.list = MkList();
8849 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8850 ;
8851 }
8852 break;
8853 case 777:
8854 {
8855 yyval.list = yyvsp[(1) - (2)].list;
8856 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8857 ;
8858 }
8859 break;
8860 case 778:
8861 {
8862 yyval.list = MkList();
8863 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8864 ;
8865 }
8866 break;
8867 case 779:
8868 {
8869 yyval.list = yyvsp[(1) - (2)].list;
8870 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8871 ;
8872 }
8873 break;
8874 case 780:
8875 {
8876 yyval.list = MkList();
8877 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8878 ;
8879 }
8880 break;
8881 case 781:
8882 {
8883 yyval.list = yyvsp[(1) - (2)].list;
8884 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8885 ;
8886 }
8887 break;
8888 case 782:
8889 {
8890 yyval.list = MkList();
8891 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8892 ;
8893 }
8894 break;
8895 case 783:
8896 {
8897 yyval.list = yyvsp[(1) - (2)].list;
8898 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8899 ;
8900 }
8901 break;
8902 case 784:
8903 {
8904 yyval.list = MkList();
8905 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8906 ;
8907 }
8908 break;
8909 case 785:
8910 {
8911 yyval.list = yyvsp[(1) - (2)].list;
8912 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8913 ;
8914 }
8915 break;
8916 case 786:
8917 {
8918 yyval.list = MkList();
8919 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8920 ;
8921 }
8922 break;
8923 case 787:
8924 {
8925 yyval.list = yyvsp[(1) - (2)].list;
8926 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8927 ;
8928 }
8929 break;
8930 case 788:
8931 {
8932 yyval.list = MkList();
8933 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8934 ;
8935 }
8936 break;
8937 case 789:
8938 {
8939 yyval.list = yyvsp[(1) - (2)].list;
8940 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8941 ;
8942 }
8943 break;
8944 case 790:
8945 {
8946 yyval.list = MkList();
8947 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8948 ;
8949 }
8950 break;
8951 case 791:
8952 {
8953 yyval.list = yyvsp[(1) - (2)].list;
8954 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8955 ;
8956 }
8957 break;
8958 case 792:
8959 {
8960 yyval.list = MkList();
8961 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8962 ;
8963 }
8964 break;
8965 case 793:
8966 {
8967 yyval.list = yyvsp[(1) - (2)].list;
8968 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8969 ;
8970 }
8971 break;
8972 case 794:
8973 {
8974 yyval.list = MkList();
8975 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8976 ;
8977 }
8978 break;
8979 case 795:
8980 {
8981 yyval.list = yyvsp[(1) - (2)].list;
8982 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8983 ;
8984 }
8985 break;
8986 case 796:
8987 {
8988 yyval.list = MkList();
8989 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8990 ;
8991 }
8992 break;
8993 case 797:
8994 {
8995 yyval.list = yyvsp[(1) - (2)].list;
8996 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8997 ;
8998 }
8999 break;
9000 case 798:
9001 {
9002 yyval.list = MkList();
9003 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9004 ;
9005 }
9006 break;
9007 case 799:
9008 {
9009 yyval.list = yyvsp[(1) - (2)].list;
9010 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9011 ;
9012 }
9013 break;
9014 case 800:
9015 {
9016 yyval.list = MkList();
9017 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9018 ;
9019 }
9020 break;
9021 case 801:
9022 {
9023 yyval.list = yyvsp[(1) - (2)].list;
9024 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9025 ;
9026 }
9027 break;
9028 case 802:
9029 {
9030 yyval.list = MkList();
9031 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9032 ;
9033 }
9034 break;
9035 case 803:
9036 {
9037 yyval.list = yyvsp[(1) - (2)].list;
9038 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9039 ;
9040 }
9041 break;
9042 case 804:
9043 {
9044 yyval.list = MkList();
9045 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9046 ;
9047 }
9048 break;
9049 case 805:
9050 {
9051 yyval.list = yyvsp[(1) - (2)].list;
9052 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9053 ;
9054 }
9055 break;
9056 case 806:
9057 {
9058 yyval.list = MkList();
9059 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9060 ;
9061 }
9062 break;
9063 case 807:
9064 {
9065 yyval.list = yyvsp[(1) - (2)].list;
9066 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9067 ;
9068 }
9069 break;
9070 case 808:
9071 {
9072 yyval.list = MkList();
9073 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9074 ;
9075 }
9076 break;
9077 case 809:
9078 {
9079 yyval.list = yyvsp[(1) - (2)].list;
9080 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9081 ;
9082 }
9083 break;
9084 case 810:
9085 {
9086 yyval.list = MkList();
9087 ListAdd(yyval.list, MkSpecifier(PRIVATE));
9088 ;
9089 }
9090 break;
9091 case 811:
9092 {
9093 yyval.list = MkList();
9094 ListAdd(yyval.list, MkSpecifier(PUBLIC));
9095 ;
9096 }
9097 break;
9098 case 812:
9099 {
9100 yyval.list = MkList();
9101 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9102 ;
9103 }
9104 break;
9105 case 813:
9106 {
9107 yyval.list = yyvsp[(1) - (2)].list;
9108 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9109 ;
9110 }
9111 break;
9112 case 814:
9113 {
9114 yyval.list = MkList();
9115 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9116 ;
9117 }
9118 break;
9119 case 815:
9120 {
9121 yyval.list = yyvsp[(1) - (2)].list;
9122 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9123 ;
9124 }
9125 break;
9126 case 816:
9127 {
9128 yyval.list = MkList();
9129 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9130 ;
9131 }
9132 break;
9133 case 817:
9134 {
9135 yyval.list = yyvsp[(1) - (2)].list;
9136 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9137 ;
9138 }
9139 break;
9140 case 818:
9141 {
9142 _DeclClass(yyvsp[(1) - (1)].id->_class, yyvsp[(1) - (1)].id->string);
9143 yyval.list = MkListOne(MkSpecifierName(yyvsp[(1) - (1)].id->string));
9144 FreeIdentifier(yyvsp[(1) - (1)].id);
9145 ;
9146 }
9147 break;
9148 case 819:
9149 {
9150 yyval.list = yyvsp[(1) - (2)].list;
9151 _DeclClass(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
9152 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9153 FreeIdentifier(yyvsp[(2) - (2)].id);
9154 ;
9155 }
9156 break;
9157 case 820:
9158 {
9159 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9160 yyval.list = MkList();
9161 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9162 FreeIdentifier(yyvsp[(1) - (4)].id);
9163 ;
9164 }
9165 break;
9166 case 821:
9167 {
9168 yyval.list = yyvsp[(1) - (5)].list;
9169 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9170 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9171 FreeIdentifier(yyvsp[(2) - (5)].id);
9172 ;
9173 }
9174 break;
9175 case 823:
9176 {
9177 yyval.list = MkListOne(MkStructOrUnion(yyvsp[(1) - (1)].specifierType, (((void *)0)), (((void *)0))));
9178 if(defaultMemberAccess > -1)
9179 defaultMemberAccess--;
9180 ;
9181 }
9182 break;
9183 case 824:
9184 {
9185 yyval.list = MkList();
9186 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9187 ;
9188 }
9189 break;
9190 case 825:
9191 {
9192 yyval.list = yyvsp[(1) - (2)].list;
9193 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9194 ;
9195 }
9196 break;
9197 case 826:
9198 {
9199 yyval.list = MkList();
9200 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9201 ;
9202 }
9203 break;
9204 case 827:
9205 {
9206 yyval.list = yyvsp[(1) - (2)].list;
9207 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9208 ;
9209 }
9210 break;
9211 case 828:
9212 {
9213 yyval.list = MkList();
9214 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9215 ;
9216 }
9217 break;
9218 case 829:
9219 {
9220 yyval.list = yyvsp[(1) - (2)].list;
9221 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9222 ;
9223 }
9224 break;
9225 case 830:
9226 {
9227 yyval.list = MkList();
9228 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9229 FreeIdentifier(yyvsp[(1) - (1)].id);
9230 }
9231 break;
9232 case 831:
9233 {
9234 yyval.list = yyvsp[(1) - (2)].list;
9235 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9236 FreeIdentifier(yyvsp[(2) - (2)].id);
9237 }
9238 break;
9239 case 832:
9240 {
9241 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9242 yyval.list = MkList();
9243 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9244 FreeIdentifier(yyvsp[(1) - (4)].id);
9245 ;
9246 }
9247 break;
9248 case 833:
9249 {
9250 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9251 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9252 FreeIdentifier(yyvsp[(2) - (5)].id);
9253 ;
9254 }
9255 break;
9256 case 834:
9257 {
9258 yyval.list = MkList();
9259 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9260 ;
9261 }
9262 break;
9263 case 835:
9264 {
9265 yyval.list = yyvsp[(1) - (2)].list;
9266 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9267 ;
9268 }
9269 break;
9270 case 836:
9271 {
9272 yyval.list = MkList();
9273 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9274 ;
9275 }
9276 break;
9277 case 837:
9278 {
9279 yyval.list = yyvsp[(1) - (2)].list;
9280 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9281 ;
9282 }
9283 break;
9284 case 838:
9285 {
9286 yyval.list = MkList();
9287 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9288 ;
9289 }
9290 break;
9291 case 839:
9292 {
9293 yyval.list = yyvsp[(1) - (2)].list;
9294 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9295 ;
9296 }
9297 break;
9298 case 840:
9299 {
9300 yyval.list = MkList();
9301 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9302 ;
9303 }
9304 break;
9305 case 841:
9306 {
9307 yyval.list = yyvsp[(1) - (2)].list;
9308 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9309 ;
9310 }
9311 break;
9312 case 842:
9313 {
9314 yyval.list = MkList();
9315 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9316 ;
9317 }
9318 break;
9319 case 843:
9320 {
9321 yyval.list = yyvsp[(1) - (2)].list;
9322 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9323 ;
9324 }
9325 break;
9326 case 844:
9327 {
9328 yyval.list = MkList();
9329 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9330 FreeIdentifier(yyvsp[(1) - (1)].id);
9331 }
9332 break;
9333 case 845:
9334 {
9335 yyval.list = yyvsp[(1) - (2)].list;
9336 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9337 FreeIdentifier(yyvsp[(2) - (2)].id);
9338 }
9339 break;
9340 case 846:
9341 {
9342 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9343 yyval.list = MkList();
9344 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9345 FreeIdentifier(yyvsp[(1) - (4)].id);
9346 ;
9347 }
9348 break;
9349 case 847:
9350 {
9351 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9352 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9353 FreeIdentifier(yyvsp[(2) - (5)].id);
9354 ;
9355 }
9356 break;
9357 case 848:
9358 {
9359 yyval.list = MkList();
9360 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9361 ;
9362 }
9363 break;
9364 case 849:
9365 {
9366 yyval.list = yyvsp[(1) - (2)].list;
9367 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9368 ;
9369 }
9370 break;
9371 case 850:
9372 {
9373 yyval.list = MkList();
9374 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9375 ;
9376 }
9377 break;
9378 case 851:
9379 {
9380 yyval.list = yyvsp[(1) - (2)].list;
9381 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9382 ;
9383 }
9384 break;
9385 case 852:
9386 {
9387 yyval.list = MkList();
9388 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9389 ;
9390 }
9391 break;
9392 case 853:
9393 {
9394 yyval.list = yyvsp[(1) - (2)].list;
9395 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9396 ;
9397 }
9398 break;
9399 case 854:
9400 {
9401 yyval.list = MkList();
9402 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9403 ;
9404 }
9405 break;
9406 case 855:
9407 {
9408 yyval.list = yyvsp[(1) - (2)].list;
9409 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9410 ;
9411 }
9412 break;
9413 case 856:
9414 {
9415 yyval.list = MkList();
9416 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9417 ;
9418 }
9419 break;
9420 case 857:
9421 {
9422 yyval.list = yyvsp[(1) - (2)].list;
9423 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9424 ;
9425 }
9426 break;
9427 case 858:
9428 {
9429 yyval.list = MkList();
9430 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9431 FreeIdentifier(yyvsp[(1) - (1)].id);
9432 }
9433 break;
9434 case 859:
9435 {
9436 yyval.list = yyvsp[(1) - (2)].list;
9437 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9438 FreeIdentifier(yyvsp[(2) - (2)].id);
9439 }
9440 break;
9441 case 860:
9442 {
9443 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9444 yyval.list = MkList();
9445 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9446 FreeIdentifier(yyvsp[(1) - (4)].id);
9447 ;
9448 }
9449 break;
9450 case 861:
9451 {
9452 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9453 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9454 FreeIdentifier(yyvsp[(2) - (5)].id);
9455 ;
9456 }
9457 break;
9458 case 862:
9459 {
9460 yyval.list = yyvsp[(1) - (3)].list;
9461 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
9462 ;
9463 }
9464 break;
9465 case 863:
9466 {
9467 yyval.list = yyvsp[(1) - (3)].list;
9468 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
9469 ;
9470 }
9471 break;
9472 case 864:
9473 {
9474 yyval.list = MkList();
9475 ListAdd(yyval.list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(1) - (1)].id)));
9476 ;
9477 }
9478 break;
9479 case 865:
9480 {
9481 yyval.list = yyvsp[(1) - (3)].list;
9482 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9483 ;
9484 }
9485 break;
9486 case 866:
9487 {
9488 yyval.list = yyvsp[(1) - (3)].list;
9489 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9490 ;
9491 }
9492 break;
9493 case 867:
9494 {
9495 yyval.list = yyvsp[(1) - (3)].list;
9496 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9497 ;
9498 }
9499 break;
9500 case 868:
9501 {
9502 yyval.list = yyvsp[(1) - (3)].list;
9503 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9504 ;
9505 }
9506 break;
9507 case 870:
9508 {
9509 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (1)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (1)].specifier->__anon1.__anon1.name), 1, 0);
9510 char * s = colon ? colon + 2 : yyvsp[(1) - (1)].specifier->__anon1.__anon1.name;
9511
9512 yyval.declarator = MkDeclaratorIdentifier(MkIdentifier(s));
9513 FreeSpecifier(yyvsp[(1) - (1)].specifier);
9514 ;
9515 }
9516 break;
9517 case 871:
9518 {
9519 yyval.declarator = MkDeclaratorIdentifier(MkIdentifier("uint"));
9520 ;
9521 }
9522 break;
9523 case 872:
9524 {
9525 struct Declarator * decl;
9526 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9527 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9528
9529 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9530 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9531 yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
9532 ;
9533 }
9534 break;
9535 case 873:
9536 {
9537 struct Declarator * decl;
9538 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9539 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9540
9541 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9542 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9543 yyval.declarator = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
9544 ;
9545 }
9546 break;
9547 case 874:
9548 {
9549 struct Declarator * decl;
9550 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9551 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9552
9553 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9554 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9555 yyval.declarator = MkDeclaratorEnumArray(decl, yyvsp[(3) - (4)].specifier);
9556 ;
9557 }
9558 break;
9559 case 875:
9560 {
9561 struct Declarator * decl;
9562 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name), 1, 0);
9563 char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->__anon1.__anon1.name;
9564
9565 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9566 FreeSpecifier(yyvsp[(1) - (3)].specifier);
9567 yyval.declarator = MkDeclaratorEnumArray(decl, (((void *)0)));
9568 ;
9569 }
9570 break;
9571 case 876:
9572 {
9573 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9574 ;
9575 }
9576 break;
9577 case 877:
9578 {
9579 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9580 ;
9581 }
9582 break;
9583 case 878:
9584 {
9585 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9586 ;
9587 }
9588 break;
9589 case 879:
9590 {
9591 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
9592 ;
9593 }
9594 break;
9595 case 880:
9596 {
9597 yyval.declarator = MkDeclaratorIdentifier(yyvsp[(1) - (1)].id);
9598 ;
9599 }
9600 break;
9601 case 881:
9602 {
9603 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9604 ;
9605 }
9606 break;
9607 case 882:
9608 {
9609 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
9610 ;
9611 }
9612 break;
9613 case 883:
9614 {
9615 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9616 ;
9617 }
9618 break;
9619 case 884:
9620 {
9621 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
9622 ;
9623 }
9624 break;
9625 case 885:
9626 {
9627 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9628 ;
9629 }
9630 break;
9631 case 886:
9632 {
9633 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9634 ;
9635 }
9636 break;
9637 case 887:
9638 {
9639 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9640 ;
9641 }
9642 break;
9643 case 888:
9644 {
9645 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
9646 ;
9647 }
9648 break;
9649 case 890:
9650 {
9651 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9652 ;
9653 }
9654 break;
9655 case 891:
9656 {
9657 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9658 ;
9659 }
9660 break;
9661 case 892:
9662 {
9663 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9664 ;
9665 }
9666 break;
9667 case 893:
9668 {
9669 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9670 ;
9671 }
9672 break;
9673 case 894:
9674 {
9675 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9676 ;
9677 }
9678 break;
9679 case 895:
9680 {
9681 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, yyvsp[(2) - (2)].list);
9682 (__extension__ ({
9683 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9684
9685 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9686 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9687
9688 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9689 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9690 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).end.pos, 0) : (unsigned int)1;
9691 }));
9692 (yychar = (-2));
9693 resetScannerPos(&(yylsp[(1) - (2)]).end);
9694 (yyloc.start = (yylsp[(1) - (2)]).start);
9695 (yyloc.end = (yylsp[(1) - (2)]).end);
9696 ;
9697 }
9698 break;
9699 case 896:
9700 {
9701 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9702 (__extension__ ({
9703 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9704
9705 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9706 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9707
9708 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9709 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9710 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).end.pos, 0) : (unsigned int)1;
9711 }));
9712 (yychar = (-2));
9713 resetScannerPos(&(yylsp[(1) - (2)]).end);
9714 (yyloc.start = (yylsp[(1) - (2)]).start);
9715 (yyloc.end = (yylsp[(1) - (2)]).end);
9716 ;
9717 }
9718 break;
9719 case 897:
9720 {
9721 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9722 (__extension__ ({
9723 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9724
9725 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9726 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9727
9728 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9729 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9730 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (3)]).end.pos, 0) : (unsigned int)1;
9731 }));
9732 (yychar = (-2));
9733 resetScannerPos(&(yylsp[(1) - (3)]).end);
9734 (yyloc.start = (yylsp[(1) - (3)]).start);
9735 (yyloc.end = (yylsp[(1) - (3)]).end);
9736 ;
9737 }
9738 break;
9739 case 898:
9740 {
9741 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, (((void *)0)));
9742 (__extension__ ({
9743 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9744
9745 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9746 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9747
9748 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9749 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9750 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (4)]).end.pos, 0) : (unsigned int)1;
9751 }));
9752 (yychar = (-2));
9753 resetScannerPos(&(yylsp[(1) - (4)]).end);
9754 (yyloc.start = (yylsp[(1) - (4)]).start);
9755 (yyloc.end = (yylsp[(1) - (4)]).end);
9756 FreeList(yyvsp[(2) - (4)].list, (void *)(FreeSpecifier));
9757 FreeIdentifier(yyvsp[(3) - (4)].id);
9758 ;
9759 }
9760 break;
9761 case 902:
9762 {
9763 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9764 ;
9765 }
9766 break;
9767 case 903:
9768 {
9769 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9770 ;
9771 }
9772 break;
9773 case 904:
9774 {
9775 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9776 ;
9777 }
9778 break;
9779 case 905:
9780 {
9781 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9782 ;
9783 }
9784 break;
9785 case 906:
9786 {
9787 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9788 ;
9789 }
9790 break;
9791 case 907:
9792 {
9793 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, yyvsp[(2) - (2)].list);
9794 (__extension__ ({
9795 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9796
9797 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9798 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9799
9800 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9801 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9802 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).end.pos, 0) : (unsigned int)1;
9803 }));
9804 (yychar = (-2));
9805 resetScannerPos(&(yylsp[(1) - (2)]).end);
9806 (yyloc.start = (yylsp[(1) - (2)]).start);
9807 (yyloc.end = (yylsp[(1) - (2)]).end);
9808 ;
9809 }
9810 break;
9811 case 908:
9812 {
9813 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9814 (__extension__ ({
9815 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9816
9817 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9818 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9819
9820 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9821 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9822 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).end.pos, 0) : (unsigned int)1;
9823 }));
9824 (yychar = (-2));
9825 resetScannerPos(&(yylsp[(1) - (2)]).end);
9826 (yyloc.start = (yylsp[(1) - (2)]).start);
9827 (yyloc.end = (yylsp[(1) - (2)]).end);
9828 ;
9829 }
9830 break;
9831 case 909:
9832 {
9833 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9834 (__extension__ ({
9835 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9836
9837 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9838 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9839
9840 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9841 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9842 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (3)]).end.pos, 0) : (unsigned int)1;
9843 }));
9844 (yychar = (-2));
9845 resetScannerPos(&(yylsp[(1) - (3)]).end);
9846 (yyloc.start = (yylsp[(1) - (3)]).start);
9847 (yyloc.end = (yylsp[(1) - (3)]).end);
9848 ;
9849 }
9850 break;
9851 case 910:
9852 {
9853 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, (((void *)0)));
9854 (__extension__ ({
9855 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9856
9857 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9858 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9859
9860 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9861 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9862 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (4)]).end.pos, 0) : (unsigned int)1;
9863 }));
9864 (yychar = (-2));
9865 resetScannerPos(&(yylsp[(1) - (4)]).end);
9866 (yyloc.start = (yylsp[(1) - (4)]).start);
9867 (yyloc.end = (yylsp[(1) - (4)]).end);
9868 FreeList(yyvsp[(2) - (4)].list, (void *)(FreeSpecifier));
9869 FreeIdentifier(yyvsp[(3) - (4)].id);
9870 ;
9871 }
9872 break;
9873 case 913:
9874 {
9875 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(yytext));
9876 ;
9877 }
9878 break;
9879 case 914:
9880 {
9881 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(yytext));
9882 ;
9883 }
9884 break;
9885 case 915:
9886 {
9887 yyval.extDecl = MkExtDeclAttrib(yyvsp[(1) - (1)].attrib);
9888 ;
9889 }
9890 break;
9891 case 916:
9892 {
9893 char temp[1024];
9894
9895 strcpy(temp, "__asm__(");
9896 strcat(temp, yyvsp[(3) - (4)].string);
9897 strcat(temp, ")");
9898 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(temp));
9899 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(3) - (4)].string), yyvsp[(3) - (4)].string = 0);
9900 ;
9901 }
9902 break;
9903 case 917:
9904 {
9905 yyval.i = ATTRIB;
9906 ;
9907 }
9908 break;
9909 case 918:
9910 {
9911 yyval.i = ATTRIB_DEP;
9912 ;
9913 }
9914 break;
9915 case 919:
9916 {
9917 yyval.i = __ATTRIB;
9918 ;
9919 }
9920 break;
9921 case 920:
9922 {
9923 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9924 ;
9925 }
9926 break;
9927 case 921:
9928 {
9929 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9930 ;
9931 }
9932 break;
9933 case 922:
9934 {
9935 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9936 ;
9937 }
9938 break;
9939 case 923:
9940 {
9941 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9942 ;
9943 }
9944 break;
9945 case 924:
9946 {
9947 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9948 ;
9949 }
9950 break;
9951 case 925:
9952 {
9953 yyval.attribute = MkAttribute(yyvsp[(1) - (1)].string, (((void *)0)));
9954 yyval.attribute->loc = (yyloc);
9955 ;
9956 }
9957 break;
9958 case 926:
9959 {
9960 yyval.attribute = MkAttribute(yyvsp[(1) - (4)].string, MkExpBrackets(yyvsp[(3) - (4)].list));
9961 yyval.attribute->loc = (yyloc);
9962 ;
9963 }
9964 break;
9965 case 927:
9966 {
9967 yyval.list = MkListOne(yyvsp[(1) - (1)].attribute);
9968 ;
9969 }
9970 break;
9971 case 928:
9972 {
9973 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].attribute);
9974 yyval.list = yyvsp[(1) - (2)].list;
9975 ;
9976 }
9977 break;
9978 case 929:
9979 {
9980 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].attribute);
9981 yyval.list = yyvsp[(1) - (3)].list;
9982 ;
9983 }
9984 break;
9985 case 930:
9986 {
9987 yyval.attrib = MkAttrib(yyvsp[(1) - (6)].i, yyvsp[(4) - (6)].list);
9988 yyval.attrib->loc = (yyloc);
9989 ;
9990 }
9991 break;
9992 case 931:
9993 {
9994 yyval.attrib = MkAttrib(yyvsp[(1) - (5)].i, (((void *)0)));
9995 yyval.attrib->loc = (yyloc);
9996 ;
9997 }
9998 break;
9999 case 932:
10000 {
10001 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
10002 ;
10003 }
10004 break;
10005 case 933:
10006 {
10007 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
10008 ;
10009 }
10010 break;
10011 case 934:
10012 {
10013 yyval.declarator = MkDeclaratorArray((((void *)0)), (((void *)0)));
10014 ;
10015 }
10016 break;
10017 case 935:
10018 {
10019 yyval.declarator = MkDeclaratorArray((((void *)0)), yyvsp[(2) - (3)].exp);
10020 ;
10021 }
10022 break;
10023 case 936:
10024 {
10025 yyval.declarator = MkDeclaratorArray((((void *)0)), yyvsp[(2) - (3)].exp);
10026 ;
10027 }
10028 break;
10029 case 937:
10030 {
10031 yyval.declarator = MkDeclaratorEnumArray((((void *)0)), yyvsp[(2) - (3)].specifier);
10032 ;
10033 }
10034 break;
10035 case 938:
10036 {
10037 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
10038 ;
10039 }
10040 break;
10041 case 939:
10042 {
10043 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
10044 ;
10045 }
10046 break;
10047 case 940:
10048 {
10049 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
10050 ;
10051 }
10052 break;
10053 case 941:
10054 {
10055 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
10056 ;
10057 }
10058 break;
10059 case 942:
10060 {
10061 yyval.declarator = MkDeclaratorFunction((((void *)0)), (((void *)0)));
10062 ;
10063 }
10064 break;
10065 case 943:
10066 {
10067 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10068 ;
10069 }
10070 break;
10071 case 944:
10072 {
10073 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10074 ;
10075 }
10076 break;
10077 case 945:
10078 {
10079 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, (((void *)0)));
10080 ;
10081 }
10082 break;
10083 case 946:
10084 {
10085 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10086 ;
10087 }
10088 break;
10089 case 947:
10090 {
10091 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10092 ;
10093 }
10094 break;
10095 case 948:
10096 {
10097 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
10098 ;
10099 }
10100 break;
10101 case 949:
10102 {
10103 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
10104 ;
10105 }
10106 break;
10107 case 950:
10108 {
10109 yyval.declarator = MkDeclaratorFunction((((void *)0)), (((void *)0)));
10110 ;
10111 }
10112 break;
10113 case 951:
10114 {
10115 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10116 ;
10117 }
10118 break;
10119 case 952:
10120 {
10121 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10122 ;
10123 }
10124 break;
10125 case 953:
10126 {
10127 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, (((void *)0)));
10128 ;
10129 }
10130 break;
10131 case 954:
10132 {
10133 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10134 ;
10135 }
10136 break;
10137 case 955:
10138 {
10139 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10140 ;
10141 }
10142 break;
10143 case 956:
10144 {
10145 yyval.pointer = MkPointer((((void *)0)), (((void *)0)));
10146 ;
10147 }
10148 break;
10149 case 957:
10150 {
10151 yyval.pointer = MkPointer(yyvsp[(2) - (2)].list, (((void *)0)));
10152 ;
10153 }
10154 break;
10155 case 958:
10156 {
10157 yyval.pointer = MkPointer((((void *)0)), yyvsp[(2) - (2)].pointer);
10158 ;
10159 }
10160 break;
10161 case 959:
10162 {
10163 yyval.pointer = MkPointer(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].pointer);
10164 ;
10165 }
10166 break;
10167 case 960:
10168 {
10169 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (1)].pointer, (((void *)0)));
10170 ;
10171 }
10172 break;
10173 case 962:
10174 {
10175 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10176 ;
10177 }
10178 break;
10179 case 963:
10180 {
10181 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (2)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (2)].pointer, (((void *)0))));
10182 ;
10183 }
10184 break;
10185 case 964:
10186 {
10187 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10188 ;
10189 }
10190 break;
10191 case 965:
10192 {
10193 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (1)].pointer, (((void *)0)));
10194 ;
10195 }
10196 break;
10197 case 967:
10198 {
10199 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10200 ;
10201 }
10202 break;
10203 case 968:
10204 {
10205 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (2)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (2)].pointer, (((void *)0))));
10206 ;
10207 }
10208 break;
10209 case 969:
10210 {
10211 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10212 ;
10213 }
10214 break;
10215 case 971:
10216 {
10217 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10218 ;
10219 }
10220 break;
10221 case 972:
10222 {
10223 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10224 ;
10225 }
10226 break;
10227 case 973:
10228 {
10229 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10230 ;
10231 }
10232 break;
10233 case 974:
10234 {
10235 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10236 ;
10237 }
10238 break;
10239 case 976:
10240 {
10241 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10242 ;
10243 }
10244 break;
10245 case 977:
10246 {
10247 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10248 ;
10249 }
10250 break;
10251 case 978:
10252 {
10253 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10254 ;
10255 }
10256 break;
10257 case 980:
10258 {
10259 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10260 ;
10261 }
10262 break;
10263 case 981:
10264 {
10265 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10266 ;
10267 }
10268 break;
10269 case 982:
10270 {
10271 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10272 ;
10273 }
10274 break;
10275 case 984:
10276 {
10277 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10278 ;
10279 }
10280 break;
10281 case 985:
10282 {
10283 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10284 ;
10285 }
10286 break;
10287 case 986:
10288 {
10289 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10290 ;
10291 }
10292 break;
10293 case 988:
10294 {
10295 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10296 ;
10297 }
10298 break;
10299 case 989:
10300 {
10301 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10302 ;
10303 }
10304 break;
10305 case 990:
10306 {
10307 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10308 ;
10309 }
10310 break;
10311 case 992:
10312 {
10313 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10314 ;
10315 }
10316 break;
10317 case 993:
10318 {
10319 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10320 ;
10321 }
10322 break;
10323 case 994:
10324 {
10325 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10326 ;
10327 }
10328 break;
10329 case 996:
10330 {
10331 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10332 ;
10333 }
10334 break;
10335 case 997:
10336 {
10337 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10338 ;
10339 }
10340 break;
10341 case 998:
10342 {
10343 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10344 ;
10345 }
10346 break;
10347 case 999:
10348 {
10349 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10350 yyval.initializer->loc = (yyloc);
10351 ;
10352 }
10353 break;
10354 case 1000:
10355 {
10356 yyval.initializer = MkInitializerList(yyvsp[(2) - (3)].list);
10357 yyval.initializer->loc = (yyloc);
10358 ;
10359 }
10360 break;
10361 case 1001:
10362 {
10363 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "extra comma\n", (((void *)0))));
10364 yyval.initializer = MkInitializerList(yyvsp[(2) - (4)].list);
10365 yyval.initializer->loc = (yyloc);
10366 {
10367 struct Expression * exp = MkExpDummy();
10368 struct Initializer * init = MkInitializerAssignment(exp);
10369
10370 init->loc = (yylsp[(3) - (4)]);
10371 exp->loc = (yylsp[(3) - (4)]);
10372 ListAdd(yyvsp[(2) - (4)].list, init);
10373 }
10374 ;
10375 }
10376 break;
10377 case 1002:
10378 {
10379 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10380 yyval.initializer->loc = (yyloc);
10381 ;
10382 }
10383 break;
10384 case 1003:
10385 {
10386 yyval.initializer = MkInitializerList(yyvsp[(2) - (4)].list);
10387 yyval.initializer->loc = (yyloc);
10388 ;
10389 }
10390 break;
10391 case 1004:
10392 {
10393 yyerror();
10394 yyval.initializer = MkInitializerList(yyvsp[(2) - (2)].list);
10395 yyval.initializer->loc = (yyloc);
10396 ;
10397 }
10398 break;
10399 case 1005:
10400 {
10401 yyval.initializer = MkInitializerList(yyvsp[(2) - (5)].list);
10402 yyval.initializer->loc = (yyloc);
10403 {
10404 struct Expression * exp = MkExpDummy();
10405 struct Initializer * init = MkInitializerAssignment(exp);
10406
10407 init->loc = (yylsp[(3) - (5)]);
10408 exp->loc = (yylsp[(3) - (5)]);
10409 ListAdd(yyvsp[(2) - (5)].list, init);
10410 }
10411 ;
10412 }
10413 break;
10414 case 1006:
10415 {
10416 yyerror();
10417 yyval.initializer = MkInitializerList(yyvsp[(2) - (3)].list);
10418 yyval.initializer->loc = (yyloc);
10419 {
10420 struct Expression * exp = MkExpDummy();
10421 struct Initializer * init = MkInitializerAssignment(exp);
10422
10423 init->loc = (yylsp[(3) - (3)]);
10424 exp->loc = (yylsp[(3) - (3)]);
10425 ListAdd(yyvsp[(2) - (3)].list, init);
10426 }
10427 ;
10428 }
10429 break;
10430 case 1007:
10431 {
10432 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10433 yyval.initializer->loc = (yyloc);
10434 ;
10435 }
10436 break;
10437 case 1008:
10438 {
10439 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10440 yyval.initializer->loc = (yyloc);
10441 ;
10442 }
10443 break;
10444 case 1009:
10445 {
10446 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10447 yyval.initializer->loc = (yyloc);
10448 ;
10449 }
10450 break;
10451 case 1010:
10452 {
10453 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10454 yyval.initializer->loc = (yyloc);
10455 ;
10456 }
10457 break;
10458 case 1011:
10459 {
10460 yyval.list = MkList();
10461 ListAdd(yyval.list, yyvsp[(1) - (1)].initializer);
10462 ;
10463 }
10464 break;
10465 case 1012:
10466 {
10467 yyval.list = MkList();
10468 ListAdd(yyval.list, yyvsp[(1) - (1)].initializer);
10469 ;
10470 }
10471 break;
10472 case 1013:
10473 {
10474 yyval.list = yyvsp[(1) - (3)].list;
10475 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initializer);
10476 ;
10477 }
10478 break;
10479 case 1014:
10480 {
10481 yyval.list = yyvsp[(1) - (3)].list;
10482 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initializer);
10483 ;
10484 }
10485 break;
10486 case 1015:
10487 {
10488 yyerror();
10489 yyval.list = yyvsp[(1) - (2)].list;
10490 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].initializer);
10491 ;
10492 }
10493 break;
10494 case 1016:
10495 {
10496 yyval.list = yyvsp[(1) - (2)].list;
10497 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].initializer);
10498 ;
10499 }
10500 break;
10501 case 1017:
10502 {
10503 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
10504 yyval.initDeclarator->loc = (yyloc);
10505 ;
10506 }
10507 break;
10508 case 1018:
10509 {
10510 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
10511 yyval.initDeclarator->loc = (yyloc);
10512 ;
10513 }
10514 break;
10515 case 1019:
10516 {
10517 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].initializer);
10518 yyval.initDeclarator->loc = (yyloc);
10519 yyval.initDeclarator->initializer->loc.start = (yylsp[(2) - (3)]).end;
10520 ;
10521 }
10522 break;
10523 case 1020:
10524 {
10525 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (2)].declarator, (((void *)0)));
10526 yyval.initDeclarator->loc = (yyloc);
10527 ;
10528 }
10529 break;
10530 case 1021:
10531 {
10532 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].initializer);
10533 yyval.initDeclarator->loc = (yyloc);
10534 yyval.initDeclarator->initializer->loc.start = (yylsp[(2) - (3)]).end;
10535 ;
10536 }
10537 break;
10538 case 1022:
10539 {
10540 yyval.list = MkList();
10541 ListAdd(yyval.list, yyvsp[(1) - (1)].initDeclarator);
10542 ;
10543 }
10544 break;
10545 case 1023:
10546 {
10547 yyval.list = yyvsp[(1) - (3)].list;
10548 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10549 ;
10550 }
10551 break;
10552 case 1024:
10553 {
10554 yyval.list = MkList();
10555 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("uint")), (((void *)0))));
10556 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10557 ;
10558 }
10559 break;
10560 case 1025:
10561 {
10562 yyval.list = MkList();
10563 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("int64")), (((void *)0))));
10564 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10565 ;
10566 }
10567 break;
10568 case 1026:
10569 {
10570 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name), 1, 0);
10571 char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->__anon1.__anon1.name;
10572
10573 yyval.list = MkList();
10574 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(s)), (((void *)0))));
10575 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10576 FreeSpecifier(yyvsp[(1) - (3)].specifier);
10577 ;
10578 }
10579 break;
10580 case 1027:
10581 {
10582 yyval.list = yyvsp[(1) - (3)].list;
10583 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10584 ;
10585 }
10586 break;
10587 case 1028:
10588 {
10589 yyval.list = MkList();
10590 ListAdd(yyval.list, yyvsp[(1) - (1)].initDeclarator);
10591 ;
10592 }
10593 break;
10594 case 1029:
10595 {
10596 yyval.list = MkList();
10597 ListAdd(yyval.list, yyvsp[(1) - (2)].initDeclarator);
10598 ;
10599 }
10600 break;
10601 case 1030:
10602 {
10603 yyval.list = yyvsp[(1) - (3)].list;
10604 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10605 ;
10606 }
10607 break;
10608 case 1031:
10609 {
10610 yyval.list = yyvsp[(1) - (3)].list;
10611 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10612 ;
10613 }
10614 break;
10615 case 1032:
10616 {
10617 yyval.typeName = MkTypeName(yyvsp[(1) - (1)].list, (((void *)0)));
10618 ;
10619 }
10620 break;
10621 case 1033:
10622 {
10623 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10624 ;
10625 }
10626 break;
10627 case 1034:
10628 {
10629 yyval.typeName = MkTypeName(yyvsp[(1) - (1)].list, (((void *)0)));
10630 ;
10631 }
10632 break;
10633 case 1035:
10634 {
10635 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10636 ;
10637 }
10638 break;
10639 case 1036:
10640 {
10641 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10642 ;
10643 }
10644 break;
10645 case 1037:
10646 {
10647 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10648 ;
10649 }
10650 break;
10651 case 1038:
10652 {
10653 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), (((void *)0))));
10654 ;
10655 }
10656 break;
10657 case 1039:
10658 {
10659 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), yyvsp[(3) - (3)].declarator));
10660 ;
10661 }
10662 break;
10663 case 1040:
10664 {
10665 yyval.typeName = MkTypeNameGuessDecl(yyvsp[(1) - (1)].list, (((void *)0)));
10666 ;
10667 }
10668 break;
10669 case 1041:
10670 {
10671 yyval.typeName = MkTypeName(MkListOne(MkSpecifier(CLASS)), (((void *)0)));
10672 ;
10673 }
10674 break;
10675 case 1042:
10676 {
10677 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator);
10678 ;
10679 }
10680 break;
10681 case 1043:
10682 {
10683 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator);
10684 ;
10685 }
10686 break;
10687 case 1044:
10688 {
10689 yyval.list = MkList();
10690 ListAdd(yyval.list, yyvsp[(1) - (1)].typeName);
10691 ;
10692 }
10693 break;
10694 case 1045:
10695 {
10696 yyval.list = yyvsp[(1) - (3)].list;
10697 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10698 ;
10699 }
10700 break;
10701 case 1046:
10702 {
10703 yyval.list = yyvsp[(1) - (4)].list;
10704 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10705 ;
10706 }
10707 break;
10708 case 1047:
10709 {
10710 yyval.list = yyvsp[(1) - (3)].list;
10711 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10712 ;
10713 }
10714 break;
10715 case 1048:
10716 {
10717 yyval.list = yyvsp[(1) - (4)].list;
10718 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10719 ;
10720 }
10721 break;
10722 case 1049:
10723 {
10724 yyval.list = MkList();
10725 ListAdd(yyval.list, MkTypeName(MkList(), (((void *)0))));
10726 ListAdd(yyval.list, yyvsp[(3) - (3)].typeName);
10727 ;
10728 }
10729 break;
10730 case 1050:
10731 {
10732 yyval.list = yyvsp[(1) - (3)].list;
10733 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10734 ;
10735 }
10736 break;
10737 case 1051:
10738 {
10739 yyval.list = yyvsp[(1) - (4)].list;
10740 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10741 ;
10742 }
10743 break;
10744 case 1052:
10745 {
10746 yyval.list = yyvsp[(1) - (3)].list;
10747 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10748 ;
10749 }
10750 break;
10751 case 1053:
10752 {
10753 yyval.list = yyvsp[(1) - (4)].list;
10754 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10755 ;
10756 }
10757 break;
10758 case 1054:
10759 {
10760 yyval.list = MkList();
10761 ListAdd(yyval.list, yyvsp[(1) - (1)].typeName);
10762 ;
10763 }
10764 break;
10765 case 1055:
10766 {
10767 yyval.list = yyvsp[(1) - (3)].list;
10768 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10769 ;
10770 }
10771 break;
10772 case 1056:
10773 {
10774 yyval.list = yyvsp[(1) - (3)].list;
10775 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10776 ;
10777 }
10778 break;
10779 case 1057:
10780 {
10781 yyval.list = yyvsp[(1) - (4)].list;
10782 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10783 ;
10784 }
10785 break;
10786 case 1058:
10787 {
10788 yyval.list = MkList();
10789 ListAdd(yyval.list, MkTypeName(MkList(), (((void *)0))));
10790 ListAdd(yyval.list, yyvsp[(3) - (3)].typeName);
10791 ;
10792 }
10793 break;
10794 case 1059:
10795 {
10796 yyval.list = yyvsp[(1) - (3)].list;
10797 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10798 ;
10799 }
10800 break;
10801 case 1060:
10802 {
10803 yyval.list = yyvsp[(1) - (3)].list;
10804 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10805 ;
10806 }
10807 break;
10808 case 1061:
10809 {
10810 yyval.list = yyvsp[(1) - (4)].list;
10811 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10812 ;
10813 }
10814 break;
10815 case 1063:
10816 {
10817 yyval.list = yyvsp[(1) - (3)].list;
10818 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10819 ;
10820 }
10821 break;
10822 case 1064:
10823 {
10824 yyval.list = yyvsp[(1) - (3)].list;
10825 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10826 ;
10827 }
10828 break;
10829 case 1065:
10830 {
10831 yyval.list = yyvsp[(1) - (3)].list;
10832 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10833 ;
10834 }
10835 break;
10836 case 1066:
10837 {
10838 yyval.list = yyvsp[(1) - (3)].list;
10839 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10840 ;
10841 }
10842 break;
10843 case 1067:
10844 {
10845 yyval.list = MkList();
10846 ListAdd(yyval.list, MkTypeName((((void *)0)), (((void *)0))));
10847 ;
10848 }
10849 break;
10850 case 1069:
10851 {
10852 yyval.list = yyvsp[(1) - (3)].list;
10853 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
10854 ;
10855 }
10856 break;
10857 case 1072:
10858 {
10859 yyval.stmt = MkExpressionStmt((((void *)0)));
10860 FreeAttrib(yyvsp[(1) - (1)].attrib);
10861 ;
10862 }
10863 break;
10864 case 1074:
10865 {
10866 yyval.stmt = MkExpressionStmt((((void *)0)));
10867 ;
10868 }
10869 break;
10870 case 1075:
10871 {
10872 yyval.stmt = MkExpressionStmt((((void *)0)));
10873 ;
10874 }
10875 break;
10876 case 1076:
10877 {
10878 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
10879 yyval.stmt->loc = (yyloc);
10880 ;
10881 }
10882 break;
10883 case 1084:
10884 {
10885 yyval.stmt = yyvsp[(1) - (1)].stmt;
10886 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10887 ;
10888 }
10889 break;
10890 case 1085:
10891 {
10892 yyval.stmt = yyvsp[(1) - (1)].stmt;
10893 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10894 ;
10895 }
10896 break;
10897 case 1086:
10898 {
10899 yyval.stmt = yyvsp[(1) - (1)].stmt;
10900 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10901 ;
10902 }
10903 break;
10904 case 1087:
10905 {
10906 yyval.stmt = yyvsp[(1) - (1)].stmt;
10907 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10908 ;
10909 }
10910 break;
10911 case 1088:
10912 {
10913 yyval.stmt = yyvsp[(1) - (1)].stmt;
10914 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10915 ;
10916 }
10917 break;
10918 case 1089:
10919 {
10920 yyval.stmt = yyvsp[(1) - (2)].stmt;
10921 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10922 ;
10923 }
10924 break;
10925 case 1090:
10926 {
10927 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (1)].list);
10928 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10929 yyval.stmt->loc = (yylsp[(1) - (1)]);
10930 ;
10931 }
10932 break;
10933 case 1091:
10934 {
10935 yyval.asmField = MkAsmField(yyvsp[(1) - (1)].string, (((void *)0)), (((void *)0)));
10936 yyval.asmField->loc = (yylsp[(1) - (1)]);
10937 ;
10938 }
10939 break;
10940 case 1092:
10941 {
10942 yyval.asmField = MkAsmField(yyvsp[(1) - (4)].string, yyvsp[(3) - (4)].exp, (((void *)0)));
10943 yyval.asmField->loc = (yyloc);
10944 ;
10945 }
10946 break;
10947 case 1093:
10948 {
10949 yyval.asmField = MkAsmField(yyvsp[(4) - (7)].string, yyvsp[(6) - (7)].exp, yyvsp[(2) - (7)].id);
10950 yyval.asmField->loc = (yyloc);
10951 ;
10952 }
10953 break;
10954 case 1094:
10955 {
10956 yyval.list = MkListOne(yyvsp[(1) - (1)].asmField);
10957 ;
10958 }
10959 break;
10960 case 1095:
10961 {
10962 ListAdd(yyval.list, yyvsp[(3) - (3)].asmField);
10963 ;
10964 }
10965 break;
10966 case 1096:
10967 {
10968 yyval.list = (((void *)0));
10969 ;
10970 }
10971 break;
10972 case 1097:
10973 {
10974 yyval.stmt = MkAsmStmt(yyvsp[(2) - (6)].specifier, yyvsp[(4) - (6)].string, (((void *)0)), (((void *)0)), (((void *)0)));
10975 yyval.stmt->loc = (yyloc);
10976 ;
10977 }
10978 break;
10979 case 1098:
10980 {
10981 yyval.stmt = MkAsmStmt(yyvsp[(2) - (8)].specifier, yyvsp[(4) - (8)].string, yyvsp[(6) - (8)].list, (((void *)0)), (((void *)0)));
10982 yyval.stmt->loc = (yyloc);
10983 ;
10984 }
10985 break;
10986 case 1099:
10987 {
10988 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, yyvsp[(6) - (10)].list, yyvsp[(8) - (10)].list, (((void *)0)));
10989 yyval.stmt->loc = (yyloc);
10990 ;
10991 }
10992 break;
10993 case 1100:
10994 {
10995 yyval.stmt = MkAsmStmt(yyvsp[(2) - (12)].specifier, yyvsp[(4) - (12)].string, yyvsp[(6) - (12)].list, yyvsp[(8) - (12)].list, yyvsp[(10) - (12)].list);
10996 yyval.stmt->loc = (yyloc);
10997 ;
10998 }
10999 break;
11000 case 1101:
11001 {
11002 yyval.stmt = MkAsmStmt(yyvsp[(2) - (8)].specifier, yyvsp[(4) - (8)].string, (((void *)0)), yyvsp[(6) - (8)].list, (((void *)0)));
11003 yyval.stmt->loc = (yyloc);
11004 ;
11005 }
11006 break;
11007 case 1102:
11008 {
11009 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, (((void *)0)), yyvsp[(6) - (10)].list, yyvsp[(8) - (10)].list);
11010 yyval.stmt->loc = (yyloc);
11011 ;
11012 }
11013 break;
11014 case 1103:
11015 {
11016 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, yyvsp[(6) - (10)].list, (((void *)0)), yyvsp[(8) - (10)].list);
11017 yyval.stmt->loc = (yyloc);
11018 ;
11019 }
11020 break;
11021 case 1104:
11022 {
11023 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (5)].string, (((void *)0)), (((void *)0)), (((void *)0)));
11024 yyval.stmt->loc = (yyloc);
11025 ;
11026 }
11027 break;
11028 case 1105:
11029 {
11030 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (7)].string, yyvsp[(5) - (7)].list, (((void *)0)), (((void *)0)));
11031 yyval.stmt->loc = (yyloc);
11032 ;
11033 }
11034 break;
11035 case 1106:
11036 {
11037 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list, (((void *)0)));
11038 yyval.stmt->loc = (yyloc);
11039 ;
11040 }
11041 break;
11042 case 1107:
11043 {
11044 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (11)].string, yyvsp[(5) - (11)].list, yyvsp[(7) - (11)].list, yyvsp[(9) - (11)].list);
11045 yyval.stmt->loc = (yyloc);
11046 ;
11047 }
11048 break;
11049 case 1108:
11050 {
11051 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (7)].string, (((void *)0)), yyvsp[(5) - (7)].list, (((void *)0)));
11052 yyval.stmt->loc = (yyloc);
11053 ;
11054 }
11055 break;
11056 case 1109:
11057 {
11058 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, (((void *)0)), yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list);
11059 yyval.stmt->loc = (yyloc);
11060 ;
11061 }
11062 break;
11063 case 1110:
11064 {
11065 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, yyvsp[(5) - (9)].list, (((void *)0)), yyvsp[(7) - (9)].list);
11066 yyval.stmt->loc = (yyloc);
11067 ;
11068 }
11069 break;
11070 case 1111:
11071 {
11072 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].stmt);
11073 yyval.stmt->loc = (yyloc);
11074 ;
11075 }
11076 break;
11077 case 1112:
11078 {
11079 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11080 yyval.stmt->loc = (yyloc);
11081 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11082 ;
11083 }
11084 break;
11085 case 1113:
11086 {
11087 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11088 yyval.stmt->loc = (yyloc);
11089 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11090 ;
11091 }
11092 break;
11093 case 1114:
11094 {
11095 yyval.stmt = MkCaseStmt(MkExpDummy(), yyvsp[(3) - (3)].stmt);
11096 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11097 yyval.stmt->loc = (yyloc);
11098 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11099 ;
11100 }
11101 break;
11102 case 1115:
11103 {
11104 yyval.stmt = MkCaseStmt((((void *)0)), yyvsp[(3) - (3)].stmt);
11105 yyval.stmt->loc = (yyloc);
11106 ;
11107 }
11108 break;
11109 case 1116:
11110 {
11111 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11112
11113 stmt->loc = (yylsp[(3) - (3)]);
11114 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11115 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, stmt);
11116 yyval.stmt->loc = (yyloc);
11117 ;
11118 }
11119 break;
11120 case 1117:
11121 {
11122 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11123
11124 stmt->loc = (yylsp[(4) - (4)]);
11125 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11126 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11127 yyval.stmt->loc = (yyloc);
11128 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11129 ;
11130 }
11131 break;
11132 case 1118:
11133 {
11134 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11135
11136 stmt->loc = (yylsp[(4) - (4)]);
11137 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11138 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11139 yyval.stmt->loc = (yyloc);
11140 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11141 ;
11142 }
11143 break;
11144 case 1119:
11145 {
11146 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11147
11148 stmt->loc = (yylsp[(3) - (3)]);
11149 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11150 yyval.stmt = MkCaseStmt(MkExpDummy(), stmt);
11151 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11152 yyval.stmt->loc = (yyloc);
11153 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11154 ;
11155 }
11156 break;
11157 case 1120:
11158 {
11159 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11160
11161 stmt->loc = (yylsp[(3) - (3)]);
11162 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11163 yyval.stmt = MkCaseStmt((((void *)0)), stmt);
11164 yyval.stmt->loc = (yyloc);
11165 ;
11166 }
11167 break;
11168 case 1121:
11169 {
11170 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].stmt);
11171 yyval.stmt->loc = (yyloc);
11172 ;
11173 }
11174 break;
11175 case 1122:
11176 {
11177 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11178 yyval.stmt->loc = (yyloc);
11179 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11180 ;
11181 }
11182 break;
11183 case 1123:
11184 {
11185 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11186 yyval.stmt->loc = (yyloc);
11187 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11188 ;
11189 }
11190 break;
11191 case 1124:
11192 {
11193 yyval.stmt = MkCaseStmt(MkExpDummy(), yyvsp[(3) - (3)].stmt);
11194 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11195 yyval.stmt->loc = (yyloc);
11196 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11197 ;
11198 }
11199 break;
11200 case 1125:
11201 {
11202 yyval.stmt = MkCaseStmt(MkExpDummy(), (((void *)0)));
11203 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (2)]);
11204 yyval.stmt->loc = (yyloc);
11205 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (2)]).end;
11206 ;
11207 }
11208 break;
11209 case 1126:
11210 {
11211 yyval.stmt = MkCaseStmt((((void *)0)), yyvsp[(3) - (3)].stmt);
11212 yyval.stmt->loc = (yyloc);
11213 ;
11214 }
11215 break;
11216 case 1127:
11217 {
11218 yyval.stmt = MkCaseStmt((((void *)0)), (((void *)0)));
11219 yyval.stmt->loc = (yyloc);
11220 ;
11221 }
11222 break;
11223 case 1128:
11224 {
11225 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11226
11227 stmt->loc = (yylsp[(3) - (3)]);
11228 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11229 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, stmt);
11230 yyval.stmt->loc = (yyloc);
11231 ;
11232 }
11233 break;
11234 case 1129:
11235 {
11236 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11237
11238 stmt->loc = (yylsp[(4) - (4)]);
11239 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11240 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11241 yyval.stmt->loc = (yyloc);
11242 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11243 ;
11244 }
11245 break;
11246 case 1130:
11247 {
11248 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11249
11250 stmt->loc = (yylsp[(4) - (4)]);
11251 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11252 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11253 yyval.stmt->loc = (yyloc);
11254 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11255 ;
11256 }
11257 break;
11258 case 1131:
11259 {
11260 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11261
11262 stmt->loc = (yylsp[(3) - (3)]);
11263 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11264 yyval.stmt = MkCaseStmt(MkExpDummy(), stmt);
11265 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11266 yyval.stmt->loc = (yyloc);
11267 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11268 ;
11269 }
11270 break;
11271 case 1132:
11272 {
11273 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11274
11275 stmt->loc = (yylsp[(3) - (3)]);
11276 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11277 yyval.stmt = MkCaseStmt((((void *)0)), stmt);
11278 yyval.stmt->loc = (yyloc);
11279 ;
11280 }
11281 break;
11282 case 1133:
11283 {
11284 yyval.declMode = structDeclMode = declMode = 1;
11285 ;
11286 }
11287 break;
11288 case 1134:
11289 {
11290 yyval.declMode = structDeclMode = declMode = 2;
11291 ;
11292 }
11293 break;
11294 case 1135:
11295 {
11296 yyval.declMode = structDeclMode = declMode = 0;
11297 ;
11298 }
11299 break;
11300 case 1136:
11301 {
11302 yyval.declMode = 1;
11303 ;
11304 }
11305 break;
11306 case 1137:
11307 {
11308 yyval.declMode = 2;
11309 ;
11310 }
11311 break;
11312 case 1138:
11313 {
11314 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11315 yyval.declaration->loc = (yyloc);
11316 structDeclMode = defaultDeclMode;
11317 ;
11318 }
11319 break;
11320 case 1139:
11321 {
11322 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11323 yyval.declaration->loc = (yyloc);
11324 structDeclMode = defaultDeclMode;
11325 ;
11326 }
11327 break;
11328 case 1140:
11329 {
11330 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11331 yyval.declaration->loc = (yyloc);
11332 structDeclMode = defaultDeclMode;
11333 ;
11334 }
11335 break;
11336 case 1141:
11337 {
11338 yyval.declaration = yyvsp[(1) - (2)].declaration;
11339 structDeclMode = defaultDeclMode;
11340 ;
11341 }
11342 break;
11343 case 1142:
11344 {
11345 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11346 yyval.declaration->loc = (yyloc);
11347 ;
11348 }
11349 break;
11350 case 1143:
11351 {
11352 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11353 yyval.declaration->loc = (yyloc);
11354 ;
11355 }
11356 break;
11357 case 1144:
11358 {
11359 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11360 yyval.declaration->loc = (yyloc);
11361 ;
11362 }
11363 break;
11364 case 1145:
11365 {
11366 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11367 yyval.declaration->loc = (yyloc);
11368 ;
11369 }
11370 break;
11371 case 1146:
11372 {
11373 yyval.declaration = MkDeclarationDefine(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].exp);
11374 yyval.declaration->loc = (yyloc);
11375 ;
11376 }
11377 break;
11378 case 1147:
11379 {
11380 structDeclMode = declMode = 3;
11381 yyval.declaration = MkDeclarationDefine(yyvsp[(3) - (6)].id, yyvsp[(5) - (6)].exp);
11382 yyval.declaration->loc = (yyloc);
11383 ;
11384 }
11385 break;
11386 case 1148:
11387 {
11388 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11389 yyval.declaration->loc = (yyloc);
11390 (yyerrstatus = 0);
11391 ;
11392 }
11393 break;
11394 case 1149:
11395 {
11396 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11397 yyval.declaration->loc = (yyloc);
11398 structDeclMode = defaultDeclMode;
11399 ;
11400 }
11401 break;
11402 case 1150:
11403 {
11404 structDeclMode = defaultDeclMode;
11405 ;
11406 }
11407 break;
11408 case 1151:
11409 {
11410 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11411 yyval.declaration->loc = (yyloc);
11412 structDeclMode = defaultDeclMode;
11413 ;
11414 }
11415 break;
11416 case 1152:
11417 {
11418 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11419 yyval.declaration->loc = (yyloc);
11420 structDeclMode = defaultDeclMode;
11421 ;
11422 }
11423 break;
11424 case 1153:
11425 {
11426 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11427 yyval.declaration->loc = (yyloc);
11428 structDeclMode = defaultDeclMode;
11429 ;
11430 }
11431 break;
11432 case 1154:
11433 {
11434 yyval.list = MkList();
11435 ListAdd(yyval.list, yyvsp[(1) - (1)].declaration);
11436 ;
11437 }
11438 break;
11439 case 1155:
11440 {
11441 yyval.list = yyvsp[(1) - (2)].list;
11442 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11443 ;
11444 }
11445 break;
11446 case 1156:
11447 {
11448 yyval.list = yyvsp[(1) - (2)].list;
11449 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11450 ;
11451 }
11452 break;
11453 case 1157:
11454 {
11455 yyval.list = yyvsp[(1) - (3)].list;
11456 ;
11457 }
11458 break;
11459 case 1158:
11460 {
11461 yyval.list = MkList();
11462 ListAdd(yyval.list, yyvsp[(1) - (1)].declaration);
11463 ;
11464 }
11465 break;
11466 case 1159:
11467 {
11468 yyval.list = yyvsp[(1) - (2)].list;
11469 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11470 ;
11471 }
11472 break;
11473 case 1160:
11474 {
11475 yyval.list = MkList();
11476 ListAdd(yyval.list, yyvsp[(1) - (1)].stmt);
11477 ;
11478 }
11479 break;
11480 case 1161:
11481 {
11482 yyval.list = yyvsp[(1) - (2)].list;
11483 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11484 ;
11485 }
11486 break;
11487 case 1162:
11488 {
11489 yyval.list = yyvsp[(1) - (2)].list;
11490 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11491 ;
11492 }
11493 break;
11494 case 1163:
11495 {
11496 yyval.list = MkList();
11497 ListAdd(yyval.list, yyvsp[(1) - (1)].stmt);
11498 ;
11499 }
11500 break;
11501 case 1164:
11502 {
11503 yyval.list = yyvsp[(1) - (2)].list;
11504 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11505 ;
11506 }
11507 break;
11508 case 1165:
11509 {
11510 yyval.list = yyvsp[(1) - (2)].list;
11511 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11512 ;
11513 }
11514 break;
11515 case 1166:
11516 {
11517 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11518
11519 stmt->loc = (yylsp[(2) - (2)]);
11520 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11521 yyval.list = yyvsp[(1) - (2)].list;
11522 ListAdd(yyvsp[(1) - (2)].list, stmt);
11523 ;
11524 }
11525 break;
11526 case 1167:
11527 {
11528 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11529
11530 stmt->loc = (yylsp[(2) - (2)]);
11531 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11532 yyval.list = yyvsp[(1) - (2)].list;
11533 ListAdd(yyvsp[(1) - (2)].list, stmt);
11534 ;
11535 }
11536 break;
11537 case 1168:
11538 {
11539 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11540
11541 stmt->loc = (yylsp[(2) - (2)]);
11542 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11543 yyval.list = yyvsp[(1) - (2)].list;
11544 ListAdd(yyvsp[(1) - (2)].list, stmt);
11545 ;
11546 }
11547 break;
11548 case 1169:
11549 {
11550 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11551
11552 stmt->loc = (yylsp[(2) - (2)]);
11553 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11554 yyval.list = yyvsp[(1) - (2)].list;
11555 ListAdd(yyvsp[(1) - (2)].list, stmt);
11556 ;
11557 }
11558 break;
11559 case 1170:
11560 {
11561 yyval.stmt = MkCompoundStmt((((void *)0)), yyvsp[(1) - (1)].list);
11562 ;
11563 }
11564 break;
11565 case 1171:
11566 {
11567 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (1)].list, (((void *)0)));
11568 ;
11569 }
11570 break;
11571 case 1172:
11572 {
11573 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11574 ;
11575 }
11576 break;
11577 case 1173:
11578 {
11579 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11580 ;
11581 }
11582 break;
11583 case 1174:
11584 {
11585 yyval.stmt = MkCompoundStmt((((void *)0)), yyvsp[(1) - (1)].list);
11586 ;
11587 }
11588 break;
11589 case 1175:
11590 {
11591 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (1)].list, (((void *)0)));
11592 ;
11593 }
11594 break;
11595 case 1176:
11596 {
11597 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11598 ;
11599 }
11600 break;
11601 case 1177:
11602 {
11603 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11604 ;
11605 }
11606 break;
11607 case 1178:
11608 {
11609 yyval.context = PushContext();
11610 ;
11611 }
11612 break;
11613 case 1179:
11614 {
11615 yyval.stmt = yyvsp[(1) - (2)].stmt;
11616 yyval.stmt->loc = (yyloc);
11617 ;
11618 }
11619 break;
11620 case 1180:
11621 {
11622 yyval.stmt = yyvsp[(2) - (2)].stmt;
11623 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (2)].context;
11624 PopContext(yyvsp[(1) - (2)].context);
11625 yyval.stmt->loc = (yyloc);
11626 yyval.stmt->loc.end.charPos++;
11627 yyval.stmt->loc.end.pos++;
11628 ;
11629 }
11630 break;
11631 case 1181:
11632 {
11633 yyval.stmt = MkCompoundStmt((((void *)0)), (((void *)0)));
11634 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (1)].context;
11635 PopContext(yyvsp[(1) - (1)].context);
11636 yyval.stmt->loc = (yyloc);
11637 yyval.stmt->loc.end.charPos++;
11638 yyval.stmt->loc.end.pos++;
11639 ;
11640 }
11641 break;
11642 case 1182:
11643 {
11644 yyval.stmt = yyvsp[(2) - (2)].stmt;
11645 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (2)].context;
11646 PopContext(yyvsp[(1) - (2)].context);
11647 yyval.stmt->loc = (yyloc);
11648 yyval.stmt->loc.end.charPos++;
11649 yyval.stmt->loc.end.pos++;
11650 ;
11651 }
11652 break;
11653 case 1183:
11654 {
11655 yyval.stmt = MkExpressionStmt((((void *)0)));
11656 yyval.stmt->loc = (yyloc);
11657 ;
11658 }
11659 break;
11660 case 1184:
11661 {
11662 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
11663 yyval.stmt->loc = (yyloc);
11664 ;
11665 }
11666 break;
11667 case 1185:
11668 {
11669 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
11670 yyval.stmt->loc = (yyloc);
11671 ;
11672 }
11673 break;
11674 case 1186:
11675 {
11676 yyval.stmt = MkIfStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt, (((void *)0)));
11677 yyval.stmt->loc = (yyloc);
11678 ;
11679 }
11680 break;
11681 case 1187:
11682 {
11683 yyval.stmt = MkIfStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt, (((void *)0)));
11684 yyval.stmt->loc = (yyloc);
11685 ;
11686 }
11687 break;
11688 case 1188:
11689 {
11690 yyval.stmt = MkIfStmt(yyvsp[(3) - (7)].list, yyvsp[(5) - (7)].stmt, yyvsp[(7) - (7)].stmt);
11691 yyval.stmt->loc = (yyloc);
11692 ;
11693 }
11694 break;
11695 case 1189:
11696 {
11697 yyval.stmt = MkIfStmt(yyvsp[(3) - (7)].list, yyvsp[(5) - (7)].stmt, yyvsp[(7) - (7)].stmt);
11698 yyval.stmt->loc = (yyloc);
11699 ;
11700 }
11701 break;
11702 case 1190:
11703 {
11704 yyval.stmt = MkSwitchStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11705 yyval.stmt->loc = (yyloc);
11706 ;
11707 }
11708 break;
11709 case 1191:
11710 {
11711 yyval.stmt = MkSwitchStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11712 yyval.stmt->loc = (yyloc);
11713 ;
11714 }
11715 break;
11716 case 1192:
11717 {
11718 yyval.stmt = MkIfStmt(yyvsp[(3) - (3)].list, (((void *)0)), (((void *)0)));
11719 yyval.stmt->loc = (yyloc);
11720 ;
11721 }
11722 break;
11723 case 1194:
11724 {
11725 yyval.stmt = MkWhileStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11726 yyval.stmt->loc = (yyloc);
11727 ;
11728 }
11729 break;
11730 case 1195:
11731 {
11732 yyval.stmt = MkWhileStmt(yyvsp[(3) - (4)].list, yyvsp[(4) - (4)].stmt);
11733 yyval.stmt->loc = (yyloc);
11734 ;
11735 }
11736 break;
11737 case 1196:
11738 {
11739 yyerror();
11740 yyval.stmt = MkWhileStmt((((void *)0)), yyvsp[(4) - (4)].stmt);
11741 yyval.stmt->loc = (yyloc);
11742 ;
11743 }
11744 break;
11745 case 1197:
11746 {
11747 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (7)].stmt, yyvsp[(5) - (7)].list);
11748 yyval.stmt->loc = (yyloc);
11749 ;
11750 }
11751 break;
11752 case 1198:
11753 {
11754 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (6)].stmt, yyvsp[(5) - (6)].list);
11755 yyval.stmt->loc = (yyloc);
11756 ;
11757 }
11758 break;
11759 case 1199:
11760 {
11761 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, (((void *)0)), yyvsp[(6) - (6)].stmt);
11762 yyval.stmt->loc = (yyloc);
11763 ;
11764 }
11765 break;
11766 case 1200:
11767 {
11768 yyerror();
11769 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, (((void *)0)), (((void *)0)), yyvsp[(5) - (5)].stmt);
11770 yyval.stmt->loc = (yyloc);
11771 ;
11772 }
11773 break;
11774 case 1201:
11775 {
11776 yyval.stmt = MkForStmt(yyvsp[(3) - (7)].stmt, yyvsp[(4) - (7)].stmt, yyvsp[(5) - (7)].list, yyvsp[(7) - (7)].stmt);
11777 yyval.stmt->loc = (yyloc);
11778 ;
11779 }
11780 break;
11781 case 1202:
11782 {
11783 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, yyvsp[(5) - (6)].list, yyvsp[(6) - (6)].stmt);
11784 yyval.stmt->loc = (yyloc);
11785 ;
11786 }
11787 break;
11788 case 1203:
11789 {
11790 yyerror();
11791 yyval.stmt = MkForStmt((((void *)0)), (((void *)0)), (((void *)0)), yyvsp[(4) - (4)].stmt);
11792 yyval.stmt->loc = (yyloc);
11793 ;
11794 }
11795 break;
11796 case 1204:
11797 {
11798 yyval.stmt = MkForEachStmt(yyvsp[(3) - (7)].id, yyvsp[(5) - (7)].list, (((void *)0)), yyvsp[(7) - (7)].stmt);
11799 yyval.stmt->loc = (yyloc);
11800 ;
11801 }
11802 break;
11803 case 1205:
11804 {
11805 yyval.stmt = MkForEachStmt(yyvsp[(3) - (9)].id, yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list, yyvsp[(9) - (9)].stmt);
11806 yyval.stmt->loc = (yyloc);
11807 ;
11808 }
11809 break;
11810 case 1206:
11811 {
11812 yyval.stmt = MkForStmt((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
11813 yyval.stmt->loc = (yyloc);
11814 ;
11815 }
11816 break;
11817 case 1207:
11818 {
11819 yyval.stmt = MkForStmt(MkExpressionStmt(yyvsp[(3) - (4)].list), (((void *)0)), (((void *)0)), (((void *)0)));
11820 yyval.stmt->__anon1.forStmt.init->loc = (yylsp[(3) - (4)]);
11821 yyval.stmt->loc = (yyloc);
11822 ;
11823 }
11824 break;
11825 case 1208:
11826 {
11827 yyval.stmt = MkForStmt(yyvsp[(3) - (4)].stmt, (((void *)0)), (((void *)0)), (((void *)0)));
11828 yyval.stmt->loc = (yyloc);
11829 ;
11830 }
11831 break;
11832 case 1209:
11833 {
11834 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, MkExpressionStmt(yyvsp[(4) - (5)].list), (((void *)0)), (((void *)0)));
11835 yyval.stmt->loc = (yyloc);
11836 yyval.stmt->__anon1.forStmt.check->loc = (yylsp[(4) - (5)]);
11837 ;
11838 }
11839 break;
11840 case 1210:
11841 {
11842 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, yyvsp[(4) - (5)].stmt, yyvsp[(5) - (5)].list, (((void *)0)));
11843 yyval.stmt->loc = (yyloc);
11844 ;
11845 }
11846 break;
11847 case 1211:
11848 {
11849 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, (((void *)0)), yyvsp[(6) - (6)].stmt);
11850 yyval.stmt->loc = (yyloc);
11851 ;
11852 }
11853 break;
11854 case 1212:
11855 {
11856 yyval.stmt = MkForStmt(yyvsp[(3) - (7)].stmt, yyvsp[(4) - (7)].stmt, yyvsp[(5) - (7)].list, yyvsp[(7) - (7)].stmt);
11857 yyval.stmt->loc = (yyloc);
11858 ;
11859 }
11860 break;
11861 case 1213:
11862 {
11863 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, yyvsp[(5) - (6)].list, yyvsp[(6) - (6)].stmt);
11864 yyval.stmt->loc = (yyloc);
11865 ;
11866 }
11867 break;
11868 case 1214:
11869 {
11870 yyerror();
11871 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (6)].stmt, yyvsp[(5) - (6)].list);
11872 yyval.stmt->loc = (yyloc);
11873 ;
11874 }
11875 break;
11876 case 1215:
11877 {
11878 yyerror();
11879 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (5)].stmt, yyvsp[(5) - (5)].list);
11880 yyval.stmt->loc = (yyloc);
11881 ;
11882 }
11883 break;
11884 case 1216:
11885 {
11886 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (5)].stmt, yyvsp[(5) - (5)].list);
11887 yyval.stmt->loc = (yyloc);
11888 ;
11889 }
11890 break;
11891 case 1217:
11892 {
11893 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (4)].stmt, (((void *)0)));
11894 yyval.stmt->loc = (yyloc);
11895 ;
11896 }
11897 break;
11898 case 1218:
11899 {
11900 yyerror();
11901 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (3)].stmt, (((void *)0)));
11902 yyval.stmt->loc = (yyloc);
11903 ;
11904 }
11905 break;
11906 case 1219:
11907 {
11908 yyerror();
11909 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (2)].stmt, (((void *)0)));
11910 yyval.stmt->loc = (yyloc);
11911 ;
11912 }
11913 break;
11914 case 1220:
11915 {
11916 yyerror();
11917 yyval.stmt = MkDoWhileStmt((((void *)0)), (((void *)0)));
11918 yyval.stmt->loc = (yyloc);
11919 ;
11920 }
11921 break;
11922 case 1221:
11923 {
11924 yyval.stmt = MkWhileStmt((((void *)0)), (((void *)0)));
11925 yyval.stmt->loc = (yyloc);
11926 ;
11927 }
11928 break;
11929 case 1222:
11930 {
11931 yyval.stmt = MkWhileStmt((((void *)0)), (((void *)0)));
11932 yyval.stmt->loc = (yyloc);
11933 ;
11934 }
11935 break;
11936 case 1223:
11937 {
11938 yyval.stmt = MkWhileStmt(yyvsp[(3) - (3)].list, (((void *)0)));
11939 yyval.stmt->loc = (yyloc);
11940 ;
11941 }
11942 break;
11943 case 1224:
11944 {
11945 yyval.stmt = MkWhileStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11946 yyval.stmt->loc = (yyloc);
11947 ;
11948 }
11949 break;
11950 case 1225:
11951 {
11952 yyval.stmt = MkWhileStmt(yyvsp[(3) - (4)].list, yyvsp[(4) - (4)].stmt);
11953 yyval.stmt->loc = (yyloc);
11954 ;
11955 }
11956 break;
11957 case 1226:
11958 {
11959 yyval.stmt = MkGotoStmt(yyvsp[(2) - (3)].id);
11960 yyval.stmt->loc = (yyloc);
11961 ;
11962 }
11963 break;
11964 case 1227:
11965 {
11966 yyval.stmt = MkContinueStmt();
11967 yyval.stmt->loc = (yyloc);
11968 ;
11969 }
11970 break;
11971 case 1228:
11972 {
11973 yyval.stmt = MkBreakStmt();
11974 yyval.stmt->loc = (yyloc);
11975 ;
11976 }
11977 break;
11978 case 1229:
11979 {
11980 struct Expression * exp = MkExpDummy();
11981
11982 yyval.stmt = MkReturnStmt(MkListOne(exp));
11983 yyval.stmt->loc = (yyloc);
11984 exp->loc = (yylsp[(2) - (2)]);
11985 ;
11986 }
11987 break;
11988 case 1230:
11989 {
11990 yyval.stmt = MkReturnStmt(yyvsp[(2) - (3)].list);
11991 yyval.stmt->loc = (yyloc);
11992 ;
11993 }
11994 break;
11995 case 1231:
11996 {
11997 yyval.stmt = MkReturnStmt(yyvsp[(2) - (3)].list);
11998 yyval.stmt->loc = (yyloc);
11999 ;
12000 }
12001 break;
12002 case 1232:
12003 {
12004 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (3)].exp));
12005 yyval.stmt->loc = (yyloc);
12006 ;
12007 }
12008 break;
12009 case 1233:
12010 {
12011 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (3)].exp));
12012 yyval.stmt->loc = (yyloc);
12013 ;
12014 }
12015 break;
12016 case 1234:
12017 {
12018 yyval.stmt = MkReturnStmt(yyvsp[(2) - (2)].list);
12019 yyval.stmt->loc = (yyloc);
12020 ;
12021 }
12022 break;
12023 case 1235:
12024 {
12025 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (2)].exp));
12026 yyval.stmt->loc = (yyloc);
12027 ;
12028 }
12029 break;
12030 case 1236:
12031 {
12032 struct Expression * exp = MkExpDummy();
12033
12034 yyval.stmt = MkReturnStmt(MkListOne(exp));
12035 yyval.stmt->loc = (yyloc);
12036 exp->loc.start = exp->loc.end = (yylsp[(1) - (1)]).end;
12037 ;
12038 }
12039 break;
12040 case 1237:
12041 {
12042 yyval.stmt = MkGotoStmt((((void *)0)));
12043 yyval.stmt->loc = (yyloc);
12044 ;
12045 }
12046 break;
12047 case 1238:
12048 {
12049 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12050 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12051 yyval.function->loc = (yyloc);
12052 ;
12053 }
12054 break;
12055 case 1239:
12056 {
12057 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12058 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12059 yyval.function->loc = (yyloc);
12060 ;
12061 }
12062 break;
12063 case 1240:
12064 {
12065 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12066 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12067 yyval.function->loc = (yyloc);
12068 ;
12069 }
12070 break;
12071 case 1241:
12072 {
12073 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12074 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12075 yyval.function->loc = (yyloc);
12076 ;
12077 }
12078 break;
12079 case 1242:
12080 {
12081 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
12082 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12083 yyval.function->loc = (yyloc);
12084 ;
12085 }
12086 break;
12087 case 1243:
12088 {
12089 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (2)].declarator, (((void *)0)));
12090 ProcessFunctionBody(yyval.function, yyvsp[(2) - (2)].stmt);
12091 yyval.function->loc = (yyloc);
12092 ;
12093 }
12094 break;
12095 case 1244:
12096 {
12097 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12098 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12099 yyval.function->loc = (yyloc);
12100 yyval.function->loc.end = yyvsp[(4) - (4)].stmt->loc.end;
12101 ;
12102 }
12103 break;
12104 case 1245:
12105 {
12106 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12107 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12108 yyval.function->loc = (yyloc);
12109 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12110 ;
12111 }
12112 break;
12113 case 1246:
12114 {
12115 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12116 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12117 yyval.function->loc = (yyloc);
12118 yyval.function->loc.end = yyvsp[(4) - (4)].stmt->loc.end;
12119 ;
12120 }
12121 break;
12122 case 1247:
12123 {
12124 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12125 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12126 yyval.function->loc = (yyloc);
12127 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12128 ;
12129 }
12130 break;
12131 case 1248:
12132 {
12133 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
12134 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12135 yyval.function->loc = (yyloc);
12136 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12137 ;
12138 }
12139 break;
12140 case 1249:
12141 {
12142 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (2)].declarator, (((void *)0)));
12143 ProcessFunctionBody(yyval.function, yyvsp[(2) - (2)].stmt);
12144 yyval.function->loc = (yyloc);
12145 yyval.function->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
12146 ;
12147 }
12148 break;
12149 case 1250:
12150 {
12151 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
12152 ;
12153 }
12154 break;
12155 case 1251:
12156 {
12157 int len1 = strlen(yyvsp[(1) - (2)].string);
12158 int len2 = strlen(yytext);
12159
12160 yyval.string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len1 - 1 + len2 - 1 + 1));
12161 memcpy(yyval.string, yyvsp[(1) - (2)].string, len1 - 1);
12162 memcpy(yyval.string + len1 - 1, yytext + 1, len2);
12163 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(1) - (2)].string), yyvsp[(1) - (2)].string = 0);
12164 ;
12165 }
12166 break;
12167 case 1252:
12168 {
12169 yyval.external = MkExternalFunction(yyvsp[(1) - (1)].function);
12170 yyval.external->loc = (yyloc);
12171 yyvsp[(1) - (1)].function->declMode = declMode;
12172 structDeclMode = declMode = defaultDeclMode;
12173 ;
12174 }
12175 break;
12176 case 1253:
12177 {
12178 yyval.external = MkExternalClass(yyvsp[(1) - (1)]._class);
12179 yyval.external->loc = (yyloc);
12180 yyvsp[(1) - (1)]._class->declMode = (declMode != 0) ? declMode : 2;
12181 structDeclMode = declMode = defaultDeclMode;
12182 ;
12183 }
12184 break;
12185 case 1254:
12186 {
12187 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12188 yyval.external->loc = (yyloc);
12189 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12190 structDeclMode = declMode = defaultDeclMode;
12191 FreeList(yyvsp[(1) - (2)].list, (void *)(FreeSpecifier));
12192 ;
12193 }
12194 break;
12195 case 1255:
12196 {
12197 yyval.external = MkExternalDeclaration(yyvsp[(1) - (1)].declaration);
12198 yyval.external->loc = (yyloc);
12199 yyvsp[(1) - (1)].declaration->declMode = declMode;
12200 structDeclMode = declMode = defaultDeclMode;
12201 ;
12202 }
12203 break;
12204 case 1256:
12205 {
12206 yyval.external = MkExternalImport(yyvsp[(2) - (2)].string, 0, (declMode != 0) ? declMode : 2);
12207 yyval.external->loc = (yyloc);
12208 ;
12209 }
12210 break;
12211 case 1257:
12212 {
12213 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, 1, (declMode != 0) ? declMode : 2);
12214 yyval.external->loc = (yyloc);
12215 ;
12216 }
12217 break;
12218 case 1258:
12219 {
12220 unsigned int isRemote = !strcmp(yyvsp[(2) - (3)].id->string, "remote");
12221
12222 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, isRemote ? 2 : 0, (declMode != 0) ? declMode : 2);
12223 yyval.external->loc = (yyloc);
12224 FreeIdentifier(yyvsp[(2) - (3)].id);
12225 if(!isRemote)
12226 yyerror();
12227 ;
12228 }
12229 break;
12230 case 1259:
12231 {
12232 yyval.external = (((void *)0));
12233 ;
12234 }
12235 break;
12236 case 1260:
12237 {
12238 yyval.external = MkExternalFunction(yyvsp[(2) - (2)].function);
12239 yyval.external->loc = (yyloc);
12240 yyvsp[(2) - (2)].function->declMode = yyvsp[(1) - (2)].declMode;
12241 structDeclMode = declMode = defaultDeclMode;
12242 ;
12243 }
12244 break;
12245 case 1261:
12246 {
12247 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12248 yyval.external->loc = (yyloc);
12249 yyvsp[(2) - (2)]._class->declMode = (yyvsp[(1) - (2)].declMode != 0) ? yyvsp[(1) - (2)].declMode : 2;
12250 structDeclMode = declMode = defaultDeclMode;
12251 ;
12252 }
12253 break;
12254 case 1262:
12255 {
12256 yyval.external = MkExternalDeclaration(yyvsp[(2) - (2)].declaration);
12257 yyval.external->loc = (yyloc);
12258 yyvsp[(2) - (2)].declaration->declMode = yyvsp[(1) - (2)].declMode;
12259 structDeclMode = declMode = defaultDeclMode;
12260 ;
12261 }
12262 break;
12263 case 1263:
12264 {
12265 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, 0, (yyvsp[(1) - (3)].declMode != 0) ? yyvsp[(1) - (3)].declMode : 2);
12266 yyval.external->loc = (yyloc);
12267 structDeclMode = declMode = defaultDeclMode;
12268 ;
12269 }
12270 break;
12271 case 1264:
12272 {
12273 yyval.external = MkExternalImport(yyvsp[(4) - (4)].string, 1, (yyvsp[(1) - (4)].declMode != 0) ? yyvsp[(1) - (4)].declMode : 2);
12274 yyval.external->loc = (yyloc);
12275 structDeclMode = declMode = defaultDeclMode;
12276 ;
12277 }
12278 break;
12279 case 1265:
12280 {
12281 unsigned int isRemote = !strcmp(yyvsp[(3) - (4)].id->string, "remote");
12282
12283 yyval.external = MkExternalImport(yyvsp[(4) - (4)].string, isRemote ? 2 : 0, (yyvsp[(1) - (4)].declMode != 0) ? yyvsp[(1) - (4)].declMode : 2);
12284 yyval.external->loc = (yyloc);
12285 FreeIdentifier(yyvsp[(3) - (4)].id);
12286 structDeclMode = declMode = defaultDeclMode;
12287 if(!isRemote)
12288 yyerror();
12289 ;
12290 }
12291 break;
12292 case 1266:
12293 {
12294 defaultDeclMode = yyvsp[(1) - (2)].declMode;
12295 yyval.external = (((void *)0));
12296 ;
12297 }
12298 break;
12299 case 1267:
12300 {
12301 defaultDeclMode = 3;
12302 yyval.external = (((void *)0));
12303 ;
12304 }
12305 break;
12306 case 1268:
12307 {
12308 yyval.external = MkExternalNameSpace(yyvsp[(2) - (2)].id);
12309 yyval.external->loc = (yyloc);
12310 ;
12311 }
12312 break;
12313 case 1269:
12314 {
12315 yyval.external = MkExternalNameSpace(MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name));
12316 FreeSpecifier(yyvsp[(2) - (2)].specifier);
12317 yyval.external->loc = (yyloc);
12318 ;
12319 }
12320 break;
12321 case 1270:
12322 {
12323 yyval.external = MkExternalDBTable(yyvsp[(1) - (1)].dbtableDef);
12324 yyval.external->loc = (yyloc);
12325 yyvsp[(1) - (1)].dbtableDef->declMode = (declMode != 0) ? declMode : 2;
12326 structDeclMode = declMode = defaultDeclMode;
12327 ;
12328 }
12329 break;
12330 case 1271:
12331 {
12332 yyval.external = MkExternalDBTable(yyvsp[(2) - (2)].dbtableDef);
12333 yyval.external->loc = (yyloc);
12334 yyvsp[(2) - (2)].dbtableDef->declMode = (yyvsp[(1) - (2)].declMode != 0) ? declMode : 2;
12335 structDeclMode = declMode = defaultDeclMode;
12336 ;
12337 }
12338 break;
12339 case 1272:
12340 {
12341 yyerror();
12342 yyval.external = MkExternalClass(yyvsp[(1) - (1)]._class);
12343 yyval.external->loc = yyvsp[(1) - (1)]._class->loc;
12344 yyvsp[(1) - (1)]._class->declMode = (declMode != 0) ? declMode : 2;
12345 structDeclMode = declMode = defaultDeclMode;
12346 ;
12347 }
12348 break;
12349 case 1273:
12350 {
12351 yyerror();
12352 FreeList(yyvsp[(1) - (2)].list, (void *)(FreeSpecifier));
12353 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12354 yyval.external->loc = yyvsp[(2) - (2)]._class->loc;
12355 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12356 structDeclMode = declMode = defaultDeclMode;
12357 ;
12358 }
12359 break;
12360 case 1274:
12361 {
12362 yyerror();
12363 yyval.external = MkExternalFunction(yyvsp[(1) - (1)].function);
12364 yyval.external->loc = yyvsp[(1) - (1)].function->loc;
12365 yyvsp[(1) - (1)].function->declMode = declMode;
12366 structDeclMode = declMode = defaultDeclMode;
12367 ;
12368 }
12369 break;
12370 case 1275:
12371 {
12372 yyerror();
12373 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12374 yyval.external->loc = yyvsp[(2) - (2)]._class->loc;
12375 yyvsp[(2) - (2)]._class->declMode = (yyvsp[(1) - (2)].declMode != 0) ? yyvsp[(1) - (2)].declMode : 2;
12376 structDeclMode = declMode = defaultDeclMode;
12377 ;
12378 }
12379 break;
12380 case 1276:
12381 {
12382 yyerror();
12383 yyval.external = MkExternalFunction(yyvsp[(2) - (2)].function);
12384 yyval.external->loc = yyvsp[(2) - (2)].function->loc;
12385 yyvsp[(2) - (2)].function->declMode = yyvsp[(1) - (2)].declMode;
12386 structDeclMode = declMode = defaultDeclMode;
12387 ;
12388 }
12389 break;
12390 case 1277:
12391 {
12392 yyerror();
12393 yyval.external = MkExternalDeclaration(yyvsp[(1) - (1)].declaration);
12394 yyval.external->loc = (yyloc);
12395 yyvsp[(1) - (1)].declaration->declMode = declMode;
12396 structDeclMode = declMode = defaultDeclMode;
12397 ;
12398 }
12399 break;
12400 case 1278:
12401 {
12402 yyerror();
12403 yyval.external = MkExternalDeclaration(yyvsp[(2) - (2)].declaration);
12404 yyval.external->loc = (yyloc);
12405 yyvsp[(2) - (2)].declaration->declMode = yyvsp[(1) - (2)].declMode;
12406 structDeclMode = declMode = defaultDeclMode;
12407 ;
12408 }
12409 break;
12410 case 1279:
12411 {
12412 yyval.list = MkList();
12413 ListAdd(yyval.list, yyvsp[(1) - (1)].external);
12414 ast = yyval.list;
12415 ;
12416 }
12417 break;
12418 case 1280:
12419 {
12420 yyval.list = yyvsp[(1) - (2)].list;
12421 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12422 ;
12423 }
12424 break;
12425 case 1281:
12426 {
12427 yyval.list = yyvsp[(1) - (2)].list;
12428 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12429 ;
12430 }
12431 break;
12432 case 1284:
12433 {
12434 yyval.list = MkList();
12435 ListAdd(yyval.list, yyvsp[(1) - (1)].external);
12436 ast = yyval.list;
12437 ;
12438 }
12439 break;
12440 case 1285:
12441 {
12442 yyval.list = yyvsp[(1) - (2)].list;
12443 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12444 ;
12445 }
12446 break;
12447 case 1286:
12448 {
12449 struct External * _class = MkExternalClass(yyvsp[(2) - (2)]._class);
12450
12451 yyval.list = yyvsp[(1) - (2)].list;
12452 ListAdd(yyvsp[(1) - (2)].list, _class);
12453 _class->loc = (yylsp[(2) - (2)]);
12454 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12455 structDeclMode = declMode = defaultDeclMode;
12456 ;
12457 }
12458 break;
12459 case 1287:
12460 {
12461 struct External * _class = MkExternalClass(yyvsp[(3) - (3)]._class);
12462
12463 yyval.list = yyvsp[(1) - (3)].list;
12464 ListAdd(yyvsp[(1) - (3)].list, _class);
12465 _class->loc = (yylsp[(3) - (3)]);
12466 yyvsp[(3) - (3)]._class->declMode = (yyvsp[(2) - (3)].declMode != 0) ? yyvsp[(2) - (3)].declMode : 2;
12467 structDeclMode = declMode = defaultDeclMode;
12468 ;
12469 }
12470 break;
12471 case 1290:
12472 {
12473 ast = MkList();
12474 ;
12475 }
12476 break;
12477 case 1291:
12478 {
12479 struct Symbol * symbol = DeclClassAddNameSpace(yyvsp[(3) - (6)].id->_class, yyvsp[(3) - (6)].id->string);
12480
12481 FreeIdentifier(yyvsp[(3) - (6)].id);
12482 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (6)].string, symbol, yyvsp[(5) - (6)].list);
12483 ;
12484 }
12485 break;
12486 case 1292:
12487 {
12488 struct Symbol * symbol = DeclClass(yyvsp[(3) - (6)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name);
12489
12490 FreeSpecifier(yyvsp[(3) - (6)].specifier);
12491 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (6)].string, symbol, yyvsp[(5) - (6)].list);
12492 ;
12493 }
12494 break;
12495 case 1293:
12496 {
12497 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (5)].string, (((void *)0)), yyvsp[(4) - (5)].list);
12498 ;
12499 }
12500 break;
12501 case 1294:
12502 {
12503 yyval.dbtableEntry = MkDBFieldEntry(MkTypeName(yyvsp[(1) - (4)].list, (((void *)0))), yyvsp[(2) - (4)].id, yyvsp[(3) - (4)].string);
12504 ;
12505 }
12506 break;
12507 case 1295:
12508 {
12509 yyval.dbindexItem = MkDBIndexItem(yyvsp[(1) - (1)].id, 0);
12510 ;
12511 }
12512 break;
12513 case 1296:
12514 {
12515 yyval.dbindexItem = MkDBIndexItem(yyvsp[(2) - (2)].id, 1);
12516 ;
12517 }
12518 break;
12519 case 1297:
12520 {
12521 yyval.dbindexItem = MkDBIndexItem(yyvsp[(2) - (2)].id, 0);
12522 ;
12523 }
12524 break;
12525 case 1298:
12526 {
12527 yyval.list = MkList();
12528 ListAdd(yyval.list, yyvsp[(1) - (1)].dbindexItem);
12529 ;
12530 }
12531 break;
12532 case 1299:
12533 {
12534 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].dbindexItem);
12535 ;
12536 }
12537 break;
12538 case 1300:
12539 {
12540 yyval.dbtableEntry = MkDBIndexEntry(yyvsp[(2) - (3)].list, (((void *)0)));
12541 ;
12542 }
12543 break;
12544 case 1301:
12545 {
12546 yyval.dbtableEntry = MkDBIndexEntry(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].id);
12547 ;
12548 }
12549 break;
12550 case 1302:
12551 {
12552 yyval.list = MkList();
12553 ListAdd(yyval.list, yyvsp[(1) - (1)].dbtableEntry);
12554 ;
12555 }
12556 break;
12557 case 1303:
12558 {
12559 yyval.list = MkList();
12560 ListAdd(yyval.list, yyvsp[(1) - (1)].dbtableEntry);
12561 ;
12562 }
12563 break;
12564 case 1304:
12565 {
12566 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].dbtableEntry);
12567 ;
12568 }
12569 break;
12570 case 1305:
12571 {
12572 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].dbtableEntry);
12573 ;
12574 }
12575 break;
12576 case 1306:
12577 {
12578 yyval.exp = MkExpDBOpen(yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].exp);
12579 ;
12580 }
12581 break;
12582 case 1307:
12583 {
12584 yyval.exp = MkExpDBField(yyvsp[(3) - (6)].string, yyvsp[(5) - (6)].id);
12585 ;
12586 }
12587 break;
12588 case 1308:
12589 {
12590 yyval.exp = MkExpDBIndex(yyvsp[(3) - (6)].string, yyvsp[(5) - (6)].id);
12591 ;
12592 }
12593 break;
12594 case 1309:
12595 {
12596 yyval.exp = MkExpDBTable(yyvsp[(3) - (4)].string);
12597 ;
12598 }
12599 break;
12600 default:
12601 break;
12602 }
12603 do
12604 {
12605 if(yydebug)
12606 {
12607 fprintf((bsl_stderr()), "%s ", "-> $$ =");
12608 yy_symbol_print((bsl_stderr()), yyr1[yyn], &yyval, &yyloc);
12609 fprintf((bsl_stderr()), "\n");
12610 }
12611 }while((0));
12612 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12613 yylen = 0;
12614 do
12615 {
12616 if(yydebug)
12617 yy_stack_print((yyss), (yyssp));
12618 }while((0));
12619 *++yyvsp = yyval;
12620 *++yylsp = yyloc;
12621 yyn = yyr1[yyn];
12622 yystate = yypgoto[yyn - 145] + *yyssp;
12623 if(0 <= yystate && yystate <= 42445 && yycheck[yystate] == *yyssp)
12624 yystate = yytable[yystate];
12625 else
12626 yystate = yydefgoto[yyn - 145];
12627 goto yynewstate;
12628 yyerrlab:
12629 if(!yyerrstatus)
12630 {
12631 ++yynerrs;
12632 yyerror("syntax error");
12633 }
12634 yyerror_range[0] = yylloc;
12635 if(yyerrstatus == 3)
12636 {
12637 if(yychar <= 0)
12638 {
12639 if(yychar == 0)
12640 goto yyabortlab;
12641 }
12642 else
12643 {
12644 yydestruct("Error: discarding", yytoken, &yylval, &yylloc);
12645 yychar = (-2);
12646 }
12647 }
12648 goto yyerrlab1;
12649 yyerrorlab:
12650 if(0)
12651 goto yyerrorlab;
12652 yyerror_range[0] = yylsp[1 - yylen];
12653 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12654 yylen = 0;
12655 do
12656 {
12657 if(yydebug)
12658 yy_stack_print((yyss), (yyssp));
12659 }while((0));
12660 yystate = *yyssp;
12661 goto yyerrlab1;
12662 yyerrlab1:
12663 yyerrstatus = 3;
12664 for(; ; )
12665 {
12666 yyn = yypact[yystate];
12667 if(yyn != -1899)
12668 {
12669 yyn += 1;
12670 if(0 <= yyn && yyn <= 42445 && yycheck[yyn] == 1)
12671 {
12672 yyn = yytable[yyn];
12673 if(0 < yyn)
12674 break;
12675 }
12676 }
12677 if(yyssp == yyss)
12678 goto yyabortlab;
12679 yyerror_range[0] = *yylsp;
12680 yydestruct("Error: popping", yystos[yystate], yyvsp, yylsp);
12681 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
12682 yystate = *yyssp;
12683 do
12684 {
12685 if(yydebug)
12686 yy_stack_print((yyss), (yyssp));
12687 }while((0));
12688 }
12689 *++yyvsp = yylval;
12690 yyerror_range[1] = yylloc;
12691 (yyloc.start = ((yyerror_range - 1))[1].start);
12692 (yyloc.end = ((yyerror_range - 1))[2].end);
12693 ;
12694 *++yylsp = yyloc;
12695 do
12696 {
12697 if(yydebug)
12698 {
12699 fprintf((bsl_stderr()), "%s ", "Shifting");
12700 yy_symbol_print((bsl_stderr()), yystos[yyn], yyvsp, yylsp);
12701 fprintf((bsl_stderr()), "\n");
12702 }
12703 }while((0));
12704 yystate = yyn;
12705 goto yynewstate;
12706 yyacceptlab:
12707 yyresult = 0;
12708 goto yyreturn;
12709 yyabortlab:
12710 yyresult = 1;
12711 goto yyreturn;
12712 yyexhaustedlab:
12713 yyerror("memory exhausted");
12714 yyresult = 2;
12715 yyreturn:
12716 if(yychar != (-2))
12717 yydestruct("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
12718 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12719 do
12720 {
12721 if(yydebug)
12722 yy_stack_print((yyss), (yyssp));
12723 }while((0));
12724 while(yyssp != yyss)
12725 {
12726 yydestruct("Cleanup: popping", yystos[*yyssp], yyvsp, yylsp);
12727 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
12728 }
12729 if(yyss != yyssa)
12730 free(yyss);
12731 return (yyresult);
12732 }
12733