compiler: (WIP) Fixes for MinGW/GCC 5
[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, INT128 = 294, LONG = 295, SIGNED = 296, UNSIGNED = 297, FLOAT = 298, DOUBLE = 299, CONST = 300, VOLATILE = 301, VOID = 302, VALIST = 303, STRUCT = 304, UNION = 305, ENUM = 306, ELLIPSIS = 307, CASE = 308, DEFAULT = 309, IF = 310, SWITCH = 311, WHILE = 312, DO = 313, FOR = 314, GOTO = 315, CONTINUE = 316, BREAK = 317, RETURN = 318, IFX = 319, ELSE = 320, CLASS = 321, THISCLASS = 322, CLASS_NAME = 323, PROPERTY = 324, SETPROP = 325, GETPROP = 326, NEWOP = 327, RENEW = 328, DELETE = 329, EXT_DECL = 330, EXT_STORAGE = 331, IMPORT = 332, DEFINE = 333, VIRTUAL = 334, ATTRIB = 335, PUBLIC = 336, PRIVATE = 337, TYPED_OBJECT = 338, ANY_OBJECT = 339, _INCREF = 340, EXTENSION = 341, ASM = 342, TYPEOF = 343, WATCH = 344, STOPWATCHING = 345, FIREWATCHERS = 346, WATCHABLE = 347, CLASS_DESIGNER = 348, CLASS_NO_EXPANSION = 349, CLASS_FIXED = 350, ISPROPSET = 351, CLASS_DEFAULT_PROPERTY = 352, PROPERTY_CATEGORY = 353, CLASS_DATA = 354, CLASS_PROPERTY = 355, SUBCLASS = 356, NAMESPACE = 357, NEW0OP = 358, RENEW0 = 359, VAARG = 360, DBTABLE = 361, DBFIELD = 362, DBINDEX = 363, DATABASE_OPEN = 364, ALIGNOF = 365, ATTRIB_DEP = 366, __ATTRIB = 367, BOOL = 368, _BOOL = 369, _COMPLEX = 370, _IMAGINARY = 371, RESTRICT = 372, THREAD = 373, WIDE_STRING_LITERAL = 374, BUILTIN_OFFSETOF = 375
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, 140, 2, 2, 134, 142, 137, 2, 124, 125, 121, 138, 129, 139, 132, 141, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 133, 127, 122, 128, 123, 145, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 135, 2, 136, 143, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 131, 144, 130, 126, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 120
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, 2540, 2545, 2550, 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, 2609, 2611, 2616, 2621, 2626, 2628, 2630, 2633, 2636, 2640, 2646, 2649, 2653, 2659, 2665, 2671, 2673, 2677, 2680, 2683, 2687, 2691, 2694, 2698, 2702, 2707, 2711, 2715, 2719, 2723, 2727, 2731, 2736, 2741, 2746, 2748, 2750, 2755, 2759, 2762, 2766, 2770, 2774, 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806, 2810, 2812, 2814, 2816, 2819, 2821, 2824, 2826, 2829, 2831, 2834, 2836, 2839, 2841, 2844, 2846, 2849, 2851, 2854, 2856, 2859, 2861, 2864, 2866, 2869, 2871, 2874, 2876, 2879, 2881, 2884, 2886, 2889, 2891, 2894, 2896, 2899, 2901, 2904, 2906, 2909, 2911, 2914, 2916, 2919, 2921, 2924, 2926, 2929, 2931, 2934, 2936, 2939, 2941, 2944, 2946, 2948, 2950, 2953, 2955, 2958, 2960, 2963, 2965, 2968, 2973, 2979, 2981, 2983, 2985, 2988, 2990, 2993, 2995, 2998, 3000, 3003, 3008, 3014, 3016, 3019, 3021, 3024, 3026, 3029, 3031, 3034, 3036, 3039, 3041, 3044, 3049, 3055, 3057, 3060, 3062, 3065, 3067, 3070, 3072, 3075, 3077, 3080, 3082, 3085, 3090, 3096, 3100, 3104, 3106, 3110, 3114, 3118, 3122, 3124, 3126, 3128, 3133, 3138, 3143, 3147, 3152, 3157, 3162, 3166, 3168, 3172, 3177, 3181, 3186, 3191, 3196, 3201, 3205, 3208, 3212, 3216, 3220, 3224, 3227, 3230, 3233, 3237, 3242, 3244, 3246, 3249, 3253, 3257, 3261, 3265, 3268, 3271, 3274, 3278, 3283, 3285, 3287, 3289, 3291, 3293, 3298, 3300, 3302, 3304, 3306, 3308, 3310, 3312, 3314, 3316, 3321, 3323, 3326, 3330, 3337, 3343, 3347, 3352, 3355, 3359, 3363, 3367, 3371, 3376, 3381, 3386, 3389, 3393, 3397, 3401, 3406, 3411, 3415, 3420, 3423, 3427, 3431, 3435, 3440, 3445, 3447, 3450, 3453, 3457, 3459, 3461, 3464, 3467, 3471, 3473, 3475, 3478, 3481, 3485, 3487, 3490, 3494, 3497, 3500, 3502, 3505, 3509, 3512, 3514, 3517, 3521, 3525, 3527, 3530, 3534, 3538, 3540, 3543, 3547, 3551, 3553, 3556, 3560, 3564, 3566, 3569, 3573, 3577, 3579, 3583, 3588, 3590, 3595, 3598, 3604, 3608, 3610, 3612, 3614, 3616, 3618, 3620, 3624, 3628, 3631, 3634, 3636, 3638, 3642, 3645, 3649, 3651, 3655, 3659, 3663, 3667, 3671, 3675, 3677, 3680, 3684, 3688, 3690, 3693, 3695, 3698, 3701, 3704, 3707, 3711, 3713, 3715, 3719, 3723, 3725, 3729, 3734, 3738, 3743, 3747, 3751, 3756, 3760, 3765, 3767, 3771, 3775, 3780, 3784, 3788, 3792, 3797, 3799, 3803, 3807, 3811, 3815, 3819, 3821, 3825, 3828, 3830, 3832, 3834, 3836, 3838, 3841, 3843, 3845, 3847, 3849, 3852, 3855, 3858, 3860, 3862, 3864, 3866, 3868, 3871, 3873, 3875, 3880, 3888, 3890, 3894, 3895, 3902, 3911, 3922, 3935, 3944, 3955, 3966, 3972, 3980, 3990, 4002, 4010, 4020, 4030, 4034, 4039, 4044, 4048, 4052, 4056, 4061, 4066, 4070, 4074, 4078, 4083, 4088, 4092, 4095, 4099, 4102, 4106, 4111, 4116, 4120, 4124, 4126, 4128, 4130, 4132, 4134, 4137, 4141, 4144, 4147, 4150, 4154, 4158, 4161, 4167, 4174, 4177, 4180, 4183, 4186, 4189, 4192, 4194, 4197, 4200, 4204, 4206, 4209, 4211, 4214, 4217, 4219, 4222, 4225, 4228, 4231, 4234, 4237, 4239, 4241, 4244, 4247, 4249, 4251, 4254, 4257, 4259, 4262, 4265, 4267, 4270, 4272, 4275, 4278, 4284, 4290, 4298, 4306, 4312, 4318, 4322, 4325, 4331, 4336, 4341, 4349, 4356, 4363, 4369, 4377, 4384, 4389, 4397, 4407, 4411, 4416, 4421, 4427, 4433, 4440, 4448, 4455, 4462, 4468, 4474, 4479, 4483, 4486, 4488, 4491, 4496, 4500, 4506, 4511, 4515, 4518, 4521, 4524, 4528, 4532, 4536, 4540, 4543, 4546, 4548, 4550, 4555, 4559, 4564, 4568, 4572, 4575, 4580, 4584, 4589, 4593, 4597, 4600, 4602, 4605, 4607, 4609, 4612, 4614, 4617, 4621, 4625, 4627, 4630, 4633, 4636, 4640, 4645, 4650, 4653, 4656, 4659, 4662, 4664, 4667, 4669, 4672, 4674, 4677, 4680, 4682, 4685, 4687, 4690, 4693, 4696, 4699, 4701, 4704, 4707, 4711, 4713, 4715, 4716, 4723, 4730, 4736, 4741, 4743, 4746, 4749, 4751, 4755, 4759, 4764, 4766, 4768, 4771, 4774, 4781, 4788, 4795
91 };
92
93 static const yytype_int16 yyrhs[] =
94 {
95 392, 0, -1, 218, 121, -1, 218, 122, -1, 151, -1, 218, 218, -1, 28, -1, 28, -1, 149, -1, 149, 122, 212, 123, -1, 149, 122, 212, 11, -1, 301, 336, -1, 334, -1, 301, 124, 125, -1, 126, 301, 124, 125, -1, 79, 301, 336, -1, 79, 334, -1, 301, 337, -1, 335, -1, 79, 301, 337, -1, 79, 335, -1, 152, 376, -1, 155, 376, -1, 155, 127, -1, 153, 376, -1, 154, 376, -1, 152, 127, -1, 152, 326, 127, -1, 152, 377, -1, 156, -1, 155, 377, -1, 157, -1, 157, 127, -1, 300, 336, -1, 300, 338, -1, 300, 337, -1, 160, 376, -1, 160, 377, -1, 161, -1, 160, -1, 226, 128, 341, -1, 341, -1, 226, 128, 342, -1, 226, 128, 1, -1, 342, -1, 164, -1, 166, 129, 164, -1, 167, 129, 164, -1, 165, -1, 166, 129, 165, -1, 167, 129, 165, -1, 166, 129, 1, -1, 167, 129, 1, -1, 129, -1, 166, 127, -1, 167, 127, -1, 168, -1, 162, -1, 171, 168, -1, 171, 162, -1, 169, 168, -1, 169, 162, -1, 171, 127, -1, 169, 127, -1, 127, -1, 169, -1, 166, -1, 169, 166, -1, 171, 166, -1, 163, -1, 170, 163, -1, 171, 163, -1, 169, 163, -1, 169, 167, -1, 167, -1, 166, 1, -1, 173, 130, -1, 173, 1, 130, -1, 300, 218, 131, 171, -1, 300, 218, 131, 170, 1, -1, 300, 218, 131, 170, -1, 300, 218, 131, -1, 300, 218, 131, 1, -1, 175, 130, -1, 175, 1, 130, -1, 301, 218, 131, 171, -1, 301, 218, 131, 170, 1, -1, 301, 218, 131, 170, -1, 301, 218, 131, -1, 301, 218, 131, 1, -1, 302, 218, 131, 170, 130, -1, 302, 218, 131, 171, 130, -1, 302, 218, 131, 130, -1, 178, 130, -1, 178, 1, 130, -1, 151, 131, 170, -1, 218, 131, 170, -1, 151, 131, 171, -1, 151, 131, -1, 151, 131, 170, 1, -1, 151, 131, 1, -1, 218, 131, 171, -1, 218, 131, -1, 218, 131, 170, 1, -1, 218, 131, 1, -1, 180, 130, -1, 180, 1, 130, -1, 131, 171, -1, 131, 170, 1, -1, 131, 1, -1, 131, -1, 131, 170, -1, 226, 128, 341, -1, 226, 128, 342, -1, 226, 128, 1, -1, 226, 1, -1, 181, -1, 183, 129, 181, -1, 184, 129, 181, -1, 182, -1, 183, 129, 182, -1, 184, 129, 182, -1, 183, 1, -1, 69, 306, 218, 131, -1, 69, 306, 330, 218, 131, -1, 69, 306, 131, -1, 69, 306, 330, 131, -1, 69, 1, 131, -1, 185, -1, 186, 70, 376, -1, 186, 71, 376, -1, 186, 96, 376, -1, 186, 92, -1, 186, 98, 220, -1, 186, 130, -1, 100, 306, 218, 131, -1, 100, 306, 330, 218, 131, -1, 100, 306, 131, -1, 100, 306, 330, 131, -1, 100, 1, 131, -1, 188, -1, 189, 70, 376, -1, 189, 71, 376, -1, 189, 130, -1, 218, -1, 191, 218, -1, 191, 376, -1, 74, 376, -1, 192, -1, 193, 192, -1, 89, 124, 191, 125, 376, -1, 89, 124, 245, 125, 131, 193, 130, -1, 245, 132, 89, 124, 245, 125, 131, 193, 130, -1, 90, 124, 245, 129, 191, 125, -1, 245, 132, 90, 124, 245, 129, 191, 125, -1, 90, 124, 245, 125, -1, 245, 132, 90, 124, 245, 125, -1, 91, -1, 91, 191, -1, 226, 132, 91, -1, 245, 132, 91, 191, -1, 199, 127, -1, 183, 127, -1, 158, -1, 187, -1, 364, 158, -1, 364, 187, -1, 190, -1, 92, -1, 94, -1, 95, -1, 100, 124, 218, 125, 128, 341, 127, -1, 127, -1, 364, 133, -1, 364, 124, 218, 125, -1, 159, -1, 301, -1, 301, 288, -1, 364, 301, 288, -1, 364, 301, -1, 364, 177, -1, 364, 174, -1, 99, 301, 288, -1, 194, -1, 93, 218, -1, 93, 151, -1, 97, 218, -1, 177, -1, 174, -1, 183, -1, 175, 1, -1, 178, 1, -1, 364, 159, -1, 364, 175, 1, -1, 364, 178, 1, -1, 184, -1, 198, -1, 200, 198, -1, 201, 198, -1, 199, -1, 200, 1, -1, 201, 1, -1, 200, 199, -1, 201, 199, -1, 301, -1, 301, 330, -1, 301, -1, 301, 330, -1, 66, 218, -1, 66, 218, 128, 203, -1, 66, 218, 133, 202, -1, 66, 218, 133, 202, 128, 203, -1, 66, 150, -1, 66, 150, 128, 203, -1, 66, 150, 133, 202, -1, 66, 150, 133, 202, 128, 203, -1, 218, -1, 218, -1, 218, 128, 205, -1, 235, -1, 301, 218, 128, 207, -1, 301, 330, 218, 128, 207, -1, 204, -1, 206, -1, 208, -1, 209, -1, 210, 129, 209, -1, 207, -1, 205, -1, 203, -1, 218, 128, 207, -1, 218, 128, 205, -1, 218, 128, 203, -1, 211, -1, 212, 129, 211, -1, 66, -1, 213, 218, -1, 213, 149, -1, 218, 213, 218, -1, 218, 213, 149, -1, 213, 218, 122, 210, 123, -1, 213, 149, 122, 210, 123, -1, 218, 213, 218, 122, 210, 123, -1, 218, 213, 149, 122, 210, 123, -1, 217, 130, -1, 216, 127, -1, 214, 131, 130, -1, 216, 131, 130, -1, 213, 218, 127, -1, 213, 148, 127, -1, 214, 133, 305, -1, 214, 131, 201, -1, 216, 131, 201, -1, 214, 131, 200, -1, 216, 131, 200, -1, 214, 131, 1, -1, 216, 131, 1, -1, 3, -1, 222, -1, 124, 247, 125, -1, 387, -1, 134, 387, -1, 134, 387, 132, 387, -1, 4, -1, 218, -1, 177, -1, 86, 124, 376, 125, -1, 86, 124, 247, 125, -1, 86, 124, 348, 125, 339, -1, 86, 124, 348, 125, 124, 348, 125, 339, -1, 221, 218, -1, 221, -1, 220, -1, 119, -1, 124, 125, -1, 72, 308, 331, 135, 267, 136, -1, 72, 308, 331, 135, 268, 136, -1, 72, 308, 135, 267, 136, -1, 72, 308, 135, 268, 136, -1, 103, 308, 331, 135, 267, 136, -1, 103, 308, 331, 135, 268, 136, -1, 103, 308, 135, 267, 136, -1, 103, 308, 135, 268, 136, -1, 73, 267, 307, 331, 135, 267, 136, -1, 73, 267, 307, 331, 135, 268, 136, -1, 73, 267, 307, 135, 267, 136, -1, 73, 267, 307, 135, 268, 136, -1, 104, 267, 307, 331, 135, 267, 136, -1, 104, 267, 307, 331, 135, 268, 136, -1, 104, 267, 307, 135, 267, 136, -1, 104, 267, 307, 135, 268, 136, -1, 66, 124, 300, 125, -1, 66, 124, 300, 330, 125, -1, 66, 124, 218, 125, -1, 105, 124, 245, 129, 348, 125, -1, 99, 124, 218, 125, -1, 399, -1, 400, -1, 401, -1, 402, -1, 135, 227, 136, -1, 135, 136, -1, 179, -1, 180, 1, -1, 124, 247, -1, 124, 265, -1, 219, -1, 226, 135, 247, 136, -1, 226, 135, 265, 136, -1, 226, 124, 125, -1, 226, 124, 227, 125, -1, 226, 124, 228, 125, -1, 226, 132, 218, -1, 226, 7, 218, -1, 226, 8, -1, 226, 9, -1, 249, 135, 247, 136, -1, 249, 135, 265, 136, -1, 249, 124, 125, -1, 249, 124, 227, 125, -1, 249, 132, 218, -1, 249, 7, 218, -1, 249, 8, -1, 249, 9, -1, 245, -1, 223, -1, 227, 129, 245, -1, 227, 129, 223, -1, 264, -1, 224, -1, 227, 129, 264, -1, 227, 129, 224, -1, 227, 129, -1, 8, 230, -1, 9, 230, -1, 231, 232, -1, 231, 223, -1, 6, 230, -1, 6, 124, 349, 125, -1, 6, 124, 66, 148, 125, -1, 6, 124, 66, 147, 125, -1, 110, 230, -1, 110, 124, 349, 125, -1, 120, 124, 349, 129, 218, 125, -1, 229, -1, 226, -1, 137, -1, 121, -1, 138, -1, 139, -1, 126, -1, 140, -1, 74, -1, 85, -1, 230, -1, 124, 348, 125, 232, -1, 232, -1, 233, 121, 232, -1, 233, 141, 232, -1, 233, 142, 232, -1, 253, 121, 232, -1, 253, 141, 232, -1, 253, 142, 232, -1, 233, -1, 234, 138, 233, -1, 234, 139, 233, -1, 254, 138, 233, -1, 254, 139, 233, -1, 234, -1, 235, 10, 234, -1, 235, 11, 234, -1, 255, 10, 234, -1, 255, 11, 234, -1, 237, 122, -1, 235, -1, 236, 235, -1, 237, 123, 235, -1, 237, 12, 235, -1, 237, 13, 235, -1, 256, 122, 235, -1, 256, 123, 235, -1, 256, 12, 235, -1, 256, 13, 235, -1, 237, -1, 238, 14, 237, -1, 238, 15, 237, -1, 257, 14, 237, -1, 257, 15, 237, -1, 238, 14, 223, -1, 238, 15, 223, -1, 257, 14, 223, -1, 257, 15, 223, -1, 238, -1, 239, 137, 238, -1, 258, 137, 238, -1, 239, 137, 223, -1, 258, 137, 223, -1, 239, -1, 240, 143, 239, -1, 259, 143, 239, -1, 240, 143, 223, -1, 259, 143, 223, -1, 240, -1, 241, 144, 240, -1, 260, 144, 240, -1, 241, 144, 223, -1, 260, 144, 223, -1, 241, -1, 242, 16, 241, -1, 261, 16, 241, -1, 242, -1, 243, 17, 242, -1, 262, 17, 242, -1, 243, -1, 243, 145, 247, 133, 244, -1, 243, 145, 265, 133, 244, -1, 262, 145, 247, 133, 244, -1, 262, 145, 265, 133, 244, -1, 243, 145, 248, 133, 244, -1, 243, 145, 266, 133, 244, -1, 262, 145, 248, 133, 244, -1, 262, 145, 266, 133, 244, -1, 243, 145, 247, 133, 223, -1, 243, 145, 265, 133, 223, -1, 262, 145, 247, 133, 223, -1, 262, 145, 265, 133, 223, -1, 243, 145, 248, 133, 223, -1, 243, 145, 266, 133, 223, -1, 262, 145, 248, 133, 223, -1, 262, 145, 266, 133, 223, -1, 244, -1, 230, 246, 245, -1, 251, 246, 245, -1, 244, 246, 245, -1, 263, 246, 245, -1, 230, 246, 223, -1, 251, 246, 223, -1, 244, 246, 223, -1, 263, 246, 223, -1, 128, -1, 18, -1, 19, -1, 20, -1, 21, -1, 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, 27, -1, 245, -1, 247, 129, 245, -1, 265, 129, 245, -1, 265, 125, -1, 223, -1, 247, 129, 223, -1, 265, 129, 223, -1, 225, -1, 1, -1, 226, 1, -1, 178, 1, -1, 226, 7, 1, -1, 249, 7, 1, -1, 226, 124, 227, -1, 226, 124, 228, -1, 226, 132, 1, -1, 249, 124, 228, -1, 249, 132, 1, -1, 8, 251, -1, 9, 251, -1, 231, 252, -1, 231, 224, -1, 6, 251, -1, 6, 124, 349, 125, 1, -1, 6, 124, 66, 148, 125, 1, -1, 6, 124, 66, 147, 125, 1, -1, 110, 251, -1, 110, 124, 349, 125, 1, -1, 250, -1, 249, -1, 251, -1, 124, 348, 125, 252, -1, 252, -1, 233, 121, 252, -1, 233, 141, 252, -1, 233, 142, 252, -1, 253, 121, 252, -1, 253, 141, 252, -1, 253, 142, 252, -1, 253, -1, 234, 138, 253, -1, 234, 139, 253, -1, 254, 138, 253, -1, 254, 139, 253, -1, 254, -1, 235, 10, 254, -1, 235, 11, 254, -1, 255, 10, 254, -1, 255, 11, 254, -1, 255, -1, 236, 255, -1, 237, 123, 255, -1, 237, 12, 255, -1, 237, 13, 255, -1, 256, 122, 255, -1, 256, 123, 255, -1, 256, 12, 255, -1, 256, 13, 255, -1, 256, -1, 238, 14, 256, -1, 238, 15, 256, -1, 257, 14, 256, -1, 257, 15, 256, -1, 238, 14, 224, -1, 238, 15, 224, -1, 257, 14, 224, -1, 257, 15, 224, -1, 257, -1, 239, 137, 257, -1, 258, 137, 257, -1, 239, 137, 224, -1, 258, 137, 224, -1, 258, -1, 240, 143, 258, -1, 259, 143, 258, -1, 240, 143, 224, -1, 259, 143, 224, -1, 259, -1, 241, 144, 259, -1, 260, 144, 259, -1, 241, 144, 224, -1, 260, 144, 224, -1, 260, -1, 242, 16, 260, -1, 261, 16, 260, -1, 261, -1, 243, 17, 261, -1, 262, 17, 261, -1, 262, -1, 243, 145, 247, 133, 262, -1, 243, 145, 265, 133, 262, -1, 262, 145, 247, 133, 262, -1, 262, 145, 265, 133, 262, -1, 243, 145, 247, 133, -1, 243, 145, 265, 133, -1, 262, 145, 247, 133, -1, 262, 145, 265, 133, -1, 243, 145, 248, 133, 262, -1, 243, 145, 266, 133, 262, -1, 262, 145, 248, 133, 262, -1, 262, 145, 266, 133, 262, -1, 243, 145, 248, 133, -1, 243, 145, 266, 133, -1, 262, 145, 248, 133, -1, 262, 145, 266, 133, -1, 243, 145, 247, 133, 224, -1, 243, 145, 265, 133, 224, -1, 262, 145, 247, 133, 224, -1, 262, 145, 265, 133, 224, -1, 243, 145, 248, 133, 224, -1, 243, 145, 266, 133, 224, -1, 262, 145, 248, 133, 224, -1, 262, 145, 266, 133, 224, -1, 243, 145, 133, -1, 262, 145, 133, -1, 243, 145, -1, 262, 145, -1, 263, -1, 230, 246, 264, -1, 251, 246, 264, -1, 230, 246, 224, -1, 251, 246, 224, -1, 264, -1, 245, 1, -1, 247, 129, 264, -1, 265, 129, 264, -1, 247, 247, -1, 265, 247, -1, 247, 265, -1, 224, -1, 223, 1, -1, 247, 129, 224, -1, 265, 129, 224, -1, 244, -1, 263, -1, 29, -1, 30, -1, 31, -1, 118, -1, 32, -1, 33, -1, 117, -1, 29, -1, 30, -1, 31, -1, 118, -1, 32, -1, 33, -1, 117, -1, 218, -1, 218, 128, 267, -1, 218, 128, 268, -1, 271, -1, 272, 129, 271, -1, 272, 129, -1, 51, -1, 273, 218, -1, 273, 151, -1, 276, 130, -1, 273, 218, 131, 130, -1, 273, 151, 131, 130, -1, 273, 131, 272, -1, 273, 131, 1, -1, 273, 218, 131, 272, -1, 273, 218, 131, 272, 1, -1, 273, 218, 131, 1, -1, 273, 218, 131, 272, 127, 200, -1, 273, 218, 131, 272, 127, 201, -1, 273, 151, 131, 272, -1, 273, 151, 131, 272, 1, -1, 273, 151, 131, 1, -1, 273, 151, 131, 272, 127, 200, -1, 273, 151, 131, 272, 127, 201, -1, 273, 218, 131, 272, 127, -1, 273, 151, 131, 272, 127, -1, 273, 218, -1, 273, 151, -1, 279, 130, -1, 277, 133, 305, 131, 130, -1, 277, 131, 130, -1, 277, 133, 305, 131, 272, -1, 277, 133, 305, 131, 272, 1, -1, 277, 133, 305, 131, 1, -1, 277, 133, 305, 131, 272, 127, 200, -1, 277, 133, 305, 131, 272, 127, 201, -1, 277, 133, 305, 131, 272, 1, 127, 200, -1, 277, 133, 305, 131, 272, 1, 127, 201, -1, 277, 133, 305, 131, 1, 127, 200, -1, 277, 133, 305, 131, 1, 127, 201, -1, 273, 131, 272, -1, 273, 131, 1, -1, 277, 131, 272, -1, 277, 131, 272, 1, -1, 277, 131, 1, -1, 277, 131, 272, 127, 200, -1, 277, 131, 272, 127, 201, -1, 277, 133, 305, 131, 272, 127, -1, 277, 133, 305, 131, 272, 1, 127, -1, 277, 133, 305, 131, 1, 127, -1, 277, 131, 272, 127, -1, 278, -1, 295, -1, 279, -1, 296, -1, 321, -1, 45, -1, 46, -1, 282, -1, 283, -1, 284, 283, -1, 47, -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, -1, 39, -1, 48, -1, 40, -1, 43, -1, 44, -1, 41, -1, 42, -1, 86, -1, 292, -1, 274, -1, 148, -1, 88, 124, 245, 125, -1, 101, 124, 148, 125, -1, 101, 124, 218, 125, -1, 67, -1, 83, -1, 84, -1, 114, -1, 113, -1, 115, -1, 116, -1, 47, -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, -1, 39, -1, 48, -1, 40, -1, 43, -1, 44, -1, 41, -1, 42, -1, 86, -1, 292, -1, 274, -1, 151, -1, 114, -1, 113, -1, 115, -1, 116, -1, 88, 124, 245, 125, -1, 101, 124, 148, 125, -1, 101, 124, 218, 125, -1, 67, -1, 338, -1, 338, 326, -1, 133, 267, -1, 338, 133, 267, -1, 338, 133, 267, 133, 267, -1, 133, 268, -1, 338, 133, 268, -1, 338, 133, 267, 133, 268, -1, 338, 133, 268, 133, 268, -1, 338, 133, 268, 133, 267, -1, 287, -1, 288, 129, 287, -1, 297, 218, -1, 297, 149, -1, 297, 321, 218, -1, 297, 321, 149, -1, 291, 130, -1, 289, 131, 130, -1, 297, 131, 130, -1, 297, 321, 131, 130, -1, 289, 131, 200, -1, 289, 131, 201, -1, 289, 131, 1, -1, 297, 131, 200, -1, 297, 131, 201, -1, 297, 131, 1, -1, 297, 321, 131, 200, -1, 297, 321, 131, 201, -1, 297, 321, 131, 1, -1, 289, -1, 289, -1, 289, 122, 210, 123, -1, 293, 133, 305, -1, 296, 130, -1, 294, 131, 130, -1, 293, 131, 130, -1, 297, 131, 130, -1, 294, 131, 200, -1, 294, 131, 201, -1, 294, 131, 1, -1, 293, 131, 200, -1, 293, 131, 201, -1, 293, 131, 1, -1, 297, 131, 200, -1, 297, 131, 201, -1, 297, 131, 1, -1, 49, -1, 50, -1, 283, -1, 298, 283, -1, 285, -1, 298, 285, -1, 275, -1, 298, 275, -1, 290, -1, 298, 290, -1, 283, -1, 299, 283, -1, 285, -1, 299, 285, -1, 147, -1, 299, 147, -1, 275, -1, 299, 275, -1, 290, -1, 299, 290, -1, 269, -1, 300, 269, -1, 283, -1, 300, 283, -1, 286, -1, 300, 286, -1, 275, -1, 300, 275, -1, 290, -1, 300, 290, -1, 269, -1, 301, 269, -1, 283, -1, 301, 283, -1, 285, -1, 301, 285, -1, 147, -1, 301, 147, -1, 290, -1, 301, 290, -1, 275, -1, 301, 275, -1, 270, -1, 302, 270, -1, 283, -1, 302, 283, -1, 285, -1, 302, 285, -1, 147, -1, 302, 147, -1, 280, -1, 302, 280, -1, 281, -1, 302, 281, -1, 82, -1, 81, -1, 269, -1, 304, 269, -1, 283, -1, 304, 283, -1, 286, -1, 304, 286, -1, 218, -1, 304, 218, -1, 218, 122, 212, 123, -1, 304, 218, 122, 212, 123, -1, 304, -1, 297, -1, 269, -1, 306, 269, -1, 283, -1, 306, 283, -1, 286, -1, 306, 286, -1, 218, -1, 306, 218, -1, 218, 122, 212, 123, -1, 306, 218, 122, 212, 123, -1, 269, -1, 307, 269, -1, 283, -1, 307, 283, -1, 286, -1, 307, 286, -1, 290, -1, 307, 290, -1, 275, -1, 307, 275, -1, 218, -1, 307, 218, -1, 218, 122, 212, 123, -1, 307, 218, 122, 212, 123, -1, 269, -1, 308, 269, -1, 283, -1, 308, 283, -1, 286, -1, 308, 286, -1, 290, -1, 308, 290, -1, 275, -1, 308, 275, -1, 218, -1, 308, 218, -1, 218, 122, 212, 123, -1, 308, 218, 122, 212, 123, -1, 310, 129, 1, -1, 309, 129, 1, -1, 218, -1, 310, 129, 218, -1, 309, 129, 218, -1, 352, 129, 218, -1, 353, 129, 218, -1, 312, -1, 149, -1, 37, -1, 149, 135, 267, 136, -1, 149, 135, 268, 136, -1, 149, 135, 148, 136, -1, 149, 135, 136, -1, 311, 135, 267, 136, -1, 311, 135, 268, 136, -1, 311, 135, 148, 136, -1, 311, 135, 136, -1, 218, -1, 124, 332, 125, -1, 124, 321, 332, 125, -1, 124, 333, 125, -1, 124, 321, 333, 125, -1, 312, 135, 267, 136, -1, 312, 135, 268, 136, -1, 312, 135, 148, 136, -1, 312, 135, 136, -1, 312, 124, -1, 313, 354, 125, -1, 313, 355, 125, -1, 313, 310, 125, -1, 313, 309, 125, -1, 313, 125, -1, 313, 309, -1, 313, 1, -1, 313, 352, 124, -1, 313, 301, 218, 124, -1, 314, -1, 312, -1, 311, 124, -1, 317, 354, 125, -1, 317, 355, 125, -1, 317, 310, 125, -1, 317, 309, 125, -1, 317, 125, -1, 317, 309, -1, 317, 1, -1, 317, 352, 124, -1, 317, 301, 218, 124, -1, 318, -1, 311, -1, 75, -1, 76, -1, 326, -1, 87, 124, 387, 125, -1, 80, -1, 111, -1, 112, -1, 3, -1, 28, -1, 76, -1, 75, -1, 45, -1, 323, -1, 323, 124, 247, 125, -1, 324, -1, 325, 324, -1, 325, 129, 324, -1, 322, 124, 124, 325, 125, 125, -1, 322, 124, 124, 125, 125, -1, 124, 330, 125, -1, 124, 321, 330, 125, -1, 135, 136, -1, 135, 267, 136, -1, 135, 268, 136, -1, 135, 148, 136, -1, 327, 135, 136, -1, 327, 135, 267, 136, -1, 327, 135, 148, 136, -1, 327, 135, 268, 136, -1, 124, 125, -1, 124, 354, 125, -1, 124, 355, 125, -1, 327, 124, 125, -1, 327, 124, 354, 125, -1, 327, 124, 355, 125, -1, 124, 331, 125, -1, 124, 321, 331, 125, -1, 124, 125, -1, 124, 354, 125, -1, 124, 355, 125, -1, 328, 124, 125, -1, 328, 124, 354, 125, -1, 328, 124, 355, 125, -1, 121, -1, 121, 284, -1, 121, 329, -1, 121, 284, 329, -1, 329, -1, 327, -1, 329, 327, -1, 321, 329, -1, 321, 329, 327, -1, 329, -1, 328, -1, 329, 328, -1, 321, 329, -1, 321, 329, 328, -1, 316, -1, 329, 316, -1, 321, 329, 316, -1, 332, 321, -1, 338, 321, -1, 320, -1, 329, 320, -1, 321, 329, 320, -1, 333, 321, -1, 314, -1, 329, 314, -1, 321, 329, 314, -1, 329, 321, 314, -1, 315, -1, 329, 315, -1, 321, 329, 315, -1, 329, 321, 315, -1, 318, -1, 329, 318, -1, 321, 329, 318, -1, 329, 321, 318, -1, 319, -1, 329, 319, -1, 321, 329, 319, -1, 329, 321, 319, -1, 311, -1, 329, 311, -1, 321, 329, 311, -1, 329, 321, 311, -1, 245, -1, 131, 343, 130, -1, 131, 343, 129, 130, -1, 264, -1, 131, 343, 130, 1, -1, 131, 343, -1, 131, 343, 129, 130, 1, -1, 131, 343, 129, -1, 244, -1, 223, -1, 263, -1, 224, -1, 339, -1, 340, -1, 343, 129, 339, -1, 343, 129, 340, -1, 343, 339, -1, 343, 340, -1, 332, -1, 333, -1, 332, 128, 339, -1, 332, 1, -1, 332, 128, 340, -1, 344, -1, 346, 129, 344, -1, 37, 129, 344, -1, 38, 129, 344, -1, 39, 129, 344, -1, 149, 129, 344, -1, 347, 129, 344, -1, 345, -1, 344, 1, -1, 346, 129, 345, -1, 347, 129, 345, -1, 298, -1, 298, 330, -1, 299, -1, 299, 330, -1, 301, 333, -1, 301, 330, -1, 301, 137, -1, 301, 137, 333, -1, 301, -1, 66, -1, 301, 333, 1, -1, 301, 330, 1, -1, 350, -1, 352, 129, 350, -1, 352, 1, 129, 350, -1, 353, 129, 350, -1, 353, 1, 129, 350, -1, 1, 129, 350, -1, 310, 129, 350, -1, 310, 1, 129, 350, -1, 309, 129, 350, -1, 309, 1, 129, 350, -1, 351, -1, 352, 129, 351, -1, 353, 129, 351, -1, 353, 1, 129, 351, -1, 1, 129, 351, -1, 310, 129, 351, -1, 309, 129, 351, -1, 309, 1, 129, 351, -1, 352, -1, 352, 129, 52, -1, 353, 129, 52, -1, 310, 129, 52, -1, 309, 129, 52, -1, 1, 129, 52, -1, 353, -1, 352, 129, 1, -1, 353, 1, -1, 361, -1, 326, -1, 376, -1, 127, -1, 133, -1, 247, 127, -1, 379, -1, 381, -1, 383, -1, 360, -1, 197, 127, -1, 196, 127, -1, 195, 127, -1, 362, -1, 382, -1, 377, -1, 380, -1, 384, -1, 383, 1, -1, 265, -1, 387, -1, 387, 124, 245, 125, -1, 135, 218, 136, 387, 124, 245, 125, -1, 358, -1, 359, 129, 358, -1, -1, 87, 283, 124, 387, 125, 127, -1, 87, 283, 124, 387, 133, 359, 125, 127, -1, 87, 283, 124, 387, 133, 359, 133, 359, 125, 127, -1, 87, 283, 124, 387, 133, 359, 133, 359, 133, 359, 125, 127, -1, 87, 283, 124, 387, 3, 359, 125, 127, -1, 87, 283, 124, 387, 3, 359, 133, 359, 125, 127, -1, 87, 283, 124, 387, 133, 359, 3, 359, 125, 127, -1, 87, 124, 387, 125, 127, -1, 87, 124, 387, 133, 359, 125, 127, -1, 87, 124, 387, 133, 359, 133, 359, 125, 127, -1, 87, 124, 387, 133, 359, 133, 359, 133, 359, 125, 127, -1, 87, 124, 387, 3, 359, 125, 127, -1, 87, 124, 387, 3, 359, 133, 359, 125, 127, -1, 87, 124, 387, 133, 359, 3, 359, 125, 127, -1, 218, 133, 356, -1, 53, 267, 133, 356, -1, 53, 268, 133, 356, -1, 53, 133, 356, -1, 54, 133, 356, -1, 218, 133, 365, -1, 53, 267, 133, 365, -1, 53, 268, 133, 365, -1, 53, 133, 365, -1, 54, 133, 365, -1, 218, 133, 357, -1, 53, 267, 133, 357, -1, 53, 268, 133, 357, -1, 53, 133, 357, -1, 53, 133, -1, 54, 133, 357, -1, 54, 133, -1, 218, 133, 368, -1, 53, 267, 133, 368, -1, 53, 268, 133, 368, -1, 53, 133, 368, -1, 54, 133, 368, -1, 81, -1, 82, -1, 54, -1, 81, -1, 82, -1, 300, 127, -1, 300, 346, 127, -1, 172, 127, -1, 368, 127, -1, 302, 127, -1, 302, 346, 127, -1, 303, 346, 127, -1, 176, 127, -1, 78, 218, 128, 244, 127, -1, 31, 78, 218, 128, 244, 127, -1, 302, 1, -1, 300, 1, -1, 368, 1, -1, 173, 1, -1, 172, 1, -1, 300, 347, -1, 365, -1, 369, 365, -1, 370, 365, -1, 369, 1, 127, -1, 368, -1, 369, 368, -1, 356, -1, 371, 356, -1, 372, 356, -1, 357, -1, 371, 357, -1, 372, 357, -1, 371, 365, -1, 372, 365, -1, 371, 368, -1, 372, 368, -1, 371, -1, 369, -1, 369, 371, -1, 370, 371, -1, 372, -1, 370, -1, 369, 372, -1, 370, 372, -1, 131, -1, 377, 130, -1, 375, 374, -1, 375, -1, 375, 373, -1, 127, -1, 247, 127, -1, 265, 127, -1, 55, 124, 247, 125, 356, -1, 55, 124, 265, 125, 356, -1, 55, 124, 247, 125, 356, 65, 356, -1, 55, 124, 265, 125, 356, 65, 356, -1, 56, 124, 247, 125, 356, -1, 56, 124, 265, 125, 356, -1, 55, 124, 265, -1, 379, 1, -1, 57, 124, 247, 125, 356, -1, 57, 124, 265, 356, -1, 57, 124, 125, 356, -1, 58, 356, 57, 124, 247, 125, 127, -1, 58, 356, 57, 124, 265, 127, -1, 59, 124, 378, 378, 125, 356, -1, 59, 124, 378, 125, 356, -1, 59, 124, 378, 378, 247, 125, 356, -1, 59, 124, 378, 378, 265, 356, -1, 59, 124, 125, 356, -1, 59, 124, 218, 133, 247, 125, 356, -1, 59, 124, 218, 133, 247, 127, 247, 125, 356, -1, 59, 124, 1, -1, 59, 124, 265, 1, -1, 59, 124, 378, 1, -1, 59, 124, 378, 265, 1, -1, 59, 124, 378, 378, 265, -1, 59, 124, 378, 378, 125, 357, -1, 59, 124, 378, 378, 247, 125, 357, -1, 59, 124, 378, 378, 265, 357, -1, 58, 356, 57, 124, 247, 125, -1, 58, 356, 57, 124, 247, -1, 58, 356, 57, 124, 265, -1, 58, 356, 57, 124, -1, 58, 356, 57, -1, 58, 356, -1, 58, -1, 57, 1, -1, 57, 124, 125, 1, -1, 57, 124, 265, -1, 57, 124, 247, 125, 357, -1, 57, 124, 265, 357, -1, 60, 218, 127, -1, 61, 127, -1, 62, 127, -1, 63, 127, -1, 63, 247, 127, -1, 63, 265, 127, -1, 63, 223, 127, -1, 63, 224, 127, -1, 63, 265, -1, 63, 224, -1, 63, -1, 60, -1, 302, 334, 369, 376, -1, 302, 334, 376, -1, 302, 336, 369, 376, -1, 302, 336, 376, -1, 334, 369, 376, -1, 334, 376, -1, 302, 334, 369, 377, -1, 302, 334, 377, -1, 302, 336, 369, 377, -1, 302, 336, 377, -1, 334, 369, 377, -1, 334, 377, -1, 5, -1, 387, 5, -1, 385, -1, 215, -1, 302, 215, -1, 366, -1, 77, 387, -1, 77, 31, 387, -1, 77, 218, 387, -1, 127, -1, 363, 385, -1, 363, 215, -1, 363, 366, -1, 363, 77, 387, -1, 363, 77, 31, 387, -1, 363, 77, 218, 387, -1, 363, 133, -1, 31, 133, -1, 102, 218, -1, 102, 151, -1, 393, -1, 363, 393, -1, 217, -1, 302, 217, -1, 386, -1, 363, 217, -1, 363, 386, -1, 367, -1, 363, 367, -1, 389, -1, 391, 389, -1, 390, 389, -1, 391, 1, -1, 390, 1, -1, 388, -1, 391, 388, -1, 390, 215, -1, 390, 363, 215, -1, 391, -1, 390, -1, -1, 106, 387, 218, 131, 398, 130, -1, 106, 387, 151, 131, 398, 130, -1, 106, 387, 131, 398, 130, -1, 301, 218, 387, 127, -1, 218, -1, 123, 218, -1, 122, 218, -1, 395, -1, 396, 129, 395, -1, 108, 396, 127, -1, 108, 396, 218, 127, -1, 394, -1, 397, -1, 398, 394, -1, 398, 397, -1, 109, 124, 245, 129, 245, 125, -1, 107, 124, 387, 129, 218, 125, -1, 108, 124, 387, 129, 218, 125, -1, 106, 124, 387, 125, -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, 2225, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2259, 2261, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2277, 2282, 2283, 2287, 2293, 2299, 2306, 2316, 2317, 2318, 2319, 2323, 2324, 2325, 2327, 2328, 2329, 2331, 2332, 2333, 2337, 2341, 2349, 2358, 2367, 2368, 2370, 2371, 2375, 2382, 2389, 2392, 2405, 2419, 2422, 2424, 2426, 2431, 2432, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2501, 2502, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2516, 2518, 2526, 2536, 2537, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2557, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2586, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2615, 2624, 2625, 2629, 2630, 2631, 2632, 2633, 2637, 2638, 2645, 2647, 2656, 2665, 2674, 2683, 2684, 2685, 2686, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2702, 2706, 2707, 2708, 2709, 2710, 2715, 2724, 2733, 2742, 2756, 2757, 2762, 2766, 2767, 2768, 2769, 2770, 2775, 2784, 2793, 2802, 2816, 2817, 2866, 2867, 2868, 2869, 2881, 2882, 2883, 2888, 2889, 2890, 2891, 2892, 2896, 2897, 2901, 2902, 2903, 2907, 2908, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2942, 2943, 2944, 2945, 2949, 2950, 2951, 2952, 2953, 2957, 2958, 2959, 2960, 2961, 2965, 2966, 2968, 2970, 2972, 2977, 2978, 2980, 2982, 2987, 2988, 2989, 2990, 2994, 2995, 2996, 2997, 3001, 3002, 3003, 3004, 3008, 3009, 3010, 3011, 3015, 3016, 3017, 3018, 3022, 3023, 3024, 3041, 3042, 3043, 3044, 3057, 3074, 3075, 3080, 3081, 3085, 3086, 3087, 3088, 3091, 3092, 3096, 3097, 3098, 3102, 3106, 3110, 3111, 3112, 3113, 3114, 3115, 3124, 3133, 3134, 3135, 3136, 3140, 3141, 3145, 3146, 3151, 3152, 3153, 3154, 3155, 3156, 3175, 3176, 3180, 3181, 3182, 3183, 3184, 3185, 3187, 3188, 3189, 3190, 3194, 3195, 3196, 3197, 3198, 3200, 3201, 3202, 3206, 3207, 3208, 3209, 3210, 3211, 3215, 3216, 3217, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3248, 3249, 3250, 3254, 3255, 3256, 3260, 3261, 3262, 3263, 3265, 3266, 3267, 3269, 3270, 3271, 3272, 3274, 3275, 3276, 3280, 3281, 3282, 3283, 3284, 3286, 3287, 3288, 3289, 3290, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3302, 3303, 3304, 3305, 3306, 3310, 3311, 3312, 3316, 3317, 3321, 3322, 3323, 3324, 3328, 3329, 3330, 3332, 3333, 3334, 3338, 3342, 3343, 3345, 3346, 3347, 3351, 3352, 3353, 3354, 3358, 3359, 3363, 3364, 3365, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3379, 3380, 3381, 3382, 3386, 3387, 3388, 3389, 3393, 3397, 3401, 3403, 3406, 3412, 3413, 3414, 3418, 3419, 3420, 3421, 3422, 3423, 3427, 3428, 3432, 3433, 3434, 3436, 3437, 3439, 3440, 3441, 3442, 3443, 3445, 3446, 3450, 3451, 3452, 3453, 3457, 3458, 3459, 3460, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3471, 3475, 3476, 3480, 3481, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3496, 3497, 3498, 3499, 3505, 3506, 3508, 3509, 3512, 3513, 3516, 3517, 3518, 3519, 3520, 3521, 3525, 3526, 3538, 3539, 3542, 3545, 3547, 3548, 3549, 3559, 3561, 3562, 3564, 3565, 3566, 3567, 3577, 3578, 3579, 3580, 3581, 3582, 3586, 3587, 3596, 3598, 3599, 3601, 3603, 3607, 3608, 3609, 3610, 3611, 3615, 3616, 3617, 3619, 3624, 3625, 3626, 3630, 3631, 3632, 3636, 3640, 3641, 3642, 3646, 3647, 3651, 3652, 3656, 3657, 3658, 3659, 3663, 3667, 3671, 3675
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", "INT128", "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, 146, 147, 147, 148, 148, 149, 150, 151, 151, 151, 152, 152, 153, 154, 155, 155, 156, 156, 157, 157, 158, 158, 158, 158, 158, 158, 158, 159, 159, 159, 159, 159, 160, 160, 161, 162, 163, 163, 163, 164, 164, 165, 165, 165, 166, 166, 166, 167, 167, 167, 167, 167, 167, 168, 168, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, 171, 172, 172, 173, 173, 173, 173, 173, 174, 174, 175, 175, 175, 175, 175, 176, 176, 176, 177, 177, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, 180, 180, 180, 180, 180, 181, 182, 182, 182, 183, 183, 183, 184, 184, 184, 184, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 187, 188, 188, 188, 188, 188, 189, 189, 189, 190, 191, 191, 192, 192, 193, 193, 194, 195, 195, 196, 196, 196, 196, 197, 197, 197, 197, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 200, 200, 200, 201, 201, 201, 201, 201, 202, 202, 203, 203, 204, 204, 204, 204, 204, 204, 204, 204, 205, 206, 206, 207, 208, 208, 209, 209, 209, 210, 210, 211, 211, 211, 211, 211, 211, 212, 212, 213, 214, 214, 214, 214, 214, 214, 214, 214, 215, 215, 215, 215, 215, 215, 216, 217, 217, 217, 217, 217, 217, 218, 219, 219, 220, 220, 220, 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 223, 224, 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, 228, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, 232, 232, 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 252, 252, 253, 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, 257, 257, 257, 257, 257, 257, 257, 257, 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, 260, 260, 260, 260, 260, 261, 261, 261, 262, 262, 262, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 264, 264, 264, 264, 264, 265, 265, 265, 265, 265, 265, 265, 266, 266, 266, 266, 267, 268, 269, 269, 269, 269, 269, 269, 269, 270, 270, 270, 270, 270, 270, 270, 271, 271, 271, 272, 272, 272, 273, 274, 274, 275, 275, 275, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 277, 277, 278, 278, 278, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 280, 280, 281, 281, 282, 283, 283, 283, 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, 285, 285, 285, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 288, 288, 289, 289, 289, 289, 290, 290, 290, 290, 291, 291, 291, 291, 291, 291, 291, 291, 291, 292, 293, 293, 294, 295, 295, 295, 295, 296, 296, 296, 296, 296, 296, 296, 296, 296, 297, 297, 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, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 303, 303, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, 305, 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, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 309, 309, 310, 310, 310, 310, 310, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 312, 312, 312, 312, 312, 312, 312, 312, 312, 313, 314, 314, 314, 314, 314, 315, 315, 315, 315, 316, 316, 317, 318, 318, 318, 318, 318, 319, 319, 319, 319, 320, 320, 321, 321, 321, 321, 322, 322, 322, 323, 323, 323, 323, 323, 324, 324, 325, 325, 325, 326, 326, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 328, 328, 328, 328, 328, 328, 328, 328, 329, 329, 329, 329, 330, 330, 330, 330, 330, 331, 331, 331, 331, 331, 332, 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, 338, 339, 339, 339, 340, 340, 340, 340, 340, 341, 341, 342, 342, 343, 343, 343, 343, 343, 343, 344, 344, 344, 345, 345, 346, 346, 346, 346, 346, 346, 346, 347, 347, 347, 347, 348, 348, 349, 349, 350, 350, 350, 350, 350, 350, 351, 351, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 353, 353, 353, 353, 353, 353, 353, 353, 354, 354, 354, 354, 354, 354, 355, 355, 355, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 357, 357, 357, 357, 357, 357, 357, 358, 358, 358, 359, 359, 359, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 363, 363, 363, 364, 364, 365, 365, 365, 365, 366, 366, 366, 366, 366, 366, 367, 368, 368, 368, 368, 368, 369, 369, 369, 369, 370, 370, 371, 371, 371, 372, 372, 372, 372, 372, 372, 372, 373, 373, 373, 373, 374, 374, 374, 374, 375, 376, 377, 377, 377, 378, 378, 378, 379, 379, 379, 379, 379, 379, 380, 380, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 383, 383, 383, 383, 383, 383, 383, 383, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 386, 386, 386, 386, 386, 386, 387, 387, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 389, 389, 389, 389, 389, 389, 389, 390, 390, 390, 390, 390, 391, 391, 391, 391, 392, 392, 392, 393, 393, 393, 394, 395, 395, 395, 396, 396, 397, 397, 398, 398, 398, 398, 399, 400, 401, 402
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, 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, 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, 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 1293, 257, 6, 592, 593, 594, 596, 597, 661, 662, 663, 664, 665, 666, 668, 671, 672, 669, 670, 655, 656, 660, 667, 758, 759, 605, 1138, 235, 680, 915, 916, 0, 0, 919, 1136, 1137, 681, 682, 673, 0, 0, 0, 0, 0, 920, 921, 684, 683, 685, 686, 598, 595, 958, 0, 1262, 806, 676, 8, 4, 0, 0, 0, 1256, 0, 1275, 882, 800, 0, 675, 0, 650, 652, 808, 810, 657, 802, 804, 741, 674, 0, 0, 651, 653, 0, 0, 0, 0, 0, 981, 654, 0, 917, 0, 0, 0, 1258, 1280, 1255, 1277, 1287, 1282, 0, 0, 0, 1273, 0, 1270, 1253, 0, 0, 1259, 0, 0, 0, 0, 1272, 1271, 0, 658, 959, 654, 960, 873, 872, 882, 914, 871, 901, 972, 0, 913, 977, 0, 0, 0, 0, 0, 0, 1148, 0, 237, 236, 0, 0, 245, 0, 244, 2, 3, 0, 5, 0, 607, 606, 0, 0, 627, 0, 0, 0, 0, 745, 0, 725, 724, 0, 1151, 594, 664, 665, 666, 1145, 807, 8, 1257, 1276, 882, 801, 809, 811, 803, 805, 981, 989, 654, 0, 0, 1020, 0, 0, 0, 1031, 0, 0, 873, 0, 0, 872, 0, 0, 891, 0, 0, 585, 586, 587, 589, 590, 1044, 591, 588, 896, 794, 866, 788, 0, 798, 0, 790, 792, 741, 796, 0, 0, 1043, 0, 0, 1047, 1057, 0, 0, 0, 0, 0, 0, 982, 0, 688, 689, 690, 691, 692, 693, 695, 698, 699, 696, 697, 687, 694, 711, 700, 0, 0, 705, 704, 706, 707, 1181, 703, 0, 0, 778, 702, 784, 780, 782, 786, 701, 0, 1157, 0, 0, 0, 0, 1246, 1252, 594, 0, 1269, 1264, 1278, 0, 1265, 1281, 1263, 1279, 1274, 1286, 1289, 0, 0, 0, 0, 0, 1284, 1285, 1288, 1283, 1, 0, 1260, 1261, 1254, 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, 961, 0, 903, 0, 908, 0, 0, 0, 0, 0, 0, 0, 914, 973, 978, 0, 883, 975, 885, 980, 976, 673, 4, 229, 228, 227, 233, 0, 264, 354, 219, 480, 0, 206, 249, 0, 0, 248, 255, 0, 0, 1139, 1140, 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, 985, 654, 0, 12, 18, 0, 813, 812, 820, 814, 0, 816, 818, 741, 825, 824, 250, 256, 247, 0, 0, 239, 238, 640, 599, 602, 639, 643, 629, 0, 0, 0, 222, 223, 224, 225, 0, 217, 0, 754, 747, 0, 0, 744, 751, 746, 0, 0, 757, 748, 0, 0, 727, 726, 0, 0, 0, 0, 0, 0, 982, 990, 0, 1022, 0, 0, 1242, 1248, 0, 1244, 1250, 1032, 1146, 0, 0, 0, 1147, 890, 0, 264, 583, 584, 0, 0, 0, 0, 607, 606, 608, 0, 728, 0, 0, 664, 0, 0, 1041, 795, 8, 882, 789, 799, 791, 793, 797, 914, 871, 654, 963, 962, 0, 0, 0, 895, 0, 0, 894, 0, 0, 0, 1073, 0, 892, 893, 983, 0, 984, 0, 0, 1155, 1143, 1154, 76, 1152, 691, 692, 693, 1141, 882, 779, 785, 781, 783, 787, 654, 0, 1156, 1153, 1144, 0, 1158, 0, 1245, 1251, 1159, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 0, 0, 0, 700, 0, 0, 0, 157, 1077, 1078, 703, 0, 0, 0, 264, 0, 354, 0, 0, 480, 567, 572, 0, 1075, 1163, 1166, 1083, 1074, 1087, 0, 0, 0, 0, 1185, 1183, 1076, 1089, 0, 1090, 1081, 1088, 0, 1091, 1182, 0, 0, 1266, 882, 0, 0, 0, 1276, 0, 871, 989, 654, 0, 0, 0, 0, 1252, 1290, 0, 0, 413, 0, 0, 918, 0, 337, 472, 0, 333, 468, 334, 469, 0, 860, 850, 858, 852, 854, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 476, 0, 274, 0, 0, 0, 764, 760, 762, 766, 1035, 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, 677, 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, 678, 679, 0, 0, 0, 1305, 1306, 0, 0, 0, 877, 0, 0, 0, 881, 0, 0, 0, 907, 906, 904, 905, 914, 973, 978, 884, 886, 1000, 10, 9, 0, 0, 0, 654, 962, 207, 0, 0, 264, 206, 0, 0, 832, 826, 828, 830, 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, 882, 722, 177, 997, 0, 993, 654, 0, 11, 17, 712, 898, 1043, 0, 0, 0, 986, 0, 0, 173, 165, 192, 181, 0, 180, 0, 166, 882, 179, 0, 607, 606, 821, 815, 817, 819, 0, 0, 0, 604, 642, 0, 0, 7, 212, 208, 743, 0, 0, 0, 0, 1019, 1026, 1027, 1028, 1029, 64, 53, 92, 39, 38, 57, 69, 45, 48, 0, 74, 56, 0, 0, 0, 1010, 1012, 0, 1009, 1011, 0, 41, 44, 914, 983, 974, 991, 979, 1000, 992, 0, 1001, 1004, 1021, 1023, 1241, 1247, 1243, 1249, 1025, 1033, 1030, 1034, 889, 887, 888, 1070, 1052, 1061, 612, 611, 0, 0, 458, 729, 0, 0, 458, 730, 0, 0, 0, 944, 882, 0, 0, 654, 962, 0, 0, 0, 936, 0, 0, 0, 0, 0, 1042, 965, 0, 0, 964, 1046, 1045, 0, 865, 1069, 868, 1055, 1063, 0, 864, 1068, 867, 1053, 1062, 0, 1072, 1066, 869, 1048, 1058, 0, 1067, 870, 1050, 1059, 922, 923, 926, 925, 924, 0, 927, 929, 0, 0, 0, 0, 77, 0, 1142, 1160, 0, 0, 0, 0, 0, 0, 1224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 1075, 1222, 1080, 1082, 0, 0, 1230, 1231, 1232, 0, 1238, 0, 0, 0, 0, 0, 0, 158, 144, 1086, 1085, 1084, 0, 0, 0, 573, 0, 1079, 0, 0, 0, 0, 453, 0, 0, 458, 0, 0, 0, 0, 1164, 1167, 1169, 0, 1165, 1168, 1170, 0, 1196, 1092, 1267, 1268, 237, 236, 0, 0, 0, 990, 0, 0, 1248, 0, 1250, 1251, 0, 0, 1149, 0, 0, 772, 264, 774, 768, 770, 776, 1037, 0, 0, 0, 0, 0, 0, 861, 851, 859, 853, 855, 857, 654, 968, 967, 0, 846, 836, 844, 838, 840, 842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 765, 761, 763, 767, 1036, 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, 1298, 1301, 0, 0, 1296, 1307, 1308, 0, 0, 876, 874, 875, 880, 878, 879, 234, 232, 231, 230, 264, 654, 965, 241, 0, 207, 240, 127, 0, 125, 833, 827, 829, 831, 0, 654, 0, 15, 19, 0, 182, 997, 654, 0, 139, 0, 137, 833, 0, 264, 654, 0, 27, 84, 117, 120, 118, 121, 129, 130, 131, 133, 141, 142, 114, 112, 113, 13, 714, 717, 0, 0, 910, 1043, 0, 0, 0, 998, 994, 0, 0, 713, 882, 899, 987, 988, 882, 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, 691, 33, 35, 34, 1013, 1014, 0, 620, 610, 0, 615, 609, 0, 458, 731, 0, 0, 0, 962, 0, 934, 945, 946, 939, 937, 938, 0, 966, 947, 0, 0, 940, 0, 0, 0, 1056, 1064, 1043, 1054, 1049, 1051, 1060, 933, 0, 0, 0, 930, 708, 709, 710, 458, 0, 0, 1117, 1127, 1122, 0, 0, 0, 1118, 1129, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1221, 1209, 0, 1186, 264, 0, 0, 0, 1229, 1235, 1236, 1233, 1234, 0, 0, 0, 0, 145, 1114, 1124, 1119, 0, 159, 570, 568, 0, 0, 0, 451, 574, 571, 569, 452, 575, 0, 991, 1247, 1249, 1150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 773, 775, 769, 771, 777, 1038, 0, 293, 291, 0, 0, 952, 654, 0, 0, 0, 0, 0, 0, 970, 0, 969, 0, 0, 0, 847, 837, 845, 839, 841, 843, 0, 267, 0, 266, 295, 0, 0, 0, 0, 0, 0, 1312, 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, 1300, 1299, 1303, 0, 0, 0, 1295, 1294, 0, 962, 218, 0, 0, 123, 126, 0, 0, 0, 0, 0, 998, 0, 135, 138, 0, 14, 458, 0, 0, 723, 0, 882, 911, 999, 995, 996, 715, 718, 900, 174, 822, 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, 1017, 1018, 619, 0, 614, 0, 965, 964, 935, 948, 949, 942, 941, 943, 1040, 1039, 0, 932, 931, 79, 1115, 1125, 1120, 0, 1116, 1126, 1121, 0, 0, 0, 0, 0, 1225, 1199, 0, 0, 1198, 1228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1206, 0, 1187, 1210, 1188, 1211, 0, 0, 0, 1099, 918, 1099, 0, 0, 155, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 292, 862, 0, 967, 0, 950, 953, 954, 277, 278, 0, 971, 955, 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, 1302, 1304, 1297, 834, 0, 124, 150, 999, 0, 136, 86, 912, 0, 0, 823, 0, 0, 0, 0, 0, 0, 205, 0, 221, 0, 0, 1015, 1016, 1005, 0, 0, 0, 0, 928, 1189, 1190, 1193, 1194, 1197, 1227, 0, 0, 0, 0, 0, 0, 0, 1203, 1212, 0, 0, 0, 0, 1097, 0, 1094, 1107, 0, 1099, 0, 1099, 0, 0, 0, 0, 475, 474, 969, 951, 863, 956, 957, 275, 276, 848, 285, 286, 0, 0, 0, 0, 279, 280, 289, 290, 0, 0, 294, 1310, 1311, 1309, 343, 835, 0, 716, 719, 721, 720, 0, 0, 215, 211, 0, 1002, 1007, 0, 0, 0, 0, 0, 0, 0, 1217, 1201, 0, 0, 1202, 1214, 0, 1205, 1216, 0, 0, 0, 1099, 0, 1099, 0, 1099, 0, 1100, 0, 0, 0, 148, 0, 153, 0, 156, 0, 849, 283, 284, 0, 287, 288, 171, 1003, 1191, 1192, 0, 0, 1200, 1207, 0, 1204, 1215, 0, 1111, 1098, 0, 0, 0, 1108, 0, 0, 1099, 1099, 0, 1099, 147, 146, 151, 149, 0, 0, 355, 481, 269, 0, 0, 0, 1095, 0, 0, 1099, 1104, 0, 0, 1101, 0, 0, 154, 1208, 0, 1112, 1113, 1109, 0, 0, 0, 0, 1099, 152, 0, 0, 1105, 1106, 1102, 0, 1096, 1110, 0, 1103
121 };
122
123 static const yytype_int16 yydefgoto[] =
124 {
125 -1, 212, 56, 57, 981, 337, 445, 446, 447, 448, 449, 450, 451, 452, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 260, 261, 453, 454, 59, 338, 339, 752, 781, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 2100, 2101, 2102, 467, 652, 653, 654, 468, 469, 470, 471, 1794, 413, 509, 414, 510, 415, 511, 512, 873, 416, 417, 60, 61, 62, 63, 64, 340, 341, 342, 343, 344, 1008, 1009, 345, 346, 755, 1276, 347, 657, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 740, 835, 659, 1333, 364, 365, 660, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 661, 662, 1134, 1335, 559, 560, 214, 66, 502, 503, 215, 68, 216, 217, 69, 70, 71, 72, 73, 74, 218, 119, 219, 266, 938, 939, 220, 221, 222, 78, 79, 80, 81, 82, 223, 747, 1210, 269, 475, 84, 85, 492, 493, 883, 1233, 724, 1057, 1058, 125, 86, 476, 88, 477, 128, 129, 130, 942, 131, 120, 90, 1106, 1107, 1108, 91, 585, 1224, 479, 587, 1226, 134, 187, 480, 481, 189, 946, 136, 1026, 1544, 1014, 1015, 1545, 190, 191, 192, 193, 748, 1211, 227, 228, 229, 230, 231, 232, 665, 666, 2020, 2021, 667, 668, 669, 94, 482, 270, 95, 96, 271, 272, 273, 672, 673, 674, 675, 274, 676, 904, 1628, 1137, 679, 680, 681, 1138, 683, 97, 98, 379, 99, 100, 101, 102, 103, 104, 841, 1405, 1406, 842, 843, 380, 381, 382, 383
126 };
127
128 static const int yypact[] =
129 {
130 38766, -2034, -2034, -2034, -2034, 319, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 887, 344, -2034, -2034, -2034, -2034, -2034, -2034, 78, 244, 260, 389, 396, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 2702, 2912, -2034, -2034, -2034, 17, -2034, 371, 389, -11, -2034, 920, 408, 1047, -2034, 282, -2034, 332, -2034, 418, -2034, -2034, -2034, -2034, -2034, 839, -2034, 1010, 444, -2034, 489, 930, 38363, 2850, -17, 39066, -2034, 518, 527, -2034, 1204, 41733, 36912, -2034, -2034, -2034, -2034, -2034, -2034, 38870, 37954, 678, -2034, 344, -2034, -2034, 396, 396, 696, 591, 396, 29560, 389, -2034, -2034, 532, -2034, 2702, -2034, -2034, -2034, 610, -2034, -12, 810, -2034, -2034, 39165, -2034, -2034, 2912, 2746, 2357, 2539, 2016, 24201, -2034, 635, 798, 619, 30655, 41352, -2034, 30783, -2034, -2034, -2034, 389, -2034, 1184, 1066, 1086, 133, 41352, -2034, 41079, 30911, 41352, 31039, -2034, 31167, -2034, -2034, 389, -2034, -2034, 480, 647, 654, -2034, -2034, 952, -2034, 408, 577, -2034, -2034, -2034, -2034, -2034, 1256, 1423, 518, 2746, 1640, 2016, 41733, 41733, 573, -2034, 1163, 668, 671, 647, 654, 821, 518, 1197, -2034, 28140, 683, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 825, -2034, 335, -2034, 717, -2034, -2034, 754, -2034, 778, 2014, 36000, 401, 505, -2034, -2034, 539, 624, 815, 828, 164, 857, -2034, 164, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 873, 876, -2034, -2034, -2034, -2034, -2034, -2034, 85, 95, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 38565, -2034, 17872, 8187, 41940, 18013, -2034, 833, 929, 985, -2034, -2034, 408, 38464, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 418, 489, 39660, 41733, 39951, -2034, -2034, -2034, -2034, -2034, 902, 696, 696, -2034, 29560, 375, -2034, -2034, 29616, 29702, 29702, 909, 41534, 29560, -2034, -2034, 915, 960, 41534, 29560, 982, 990, 993, 1002, 1009, 29758, -2034, 1035, -2034, 12448, -2034, 396, 25738, -2034, -2034, -2034, -2034, 1046, -2034, 107, 1095, -2034, -2034, 344, -2034, -2034, 13083, -2034, 2029, 28196, -2034, 827, 685, 1198, 29560, 780, 1221, 1106, 1130, 1168, 1265, 38, 2029, 1228, 599, -2034, 2029, -2034, 922, 1112, 1250, 1166, 1435, 1258, 1266, 1212, 1349, 136, 2029, 696, -2034, -2034, -2034, -2034, 1297, 186, 41170, 1298, 1304, -2034, -2034, 28282, -2034, 28338, -2034, 630, 655, 1319, 1348, 2746, 2600, 2684, -12, -2034, -2034, 737, -2034, -2034, -2034, -2034, -2034, 915, 1046, -2034, -2034, -2034, -2034, 875, 1337, -2034, 1198, -2034, 1250, 36116, -2034, 24325, 41079, -2034, 367, 40806, 40048, -2034, -2034, 1363, -2034, 389, -2034, -2034, 344, 40242, 39854, 6126, 41443, -2034, -2034, 1307, 1364, 1364, 967, -2034, 1388, -2034, -2034, -2034, 114, 794, 129, -2034, -2034, 30007, 1395, -2034, 1225, -2034, -2034, 829, -2034, -2034, -2034, 1400, 30143, 30271, 267, 198, 599, 37124, 39264, -2034, 518, 1204, -2034, -2034, 37018, -2034, -2034, 1416, -2034, 389, -2034, -2034, -2034, 1417, 41534, -2034, 367, -2034, 30399, 30527, 1420, 1450, -2034, 1460, -2034, 1464, -2034, -2034, 3332, 1476, 886, -2034, -2034, -2034, -2034, 899, 594, 36116, 653, -2034, 31295, 31423, -2034, 653, -2034, 31551, 31679, 653, -2034, 31807, 31935, -2034, -2034, 2912, 2912, 2912, 2912, 22381, 737, 1256, 1423, 737, -2034, 28424, 8187, -2034, 833, 8187, -2034, 833, -2034, -2034, 2912, 2912, 737, -2034, -2034, 1459, 167, -2034, -2034, 1475, 1478, 40897, 1370, 1488, 1494, -2034, 32063, -2034, 32191, 450, -2034, 35765, 28480, 2912, -2034, 1219, 825, -2034, -2034, -2034, -2034, -2034, -12, 1491, 518, 181, 110, 199, 1798, 1499, -2034, 40533, 1501, -2034, 40624, 1502, 40715, 1503, 40988, -2034, -2034, -2034, 1305, -2034, 29560, 389, -2034, -2034, 1506, -2034, -2034, 480, 647, 654, -2034, 1498, -2034, -2034, -2034, -2034, -2034, 518, 1263, 668, -2034, -2034, 1510, -2034, 18154, -2034, 833, -2034, 215, 28566, 1507, 1518, 1519, 80, 18295, 1525, 344, 1524, 1529, 18436, 915, 2209, 1526, 1528, 344, -2034, -2034, 1046, 1530, 1540, 1542, 1324, 16312, 2029, 16603, 25794, 2029, 2029, -2034, 16744, 38666, -2034, -2034, -2034, -2034, -2034, 18577, 18718, 18859, 19000, -2034, -2034, -2034, 833, 19141, -2034, -2034, -2034, 19282, -2034, -2034, 396, 396, 696, 554, 389, 1344, 1548, -2034, -12, -17, -2034, 518, 2746, 41733, 41733, 8187, -2034, -2034, 39757, 29560, 158, 1544, 304, -2034, 24449, -2034, -2034, 28622, -2034, -2034, -2034, -2034, 41534, 1563, -2034, -2034, -2034, -2034, -2034, 36348, 41534, 24589, 344, 36464, 41534, 29560, 396, 396, 396, 29560, 12448, -2034, -2034, 10719, -2034, 13246, 13392, 13538, -2034, -2034, -2034, -2034, 36798, 1521, 159, 22521, -2034, -2034, 134, -2034, 585, -2034, 22661, 1556, -2034, 22801, -2034, -2034, 1485, -2034, -2034, 25880, 1508, 29560, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 28196, 165, -2034, -2034, -2034, -2034, 29560, 29560, 29560, 29560, 29560, 29560, 29560, 1198, 1250, 29560, 29560, -2034, 29560, 28196, 28196, 28196, 28196, 28196, 29560, 29560, 13684, 28196, -2034, 1515, -2034, -2034, 25936, 1522, 29560, 28196, 29560, 29560, 29560, 29560, 29560, 29560, 29560, 29560, 29560, 29560, 29560, 28196, 28196, 28196, 28196, 28196, 29560, 29560, 13830, 28196, -2034, -2034, 730, 825, 41443, -2034, -2034, 38054, 41170, 41170, -2034, 1551, 1553, 1555, -2034, 1566, 1567, 1568, -2034, -2034, -2034, -2034, -12, -2034, -2034, -2034, -2034, 1557, -2034, -2034, 24201, 24201, 35884, 518, 633, -2034, 324, 962, 1341, 36116, 995, 1575, 1586, -2034, -2034, -2034, 1417, 8921, 40145, -2034, -2034, 344, -2034, -2034, -2034, 37230, 1578, 344, 36232, 1987, 24713, 1826, 40339, -2034, 1585, -2034, 833, -2034, 833, -2034, -2034, -2034, 833, -2034, 1588, -2034, 799, -2034, -2034, 5167, 5167, 1364, 1364, -2034, 1364, 106, -2034, 1364, 1364, -2034, -2034, 811, -2034, 1400, 811, -2034, 1400, 862, 28708, 2513, 29560, 639, -2034, 1590, -12, 39363, -2034, 518, 2746, -2034, -2034, 1042, 683, 36000, 29871, 237, 164, -2034, 164, 2912, -2034, -2034, -2034, -2034, 189, -2034, 229, -2034, 267, 37124, 24201, -2034, -2034, 1599, -2034, -2034, -2034, 41079, 41079, 29560, 344, -2034, 32319, 149, -2034, 1125, 1135, -2034, 41079, 344, 802, 344, 1865, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 1364, -2034, -2034, -2034, -2034, -2034, 37336, 1404, -2034, 22941, 41837, 23081, -2034, -2034, 12738, -2034, -2034, 40436, -2034, -2034, -12, 1256, -2034, 1423, -2034, -12, -2034, 28424, -2034, -2034, -2034, -2034, -2034, 833, -2034, 833, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 1464, 183, 216, 1593, -2034, 32447, 32575, 1596, -2034, 32703, 32831, 32959, -2034, 615, 436, 449, 1523, 1722, 1603, 1604, 1605, -2034, 1595, 1597, 1600, 518, 737, 2016, 110, 39462, 28764, 181, -2034, -2034, 41261, -2034, -2034, 825, -2034, -2034, 41261, -2034, -2034, 825, -2034, -2034, 41261, -2034, -2034, 825, -2034, -2034, 41261, -2034, 825, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 1607, 1611, -2034, 1137, 1613, 1614, 223, -2034, 23221, -2034, -2034, 19423, 1608, 1609, 19564, 29560, 29560, -2034, 28850, 28906, 1610, 1616, 1621, 24802, 1622, 344, 26022, 2212, 1408, 26078, -2034, 1691, -2034, -2034, 26164, 1630, -2034, -2034, -2034, 1633, 1634, 26220, 16885, 396, 1642, 29560, 29560, 344, -2034, -2034, -2034, -2034, 22101, 305, 28196, -2034, 1220, -2034, 29560, 13976, 14122, 28196, -2034, 29560, 14268, 1510, 19705, 19846, 19987, 20128, -2034, -2034, -2034, 20269, -2034, -2034, -2034, 20410, -2034, -2034, 696, 696, 1648, 1649, 35519, 35646, 737, -2034, 737, 8187, -2034, 8187, -2034, -2034, 1637, 28196, -2034, 28196, 736, -2034, 267, -2034, -2034, -2034, -2034, 36798, 1647, 1650, 41625, 24201, 38967, 29560, 1652, -2034, -2034, -2034, -2034, -2034, 518, 1654, 1655, 1645, 1659, -2034, -2034, -2034, -2034, -2034, 36580, 26306, 1658, 1661, 1662, 29560, 1665, 36696, 1660, 382, 355, 366, 1664, 1669, 1675, -2034, 344, -2034, -2034, -2034, -2034, -2034, 29560, 396, 234, 37439, 23361, 1676, -2034, 28196, -2034, 242, 37542, 23501, -2034, 265, 37645, 23641, -2034, -2034, -2034, -2034, 1213, 1685, -2034, -2034, -2034, 26392, 4399, -2034, -2034, 1676, -2034, -2034, -2034, -2034, -2034, -2034, 827, 922, 827, 922, 685, 1112, 685, 1112, 1198, 1250, 1198, 1250, 1198, 1250, -2034, -2034, 780, 1166, -2034, -2034, 780, 1166, -2034, -2034, 1221, 1435, -2034, -2034, 1106, 1258, -2034, -2034, 1130, 1266, 1168, 1212, 1265, 1349, -2034, 94, -2034, 26451, 1651, 5970, 1681, -2034, -2034, -2034, -2034, -2034, 1237, -2034, -2034, -2034, 26537, 6518, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 827, 922, 827, 922, 685, 1112, 685, 1112, 1198, 1250, 1198, 1250, 1198, 1250, 1198, 1250, -2034, -2034, 780, 1166, -2034, -2034, 780, 1166, -2034, -2034, 1221, 1435, -2034, -2034, 1106, 1258, -2034, -2034, 1130, 1266, 1168, 1212, 1265, 1349, -2034, 26596, 1682, 6876, 1684, -2034, -2034, 344, 344, -2034, -2034, 567, 1099, -2034, -2034, -2034, 38157, 38260, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 1576, 2265, 633, -2034, 24201, 344, -2034, -2034, 24201, -2034, 880, -2034, -2034, -2034, 458, 518, 2746, -2034, -2034, 258, 1590, 1557, 518, 2746, -2034, 1695, -2034, 905, 464, 1493, 2912, 1697, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 2707, -2034, -2034, -2034, -2034, -2034, 23781, 1867, 683, 36000, 21961, 562, 737, -12, -2034, 737, 29560, -2034, 910, -2034, -2034, -2034, 1699, 1588, 1556, 1590, 1021, 24201, 1033, 1041, -2034, -2034, -2034, 33087, 33215, 1698, -2034, 4169, 41443, 41443, 41443, 41443, -2034, -2034, -2034, 29560, 1700, 28992, -2034, 833, -2034, -2034, 29048, -2034, 29134, -2034, -2034, -2034, 1429, 1404, -2034, -2034, 1364, -2034, -2034, -2034, -2034, -2034, 1429, 1404, -2034, 29190, 9625, -2034, -2034, -2034, -2034, -2034, 20551, -2034, -2034, 102, -2034, -2034, 120, 1701, -2034, 33343, 33471, 518, 1722, 1705, -2034, -2034, -2034, -2034, -2034, -2034, 737, 181, -2034, 1707, 1711, -2034, 1702, 1703, 1704, -2034, -2034, 36000, -2034, -2034, -2034, -2034, -2034, 29560, 1712, 1302, -2034, -2034, -2034, -2034, 276, 37748, 23921, -2034, -2034, -2034, 20692, 22101, 22101, -2034, -2034, -2034, 20833, 26682, 17026, 26768, 26854, 24942, 26940, 17167, 22241, 1715, 1716, 22241, 29560, 29276, 1793, 27026, 1634, 7280, 396, 22241, 1729, 12885, 24802, -2034, 1431, 27082, 9917, 27168, -2034, -2034, -2034, -2034, -2034, 143, 396, 1730, 1257, -2034, -2034, -2034, -2034, 20974, -2034, -2034, -2034, 1734, 1735, 344, -2034, -2034, -2034, -2034, -2034, -2034, 41079, -2034, -2034, -2034, -2034, 27224, 1728, 25222, 1731, 27310, 1732, 25308, 1733, 1738, 1742, -2034, -2034, -2034, -2034, -2034, -2034, 14414, -2034, -2034, 1744, 1057, -2034, 2008, 1750, 1751, 1754, 1745, 1746, 24201, 1655, 39561, 1654, 29560, 24201, 29560, 1762, -2034, -2034, -2034, -2034, -2034, 1752, -2034, 29332, -2034, -2034, 1753, 1755, 29560, 29560, 1759, 10719, -2034, 344, 344, 29560, 14560, 344, -2034, -2034, 696, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 14706, -2034, -2034, -2034, -2034, 28196, 14852, 14998, 28196, 15144, 15290, -2034, -2034, -2034, 15436, 15582, 15728, 15874, -2034, -2034, -2034, 730, 1761, 463, -2034, -2034, 518, 633, 1888, 1115, 24201, -2034, -2034, 1774, 737, 737, 1364, 737, 1557, 1780, -2034, -2034, 1784, -2034, 285, 37851, 24061, -2034, 518, 954, -2034, -12, -2034, -2034, 1778, 1783, -2034, -2034, -2034, 1147, -2034, -2034, 33599, 1790, 33727, -2034, 1802, 36116, -2034, 1803, -2034, 29560, 28424, 2262, -2034, -2034, 2262, -2034, -2034, -2034, 2262, -2034, -2034, 21115, 21256, -2034, -2034, -2034, 33855, -2034, 33983, 110, 181, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 2016, 27396, -2034, -2034, -2034, -2034, -2034, -2034, 21397, -2034, -2034, -2034, 21538, 24802, 7016, 24802, 7016, 16457, -2034, 25082, 17308, -2034, -2034, 22241, 22241, 27482, 24802, 27568, 11097, 1794, 12215, 27654, 174, 21679, -2034, 29560, -2034, 16457, -2034, 12885, 24802, 25394, 29418, 68, 1799, 68, 192, 1801, -2034, 344, 29560, 29560, 344, 28196, 28196, 28196, 28196, 28196, 28196, 28196, 28196, 16020, 16166, -2034, -2034, -2034, 518, 1655, 1796, -2034, -2034, -2034, -2034, -2034, 1177, 1654, -2034, 1808, 1809, 1800, 1810, 1178, 1814, 1815, 24201, 29560, 12448, -2034, -2034, -2034, 1817, 1823, 1824, 1825, 29560, 1819, 1837, 1838, 1839, -2034, 1841, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 304, -2034, -2034, -2034, 304, -2034, -2034, -2034, -2034, -2034, 304, -2034, -2034, -2034, 304, -2034, -2034, -2034, 304, -2034, -2034, -2034, 304, -2034, -2034, -2034, 304, -2034, -2034, -2034, 304, -2034, -2034, -2034, -2034, 1190, -2034, -2034, 1557, 28196, -2034, -2034, -2034, 29560, 29560, -2034, 34111, 34239, 34367, 34495, 34623, 41443, -2034, 41443, -2034, 25480, 21820, -2034, -2034, -2034, 34751, 34879, 35007, 35135, -2034, 1874, 1905, -2034, -2034, -2034, -2034, 24802, 29560, 29474, 1799, 17449, 17590, 25566, -2034, 16457, 25082, 27710, 17731, 344, -2034, 937, 606, -2034, 206, 68, 1844, 68, 299, 581, 1849, 1264, -2034, -2034, 1654, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, -2034, 1222, 1845, 1858, 1850, -2034, -2034, -2034, -2034, 1866, 1868, -2034, -2034, -2034, -2034, -2034, -2034, 1853, -2034, -2034, -2034, -2034, 35263, 35391, -2034, -2034, 27796, -2034, -2034, 24802, 24802, 27882, 25652, 24802, 27968, 11097, 1876, -2034, 24802, 29560, -2034, -2034, 25082, -2034, -2034, 1875, 1883, 68, 68, 29560, 68, 1885, 68, 976, -2034, 211, 1364, 561, -2034, 277, -2034, 1884, -2034, 344, -2034, -2034, -2034, 28992, -2034, -2034, -2034, -2034, -2034, -2034, 1876, 24802, -2034, -2034, 28054, -2034, -2034, 396, -2034, -2034, 1276, 1889, 1279, -2034, 1063, 1898, 68, 68, 1899, 68, -2034, -2034, -2034, -2034, 299, 607, -2034, -2034, -2034, 24802, 648, 1900, -2034, 1903, 1907, 68, -2034, 1285, 1296, -2034, 1073, 429, -2034, -2034, 29560, -2034, -2034, -2034, 1318, 1908, 1909, 1912, 68, -2034, 1913, 1914, -2034, -2034, -2034, 1342, -2034, -2034, 1930, -2034
131 };
132
133 static const yytype_int16 yypgoto[] =
134 {
135 -2034, 2396, 64, 9927, -2034, 2037, -2034, -2034, -2034, -2034, -2034, -2034, 1558, 1579, -998, -2034, -970, -749, 62, 65, -925, -901, -797, -2034, -731, -694, -2034, -2034, 1582, 1587, -2034, 1401, 3070, -2034, -222, 500, 575, -2034, -2034, -2034, -2034, 1589, -2034, -2034, -2034, -645, -2033, -83, -2034, -2034, -2034, -2034, 1820, 2003, -122, 11, 552, -826, -2034, -845, -2034, -860, -2034, 1091, -143, 1211, -877, -8, 1788, 15, 1795, -40, 0, -2034, 1149, -2034, -2034, 4986, 4663, -2034, 5940, -640, 1270, -2034, 3960, -2034, -328, 452, 692, 574, -2034, -13, -710, -453, -450, -120, -85, 477, 8670, 5187, -174, 8829, -766, 759, -2034, 4795, -275, 747, 753, 1380, 193, -47, 32, 34, -15, 43, 918, 3107, -56, 7473, -755, 1911, 264, 10823, -71, 1117, -129, 2980, 11098, 8509, -2034, -2034, -2034, -74, -20, -9, -2034, 7152, -2034, 320, -125, 631, -258, 3671, 9117, -2034, 11465, -2034, -2034, -2034, -53, 3758, -2034, -2034, 1143, 7030, -1, -2034, -2034, 1277, 1667, 1382, 1804, -86, -82, 5745, 10386, 3393, 4790, -407, -124, -464, 942, -856, -109, 3181, -2034, -2034, -1059, -2034, 3340, -406, -1215, 7619, -201, -711, 714, 200, 1082, 1683, -247, -597, -460, -990, -537, -918, -914, 316, 1150, 1027, -14, 1848, -720, -335, 538, -400, -448, -2034, -90, -77, 7278, -294, 33, -773, -2034, -2034, -2034, 2033, -2034, 2028, 2042, -48, 2627, -111, 1863, 919, 921, -2034, -2034, -2034, -91, 849, -1558, -262, -2034, -2034, -2034, -26, -2034, 2046, -43, 19, 2045, 1500, -2034, -2034, -2034, 2050, -784, 407, -2034, -753, 773, -2034, -2034, -2034, -2034
136 };
137
138 static const yytype_int16 yytable[] =
139 {
140 65, 225, 275, 1152, 1027, 226, 1235, 1422, 1529, 403, 1691, 941, 678, 177, 513, 947, 1468, 1239, 489, 1258, 1469, 784, 1421, 496, 404, 506, 1265, 290, 951, 1269, 489, 109, 111, 1543, 489, 1523, 518, 1533, 523, 397, 527, 1420, 116, 395, 175, 699, 284, 396, 291, 1585, 110, 286, 398, 124, 281, 805, 1259, 149, 1859, 1409, 141, 403, 117, 1266, 178, 150, 1270, 153, 1397, 2140, 1870, 199, 953, 107, 785, 179, 404, 542, 545, 1399, 1525, 1122, 1535, 164, 176, 124, 606, 213, 1481, 1493, 1410, 1315, 124, 282, 65, 1732, 608, 543, 546, 174, 292, 65, 65, 1815, 1526, 300, 1536, 200, 758, 280, 753, 107, 392, 1, 385, 910, 289, 388, 201, 1381, 142, 1817, 143, 393, 139, 2140, 1275, 301, 302, 213, 912, 305, 124, 124, 504, 1260, 1, 418, 2, 137, 1510, 150, 472, 485, 619, 472, 1871, 122, 303, 499, 1502, 501, 1, 833, 501, 485, 497, 514, 472, 485, 472, 1041, 472, 670, 303, 530, 1284, 1, 149, 519, 1, 524, 1341, 528, 780, 805, 150, 1871, 384, 303, 1074, 629, 700, 806, 1546, 124, 1, 722, 807, 1, 1490, 1082, 815, 722, 1088, 2025, 1094, 303, 1099, 933, 1075, 556, 112, 2019, 1123, 763, 764, 765, 1527, 2093, 1537, 177, 607, 150, 2134, 564, 624, 1549, 290, 1, 290, 177, 871, 164, 576, 609, 1, -454, 945, 1816, 1491, 976, -618, 124, 571, -109, 124, 759, 595, 291, 331, 291, 1442, -100, 911, 572, 284, 1818, 682, 976, -613, 286, 692, 135, 281, 622, 1524, 1530, 1534, 759, 1529, 1, 178, 505, 1261, 555, -104, 1529, 1872, 615, 1, 1529, 178, 179, 655, 859, 1873, -82, 686, 1503, 1, 834, 688, 876, 689, 1, -89, 1441, 53, 1533, 860, 1256, 65, 703, 65, 1261, 1533, 687, 760, 2010, 1533, 2009, 1, 1200, 881, 1072, 1278, 1873, 1, 702, 2, 837, 718, 1547, 987, 881, 1073, 2026, 718, 911, 76, 833, 766, -1040, -1040, 2027, 934, 1, -1040, 556, 767, 2094, 401, 768, 1535, 2090, 2135, 1680, 1, 2095, 2090, 1535, 625, 761, 2136, 1535, 1550, 1, 1588, 1319, 749, 2099, 980, 1323, 901, 903, 905, 907, 1536, 759, 303, 1486, -1065, 2, -109, 1536, 596, 972, 113, 1536, 1061, 303, -100, 2099, -458, -458, -458, 1385, 1176, 1180, 303, 1389, 1590, 1764, 114, 150, 839, 303, 147, 148, 950, 556, 1, 556, 226, -104, 1643, 105, 760, 124, 1246, 107, 589, 1247, 181, 124, -82, 2139, 678, 678, 678, 678, 1018, 151, 76, -89, 1541, 2, 150, 1591, 941, 76, 76, 839, 588, 874, 514, 1020, 1018, 878, 576, 947, 1, 1043, 1661, 889, 1665, 589, 890, 839, 878, 897, 839, 1020, 1048, 1663, 1052, 1667, 717, 1202, 592, 1028, 106, 1, 1030, 847, 699, 851, 1285, 1287, 1289, 1, 1537, 154, 1074, 155, 562, 1, 303, 1537, 472, 472, 150, 1537, 1903, 937, 213, 404, 2, 124, 941, 1062, 964, 1159, 1713, 1025, 1166, 968, 1349, 1351, 1353, 164, 969, 1478, 1063, 1714, 472, 472, 138, -458, 708, 941, -458, 2099, 1683, 947, 592, 1712, 982, 1530, 1534, 1286, 1288, 1290, 150, 986, 1530, 1534, 472, 472, 1530, 1534, 1701, 472, 472, 1831, 590, 472, 472, 1710, 591, 124, 124, 124, 124, 1, 124, 303, 146, 124, 595, 1350, 1352, 1354, 580, 1487, 1254, 1488, 156, 941, 124, 124, 124, 1542, 1757, 1813, 150, 1, 753, 2170, 2, 839, 501, 595, 1, 591, 472, 1422, 472, 530, 1, 1056, 556, 124, 548, 160, 150, 1049, 594, 1053, 1, 1054, 1756, 1481, 1, 753, 124, 1194, 1196, 1760, 1969, 1080, 1529, 753, 1086, 1769, 1092, 1, 1097, 1221, 1231, 1420, 181, 1221, 1231, 1111, 809, 810, 811, 531, 1, 303, 181, 753, 76, -873, -866, 1787, 1, 161, 1809, 1533, 1, 1780, 1810, 597, 1781, 1409, 1409, 290, 593, 589, 177, 1443, 594, 1236, 1065, 1440, 1133, 52, 1140, 135, 1, 27, 682, 682, 682, 682, 1153, 745, 291, 234, 1798, 303, 1074, 849, 592, 853, 1410, 1410, -458, -458, -458, 386, -1065, 1566, 1535, 1061, 596, 1110, 655, 655, 655, 655, 1428, 147, 148, 1575, 299, 1793, 2034, 1796, 1437, 178, 1325, 535, 1778, -1065, 150, 1188, 1536, 596, 258, 1451, 1748, 1580, 1749, 124, 147, 148, -1024, 303, -1024, 576, 1185, 1186, 2103, 1492, 535, 1205, 1277, 420, 1391, 1915, 1262, 147, 148, 1212, 945, 304, 1327, 1263, 985, 812, 1217, 1227, 556, 1237, 1217, 1227, 2092, 813, 2159, 1, 814, 1205, 147, 148, 839, 1, 1, 426, 1773, 580, -866, 391, 427, 1249, 1393, -1071, 1242, 1243, 1244, 598, 1316, 854, 1277, 868, 1436, 591, 147, 148, 424, 1272, 2, 2, 1540, 1279, 572, 1436, 1473, 135, 2161, 1070, 122, 1529, 532, -458, 1062, 1774, 855, 705, 1382, 533, 594, -458, 1307, 1311, -458, 1326, 705, 1063, 795, 796, 1537, 580, 705, 551, 186, 186, 531, -265, -265, -265, 1533, 1, -460, -460, -460, 1339, 1543, 1902, 561, 1344, 1373, 1377, 1909, 1392, -458, -458, -458, 1993, 1593, 789, 790, 1599, 1461, 1462, 1, 1463, 1495, 1496, 1465, 1466, 1320, 580, 1067, 1324, 1404, 150, 1407, 1530, 1534, 839, 839, 839, 400, 565, 1328, 1535, 1504, 397, 1402, 1403, 678, 1477, 1500, 678, 1558, 396, 717, 53, 1386, 1640, 398, 1390, 418, 1423, 213, -459, -459, -459, 982, 1536, 150, 986, 1394, 1176, 1180, 1176, 1180, 1971, 164, 1433, 576, 566, 864, 1153, 619, 1, 1, 576, 107, 1448, 1450, 678, 1452, 1118, 839, 923, 924, 474, 797, 798, 474, 1515, 1780, 1781, 567, 678, 678, 678, 678, 1, 980, 1548, 1551, 474, 108, 474, 425, 474, -265, 147, 148, -8, -265, 1718, 793, 1267, 1512, -460, 1554, 1, 200, 124, 403, 150, -902, 1990, 599, 213, 276, -458, 124, 201, 147, 148, 786, 1485, 534, 404, 124, 600, 124, 1489, 391, 1, 2, 925, 404, 157, 1020, 684, 150, 937, 418, 1025, 787, 788, -742, 1896, -742, 514, 514, 941, 501, 1537, 472, 501, 1719, 602, 1568, 186, 514, 1511, 150, 1513, 1, 1501, 107, 1923, 1308, 1312, -459, 1569, 186, 604, 865, 420, 605, 1813, 1758, 1880, 866, 29, 30, 105, 1814, 1675, 33, 1759, 1679, 124, 947, 941, 685, 39, 941, 1566, 1374, 1378, 983, 181, 1530, 1534, 183, 1758, 984, 1208, 704, 147, 148, 717, 1784, 2044, 1768, 544, 547, 726, 753, 44, 45, 816, 501, 501, 745, 144, 472, 472, 1, 145, 472, 472, 472, 1208, 150, 2060, 1208, 124, 124, 162, 2089, 817, 818, 1555, 2090, 1252, 496, 124, 2091, 124, 213, 556, 137, 147, 148, 839, 1978, 1993, 150, 534, 93, 839, 727, 1426, 150, 391, 619, 839, 682, 984, 150, 682, 906, 839, 135, 150, 258, 1040, 2024, 2132, 1, 1645, 107, 2090, 730, 1650, 1699, 2133, 1652, 150, 1654, 27, 731, 1699, 655, 732, 1429, 655, 2145, 630, 33, 677, 984, 1684, 733, 538, 1133, 1081, 1140, 682, 1087, 734, 1093, 135, 1098, 1571, 1685, 1625, 1100, 158, 701, 159, 1786, 682, 682, 682, 682, 588, 866, 1820, 1638, 44, 45, 135, 1788, 655, 1279, 738, 580, 2067, 984, 2068, 1789, 1101, 188, 1634, 147, 148, 984, 655, 655, 655, 655, 1483, 93, 757, 823, 824, 1893, 705, 1102, 293, 93, 500, 866, 1, 2151, 472, 472, 124, 2090, 124, 2047, 580, 2152, -626, 2168, -626, 1472, 497, 2090, 839, 580, 150, 2169, 1, 791, 792, 839, 580, 1103, 1104, 418, 213, 745, -625, 580, -625, 147, 148, 707, 1558, 183, -872, 760, -872, -872, 474, 474, 707, 2029, 1695, 695, 799, 800, 707, 1970, 1498, 1695, 1291, 1293, 801, 866, 988, 988, 988, 988, 150, 819, 820, 2096, 1505, 2098, 474, 474, -901, 1506, 401, 821, 822, 1583, 1507, 186, 186, 1584, 1669, 1508, 580, 1981, 1355, 1357, 802, 1994, 1720, 866, 474, 474, 29, 30, 804, 474, 474, 33, 580, 474, 474, 825, 826, 549, 39, 550, -872, 902, 917, 918, 908, 941, 941, 2036, 2041, 1834, 1838, -872, 1100, 866, 866, 1100, 1646, 1647, 1648, 803, 2059, 1850, 44, 45, 919, 2127, 866, 2129, 920, 2131, 921, 553, 474, 550, 474, 53, -872, 1101, -901, -901, 1101, 678, 678, -901, 1573, 1727, -872, 1, 137, 1728, -901, 1, 2107, 678, 1102, -216, 1820, 1102, 866, -216, 808, 391, 922, 831, -872, -872, -872, 2154, 2155, 1739, 2157, 188, 832, 1728, -901, -901, 1299, 1301, 1042, 1303, 1, 698, 1827, 293, 1103, 1104, 2165, 1103, 1104, 1876, -901, -901, -901, 1877, 33, 1611, 2105, 1114, 1029, 550, 2106, 1031, 829, 2176, 1363, 1365, 1367, 1369, 2148, 1746, 1747, 2150, 2090, 1750, 150, 2090, 830, 2166, 839, 839, 1566, 2090, 1457, 1459, 695, 44, 45, 1, 2167, 836, 150, -913, 2090, 1751, 1423, 1513, 844, 1105, 418, 507, 859, 899, 845, 520, 1761, 258, 124, 420, 420, 1638, 2172, 856, 2, 124, 2090, 860, 827, 828, 1770, 150, 124, 1814, 760, 1020, 1157, 147, 148, -216, 2142, 147, 148, -216, 867, -216, 2179, 760, 1427, -216, 2090, 760, 857, 124, 1189, 1777, 143, 1019, 124, 1687, 1022, 124, 1295, 1297, 150, 1271, 887, 1, 1025, 1458, 1460, 29, 30, 418, 258, 1, 33, -913, -913, 472, 472, 1707, -913, 39, 839, 839, 839, 839, 1278, -913, 1, 885, 1359, 1361, 909, 1338, 422, 1, 677, 677, 677, 677, 1343, 916, 1, 1, 926, 44, 45, 1673, 1520, 1994, 1521, -913, -913, 1292, 1294, 966, 760, 420, 1620, 973, 455, 1296, 1298, 455, 1195, 1197, 1198, -913, 2, -913, 2006, 472, 472, 1518, 124, 1519, 455, 122, 455, 760, 455, 1863, 124, 1356, 1358, -882, -882, 682, 682, 974, -882, 1360, 1362, 576, 1033, 1035, 1, -882, 1802, 682, 1805, 1803, 678, 1806, -216, 975, 1171, 1173, 1172, 1174, 976, 1988, 1036, 655, 655, 29, 30, 1905, 295, 298, 33, -882, -882, 1133, 979, 655, 1133, 39, 1037, 1133, 1906, 1038, 1574, 1625, 1411, 1412, 1044, 1133, 1577, 707, 1133, 760, 1045, 201, 1578, 1077, 1113, 1083, 1089, 1095, 1579, 44, 45, 1112, 1115, 1860, 1192, 1119, 540, 1120, 1121, 52, 695, 1255, 571, 1153, 1139, 1150, 1141, 1151, 401, 1874, 514, 1142, 1154, 572, 753, 753, 753, 753, 753, 753, 753, 753, 1155, 1982, 1156, 1985, 1201, 1930, 1973, 474, 474, 588, 1650, 1013, 1190, 1654, 989, 990, 991, 992, 1214, 1267, 1413, 418, 1414, 213, 1415, 393, 418, 1996, 1018, 1998, 147, 148, -216, 1032, 1034, 1416, 1417, 1418, -216, 1430, 760, 1431, 1447, 1020, 1249, 1455, 1924, 1925, 29, 30, 1928, 1456, 1474, 33, 1494, 2084, -734, 2087, 1, -737, 39, 1559, 1560, 1561, 1562, 1581, 1563, 794, 1582, 1564, 474, 1586, 1587, 1613, 1596, 1597, 1612, 1025, 1614, 1616, 1783, 1621, 1404, 2, 44, 45, 753, 678, 1025, 678, 1629, 418, 122, 1630, 1631, 124, 124, 1659, 124, 1635, -1019, 541, -1019, 1655, 426, 1676, 400, 1688, 1677, 1828, 150, 1690, 1215, 1692, 1693, 2143, 1703, 1735, 698, 1704, 1705, 420, 1711, 472, 2123, 472, 1715, 1716, 839, 580, 29, 30, 1076, 1708, 1983, 33, 1986, 1717, 422, 1722, 474, 474, 39, 1729, 474, 474, 474, 1738, 1743, 472, 1745, 472, 124, 1767, 682, 1771, 678, 1785, 1790, 695, 1997, 1799, 1999, 1821, -740, 1822, 44, 45, 2144, 1823, 1830, 1824, 1825, 1826, 1133, 1133, 1133, 1133, 1516, 571, 655, 1851, 1852, 1857, 1133, 1133, 1861, 1133, 1875, 1133, 572, 1878, 1879, 1213, 1882, 2065, 1889, 1884, 1886, 1888, 1890, 1133, 1892, 1, 455, 455, 29, 30, 1897, 1898, 1153, 33, 1899, 1638, 1900, 1901, 961, 1912, 39, 1192, 1913, 1968, 1916, 2022, 1917, 2022, 1013, 1922, 2, 580, 455, 455, -231, 1013, -882, -882, 1013, 122, 1972, -882, 695, 1975, 44, 45, 1979, 418, -882, 556, 1976, 1980, 1984, 2008, 455, 455, 2035, -1039, -1039, 455, 455, 2023, -1039, 455, 455, 1987, 1989, 2028, 2037, 2038, 1025, 2039, -882, -882, 2072, 29, 30, 29, 30, 2054, 33, 2040, 33, 474, 474, 2042, 2043, 39, 2048, 39, 695, 1908, 760, 1911, 2049, 2050, 2051, 2055, 2056, 2057, 677, 2058, 455, 677, 455, 2073, 2097, 1919, 1921, 2104, 2110, 44, 45, 44, 45, 2113, 2108, 472, 472, 472, 472, 472, 839, 52, 839, 682, 53, 682, 1514, 2109, 2066, 472, 472, 472, 472, 936, 420, 2111, 2119, 2112, 420, 677, 1133, 2137, 2138, 2125, 2124, 2130, 1025, 2149, 2141, 655, 1, 655, 2088, 677, 677, 677, 677, -958, 2153, 2156, 2162, 1153, 1638, 2163, 745, 19, 20, 2164, 2173, 2174, 58, 2177, 2175, 957, 2178, 2, 1657, 2022, 1658, 2022, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 2180, 2158, 682, 1797, 958, 29, 30, 959, 472, 472, 33, 420, 960, 1464, 963, 1133, 1133, 39, 1509, 1133, 1419, 1133, 115, 690, 1133, 1342, 29, 30, 655, 420, 691, 33, 29, 30, 29, 30, 1499, 33, 39, 33, 58, 44, 45, 1638, 39, 1153, 39, 152, 1775, 1153, 894, 52, 2022, 2022, 1240, 2022, 886, 2022, 580, 1991, 623, 1133, 44, 45, 58, 728, 2126, 58, 44, 45, 44, 45, 52, 259, 58, 1215, 1656, 294, 1022, 283, 671, 58, 58, 285, 1153, 1638, 2147, 287, 568, 1133, 297, 1013, 1013, 1013, 58, 2022, 2022, 387, 2022, 1967, 779, 1153, 0, 0, 0, 0, 0, 0, 0, 58, 400, 0, 0, 0, 2022, 0, 0, 412, 1300, 1302, 2046, 1304, 412, 259, 0, 412, 0, 0, 0, 2053, 0, 2022, 0, 0, 0, 259, 0, 58, 412, 259, 412, 0, 412, 0, 0, 0, 1364, 1366, 1368, 1370, 0, 0, 0, 0, 705, 705, 0, 705, 705, 0, 0, 0, 705, 705, 705, 705, 0, 725, 259, 259, 0, 0, 0, 729, 0, 0, 0, 745, 0, 0, 0, 412, 0, 0, 0, 0, 2062, 2064, 0, 422, 422, 0, 0, 0, 0, 563, 0, 19, 20, 1013, 19, 20, 474, 474, 58, 420, 0, 0, 0, 0, 420, 0, -458, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 0, 29, 30, 0, 29, 30, 33, 928, 931, 33, 0, 0, 0, 39, 0, 0, 39, 627, 631, 848, 0, 852, 0, 259, 0, 0, 259, 259, 651, 0, 474, 474, 0, 928, 931, 0, 58, 44, 45, 0, 44, 45, 0, 0, 0, 0, 58, 259, 58, 420, 1148, 0, 0, 1619, 0, 928, 931, 29, 30, 0, 928, 931, 33, 422, 928, 931, 259, 0, 0, 39, 0, 0, 259, 0, 0, 705, 705, 705, 705, 705, 705, 705, 705, 412, 0, 0, 0, 0, 0, 0, 420, 0, 0, 44, 45, 1807, 455, 0, 1192, 0, 0, -458, -458, 52, 0, 0, 868, 0, 0, 0, 0, -458, 0, 55, 0, 0, 0, 572, 1013, 1013, -458, -458, -458, -458, -458, 1013, 1013, 0, 0, 1013, 1013, 0, 0, 0, 0, 0, 0, 0, 1656, 0, 58, 1022, 0, 0, 0, 412, 0, 412, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 39, 677, 677, 0, 0, 455, 455, 0, 705, 455, 455, 455, 0, 677, 0, 0, 58, 0, 412, 58, 0, 0, 259, 58, 44, 45, 0, 0, 888, 929, 932, 0, 58, 259, 0, 58, 172, 0, 406, 1066, 0, 0, 420, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 55, 55, 929, 932, 0, 0, 0, 0, 0, 0, 412, 412, 0, 0, 0, 58, 58, 0, 0, 1, 0, 0, 412, 0, 929, 932, 0, 967, 0, 929, 932, 0, 259, 929, 932, 0, 412, 412, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1117, 0, 0, 0, 0, 474, 122, 474, 58, 0, 0, 412, 412, 0, 0, 0, 412, 412, 0, 0, 412, 412, 0, 0, 0, 0, 627, 0, 651, 627, 0, 474, 0, 474, 0, 259, 0, 0, 259, 0, 0, 0, 0, 0, 29, 30, 455, 455, 0, 33, 422, 0, 0, 0, 58, 0, 39, 0, 0, 412, 0, 412, 0, 0, 58, 412, 0, 0, 0, 0, 29, 30, 1013, 0, 0, 33, 574, 0, 0, 0, 44, 45, 39, 0, 58, 0, 0, 58, 0, 58, 52, 58, 0, 53, 1470, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 44, 45, 1936, 1940, 0, 1946, 1950, 0, 0, 0, 1954, 1958, 1962, 1966, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 172, 0, 33, 0, 0, 0, 0, 0, 0, 39, 172, 0, 55, 0, 0, 0, 0, 0, 677, 0, 627, 631, 1177, 1181, 0, 0, 1656, 1022, 0, 651, 651, 651, 651, 44, 45, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 861, 0, 0, 627, 0, 0, 0, 0, 1013, 1013, 259, 259, 259, 0, 0, 58, 474, 474, 474, 474, 474, 412, 19, 20, 1, 0, 0, 0, 0, 259, 474, 474, 474, 474, 29, 30, 259, 259, 412, 33, 259, 259, 0, 0, 0, 0, 39, 412, 0, 2, 58, 0, 29, 30, 0, 0, 0, 33, 122, 58, 0, 0, 651, 0, 39, 0, 0, 0, 0, 651, 44, 45, 651, 0, 707, 707, 707, 707, 707, 707, 707, 707, 422, 0, 862, 0, 422, 0, 44, 45, 0, 0, 0, 0, 574, 0, 29, 30, 52, 474, 474, 33, 0, 0, -458, -458, 0, 0, 39, 0, 0, 0, 0, 0, -458, 0, 0, 0, 0, -458, -458, -458, 1471, -458, -458, -458, -458, -458, 1, 0, 0, 0, 44, 45, 0, 0, 0, 0, 0, 0, 677, 0, 677, 928, 931, 53, 574, 928, 931, 422, 0, 0, 58, 2, 0, 58, 58, 58, 0, 0, 0, 1497, 194, 195, 196, 0, 0, 422, 707, 0, 0, 0, 0, 0, 628, 632, 455, 455, 412, 412, 58, 0, 0, 0, 0, 0, 574, 58, 0, 0, 1, 1013, 1013, 0, 0, 259, 58, 0, 0, 0, 29, 30, 0, 58, 0, 33, 259, 0, 412, 677, 58, 0, 39, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 455, 455, 0, 0, 0, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, 58, 0, 67, 0, 0, 0, 1572, 0, 58, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 39, 0, 0, 58, 412, 0, 0, 0, 0, 0, 0, 58, 58, 0, 0, 0, 412, 0, 0, 0, 0, 0, 58, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 1610, 53, 0, 0, 0, 0, 0, 651, 259, 651, 0, 0, 0, 0, 0, 259, 929, 932, 0, 0, 929, 932, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 422, 0, 0, 0, 0, 422, 67, 0, 0, 0, 0, 0, 0, 67, 67, 0, 0, 412, 412, 0, 0, 412, 412, 412, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, 1204, 0, 0, 0, 58, 412, 0, 0, 0, 58, 0, 0, 0, 0, 0, 58, 0, 0, 487, 0, 0, 58, 1686, 0, 0, 0, 1204, 58, 0, 1204, 487, 0, 0, 422, 487, 0, 0, 0, 0, 1594, 0, 0, 1600, 0, 1706, 651, 0, 0, 651, 0, 0, 651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, 628, 0, 0, 0, 0, 0, 0, 422, 0, 89, 0, 0, 0, 1641, 0, 0, 0, 0, 0, 455, 0, 455, 651, 0, 0, 0, 0, 1177, 1181, 1177, 1181, 0, 0, 0, 0, 0, 651, 651, 651, 651, 456, 0, 0, 456, 0, 455, 0, 455, 378, 0, 627, 0, 627, 0, 412, 412, 456, 0, 456, 259, 456, 259, 132, 0, 574, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 58, 0, 0, 259, 412, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 165, 184, 198, 0, 0, 0, 259, 574, 67, 236, 67, 89, 0, 259, 0, 0, 574, 0, 89, 89, 0, 0, 0, 574, 0, 0, 0, 0, 422, 0, 574, 259, 651, 628, 632, 1178, 1182, 0, 259, 651, 0, 0, 259, 651, 558, 0, 0, 0, 0, 198, 405, 407, 409, 410, 0, 0, 928, 931, 0, 478, 0, 0, 478, 628, 0, 0, 0, 0, 0, 977, 0, -641, 0, 0, 0, 478, 0, 478, 0, 478, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -641, 574, 0, 0, 0, 0, 539, 407, 409, -641, -641, -641, 0, 0, 928, 931, 0, 0, 0, 0, 0, 0, 0, 455, 455, 455, 455, 455, 0, 0, 0, 0, 0, 87, 1782, 0, 0, 455, 455, 455, 455, 0, 0, 0, 569, 584, 0, -641, -641, 487, 0, 0, -641, 0, 0, 0, 0, 0, 0, -641, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, -641, -641, 0, 87, 0, 58, 58, 621, 0, 0, -641, 0, 0, -641, 0, 0, 978, 0, 976, -641, 184, 412, 0, 455, 455, 412, 0, 0, 0, 487, 696, 0, 89, 0, 87, 87, 0, 0, 0, 0, 0, 0, 87, 0, 87, 0, 0, 0, 0, 0, 0, 87, 87, 0, 0, 558, 0, 558, 0, 0, 929, 932, 0, 0, 0, 0, 0, 651, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 0, 0, 0, 0, 412, 0, 0, 0, 0, 0, 412, 412, 0, 456, 456, 58, 58, 58, 58, 0, 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, 929, 932, 0, 0, 0, 0, 0, 0, 0, 456, 456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 405, 407, 409, 0, 0, 0, 0, 0, 456, 456, 0, 412, 412, 456, 456, 0, 0, 456, 456, 1668, 0, 0, 0, 1907, 869, 1910, 1670, 0, 0, 0, 0, 478, 0, 58, 664, 0, 0, 0, 0, 1918, 1920, 0, 132, 0, 1835, 1839, 87, 259, 651, 87, 0, 0, 0, 651, 651, 0, 456, 1594, 456, 0, 1600, 0, 1012, 0, 0, 0, 651, 0, 1641, 651, 0, 478, 478, 0, 0, 0, 943, 651, 0, 0, 954, 0, 87, 478, 0, 0, 0, 0, 0, 0, 0, 77, 165, 0, 0, 87, 0, 478, 478, 558, 0, 0, 0, 67, 0, 87, 0, 87, 0, 0, 0, 0, 58, 0, 0, 0, 869, 0, 0, 478, 478, 0, 0, 0, 478, 478, 0, 0, 478, 478, 0, 378, 198, 198, 198, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 412, 0, 58, 0, 0, 412, 198, 198, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 1595, 0, 0, 1601, 478, 58, 478, 0, 0, 1059, 0, 1068, 77, 0, 0, 83, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 409, 0, 0, 77, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1642, 900, 0, 0, 0, 0, 0, 0, 87, 0, 0, 412, 0, 0, 1178, 1182, 1178, 1182, 928, 931, 0, 928, 931, 0, 0, 0, 259, 651, 0, 0, 490, 0, 928, 931, 928, 931, 0, 628, 0, 628, 2045, 0, 490, 412, 0, 412, 490, 0, 58, 2052, 87, 0, 0, 378, 0, 0, 0, 378, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 412, 0, 412, 0, 1012, 0, 83, 83, 0, 0, 487, 1012, 0, 0, 1012, 0, 0, 0, 0, 574, 0, 487, 0, 0, 0, 1193, 1835, 1839, 0, 0, 0, 696, 928, 931, 378, 651, 651, 2061, 2063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 491, 0, 0, 0, 1223, 0, 0, 0, 1223, 0, 0, 0, 491, 378, 0, 0, 491, 0, 0, 0, 0, 378, 0, 87, 87, 87, 87, 869, 87, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 378, 87, 87, 87, 0, 0, 0, 412, 0, 412, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 87, 77, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 1135, 0, 0, 0, 0, 0, 0, 929, 932, 0, 929, 932, 0, 0, 0, 0, 0, 0, 0, 0, 0, 929, 932, 929, 932, 0, 0, 0, 0, 0, 0, 0, 664, 664, 664, 664, 0, 0, 0, 0, 0, 412, 412, 412, 412, 412, 58, 0, 58, 0, 0, 0, 0, 0, 0, 412, 412, 412, 412, 0, 0, 0, 83, 1012, 0, 558, 0, 0, 0, 0, 456, 1424, 83, 0, 83, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 165, 869, 1438, 0, 0, 929, 932, 0, 0, 1445, 348, 0, 869, 0, 1453, 0, 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 87, 419, 0, 0, 490, 0, 412, 412, 0, 0, 0, 0, 0, 0, 0, 490, 1012, 0, 1012, 0, 132, 0, 456, 456, 0, 0, 456, 456, 456, 1482, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478, 0, 419, 0, 490, 0, 0, 0, 0, 0, 407, 1791, 0, -630, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, 882, 0, 0, 0, 574, 0, 0, 943, 0, 0, -630, 882, 0, 0, 0, 0, 0, 0, 0, -630, -630, -630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1012, 0, 0, 1836, 1840, 0, 0, 0, 0, 478, 478, 558, 0, 478, 478, 478, 632, 0, 0, 632, 1556, 405, 0, 0, -630, -630, 0, 632, 0, -630, 882, 409, 0, 0, 0, 0, -630, 378, 378, 456, 456, 0, 0, 0, 419, 0, 0, 0, 710, 713, 715, 0, 0, 419, 0, 0, 0, 0, 0, 419, -630, -630, 0, 0, 0, 736, 0, 1484, 0, 87, -630, 0, 348, -630, 0, 0, 1792, 0, 976, -630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 87, 0, 0, 419, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1012, 0, 0, 378, 478, 478, 0, 1012, 77, 0, 0, 1012, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 869, 0, 0, 869, 0, 1682, 0, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 1223, 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, 87, 87, 0, 0, 664, 0, 0, 664, 0, 83, 0, 0, 0, 311, 0, 0, 1135, 0, 0, 312, 313, 314, 0, 0, 0, 0, 632, 632, 0, 0, 0, 0, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 664, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 664, 664, 664, 664, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 0, 0, 1168, 0, 0, 0, 419, 331, 332, 1731, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 348, 490, 0, 0, 0, 0, 456, 456, 0, 0, 0, 0, 0, 0, 0, 0, 1012, 0, 0, 0, 87, 0, 87, 0, 0, 0, 558, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1763, 378, 0, 0, 456, 456, 1012, 405, 1012, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 882, 0, 0, 0, 1012, 0, 0, 0, 0, 0, 0, 882, 0, 0, 1776, 0, 584, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478, 478, 0, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, 348, 0, 0, 0, 1012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 419, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478, 478, 0, 405, 0, 348, 0, 0, 0, 0, 0, 419, 419, 419, 419, 419, 419, 419, 0, 0, 419, 419, 584, 419, 419, 419, 419, 419, 419, 419, 419, 0, 348, 0, 0, 0, 0, 0, 0, 0, 348, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 0, 348, 0, 0, 0, 558, 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, 0, 558, 558, 0, 0, 0, 0, 0, 378, 0, 0, 0, 419, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 456, 0, 456, 1894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 127, 0, 0, 0, 0, 0, 1012, 235, 0, 0, 0, 456, 0, 456, 0, 0, 0, 0, 0, 419, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 0, 0, 419, 0, 0, 0, 0, 0, 421, 0, 0, 419, 664, 664, 0, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 1135, 664, 87, 0, 664, 0, 0, 0, 0, 0, 0, 0, 664, 0, 0, 1135, 0, 419, 0, 419, 0, 0, 0, 478, 0, 478, 0, 537, 869, 0, 0, 0, 0, 0, 0, 0, 0, 378, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 478, 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 409, 0, 0, 783, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 601, 0, 0, 603, 0, 0, 558, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 456, 456, 456, 456, 456, 0, 0, 127, 0, 0, 0, 0, 0, 0, 456, 456, 456, 456, 0, 0, 182, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 711, 714, 716, 0, 0, 421, 0, 348, 348, 0, 0, 421, 0, 0, 0, 0, 0, 737, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 456, 456, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478, 478, 478, 478, 478, 306, 0, 1, 307, 107, 0, 419, 0, 419, 478, 478, 478, 478, 1135, 1135, 1135, 1135, 0, 421, 1135, 421, 127, 0, 664, 664, 0, 1135, 2, 1135, 0, 419, 378, 0, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 0, 0, 87, 0, 0, 419, 0, 378, 0, 419, 421, 0, 348, 0, 0, 0, 419, 0, 0, 0, 419, 127, 0, 311, 0, 0, 0, 0, 0, 312, 313, 0, 0, 0, 0, 0, 478, 478, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 378, 235, 318, 319, 320, 321, 322, 323, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 0, 0, 0, 363, 331, 332, 0, 0, 0, 1145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 754, 0, 0, 127, 127, 127, 127, 0, 1017, 0, 0, 603, 421, 0, 0, 0, 0, 782, 0, 0, 0, 0, 127, 127, 127, 0, 0, 0, 0, 1135, 0, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 1135, 0, 0, 127, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1135, 1135, 0, 0, 1135, 0, 1135, 0, 0, 1135, 0, 0, 0, 1135, 0, 0, 421, 1274, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 1135, 0, 0, 658, 1306, 1310, 1314, 1318, 1322, 0, 0, 1331, 0, 0, 419, 0, 348, 1274, 0, 0, 0, 419, 0, 419, 0, 0, 0, 0, 1135, 235, 0, 0, 1372, 1376, 1380, 1384, 1388, 0, 0, 1331, 419, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 366, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 419, 421, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 421, 421, 421, 421, 421, 421, 421, 0, 0, 421, 421, 0, 421, 421, 421, 421, 421, 421, 421, 421, 0, 366, 0, 0, 0, 0, 0, 0, 0, 366, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 1144, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 419, 419, 419, 0, 0, 0, 0, 0, 0, 421, 421, 348, 0, 0, 0, 0, 419, 419, 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 419, 419, 0, 419, 419, 0, 0, 0, 419, 419, 419, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 127, 0, 0, 1024, 421, 0, 421, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 601, 0, 603, 127, 0, 0, 0, 0, 0, 0, 754, 0, 0, 0, 0, 0, 0, 419, 0, 421, 0, 0, 0, 0, 1282, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1305, 1309, 1313, 1317, 1321, 0, 1109, 1330, 1336, 1617, 0, 0, 0, 754, 0, 421, 1347, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1371, 1375, 1379, 1383, 1387, 0, 0, 1330, 1400, 1644, 0, 0, 658, 0, 0, 0, 1651, 0, 0, 0, 0, 0, 0, 0, 0, 348, 348, 0, 419, 419, 419, 419, 419, 419, 419, 419, 127, 127, 0, 0, 0, 0, 0, 0, 658, 658, 658, 658, 0, 0, 1331, 0, 1331, 0, 0, 421, 0, 0, 0, 419, 419, 0, 0, 0, 0, 402, 0, 0, 0, 419, 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, 421, 0, 0, 0, 0, 0, 0, 0, 0, 1241, 0, 421, 0, 1245, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 419, 0, 0, 0, 419, 419, 0, 0, 0, 0, 366, 366, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1283, 0, 582, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 601, 0, 603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1337, 0, 0, 0, 2, 756, 0, 0, 1348, 0, 0, 0, 0, 0, 0, 421, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 311, 693, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 421, 0, 348, 0, 421, 315, 316, 366, 0, 0, 0, 421, 0, 0, 0, 421, 0, 0, 0, 317, 348, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 473, 0, 0, 473, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 0, 473, 1736, 473, 0, 473, 1737, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, 348, 0, 0, 0, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 858, 1282, 0, 0, 0, 0, 863, 0, 1347, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1330, 0, 1330, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 1024, 315, 316, 39, 656, 0, 0, 0, 0, 0, 940, 0, 421, 0, 0, 317, 421, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 0, 0, 0, 0, 127, 0, 326, 327, 895, 1723, 0, 896, 739, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 1016, 0, 0, 1021, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 658, 0, 0, 658, 421, 0, 366, 0, 0, 0, 0, 421, 658, 421, 0, 582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 0, 421, 0, 0, 0, 1636, 1637, 0, 0, 0, 0, 0, 658, 0, 1283, 127, 0, 0, 1649, 0, 0, 1348, 0, 1653, 0, 0, 658, 658, 658, 658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 1929, 0, 0, 0, 0, 1932, 1934, 1938, 1942, 1944, 1948, 0, 0, 0, 1952, 1956, 1960, 1964, 0, 473, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 473, 0, 0, 0, 0, 693, 0, 0, 0, 0, 0, 693, 1724, 0, 0, 0, 0, 0, 0, 0, 0, 473, 473, 0, 0, 0, 473, 473, 0, 0, 473, 473, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 421, 421, 421, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 421, 421, 0, 473, 0, 473, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 421, 421, 0, 421, 421, 0, 0, 0, 421, 421, 421, 421, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 656, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 0, 0, 0, 0, 127, 656, 656, 656, 656, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 693, 0, 0, 0, 0, 0, 0, 1444, 326, 327, 328, 0, 0, 329, 1167, 330, 0, 0, 1168, 0, 0, 0, 0, 331, 332, 1741, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, 366, 0, 421, 421, 421, 421, 421, 421, 421, 421, 0, 0, 0, 0, 0, 1480, 1010, 0, 0, 0, 582, 0, 0, 1010, 0, 0, 1010, 1024, 0, 0, 0, 0, 0, 421, 421, 0, 940, 0, 0, 0, 1723, 0, 0, 421, 0, 1931, 1933, 1937, 1941, 1943, 1947, 0, 0, 0, 1951, 1955, 1959, 1963, 1024, 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, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 421, 421, 0, 0, 0, 0, 0, 0, 0, 658, 658, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 658, 658, 0, 0, 658, 0, 0, 0, 0, 0, 402, 0, 658, 0, 0, 658, 0, 0, 0, 582, 0, 582, 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, 473, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1933, 1937, 1943, 1947, 1951, 1955, 1959, 1963, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 366, 0, 0, 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1926, 0, 2, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1724, 0, 0, 473, 0, 1649, 0, 0, 1653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 693, 0, 693, 0, 0, 0, 311, 0, 0, 1010, 0, 1010, 312, 313, 314, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 1024, 473, 473, 0, 0, 473, 473, 473, 326, 327, 328, 1024, 0, 329, 1167, 330, 0, 0, 1736, 0, 0, 0, 1744, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 658, 658, 658, 658, 0, 0, 658, 0, 0, 0, 658, 658, 0, 658, 0, 658, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 658, 656, 0, 0, 656, 0, 0, 0, 0, 0, 2030, 2031, 0, 656, 1124, 1125, 1126, 636, 1127, 1128, 1129, 1130, 641, 642, 1131, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 33, 656, 0, 0, 0, 315, 316, 1132, 0, 646, 647, 648, 0, 0, 0, 656, 656, 656, 656, 317, 0, 224, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 473, 473, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, -453, 330, 649, 0, -453, 0, 258, 0, 650, 331, 332, 75, 333, 334, 335, 336, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1024, 0, 0, 0, 0, 0, 693, 0, 0, 515, 0, 0, 0, 1766, 0, 0, 658, 0, 0, 0, 0, 1010, 0, 0, 0, 658, 118, 658, 1010, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 1444, 0, 582, 0, 0, 1779, 0, 0, 1021, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 265, 75, 0, 0, 0, 0, 0, 0, 75, 75, 0, 1024, 0, 0, 658, 658, 0, 0, 658, 0, 658, 0, 0, 658, 0, 0, 389, 658, 0, 0, 0, 0, 0, 0, 2128, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 488, 0, 1024, 0, 0, 0, 0, 858, 0, 0, 658, 0, 488, 2, 0, 582, 488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 265, 265, 0, 0, 0, 0, 311, 0, 2171, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 1633, 0, 1168, 0, 0, 0, 1010, 331, 332, 840, 333, 334, 335, 336, 618, 0, 0, 265, 265, 265, 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 473, 473, 0, 0, 180, 265, 75, 0, 0, 0, 0, 0, 0, 0, 0, 875, 515, 0, 0, 1010, 884, 1010, 0, 0, 721, 0, 0, 0, 0, 891, 721, 0, 898, 0, 0, 0, 0, 0, 0, 0, 0, 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 949, 693, 693, 0, 1974, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 656, 656, 0, 0, 0, 0, 0, 0, 0, 0, 656, 0, 656, 656, 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, 656, 0, 0, 656, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, 0, 0, 880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 880, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 224, 0, 0, 224, 0, 224, 579, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, 121, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 0, 0, 0, 0, 0, 0, 265, 0, 0, 265, 0, 0, 0, 0, 0, 185, 133, 0, 0, 0, 233, 0, 0, 0, 0, 92, 1010, 0, 0, 0, 0, 0, 92, 92, 0, 0, 0, 0, 0, 0, 0, 0, 473, 0, 473, 0, 0, 0, 0, 0, 390, 0, 0, 0, 0, 0, 0, 0, 0, 663, 0, 0, 0, 399, 0, 0, 0, 0, 473, 0, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 656, 656, 656, 656, 0, 0, 656, 0, 0, 0, 656, 656, 0, 656, 0, 656, 1149, 0, 0, 0, 0, 742, 536, 0, 0, 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 265, 265, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 265, 265, 265, 0, 0, 180, 0, 0, 0, 0, 0, 1207, 0, 0, 0, 0, 0, 0, 0, 265, 0, 0, 0, 840, 840, 840, 1220, 1230, 744, 0, 1220, 1230, 0, 0, 0, 0, 0, 1207, 133, 0, 1207, 0, 0, 0, 0, 0, 423, 423, 224, 1251, 0, 185, 265, 0, 0, 0, 0, 0, 0, 265, 0, 697, 265, 92, 742, 0, 1136, 0, 0, 0, 0, 0, 473, 473, 473, 473, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 473, 473, 473, 0, 0, 0, 0, 0, 0, 0, 656, 0, 0, 1175, 1179, 0, 0, 0, 0, 656, 0, 656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 515, 515, 473, 473, 0, 0, 0, 0, 0, 656, 656, 515, 0, 656, 0, 656, 0, 0, 656, 0, 0, 0, 656, 0, 579, 0, 0, 0, 0, 0, 0, 0, 1435, 579, 0, 0, 0, 0, 0, 870, 579, 0, 0, 1435, 118, 744, 0, 579, 0, 0, 0, 0, 0, 0, 0, 656, 0, 133, 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, 656, 0, 0, 0, 0, 0, 0, 0, 944, 0, 0, 952, 0, 0, 0, 579, 224, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 1576, 0, 0, 1147, 579, 0, 1576, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 1165, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 663, 663, 663, 663, 0, 0, 0, 133, 133, 133, 133, 0, 0, 0, 265, 265, 265, 0, 0, 0, 0, 0, 618, 0, 0, 0, 133, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 742, 0, 0, 742, 0, 0, 626, 0, 1060, 0, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1071, 0, 0, 0, 0, 742, 0, 0, 0, 0, 0, 1165, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 552, 1281, 0, 0, 423, 224, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 265, 0, 33, 265, 0, 0, 265, 0, 251, 39, 252, 0, 0, 0, 1334, 0, 0, 0, 0, 1149, 0, 0, 1346, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 1398, 0, 265, 0, 0, 0, 0, 0, 1191, 0, 0, 258, 0, 0, 0, 697, 265, 265, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1225, 0, 0, 265, 1225, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1672, 0, 0, 618, 870, 0, 0, 742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1698, 0, 0, 0, 0, 0, 0, 1698, 0, 1592, 0, 0, 1598, 0, 0, 0, 0, 0, 0, 0, 0, 1615, 0, 0, 0, 265, 265, 0, 0, 0, 0, 0, 265, 265, 0, 0, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1639, 0, 0, 0, 0, 0, 840, 840, 0, 0, 0, 0, 0, 0, 1175, 1179, 1175, 1179, 0, 0, 0, 0, 423, 0, 0, 0, 423, 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, 870, 1425, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 870, 1439, 0, 0, 0, 0, 0, 0, 1446, 0, 0, 870, 121, 133, 0, 0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, 1795, 423, 1795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 1479, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 944, 0, 0, 0, 0, 663, 0, 0, 663, 1603, 1605, 0, 1608, 0, 0, 0, 0, 0, 264, 0, 1618, 0, 0, 0, 0, 0, 0, 0, 1627, 0, 0, 0, 0, 0, 0, 1165, 0, 0, 0, 0, 0, 265, 0, 0, 579, 0, 663, 0, 944, 0, 0, 0, 0, 1165, 0, 0, 0, 0, 1165, 0, 663, 663, 663, 663, 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, 1662, 0, 1666, 0, 0, 1557, 0, 0, 0, 0, 0, 0, 515, 0, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, 0, 224, 0, 0, 423, 0, 0, 0, 0, 579, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 0, 0, 265, 265, 0, 0, 0, 0, 265, 265, 0, 0, 0, 1165, 0, 0, 0, 0, 0, 0, 0, 265, 0, 0, 265, 0, 0, 0, 0, 0, 0, 0, 265, 0, 0, 0, 0, 0, 617, 0, 0, 264, 264, 264, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1165, 0, 0, 720, 0, 0, 0, 0, 0, 720, 0, 870, 0, 0, 870, 0, 1225, 0, 0, 0, 743, 0, 0, 0, 1689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 0, 0, 1225, 0, 0, 0, 744, 0, 0, 0, 0, 0, 1165, 0, 557, 0, 0, 1833, 1837, 0, 0, 0, 0, 0, 0, 0, 0, 1846, 0, 1849, 1592, 0, 0, 1598, 0, 0, 0, 0, 0, 0, 0, 1639, 0, 0, 1862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 265, 265, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 579, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 557, 578, 0, 0, 0, 250, 557, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 265, 265, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 423, 0, 423, 0, 0, 253, 0, 578, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 52, 1755, 264, 868, 0, 0, 0, 0, 0, 264, 1432, 0, 264, 0, 572, 1762, 0, 0, 0, 557, 0, 557, 1765, 0, 744, 0, 0, 663, 663, 0, 399, 0, 0, 1165, 0, 1165, 0, 0, 1165, 663, 0, 0, 0, 0, 1853, 1856, 0, 1858, 0, 0, 0, 1446, 0, 586, 0, 0, 0, 1165, 0, 1869, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2001, 2002, 2003, 2004, 0, 0, 2005, 0, 0, 0, 1833, 1837, 0, 1846, 1165, 1849, 0, 0, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 2014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1819, 0, 0, 0, 264, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 264, 264, 264, 267, 0, 0, 0, 0, 0, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 1219, 1229, 743, 0, 1219, 1229, 0, 0, 0, 557, 0, 1206, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 0, 1250, 0, 0, 264, 0, 0, 0, 0, 0, 0, 264, 0, 0, 264, 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2005, 0, 0, 0, 0, 0, 0, 0, 0, 2083, 0, 2086, 0, 0, 0, 0, 1895, 1165, 557, 0, 267, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 663, 1165, 0, 0, 0, 0, 0, 0, 1165, 0, 0, 0, 1858, 0, 2012, 0, 0, 0, 0, 0, 0, 581, 0, 2018, 0, 0, 0, 0, 0, 578, 2115, 2116, 0, 0, 2083, 0, 2086, 0, 0, 2120, 0, 0, 0, 2122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1425, 1199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 620, 742, 0, 267, 267, 267, 0, 578, 0, 1765, 2122, 0, 0, 0, 578, 0, 0, 0, 0, 743, 0, 578, 0, 0, 267, 0, 0, 0, 870, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 2160, 0, 0, 1011, 0, 723, 1011, 0, 0, 0, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1146, 0, 578, 0, 0, 0, 0, 0, 0, 2075, 2078, 0, 1165, 0, 1165, 0, 1164, 663, 1165, 663, 1169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1689, 264, 264, 264, 0, 0, 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 741, 0, 581, 741, 0, 0, 0, 0, 0, 1165, 0, 0, 1165, 0, 0, 0, 0, 1234, 0, 0, 663, 0, 0, 0, 0, 0, 741, 0, 0, 0, 0, 0, 1164, 1169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, 0, 1165, 0, 0, 1280, 0, 0, 0, 0, 0, 0, 1011, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 264, -873, 0, 264, -873, -873, -873, 581, -873, -873, 1332, 0, 0, 0, 0, 0, 0, 0, 1345, 0, 557, 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 0, 267, 0, 0, 267, 1396, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 1011, 0, 0, 264, 264, 264, 264, 0, 0, 0, 0, 0, 0, 0, -873, 0, 0, 0, 0, 0, -873, -873, -873, 0, 0, 0, 264, 0, 264, 0, 0, 0, 0, -873, 0, 0, 0, 0, 0, 0, 0, 0, 1671, 0, 0, 617, 0, -873, 741, 0, 0, -873, -873, -873, -873, -873, -873, -873, -873, 0, 0, 0, 0, 0, 0, 1697, 557, -873, -873, 0, 0, 0, 1697, 0, -873, -873, 0, -873, -873, -873, 0, 0, -873, -873, 0, -873, -873, -873, -873, 0, 264, 264, 0, 0, 0, 0, 0, 264, 264, 0, 0, 264, 264, 0, 0, 0, 1011, 0, 0, 0, 267, 267, 267, 267, 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, 267, 267, 0, 0, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 0, 1222, 1232, 746, 0, 1222, 1232, 0, 0, 0, 0, 0, 1209, 0, 0, 1209, 0, 0, 0, 0, 0, 0, 0, 0, 1253, 0, 0, 267, 0, 0, 0, 0, 0, 0, 267, 0, 0, 267, 0, 0, 0, 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1865, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 1011, 0, 0, 0, 0, 2, 0, 0, 0, 1602, 1604, 0, 1607, 0, 0, 0, 0, 581, 0, 0, 1146, 0, 0, 1169, 0, 0, 0, 0, 1626, 0, 0, 0, 0, 0, 0, 1164, 1169, 0, 0, 0, 123, 0, 264, 311, 0, 578, 0, 140, 0, 312, 313, 314, 581, 1164, 1169, 0, 0, 0, 1164, 0, 0, 581, 315, 316, 0, 0, 0, 0, 581, 0, 163, 173, 197, 746, 0, 581, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 1660, 0, 1664, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 1866, 0, 1168, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 123, 123, 0, 0, 1164, 0, 0, 581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 581, 0, 0, 578, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, 0, 0, 264, 264, 0, 0, 1164, 1169, 0, 123, 0, 0, 0, 0, 0, 264, 0, 0, 264, 267, 267, 267, 0, 0, 0, 0, 264, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 163, 575, 0, 557, 0, 0, 0, 0, 0, 0, 0, 1164, 0, 1169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1164, 1169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 1011, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 575, 743, 0, 0, 0, 0, 1164, 0, 1169, 0, 0, 267, 0, 0, 267, 0, 0, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, 0, 0, 267, 267, 267, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, 0, 267, 0, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 1674, 0, 0, 620, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 264, 264, 557, 0, 557, 0, 0, 0, 575, 0, 0, 0, 0, 0, 0, 267, 267, 0, 557, 557, 0, 0, 267, 267, 0, 0, 267, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 575, 0, 1935, 1939, 0, 1945, 1949, 0, 0, 1829, 1953, 1957, 1961, 1965, 0, 0, 163, 0, 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, 1164, 1169, 1164, 1169, 0, 1164, 1848, 0, 126, 0, 0, 1602, 1855, 1011, 1626, 0, 1169, 0, 0, 0, 0, 0, 0, 0, 1164, 1169, 1626, 123, 123, 123, 123, 0, 123, 0, 0, 123, 0, 0, 0, 126, 126, 0, 0, 0, 0, 0, 123, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1164, 0, 1169, 0, 1164, 0, 1169, 529, 0, 575, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 126, 126, 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, 1935, 1939, 1945, 1949, 1953, 1957, 1961, 1965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, 0, 267, 0, 557, 581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 1187, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 557, 557, 0, 0, 0, 0, 126, 0, 0, 1164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 1164, 694, 0, 0, 0, 1169, 0, 1164, 1848, 0, 1169, 1626, 0, 2011, 0, 2013, 581, 0, 0, 0, 0, 1169, 2017, 0, 0, 0, 0, 0, 0, 0, 267, 267, 0, 0, 0, 0, 267, 267, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 267, 0, 0, 267, 0, 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 741, 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, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 28, 0, 0, 0, 0, 583, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 163, 0, 575, 0, 0, 0, 0, 0, 0, 575, 0, 41, 0, 0, 575, 0, 0, 0, 126, 746, 0, 44, 45, 46, 47, 48, 49, 0, 2074, 2077, 0, 1164, 1169, 1164, 0, 0, 0, 1164, 1848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 123, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 575, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 267, 267, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1164, 1169, 0, 1164, 1848, 0, 0, 0, 2121, 581, 0, 0, 0, 262, 126, 126, 126, 126, 0, 126, 0, 0, 694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126, 126, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1164, 0, 0, 0, 0, 0, 0, 126, 0, 583, 0, 0, 0, 0, 0, 0, 486, 0, 267, 267, 0, 0, 583, 0, 0, 0, 0, 0, 486, 0, 0, 0, 486, 0, 0, 0, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 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, 694, 0, 0, 0, 0, 0, 694, 0, 0, 616, 0, 0, 262, 262, 262, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, 123, 0, 123, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 719, 0, 0, 0, 0, 0, 719, 0, 0, 0, 0, 0, 0, 0, 0, 1124, 1125, 1126, 636, 1127, 1128, 1129, 1130, 641, 642, 1131, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 315, 316, 1132, 0, 646, 647, 648, 0, 0, 263, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 0, 0, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 649, 0, 1168, 0, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 263, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 879, 263, 0, 0, 0, 263, 0, 0, 0, 0, 0, 879, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 126, 0, 0, 0, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 970, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 583, 0, 0, 577, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 0, 0, 0, 262, 123, 263, 262, 0, 263, 263, 263, 123, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 583, 0, 123, 0, 575, 0, 0, 123, 0, 0, 123, 263, 0, 0, 0, 0, 0, 263, 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, 126, 126, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, 583, 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, 123, 0, 0, 0, 0, 0, 0, 0, 123, 262, 262, 262, 262, 0, 0, 0, 0, 0, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 262, 262, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 262, 0, 0, 0, 0, 0, 0, 1218, 1228, 0, 0, 1218, 1228, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 694, 0, 694, 262, 0, 0, 262, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 577, 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, 123, 123, 0, 123, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 1434, 577, 0, 0, 0, 0, 0, 0, 577, 0, 0, 1434, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 268, 268, 268, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 263, 577, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 263, 263, 0, 583, 263, 263, 262, 262, 262, 0, 583, 0, 0, 0, 616, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 263, 0, 0, 263, 0, 583, 0, 583, 0, 0, 583, 0, 0, 583, 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, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 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, 262, 0, 0, 262, 0, 0, 262, 126, 0, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 262, 262, 262, 262, 0, 0, 268, 0, 0, 0, 0, 0, 0, 268, 0, 0, 268, 0, 0, 0, 0, 0, 0, 262, 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1696, 0, 0, 0, 0, 0, 0, 1696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 262, 0, 0, 0, 0, 0, 262, 262, 0, 0, 262, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 263, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 583, 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 268, 268, 0, 0, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 263, 0, 0, 263, 268, 306, 263, 1, 307, 107, 308, 268, 309, 310, 268, 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, 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, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 263, 0, 263, 0, 262, 0, 0, 577, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 263, 0, 0, 326, 327, 328, 0, 263, 329, 1167, 330, 1866, 0, 1168, 0, 0, 0, 268, 331, 332, 0, 333, 334, 335, 336, 263, 263, 0, 268, 0, 0, 0, 263, 263, 0, 0, 263, 263, 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, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 262, 0, 0, 0, 0, 262, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 268, 0, 0, 0, 2, 0, 268, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 315, 411, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 41, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 46, 47, 48, 49, 0, 0, 326, 327, 328, 0, 263, 329, 739, 330, 0, 0, 0, 268, 0, 0, 268, 331, 332, 268, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 262, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 262, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, 0, 0, 0, 0, 263, 263, 0, 0, 268, 0, 0, 0, 0, 0, 0, 268, 0, 263, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 268, 268, 0, 0, 0, 0, 0, 268, 268, 0, 0, 268, 268, 0, 0, 0, 762, 0, 0, 0, 0, 0, 763, 764, 765, -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, -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, 0, 0, -345, 0, 0, 0, 0, 0, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, -345, -345, -345, 766, 0, 0, -345, 1538, -345, -345, 0, 767, 263, 263, 768, 0, -345, -345, -345, 0, -345, -345, -345, -345, -345, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 263, -458, 0, 0, 0, 0, 0, -458, -458, -458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, -458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 0, 0, 0, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, -458, 0, -458, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 0, 0, 0, 0, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 268, 0, 0, 0, 0, 0, -345, 762, 268, -345, -345, -345, -345, 763, 764, 765, -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, -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, 766, -345, -345, -345, -345, -345, -345, -345, 767, -345, -345, 768, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 0, 0, 0, 0, 0, 0, -450, 1160, 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, -450, 0, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, 0, 0, -450, -450, 0, -450, 268, 268, -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, -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, 306, 0, 1, 307, 107, 308, -304, 309, 310, -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, -304, 0, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 0, 0, 311, -304, 0, -304, 0, 0, 312, 313, 314, -304, -304, 0, 0, -304, -304, -304, -304, -304, -304, 315, 316, -304, -304, -304, -304, -304, -304, -304, -304, -304, 0, -304, 0, 317, -304, -304, 0, 318, 319, 320, 321, 322, 323, 324, 325, -304, -304, -304, -304, -304, -304, -304, -304, 326, 327, 328, -304, -304, 329, 1248, 330, -304, -304, 1163, -304, -304, -304, -304, 331, 332, -304, 333, 334, 335, 336, -304, -304, -304, -304, -304, -305, 306, 0, 1, 307, 107, 308, -305, 309, 310, -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, -305, 0, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 0, 0, 311, -305, 0, -305, 0, 0, 312, 313, 314, -305, -305, 0, 0, -305, -305, -305, -305, -305, -305, 315, 316, -305, -305, -305, -305, -305, -305, -305, -305, -305, 0, -305, 0, 317, -305, -305, 0, 318, 319, 320, 321, 322, 323, 324, 325, -305, -305, -305, -305, -305, -305, -305, -305, 326, 327, 328, -305, -305, 329, 1167, 330, -305, -305, 1168, -305, -305, -305, -305, 331, 332, -305, 333, 334, 335, 336, -305, -305, -305, -305, -305, -565, 306, 0, 1, 307, 107, 308, -565, 309, 310, -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, -565, 0, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, -565, 0, 0, 311, -565, 0, -565, 0, 0, 312, 313, 314, -565, -565, 0, 0, -565, -565, -565, -565, -565, -565, 315, 316, -565, -565, -565, -565, -565, -565, -565, -565, -565, 0, -565, 0, 317, -565, -565, 0, 318, 319, 320, 321, 322, 323, 324, 325, -565, -565, -565, -565, -565, -565, -565, -565, 326, 327, 328, -565, -565, 329, -565, 330, -565, -565, -565, -565, 750, -565, 1329, 331, 332, -565, 333, 334, 335, 336, -565, -565, -565, -565, -565, -566, 306, 0, 1, 307, 107, 308, -566, 309, 310, -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, -566, 0, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, -566, 0, 0, 311, -566, 0, -566, 0, 0, 312, 313, 314, -566, -566, 0, 0, -566, -566, -566, -566, -566, -566, 315, 316, -566, -566, -566, -566, -566, -566, -566, -566, -566, 0, -566, 0, 317, -566, -566, 0, 318, 319, 320, 321, 322, 323, 324, 325, -566, -566, -566, -566, -566, -566, -566, -566, 326, 327, 328, -566, -566, 329, -566, 330, -566, -566, -566, -566, 750, -566, 1395, 331, 332, -566, 333, 334, 335, 336, -566, -566, -566, -566, -566, -576, 306, 0, 1, 307, 107, 308, -576, 309, 310, -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, -576, 0, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, -576, 0, 0, 311, -576, 0, -576, 0, 0, 312, 313, 314, -576, -576, 0, 0, -576, -576, -576, -576, -576, -576, 315, 316, -576, -576, -576, -576, -576, -576, -576, -576, -576, 0, -576, 0, 317, -576, -576, 0, 318, 319, 320, 321, 322, 323, 324, 325, -576, -576, -576, -576, -576, -576, -576, -576, 326, 327, 328, -576, -576, 329, -576, 330, -576, -576, 1163, -576, -576, -576, -576, 331, 332, -576, 333, 334, 335, 336, -576, -576, -576, -576, -576, -578, 306, 0, 1, 307, 107, 308, -578, 309, 310, -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, -578, 0, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, -578, 0, 0, 311, -578, 0, -578, 0, 0, 312, 313, 314, -578, -578, 0, 0, -578, -578, -578, -578, -578, -578, 315, 316, -578, -578, -578, -578, -578, -578, -578, -578, -578, 0, -578, 0, 317, -578, -578, 0, 318, 319, 320, 321, 322, 323, 324, 325, -578, -578, -578, -578, -578, -578, -578, -578, 326, 327, 328, -578, -578, 329, 1167, 330, -578, -578, 1168, -578, -578, -578, -578, 331, 332, -578, 333, 334, 335, 336, -578, -578, -578, -578, -578, -577, 306, 0, 1, 307, 107, 308, -577, 309, 310, -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, -577, 0, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, 0, 311, -577, 0, -577, 0, 0, 312, 313, 314, -577, -577, 0, 0, -577, -577, -577, -577, -577, -577, 315, 316, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, 0, 317, -577, -577, 0, 318, 319, 320, 321, 322, 323, 324, 325, -577, -577, -577, -577, -577, -577, -577, -577, 326, 327, 328, -577, -577, 329, -577, 330, -577, -577, 1163, -577, -577, -577, -577, 331, 332, -577, 333, 334, 335, 336, -577, -577, -577, -577, -577, -338, 1891, 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, -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, 1927, 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, -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, 306, 0, 1, 307, 107, 308, -332, 309, 310, -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, -332, 0, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 0, 0, 311, -332, 0, -332, 0, 0, 312, 313, 314, -332, -332, 0, 0, -332, -332, -332, -332, -332, -332, 315, 316, -332, -332, -332, -332, -332, -332, -332, -332, -332, 0, -332, 0, 317, -332, -332, 0, 318, 319, 320, 321, 322, 323, 324, 325, -332, -332, -332, -332, -332, -332, -332, -332, 326, 327, 328, -332, -332, 329, -332, 330, -332, -332, -332, -332, 750, -332, -332, 331, 332, -332, 333, 334, 335, 336, -332, -332, -332, -332, -332, -543, 306, 0, 1, 307, 107, 308, -543, 309, 310, -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, -543, 0, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, -543, 0, 0, 311, -543, 0, -543, 0, 0, 312, 313, 314, -543, -543, 0, 0, -543, -543, -543, -543, -543, -543, 315, 316, -543, -543, -543, -543, -543, -543, -543, -543, -543, 0, -543, 0, 317, -543, -543, 0, 318, 319, 320, 321, 322, 323, 324, 325, -543, -543, -543, -543, -543, -543, -543, -543, 326, 327, 328, -543, -543, 329, -543, 330, -543, -543, -543, -543, 750, -543, -543, 331, 332, -543, 333, 334, 335, 336, -543, -543, -543, -543, -543, -551, 306, 0, 1, 307, 107, 308, -551, 309, 310, -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, -551, 0, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, -551, 0, 0, 311, -551, 0, -551, 0, 0, 312, 313, 314, -551, -551, 0, 0, -551, -551, -551, -551, -551, -551, 315, 316, -551, -551, -551, -551, -551, -551, -551, -551, -551, 0, -551, 0, 317, -551, -551, 0, 318, 319, 320, 321, 322, 323, 324, 325, -551, -551, -551, -551, -551, -551, -551, -551, 326, 327, 328, -551, -551, 329, -551, 330, -551, -551, -551, -551, 750, -551, -551, 331, 332, -551, 333, 334, 335, 336, -551, -551, -551, -551, -551, -544, 306, 0, 1, 307, 107, 308, -544, 309, 310, -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, -544, 0, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, -544, 0, 0, 311, -544, 0, -544, 0, 0, 312, 313, 314, -544, -544, 0, 0, -544, -544, -544, -544, -544, -544, 315, 316, -544, -544, -544, -544, -544, -544, -544, -544, -544, 0, -544, 0, 317, -544, -544, 0, 318, 319, 320, 321, 322, 323, 324, 325, -544, -544, -544, -544, -544, -544, -544, -544, 326, 327, 328, -544, -544, 329, -544, 330, -544, -544, -544, -544, 750, -544, -544, 331, 332, -544, 333, 334, 335, 336, -544, -544, -544, -544, -544, -552, 306, 0, 1, 307, 107, 308, -552, 309, 310, -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, -552, 0, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, 0, 0, 311, -552, 0, -552, 0, 0, 312, 313, 314, -552, -552, 0, 0, -552, -552, -552, -552, -552, -552, 315, 316, -552, -552, -552, -552, -552, -552, -552, -552, -552, 0, -552, 0, 317, -552, -552, 0, 318, 319, 320, 321, 322, 323, 324, 325, -552, -552, -552, -552, -552, -552, -552, -552, 326, 327, 328, -552, -552, 329, -552, 330, -552, -552, -552, -552, 750, -552, -552, 331, 332, -552, 333, 334, 335, 336, -552, -552, -552, -552, -552, -545, 306, 0, 1, 307, 107, 308, -545, 309, 310, -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, -545, 0, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, -545, 0, 0, 311, -545, 0, -545, 0, 0, 312, 313, 314, -545, -545, 0, 0, -545, -545, -545, -545, -545, -545, 315, 316, -545, -545, -545, -545, -545, -545, -545, -545, -545, 0, -545, 0, 317, -545, -545, 0, 318, 319, 320, 321, 322, 323, 324, 325, -545, -545, -545, -545, -545, -545, -545, -545, 326, 327, 328, -545, -545, 329, -545, 330, -545, -545, -545, -545, 750, -545, -545, 331, 332, -545, 333, 334, 335, 336, -545, -545, -545, -545, -545, -553, 306, 0, 1, 307, 107, 308, -553, 309, 310, -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, -553, 0, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, -553, 0, 0, 311, -553, 0, -553, 0, 0, 312, 313, 314, -553, -553, 0, 0, -553, -553, -553, -553, -553, -553, 315, 316, -553, -553, -553, -553, -553, -553, -553, -553, -553, 0, -553, 0, 317, -553, -553, 0, 318, 319, 320, 321, 322, 323, 324, 325, -553, -553, -553, -553, -553, -553, -553, -553, 326, 327, 328, -553, -553, 329, -553, 330, -553, -553, -553, -553, 750, -553, -553, 331, 332, -553, 333, 334, 335, 336, -553, -553, -553, -553, -553, -546, 306, 0, 1, 307, 107, 308, -546, 309, 310, -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, -546, 0, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, 0, 0, 311, -546, 0, -546, 0, 0, 312, 313, 314, -546, -546, 0, 0, -546, -546, -546, -546, -546, -546, 315, 316, -546, -546, -546, -546, -546, -546, -546, -546, -546, 0, -546, 0, 317, -546, -546, 0, 318, 319, 320, 321, 322, 323, 324, 325, -546, -546, -546, -546, -546, -546, -546, -546, 326, 327, 328, -546, -546, 329, -546, 330, -546, -546, -546, -546, 750, -546, -546, 331, 332, -546, 333, 334, 335, 336, -546, -546, -546, -546, -546, -554, 306, 0, 1, 307, 107, 308, -554, 309, 310, -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, -554, 0, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, -554, 0, 0, 311, -554, 0, -554, 0, 0, 312, 313, 314, -554, -554, 0, 0, -554, -554, -554, -554, -554, -554, 315, 316, -554, -554, -554, -554, -554, -554, -554, -554, -554, 0, -554, 0, 317, -554, -554, 0, 318, 319, 320, 321, 322, 323, 324, 325, -554, -554, -554, -554, -554, -554, -554, -554, 326, 327, 328, -554, -554, 329, -554, 330, -554, -554, -554, -554, 750, -554, -554, 331, 332, -554, 333, 334, 335, 336, -554, -554, -554, -554, -554, -340, 2032, 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, -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, 2033, 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, -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, 762, 0, -345, -345, -345, -345, 763, 764, 765, -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, -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, 766, -345, -345, -345, -345, -345, -345, -345, 1158, -345, -345, 768, 0, -345, -345, -345, -345, -345, -345, -345, -345, -345, -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, 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, -458, 0, 0, 0, 0, 0, -458, -458, -458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, -458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -458, 0, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, 0, 0, 0, 0, 0, 0, 0, -458, -458, -458, -458, -458, -458, -458, -458, 0, -458, -458, 0, 0, -458, 0, -458, -458, 0, -458, -458, -458, -458, -458, -458, -458, -458, -458, -450, 1160, 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, -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, 1161, -450, -450, -450, 0, -450, -450, -450, -450, -1093, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, 0, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, 0, 0, 311, -1093, 0, -1093, 0, 0, 312, 313, 314, -1093, -1093, 0, 0, -1093, -1093, -1093, -1093, -1093, -1093, 315, 316, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, 0, -1093, 0, 317, -1093, -1093, 0, 318, 319, 320, 321, 322, 323, 324, 325, -1093, -1093, -1093, -1093, -1093, -1093, -1093, -1093, 326, 327, 328, 0, 0, 329, 1167, 330, -1093, 0, 1168, -1093, -1093, 0, -1093, 331, 332, 0, 333, 334, 335, 336, -1237, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, 0, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, 0, 0, 311, -1237, 0, -1237, 0, 0, 312, 313, 314, -1237, -1237, 0, 0, -1237, -1237, -1237, -1237, -1237, -1237, 315, 316, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, 0, -1237, 0, 317, -1237, -1237, 0, 318, 319, 320, 321, 322, 323, 324, 325, -1237, -1237, -1237, -1237, -1237, -1237, -1237, -1237, 326, 327, 328, 0, 0, 329, 1167, 330, 1633, 0, 1168, -1237, -1237, 0, -1237, 331, 332, 0, 333, 334, 335, 336, -1195, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, 0, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, 0, 0, 311, -1195, 0, -1195, 0, 0, 312, 313, 314, -1195, -1195, 0, 0, -1195, -1195, -1195, -1195, -1195, -1195, 315, 316, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, 0, -1195, 0, 317, -1195, -1195, 0, 318, 319, 320, 321, 322, 323, 324, 325, -1195, -1195, -1195, -1195, -1195, -1195, -1195, -1195, 326, 327, 328, 0, 0, 329, 1842, 330, -1195, 0, 1168, -1195, -1195, 0, -1195, 331, 332, 0, 333, 334, 335, 336, -1226, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, -1226, 0, -1226, 0, 0, 312, 313, 314, -1226, -1226, 0, 0, -1226, 33, -1226, -1226, -1226, -1226, 315, 316, 1132, -1226, 646, 647, 648, -1226, -1226, -1226, -1226, 0, -1226, 0, 317, -1226, -1226, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, -1226, -1226, -1226, -1226, -1226, -1226, 326, 327, 328, 0, 0, 329, 1167, 330, 649, 0, 1168, -1226, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -577, 306, 0, 1, 307, 107, 308, 0, 309, 310, 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, -577, 0, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, 0, 311, -577, 0, -577, 0, 0, 312, 313, 314, -577, -577, 0, 0, -577, -577, -577, -577, -577, -577, 315, 316, -577, -577, -577, -577, -577, -577, -577, -577, -577, 0, -577, 0, 317, -577, -577, 0, 318, 319, 320, 321, 322, 323, 324, 325, -577, -577, -577, -577, -577, -577, -577, -577, 326, 327, 328, 0, 0, 329, -577, 330, 1162, 0, 1163, -577, -577, 0, -577, 331, 332, 0, 333, 334, 335, 336, -1218, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, 0, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, 0, 0, 311, -1218, 0, -1218, 0, 0, 312, 313, 314, -1218, -1218, 0, 0, -1218, -1218, -1218, -1218, -1218, -1218, 315, 316, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, 0, -1218, 0, 317, -1218, -1218, 0, 318, 319, 320, 321, 322, 323, 324, 325, -1218, -1218, -1218, -1218, -1218, -1218, -1218, -1218, 326, 327, 328, 0, 0, 329, 2079, 330, -1218, 0, 1163, -1218, -1218, 0, -1218, 331, 332, 0, 333, 334, 335, 336, -1219, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, 0, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, 0, 0, 311, -1219, 0, -1219, 0, 0, 312, 313, 314, -1219, -1219, 0, 0, -1219, -1219, -1219, -1219, -1219, -1219, 315, 316, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, 0, -1219, 0, 317, -1219, -1219, 0, 318, 319, 320, 321, 322, 323, 324, 325, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, 326, 327, 328, 0, 0, 329, 1167, 330, 2080, 0, 1168, -1219, -1219, 0, -1219, 331, 332, 0, 333, 334, 335, 336, -1213, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, -1213, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, -1213, 0, -1213, 0, 0, 312, 313, 314, -1213, -1213, 0, 0, -1213, 33, -1213, -1213, -1213, -1213, 315, 316, 1132, -1213, 646, 647, 648, -1213, -1213, -1213, -1213, 0, -1213, 0, 317, -1213, -1213, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, -1213, -1213, -1213, -1213, -1213, -1213, 326, 327, 328, 0, 0, 329, 1167, 330, 649, 0, 1168, -1213, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1161, 624, 0, -1161, -1161, -1161, -1161, 0, -1161, -1161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, 0, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, 0, 0, -1161, -1161, 0, -1161, 0, 0, -1161, -1161, -1161, -1161, -1161, 0, 0, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, 0, -1161, 0, -1161, -1161, -1161, 0, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, -1161, 0, 0, -1161, 0, -1161, 625, 0, -1161, -1161, -1161, 0, -1161, -1161, -1161, 0, -1161, -1161, -1161, -1161, -1184, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1184, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1184, 33, -1184, -1184, -1184, -1184, 315, 644, 645, 252, 646, 647, 648, -1184, -1184, -1184, -1184, 0, -1184, 0, 317, -1184, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1184, -1184, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1162, 624, 0, -1162, -1162, -1162, -1162, 0, -1162, -1162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, 0, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, 0, 0, -1162, -1162, 0, -1162, 0, 0, -1162, -1162, -1162, -1162, -1162, 0, 0, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, 0, -1162, 0, -1162, -1162, -1162, 0, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, -1162, 0, 0, -1162, 0, -1162, 625, 0, -1162, -1162, -1162, 0, -1162, -1162, -1162, 0, -1162, -1162, -1162, -1162, -1223, 306, 0, 1, 307, 107, 308, 0, 309, 310, 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, -1223, 0, 1124, 1125, 1126, 636, 1127, 1128, 1129, 1130, 641, 642, 1131, 0, 0, 311, -1223, 0, -1223, 0, 0, 312, 313, 314, -1223, -1223, 0, 0, -1223, 33, -1223, -1223, -1223, -1223, 315, 316, 1132, -1223, 646, 647, 648, -1223, -1223, -1223, -1223, 0, -1223, 0, 317, -1223, -1223, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, -1223, -1223, -1223, -1223, -1223, -1223, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1223, -1223, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1239, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, 0, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, 0, 0, 311, -1239, 0, -1239, 0, 0, 312, 313, 314, -1239, -1239, 0, 0, -1239, -1239, -1239, -1239, -1239, -1239, 315, 316, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, 0, -1239, 0, 317, -1239, -1239, 0, 318, 319, 320, 321, 322, 323, 324, 325, -1239, -1239, -1239, -1239, -1239, -1239, -1239, -1239, 326, 327, 328, 0, 0, 329, 0, 330, 1143, 0, -1239, -1239, 750, 0, -1239, 331, 332, 0, 333, 334, 335, 336, -1174, 1170, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1174, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1174, 33, -1174, -1174, -1174, -1174, 315, 644, 645, 252, 646, 647, 648, -1174, -1174, -1174, -1174, 0, -1174, 0, 317, -1174, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1174, -1174, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1178, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1178, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1178, 33, -1178, -1178, -1178, -1178, 315, 644, 645, 252, 646, 647, 648, -1178, -1178, -1178, -1178, 0, -1178, 0, 317, -1178, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1178, -1178, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1173, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1173, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1173, 33, -1173, -1173, -1173, -1173, 315, 644, 645, 252, 646, 647, 648, -1173, -1173, -1173, -1173, 0, -1173, 0, 317, -1173, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1173, -1173, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1177, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1177, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1177, 33, -1177, -1177, -1177, -1177, 315, 644, 645, 252, 646, 647, 648, -1177, -1177, -1177, -1177, 0, -1177, 0, 317, -1177, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1177, -1177, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1080, 1183, 0, -1080, -1080, -1080, -1080, 0, -1080, -1080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, 0, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, 0, 0, -1080, -1080, 0, -1080, 0, 0, -1080, -1080, -1080, -1080, -1080, 0, 0, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, 0, -1080, 0, -1080, -1080, -1080, 0, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, -1080, 0, 0, -1080, 0, -1080, -1080, 0, -1080, -1080, -1080, 0, -1080, -1080, -1080, 0, -1080, -1080, -1080, -1080, -1082, 1184, 0, -1082, -1082, -1082, -1082, 0, -1082, -1082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, 0, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, 0, 0, -1082, -1082, 0, -1082, 0, 0, -1082, -1082, -1082, -1082, -1082, 0, 0, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, 0, -1082, 0, -1082, -1082, -1082, 0, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, -1082, 0, 0, -1082, 0, -1082, -1082, 0, -1082, -1082, -1082, 0, -1082, -1082, -1082, 0, -1082, -1082, -1082, -1082, -1128, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1128, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1128, 33, -1128, -1128, -1128, -1128, 315, 644, 645, 252, 646, 647, 648, -1128, -1128, -1128, -1128, 0, -1128, 0, 317, -1128, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1128, -1128, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1130, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1130, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1130, 33, -1130, -1130, -1130, -1130, 315, 644, 645, 252, 646, 647, 648, -1130, -1130, -1130, -1130, 0, -1130, 0, 317, -1130, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1130, -1130, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1175, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1175, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1175, 33, -1175, -1175, -1175, -1175, 315, 644, 645, 252, 646, 647, 648, -1175, -1175, -1175, -1175, 0, -1175, 0, 317, -1175, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1175, -1175, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1179, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1179, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1179, 33, -1179, -1179, -1179, -1179, 315, 644, 645, 252, 646, 647, 648, -1179, -1179, -1179, -1179, 0, -1179, 0, 317, -1179, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1179, -1179, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1176, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1176, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1176, 33, -1176, -1176, -1176, -1176, 315, 644, 645, 252, 646, 647, 648, -1176, -1176, -1176, -1176, 0, -1176, 0, 317, -1176, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1176, -1176, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1180, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, -1180, 0, 0, 312, 313, 314, 29, 30, 0, 0, -1180, 33, -1180, -1180, -1180, -1180, 315, 644, 645, 252, 646, 647, 648, -1180, -1180, -1180, -1180, 0, -1180, 0, 317, -1180, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, -1180, -1180, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, -1171, 624, 0, -1171, -1171, -1171, -1171, 0, -1171, -1171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, 0, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, 0, 0, -1171, -1171, 0, -1171, 0, 0, -1171, -1171, -1171, -1171, -1171, 0, 0, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, 0, -1171, 0, -1171, -1171, -1171, 0, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, 0, 0, -1171, 0, -1171, 625, 0, -1171, -1171, -1171, 0, -1171, -1171, -1171, 0, -1171, -1171, -1171, -1171, -1172, 624, 0, -1172, -1172, -1172, -1172, 0, -1172, -1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, 0, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, 0, 0, -1172, -1172, 0, -1172, 0, 0, -1172, -1172, -1172, -1172, -1172, 0, 0, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, 0, -1172, 0, -1172, -1172, -1172, 0, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, 0, 0, -1172, 0, -1172, 625, 0, -1172, -1172, -1172, 0, -1172, -1172, -1172, 0, -1172, -1172, -1172, -1172, -1006, 306, 0, 1, 307, 107, 308, 0, 309, 310, 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, -1006, 0, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 0, 0, 311, -1006, 0, -1006, 0, 0, 312, 313, 314, -1006, -1006, 0, 0, -1006, -1006, -1006, -1006, -1006, -1006, 315, 316, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 0, -1006, 0, 317, -1006, -1006, 0, 318, 319, 320, 321, 322, 323, 324, 325, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 326, 327, 328, 0, 0, 329, 0, 330, -1006, 0, 1811, 1812, 1023, 0, -1006, 331, 332, 0, 333, 334, 335, 336, -1134, 624, 0, -1134, -1134, -1134, -1134, 0, -1134, -1134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, 0, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, 0, 0, -1134, -1134, 0, -1134, 0, 0, -1134, -1134, -1134, -1134, -1134, 0, 0, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, 0, -1134, 0, -1134, -1134, -1134, 0, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, -1134, 0, 0, -1134, 0, -1134, 625, 0, -1134, -1134, -1134, 0, -1134, -1134, -1134, 0, -1134, -1134, -1134, -1134, -1135, 624, 0, -1135, -1135, -1135, -1135, 0, -1135, -1135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, 0, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, 0, 0, -1135, -1135, 0, -1135, 0, 0, -1135, -1135, -1135, -1135, -1135, 0, 0, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, 0, -1135, 0, -1135, -1135, -1135, 0, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, 0, 0, -1135, 0, -1135, 625, 0, -1135, -1135, -1135, 0, -1135, -1135, -1135, 0, -1135, -1135, -1135, -1135, -1131, 624, 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, -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, 625, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, 0, -1131, -1131, -1131, -1131, -1008, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, 0, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, 0, 0, 311, -1008, 0, -1008, 0, 0, 312, 313, 314, -1008, -1008, 0, 0, -1008, -1008, -1008, -1008, -1008, -1008, 315, 316, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, 0, -1008, 0, 317, -1008, -1008, 0, 318, 319, 320, 321, 322, 323, 324, 325, -1008, -1008, -1008, -1008, -1008, -1008, -1008, -1008, 326, 327, 328, 0, 0, 329, 0, 330, -1008, 0, -1008, 1992, 1023, 0, -1008, 331, 332, 0, 333, 334, 335, 336, -1002, 1995, 0, -1002, -1002, -1002, -1002, 0, -1002, -1002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, 0, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, 0, 0, -1002, -1002, 0, -1002, 0, 0, -1002, -1002, -1002, -1002, -1002, 0, 0, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, 0, -1002, 0, -1002, -1002, -1002, 0, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, 0, 0, -1002, 0, -1002, -1002, 0, -1002, -1002, -1002, 0, -1002, -1002, -1002, 0, -1002, -1002, -1002, -1002, -1132, 624, 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, -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, 625, 0, -1132, -1132, -1132, 0, -1132, -1132, -1132, 0, -1132, -1132, -1132, -1132, -1133, 624, 0, -1133, -1133, -1133, -1133, 0, -1133, -1133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, 0, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, 0, 0, -1133, -1133, 0, -1133, 0, 0, -1133, -1133, -1133, -1133, -1133, 0, 0, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, 0, -1133, 0, -1133, -1133, -1133, 0, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, -1133, 0, 0, -1133, 0, -1133, 625, 0, -1133, -1133, -1133, 0, -1133, -1133, -1133, 0, -1133, -1133, -1133, -1133, -1220, 306, 0, 1, 307, 107, 308, 0, 309, 310, 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, -1220, 0, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, 0, 0, 311, -1220, 0, -1220, 0, 0, 312, 313, 314, -1220, -1220, 0, 0, -1220, -1220, -1220, -1220, -1220, -1220, 315, 316, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, 0, -1220, 0, 317, -1220, -1220, 0, 318, 319, 320, 321, 322, 323, 324, 325, -1220, -1220, -1220, -1220, -1220, -1220, -1220, -1220, 326, 327, 328, 0, 0, 329, 0, 330, -1220, 0, -1220, -1220, -1220, 0, -1220, 331, 332, 0, 333, 334, 335, 336, -1003, 2071, 0, -1003, -1003, -1003, -1003, 0, -1003, -1003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, 0, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, 0, 0, -1003, -1003, 0, -1003, 0, 0, -1003, -1003, -1003, -1003, -1003, 0, 0, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, 0, -1003, 0, -1003, -1003, -1003, 0, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, -1003, 0, 0, -1003, 0, -1003, -1003, 0, -1003, -1003, -1003, 0, -1003, -1003, -1003, 0, -1003, -1003, -1003, -1003, -909, 589, 0, -909, -909, -909, -909, 0, -909, -909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 0, 0, -909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -909, -909, 0, -909, 0, 0, -909, -909, -909, -909, -909, 0, 0, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 0, 0, -909, -909, -909, -909, 0, -909, 0, -909, -909, -909, 0, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, -909, 0, 0, -909, 854, -909, -909, 0, 591, -909, -909, 0, 0, -909, -909, 0, -909, -909, -909, -909, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 645, 252, 646, 647, 648, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, 0, 0, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 1124, 1125, 1126, 636, 1127, 1128, 1129, 1130, 641, 642, 1131, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 645, 252, 646, 647, 648, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, 0, 0, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 993, 0, 994, 995, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 1257, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 993, 0, 994, -110, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 1264, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 993, 0, 994, -98, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 1268, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 993, 0, 994, -102, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 1522, 0, 994, -65, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 1531, 0, 994, 1532, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 1589, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 993, 0, 994, -81, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 1531, 0, 994, -107, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 1531, 0, 994, -97, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 1531, 0, 994, -101, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 1772, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 993, 0, 994, -88, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 1531, 0, 994, -78, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 250, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 315, 644, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 253, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 254, 255, 256, 257, 209, 210, 326, 327, 328, 0, 0, 329, 0, 330, 1531, 0, 994, -85, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 315, 411, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 41, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 46, 47, 48, 49, 209, 210, 326, 327, 328, 0, 0, 329, 306, 330, 1, 307, 107, 308, 0, 309, 310, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 872, 28, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 315, 411, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 41, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 46, 47, 48, 49, 209, 210, 326, 327, 328, 0, 0, 329, 306, 330, 1, 307, 107, 308, 0, 309, 310, 331, 332, 0, 333, 334, 335, 336, 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, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1203, 28, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 315, 411, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 41, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 46, 47, 48, 49, 0, 0, 326, 327, 328, 0, 0, 329, 739, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 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, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 315, 411, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 41, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 46, 47, 48, 49, 0, 0, 326, 327, 328, 0, 0, 329, 306, 330, 1, 307, 107, 308, 258, 309, 310, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, 9, 10, 570, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 0, 0, 0, 312, 313, 314, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 315, 411, 39, 40, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 317, 0, 41, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 46, 47, 48, 49, 2, 0, 326, 327, 895, 0, 0, 896, 739, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 1124, 1125, 1126, 636, 1127, 1128, 1129, 1130, 641, 642, 1131, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 315, 316, 1132, 0, 646, 647, 648, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 0, 0, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, 0, 0, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, 1845, 0, 1, 307, 107, 308, 0, 309, 310, 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, 1124, 1125, 1126, 636, 1127, 1128, 1129, 1130, 641, 642, 1131, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 315, 316, 1132, 0, 646, 647, 648, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 0, 0, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, 0, 0, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 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, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 315, 316, 1132, 0, 646, 647, 648, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 44, 45, 0, 0, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 649, 0, 0, 0, 258, 0, 650, 331, 332, 0, 333, 334, 335, 336, 306, 0, 1, 307, 107, 308, 0, 309, 310, 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, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 0, 0, 1736, 0, 0, 0, 1883, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 2015, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 0, 0, 1736, 0, 0, 0, 1887, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 1866, 0, 1168, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 2069, 2070, 1023, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 2081, 330, 2082, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 2080, 0, 1168, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 0, 312, 313, 314, 750, 0, 0, 331, 332, 751, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 1162, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 1273, 330, 0, 312, 313, 314, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1340, 330, 0, 0, 0, 0, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 1143, 312, 313, 314, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 1622, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1167, 330, 0, 0, 1168, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 1623, 330, 1624, 312, 313, 314, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 1632, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1702, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 306, 0, 1, 307, 107, 308, 311, 309, 310, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 311, 330, 0, 0, 1163, 0, 312, 313, 314, 331, 332, 1730, 333, 334, 335, 336, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 1733, 0, 0, 0, 1734, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 306, 0, 1, 307, 107, 308, 311, 309, 310, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 311, 330, 0, 0, 1163, 0, 312, 313, 314, 331, 332, 1740, 333, 334, 335, 336, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 1733, 0, 0, 0, 1742, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1841, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1843, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1844, 330, 0, 0, 1168, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1847, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 1623, 330, 1624, 312, 313, 314, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 1867, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 1864, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 1868, 330, 1624, 312, 313, 314, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 1733, 0, 0, 0, 1881, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 1733, 0, 0, 0, 1885, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 2000, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 1842, 330, 0, 0, 1168, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 2007, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 1868, 330, 1624, 312, 313, 314, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 2085, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 0, 2114, 1023, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 2117, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 2118, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 2146, 330, 0, 0, 1163, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 0, 312, 313, 314, 0, 0, 0, 331, 332, 554, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 0, 312, 313, 314, 0, 0, 0, 331, 332, 846, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 850, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 0, 312, 313, 314, 1023, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 1064, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 0, 312, 313, 314, 0, 0, 1116, 331, 332, 0, 333, 334, 335, 336, 315, 316, 1467, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 739, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 0, 312, 313, 314, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 1570, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 1606, 330, 0, 312, 313, 314, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, 0, 0, 1609, 331, 332, 0, 333, 334, 335, 336, 0, 0, 1801, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 0, 312, 313, 314, 1800, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 1804, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 1808, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 0, 312, 313, 314, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, 750, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 1854, 330, 0, 312, 313, 314, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 1914, 0, 330, 0, 0, 0, 0, 1800, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 2016, 330, 0, 312, 313, 314, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 329, 2076, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 329, 0, 330, 0, 312, 313, 314, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 306, 0, 1, 307, 107, 308, 0, 309, 310, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 2, 0, 0, 0, 0, 326, 327, 328, 0, 0, 709, 0, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 0, 0, 306, 0, 1, 307, 107, 308, 0, 309, 310, 311, 0, 0, 0, 0, 0, 312, 313, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, 328, 311, 0, 712, 0, 330, 0, 312, 313, 314, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, -897, 589, 0, -897, -897, -897, 326, 327, 328, 0, 0, 735, 0, 330, 0, 0, 0, 0, 0, 0, 0, 331, 332, 0, 333, 334, 335, 336, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, -897, 0, 0, -897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -897, -897, 0, -897, 0, 0, -897, -897, 0, -897, -897, 0, 0, -897, -897, -897, -897, -897, -897, 0, -897, -897, -897, -897, 0, 0, -897, -897, -897, -897, 0, -897, 0, -897, -897, -897, 0, -897, -897, -897, -897, -897, -897, -897, 0, -897, -897, -897, -897, -897, -897, -897, -897, -897, 0, -897, 0, 0, -897, 590, -897, -897, 0, 591, -897, 0, 0, 0, -897, -897, -189, 913, 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, -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, 914, 0, 915, -189, 0, 0, 0, -189, -189, -253, 927, 0, 1, 307, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, -253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, -251, 930, -253, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, -251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, -254, 927, -251, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, -254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, -252, 930, -254, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, -252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 428, -252, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 494, 444, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 516, 495, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 521, 517, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 525, 522, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, 526, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -752, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -753, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -749, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -750, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -755, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 1046, -756, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 1050, 1047, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 306, 1051, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -649, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -732, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -733, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -735, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 1552, -736, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, 1553, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -644, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -645, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -738, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 306, -739, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 306, -648, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 306, -646, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 306, -624, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -623, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -637, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 306, -638, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -647, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -633, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -634, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -621, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -622, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -616, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 927, -617, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 930, -635, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 0, 428, -636, 1, 307, 107, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 0, 52, 0, 0, 441, 0, 442, 443, 494, 0, 1, 307, 107, 0, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 28, 0, 429, 0, 0, 312, 313, 0, 29, 30, 0, 0, 430, 33, 431, 432, 36, 37, 0, 411, 39, 40, 433, 0, 0, 434, 435, 436, 437, 0, 438, 0, 439, 440, 41, 0, 318, 319, 320, 321, 322, 323, 324, 0, 44, 45, 46, 47, 48, 49, 209, 210, 326, 202, 52, 1, 0, 441, 0, 442, 443, 0, 0, 0, 0, 0, 0, 331, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 570, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 202, 52, 1, 0, 571, 1055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 1, 0, 52, 0, 0, 868, 1055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 570, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 1, 0, 52, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 573, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 1, 0, 52, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 1, 0, 52, 0, 0, 868, 0, 0, 0, 0, 0, 0, 1449, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 1, 0, 52, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 1, 0, 52, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1238, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 1, 0, 52, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1694, 0, 0, 0, 0, 0, 0, 0, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 1, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 52, 0, 0, 1215, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1709, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 1, 0, 0, 0, 52, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 2, 3, 4, 277, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 278, 32, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 43, 0, 0, 1, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 279, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 429, 0, 0, 0, 0, 0, 29, 30, 0, 0, 430, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 1, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 52, 0, 0, 955, 0, 442, 0, 0, 0, 0, 0, 0, 956, 2, 203, 204, 205, 206, 207, 8, 9, 10, 570, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 1, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 52, 0, 0, 935, 0, 0, 0, 0, 0, 0, 0, 0, 936, 2, 203, 204, 205, 206, 207, 8, 9, 10, 570, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 1517, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 936, -66, -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, 1721, 0, 0, 0, 0, 0, 0, -66, -66, -66, -66, -66, -66, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0, 1518, 0, 1519, -66, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 1725, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -111, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 1726, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 1832, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -96, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 1977, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -80, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, -1291, 296, 0, 1, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 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, 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 0, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 1, 0, 0, 43, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 52, 0, 0, 53, 0, 0, 54, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 1, 0, 838, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1408, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 1, 0, 838, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1752, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 166, 0, 1, 0, 838, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1753, 2, 3, 4, 167, 6, 7, 8, 9, 10, 168, 169, 170, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 166, 0, 1, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 52, 0, 0, 53, 0, 0, 171, 0, 2, 3, 4, 167, 6, 7, 8, 9, 10, 168, 169, 170, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 610, 0, 1, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 52, 0, 0, 53, 0, 0, 171, 0, 2, 203, 204, 205, 206, 207, 237, 238, 239, 611, 612, 613, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, -917, 0, -917, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 52, 0, 0, 53, 0, 0, 614, 0, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, -917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -917, 0, 0, 0, 0, 0, 0, 0, -917, -917, 0, 0, 0, -917, 0, 0, 0, 0, 0, -917, -917, -917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -917, 0, 1, 0, 0, 0, 0, 0, 0, 0, -917, -917, -917, -917, -917, -917, -917, -917, 0, 0, -917, 0, 0, -917, 0, 0, -917, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 0, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 0, -1292, 288, 43, 1, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 52, 0, 0, 53, 0, 0, 54, 0, 0, 0, 0, 2, 3, 4, 167, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, 1, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 52, 0, 0, 53, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 52, 0, 0, 1215, 1681, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 0, 211, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 948, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 0, 394, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1475, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 0, 211, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 0, 394, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 0, 1567, 0, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 41, 1, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 0, 1904, 0, 2, 3, 4, 167, 6, 7, 8, 9, 10, 570, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 1, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 52, 0, 0, 53, 2, 3, 4, 167, 6, 7, 8, 9, 10, 570, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 892, 0, 1, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 52, 0, 0, 53, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 0, 0, 0, 893, 2, 3, 4, 167, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 52, 0, 0, 53, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 52, 0, 0, 53, 2, 203, 204, 205, 206, 207, 8, 9, 10, 570, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 52, 0, 0, 53, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 727, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 0, 0, 0, 0, 0, 1454, 2, 203, 204, 205, 206, 207, 237, 238, 239, 1539, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1078, 0, 1, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 52, 0, 0, 53, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 1084, 0, 1, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 1090, 0, 1, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 877, 0, 1, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 508, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 838, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 483, 484, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 2, 203, 204, 205, 206, 207, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 209, 210, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 52, 0, 0, 868, 1678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1528, 2, 203, 204, 205, 206, 207, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 19, 20, 248, 249, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 33, 0, 0, 0, 0, 0, 251, 39, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 254, 255, 256, 257, 209, 210
141 };
142
143 static const yytype_int16 yycheck[] =
144 {
145 0, 87, 93, 648, 541, 87, 726, 867, 1006, 133, 1225, 475, 274, 84, 157, 475, 934, 728, 143, 750, 934, 349, 867, 145, 133, 154, 757, 101, 476, 760, 155, 31, 32, 1023, 159, 1005, 158, 1007, 160, 129, 162, 867, 42, 129, 84, 292, 94, 129, 101, 1108, 31, 94, 129, 53, 94, 17, 750, 65, 1616, 843, 60, 185, 43, 757, 84, 65, 760, 67, 834, 2102, 1628, 85, 479, 5, 349, 84, 185, 188, 189, 834, 1005, 1, 1007, 83, 84, 85, 1, 87, 944, 966, 843, 801, 92, 94, 94, 1, 1, 188, 189, 84, 101, 101, 102, 1, 1005, 105, 1007, 124, 1, 94, 332, 5, 124, 3, 114, 1, 101, 117, 135, 829, 131, 1, 133, 135, 60, 2158, 766, 108, 109, 129, 1, 112, 132, 133, 1, 1, 3, 137, 28, 122, 985, 141, 142, 143, 269, 145, 3, 37, 5, 149, 1, 151, 3, 17, 154, 155, 145, 157, 158, 159, 160, 561, 162, 274, 5, 165, 1, 3, 176, 158, 3, 160, 812, 162, 348, 17, 176, 3, 114, 5, 586, 272, 293, 145, 1, 185, 3, 312, 362, 3, 1, 591, 366, 318, 594, 3, 596, 5, 598, 1, 1, 201, 124, 135, 124, 7, 8, 9, 1005, 3, 1007, 282, 127, 213, 3, 215, 1, 1, 292, 3, 294, 292, 423, 223, 224, 130, 3, 133, 475, 127, 1, 129, 130, 233, 124, 1, 236, 130, 1, 292, 134, 294, 887, 1, 130, 135, 294, 127, 274, 129, 130, 294, 292, 53, 294, 269, 1005, 1006, 1007, 130, 1258, 3, 282, 130, 130, 201, 1, 1265, 125, 269, 3, 1269, 292, 282, 274, 399, 133, 1, 278, 130, 3, 145, 282, 426, 292, 3, 1, 884, 124, 1259, 399, 132, 292, 294, 294, 130, 1266, 278, 131, 125, 1270, 1859, 3, 145, 429, 124, 1, 133, 3, 294, 28, 125, 312, 130, 515, 440, 135, 125, 318, 130, 0, 17, 124, 124, 125, 133, 128, 3, 129, 329, 132, 125, 132, 135, 1259, 129, 125, 1214, 3, 133, 129, 1266, 127, 343, 133, 1270, 130, 3, 125, 802, 331, 74, 28, 803, 445, 446, 447, 448, 1259, 130, 5, 124, 125, 28, 130, 1266, 129, 492, 124, 1270, 571, 5, 130, 74, 7, 8, 9, 830, 672, 673, 5, 831, 1113, 125, 124, 385, 386, 5, 121, 122, 476, 391, 3, 393, 476, 130, 91, 78, 131, 399, 735, 5, 1, 738, 84, 405, 130, 130, 670, 671, 672, 673, 536, 131, 94, 130, 1013, 28, 418, 1113, 884, 101, 102, 423, 224, 425, 426, 536, 552, 429, 430, 891, 3, 562, 1200, 435, 1202, 1, 438, 439, 440, 441, 442, 552, 566, 1200, 568, 1202, 124, 145, 1, 542, 133, 3, 545, 391, 703, 393, 786, 787, 788, 3, 1259, 131, 870, 133, 131, 3, 5, 1266, 470, 471, 472, 1270, 1689, 475, 476, 586, 28, 479, 944, 571, 482, 657, 129, 541, 660, 487, 816, 817, 818, 491, 492, 941, 571, 129, 496, 497, 127, 132, 125, 965, 135, 74, 1215, 965, 1, 125, 508, 1258, 1259, 786, 787, 788, 514, 515, 1265, 1266, 518, 519, 1269, 1270, 1233, 523, 524, 1584, 125, 527, 528, 1240, 129, 531, 532, 533, 534, 3, 536, 5, 130, 539, 1, 816, 817, 818, 224, 952, 747, 954, 130, 1013, 550, 551, 552, 1013, 1431, 1545, 556, 3, 780, 130, 28, 561, 562, 1, 3, 129, 566, 1427, 568, 569, 3, 571, 572, 573, 1, 131, 576, 566, 129, 568, 3, 131, 1427, 1439, 3, 807, 586, 698, 699, 131, 127, 591, 1590, 815, 594, 131, 596, 3, 598, 724, 725, 1427, 282, 728, 729, 605, 7, 8, 9, 129, 3, 5, 292, 835, 294, 135, 1, 1494, 3, 130, 1538, 1591, 3, 1479, 1538, 1, 1482, 1411, 1412, 703, 125, 1, 703, 891, 129, 726, 572, 884, 638, 121, 640, 441, 3, 66, 670, 671, 672, 673, 648, 329, 703, 124, 1512, 5, 1060, 391, 1, 393, 1411, 1412, 7, 8, 9, 131, 125, 1071, 1591, 868, 129, 605, 670, 671, 672, 673, 875, 121, 122, 1077, 0, 1505, 1895, 1507, 883, 703, 804, 131, 124, 125, 688, 689, 1591, 129, 131, 894, 127, 1095, 129, 697, 121, 122, 127, 5, 129, 703, 685, 686, 125, 965, 131, 709, 766, 137, 832, 1703, 129, 121, 122, 717, 965, 128, 805, 136, 128, 124, 724, 725, 726, 727, 728, 729, 124, 132, 125, 3, 135, 735, 121, 122, 738, 3, 3, 122, 1473, 423, 129, 135, 127, 747, 833, 125, 731, 732, 733, 129, 801, 125, 812, 124, 883, 129, 121, 122, 127, 763, 28, 28, 1013, 767, 135, 894, 131, 571, 124, 573, 37, 1773, 129, 124, 868, 1473, 125, 304, 829, 129, 129, 132, 799, 800, 135, 804, 313, 868, 12, 13, 1591, 475, 319, 129, 84, 85, 129, 7, 8, 9, 1774, 3, 7, 8, 9, 809, 1800, 1688, 129, 813, 827, 828, 1693, 832, 7, 8, 9, 1811, 1116, 138, 139, 1119, 917, 918, 3, 920, 973, 974, 923, 924, 802, 515, 572, 803, 838, 839, 840, 1590, 1591, 843, 844, 845, 132, 130, 805, 1774, 979, 941, 122, 123, 1116, 941, 978, 1119, 1059, 941, 124, 124, 830, 1157, 941, 831, 866, 867, 868, 7, 8, 9, 872, 1774, 874, 875, 833, 1171, 1172, 1173, 1174, 1758, 882, 883, 884, 131, 11, 887, 1013, 3, 3, 891, 5, 893, 894, 1157, 896, 633, 898, 70, 71, 142, 122, 123, 145, 996, 1762, 1763, 130, 1171, 1172, 1173, 1174, 3, 28, 1044, 1045, 158, 31, 160, 122, 162, 128, 121, 122, 127, 132, 1255, 354, 130, 128, 132, 1054, 3, 124, 935, 1060, 937, 128, 1799, 125, 941, 93, 132, 944, 135, 121, 122, 121, 949, 129, 1060, 952, 125, 954, 955, 135, 3, 28, 130, 1069, 122, 1071, 130, 964, 965, 966, 1023, 141, 142, 131, 1682, 133, 973, 974, 1439, 976, 1774, 978, 979, 1255, 124, 1072, 269, 984, 985, 986, 987, 3, 978, 5, 1711, 799, 800, 132, 1072, 282, 124, 123, 425, 124, 1991, 122, 1648, 129, 75, 76, 78, 1545, 1210, 80, 131, 1213, 1013, 1474, 1479, 31, 87, 1482, 1425, 827, 828, 123, 703, 1773, 1774, 84, 122, 129, 709, 128, 121, 122, 124, 124, 1912, 131, 188, 189, 124, 1262, 111, 112, 121, 1044, 1045, 726, 127, 1048, 1049, 3, 131, 1052, 1053, 1054, 735, 1056, 1975, 738, 1059, 1060, 131, 125, 141, 142, 1054, 129, 747, 1190, 1069, 133, 1071, 1072, 1073, 122, 121, 122, 1077, 124, 2069, 1080, 129, 0, 1083, 124, 123, 1086, 135, 1213, 1089, 1116, 129, 1092, 1119, 127, 1095, 896, 1097, 131, 561, 1873, 125, 3, 1159, 5, 129, 124, 1163, 1233, 133, 1166, 1111, 1168, 66, 124, 1240, 1116, 124, 123, 1119, 2110, 272, 80, 274, 129, 1215, 124, 185, 1128, 591, 1130, 1157, 594, 124, 596, 935, 598, 1073, 1215, 1139, 3, 131, 293, 133, 123, 1171, 1172, 1173, 1174, 949, 129, 1557, 1152, 111, 112, 955, 123, 1157, 1158, 124, 840, 1987, 129, 1989, 123, 28, 84, 1148, 121, 122, 129, 1171, 1172, 1173, 1174, 133, 94, 131, 12, 13, 123, 704, 45, 101, 102, 1, 129, 3, 125, 1189, 1190, 1191, 129, 1193, 1914, 875, 133, 131, 125, 133, 936, 1190, 129, 1203, 884, 1205, 133, 3, 10, 11, 1210, 891, 75, 76, 1214, 1215, 896, 131, 898, 133, 121, 122, 304, 1424, 282, 6, 131, 8, 9, 470, 471, 313, 1877, 1233, 292, 14, 15, 319, 123, 975, 1240, 789, 790, 137, 129, 531, 532, 533, 534, 1249, 138, 139, 2025, 128, 2027, 496, 497, 1, 133, 1059, 10, 11, 125, 128, 550, 551, 129, 1203, 133, 949, 123, 819, 820, 143, 1811, 1256, 129, 518, 519, 75, 76, 16, 523, 524, 80, 965, 527, 528, 122, 123, 127, 87, 129, 74, 445, 70, 71, 448, 1762, 1763, 123, 123, 1596, 1597, 85, 3, 129, 129, 3, 89, 90, 91, 144, 123, 1608, 111, 112, 92, 2091, 129, 2093, 96, 2095, 98, 127, 566, 129, 568, 124, 110, 28, 75, 76, 28, 1596, 1597, 80, 1073, 125, 120, 3, 122, 129, 87, 3, 123, 1608, 45, 11, 1755, 45, 129, 11, 125, 135, 130, 144, 138, 139, 140, 2133, 2134, 125, 2136, 282, 16, 129, 111, 112, 795, 796, 1, 798, 3, 292, 1576, 294, 75, 76, 2152, 75, 76, 125, 127, 128, 129, 129, 80, 1124, 125, 127, 542, 129, 129, 545, 137, 2169, 823, 824, 825, 826, 125, 1402, 1403, 125, 129, 1406, 1407, 129, 143, 125, 1411, 1412, 1819, 129, 915, 916, 475, 111, 112, 3, 125, 125, 1423, 1, 129, 1407, 1427, 1428, 131, 125, 1431, 155, 1557, 127, 131, 159, 1437, 131, 1439, 866, 867, 1442, 125, 125, 28, 1446, 129, 1557, 14, 15, 1451, 1452, 1453, 1991, 131, 1565, 133, 121, 122, 123, 2106, 121, 122, 123, 128, 129, 125, 131, 128, 129, 129, 131, 125, 1474, 131, 1476, 133, 536, 1479, 1216, 539, 1482, 791, 792, 1485, 1, 124, 3, 1545, 915, 916, 75, 76, 1494, 131, 3, 80, 75, 76, 1500, 1501, 1238, 80, 87, 1505, 1506, 1507, 1508, 1, 87, 3, 430, 821, 822, 127, 1, 137, 3, 670, 671, 672, 673, 1, 129, 3, 3, 127, 111, 112, 1210, 127, 2069, 129, 111, 112, 789, 790, 122, 131, 966, 133, 122, 142, 791, 792, 145, 698, 699, 700, 127, 28, 129, 1847, 1554, 1555, 127, 1557, 129, 158, 37, 160, 131, 162, 133, 1565, 819, 820, 75, 76, 1596, 1597, 122, 80, 821, 822, 1576, 550, 551, 3, 87, 1519, 1608, 1521, 1519, 1847, 1521, 11, 128, 670, 671, 670, 671, 129, 1795, 136, 1596, 1597, 75, 76, 1690, 101, 102, 80, 111, 112, 1606, 131, 1608, 1609, 87, 136, 1612, 1690, 136, 1077, 1616, 844, 845, 131, 1620, 1083, 704, 1623, 131, 131, 135, 1089, 129, 131, 129, 129, 129, 1095, 111, 112, 130, 127, 1619, 697, 133, 1, 124, 124, 121, 703, 125, 124, 1648, 124, 124, 127, 124, 1453, 1635, 1655, 127, 127, 135, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 127, 1790, 127, 1792, 127, 1728, 1764, 915, 916, 1476, 1733, 535, 131, 1736, 531, 532, 533, 534, 122, 130, 136, 1688, 136, 1690, 136, 135, 1693, 1816, 1819, 1818, 121, 122, 123, 550, 551, 136, 136, 136, 129, 131, 131, 122, 131, 1819, 1711, 127, 1713, 1714, 75, 76, 1717, 130, 129, 80, 122, 2016, 130, 2018, 3, 130, 87, 125, 125, 125, 136, 125, 136, 354, 124, 136, 978, 125, 125, 124, 133, 133, 133, 1800, 124, 124, 1483, 57, 1749, 28, 111, 112, 1975, 2016, 1811, 2018, 127, 1758, 37, 127, 127, 1762, 1763, 127, 1765, 124, 127, 128, 129, 122, 122, 125, 1059, 122, 125, 1576, 1777, 124, 124, 135, 122, 2110, 125, 133, 703, 125, 125, 1214, 129, 1790, 2085, 1792, 129, 125, 1795, 1476, 75, 76, 1, 135, 1790, 80, 1792, 129, 425, 130, 1048, 1049, 87, 125, 1052, 1053, 1054, 133, 133, 1816, 133, 1818, 1819, 125, 1847, 125, 2085, 125, 127, 884, 1816, 128, 1818, 125, 130, 125, 111, 112, 2110, 125, 125, 136, 136, 136, 1841, 1842, 1843, 1844, 996, 124, 1847, 133, 133, 57, 1851, 1852, 124, 1854, 125, 1856, 135, 124, 124, 717, 133, 1984, 125, 133, 133, 133, 125, 1868, 125, 3, 470, 471, 75, 76, 125, 125, 1877, 80, 125, 1880, 136, 136, 482, 122, 87, 944, 135, 127, 136, 1871, 136, 1873, 750, 135, 28, 1576, 496, 497, 11, 757, 75, 76, 760, 37, 131, 80, 965, 128, 111, 112, 133, 1912, 87, 1914, 131, 133, 127, 124, 518, 519, 125, 124, 125, 523, 524, 127, 129, 527, 528, 128, 128, 131, 125, 125, 1991, 136, 111, 112, 65, 75, 76, 75, 76, 125, 80, 136, 80, 1189, 1190, 136, 136, 87, 136, 87, 1013, 1692, 131, 1694, 136, 136, 136, 125, 125, 125, 1116, 125, 566, 1119, 568, 65, 127, 1708, 1709, 125, 125, 111, 112, 111, 112, 127, 136, 1982, 1983, 1984, 1985, 1986, 1987, 121, 1989, 2016, 124, 2018, 128, 136, 1984, 1996, 1997, 1998, 1999, 133, 1427, 136, 127, 136, 1431, 1157, 2007, 2099, 2100, 127, 136, 127, 2069, 125, 131, 2016, 3, 2018, 2019, 1171, 1172, 1173, 1174, 37, 127, 127, 127, 2028, 2029, 127, 1711, 45, 46, 127, 127, 127, 0, 125, 127, 482, 127, 28, 1194, 2025, 1196, 2027, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 127, 2141, 2085, 1508, 482, 75, 76, 482, 2065, 2066, 80, 1494, 482, 921, 482, 2072, 2073, 87, 984, 2076, 866, 2078, 42, 292, 2081, 812, 75, 76, 2085, 1512, 292, 80, 75, 76, 75, 76, 976, 80, 87, 80, 60, 111, 112, 2100, 87, 2102, 87, 67, 1474, 2106, 440, 121, 2090, 2091, 729, 2093, 430, 2095, 1795, 1800, 269, 2118, 111, 112, 84, 318, 2090, 87, 111, 112, 111, 112, 121, 93, 94, 124, 1191, 101, 1193, 94, 274, 101, 102, 94, 2141, 2142, 2124, 94, 131, 2146, 102, 1005, 1006, 1007, 114, 2133, 2134, 117, 2136, 1749, 128, 2158, -1, -1, -1, -1, -1, -1, -1, 129, 1453, -1, -1, -1, 2152, -1, -1, 137, 795, 796, 1913, 798, 142, 143, -1, 145, -1, -1, -1, 1922, -1, 2169, -1, -1, -1, 155, -1, 157, 158, 159, 160, -1, 162, -1, -1, -1, 823, 824, 825, 826, -1, -1, -1, -1, 1734, 1735, -1, 1737, 1738, -1, -1, -1, 1742, 1743, 1744, 1745, -1, 313, 188, 189, -1, -1, -1, 319, -1, -1, -1, 1914, -1, -1, -1, 201, -1, -1, -1, -1, 1979, 1980, -1, 866, 867, -1, -1, -1, -1, 215, -1, 45, 46, 1113, 45, 46, 1500, 1501, 224, 1688, -1, -1, -1, -1, 1693, -1, 7, -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, -1, -1, -1, -1, 75, 76, -1, 75, 76, 80, 470, 471, 80, -1, -1, -1, 87, -1, -1, 87, 272, 273, 391, -1, 393, -1, 269, -1, -1, 272, 273, 274, -1, 1554, 1555, -1, 496, 497, -1, 282, 111, 112, -1, 111, 112, -1, -1, -1, -1, 292, 293, 294, 1758, 124, -1, -1, 124, -1, 518, 519, 75, 76, -1, 523, 524, 80, 966, 527, 528, 312, -1, -1, 87, -1, -1, 318, -1, -1, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 329, -1, -1, -1, -1, -1, -1, 1799, -1, -1, 111, 112, 1529, 978, -1, 1439, -1, -1, 122, 123, 121, -1, -1, 124, -1, -1, -1, -1, 132, -1, 0, -1, -1, -1, 135, 1258, 1259, 141, 142, 143, 144, 145, 1265, 1266, -1, -1, 1269, 1270, -1, -1, -1, -1, -1, -1, -1, 1479, -1, 386, 1482, -1, -1, -1, 391, -1, 393, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 87, 1596, 1597, -1, -1, 1048, 1049, -1, 1975, 1052, 1053, 1054, -1, 1608, -1, -1, 423, -1, 425, 426, -1, -1, 429, 430, 111, 112, -1, -1, 435, 470, 471, -1, 439, 440, -1, 442, 84, -1, 125, 572, -1, -1, 1912, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 101, 102, 496, 497, -1, -1, -1, -1, -1, -1, 470, 471, -1, -1, -1, 475, 476, -1, -1, 3, -1, -1, 482, -1, 518, 519, -1, 487, -1, 523, 524, -1, 492, 527, 528, -1, 496, 497, -1, -1, -1, -1, -1, -1, 28, -1, -1, 633, -1, -1, -1, -1, 1790, 37, 1792, 515, -1, -1, 518, 519, -1, -1, -1, 523, 524, -1, -1, 527, 528, -1, -1, -1, -1, 542, -1, 535, 545, -1, 1816, -1, 1818, -1, 542, -1, -1, 545, -1, -1, -1, -1, -1, 75, 76, 1189, 1190, -1, 80, 1214, -1, -1, -1, 561, -1, 87, -1, -1, 566, -1, 568, -1, -1, 571, 572, -1, -1, -1, -1, 75, 76, 1473, -1, -1, 80, 224, -1, -1, -1, 111, 112, 87, -1, 591, -1, -1, 594, -1, 596, 121, 598, -1, 124, 125, -1, -1, -1, 605, -1, -1, -1, -1, -1, -1, -1, 111, 112, 1734, 1735, -1, 1737, 1738, -1, -1, -1, 1742, 1743, 1744, 1745, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, 282, -1, 80, -1, -1, -1, -1, -1, -1, 87, 292, -1, 294, -1, -1, -1, -1, -1, 1847, -1, 670, 671, 672, 673, -1, -1, 1762, 1763, -1, 670, 671, 672, 673, 111, 112, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 125, -1, -1, 700, -1, -1, -1, -1, 1590, 1591, 698, 699, 700, -1, -1, 703, 1982, 1983, 1984, 1985, 1986, 709, 45, 46, 3, -1, -1, -1, -1, 717, 1996, 1997, 1998, 1999, 75, 76, 724, 725, 726, 80, 728, 729, -1, -1, -1, -1, 87, 735, -1, 28, 738, -1, 75, 76, -1, -1, -1, 80, 37, 747, -1, -1, 750, -1, 87, -1, -1, -1, -1, 757, 111, 112, 760, -1, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1427, -1, 125, -1, 1431, -1, 111, 112, -1, -1, -1, -1, 423, -1, 75, 76, 121, 2065, 2066, 80, -1, -1, 122, 123, -1, -1, 87, -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, 137, 138, 139, 936, 141, 142, 143, 144, 145, 3, -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, 2016, -1, 2018, 1048, 1049, 124, 475, 1052, 1053, 1494, -1, -1, 840, 28, -1, 843, 844, 845, -1, -1, -1, 975, 37, 38, 39, -1, -1, 1512, 1975, -1, -1, -1, -1, -1, 272, 273, 1500, 1501, 866, 867, 868, -1, -1, -1, -1, -1, 515, 875, -1, -1, 3, 1773, 1774, -1, -1, 883, 884, -1, -1, -1, 75, 76, -1, 891, -1, 80, 894, -1, 896, 2085, 898, -1, 87, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 1554, 1555, -1, -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, -1, 124, -1, -1, -1, 941, -1, 0, -1, -1, -1, 1073, -1, 949, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 965, 966, -1, -1, -1, -1, -1, -1, 973, 974, -1, -1, -1, 978, -1, -1, -1, -1, -1, 984, -1, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, 1124, 124, -1, -1, -1, -1, -1, 1005, 1006, 1007, -1, -1, -1, -1, -1, 1013, 1048, 1049, -1, -1, 1052, 1053, -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, 1688, -1, -1, -1, -1, 1693, 94, -1, -1, -1, -1, -1, -1, 101, 102, -1, -1, 1048, 1049, -1, -1, 1052, 1053, 1054, -1, -1, -1, -1, -1, -1, -1, 703, -1, -1, -1, -1, -1, 709, -1, -1, -1, 1072, 1073, -1, -1, -1, 1077, -1, -1, -1, -1, -1, 1083, -1, -1, 143, -1, -1, 1089, 1216, -1, -1, -1, 735, 1095, -1, 738, 155, -1, -1, 1758, 159, -1, -1, -1, -1, 1116, -1, -1, 1119, -1, 1238, 1113, -1, -1, 1116, -1, -1, 1119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 542, -1, -1, 545, -1, -1, -1, -1, -1, -1, 1799, -1, 0, -1, -1, -1, 1157, -1, -1, -1, -1, -1, 1790, -1, 1792, 1157, -1, -1, -1, -1, 1171, 1172, 1173, 1174, -1, -1, -1, -1, -1, 1171, 1172, 1173, 1174, 142, -1, -1, 145, -1, 1816, -1, 1818, 113, -1, 1194, -1, 1196, -1, 1189, 1190, 158, -1, 160, 1194, 162, 1196, 53, -1, 840, -1, -1, -1, 1203, -1, -1, -1, -1, -1, -1, 1210, -1, -1, 1213, 1214, 1215, -1, -1, -1, -1, -1, -1, -1, -1, -1, 282, -1, 83, 84, 85, -1, -1, -1, 1233, 875, 292, 92, 294, 94, -1, 1240, -1, -1, 884, -1, 101, 102, -1, -1, -1, 891, -1, -1, -1, -1, 1912, -1, 898, 1258, 1259, 670, 671, 672, 673, -1, 1265, 1266, -1, -1, 1269, 1270, 201, -1, -1, -1, -1, 132, 133, 134, 135, 136, -1, -1, 1500, 1501, -1, 142, -1, -1, 145, 700, -1, -1, -1, -1, -1, 1, -1, 3, -1, -1, -1, 158, -1, 160, -1, 162, -1, 949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 965, -1, -1, -1, -1, 185, 186, 187, 37, 38, 39, -1, -1, 1554, 1555, -1, -1, -1, -1, -1, -1, -1, 1982, 1983, 1984, 1985, 1986, -1, -1, -1, -1, -1, 0, 1483, -1, -1, 1996, 1997, 1998, 1999, -1, -1, -1, 223, 224, -1, 75, 76, 429, -1, -1, 80, -1, -1, -1, -1, -1, -1, 87, 440, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 332, -1, -1, -1, 111, 112, -1, 53, -1, 1411, 1412, 269, -1, -1, 121, -1, -1, 124, -1, -1, 127, -1, 129, 130, 282, 1427, -1, 2065, 2066, 1431, -1, -1, -1, 492, 292, -1, 294, -1, 84, 85, -1, -1, -1, -1, -1, -1, 92, -1, 94, -1, -1, -1, -1, -1, -1, 101, 102, -1, -1, 391, -1, 393, -1, -1, 1500, 1501, -1, -1, -1, -1, -1, 1473, -1, -1, 1476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, -1, -1, 1494, -1, -1, -1, -1, -1, 1500, 1501, -1, 470, 471, 1505, 1506, 1507, 1508, -1, -1, -1, -1, -1, -1, 482, -1, -1, -1, -1, 1554, 1555, -1, -1, -1, -1, -1, -1, -1, 496, 497, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, 399, 400, 401, -1, -1, -1, -1, -1, 518, 519, -1, 1554, 1555, 523, 524, -1, -1, 527, 528, 1203, -1, -1, -1, 1692, 423, 1694, 1210, -1, -1, -1, -1, 430, -1, 1576, 274, -1, -1, -1, -1, 1708, 1709, -1, 441, -1, 1596, 1597, 233, 1590, 1591, 236, -1, -1, -1, 1596, 1597, -1, 566, 1609, 568, -1, 1612, -1, 535, -1, -1, -1, 1609, -1, 1620, 1612, -1, 470, 471, -1, -1, -1, 475, 1620, -1, -1, 479, -1, 269, 482, -1, -1, -1, -1, -1, -1, -1, 0, 491, -1, -1, 282, -1, 496, 497, 572, -1, -1, -1, 703, -1, 292, -1, 294, -1, -1, -1, -1, 1655, -1, -1, -1, 515, -1, -1, 518, 519, -1, -1, -1, 523, 524, -1, -1, 527, 528, -1, 604, 531, 532, 533, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1688, -1, 1690, -1, -1, 1693, 550, 551, -1, -1, -1, -1, -1, -1, -1, 633, -1, -1, 1116, -1, -1, 1119, 566, 1711, 568, -1, -1, 571, -1, 573, 84, -1, -1, 0, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 588, -1, -1, 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1157, 445, -1, -1, -1, -1, -1, -1, 399, -1, -1, 1758, -1, -1, 1171, 1172, 1173, 1174, 1982, 1983, -1, 1985, 1986, -1, -1, -1, 1773, 1774, -1, -1, 143, -1, 1996, 1997, 1998, 1999, -1, 1194, -1, 1196, 1913, -1, 155, 1790, -1, 1792, 159, -1, 1795, 1922, 441, -1, -1, 730, -1, -1, -1, 734, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, 1816, -1, 1818, -1, 750, -1, 101, 102, -1, -1, 883, 757, -1, -1, 760, -1, -1, -1, -1, 1476, -1, 894, -1, -1, -1, 697, 1851, 1852, -1, -1, -1, 703, 2065, 2066, 780, 1851, 1852, 1979, 1980, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, -1, -1, -1, 724, -1, -1, -1, 728, -1, -1, -1, 155, 807, -1, -1, 159, -1, -1, -1, -1, 815, -1, 531, 532, 533, 534, 747, 536, -1, -1, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, 835, 550, 551, 552, -1, -1, -1, 1912, -1, 1914, -1, 282, -1, -1, -1, -1, -1, -1, -1, -1, -1, 292, 571, 294, -1, -1, -1, -1, -1, -1, 1576, -1, -1, -1, -1, -1, 638, -1, -1, -1, -1, -1, -1, 1982, 1983, -1, 1985, 1986, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1996, 1997, 1998, 1999, -1, -1, -1, -1, -1, -1, -1, 670, 671, 672, 673, -1, -1, -1, -1, -1, 1982, 1983, 1984, 1985, 1986, 1987, -1, 1989, -1, -1, -1, -1, -1, -1, 1996, 1997, 1998, 1999, -1, -1, -1, 282, 934, -1, 936, -1, -1, -1, -1, 978, 868, 292, -1, 294, -1, -1, -1, 875, -1, -1, -1, -1, -1, -1, 882, 883, 884, -1, -1, 2065, 2066, -1, -1, 891, 113, -1, 894, -1, 896, -1, -1, -1, -1, 975, -1, -1, -1, -1, -1, -1, -1, 697, -1, -1, -1, -1, -1, 703, 137, -1, -1, 429, -1, 2065, 2066, -1, -1, -1, -1, -1, -1, -1, 440, 1005, -1, 1007, -1, 935, -1, 1048, 1049, -1, -1, 1052, 1053, 1054, 944, -1, -1, -1, -1, 949, -1, -1, -1, -1, -1, 955, -1, -1, -1, -1, -1, -1, -1, -1, -1, 965, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 978, -1, 201, -1, 492, -1, -1, -1, -1, -1, 988, 1, -1, 3, -1, -1, -1, -1, -1, -1, -1, 1073, -1, -1, -1, -1, -1, -1, 429, -1, -1, -1, 1795, -1, -1, 1013, -1, -1, 28, 440, -1, -1, -1, -1, -1, -1, -1, 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1113, -1, -1, 1596, 1597, -1, -1, -1, -1, 1048, 1049, 1124, -1, 1052, 1053, 1054, 1609, -1, -1, 1612, 1059, 1060, -1, -1, 75, 76, -1, 1620, -1, 80, 492, 1070, -1, -1, -1, -1, 87, 1150, 1151, 1189, 1190, -1, -1, -1, 304, -1, -1, -1, 308, 309, 310, -1, -1, 313, -1, -1, -1, -1, -1, 319, 111, 112, -1, -1, -1, 325, -1, 947, -1, 896, 121, -1, 332, 124, -1, -1, 127, -1, 129, 130, -1, -1, -1, -1, -1, -1, -1, -1, -1, 349, -1, -1, -1, -1, 354, -1, -1, -1, -1, -1, -1, -1, -1, 1216, -1, -1, -1, -1, 935, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1238, -1, -1, 955, -1, -1, 391, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1259, -1, -1, 1262, 1189, 1190, -1, 1266, 703, -1, -1, 1270, -1, -1, -1, -1, -1, -1, -1, 425, -1, -1, -1, -1, -1, 1210, -1, -1, 1213, -1, 1215, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, 1240, -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, 1059, 1060, -1, -1, 1116, -1, -1, 1119, -1, 703, -1, -1, -1, 66, -1, -1, 1128, -1, -1, 72, 73, 74, -1, -1, -1, -1, 1851, 1852, -1, -1, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, -1, 1157, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, 1171, 1172, 1173, 1174, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, 572, 134, 135, 136, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 883, -1, -1, -1, -1, -1, -1, -1, -1, -1, 604, 894, -1, -1, -1, -1, 1500, 1501, -1, -1, -1, -1, -1, -1, -1, -1, 1473, -1, -1, -1, 1191, -1, 1193, -1, -1, -1, 1483, -1, -1, 633, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1424, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1439, 1514, -1, -1, 1554, 1555, 1519, 1446, 1521, -1, -1, -1, -1, -1, 1453, -1, -1, -1, -1, -1, -1, 883, -1, -1, -1, 1538, -1, -1, -1, -1, -1, -1, 894, -1, -1, 1474, -1, 1476, -1, -1, -1, -1, -1, -1, 704, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1500, 1501, -1, -1, -1, -1, -1, -1, -1, 730, -1, -1, -1, 734, -1, -1, -1, 1591, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 750, -1, -1, -1, -1, -1, -1, 757, -1, -1, 760, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1554, 1555, -1, 1557, -1, 780, -1, -1, -1, -1, -1, 786, 787, 788, 789, 790, 791, 792, -1, -1, 795, 796, 1576, 798, 799, 800, 801, 802, 803, 804, 805, -1, 807, -1, -1, -1, -1, -1, -1, -1, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, -1, 835, -1, -1, -1, 1692, -1, 1694, -1, -1, -1, -1, -1, -1, -1, -1, 1703, -1, -1, -1, -1, 1708, 1709, -1, -1, -1, -1, -1, 1715, -1, -1, -1, 866, 867, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, 1453, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1790, -1, 1792, 1682, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 1774, 92, -1, -1, -1, 1816, -1, 1818, -1, -1, -1, -1, -1, 934, -1, 936, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132, 133, -1, -1, 966, -1, -1, -1, -1, -1, 137, -1, -1, 975, 1596, 1597, -1, -1, -1, -1, -1, -1, -1, -1, 1606, -1, 1608, 1609, 1557, -1, 1612, -1, -1, -1, -1, -1, -1, -1, 1620, -1, -1, 1623, -1, 1005, -1, 1007, -1, -1, -1, 1790, -1, 1792, -1, 185, 1795, -1, -1, -1, -1, -1, -1, -1, -1, 1878, 1879, -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, 1816, -1, 1818, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1828, -1, -1, 349, -1, -1, -1, -1, -1, -1, -1, 1913, -1, -1, 233, -1, -1, 236, -1, -1, 1922, -1, -1, -1, 1073, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1982, 1983, 1984, 1985, 1986, -1, -1, 269, -1, -1, -1, -1, -1, -1, 1996, 1997, 1998, 1999, -1, -1, 282, 1113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1124, -1, 1979, 1980, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, -1, 308, 309, 310, -1, -1, 313, -1, 1150, 1151, -1, -1, 319, -1, -1, -1, -1, -1, 325, -1, -1, -1, -1, -1, -1, 332, -1, -1, -1, -1, -1, -1, -1, 2065, 2066, -1, -1, -1, -1, -1, -1, -1, 349, -1, -1, -1, -1, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1982, 1983, 1984, 1985, 1986, 1, -1, 3, 4, 5, -1, 1214, -1, 1216, 1996, 1997, 1998, 1999, 1841, 1842, 1843, 1844, -1, 391, 1847, 393, 399, -1, 1851, 1852, -1, 1854, 28, 1856, -1, 1238, 2092, -1, -1, -1, -1, -1, -1, -1, -1, 1868, -1, -1, -1, 1819, -1, -1, 1255, -1, 2110, -1, 1259, 425, -1, 1262, -1, -1, -1, 1266, -1, -1, -1, 1270, 441, -1, 66, -1, -1, -1, -1, -1, 72, 73, -1, -1, -1, -1, -1, 2065, 2066, -1, -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 2161, 479, 103, 104, 105, 106, 107, 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, 113, 134, 135, -1, -1, -1, 643, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 332, -1, -1, 531, 532, 533, 534, -1, 536, -1, -1, 539, 535, -1, -1, -1, -1, 349, -1, -1, -1, -1, 550, 551, 552, -1, -1, -1, -1, 2007, -1, -1, -1, -1, -1, -1, -1, -1, 2016, -1, 2018, -1, -1, 571, -1, -1, -1, -1, -1, 572, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1427, -1, -1, -1, 1431, -1, -1, -1, -1, -1, -1, -1, 604, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2072, 2073, -1, -1, 2076, -1, 2078, -1, -1, 2081, -1, -1, -1, 2085, -1, -1, 633, 766, -1, -1, -1, 1473, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1483, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1494, -1, -1, -1, 2118, -1, -1, 274, 799, 800, 801, 802, 803, -1, -1, 806, -1, -1, 1512, -1, 1514, 812, -1, -1, -1, 1519, -1, 1521, -1, -1, -1, -1, 2146, 697, -1, -1, 827, 828, 829, 830, 831, -1, -1, 834, 1538, 704, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 332, -1, -1, -1, -1, -1, 730, -1, -1, -1, 734, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 750, -1, -1, -1, -1, -1, 1591, 757, -1, -1, 760, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 780, -1, -1, -1, -1, -1, 786, 787, 788, 789, 790, 791, 792, -1, -1, 795, 796, -1, 798, 799, 800, 801, 802, 803, 804, 805, -1, 807, -1, -1, -1, -1, -1, -1, -1, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 643, 835, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1688, -1, -1, -1, 1692, 1693, 1694, -1, -1, -1, -1, -1, -1, 866, 867, 1703, -1, -1, -1, -1, 1708, 1709, -1, -1, -1, -1, -1, 1715, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 896, -1, -1, -1, -1, -1, -1, -1, 1734, 1735, -1, 1737, 1738, -1, -1, -1, 1742, 1743, 1744, 1745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1758, -1, -1, -1, -1, -1, -1, 935, -1, -1, 541, 934, -1, 936, -1, -1, 1774, -1, -1, -1, -1, -1, -1, -1, 952, -1, 954, 955, -1, -1, -1, -1, -1, -1, 766, -1, -1, -1, -1, -1, -1, 1799, -1, 966, -1, -1, -1, -1, 780, -1, -1, -1, 975, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 799, 800, 801, 802, 803, -1, 604, 806, 807, 1131, -1, -1, -1, 812, -1, 1005, 815, 1007, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 827, 828, 829, 830, 831, -1, -1, 834, 835, 1159, -1, -1, 638, -1, -1, -1, 1166, -1, -1, -1, -1, -1, -1, -1, -1, 1878, 1879, -1, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1059, 1060, -1, -1, -1, -1, -1, -1, 670, 671, 672, 673, -1, -1, 1200, -1, 1202, -1, -1, 1073, -1, -1, -1, 1912, 1913, -1, -1, -1, -1, 133, -1, -1, -1, 1922, -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, 1113, -1, -1, -1, -1, -1, -1, -1, -1, 730, -1, 1124, -1, 734, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1, 1975, -1, -1, -1, 1979, 1980, -1, -1, -1, -1, 1150, 1151, -1, -1, -1, -1, -1, -1, 766, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 780, -1, 224, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, 1191, -1, 1193, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 807, -1, -1, -1, 28, 812, -1, -1, 815, -1, -1, -1, -1, -1, -1, 1214, -1, 1216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 835, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1238, -1, -1, 66, 292, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 1255, -1, 2092, -1, 1259, 85, 86, 1262, -1, -1, -1, 1266, -1, -1, -1, 1270, -1, -1, -1, 99, 2110, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, 142, -1, -1, 145, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, 158, 129, 160, -1, 162, 133, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, 1131, -1, -1, -1, 2161, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, 399, 1159, -1, -1, -1, -1, 405, -1, 1166, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1200, -1, 1202, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, 1023, 85, 86, 87, 274, -1, -1, -1, -1, -1, 475, -1, 1427, -1, -1, 99, 1431, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, -1, -1, -1, -1, 1453, -1, 119, 120, 121, 1262, -1, 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, 1473, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1483, -1, -1, 536, -1, -1, 539, -1, -1, -1, -1, 1494, -1, -1, -1, -1, -1, -1, -1, 552, -1, -1, -1, -1, -1, 1116, -1, -1, 1119, 1512, -1, 1514, -1, -1, -1, -1, 1519, 1128, 1521, -1, 573, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 586, -1, 1538, -1, -1, -1, 1150, 1151, -1, -1, -1, -1, -1, 1157, -1, 1159, 1557, -1, -1, 1163, -1, -1, 1166, -1, 1168, -1, -1, 1171, 1172, 1173, 1174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1591, -1, -1, -1, -1, 1728, -1, -1, -1, -1, 1733, 1734, 1735, 1736, 1737, 1738, -1, -1, -1, 1742, 1743, 1744, 1745, -1, 470, 471, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 496, 497, -1, -1, -1, -1, 697, -1, -1, -1, -1, -1, 703, 1262, -1, -1, -1, -1, -1, -1, -1, -1, 518, 519, -1, -1, -1, 523, 524, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, -1, -1, -1, -1, -1, 1688, -1, -1, -1, 1692, 1693, 1694, -1, -1, -1, -1, -1, -1, -1, -1, 1703, -1, -1, -1, -1, 1708, 1709, -1, 566, -1, 568, -1, 1715, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, 1734, 1735, -1, 1737, 1738, -1, -1, -1, 1742, 1743, 1744, 1745, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, 1758, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1774, -1, -1, -1, -1, -1, -1, -1, -1, 638, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, 1799, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, -1, -1, -1, 1819, 670, 671, 672, 673, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 884, -1, -1, -1, -1, -1, -1, 891, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, 136, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1878, 1879, -1, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, -1, -1, -1, -1, -1, 944, 750, -1, -1, -1, 949, -1, -1, 757, -1, -1, 760, 1514, -1, -1, -1, -1, -1, 1912, 1913, -1, 965, -1, -1, -1, 1728, -1, -1, 1922, -1, 1733, 1734, 1735, 1736, 1737, 1738, -1, -1, -1, 1742, 1743, 1744, 1745, 1545, -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, 1013, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1975, -1, -1, -1, 1979, 1980, -1, -1, -1, -1, -1, -1, -1, 1596, 1597, -1, -1, -1, -1, -1, -1, -1, -1, 1606, -1, 1608, 1609, -1, -1, 1612, -1, -1, -1, -1, -1, 1060, -1, 1620, -1, -1, 1623, -1, -1, -1, 1069, -1, 1071, -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, 915, 916, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, 2092, -1, -1, 1703, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1715, -1, 28, 2110, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1728, -1, -1, 978, -1, 1733, -1, -1, 1736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1191, -1, 1193, -1, -1, -1, 66, -1, -1, 1005, -1, 1007, 72, 73, 74, -1, -1, -1, -1, -1, 2161, -1, -1, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 1800, 1048, 1049, -1, -1, 1052, 1053, 1054, 119, 120, 121, 1811, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, 133, 134, 135, -1, 137, 138, 139, 140, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, 1841, 1842, 1843, 1844, -1, -1, 1847, -1, -1, -1, 1851, 1852, -1, 1854, -1, 1856, 28, -1, -1, -1, -1, -1, -1, -1, -1, 1113, -1, 1868, 1116, -1, -1, 1119, -1, -1, -1, -1, -1, 1878, 1879, -1, 1128, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, 1157, -1, -1, -1, 85, 86, 87, -1, 89, 90, 91, -1, -1, -1, 1171, 1172, 1173, 1174, 99, -1, 87, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 1189, 1190, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, -1, 131, -1, 133, 134, 135, 0, 137, 138, 139, 140, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1991, -1, -1, -1, -1, -1, 1439, -1, -1, 157, -1, -1, -1, 1446, -1, -1, 2007, -1, -1, -1, -1, 1259, -1, -1, -1, 2016, 52, 2018, 1266, -1, -1, -1, 1270, -1, -1, -1, -1, -1, -1, -1, -1, 1474, -1, 1476, -1, -1, 1479, -1, -1, 1482, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, 101, 102, -1, 2069, -1, -1, 2072, 2073, -1, -1, 2076, -1, 2078, -1, -1, 2081, -1, -1, 119, 2085, -1, -1, -1, -1, -1, -1, 2092, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, 143, -1, 2110, -1, -1, -1, -1, 1557, -1, -1, 2118, -1, 155, 28, -1, 1565, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1576, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2146, -1, -1, -1, -1, -1, -1, 188, 189, -1, -1, -1, -1, 66, -1, 2161, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, -1, -1, -1, 1473, 134, 135, 386, 137, 138, 139, 140, 269, -1, -1, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, 282, -1, -1, -1, -1, -1, 1500, 1501, -1, -1, 292, 293, 294, -1, -1, -1, -1, -1, -1, -1, -1, 425, 426, -1, -1, 1519, 430, 1521, -1, -1, 312, -1, -1, -1, -1, 439, 318, -1, 442, -1, -1, -1, -1, -1, -1, -1, -1, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1554, 1555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 1762, 1763, -1, 1765, -1, 482, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1591, -1, -1, -1, -1, 1596, 1597, -1, -1, -1, -1, -1, -1, -1, -1, 1606, -1, 1608, 1609, -1, -1, 1612, -1, -1, -1, -1, -1, -1, -1, 1620, -1, -1, 1623, 1819, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, -1, -1, -1, -1, -1, 429, -1, -1, -1, -1, -1, -1, -1, -1, -1, 561, 440, -1, -1, -1, -1, -1, -1, -1, -1, 571, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 591, -1, -1, 594, -1, 596, 475, 598, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, -1, -1, -1, 52, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, -1, -1, -1, -1, -1, -1, 542, -1, -1, 545, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, 89, -1, -1, -1, -1, 94, 1774, -1, -1, -1, -1, -1, 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, 1790, -1, 1792, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 274, -1, -1, -1, 132, -1, -1, -1, -1, 1816, -1, 1818, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1841, 1842, 1843, 1844, -1, -1, 1847, -1, -1, -1, 1851, 1852, -1, 1854, -1, 1856, 645, -1, -1, -1, -1, 329, 184, -1, -1, -1, -1, 1868, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 670, 671, 672, 673, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, 698, 699, 700, -1, -1, 703, -1, -1, -1, -1, -1, 709, -1, -1, -1, -1, -1, -1, -1, 717, -1, -1, -1, 843, 844, 845, 724, 725, 726, -1, 728, 729, -1, -1, -1, -1, -1, 735, 269, -1, 738, -1, -1, -1, -1, -1, 866, 867, 868, 747, -1, 282, 750, -1, -1, -1, -1, -1, -1, 757, -1, 292, 760, 294, 441, -1, 638, -1, -1, -1, -1, -1, 1982, 1983, 1984, 1985, 1986, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1996, 1997, 1998, 1999, -1, -1, -1, -1, -1, -1, -1, 2007, -1, -1, 672, 673, -1, -1, -1, -1, 2016, -1, 2018, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 840, -1, -1, -1, 966, -1, -1, -1, -1, -1, -1, 973, 974, 2065, 2066, -1, -1, -1, -1, -1, 2072, 2073, 984, -1, 2076, -1, 2078, -1, -1, 2081, -1, -1, -1, 2085, -1, 875, -1, -1, -1, -1, -1, -1, -1, 883, 884, -1, -1, -1, -1, -1, 423, 891, -1, -1, 894, 895, 896, -1, 898, -1, -1, -1, -1, -1, -1, -1, 2118, -1, 441, -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, 2146, -1, -1, -1, -1, -1, -1, -1, 475, -1, -1, 478, -1, -1, -1, 949, 1072, -1, -1, -1, -1, 1077, -1, -1, -1, -1, -1, 1083, -1, -1, 643, 965, -1, 1089, -1, -1, -1, -1, -1, 1095, -1, -1, -1, -1, -1, -1, 659, -1, 515, -1, -1, -1, -1, -1, -1, -1, -1, 670, 671, 672, 673, -1, -1, -1, 531, 532, 533, 534, -1, -1, -1, 1005, 1006, 1007, -1, -1, -1, -1, -1, 1013, -1, -1, -1, 550, 551, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 709, -1, -1, 712, -1, -1, 1, -1, 571, -1, 573, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 584, -1, -1, -1, -1, 735, -1, -1, -1, -1, -1, 741, 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, 621, 768, -1, -1, 1214, 1215, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, 1113, -1, 80, 1116, -1, -1, 1119, -1, 86, 87, 88, -1, -1, -1, 806, -1, -1, -1, -1, 1132, -1, -1, 814, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, 834, -1, 1157, -1, -1, -1, -1, -1, 696, -1, -1, 131, -1, -1, -1, 703, 1171, 1172, 1173, 1174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 724, -1, -1, 1194, 728, 1196, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1210, -1, -1, 1213, 747, -1, -1, 896, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, 1240, -1, 1116, -1, -1, 1119, -1, -1, -1, -1, -1, -1, -1, -1, 1128, -1, -1, -1, 1258, 1259, -1, -1, -1, -1, -1, 1265, 1266, -1, -1, 1269, 1270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1157, -1, -1, -1, -1, -1, 1411, 1412, -1, -1, -1, -1, -1, -1, 1171, 1172, 1173, 1174, -1, -1, -1, -1, 1427, -1, -1, -1, 1431, -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, 868, 869, -1, -1, -1, -1, -1, 875, -1, -1, -1, -1, -1, -1, -1, 883, 884, -1, -1, -1, -1, -1, -1, 891, -1, -1, 894, 895, 896, -1, -1, -1, -1, -1, -1, -1, -1, 1494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1505, 1506, 1507, 1508, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 935, -1, -1, -1, -1, -1, -1, -1, 943, -1, -1, -1, -1, -1, 949, -1, -1, -1, -1, -1, 955, -1, -1, -1, -1, -1, -1, -1, -1, -1, 965, -1, -1, -1, -1, 1116, -1, -1, 1119, 1120, 1121, -1, 1123, -1, -1, -1, -1, -1, 93, -1, 1131, -1, -1, -1, -1, -1, -1, -1, 1139, -1, -1, -1, -1, -1, -1, 1146, -1, -1, -1, -1, -1, 1473, -1, -1, 1476, -1, 1157, -1, 1013, -1, -1, -1, -1, 1164, -1, -1, -1, -1, 1169, -1, 1171, 1172, 1173, 1174, -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, 1200, -1, 1202, -1, -1, 1059, -1, -1, -1, -1, -1, -1, 1655, -1, 1068, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, 189, -1, -1, -1, -1, -1, -1, -1, -1, 1234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1688, -1, 1690, -1, -1, 1693, -1, -1, -1, -1, 1576, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, 1590, 1591, -1, -1, -1, -1, 1596, 1597, -1, -1, -1, 1280, -1, -1, -1, -1, -1, -1, -1, 1609, -1, -1, 1612, -1, -1, -1, -1, -1, -1, -1, 1620, -1, -1, -1, -1, -1, 269, -1, -1, 272, 273, 274, -1, -1, -1, -1, 1758, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 293, -1, -1, 1332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1345, -1, -1, 312, -1, -1, -1, -1, -1, 318, -1, 1210, -1, -1, 1213, -1, 1215, -1, -1, -1, 329, -1, -1, -1, 1223, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, 1240, -1, -1, -1, 1711, -1, -1, -1, -1, -1, 1396, -1, 201, -1, -1, 1596, 1597, -1, -1, -1, -1, -1, -1, -1, -1, 1606, -1, 1608, 1609, -1, -1, 1612, -1, -1, -1, -1, -1, -1, -1, 1620, -1, -1, 1623, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 1773, 1774, -1, -1, -1, -1, -1, 423, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1912, -1, -1, -1, -1, 1795, -1, 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, 304, -1, -1, -1, -1, -1, -1, -1, -1, 313, 475, -1, -1, -1, 67, 319, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, 1851, 1852, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, 1987, -1, 1989, -1, -1, 101, -1, 515, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, 1424, 535, 124, -1, -1, -1, -1, -1, 542, 131, -1, 545, -1, 135, 1438, -1, -1, -1, 391, -1, 393, 1445, -1, 1914, -1, -1, 1596, 1597, -1, 1453, -1, -1, 1602, -1, 1604, -1, -1, 1607, 1608, -1, -1, -1, -1, 1613, 1614, -1, 1616, -1, -1, -1, 1474, -1, 1476, -1, -1, -1, 1626, -1, 1628, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1841, 1842, 1843, 1844, -1, -1, 1847, -1, -1, -1, 1851, 1852, -1, 1854, 1660, 1856, -1, -1, 1664, -1, -1, -1, -1, -1, -1, -1, -1, 1868, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1556, -1, -1, -1, 670, 671, 672, 673, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1576, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, -1, 698, 699, 700, 93, -1, -1, -1, -1, -1, -1, -1, 709, -1, -1, -1, -1, -1, -1, -1, 717, -1, -1, -1, -1, -1, -1, 724, 725, 726, -1, 728, 729, -1, -1, -1, 572, -1, 735, -1, -1, 738, -1, -1, -1, -1, -1, -1, -1, -1, 747, -1, -1, 750, -1, -1, -1, -1, -1, -1, 757, -1, -1, 760, 441, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2007, -1, -1, -1, -1, -1, -1, -1, -1, 2016, -1, 2018, -1, -1, -1, -1, 1682, 1829, 633, -1, 188, 189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1847, 1848, -1, -1, -1, -1, -1, -1, 1855, -1, -1, -1, 1859, -1, 1861, -1, -1, -1, -1, -1, -1, 224, -1, 1870, -1, -1, -1, -1, -1, 840, 2072, 2073, -1, -1, 2076, -1, 2078, -1, -1, 2081, -1, -1, -1, 2085, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1754, 704, -1, -1, -1, -1, -1, -1, -1, -1, -1, 875, -1, 269, 1914, -1, 272, 273, 274, -1, 884, -1, 1776, 2118, -1, -1, -1, 891, -1, -1, -1, -1, 896, -1, 898, -1, -1, 293, -1, -1, -1, 1795, -1, -1, -1, -1, -1, 750, -1, -1, -1, 2146, -1, -1, 757, -1, 312, 760, -1, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 643, -1, 965, -1, -1, -1, -1, -1, -1, 2008, 2009, -1, 2011, -1, 2013, -1, 659, 2016, 2017, 2018, 663, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1894, 1005, 1006, 1007, -1, -1, -1, -1, -1, 1013, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 709, -1, 423, 712, -1, -1, -1, -1, -1, 2074, -1, -1, 2077, -1, -1, -1, -1, 726, -1, -1, 2085, -1, -1, -1, -1, -1, 735, -1, -1, -1, -1, -1, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 475, -1, 2121, -1, -1, 768, -1, -1, -1, -1, -1, -1, 934, -1, 936, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1113, -1, -1, 1116, 1, -1, 1119, 4, 5, 6, 515, 8, 9, 806, -1, -1, -1, -1, -1, -1, -1, 814, -1, 975, -1, -1, -1, -1, -1, -1, 535, -1, -1, -1, -1, -1, -1, 542, -1, -1, 545, 834, -1, -1, 1157, -1, -1, -1, -1, -1, -1, -1, -1, 1005, -1, 1007, -1, -1, 1171, 1172, 1173, 1174, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, 1194, -1, 1196, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, 1210, -1, -1, 1213, -1, 99, 896, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, 1233, 1073, 119, 120, -1, -1, -1, 1240, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, 1258, 1259, -1, -1, -1, -1, -1, 1265, 1266, -1, -1, 1269, 1270, -1, -1, -1, 1113, -1, -1, -1, 670, 671, 672, 673, -1, -1, -1, 1124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 698, 699, 700, -1, -1, -1, -1, -1, -1, -1, -1, 709, -1, -1, -1, -1, -1, -1, -1, 717, -1, -1, -1, -1, -1, -1, 724, 725, 726, -1, 728, 729, -1, -1, -1, -1, -1, 735, -1, -1, 738, -1, -1, -1, -1, -1, -1, -1, -1, 747, -1, -1, 750, -1, -1, -1, -1, -1, -1, 757, -1, -1, 760, -1, -1, -1, -1, -1, -1, -1, -1, 1216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1238, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, 1259, -1, -1, -1, -1, -1, -1, 1266, -1, -1, -1, 1270, -1, -1, -1, -1, 28, -1, -1, -1, 1120, 1121, -1, 1123, -1, -1, -1, -1, 840, -1, -1, 1131, -1, -1, 1134, -1, -1, -1, -1, 1139, -1, -1, -1, -1, -1, -1, 1146, 1147, -1, -1, -1, 53, -1, 1473, 66, -1, 1476, -1, 60, -1, 72, 73, 74, 875, 1164, 1165, -1, -1, -1, 1169, -1, -1, 884, 85, 86, -1, -1, -1, -1, 891, -1, 83, 84, 85, 896, -1, 898, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, 1200, -1, 1202, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, 132, 133, -1, -1, 1234, -1, -1, 949, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, 965, -1, -1, 1576, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, 1590, 1591, -1, -1, -1, -1, 1596, 1597, -1, -1, 1280, 1281, -1, 185, -1, -1, -1, -1, -1, 1609, -1, -1, 1612, 1005, 1006, 1007, -1, -1, -1, -1, 1620, 1013, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1473, -1, -1, -1, -1, -1, -1, 223, 224, -1, 1483, -1, -1, -1, -1, -1, -1, -1, 1332, -1, 1334, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1345, 1346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1519, -1, 1521, -1, -1, -1, -1, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1538, 282, -1, -1, -1, -1, -1, -1, -1, -1, -1, 292, 1711, -1, -1, -1, -1, 1396, -1, 1398, -1, -1, 1113, -1, -1, 1116, -1, -1, 1119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1591, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1157, -1, -1, -1, -1, -1, -1, -1, 1773, 1774, -1, -1, -1, -1, 1171, 1172, 1173, 1174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1795, -1, -1, -1, -1, -1, -1, 1194, -1, 1196, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, 1210, -1, -1, 1213, -1, 405, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, 1240, -1, -1, 1851, 1852, 1692, -1, 1694, -1, -1, -1, 441, -1, -1, -1, -1, -1, -1, 1258, 1259, -1, 1708, 1709, -1, -1, 1265, 1266, -1, -1, 1269, 1270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 475, -1, 1734, 1735, -1, 1737, 1738, -1, -1, 1582, 1742, 1743, 1744, 1745, -1, -1, 491, -1, -1, -1, -1, 1914, -1, -1, -1, -1, -1, -1, -1, 1602, 1603, 1604, 1605, -1, 1607, 1608, -1, 53, -1, -1, 1613, 1614, 1774, 1616, -1, 1618, -1, -1, -1, -1, -1, -1, -1, 1626, 1627, 1628, 531, 532, 533, 534, -1, 536, -1, -1, 539, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1660, -1, 1662, -1, 1664, -1, 1666, 569, -1, 571, -1, 573, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 586, -1, -1, -1, -1, 132, 133, -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, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1913, -1, -1, -1, -1, -1, -1, 1473, -1, 1922, 1476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, 689, -1, -1, -1, -1, -1, -1, -1, 697, -1, -1, -1, -1, -1, 703, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1975, -1, -1, -1, 1979, 1980, -1, -1, -1, -1, 269, -1, -1, 1829, -1, -1, -1, -1, -1, -1, -1, -1, -1, 282, -1, -1, -1, -1, -1, -1, -1, -1, 1848, 292, -1, -1, -1, 1853, -1, 1855, 1856, -1, 1858, 1859, -1, 1861, -1, 1863, 1576, -1, -1, -1, -1, 1869, 1870, -1, -1, -1, -1, -1, -1, -1, 1590, 1591, -1, -1, -1, -1, 1596, 1597, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, 1609, -1, -1, 1612, -1, -1, -1, -1, -1, -1, -1, 1620, -1, -1, -1, -1, -1, 1914, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, 67, -1, -1, -1, -1, 405, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, 882, -1, 884, -1, -1, -1, -1, -1, -1, 891, -1, 101, -1, -1, 896, -1, -1, -1, 441, 1711, -1, 111, 112, 113, 114, 115, 116, -1, 2008, 2009, -1, 2011, 2012, 2013, -1, -1, -1, 2017, 2018, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 475, 935, -1, -1, -1, -1, -1, -1, -1, -1, 944, -1, -1, -1, -1, 949, -1, -1, -1, -1, -1, 955, -1, -1, -1, -1, -1, -1, -1, 1773, 1774, 965, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2074, 2075, -1, 2077, 2078, -1, -1, -1, 2082, 1795, -1, -1, -1, 93, 531, 532, 533, 534, -1, 536, -1, -1, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 550, 551, 552, -1, 1013, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2121, -1, -1, -1, -1, -1, -1, 571, -1, 573, -1, -1, -1, -1, -1, -1, 143, -1, 1851, 1852, -1, -1, 586, -1, -1, -1, -1, -1, 155, -1, -1, -1, 159, -1, -1, -1, 1059, 1060, -1, -1, -1, -1, -1, -1, -1, -1, 1069, -1, 1071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, 189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1914, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, -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, 697, -1, -1, -1, -1, -1, 703, -1, -1, 269, -1, -1, 272, 273, 274, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, 293, -1, 1191, -1, 1193, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, -1, 89, 90, 91, -1, -1, 93, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, -1, -1, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, -1, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, 143, -1, -1, -1, -1, 423, -1, -1, -1, -1, -1, 429, 155, -1, -1, -1, 159, -1, -1, -1, -1, -1, 440, -1, -1, -1, -1, -1, -1, 884, -1, -1, -1, -1, -1, -1, 891, -1, -1, -1, -1, 896, -1, -1, -1, 188, 189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 475, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 492, -1, -1, -1, -1, -1, 935, -1, -1, -1, -1, -1, -1, -1, -1, 944, -1, -1, -1, -1, 949, -1, -1, 515, -1, -1, 955, -1, -1, -1, -1, -1, -1, -1, -1, -1, 965, -1, -1, -1, -1, -1, -1, 535, -1, -1, -1, -1, -1, -1, 542, 1439, 269, 545, -1, 272, 273, 274, 1446, -1, -1, -1, -1, -1, -1, 1453, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, 1013, -1, 1474, -1, 1476, -1, -1, 1479, -1, -1, 1482, 312, -1, -1, -1, -1, -1, 318, -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, 1059, 1060, -1, -1, -1, -1, -1, -1, -1, -1, 1069, -1, 1071, -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, 1557, -1, -1, -1, -1, -1, -1, -1, 1565, 670, 671, 672, 673, -1, -1, -1, -1, -1, -1, 1576, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 698, 699, 700, -1, -1, -1, 429, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 440, -1, 717, -1, -1, -1, -1, -1, -1, 724, 725, -1, -1, 728, 729, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 750, -1, -1, -1, 1191, -1, 1193, 757, -1, -1, 760, -1, -1, -1, -1, -1, -1, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, -1, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, 535, -1, -1, -1, -1, -1, -1, 542, -1, -1, 545, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, 189, -1, -1, -1, -1, -1, -1, -1, -1, 840, -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, 1762, 1763, -1, 1765, -1, -1, -1, -1, -1, 875, -1, -1, -1, -1, -1, -1, -1, 883, 884, -1, -1, -1, -1, -1, -1, 891, -1, -1, 894, -1, -1, -1, 898, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 269, -1, -1, 272, 273, 274, -1, -1, -1, -1, -1, -1, 1819, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, 670, 671, 672, 673, 949, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, 318, -1, -1, -1, -1, 965, -1, -1, -1, -1, -1, -1, -1, 698, 699, 700, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 717, -1, -1, -1, -1, -1, -1, 724, 725, -1, 1439, 728, 729, 1005, 1006, 1007, -1, 1446, -1, -1, -1, 1013, -1, -1, 1453, -1, -1, -1, -1, -1, -1, -1, -1, 750, -1, -1, -1, -1, -1, -1, 757, -1, -1, 760, -1, 1474, -1, 1476, -1, -1, 1479, -1, -1, 1482, -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, 429, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 440, -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, 1113, -1, -1, 1116, -1, -1, 1119, 1557, -1, -1, -1, -1, -1, -1, -1, 1565, -1, -1, -1, -1, -1, 492, -1, -1, -1, -1, 1576, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1157, 883, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 894, -1, 1171, 1172, 1173, 1174, -1, -1, 535, -1, -1, -1, -1, -1, -1, 542, -1, -1, 545, -1, -1, -1, -1, -1, -1, 1194, -1, 1196, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1213, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, 1240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1258, 1259, -1, -1, -1, -1, -1, 1265, 1266, -1, -1, 1269, 1270, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1005, 1006, 1007, -1, -1, -1, -1, -1, 1013, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 670, 671, 672, 673, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1762, 1763, -1, 1765, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 698, 699, 700, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 717, -1, -1, -1, -1, -1, -1, 724, 725, -1, -1, 728, 729, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1819, -1, -1, -1, -1, -1, 1113, -1, -1, 1116, 750, 1, 1119, 3, 4, 5, 6, 757, 8, 9, 760, -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, 1157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1171, 1172, 1173, 1174, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, 1194, -1, 1196, -1, 1473, -1, -1, 1476, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1213, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, 1233, -1, -1, 119, 120, 121, -1, 1240, 124, 125, 126, 127, -1, 129, -1, -1, -1, 883, 134, 135, -1, 137, 138, 139, 140, 1258, 1259, -1, 894, -1, -1, -1, 1265, 1266, -1, -1, 1269, 1270, -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, 1576, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1590, 1591, -1, -1, -1, -1, 1596, 1597, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1609, -1, -1, 1612, -1, -1, -1, -1, -1, -1, -1, 1620, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1005, 1006, 1007, -1, -1, -1, 28, -1, 1013, -1, -1, -1, 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, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, 119, 120, 121, -1, 1473, 124, 125, 126, -1, -1, -1, 1113, -1, -1, 1116, 134, 135, 1119, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, 1773, 1774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1795, -1, -1, -1, 1157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1171, 1172, 1173, 1174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1194, -1, 1196, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1851, 1852, -1, -1, 1213, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1590, 1591, -1, -1, -1, -1, 1596, 1597, -1, -1, 1233, -1, -1, -1, -1, -1, -1, 1240, -1, 1609, -1, -1, 1612, -1, -1, -1, -1, -1, -1, -1, 1620, -1, -1, -1, -1, 1258, 1259, -1, -1, -1, -1, -1, 1265, 1266, -1, -1, 1269, 1270, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, 122, 123, 124, -1, -1, 127, 128, 129, 130, -1, 132, 1773, 1774, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1851, 1852, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, -1, -1, 132, -1, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1590, 1591, -1, -1, -1, -1, 1596, 1597, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1609, -1, -1, 1612, -1, -1, -1, -1, -1, 0, 1, 1620, 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, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1773, 1774, -1, -1, -1, -1, -1, -1, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, 1851, 1852, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 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, -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, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, 124, 125, 126, -1, 128, 129, -1, -1, 132, -1, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, -1, -1, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, -1, -1, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 1, 126, 3, 4, 5, 6, -1, 8, 9, 134, 135, -1, 137, 138, 139, 140, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, 124, 1, 126, 3, 4, 5, 6, -1, 8, 9, 134, 135, -1, 137, 138, 139, 140, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 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, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, 119, 120, 121, -1, -1, 124, 1, 126, 3, 4, 5, 6, 131, 8, 9, 134, 135, -1, 137, 138, 139, 140, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, 85, 86, 87, 88, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 99, -1, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 28, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, -1, 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, -1, -1, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, -1, -1, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, -1, 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, -1, -1, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, -1, -1, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 85, 86, 87, -1, 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, -1, -1, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, -1, -1, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 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, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, 129, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, 127, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, 131, -1, -1, 134, 135, 136, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, 125, 126, -1, 72, 73, 74, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, 127, 72, 73, 74, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, 125, 126, 127, 72, 73, 74, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 66, 8, 9, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 66, 126, -1, -1, 129, -1, 72, 73, 74, 134, 135, 136, 137, 138, 139, 140, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, 129, -1, -1, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 66, 8, 9, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 66, 126, -1, -1, 129, -1, 72, 73, 74, 134, 135, 136, 137, 138, 139, 140, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, 129, -1, -1, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, 125, 126, 127, 72, 73, 74, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, 127, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, 125, 126, 127, 72, 73, 74, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, 129, -1, -1, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, 129, -1, -1, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, 125, 126, 127, 72, 73, 74, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, 130, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, 129, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, -1, -1, -1, 134, 135, 136, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, -1, -1, -1, 134, 135, 136, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, -1, -1, 133, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, 125, 126, -1, 72, 73, 74, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, 125, 126, -1, 72, 73, 74, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, 131, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, 125, 126, -1, 72, 73, 74, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, 1, -1, 3, 4, 5, 6, -1, 8, 9, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, 28, -1, -1, -1, -1, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, 9, 66, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, 121, 66, -1, 124, -1, 126, -1, 72, 73, 74, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, -1, -1, 0, 1, -1, 3, 4, 5, 119, 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, -1, 137, 138, 139, 140, 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, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, 125, 126, 127, -1, 129, 130, -1, -1, -1, 134, 135, 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, 51, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 129, 130, -1, -1, -1, 134, 135, 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, 51, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, 0, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, 0, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, 0, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, -1, 1, 130, 3, 4, 5, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, -1, -1, 124, -1, 126, 127, 1, -1, 3, 4, 5, -1, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, -1, 72, 73, -1, 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, -1, -1, 92, 93, 94, 95, -1, 97, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 1, 121, 3, -1, 124, -1, 126, 127, -1, -1, -1, -1, -1, -1, 134, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, 1, 121, 3, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 3, -1, 121, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 3, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, 137, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 3, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 3, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 3, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 3, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 3, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, 3, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, 135, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 3, -1, -1, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, 106, -1, -1, 3, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, -1, -1, 67, -1, 69, -1, -1, -1, -1, -1, 75, 76, -1, -1, 79, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, 3, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, 133, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, 3, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, 1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, 133, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, 1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 127, -1, 129, 130, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, 1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, 1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, 1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, 1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 0, 1, -1, 3, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -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, 51, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, -1, 80, 81, 82, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 102, 3, -1, -1, 106, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, 127, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, 3, -1, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, 3, -1, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, 1, -1, 3, -1, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 1, -1, 3, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, 127, -1, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 1, -1, 3, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, 127, -1, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 1, -1, 3, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, 127, -1, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 3, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, 127, 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, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, -1, 80, 81, 82, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 102, -1, 0, 1, 106, 3, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, -1, -1, 127, -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, 51, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, 81, 82, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 101, 3, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, 125, -1, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 101, 3, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, -1, 125, -1, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 101, 3, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, -1, 125, -1, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 101, 3, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, -1, 125, -1, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 101, 3, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, -1, 125, -1, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 101, 3, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, -1, 125, -1, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 101, 3, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, -1, 125, -1, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, 124, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, 124, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, 124, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, 1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, -1, 86, 87, 88, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, 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, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, -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, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118
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, 51, 54, 66, 67, 75, 76, 77, 78, 80, 81, 82, 83, 84, 86, 87, 88, 101, 102, 106, 111, 112, 113, 114, 115, 116, 117, 118, 121, 124, 127, 147, 148, 149, 151, 176, 213, 214, 215, 216, 217, 218, 270, 273, 274, 277, 278, 279, 280, 281, 282, 283, 285, 289, 292, 293, 294, 295, 296, 297, 302, 303, 312, 313, 314, 321, 322, 326, 329, 334, 363, 366, 367, 385, 386, 388, 389, 390, 391, 392, 393, 78, 133, 5, 31, 218, 387, 218, 124, 124, 124, 151, 218, 387, 283, 284, 321, 329, 37, 149, 218, 311, 312, 314, 316, 317, 318, 320, 321, 329, 332, 333, 338, 122, 127, 148, 149, 218, 131, 133, 127, 131, 130, 121, 122, 213, 218, 131, 151, 218, 131, 133, 130, 122, 131, 133, 131, 130, 131, 149, 218, 321, 1, 31, 37, 38, 39, 127, 147, 149, 215, 217, 218, 270, 280, 281, 283, 285, 314, 318, 321, 329, 332, 333, 334, 336, 344, 345, 346, 347, 37, 38, 39, 149, 321, 346, 124, 135, 1, 29, 30, 31, 32, 33, 66, 117, 118, 125, 147, 218, 269, 273, 275, 276, 283, 285, 289, 290, 291, 297, 301, 309, 310, 350, 351, 352, 353, 354, 355, 329, 124, 314, 321, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 48, 67, 86, 88, 101, 113, 114, 115, 116, 131, 151, 172, 173, 269, 274, 275, 283, 286, 290, 292, 300, 365, 368, 369, 370, 375, 376, 377, 31, 77, 133, 215, 217, 302, 366, 367, 385, 386, 393, 1, 215, 279, 296, 302, 334, 363, 389, 1, 388, 389, 0, 218, 387, 387, 5, 128, 387, 1, 4, 6, 8, 9, 66, 72, 73, 74, 85, 86, 99, 103, 104, 105, 106, 107, 108, 109, 110, 119, 120, 121, 124, 126, 134, 135, 137, 138, 139, 140, 151, 177, 178, 218, 219, 220, 221, 222, 225, 226, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 387, 399, 400, 401, 402, 148, 218, 131, 151, 218, 283, 329, 135, 124, 135, 125, 309, 310, 354, 355, 329, 332, 333, 311, 316, 320, 321, 125, 321, 125, 321, 321, 86, 151, 203, 205, 207, 211, 212, 218, 230, 235, 251, 255, 301, 127, 122, 122, 127, 1, 69, 79, 81, 82, 89, 92, 93, 94, 95, 97, 99, 100, 124, 126, 127, 130, 152, 153, 154, 155, 156, 157, 158, 159, 174, 175, 177, 178, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 194, 198, 199, 200, 201, 218, 226, 249, 301, 313, 315, 321, 329, 334, 335, 364, 81, 82, 218, 269, 273, 283, 286, 289, 297, 304, 305, 1, 130, 200, 201, 149, 218, 1, 218, 271, 272, 1, 130, 272, 305, 66, 204, 206, 208, 209, 210, 218, 301, 1, 130, 200, 201, 305, 1, 130, 200, 201, 1, 130, 200, 201, 149, 218, 129, 129, 129, 129, 131, 329, 314, 318, 321, 1, 128, 369, 376, 377, 369, 376, 377, 1, 127, 129, 129, 329, 127, 136, 148, 218, 244, 263, 267, 268, 129, 131, 151, 218, 130, 131, 130, 131, 321, 37, 124, 135, 137, 147, 149, 218, 269, 275, 283, 285, 290, 311, 312, 321, 327, 329, 330, 333, 1, 125, 129, 1, 125, 129, 1, 129, 1, 129, 125, 125, 314, 124, 314, 124, 124, 1, 127, 1, 130, 1, 37, 38, 39, 127, 218, 269, 275, 283, 286, 290, 321, 346, 347, 1, 127, 1, 365, 368, 376, 377, 365, 368, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 86, 87, 89, 90, 91, 127, 133, 151, 195, 196, 197, 218, 226, 230, 245, 247, 251, 263, 264, 265, 326, 356, 357, 360, 361, 362, 369, 370, 371, 372, 373, 374, 376, 377, 379, 380, 381, 382, 383, 384, 130, 31, 218, 387, 218, 213, 214, 216, 217, 311, 312, 318, 321, 329, 334, 336, 369, 377, 215, 302, 128, 243, 244, 262, 125, 124, 230, 251, 124, 230, 251, 230, 251, 124, 218, 269, 275, 283, 286, 290, 308, 267, 124, 124, 308, 267, 124, 124, 124, 124, 124, 124, 230, 251, 124, 125, 245, 247, 265, 275, 283, 285, 290, 298, 348, 387, 131, 136, 179, 180, 223, 227, 245, 131, 1, 130, 131, 218, 1, 7, 8, 9, 124, 132, 135, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 128, 246, 180, 223, 224, 232, 252, 121, 141, 142, 138, 139, 10, 11, 235, 255, 12, 13, 122, 123, 14, 15, 137, 143, 144, 16, 17, 145, 246, 125, 7, 8, 9, 124, 132, 135, 246, 121, 141, 142, 138, 139, 10, 11, 12, 13, 122, 123, 14, 15, 137, 143, 144, 16, 17, 145, 246, 125, 125, 108, 218, 301, 394, 397, 398, 131, 131, 136, 148, 267, 268, 136, 148, 267, 268, 125, 125, 125, 125, 311, 316, 320, 125, 125, 311, 11, 123, 129, 128, 124, 321, 329, 330, 66, 210, 218, 301, 210, 1, 218, 269, 283, 286, 297, 306, 301, 334, 335, 124, 151, 218, 218, 301, 1, 124, 306, 121, 124, 218, 301, 127, 326, 376, 377, 376, 377, 376, 127, 376, 377, 127, 1, 130, 1, 1, 127, 129, 129, 70, 71, 92, 96, 98, 130, 70, 71, 130, 127, 1, 198, 199, 1, 198, 199, 1, 128, 124, 133, 218, 287, 288, 311, 317, 319, 321, 329, 336, 337, 338, 1, 301, 309, 352, 329, 315, 321, 124, 133, 158, 159, 174, 175, 177, 178, 187, 218, 301, 122, 151, 218, 218, 269, 283, 286, 122, 122, 128, 129, 1, 127, 131, 28, 150, 218, 123, 129, 128, 218, 330, 332, 344, 344, 344, 344, 127, 129, 130, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 223, 224, 226, 244, 263, 300, 341, 342, 311, 314, 316, 318, 320, 311, 318, 131, 245, 264, 339, 340, 376, 377, 376, 377, 344, 345, 344, 345, 136, 136, 136, 52, 350, 351, 1, 272, 131, 131, 1, 130, 200, 201, 1, 130, 200, 201, 131, 125, 218, 309, 310, 321, 329, 330, 354, 355, 136, 148, 267, 268, 321, 329, 333, 329, 124, 135, 327, 1, 1, 129, 1, 52, 218, 350, 351, 129, 1, 52, 218, 350, 351, 129, 1, 52, 218, 350, 351, 129, 52, 218, 350, 351, 3, 28, 45, 75, 76, 125, 323, 324, 325, 245, 148, 218, 130, 131, 127, 127, 133, 267, 268, 133, 124, 124, 1, 124, 53, 54, 55, 57, 58, 59, 60, 63, 87, 218, 265, 326, 356, 379, 383, 124, 218, 127, 127, 127, 223, 224, 247, 265, 124, 283, 124, 124, 191, 218, 127, 127, 127, 133, 132, 246, 1, 132, 127, 129, 247, 265, 246, 125, 129, 247, 1, 371, 372, 371, 372, 356, 357, 365, 368, 356, 357, 365, 368, 1, 1, 387, 387, 149, 218, 131, 131, 329, 318, 321, 369, 377, 369, 377, 377, 244, 145, 127, 145, 66, 147, 218, 275, 283, 285, 290, 299, 349, 218, 300, 122, 124, 135, 218, 269, 275, 283, 286, 290, 321, 328, 329, 331, 218, 269, 275, 283, 286, 290, 307, 247, 348, 376, 218, 135, 331, 307, 245, 387, 387, 387, 245, 349, 349, 125, 218, 275, 283, 285, 290, 330, 125, 132, 1, 170, 171, 1, 130, 129, 136, 1, 170, 171, 130, 1, 170, 171, 1, 218, 125, 224, 227, 228, 264, 1, 218, 247, 265, 223, 245, 1, 232, 252, 232, 252, 232, 252, 233, 253, 233, 253, 234, 254, 234, 254, 235, 255, 235, 255, 235, 255, 223, 224, 237, 256, 223, 224, 237, 256, 223, 224, 238, 257, 223, 224, 239, 258, 223, 224, 240, 259, 241, 260, 242, 261, 133, 223, 224, 247, 248, 265, 266, 223, 245, 1, 218, 125, 227, 228, 1, 218, 247, 265, 223, 245, 232, 252, 232, 252, 232, 252, 233, 253, 233, 253, 234, 254, 234, 254, 235, 255, 235, 255, 235, 255, 235, 255, 223, 224, 237, 256, 223, 224, 237, 256, 223, 224, 238, 257, 223, 224, 239, 258, 223, 224, 240, 259, 241, 260, 242, 261, 133, 247, 248, 265, 266, 223, 245, 122, 123, 218, 395, 396, 218, 130, 394, 397, 398, 398, 136, 136, 136, 136, 136, 136, 211, 203, 205, 207, 218, 321, 329, 123, 128, 330, 123, 131, 122, 131, 218, 269, 283, 286, 330, 321, 329, 336, 337, 191, 288, 311, 321, 329, 131, 218, 131, 218, 330, 218, 321, 124, 127, 130, 181, 182, 181, 182, 376, 376, 376, 220, 376, 376, 1, 341, 342, 125, 267, 268, 131, 129, 1, 301, 309, 352, 329, 311, 319, 321, 133, 326, 218, 124, 315, 315, 218, 1, 1, 288, 212, 122, 210, 210, 267, 268, 271, 200, 201, 1, 130, 272, 128, 133, 128, 133, 209, 205, 218, 128, 218, 128, 376, 377, 1, 127, 129, 127, 129, 127, 162, 163, 166, 167, 168, 130, 160, 163, 127, 130, 162, 163, 166, 167, 168, 128, 37, 336, 337, 338, 339, 340, 343, 1, 130, 272, 1, 130, 272, 1, 130, 200, 201, 321, 329, 330, 125, 125, 125, 136, 136, 136, 329, 327, 125, 354, 355, 136, 148, 267, 268, 350, 351, 301, 350, 350, 350, 351, 125, 124, 125, 129, 324, 125, 125, 125, 1, 170, 171, 356, 357, 365, 368, 133, 133, 356, 357, 365, 368, 247, 265, 247, 265, 125, 247, 265, 133, 267, 268, 133, 124, 124, 356, 124, 224, 265, 124, 133, 57, 1, 125, 127, 218, 247, 265, 378, 127, 127, 127, 127, 127, 387, 124, 245, 245, 218, 356, 357, 365, 368, 91, 224, 264, 89, 90, 91, 245, 264, 224, 264, 245, 264, 122, 318, 377, 377, 127, 247, 248, 265, 266, 247, 248, 265, 266, 147, 148, 147, 275, 283, 285, 290, 330, 125, 125, 125, 330, 212, 125, 321, 331, 354, 355, 267, 268, 122, 329, 124, 328, 135, 122, 135, 218, 269, 275, 283, 286, 290, 331, 125, 125, 125, 125, 267, 268, 135, 135, 331, 129, 125, 129, 129, 129, 125, 129, 232, 252, 387, 1, 130, 223, 245, 1, 1, 125, 129, 125, 136, 136, 1, 129, 133, 133, 129, 133, 133, 125, 136, 136, 133, 133, 133, 133, 218, 218, 127, 129, 218, 387, 130, 130, 321, 329, 205, 212, 122, 131, 131, 218, 329, 321, 125, 329, 311, 125, 131, 131, 218, 125, 1, 170, 171, 287, 321, 218, 124, 311, 319, 319, 267, 268, 124, 125, 123, 212, 123, 123, 127, 1, 127, 203, 202, 301, 203, 202, 207, 128, 131, 1, 164, 165, 1, 164, 165, 377, 1, 341, 342, 129, 130, 339, 340, 1, 127, 1, 127, 329, 327, 125, 125, 125, 136, 136, 136, 330, 333, 247, 125, 324, 1, 356, 357, 365, 368, 356, 357, 365, 368, 125, 125, 125, 125, 1, 356, 125, 247, 356, 357, 133, 133, 265, 125, 247, 265, 57, 265, 378, 387, 124, 356, 133, 127, 1, 127, 1, 125, 265, 378, 3, 125, 133, 387, 125, 125, 129, 124, 124, 191, 133, 133, 133, 133, 133, 133, 133, 133, 125, 125, 1, 125, 123, 321, 329, 331, 125, 125, 125, 136, 136, 212, 328, 125, 354, 355, 267, 268, 212, 267, 268, 122, 135, 124, 339, 136, 136, 267, 268, 267, 268, 135, 348, 218, 218, 245, 1, 218, 224, 264, 223, 224, 223, 224, 244, 262, 223, 224, 244, 262, 223, 224, 223, 224, 244, 262, 223, 224, 244, 262, 223, 224, 244, 262, 223, 224, 244, 262, 223, 224, 244, 262, 223, 224, 244, 262, 395, 127, 127, 123, 212, 131, 376, 311, 128, 131, 1, 124, 133, 133, 123, 200, 201, 127, 200, 201, 128, 330, 128, 207, 343, 130, 339, 340, 1, 200, 201, 200, 201, 125, 356, 356, 356, 356, 356, 357, 125, 124, 378, 125, 247, 265, 247, 356, 1, 125, 247, 265, 135, 358, 359, 387, 127, 359, 3, 125, 133, 131, 191, 245, 245, 1, 1, 328, 125, 123, 125, 125, 136, 136, 123, 136, 136, 212, 267, 268, 348, 136, 136, 136, 136, 267, 268, 125, 125, 125, 125, 125, 123, 341, 267, 268, 267, 268, 200, 201, 203, 203, 129, 130, 1, 65, 65, 247, 265, 125, 247, 265, 125, 127, 125, 127, 356, 357, 125, 356, 357, 218, 125, 129, 133, 124, 3, 125, 133, 359, 127, 359, 74, 191, 192, 193, 125, 125, 125, 129, 123, 136, 136, 125, 136, 136, 127, 130, 356, 356, 125, 125, 127, 356, 247, 356, 357, 136, 127, 358, 359, 245, 359, 127, 359, 125, 133, 3, 125, 133, 376, 376, 130, 192, 131, 191, 232, 252, 339, 125, 387, 125, 125, 125, 125, 133, 127, 359, 359, 127, 359, 193, 125, 356, 124, 127, 127, 127, 359, 125, 125, 125, 133, 130, 245, 125, 127, 127, 127, 359, 125, 127, 125, 127
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 < 146)
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 147:
1734 {
1735 FreeSpecifier((*yyvaluep).specifier);
1736 }
1737 ;
1738 break;
1739 case 148:
1740 {
1741 FreeSpecifier((*yyvaluep).specifier);
1742 }
1743 ;
1744 break;
1745 case 149:
1746 {
1747 FreeSpecifier((*yyvaluep).specifier);
1748 }
1749 ;
1750 break;
1751 case 150:
1752 {
1753 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
1754 }
1755 ;
1756 break;
1757 case 151:
1758 {
1759 FreeSpecifier((*yyvaluep).specifier);
1760 }
1761 ;
1762 break;
1763 case 152:
1764 {
1765 FreeClassFunction((*yyvaluep).classFunction);
1766 }
1767 ;
1768 break;
1769 case 153:
1770 {
1771 FreeClassFunction((*yyvaluep).classFunction);
1772 }
1773 ;
1774 break;
1775 case 154:
1776 {
1777 FreeClassFunction((*yyvaluep).classFunction);
1778 }
1779 ;
1780 break;
1781 case 155:
1782 {
1783 FreeClassFunction((*yyvaluep).classFunction);
1784 }
1785 ;
1786 break;
1787 case 156:
1788 {
1789 FreeClassFunction((*yyvaluep).classFunction);
1790 }
1791 ;
1792 break;
1793 case 157:
1794 {
1795 FreeClassFunction((*yyvaluep).classFunction);
1796 }
1797 ;
1798 break;
1799 case 158:
1800 {
1801 FreeClassFunction((*yyvaluep).classFunction);
1802 }
1803 ;
1804 break;
1805 case 159:
1806 {
1807 FreeClassFunction((*yyvaluep).classFunction);
1808 }
1809 ;
1810 break;
1811 case 160:
1812 {
1813 FreeClassFunction((*yyvaluep).classFunction);
1814 }
1815 ;
1816 break;
1817 case 161:
1818 {
1819 FreeClassFunction((*yyvaluep).classFunction);
1820 }
1821 ;
1822 break;
1823 case 162:
1824 {
1825 FreeClassFunction((*yyvaluep).classFunction);
1826 }
1827 ;
1828 break;
1829 case 163:
1830 {
1831 FreeClassFunction((*yyvaluep).classFunction);
1832 }
1833 ;
1834 break;
1835 case 164:
1836 {
1837 FreeMemberInit((*yyvaluep).memberInit);
1838 }
1839 ;
1840 break;
1841 case 165:
1842 {
1843 FreeMemberInit((*yyvaluep).memberInit);
1844 }
1845 ;
1846 break;
1847 case 166:
1848 {
1849 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1850 }
1851 ;
1852 break;
1853 case 167:
1854 {
1855 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1856 }
1857 ;
1858 break;
1859 case 168:
1860 {
1861 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1862 }
1863 ;
1864 break;
1865 case 169:
1866 {
1867 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1868 }
1869 ;
1870 break;
1871 case 170:
1872 {
1873 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1874 }
1875 ;
1876 break;
1877 case 171:
1878 {
1879 FreeList((*yyvaluep).list, (void *)(FreeMembersInit));
1880 }
1881 ;
1882 break;
1883 case 172:
1884 {
1885 FreeInstance((*yyvaluep).instance);
1886 }
1887 ;
1888 break;
1889 case 173:
1890 {
1891 FreeInstance((*yyvaluep).instance);
1892 }
1893 ;
1894 break;
1895 case 177:
1896 {
1897 FreeInstance((*yyvaluep).instance);
1898 }
1899 ;
1900 break;
1901 case 178:
1902 {
1903 FreeInstance((*yyvaluep).instance);
1904 }
1905 ;
1906 break;
1907 case 181:
1908 {
1909 FreeMemberInit((*yyvaluep).memberInit);
1910 }
1911 ;
1912 break;
1913 case 182:
1914 {
1915 FreeMemberInit((*yyvaluep).memberInit);
1916 }
1917 ;
1918 break;
1919 case 183:
1920 {
1921 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1922 }
1923 ;
1924 break;
1925 case 184:
1926 {
1927 FreeList((*yyvaluep).list, (void *)(FreeMemberInit));
1928 }
1929 ;
1930 break;
1931 case 187:
1932 {
1933 FreeProperty((*yyvaluep).prop);
1934 }
1935 ;
1936 break;
1937 case 198:
1938 {
1939 FreeClassDef((*yyvaluep).classDef);
1940 }
1941 ;
1942 break;
1943 case 199:
1944 {
1945 FreeClassDef((*yyvaluep).classDef);
1946 }
1947 ;
1948 break;
1949 case 200:
1950 {
1951 FreeList((*yyvaluep).list, (void *)(FreeClassDef));
1952 }
1953 ;
1954 break;
1955 case 201:
1956 {
1957 FreeList((*yyvaluep).list, (void *)(FreeClassDef));
1958 }
1959 ;
1960 break;
1961 case 202:
1962 {
1963 FreeTemplateDataType((*yyvaluep).templateDatatype);
1964 }
1965 ;
1966 break;
1967 case 203:
1968 {
1969 FreeTemplateArgument((*yyvaluep).templateArgument);
1970 }
1971 ;
1972 break;
1973 case 204:
1974 {
1975 FreeTemplateParameter((*yyvaluep).templateParameter);
1976 }
1977 ;
1978 break;
1979 case 205:
1980 {
1981 FreeTemplateArgument((*yyvaluep).templateArgument);
1982 }
1983 ;
1984 break;
1985 case 206:
1986 {
1987 FreeTemplateParameter((*yyvaluep).templateParameter);
1988 }
1989 ;
1990 break;
1991 case 207:
1992 {
1993 FreeTemplateArgument((*yyvaluep).templateArgument);
1994 }
1995 ;
1996 break;
1997 case 208:
1998 {
1999 FreeTemplateParameter((*yyvaluep).templateParameter);
2000 }
2001 ;
2002 break;
2003 case 209:
2004 {
2005 FreeTemplateParameter((*yyvaluep).templateParameter);
2006 }
2007 ;
2008 break;
2009 case 210:
2010 {
2011 FreeList((*yyvaluep).list, (void *)(FreeTemplateParameter));
2012 }
2013 ;
2014 break;
2015 case 211:
2016 {
2017 FreeTemplateArgument((*yyvaluep).templateArgument);
2018 }
2019 ;
2020 break;
2021 case 212:
2022 {
2023 FreeList((*yyvaluep).list, (void *)(FreeTemplateArgument));
2024 }
2025 ;
2026 break;
2027 case 213:
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 214:
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 215:
2056 {
2057 FreeClass((*yyvaluep)._class);
2058 }
2059 ;
2060 break;
2061 case 216:
2062 {
2063 FreeClass((*yyvaluep)._class);
2064 }
2065 ;
2066 break;
2067 case 217:
2068 {
2069 FreeClass((*yyvaluep)._class);
2070 }
2071 ;
2072 break;
2073 case 218:
2074 {
2075 FreeIdentifier((*yyvaluep).id);
2076 }
2077 ;
2078 break;
2079 case 219:
2080 {
2081 FreeExpression((*yyvaluep).exp);
2082 }
2083 ;
2084 break;
2085 case 220:
2086 {
2087 FreeExpression((*yyvaluep).exp);
2088 }
2089 ;
2090 break;
2091 case 225:
2092 {
2093 FreeExpression((*yyvaluep).exp);
2094 }
2095 ;
2096 break;
2097 case 226:
2098 {
2099 FreeExpression((*yyvaluep).exp);
2100 }
2101 ;
2102 break;
2103 case 227:
2104 {
2105 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2106 }
2107 ;
2108 break;
2109 case 228:
2110 {
2111 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2112 }
2113 ;
2114 break;
2115 case 230:
2116 {
2117 FreeExpression((*yyvaluep).exp);
2118 }
2119 ;
2120 break;
2121 case 232:
2122 {
2123 FreeExpression((*yyvaluep).exp);
2124 }
2125 ;
2126 break;
2127 case 233:
2128 {
2129 FreeExpression((*yyvaluep).exp);
2130 }
2131 ;
2132 break;
2133 case 234:
2134 {
2135 FreeExpression((*yyvaluep).exp);
2136 }
2137 ;
2138 break;
2139 case 235:
2140 {
2141 FreeExpression((*yyvaluep).exp);
2142 }
2143 ;
2144 break;
2145 case 237:
2146 {
2147 FreeExpression((*yyvaluep).exp);
2148 }
2149 ;
2150 break;
2151 case 238:
2152 {
2153 FreeExpression((*yyvaluep).exp);
2154 }
2155 ;
2156 break;
2157 case 239:
2158 {
2159 FreeExpression((*yyvaluep).exp);
2160 }
2161 ;
2162 break;
2163 case 240:
2164 {
2165 FreeExpression((*yyvaluep).exp);
2166 }
2167 ;
2168 break;
2169 case 241:
2170 {
2171 FreeExpression((*yyvaluep).exp);
2172 }
2173 ;
2174 break;
2175 case 242:
2176 {
2177 FreeExpression((*yyvaluep).exp);
2178 }
2179 ;
2180 break;
2181 case 243:
2182 {
2183 FreeExpression((*yyvaluep).exp);
2184 }
2185 ;
2186 break;
2187 case 244:
2188 {
2189 FreeExpression((*yyvaluep).exp);
2190 }
2191 ;
2192 break;
2193 case 245:
2194 {
2195 FreeExpression((*yyvaluep).exp);
2196 }
2197 ;
2198 break;
2199 case 247:
2200 {
2201 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2202 }
2203 ;
2204 break;
2205 case 249:
2206 {
2207 FreeExpression((*yyvaluep).exp);
2208 }
2209 ;
2210 break;
2211 case 251:
2212 {
2213 FreeExpression((*yyvaluep).exp);
2214 }
2215 ;
2216 break;
2217 case 252:
2218 {
2219 FreeExpression((*yyvaluep).exp);
2220 }
2221 ;
2222 break;
2223 case 253:
2224 {
2225 FreeExpression((*yyvaluep).exp);
2226 }
2227 ;
2228 break;
2229 case 254:
2230 {
2231 FreeExpression((*yyvaluep).exp);
2232 }
2233 ;
2234 break;
2235 case 255:
2236 {
2237 FreeExpression((*yyvaluep).exp);
2238 }
2239 ;
2240 break;
2241 case 256:
2242 {
2243 FreeExpression((*yyvaluep).exp);
2244 }
2245 ;
2246 break;
2247 case 257:
2248 {
2249 FreeExpression((*yyvaluep).exp);
2250 }
2251 ;
2252 break;
2253 case 258:
2254 {
2255 FreeExpression((*yyvaluep).exp);
2256 }
2257 ;
2258 break;
2259 case 259:
2260 {
2261 FreeExpression((*yyvaluep).exp);
2262 }
2263 ;
2264 break;
2265 case 260:
2266 {
2267 FreeExpression((*yyvaluep).exp);
2268 }
2269 ;
2270 break;
2271 case 261:
2272 {
2273 FreeExpression((*yyvaluep).exp);
2274 }
2275 ;
2276 break;
2277 case 262:
2278 {
2279 FreeExpression((*yyvaluep).exp);
2280 }
2281 ;
2282 break;
2283 case 263:
2284 {
2285 FreeExpression((*yyvaluep).exp);
2286 }
2287 ;
2288 break;
2289 case 264:
2290 {
2291 FreeExpression((*yyvaluep).exp);
2292 }
2293 ;
2294 break;
2295 case 265:
2296 {
2297 FreeList((*yyvaluep).list, (void *)(FreeExpression));
2298 }
2299 ;
2300 break;
2301 case 267:
2302 {
2303 FreeExpression((*yyvaluep).exp);
2304 }
2305 ;
2306 break;
2307 case 268:
2308 {
2309 FreeExpression((*yyvaluep).exp);
2310 }
2311 ;
2312 break;
2313 case 269:
2314 {
2315 FreeSpecifier((*yyvaluep).specifier);
2316 }
2317 ;
2318 break;
2319 case 270:
2320 {
2321 FreeSpecifier((*yyvaluep).specifier);
2322 }
2323 ;
2324 break;
2325 case 271:
2326 {
2327 FreeEnumerator((*yyvaluep).enumerator);
2328 }
2329 ;
2330 break;
2331 case 272:
2332 {
2333 FreeList((*yyvaluep).list, (void *)(FreeEnumerator));
2334 }
2335 ;
2336 break;
2337 case 274:
2338 {
2339 FreeSpecifier((*yyvaluep).specifier);
2340 }
2341 ;
2342 break;
2343 case 275:
2344 {
2345 FreeSpecifier((*yyvaluep).specifier);
2346 }
2347 ;
2348 break;
2349 case 276:
2350 {
2351 FreeSpecifier((*yyvaluep).specifier);
2352 }
2353 ;
2354 break;
2355 case 278:
2356 {
2357 FreeSpecifier((*yyvaluep).specifier);
2358 }
2359 ;
2360 break;
2361 case 279:
2362 {
2363 FreeSpecifier((*yyvaluep).specifier);
2364 }
2365 ;
2366 break;
2367 case 280:
2368 {
2369 FreeSpecifier((*yyvaluep).specifier);
2370 }
2371 ;
2372 break;
2373 case 281:
2374 {
2375 FreeSpecifier((*yyvaluep).specifier);
2376 }
2377 ;
2378 break;
2379 case 282:
2380 {
2381 FreeSpecifier((*yyvaluep).specifier);
2382 }
2383 ;
2384 break;
2385 case 283:
2386 {
2387 FreeSpecifier((*yyvaluep).specifier);
2388 }
2389 ;
2390 break;
2391 case 284:
2392 {
2393 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2394 }
2395 ;
2396 break;
2397 case 285:
2398 {
2399 FreeSpecifier((*yyvaluep).specifier);
2400 }
2401 ;
2402 break;
2403 case 286:
2404 {
2405 FreeSpecifier((*yyvaluep).specifier);
2406 }
2407 ;
2408 break;
2409 case 287:
2410 {
2411 FreeDeclarator((*yyvaluep).declarator);
2412 }
2413 ;
2414 break;
2415 case 288:
2416 {
2417 FreeList((*yyvaluep).list, (void *)(FreeDeclarator));
2418 }
2419 ;
2420 break;
2421 case 289:
2422 {
2423 FreeSpecifier((*yyvaluep).specifier);
2424 }
2425 ;
2426 break;
2427 case 290:
2428 {
2429 FreeSpecifier((*yyvaluep).specifier);
2430 }
2431 ;
2432 break;
2433 case 291:
2434 {
2435 FreeSpecifier((*yyvaluep).specifier);
2436 }
2437 ;
2438 break;
2439 case 292:
2440 {
2441 FreeSpecifier((*yyvaluep).specifier);
2442 }
2443 ;
2444 break;
2445 case 293:
2446 {
2447 FreeSpecifier((*yyvaluep).specifier);
2448 }
2449 ;
2450 break;
2451 case 294:
2452 {
2453 FreeSpecifier((*yyvaluep).specifier);
2454 }
2455 ;
2456 break;
2457 case 295:
2458 {
2459 FreeSpecifier((*yyvaluep).specifier);
2460 }
2461 ;
2462 break;
2463 case 296:
2464 {
2465 FreeSpecifier((*yyvaluep).specifier);
2466 }
2467 ;
2468 break;
2469 case 298:
2470 {
2471 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2472 }
2473 ;
2474 break;
2475 case 299:
2476 {
2477 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2478 }
2479 ;
2480 break;
2481 case 300:
2482 {
2483 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2484 }
2485 ;
2486 break;
2487 case 301:
2488 {
2489 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2490 }
2491 ;
2492 break;
2493 case 302:
2494 {
2495 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2496 }
2497 ;
2498 break;
2499 case 303:
2500 {
2501 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2502 }
2503 ;
2504 break;
2505 case 304:
2506 {
2507 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2508 }
2509 ;
2510 break;
2511 case 305:
2512 {
2513 FreeList((*yyvaluep).list, (void *)(FreeSpecifier));
2514 }
2515 ;
2516 break;
2517 case 309:
2518 {
2519 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2520 }
2521 ;
2522 break;
2523 case 310:
2524 {
2525 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2526 }
2527 ;
2528 break;
2529 case 311:
2530 {
2531 FreeDeclarator((*yyvaluep).declarator);
2532 }
2533 ;
2534 break;
2535 case 312:
2536 {
2537 FreeDeclarator((*yyvaluep).declarator);
2538 }
2539 ;
2540 break;
2541 case 313:
2542 {
2543 FreeDeclarator((*yyvaluep).declarator);
2544 }
2545 ;
2546 break;
2547 case 314:
2548 {
2549 FreeDeclarator((*yyvaluep).declarator);
2550 }
2551 ;
2552 break;
2553 case 315:
2554 {
2555 FreeDeclarator((*yyvaluep).declarator);
2556 }
2557 ;
2558 break;
2559 case 316:
2560 {
2561 FreeDeclarator((*yyvaluep).declarator);
2562 }
2563 ;
2564 break;
2565 case 317:
2566 {
2567 FreeDeclarator((*yyvaluep).declarator);
2568 }
2569 ;
2570 break;
2571 case 318:
2572 {
2573 FreeDeclarator((*yyvaluep).declarator);
2574 }
2575 ;
2576 break;
2577 case 319:
2578 {
2579 FreeDeclarator((*yyvaluep).declarator);
2580 }
2581 ;
2582 break;
2583 case 320:
2584 {
2585 FreeDeclarator((*yyvaluep).declarator);
2586 }
2587 ;
2588 break;
2589 case 321:
2590 {
2591 FreeExtDecl((*yyvaluep).extDecl);
2592 }
2593 ;
2594 break;
2595 case 323:
2596 {
2597 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
2598 }
2599 ;
2600 break;
2601 case 324:
2602 {
2603 FreeAttribute((*yyvaluep).attribute);
2604 }
2605 ;
2606 break;
2607 case 325:
2608 {
2609 FreeList((*yyvaluep).list, (void *)(FreeAttribute));
2610 }
2611 ;
2612 break;
2613 case 326:
2614 {
2615 FreeAttrib((*yyvaluep).attrib);
2616 }
2617 ;
2618 break;
2619 case 327:
2620 {
2621 FreeDeclarator((*yyvaluep).declarator);
2622 }
2623 ;
2624 break;
2625 case 328:
2626 {
2627 FreeDeclarator((*yyvaluep).declarator);
2628 }
2629 ;
2630 break;
2631 case 329:
2632 {
2633 FreePointer((*yyvaluep).pointer);
2634 }
2635 ;
2636 break;
2637 case 330:
2638 {
2639 FreeDeclarator((*yyvaluep).declarator);
2640 }
2641 ;
2642 break;
2643 case 331:
2644 {
2645 FreeDeclarator((*yyvaluep).declarator);
2646 }
2647 ;
2648 break;
2649 case 332:
2650 {
2651 FreeDeclarator((*yyvaluep).declarator);
2652 }
2653 ;
2654 break;
2655 case 333:
2656 {
2657 FreeDeclarator((*yyvaluep).declarator);
2658 }
2659 ;
2660 break;
2661 case 334:
2662 {
2663 FreeDeclarator((*yyvaluep).declarator);
2664 }
2665 ;
2666 break;
2667 case 335:
2668 {
2669 FreeDeclarator((*yyvaluep).declarator);
2670 }
2671 ;
2672 break;
2673 case 336:
2674 {
2675 FreeDeclarator((*yyvaluep).declarator);
2676 }
2677 ;
2678 break;
2679 case 337:
2680 {
2681 FreeDeclarator((*yyvaluep).declarator);
2682 }
2683 ;
2684 break;
2685 case 338:
2686 {
2687 FreeDeclarator((*yyvaluep).declarator);
2688 }
2689 ;
2690 break;
2691 case 339:
2692 {
2693 FreeInitializer((*yyvaluep).initializer);
2694 }
2695 ;
2696 break;
2697 case 340:
2698 {
2699 FreeInitializer((*yyvaluep).initializer);
2700 }
2701 ;
2702 break;
2703 case 341:
2704 {
2705 FreeInitializer((*yyvaluep).initializer);
2706 }
2707 ;
2708 break;
2709 case 342:
2710 {
2711 FreeInitializer((*yyvaluep).initializer);
2712 }
2713 ;
2714 break;
2715 case 343:
2716 {
2717 FreeList((*yyvaluep).list, (void *)(FreeInitializer));
2718 }
2719 ;
2720 break;
2721 case 344:
2722 {
2723 FreeInitDeclarator((*yyvaluep).initDeclarator);
2724 }
2725 ;
2726 break;
2727 case 345:
2728 {
2729 FreeInitDeclarator((*yyvaluep).initDeclarator);
2730 }
2731 ;
2732 break;
2733 case 346:
2734 {
2735 FreeList((*yyvaluep).list, (void *)(FreeInitDeclarator));
2736 }
2737 ;
2738 break;
2739 case 347:
2740 {
2741 FreeList((*yyvaluep).list, (void *)(FreeInitDeclarator));
2742 }
2743 ;
2744 break;
2745 case 348:
2746 {
2747 FreeTypeName((*yyvaluep).typeName);
2748 }
2749 ;
2750 break;
2751 case 349:
2752 {
2753 FreeTypeName((*yyvaluep).typeName);
2754 }
2755 ;
2756 break;
2757 case 350:
2758 {
2759 FreeTypeName((*yyvaluep).typeName);
2760 }
2761 ;
2762 break;
2763 case 351:
2764 {
2765 FreeTypeName((*yyvaluep).typeName);
2766 }
2767 ;
2768 break;
2769 case 352:
2770 {
2771 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2772 }
2773 ;
2774 break;
2775 case 353:
2776 {
2777 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2778 }
2779 ;
2780 break;
2781 case 354:
2782 {
2783 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2784 }
2785 ;
2786 break;
2787 case 355:
2788 {
2789 FreeList((*yyvaluep).list, (void *)(FreeTypeName));
2790 }
2791 ;
2792 break;
2793 case 356:
2794 {
2795 FreeStatement((*yyvaluep).stmt);
2796 }
2797 ;
2798 break;
2799 case 357:
2800 {
2801 FreeStatement((*yyvaluep).stmt);
2802 }
2803 ;
2804 break;
2805 case 361:
2806 {
2807 FreeStatement((*yyvaluep).stmt);
2808 }
2809 ;
2810 break;
2811 case 362:
2812 {
2813 FreeStatement((*yyvaluep).stmt);
2814 }
2815 ;
2816 break;
2817 case 363:
2818 {
2819 }
2820 ;
2821 break;
2822 case 365:
2823 {
2824 FreeDeclaration((*yyvaluep).declaration);
2825 }
2826 ;
2827 break;
2828 case 369:
2829 {
2830 FreeList((*yyvaluep).list, (void *)(FreeDeclaration));
2831 }
2832 ;
2833 break;
2834 case 370:
2835 {
2836 FreeList((*yyvaluep).list, (void *)(FreeDeclaration));
2837 }
2838 ;
2839 break;
2840 case 371:
2841 {
2842 FreeList((*yyvaluep).list, (void *)(FreeStatement));
2843 }
2844 ;
2845 break;
2846 case 372:
2847 {
2848 FreeList((*yyvaluep).list, (void *)(FreeStatement));
2849 }
2850 ;
2851 break;
2852 case 373:
2853 {
2854 FreeStatement((*yyvaluep).stmt);
2855 }
2856 ;
2857 break;
2858 case 374:
2859 {
2860 FreeStatement((*yyvaluep).stmt);
2861 }
2862 ;
2863 break;
2864 case 375:
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 376:
2877 {
2878 FreeStatement((*yyvaluep).stmt);
2879 }
2880 ;
2881 break;
2882 case 377:
2883 {
2884 FreeStatement((*yyvaluep).stmt);
2885 }
2886 ;
2887 break;
2888 case 378:
2889 {
2890 FreeStatement((*yyvaluep).stmt);
2891 }
2892 ;
2893 break;
2894 case 379:
2895 {
2896 FreeStatement((*yyvaluep).stmt);
2897 }
2898 ;
2899 break;
2900 case 380:
2901 {
2902 FreeStatement((*yyvaluep).stmt);
2903 }
2904 ;
2905 break;
2906 case 381:
2907 {
2908 FreeStatement((*yyvaluep).stmt);
2909 }
2910 ;
2911 break;
2912 case 382:
2913 {
2914 FreeStatement((*yyvaluep).stmt);
2915 }
2916 ;
2917 break;
2918 case 383:
2919 {
2920 FreeStatement((*yyvaluep).stmt);
2921 }
2922 ;
2923 break;
2924 case 384:
2925 {
2926 FreeStatement((*yyvaluep).stmt);
2927 }
2928 ;
2929 break;
2930 case 385:
2931 {
2932 FreeFunction((*yyvaluep).function);
2933 }
2934 ;
2935 break;
2936 case 386:
2937 {
2938 FreeFunction((*yyvaluep).function);
2939 }
2940 ;
2941 break;
2942 case 387:
2943 {
2944 (__ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).string), (*yyvaluep).string = 0);
2945 }
2946 ;
2947 break;
2948 case 388:
2949 {
2950 FreeExternal((*yyvaluep).external);
2951 }
2952 ;
2953 break;
2954 case 389:
2955 {
2956 FreeExternal((*yyvaluep).external);
2957 }
2958 ;
2959 break;
2960 case 390:
2961 {
2962 if((*yyvaluep).list != ast)
2963 FreeList((*yyvaluep).list, (void *)(FreeExternal));
2964 }
2965 ;
2966 break;
2967 case 391:
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 == 299)
3085 goto yyacceptlab;
3086 goto yybackup;
3087 yybackup:
3088 yyn = yypact[yystate];
3089 if(yyn == -2034)
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) <= 375 ? 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 || 42058 < yyn || yycheck[yyn] != yytoken)
3124 goto yydefault;
3125 yyn = yytable[yyn];
3126 if(yyn <= 0)
3127 {
3128 if(yyn == 0 || yyn == -1293)
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(INT128);
8075 ;
8076 }
8077 break;
8078 case 667:
8079 {
8080 yyval.specifier = MkSpecifier(VALIST);
8081 ;
8082 }
8083 break;
8084 case 668:
8085 {
8086 yyval.specifier = MkSpecifier(LONG);
8087 ;
8088 }
8089 break;
8090 case 669:
8091 {
8092 yyval.specifier = MkSpecifier(FLOAT);
8093 ;
8094 }
8095 break;
8096 case 670:
8097 {
8098 yyval.specifier = MkSpecifier(DOUBLE);
8099 ;
8100 }
8101 break;
8102 case 671:
8103 {
8104 yyval.specifier = MkSpecifier(SIGNED);
8105 ;
8106 }
8107 break;
8108 case 672:
8109 {
8110 yyval.specifier = MkSpecifier(UNSIGNED);
8111 ;
8112 }
8113 break;
8114 case 673:
8115 {
8116 yyval.specifier = MkSpecifier(EXTENSION);
8117 ;
8118 }
8119 break;
8120 case 677:
8121 {
8122 yyval.specifier = MkSpecifierTypeOf(yyvsp[(3) - (4)].exp);
8123 ;
8124 }
8125 break;
8126 case 678:
8127 {
8128 yyval.specifier = MkSpecifierSubClass(yyvsp[(3) - (4)].specifier);
8129 ;
8130 }
8131 break;
8132 case 679:
8133 {
8134 _DeclClass(yyvsp[(3) - (4)].id->_class, yyvsp[(3) - (4)].id->string);
8135 yyval.specifier = MkSpecifierSubClass(MkSpecifierName(yyvsp[(3) - (4)].id->string));
8136 FreeIdentifier(yyvsp[(3) - (4)].id);
8137 ;
8138 }
8139 break;
8140 case 680:
8141 {
8142 yyval.specifier = MkSpecifier(THISCLASS);
8143 ;
8144 }
8145 break;
8146 case 681:
8147 {
8148 yyval.specifier = MkSpecifier(TYPED_OBJECT);
8149 ;
8150 }
8151 break;
8152 case 682:
8153 {
8154 yyval.specifier = MkSpecifier(ANY_OBJECT);
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(BOOL);
8167 ;
8168 }
8169 break;
8170 case 685:
8171 {
8172 yyval.specifier = MkSpecifier(_COMPLEX);
8173 ;
8174 }
8175 break;
8176 case 686:
8177 {
8178 yyval.specifier = MkSpecifier(_IMAGINARY);
8179 ;
8180 }
8181 break;
8182 case 687:
8183 {
8184 yyval.specifier = MkSpecifier(VOID);
8185 ;
8186 }
8187 break;
8188 case 688:
8189 {
8190 yyval.specifier = MkSpecifier(CHAR);
8191 ;
8192 }
8193 break;
8194 case 689:
8195 {
8196 yyval.specifier = MkSpecifier(SHORT);
8197 ;
8198 }
8199 break;
8200 case 690:
8201 {
8202 yyval.specifier = MkSpecifier(INT);
8203 ;
8204 }
8205 break;
8206 case 691:
8207 {
8208 yyval.specifier = MkSpecifier(UINT);
8209 ;
8210 }
8211 break;
8212 case 692:
8213 {
8214 yyval.specifier = MkSpecifier(INT64);
8215 ;
8216 }
8217 break;
8218 case 693:
8219 {
8220 yyval.specifier = MkSpecifier(INT128);
8221 ;
8222 }
8223 break;
8224 case 694:
8225 {
8226 yyval.specifier = MkSpecifier(VALIST);
8227 ;
8228 }
8229 break;
8230 case 695:
8231 {
8232 yyval.specifier = MkSpecifier(LONG);
8233 ;
8234 }
8235 break;
8236 case 696:
8237 {
8238 yyval.specifier = MkSpecifier(FLOAT);
8239 ;
8240 }
8241 break;
8242 case 697:
8243 {
8244 yyval.specifier = MkSpecifier(DOUBLE);
8245 ;
8246 }
8247 break;
8248 case 698:
8249 {
8250 yyval.specifier = MkSpecifier(SIGNED);
8251 ;
8252 }
8253 break;
8254 case 699:
8255 {
8256 yyval.specifier = MkSpecifier(UNSIGNED);
8257 ;
8258 }
8259 break;
8260 case 700:
8261 {
8262 yyval.specifier = MkSpecifier(EXTENSION);
8263 ;
8264 }
8265 break;
8266 case 704:
8267 {
8268 yyval.specifier = MkSpecifier(_BOOL);
8269 ;
8270 }
8271 break;
8272 case 705:
8273 {
8274 yyval.specifier = MkSpecifier(BOOL);
8275 ;
8276 }
8277 break;
8278 case 706:
8279 {
8280 yyval.specifier = MkSpecifier(_COMPLEX);
8281 ;
8282 }
8283 break;
8284 case 707:
8285 {
8286 yyval.specifier = MkSpecifier(_IMAGINARY);
8287 ;
8288 }
8289 break;
8290 case 708:
8291 {
8292 yyval.specifier = MkSpecifierTypeOf(yyvsp[(3) - (4)].exp);
8293 ;
8294 }
8295 break;
8296 case 709:
8297 {
8298 yyval.specifier = MkSpecifierSubClass(yyvsp[(3) - (4)].specifier);
8299 ;
8300 }
8301 break;
8302 case 710:
8303 {
8304 _DeclClass(yyvsp[(3) - (4)].id->_class, yyvsp[(3) - (4)].id->string);
8305 yyval.specifier = MkSpecifierSubClass(MkSpecifierName(yyvsp[(3) - (4)].id->string));
8306 FreeIdentifier(yyvsp[(3) - (4)].id);
8307 ;
8308 }
8309 break;
8310 case 711:
8311 {
8312 yyval.specifier = MkSpecifier(THISCLASS);
8313 ;
8314 }
8315 break;
8316 case 712:
8317 {
8318 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
8319 yyval.declarator->loc = (yyloc);
8320 ;
8321 }
8322 break;
8323 case 713:
8324 {
8325 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (2)].declarator, (((void *)0)));
8326 yyval.declarator->__anon1.structDecl.attrib = yyvsp[(2) - (2)].attrib;
8327 yyval.declarator->loc = (yyloc);
8328 ;
8329 }
8330 break;
8331 case 714:
8332 {
8333 yyval.declarator = MkStructDeclarator((((void *)0)), yyvsp[(2) - (2)].exp);
8334 yyval.declarator->loc = (yyloc);
8335 ;
8336 }
8337 break;
8338 case 715:
8339 {
8340 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].exp);
8341 yyval.declarator->loc = (yyloc);
8342 ;
8343 }
8344 break;
8345 case 716:
8346 {
8347 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8348 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8349 yyval.declarator->loc = (yyloc);
8350 ;
8351 }
8352 break;
8353 case 717:
8354 {
8355 yyval.declarator = MkStructDeclarator((((void *)0)), yyvsp[(2) - (2)].exp);
8356 yyval.declarator->loc = (yyloc);
8357 ;
8358 }
8359 break;
8360 case 718:
8361 {
8362 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].exp);
8363 yyval.declarator->loc = (yyloc);
8364 ;
8365 }
8366 break;
8367 case 719:
8368 {
8369 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8370 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8371 yyval.declarator->loc = (yyloc);
8372 ;
8373 }
8374 break;
8375 case 720:
8376 {
8377 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8378 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8379 yyval.declarator->loc = (yyloc);
8380 ;
8381 }
8382 break;
8383 case 721:
8384 {
8385 yyval.declarator = MkStructDeclarator(yyvsp[(1) - (5)].declarator, yyvsp[(3) - (5)].exp);
8386 yyval.declarator->__anon1.structDecl.posExp = yyvsp[(5) - (5)].exp;
8387 yyval.declarator->loc = (yyloc);
8388 ;
8389 }
8390 break;
8391 case 722:
8392 {
8393 yyval.list = MkList();
8394 ListAdd(yyval.list, yyvsp[(1) - (1)].declarator);
8395 ;
8396 }
8397 break;
8398 case 723:
8399 {
8400 yyval.list = yyvsp[(1) - (3)].list;
8401 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].declarator);
8402 ;
8403 }
8404 break;
8405 case 724:
8406 {
8407 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, yyvsp[(2) - (2)].id, (((void *)0)));
8408 yyval.specifier->__anon1.__anon2.addNameSpace = 1;
8409 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8410 ;
8411 }
8412 break;
8413 case 725:
8414 {
8415 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (2)].specifierType, MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name), (((void *)0)));
8416 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8417 FreeSpecifier(yyvsp[(2) - (2)].specifier);
8418 ;
8419 }
8420 break;
8421 case 726:
8422 {
8423 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, yyvsp[(3) - (3)].id, (((void *)0)));
8424 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
8425 yyval.specifier->__anon1.__anon2.addNameSpace = 1;
8426 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8427 ;
8428 }
8429 break;
8430 case 727:
8431 {
8432 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, MkIdentifier(yyvsp[(3) - (3)].specifier->__anon1.__anon1.name), (((void *)0)));
8433 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (3)].extDecl;
8434 yyval.specifier->__anon1.__anon2.ctx = PushContext();
8435 FreeSpecifier(yyvsp[(3) - (3)].specifier);
8436 ;
8437 }
8438 break;
8439 case 728:
8440 {
8441 yyval.specifier = yyvsp[(1) - (2)].specifier;
8442 yyval.specifier->loc = (yyloc);
8443 ;
8444 }
8445 break;
8446 case 729:
8447 {
8448 yyval.specifier = yyvsp[(1) - (3)].specifier;
8449 yyval.specifier->loc = (yyloc);
8450 if(defaultMemberAccess > -1)
8451 defaultMemberAccess--;
8452 PopContext(curContext);
8453 ;
8454 }
8455 break;
8456 case 730:
8457 {
8458 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8459 yyval.specifier->loc = (yyloc);
8460 if(defaultMemberAccess > -1)
8461 defaultMemberAccess--;
8462 ;
8463 }
8464 break;
8465 case 731:
8466 {
8467 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), (((void *)0)));
8468 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8469 yyval.specifier->loc = (yyloc);
8470 if(defaultMemberAccess > -1)
8471 defaultMemberAccess--;
8472 ;
8473 }
8474 break;
8475 case 732:
8476 {
8477 yyval.specifier = yyvsp[(1) - (3)].specifier;
8478 AddStructDefinitions(yyvsp[(1) - (3)].specifier, yyvsp[(3) - (3)].list);
8479 if(defaultMemberAccess > -1)
8480 defaultMemberAccess--;
8481 PopContext(curContext);
8482 ;
8483 }
8484 break;
8485 case 733:
8486 {
8487 yyval.specifier = yyvsp[(1) - (3)].specifier;
8488 AddStructDefinitions(yyvsp[(1) - (3)].specifier, yyvsp[(3) - (3)].list);
8489 if(defaultMemberAccess > -1)
8490 defaultMemberAccess--;
8491 PopContext(curContext);
8492 ;
8493 }
8494 break;
8495 case 734:
8496 {
8497 yyval.specifier = yyvsp[(1) - (3)].specifier;
8498 if(defaultMemberAccess > -1)
8499 defaultMemberAccess--;
8500 PopContext(curContext);
8501 ;
8502 }
8503 break;
8504 case 735:
8505 {
8506 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8507 if(defaultMemberAccess > -1)
8508 defaultMemberAccess--;
8509 ;
8510 }
8511 break;
8512 case 736:
8513 {
8514 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8515 if(defaultMemberAccess > -1)
8516 defaultMemberAccess--;
8517 ;
8518 }
8519 break;
8520 case 737:
8521 {
8522 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8523 if(defaultMemberAccess > -1)
8524 defaultMemberAccess--;
8525 ;
8526 }
8527 break;
8528 case 738:
8529 {
8530 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), yyvsp[(4) - (4)].list);
8531 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8532 if(defaultMemberAccess > -1)
8533 defaultMemberAccess--;
8534 ;
8535 }
8536 break;
8537 case 739:
8538 {
8539 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), yyvsp[(4) - (4)].list);
8540 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8541 if(defaultMemberAccess > -1)
8542 defaultMemberAccess--;
8543 ;
8544 }
8545 break;
8546 case 740:
8547 {
8548 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (4)].specifierType, (((void *)0)), (((void *)0)));
8549 yyval.specifier->__anon1.__anon2.extDeclStruct = yyvsp[(2) - (4)].extDecl;
8550 if(defaultMemberAccess > -1)
8551 defaultMemberAccess--;
8552 ;
8553 }
8554 break;
8555 case 741:
8556 {
8557 yyval.specifier = yyvsp[(1) - (1)].specifier;
8558 if(defaultMemberAccess > -1)
8559 defaultMemberAccess--;
8560 PopContext(curContext);
8561 ;
8562 }
8563 break;
8564 case 742:
8565 {
8566 yyval.specifier = yyvsp[(1) - (1)].specifier;
8567 if(declMode)
8568 {
8569 (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);
8570 }
8571 ;
8572 }
8573 break;
8574 case 743:
8575 {
8576 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);
8577
8578 yyval.specifier = yyvsp[(1) - (4)].specifier;
8579 symbol->templateParams = yyvsp[(3) - (4)].list;
8580 ;
8581 }
8582 break;
8583 case 744:
8584 {
8585 yyval.specifier = yyvsp[(1) - (3)].specifier;
8586 yyval.specifier->__anon1.__anon2.baseSpecs = yyvsp[(3) - (3)].list;
8587 SetupBaseSpecs((((void *)0)), yyvsp[(3) - (3)].list);
8588 ;
8589 }
8590 break;
8591 case 745:
8592 {
8593 yyval.specifier = yyvsp[(1) - (2)].specifier;
8594 yyval.specifier->loc = (yyloc);
8595 ;
8596 }
8597 break;
8598 case 746:
8599 {
8600 yyval.specifier = yyvsp[(1) - (3)].specifier;
8601 if(defaultMemberAccess > -1)
8602 defaultMemberAccess--;
8603 PopContext(curContext);
8604 ;
8605 }
8606 break;
8607 case 747:
8608 {
8609 yyval.specifier = yyvsp[(1) - (3)].specifier;
8610 if(defaultMemberAccess > -1)
8611 defaultMemberAccess--;
8612 PopContext(curContext);
8613 ;
8614 }
8615 break;
8616 case 748:
8617 {
8618 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8619 if(defaultMemberAccess > -1)
8620 defaultMemberAccess--;
8621 ;
8622 }
8623 break;
8624 case 749:
8625 {
8626 yyval.specifier = yyvsp[(1) - (3)].specifier;
8627 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8628 if(defaultMemberAccess > -1)
8629 defaultMemberAccess--;
8630 PopContext(curContext);
8631 ;
8632 }
8633 break;
8634 case 750:
8635 {
8636 yyval.specifier = yyvsp[(1) - (3)].specifier;
8637 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8638 if(defaultMemberAccess > -1)
8639 defaultMemberAccess--;
8640 PopContext(curContext);
8641 ;
8642 }
8643 break;
8644 case 751:
8645 {
8646 yyval.specifier = yyvsp[(1) - (3)].specifier;
8647 if(defaultMemberAccess > -1)
8648 defaultMemberAccess--;
8649 PopContext(curContext);
8650 ;
8651 }
8652 break;
8653 case 752:
8654 {
8655 PopContext(curContext);
8656 if(!declMode)
8657 {
8658 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifier->type, yyvsp[(1) - (3)].specifier->__anon1.__anon2.id, yyvsp[(3) - (3)].list);
8659 yyvsp[(1) - (3)].specifier->__anon1.__anon2.id = (((void *)0));
8660 FreeSpecifier(yyvsp[(1) - (3)].specifier);
8661 }
8662 else
8663 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8664 if(defaultMemberAccess > -1)
8665 defaultMemberAccess--;
8666 ;
8667 }
8668 break;
8669 case 753:
8670 {
8671 PopContext(curContext);
8672 if(!declMode)
8673 {
8674 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifier->type, yyvsp[(1) - (3)].specifier->__anon1.__anon2.id, yyvsp[(3) - (3)].list);
8675 yyvsp[(1) - (3)].specifier->__anon1.__anon2.id = (((void *)0));
8676 FreeSpecifier(yyvsp[(1) - (3)].specifier);
8677 }
8678 else
8679 yyval.specifier->__anon1.__anon2.definitions = yyvsp[(3) - (3)].list;
8680 if(defaultMemberAccess > -1)
8681 defaultMemberAccess--;
8682 ;
8683 }
8684 break;
8685 case 754:
8686 {
8687 yyval.specifier = yyvsp[(1) - (3)].specifier;
8688 if(defaultMemberAccess > -1)
8689 defaultMemberAccess--;
8690 PopContext(curContext);
8691 ;
8692 }
8693 break;
8694 case 755:
8695 {
8696 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8697 if(defaultMemberAccess > -1)
8698 defaultMemberAccess--;
8699 ;
8700 }
8701 break;
8702 case 756:
8703 {
8704 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), yyvsp[(3) - (3)].list);
8705 if(defaultMemberAccess > -1)
8706 defaultMemberAccess--;
8707 ;
8708 }
8709 break;
8710 case 757:
8711 {
8712 yyval.specifier = MkStructOrUnion(yyvsp[(1) - (3)].specifierType, (((void *)0)), (((void *)0)));
8713 if(defaultMemberAccess > -1)
8714 defaultMemberAccess--;
8715 ;
8716 }
8717 break;
8718 case 758:
8719 {
8720 yyval.specifierType = 3;
8721 memberAccessStack[++defaultMemberAccess] = 1;
8722 ;
8723 }
8724 break;
8725 case 759:
8726 {
8727 yyval.specifierType = 4;
8728 memberAccessStack[++defaultMemberAccess] = 1;
8729 ;
8730 }
8731 break;
8732 case 760:
8733 {
8734 yyval.list = MkList();
8735 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8736 ;
8737 }
8738 break;
8739 case 761:
8740 {
8741 yyval.list = yyvsp[(1) - (2)].list;
8742 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8743 ;
8744 }
8745 break;
8746 case 762:
8747 {
8748 yyval.list = MkList();
8749 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8750 ;
8751 }
8752 break;
8753 case 763:
8754 {
8755 yyval.list = yyvsp[(1) - (2)].list;
8756 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8757 ;
8758 }
8759 break;
8760 case 764:
8761 {
8762 yyval.list = MkList();
8763 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8764 ;
8765 }
8766 break;
8767 case 765:
8768 {
8769 yyval.list = yyvsp[(1) - (2)].list;
8770 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8771 ;
8772 }
8773 break;
8774 case 766:
8775 {
8776 yyval.list = MkList();
8777 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8778 ;
8779 }
8780 break;
8781 case 767:
8782 {
8783 yyval.list = yyvsp[(1) - (2)].list;
8784 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8785 ;
8786 }
8787 break;
8788 case 768:
8789 {
8790 yyval.list = MkList();
8791 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8792 ;
8793 }
8794 break;
8795 case 769:
8796 {
8797 yyval.list = yyvsp[(1) - (2)].list;
8798 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8799 ;
8800 }
8801 break;
8802 case 770:
8803 {
8804 yyval.list = MkList();
8805 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8806 ;
8807 }
8808 break;
8809 case 771:
8810 {
8811 yyval.list = yyvsp[(1) - (2)].list;
8812 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8813 ;
8814 }
8815 break;
8816 case 772:
8817 {
8818 yyval.list = MkList();
8819 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8820 ;
8821 }
8822 break;
8823 case 773:
8824 {
8825 yyval.list = yyvsp[(1) - (2)].list;
8826 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8827 ;
8828 }
8829 break;
8830 case 774:
8831 {
8832 yyval.list = MkList();
8833 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8834 ;
8835 }
8836 break;
8837 case 775:
8838 {
8839 yyval.list = yyvsp[(1) - (2)].list;
8840 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8841 ;
8842 }
8843 break;
8844 case 776:
8845 {
8846 yyval.list = MkList();
8847 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8848 ;
8849 }
8850 break;
8851 case 777:
8852 {
8853 yyval.list = yyvsp[(1) - (2)].list;
8854 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8855 ;
8856 }
8857 break;
8858 case 778:
8859 {
8860 yyval.list = MkList();
8861 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8862 ;
8863 }
8864 break;
8865 case 779:
8866 {
8867 yyval.list = yyvsp[(1) - (2)].list;
8868 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8869 ;
8870 }
8871 break;
8872 case 780:
8873 {
8874 yyval.list = MkList();
8875 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8876 ;
8877 }
8878 break;
8879 case 781:
8880 {
8881 yyval.list = yyvsp[(1) - (2)].list;
8882 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8883 ;
8884 }
8885 break;
8886 case 782:
8887 {
8888 yyval.list = MkList();
8889 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8890 ;
8891 }
8892 break;
8893 case 783:
8894 {
8895 yyval.list = yyvsp[(1) - (2)].list;
8896 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8897 ;
8898 }
8899 break;
8900 case 784:
8901 {
8902 yyval.list = MkList();
8903 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8904 ;
8905 }
8906 break;
8907 case 785:
8908 {
8909 yyval.list = yyvsp[(1) - (2)].list;
8910 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8911 ;
8912 }
8913 break;
8914 case 786:
8915 {
8916 yyval.list = MkList();
8917 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8918 ;
8919 }
8920 break;
8921 case 787:
8922 {
8923 yyval.list = yyvsp[(1) - (2)].list;
8924 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8925 ;
8926 }
8927 break;
8928 case 788:
8929 {
8930 yyval.list = MkList();
8931 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8932 ;
8933 }
8934 break;
8935 case 789:
8936 {
8937 yyval.list = yyvsp[(1) - (2)].list;
8938 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8939 ;
8940 }
8941 break;
8942 case 790:
8943 {
8944 yyval.list = MkList();
8945 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8946 ;
8947 }
8948 break;
8949 case 791:
8950 {
8951 yyval.list = yyvsp[(1) - (2)].list;
8952 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8953 ;
8954 }
8955 break;
8956 case 792:
8957 {
8958 yyval.list = MkList();
8959 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8960 ;
8961 }
8962 break;
8963 case 793:
8964 {
8965 yyval.list = yyvsp[(1) - (2)].list;
8966 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8967 ;
8968 }
8969 break;
8970 case 794:
8971 {
8972 yyval.list = MkList();
8973 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8974 ;
8975 }
8976 break;
8977 case 795:
8978 {
8979 yyval.list = yyvsp[(1) - (2)].list;
8980 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8981 ;
8982 }
8983 break;
8984 case 796:
8985 {
8986 yyval.list = MkList();
8987 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
8988 ;
8989 }
8990 break;
8991 case 797:
8992 {
8993 yyval.list = yyvsp[(1) - (2)].list;
8994 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
8995 ;
8996 }
8997 break;
8998 case 798:
8999 {
9000 yyval.list = MkList();
9001 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9002 ;
9003 }
9004 break;
9005 case 799:
9006 {
9007 yyval.list = yyvsp[(1) - (2)].list;
9008 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9009 ;
9010 }
9011 break;
9012 case 800:
9013 {
9014 yyval.list = MkList();
9015 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9016 ;
9017 }
9018 break;
9019 case 801:
9020 {
9021 yyval.list = yyvsp[(1) - (2)].list;
9022 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9023 ;
9024 }
9025 break;
9026 case 802:
9027 {
9028 yyval.list = MkList();
9029 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9030 ;
9031 }
9032 break;
9033 case 803:
9034 {
9035 yyval.list = yyvsp[(1) - (2)].list;
9036 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9037 ;
9038 }
9039 break;
9040 case 804:
9041 {
9042 yyval.list = MkList();
9043 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9044 ;
9045 }
9046 break;
9047 case 805:
9048 {
9049 yyval.list = yyvsp[(1) - (2)].list;
9050 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9051 ;
9052 }
9053 break;
9054 case 806:
9055 {
9056 yyval.list = MkList();
9057 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9058 ;
9059 }
9060 break;
9061 case 807:
9062 {
9063 yyval.list = yyvsp[(1) - (2)].list;
9064 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9065 ;
9066 }
9067 break;
9068 case 808:
9069 {
9070 yyval.list = MkList();
9071 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9072 ;
9073 }
9074 break;
9075 case 809:
9076 {
9077 yyval.list = yyvsp[(1) - (2)].list;
9078 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9079 ;
9080 }
9081 break;
9082 case 810:
9083 {
9084 yyval.list = MkList();
9085 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9086 ;
9087 }
9088 break;
9089 case 811:
9090 {
9091 yyval.list = yyvsp[(1) - (2)].list;
9092 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9093 ;
9094 }
9095 break;
9096 case 812:
9097 {
9098 yyval.list = MkList();
9099 ListAdd(yyval.list, MkSpecifier(PRIVATE));
9100 ;
9101 }
9102 break;
9103 case 813:
9104 {
9105 yyval.list = MkList();
9106 ListAdd(yyval.list, MkSpecifier(PUBLIC));
9107 ;
9108 }
9109 break;
9110 case 814:
9111 {
9112 yyval.list = MkList();
9113 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9114 ;
9115 }
9116 break;
9117 case 815:
9118 {
9119 yyval.list = yyvsp[(1) - (2)].list;
9120 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9121 ;
9122 }
9123 break;
9124 case 816:
9125 {
9126 yyval.list = MkList();
9127 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9128 ;
9129 }
9130 break;
9131 case 817:
9132 {
9133 yyval.list = yyvsp[(1) - (2)].list;
9134 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9135 ;
9136 }
9137 break;
9138 case 818:
9139 {
9140 yyval.list = MkList();
9141 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9142 ;
9143 }
9144 break;
9145 case 819:
9146 {
9147 yyval.list = yyvsp[(1) - (2)].list;
9148 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9149 ;
9150 }
9151 break;
9152 case 820:
9153 {
9154 _DeclClass(yyvsp[(1) - (1)].id->_class, yyvsp[(1) - (1)].id->string);
9155 yyval.list = MkListOne(MkSpecifierName(yyvsp[(1) - (1)].id->string));
9156 FreeIdentifier(yyvsp[(1) - (1)].id);
9157 ;
9158 }
9159 break;
9160 case 821:
9161 {
9162 yyval.list = yyvsp[(1) - (2)].list;
9163 _DeclClass(yyvsp[(2) - (2)].id->_class, yyvsp[(2) - (2)].id->string);
9164 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9165 FreeIdentifier(yyvsp[(2) - (2)].id);
9166 ;
9167 }
9168 break;
9169 case 822:
9170 {
9171 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9172 yyval.list = MkList();
9173 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9174 FreeIdentifier(yyvsp[(1) - (4)].id);
9175 ;
9176 }
9177 break;
9178 case 823:
9179 {
9180 yyval.list = yyvsp[(1) - (5)].list;
9181 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9182 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9183 FreeIdentifier(yyvsp[(2) - (5)].id);
9184 ;
9185 }
9186 break;
9187 case 825:
9188 {
9189 yyval.list = MkListOne(MkStructOrUnion(yyvsp[(1) - (1)].specifierType, (((void *)0)), (((void *)0))));
9190 if(defaultMemberAccess > -1)
9191 defaultMemberAccess--;
9192 ;
9193 }
9194 break;
9195 case 826:
9196 {
9197 yyval.list = MkList();
9198 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9199 ;
9200 }
9201 break;
9202 case 827:
9203 {
9204 yyval.list = yyvsp[(1) - (2)].list;
9205 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9206 ;
9207 }
9208 break;
9209 case 828:
9210 {
9211 yyval.list = MkList();
9212 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9213 ;
9214 }
9215 break;
9216 case 829:
9217 {
9218 yyval.list = yyvsp[(1) - (2)].list;
9219 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9220 ;
9221 }
9222 break;
9223 case 830:
9224 {
9225 yyval.list = MkList();
9226 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9227 ;
9228 }
9229 break;
9230 case 831:
9231 {
9232 yyval.list = yyvsp[(1) - (2)].list;
9233 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9234 ;
9235 }
9236 break;
9237 case 832:
9238 {
9239 yyval.list = MkList();
9240 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9241 FreeIdentifier(yyvsp[(1) - (1)].id);
9242 }
9243 break;
9244 case 833:
9245 {
9246 yyval.list = yyvsp[(1) - (2)].list;
9247 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9248 FreeIdentifier(yyvsp[(2) - (2)].id);
9249 }
9250 break;
9251 case 834:
9252 {
9253 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9254 yyval.list = MkList();
9255 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9256 FreeIdentifier(yyvsp[(1) - (4)].id);
9257 ;
9258 }
9259 break;
9260 case 835:
9261 {
9262 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9263 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9264 FreeIdentifier(yyvsp[(2) - (5)].id);
9265 ;
9266 }
9267 break;
9268 case 836:
9269 {
9270 yyval.list = MkList();
9271 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9272 ;
9273 }
9274 break;
9275 case 837:
9276 {
9277 yyval.list = yyvsp[(1) - (2)].list;
9278 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9279 ;
9280 }
9281 break;
9282 case 838:
9283 {
9284 yyval.list = MkList();
9285 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9286 ;
9287 }
9288 break;
9289 case 839:
9290 {
9291 yyval.list = yyvsp[(1) - (2)].list;
9292 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9293 ;
9294 }
9295 break;
9296 case 840:
9297 {
9298 yyval.list = MkList();
9299 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9300 ;
9301 }
9302 break;
9303 case 841:
9304 {
9305 yyval.list = yyvsp[(1) - (2)].list;
9306 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9307 ;
9308 }
9309 break;
9310 case 842:
9311 {
9312 yyval.list = MkList();
9313 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9314 ;
9315 }
9316 break;
9317 case 843:
9318 {
9319 yyval.list = yyvsp[(1) - (2)].list;
9320 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9321 ;
9322 }
9323 break;
9324 case 844:
9325 {
9326 yyval.list = MkList();
9327 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9328 ;
9329 }
9330 break;
9331 case 845:
9332 {
9333 yyval.list = yyvsp[(1) - (2)].list;
9334 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9335 ;
9336 }
9337 break;
9338 case 846:
9339 {
9340 yyval.list = MkList();
9341 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9342 FreeIdentifier(yyvsp[(1) - (1)].id);
9343 }
9344 break;
9345 case 847:
9346 {
9347 yyval.list = yyvsp[(1) - (2)].list;
9348 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9349 FreeIdentifier(yyvsp[(2) - (2)].id);
9350 }
9351 break;
9352 case 848:
9353 {
9354 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9355 yyval.list = MkList();
9356 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9357 FreeIdentifier(yyvsp[(1) - (4)].id);
9358 ;
9359 }
9360 break;
9361 case 849:
9362 {
9363 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9364 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9365 FreeIdentifier(yyvsp[(2) - (5)].id);
9366 ;
9367 }
9368 break;
9369 case 850:
9370 {
9371 yyval.list = MkList();
9372 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9373 ;
9374 }
9375 break;
9376 case 851:
9377 {
9378 yyval.list = yyvsp[(1) - (2)].list;
9379 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9380 ;
9381 }
9382 break;
9383 case 852:
9384 {
9385 yyval.list = MkList();
9386 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9387 ;
9388 }
9389 break;
9390 case 853:
9391 {
9392 yyval.list = yyvsp[(1) - (2)].list;
9393 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9394 ;
9395 }
9396 break;
9397 case 854:
9398 {
9399 yyval.list = MkList();
9400 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9401 ;
9402 }
9403 break;
9404 case 855:
9405 {
9406 yyval.list = yyvsp[(1) - (2)].list;
9407 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9408 ;
9409 }
9410 break;
9411 case 856:
9412 {
9413 yyval.list = MkList();
9414 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9415 ;
9416 }
9417 break;
9418 case 857:
9419 {
9420 yyval.list = yyvsp[(1) - (2)].list;
9421 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9422 ;
9423 }
9424 break;
9425 case 858:
9426 {
9427 yyval.list = MkList();
9428 ListAdd(yyval.list, yyvsp[(1) - (1)].specifier);
9429 ;
9430 }
9431 break;
9432 case 859:
9433 {
9434 yyval.list = yyvsp[(1) - (2)].list;
9435 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].specifier);
9436 ;
9437 }
9438 break;
9439 case 860:
9440 {
9441 yyval.list = MkList();
9442 ListAdd(yyval.list, MkSpecifierName(yyvsp[(1) - (1)].id->string));
9443 FreeIdentifier(yyvsp[(1) - (1)].id);
9444 }
9445 break;
9446 case 861:
9447 {
9448 yyval.list = yyvsp[(1) - (2)].list;
9449 ListAdd(yyvsp[(1) - (2)].list, MkSpecifierName(yyvsp[(2) - (2)].id->string));
9450 FreeIdentifier(yyvsp[(2) - (2)].id);
9451 }
9452 break;
9453 case 862:
9454 {
9455 _DeclClass(yyvsp[(1) - (4)].id->_class, yyvsp[(1) - (4)].id->string);
9456 yyval.list = MkList();
9457 ListAdd(yyval.list, MkSpecifierNameArgs(yyvsp[(1) - (4)].id->string, yyvsp[(3) - (4)].list));
9458 FreeIdentifier(yyvsp[(1) - (4)].id);
9459 ;
9460 }
9461 break;
9462 case 863:
9463 {
9464 _DeclClass(yyvsp[(2) - (5)].id->_class, yyvsp[(2) - (5)].id->string);
9465 ListAdd(yyvsp[(1) - (5)].list, MkSpecifierNameArgs(yyvsp[(2) - (5)].id->string, yyvsp[(4) - (5)].list));
9466 FreeIdentifier(yyvsp[(2) - (5)].id);
9467 ;
9468 }
9469 break;
9470 case 864:
9471 {
9472 yyval.list = yyvsp[(1) - (3)].list;
9473 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
9474 ;
9475 }
9476 break;
9477 case 865:
9478 {
9479 yyval.list = yyvsp[(1) - (3)].list;
9480 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
9481 ;
9482 }
9483 break;
9484 case 866:
9485 {
9486 yyval.list = MkList();
9487 ListAdd(yyval.list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(1) - (1)].id)));
9488 ;
9489 }
9490 break;
9491 case 867:
9492 {
9493 yyval.list = yyvsp[(1) - (3)].list;
9494 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9495 ;
9496 }
9497 break;
9498 case 868:
9499 {
9500 yyval.list = yyvsp[(1) - (3)].list;
9501 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9502 ;
9503 }
9504 break;
9505 case 869:
9506 {
9507 yyval.list = yyvsp[(1) - (3)].list;
9508 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9509 ;
9510 }
9511 break;
9512 case 870:
9513 {
9514 yyval.list = yyvsp[(1) - (3)].list;
9515 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), MkDeclaratorIdentifier(yyvsp[(3) - (3)].id)));
9516 ;
9517 }
9518 break;
9519 case 872:
9520 {
9521 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (1)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (1)].specifier->__anon1.__anon1.name), 1, 0);
9522 char * s = colon ? colon + 2 : yyvsp[(1) - (1)].specifier->__anon1.__anon1.name;
9523
9524 yyval.declarator = MkDeclaratorIdentifier(MkIdentifier(s));
9525 FreeSpecifier(yyvsp[(1) - (1)].specifier);
9526 ;
9527 }
9528 break;
9529 case 873:
9530 {
9531 yyval.declarator = MkDeclaratorIdentifier(MkIdentifier("uint"));
9532 ;
9533 }
9534 break;
9535 case 874:
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 875:
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 = MkDeclaratorArray(decl, yyvsp[(3) - (4)].exp);
9556 ;
9557 }
9558 break;
9559 case 876:
9560 {
9561 struct Declarator * decl;
9562 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (4)].specifier->__anon1.__anon1.name), 1, 0);
9563 char * s = colon ? colon + 2 : yyvsp[(1) - (4)].specifier->__anon1.__anon1.name;
9564
9565 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9566 FreeSpecifier(yyvsp[(1) - (4)].specifier);
9567 yyval.declarator = MkDeclaratorEnumArray(decl, yyvsp[(3) - (4)].specifier);
9568 ;
9569 }
9570 break;
9571 case 877:
9572 {
9573 struct Declarator * decl;
9574 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name), 1, 0);
9575 char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->__anon1.__anon1.name;
9576
9577 decl = MkDeclaratorIdentifier(MkIdentifier(s));
9578 FreeSpecifier(yyvsp[(1) - (3)].specifier);
9579 yyval.declarator = MkDeclaratorEnumArray(decl, (((void *)0)));
9580 ;
9581 }
9582 break;
9583 case 878:
9584 {
9585 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9586 ;
9587 }
9588 break;
9589 case 879:
9590 {
9591 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9592 ;
9593 }
9594 break;
9595 case 880:
9596 {
9597 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9598 ;
9599 }
9600 break;
9601 case 881:
9602 {
9603 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
9604 ;
9605 }
9606 break;
9607 case 882:
9608 {
9609 yyval.declarator = MkDeclaratorIdentifier(yyvsp[(1) - (1)].id);
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 = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
9628 ;
9629 }
9630 break;
9631 case 886:
9632 {
9633 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
9634 ;
9635 }
9636 break;
9637 case 887:
9638 {
9639 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9640 ;
9641 }
9642 break;
9643 case 888:
9644 {
9645 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
9646 ;
9647 }
9648 break;
9649 case 889:
9650 {
9651 yyval.declarator = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
9652 ;
9653 }
9654 break;
9655 case 890:
9656 {
9657 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
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) - (3)].declarator, yyvsp[(2) - (3)].list);
9676 ;
9677 }
9678 break;
9679 case 895:
9680 {
9681 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9682 ;
9683 }
9684 break;
9685 case 896:
9686 {
9687 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9688 ;
9689 }
9690 break;
9691 case 897:
9692 {
9693 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, yyvsp[(2) - (2)].list);
9694 (__extension__ ({
9695 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9696
9697 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9698 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9699
9700 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9701 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9702 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).end.pos, 0) : (unsigned int)1;
9703 }));
9704 (yychar = (-2));
9705 resetScannerPos(&(yylsp[(1) - (2)]).end);
9706 (yyloc.start = (yylsp[(1) - (2)]).start);
9707 (yyloc.end = (yylsp[(1) - (2)]).end);
9708 ;
9709 }
9710 break;
9711 case 898:
9712 {
9713 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9714 (__extension__ ({
9715 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9716
9717 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9718 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9719
9720 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9721 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9722 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).end.pos, 0) : (unsigned int)1;
9723 }));
9724 (yychar = (-2));
9725 resetScannerPos(&(yylsp[(1) - (2)]).end);
9726 (yyloc.start = (yylsp[(1) - (2)]).start);
9727 (yyloc.end = (yylsp[(1) - (2)]).end);
9728 ;
9729 }
9730 break;
9731 case 899:
9732 {
9733 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9734 (__extension__ ({
9735 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9736
9737 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9738 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9739
9740 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9741 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9742 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (3)]).end.pos, 0) : (unsigned int)1;
9743 }));
9744 (yychar = (-2));
9745 resetScannerPos(&(yylsp[(1) - (3)]).end);
9746 (yyloc.start = (yylsp[(1) - (3)]).start);
9747 (yyloc.end = (yylsp[(1) - (3)]).end);
9748 ;
9749 }
9750 break;
9751 case 900:
9752 {
9753 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, (((void *)0)));
9754 (__extension__ ({
9755 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9756
9757 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9758 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9759
9760 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9761 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9762 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (4)]).end.pos, 0) : (unsigned int)1;
9763 }));
9764 (yychar = (-2));
9765 resetScannerPos(&(yylsp[(1) - (4)]).end);
9766 (yyloc.start = (yylsp[(1) - (4)]).start);
9767 (yyloc.end = (yylsp[(1) - (4)]).end);
9768 FreeList(yyvsp[(2) - (4)].list, (void *)(FreeSpecifier));
9769 FreeIdentifier(yyvsp[(3) - (4)].id);
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) - (3)].declarator, yyvsp[(2) - (3)].list);
9788 ;
9789 }
9790 break;
9791 case 907:
9792 {
9793 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9794 ;
9795 }
9796 break;
9797 case 908:
9798 {
9799 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9800 ;
9801 }
9802 break;
9803 case 909:
9804 {
9805 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, yyvsp[(2) - (2)].list);
9806 (__extension__ ({
9807 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9808
9809 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9810 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9811
9812 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9813 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9814 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).end.pos, 0) : (unsigned int)1;
9815 }));
9816 (yychar = (-2));
9817 resetScannerPos(&(yylsp[(1) - (2)]).end);
9818 (yyloc.start = (yylsp[(1) - (2)]).start);
9819 (yyloc.end = (yylsp[(1) - (2)]).end);
9820 ;
9821 }
9822 break;
9823 case 910:
9824 {
9825 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (2)].declarator, (((void *)0)));
9826 (__extension__ ({
9827 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9828
9829 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9830 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9831
9832 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9833 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9834 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (2)]).end.pos, 0) : (unsigned int)1;
9835 }));
9836 (yychar = (-2));
9837 resetScannerPos(&(yylsp[(1) - (2)]).end);
9838 (yyloc.start = (yylsp[(1) - (2)]).start);
9839 (yyloc.end = (yylsp[(1) - (2)]).end);
9840 ;
9841 }
9842 break;
9843 case 911:
9844 {
9845 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
9846 (__extension__ ({
9847 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9848
9849 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9850 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9851
9852 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9853 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9854 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (3)]).end.pos, 0) : (unsigned int)1;
9855 }));
9856 (yychar = (-2));
9857 resetScannerPos(&(yylsp[(1) - (3)]).end);
9858 (yyloc.start = (yylsp[(1) - (3)]).start);
9859 (yyloc.end = (yylsp[(1) - (3)]).end);
9860 ;
9861 }
9862 break;
9863 case 912:
9864 {
9865 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, (((void *)0)));
9866 (__extension__ ({
9867 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
9868
9869 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
9870 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
9871
9872 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
9873 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
9874 __internal_VirtualMethod ? __internal_VirtualMethod(fileInput, (yylsp[(1) - (4)]).end.pos, 0) : (unsigned int)1;
9875 }));
9876 (yychar = (-2));
9877 resetScannerPos(&(yylsp[(1) - (4)]).end);
9878 (yyloc.start = (yylsp[(1) - (4)]).start);
9879 (yyloc.end = (yylsp[(1) - (4)]).end);
9880 FreeList(yyvsp[(2) - (4)].list, (void *)(FreeSpecifier));
9881 FreeIdentifier(yyvsp[(3) - (4)].id);
9882 ;
9883 }
9884 break;
9885 case 915:
9886 {
9887 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(yytext));
9888 ;
9889 }
9890 break;
9891 case 916:
9892 {
9893 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(yytext));
9894 ;
9895 }
9896 break;
9897 case 917:
9898 {
9899 yyval.extDecl = MkExtDeclAttrib(yyvsp[(1) - (1)].attrib);
9900 ;
9901 }
9902 break;
9903 case 918:
9904 {
9905 char temp[1024];
9906
9907 strcpy(temp, "__asm__(");
9908 strcat(temp, yyvsp[(3) - (4)].string);
9909 strcat(temp, ")");
9910 yyval.extDecl = MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(temp));
9911 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(3) - (4)].string), yyvsp[(3) - (4)].string = 0);
9912 ;
9913 }
9914 break;
9915 case 919:
9916 {
9917 yyval.i = ATTRIB;
9918 ;
9919 }
9920 break;
9921 case 920:
9922 {
9923 yyval.i = ATTRIB_DEP;
9924 ;
9925 }
9926 break;
9927 case 921:
9928 {
9929 yyval.i = __ATTRIB;
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.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9954 ;
9955 }
9956 break;
9957 case 926:
9958 {
9959 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
9960 ;
9961 }
9962 break;
9963 case 927:
9964 {
9965 yyval.attribute = MkAttribute(yyvsp[(1) - (1)].string, (((void *)0)));
9966 yyval.attribute->loc = (yyloc);
9967 ;
9968 }
9969 break;
9970 case 928:
9971 {
9972 yyval.attribute = MkAttribute(yyvsp[(1) - (4)].string, MkExpBrackets(yyvsp[(3) - (4)].list));
9973 yyval.attribute->loc = (yyloc);
9974 ;
9975 }
9976 break;
9977 case 929:
9978 {
9979 yyval.list = MkListOne(yyvsp[(1) - (1)].attribute);
9980 ;
9981 }
9982 break;
9983 case 930:
9984 {
9985 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].attribute);
9986 yyval.list = yyvsp[(1) - (2)].list;
9987 ;
9988 }
9989 break;
9990 case 931:
9991 {
9992 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].attribute);
9993 yyval.list = yyvsp[(1) - (3)].list;
9994 ;
9995 }
9996 break;
9997 case 932:
9998 {
9999 yyval.attrib = MkAttrib(yyvsp[(1) - (6)].i, yyvsp[(4) - (6)].list);
10000 yyval.attrib->loc = (yyloc);
10001 ;
10002 }
10003 break;
10004 case 933:
10005 {
10006 yyval.attrib = MkAttrib(yyvsp[(1) - (5)].i, (((void *)0)));
10007 yyval.attrib->loc = (yyloc);
10008 ;
10009 }
10010 break;
10011 case 934:
10012 {
10013 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
10014 ;
10015 }
10016 break;
10017 case 935:
10018 {
10019 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
10020 ;
10021 }
10022 break;
10023 case 936:
10024 {
10025 yyval.declarator = MkDeclaratorArray((((void *)0)), (((void *)0)));
10026 ;
10027 }
10028 break;
10029 case 937:
10030 {
10031 yyval.declarator = MkDeclaratorArray((((void *)0)), yyvsp[(2) - (3)].exp);
10032 ;
10033 }
10034 break;
10035 case 938:
10036 {
10037 yyval.declarator = MkDeclaratorArray((((void *)0)), yyvsp[(2) - (3)].exp);
10038 ;
10039 }
10040 break;
10041 case 939:
10042 {
10043 yyval.declarator = MkDeclaratorEnumArray((((void *)0)), yyvsp[(2) - (3)].specifier);
10044 ;
10045 }
10046 break;
10047 case 940:
10048 {
10049 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (3)].declarator, (((void *)0)));
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 = MkDeclaratorEnumArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].specifier);
10062 ;
10063 }
10064 break;
10065 case 943:
10066 {
10067 yyval.declarator = MkDeclaratorArray(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].exp);
10068 ;
10069 }
10070 break;
10071 case 944:
10072 {
10073 yyval.declarator = MkDeclaratorFunction((((void *)0)), (((void *)0)));
10074 ;
10075 }
10076 break;
10077 case 945:
10078 {
10079 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10080 ;
10081 }
10082 break;
10083 case 946:
10084 {
10085 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10086 ;
10087 }
10088 break;
10089 case 947:
10090 {
10091 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, (((void *)0)));
10092 ;
10093 }
10094 break;
10095 case 948:
10096 {
10097 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10098 ;
10099 }
10100 break;
10101 case 949:
10102 {
10103 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10104 ;
10105 }
10106 break;
10107 case 950:
10108 {
10109 yyval.declarator = MkDeclaratorBrackets(yyvsp[(2) - (3)].declarator);
10110 ;
10111 }
10112 break;
10113 case 951:
10114 {
10115 yyval.declarator = MkDeclaratorBrackets(MkDeclaratorExtended(yyvsp[(2) - (4)].extDecl, yyvsp[(3) - (4)].declarator));
10116 ;
10117 }
10118 break;
10119 case 952:
10120 {
10121 yyval.declarator = MkDeclaratorFunction((((void *)0)), (((void *)0)));
10122 ;
10123 }
10124 break;
10125 case 953:
10126 {
10127 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10128 ;
10129 }
10130 break;
10131 case 954:
10132 {
10133 yyval.declarator = MkDeclaratorFunction((((void *)0)), yyvsp[(2) - (3)].list);
10134 ;
10135 }
10136 break;
10137 case 955:
10138 {
10139 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (3)].declarator, (((void *)0)));
10140 ;
10141 }
10142 break;
10143 case 956:
10144 {
10145 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10146 ;
10147 }
10148 break;
10149 case 957:
10150 {
10151 yyval.declarator = MkDeclaratorFunction(yyvsp[(1) - (4)].declarator, yyvsp[(3) - (4)].list);
10152 ;
10153 }
10154 break;
10155 case 958:
10156 {
10157 yyval.pointer = MkPointer((((void *)0)), (((void *)0)));
10158 ;
10159 }
10160 break;
10161 case 959:
10162 {
10163 yyval.pointer = MkPointer(yyvsp[(2) - (2)].list, (((void *)0)));
10164 ;
10165 }
10166 break;
10167 case 960:
10168 {
10169 yyval.pointer = MkPointer((((void *)0)), yyvsp[(2) - (2)].pointer);
10170 ;
10171 }
10172 break;
10173 case 961:
10174 {
10175 yyval.pointer = MkPointer(yyvsp[(2) - (3)].list, yyvsp[(3) - (3)].pointer);
10176 ;
10177 }
10178 break;
10179 case 962:
10180 {
10181 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (1)].pointer, (((void *)0)));
10182 ;
10183 }
10184 break;
10185 case 964:
10186 {
10187 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10188 ;
10189 }
10190 break;
10191 case 965:
10192 {
10193 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (2)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (2)].pointer, (((void *)0))));
10194 ;
10195 }
10196 break;
10197 case 966:
10198 {
10199 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10200 ;
10201 }
10202 break;
10203 case 967:
10204 {
10205 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (1)].pointer, (((void *)0)));
10206 ;
10207 }
10208 break;
10209 case 969:
10210 {
10211 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10212 ;
10213 }
10214 break;
10215 case 970:
10216 {
10217 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (2)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (2)].pointer, (((void *)0))));
10218 ;
10219 }
10220 break;
10221 case 971:
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 = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10230 ;
10231 }
10232 break;
10233 case 974:
10234 {
10235 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10236 ;
10237 }
10238 break;
10239 case 975:
10240 {
10241 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10242 ;
10243 }
10244 break;
10245 case 976:
10246 {
10247 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10248 ;
10249 }
10250 break;
10251 case 978:
10252 {
10253 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10254 ;
10255 }
10256 break;
10257 case 979:
10258 {
10259 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10260 ;
10261 }
10262 break;
10263 case 980:
10264 {
10265 yyval.declarator = MkDeclaratorExtendedEnd(yyvsp[(2) - (2)].extDecl, yyvsp[(1) - (2)].declarator);
10266 ;
10267 }
10268 break;
10269 case 982:
10270 {
10271 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10272 ;
10273 }
10274 break;
10275 case 983:
10276 {
10277 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10278 ;
10279 }
10280 break;
10281 case 984:
10282 {
10283 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10284 ;
10285 }
10286 break;
10287 case 986:
10288 {
10289 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10290 ;
10291 }
10292 break;
10293 case 987:
10294 {
10295 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10296 ;
10297 }
10298 break;
10299 case 988:
10300 {
10301 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10302 ;
10303 }
10304 break;
10305 case 990:
10306 {
10307 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10308 ;
10309 }
10310 break;
10311 case 991:
10312 {
10313 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10314 ;
10315 }
10316 break;
10317 case 992:
10318 {
10319 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10320 ;
10321 }
10322 break;
10323 case 994:
10324 {
10325 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10326 ;
10327 }
10328 break;
10329 case 995:
10330 {
10331 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10332 ;
10333 }
10334 break;
10335 case 996:
10336 {
10337 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10338 ;
10339 }
10340 break;
10341 case 998:
10342 {
10343 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (2)].pointer, yyvsp[(2) - (2)].declarator);
10344 ;
10345 }
10346 break;
10347 case 999:
10348 {
10349 yyval.declarator = MkDeclaratorExtended(yyvsp[(1) - (3)].extDecl, MkDeclaratorPointer(yyvsp[(2) - (3)].pointer, yyvsp[(3) - (3)].declarator));
10350 ;
10351 }
10352 break;
10353 case 1000:
10354 {
10355 yyval.declarator = MkDeclaratorPointer(yyvsp[(1) - (3)].pointer, MkDeclaratorExtended(yyvsp[(2) - (3)].extDecl, yyvsp[(3) - (3)].declarator));
10356 ;
10357 }
10358 break;
10359 case 1001:
10360 {
10361 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10362 yyval.initializer->loc = (yyloc);
10363 ;
10364 }
10365 break;
10366 case 1002:
10367 {
10368 yyval.initializer = MkInitializerList(yyvsp[(2) - (3)].list);
10369 yyval.initializer->loc = (yyloc);
10370 ;
10371 }
10372 break;
10373 case 1003:
10374 {
10375 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "extra comma\n", (((void *)0))));
10376 yyval.initializer = MkInitializerList(yyvsp[(2) - (4)].list);
10377 yyval.initializer->loc = (yyloc);
10378 {
10379 struct Expression * exp = MkExpDummy();
10380 struct Initializer * init = MkInitializerAssignment(exp);
10381
10382 init->loc = (yylsp[(3) - (4)]);
10383 exp->loc = (yylsp[(3) - (4)]);
10384 ListAdd(yyvsp[(2) - (4)].list, init);
10385 }
10386 ;
10387 }
10388 break;
10389 case 1004:
10390 {
10391 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10392 yyval.initializer->loc = (yyloc);
10393 ;
10394 }
10395 break;
10396 case 1005:
10397 {
10398 yyval.initializer = MkInitializerList(yyvsp[(2) - (4)].list);
10399 yyval.initializer->loc = (yyloc);
10400 ;
10401 }
10402 break;
10403 case 1006:
10404 {
10405 yyerror();
10406 yyval.initializer = MkInitializerList(yyvsp[(2) - (2)].list);
10407 yyval.initializer->loc = (yyloc);
10408 ;
10409 }
10410 break;
10411 case 1007:
10412 {
10413 yyval.initializer = MkInitializerList(yyvsp[(2) - (5)].list);
10414 yyval.initializer->loc = (yyloc);
10415 {
10416 struct Expression * exp = MkExpDummy();
10417 struct Initializer * init = MkInitializerAssignment(exp);
10418
10419 init->loc = (yylsp[(3) - (5)]);
10420 exp->loc = (yylsp[(3) - (5)]);
10421 ListAdd(yyvsp[(2) - (5)].list, init);
10422 }
10423 ;
10424 }
10425 break;
10426 case 1008:
10427 {
10428 yyerror();
10429 yyval.initializer = MkInitializerList(yyvsp[(2) - (3)].list);
10430 yyval.initializer->loc = (yyloc);
10431 {
10432 struct Expression * exp = MkExpDummy();
10433 struct Initializer * init = MkInitializerAssignment(exp);
10434
10435 init->loc = (yylsp[(3) - (3)]);
10436 exp->loc = (yylsp[(3) - (3)]);
10437 ListAdd(yyvsp[(2) - (3)].list, init);
10438 }
10439 ;
10440 }
10441 break;
10442 case 1009:
10443 {
10444 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10445 yyval.initializer->loc = (yyloc);
10446 ;
10447 }
10448 break;
10449 case 1010:
10450 {
10451 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10452 yyval.initializer->loc = (yyloc);
10453 ;
10454 }
10455 break;
10456 case 1011:
10457 {
10458 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10459 yyval.initializer->loc = (yyloc);
10460 ;
10461 }
10462 break;
10463 case 1012:
10464 {
10465 yyval.initializer = MkInitializerAssignment(yyvsp[(1) - (1)].exp);
10466 yyval.initializer->loc = (yyloc);
10467 ;
10468 }
10469 break;
10470 case 1013:
10471 {
10472 yyval.list = MkList();
10473 ListAdd(yyval.list, yyvsp[(1) - (1)].initializer);
10474 ;
10475 }
10476 break;
10477 case 1014:
10478 {
10479 yyval.list = MkList();
10480 ListAdd(yyval.list, yyvsp[(1) - (1)].initializer);
10481 ;
10482 }
10483 break;
10484 case 1015:
10485 {
10486 yyval.list = yyvsp[(1) - (3)].list;
10487 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initializer);
10488 ;
10489 }
10490 break;
10491 case 1016:
10492 {
10493 yyval.list = yyvsp[(1) - (3)].list;
10494 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initializer);
10495 ;
10496 }
10497 break;
10498 case 1017:
10499 {
10500 yyerror();
10501 yyval.list = yyvsp[(1) - (2)].list;
10502 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].initializer);
10503 ;
10504 }
10505 break;
10506 case 1018:
10507 {
10508 yyval.list = yyvsp[(1) - (2)].list;
10509 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].initializer);
10510 ;
10511 }
10512 break;
10513 case 1019:
10514 {
10515 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
10516 yyval.initDeclarator->loc = (yyloc);
10517 ;
10518 }
10519 break;
10520 case 1020:
10521 {
10522 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (1)].declarator, (((void *)0)));
10523 yyval.initDeclarator->loc = (yyloc);
10524 ;
10525 }
10526 break;
10527 case 1021:
10528 {
10529 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].initializer);
10530 yyval.initDeclarator->loc = (yyloc);
10531 yyval.initDeclarator->initializer->loc.start = (yylsp[(2) - (3)]).end;
10532 ;
10533 }
10534 break;
10535 case 1022:
10536 {
10537 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (2)].declarator, (((void *)0)));
10538 yyval.initDeclarator->loc = (yyloc);
10539 ;
10540 }
10541 break;
10542 case 1023:
10543 {
10544 yyval.initDeclarator = MkInitDeclarator(yyvsp[(1) - (3)].declarator, yyvsp[(3) - (3)].initializer);
10545 yyval.initDeclarator->loc = (yyloc);
10546 yyval.initDeclarator->initializer->loc.start = (yylsp[(2) - (3)]).end;
10547 ;
10548 }
10549 break;
10550 case 1024:
10551 {
10552 yyval.list = MkList();
10553 ListAdd(yyval.list, yyvsp[(1) - (1)].initDeclarator);
10554 ;
10555 }
10556 break;
10557 case 1025:
10558 {
10559 yyval.list = yyvsp[(1) - (3)].list;
10560 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10561 ;
10562 }
10563 break;
10564 case 1026:
10565 {
10566 yyval.list = MkList();
10567 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("uint")), (((void *)0))));
10568 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10569 ;
10570 }
10571 break;
10572 case 1027:
10573 {
10574 yyval.list = MkList();
10575 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("int64")), (((void *)0))));
10576 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10577 ;
10578 }
10579 break;
10580 case 1028:
10581 {
10582 yyval.list = MkList();
10583 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("__int128")), (((void *)0))));
10584 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10585 ;
10586 }
10587 break;
10588 case 1029:
10589 {
10590 char * colon = __ecereNameSpace__ecere__sys__RSearchString(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name, "::", strlen(yyvsp[(1) - (3)].specifier->__anon1.__anon1.name), 1, 0);
10591 char * s = colon ? colon + 2 : yyvsp[(1) - (3)].specifier->__anon1.__anon1.name;
10592
10593 yyval.list = MkList();
10594 ListAdd(yyval.list, MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(s)), (((void *)0))));
10595 ListAdd(yyval.list, yyvsp[(3) - (3)].initDeclarator);
10596 FreeSpecifier(yyvsp[(1) - (3)].specifier);
10597 ;
10598 }
10599 break;
10600 case 1030:
10601 {
10602 yyval.list = yyvsp[(1) - (3)].list;
10603 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10604 ;
10605 }
10606 break;
10607 case 1031:
10608 {
10609 yyval.list = MkList();
10610 ListAdd(yyval.list, yyvsp[(1) - (1)].initDeclarator);
10611 ;
10612 }
10613 break;
10614 case 1032:
10615 {
10616 yyval.list = MkList();
10617 ListAdd(yyval.list, yyvsp[(1) - (2)].initDeclarator);
10618 ;
10619 }
10620 break;
10621 case 1033:
10622 {
10623 yyval.list = yyvsp[(1) - (3)].list;
10624 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10625 ;
10626 }
10627 break;
10628 case 1034:
10629 {
10630 yyval.list = yyvsp[(1) - (3)].list;
10631 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].initDeclarator);
10632 ;
10633 }
10634 break;
10635 case 1035:
10636 {
10637 yyval.typeName = MkTypeName(yyvsp[(1) - (1)].list, (((void *)0)));
10638 ;
10639 }
10640 break;
10641 case 1036:
10642 {
10643 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10644 ;
10645 }
10646 break;
10647 case 1037:
10648 {
10649 yyval.typeName = MkTypeName(yyvsp[(1) - (1)].list, (((void *)0)));
10650 ;
10651 }
10652 break;
10653 case 1038:
10654 {
10655 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10656 ;
10657 }
10658 break;
10659 case 1039:
10660 {
10661 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10662 ;
10663 }
10664 break;
10665 case 1040:
10666 {
10667 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declarator);
10668 ;
10669 }
10670 break;
10671 case 1041:
10672 {
10673 yyval.typeName = MkTypeName(yyvsp[(1) - (2)].list, MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), (((void *)0))));
10674 ;
10675 }
10676 break;
10677 case 1042:
10678 {
10679 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), yyvsp[(3) - (3)].declarator));
10680 ;
10681 }
10682 break;
10683 case 1043:
10684 {
10685 yyval.typeName = MkTypeNameGuessDecl(yyvsp[(1) - (1)].list, (((void *)0)));
10686 ;
10687 }
10688 break;
10689 case 1044:
10690 {
10691 yyval.typeName = MkTypeName(MkListOne(MkSpecifier(CLASS)), (((void *)0)));
10692 ;
10693 }
10694 break;
10695 case 1045:
10696 {
10697 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator);
10698 ;
10699 }
10700 break;
10701 case 1046:
10702 {
10703 yyval.typeName = MkTypeName(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator);
10704 ;
10705 }
10706 break;
10707 case 1047:
10708 {
10709 yyval.list = MkList();
10710 ListAdd(yyval.list, yyvsp[(1) - (1)].typeName);
10711 ;
10712 }
10713 break;
10714 case 1048:
10715 {
10716 yyval.list = yyvsp[(1) - (3)].list;
10717 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10718 ;
10719 }
10720 break;
10721 case 1049:
10722 {
10723 yyval.list = yyvsp[(1) - (4)].list;
10724 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10725 ;
10726 }
10727 break;
10728 case 1050:
10729 {
10730 yyval.list = yyvsp[(1) - (3)].list;
10731 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10732 ;
10733 }
10734 break;
10735 case 1051:
10736 {
10737 yyval.list = yyvsp[(1) - (4)].list;
10738 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10739 ;
10740 }
10741 break;
10742 case 1052:
10743 {
10744 yyval.list = MkList();
10745 ListAdd(yyval.list, MkTypeName(MkList(), (((void *)0))));
10746 ListAdd(yyval.list, yyvsp[(3) - (3)].typeName);
10747 ;
10748 }
10749 break;
10750 case 1053:
10751 {
10752 yyval.list = yyvsp[(1) - (3)].list;
10753 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10754 ;
10755 }
10756 break;
10757 case 1054:
10758 {
10759 yyval.list = yyvsp[(1) - (4)].list;
10760 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10761 ;
10762 }
10763 break;
10764 case 1055:
10765 {
10766 yyval.list = yyvsp[(1) - (3)].list;
10767 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10768 ;
10769 }
10770 break;
10771 case 1056:
10772 {
10773 yyval.list = yyvsp[(1) - (4)].list;
10774 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10775 ;
10776 }
10777 break;
10778 case 1057:
10779 {
10780 yyval.list = MkList();
10781 ListAdd(yyval.list, yyvsp[(1) - (1)].typeName);
10782 ;
10783 }
10784 break;
10785 case 1058:
10786 {
10787 yyval.list = yyvsp[(1) - (3)].list;
10788 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10789 ;
10790 }
10791 break;
10792 case 1059:
10793 {
10794 yyval.list = yyvsp[(1) - (3)].list;
10795 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10796 ;
10797 }
10798 break;
10799 case 1060:
10800 {
10801 yyval.list = yyvsp[(1) - (4)].list;
10802 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10803 ;
10804 }
10805 break;
10806 case 1061:
10807 {
10808 yyval.list = MkList();
10809 ListAdd(yyval.list, MkTypeName(MkList(), (((void *)0))));
10810 ListAdd(yyval.list, yyvsp[(3) - (3)].typeName);
10811 ;
10812 }
10813 break;
10814 case 1062:
10815 {
10816 yyval.list = yyvsp[(1) - (3)].list;
10817 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10818 ;
10819 }
10820 break;
10821 case 1063:
10822 {
10823 yyval.list = yyvsp[(1) - (3)].list;
10824 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].typeName);
10825 ;
10826 }
10827 break;
10828 case 1064:
10829 {
10830 yyval.list = yyvsp[(1) - (4)].list;
10831 ListAdd(yyvsp[(1) - (4)].list, yyvsp[(4) - (4)].typeName);
10832 ;
10833 }
10834 break;
10835 case 1066:
10836 {
10837 yyval.list = yyvsp[(1) - (3)].list;
10838 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10839 ;
10840 }
10841 break;
10842 case 1067:
10843 {
10844 yyval.list = yyvsp[(1) - (3)].list;
10845 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10846 ;
10847 }
10848 break;
10849 case 1068:
10850 {
10851 yyval.list = yyvsp[(1) - (3)].list;
10852 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10853 ;
10854 }
10855 break;
10856 case 1069:
10857 {
10858 yyval.list = yyvsp[(1) - (3)].list;
10859 ListAdd(yyvsp[(1) - (3)].list, MkTypeName((((void *)0)), (((void *)0))));
10860 ;
10861 }
10862 break;
10863 case 1070:
10864 {
10865 yyval.list = MkList();
10866 ListAdd(yyval.list, MkTypeName((((void *)0)), (((void *)0))));
10867 ;
10868 }
10869 break;
10870 case 1072:
10871 {
10872 yyval.list = yyvsp[(1) - (3)].list;
10873 ListAdd(yyvsp[(1) - (3)].list, (((void *)0)));
10874 ;
10875 }
10876 break;
10877 case 1075:
10878 {
10879 yyval.stmt = MkExpressionStmt((((void *)0)));
10880 FreeAttrib(yyvsp[(1) - (1)].attrib);
10881 ;
10882 }
10883 break;
10884 case 1077:
10885 {
10886 yyval.stmt = MkExpressionStmt((((void *)0)));
10887 ;
10888 }
10889 break;
10890 case 1078:
10891 {
10892 yyval.stmt = MkExpressionStmt((((void *)0)));
10893 ;
10894 }
10895 break;
10896 case 1079:
10897 {
10898 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
10899 yyval.stmt->loc = (yyloc);
10900 ;
10901 }
10902 break;
10903 case 1087:
10904 {
10905 yyval.stmt = yyvsp[(1) - (1)].stmt;
10906 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10907 ;
10908 }
10909 break;
10910 case 1088:
10911 {
10912 yyval.stmt = yyvsp[(1) - (1)].stmt;
10913 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10914 ;
10915 }
10916 break;
10917 case 1089:
10918 {
10919 yyval.stmt = yyvsp[(1) - (1)].stmt;
10920 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10921 ;
10922 }
10923 break;
10924 case 1090:
10925 {
10926 yyval.stmt = yyvsp[(1) - (1)].stmt;
10927 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10928 ;
10929 }
10930 break;
10931 case 1091:
10932 {
10933 yyval.stmt = yyvsp[(1) - (1)].stmt;
10934 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10935 ;
10936 }
10937 break;
10938 case 1092:
10939 {
10940 yyval.stmt = yyvsp[(1) - (2)].stmt;
10941 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10942 ;
10943 }
10944 break;
10945 case 1093:
10946 {
10947 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (1)].list);
10948 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
10949 yyval.stmt->loc = (yylsp[(1) - (1)]);
10950 ;
10951 }
10952 break;
10953 case 1094:
10954 {
10955 yyval.asmField = MkAsmField(yyvsp[(1) - (1)].string, (((void *)0)), (((void *)0)));
10956 yyval.asmField->loc = (yylsp[(1) - (1)]);
10957 ;
10958 }
10959 break;
10960 case 1095:
10961 {
10962 yyval.asmField = MkAsmField(yyvsp[(1) - (4)].string, yyvsp[(3) - (4)].exp, (((void *)0)));
10963 yyval.asmField->loc = (yyloc);
10964 ;
10965 }
10966 break;
10967 case 1096:
10968 {
10969 yyval.asmField = MkAsmField(yyvsp[(4) - (7)].string, yyvsp[(6) - (7)].exp, yyvsp[(2) - (7)].id);
10970 yyval.asmField->loc = (yyloc);
10971 ;
10972 }
10973 break;
10974 case 1097:
10975 {
10976 yyval.list = MkListOne(yyvsp[(1) - (1)].asmField);
10977 ;
10978 }
10979 break;
10980 case 1098:
10981 {
10982 ListAdd(yyval.list, yyvsp[(3) - (3)].asmField);
10983 ;
10984 }
10985 break;
10986 case 1099:
10987 {
10988 yyval.list = (((void *)0));
10989 ;
10990 }
10991 break;
10992 case 1100:
10993 {
10994 yyval.stmt = MkAsmStmt(yyvsp[(2) - (6)].specifier, yyvsp[(4) - (6)].string, (((void *)0)), (((void *)0)), (((void *)0)));
10995 yyval.stmt->loc = (yyloc);
10996 ;
10997 }
10998 break;
10999 case 1101:
11000 {
11001 yyval.stmt = MkAsmStmt(yyvsp[(2) - (8)].specifier, yyvsp[(4) - (8)].string, yyvsp[(6) - (8)].list, (((void *)0)), (((void *)0)));
11002 yyval.stmt->loc = (yyloc);
11003 ;
11004 }
11005 break;
11006 case 1102:
11007 {
11008 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, yyvsp[(6) - (10)].list, yyvsp[(8) - (10)].list, (((void *)0)));
11009 yyval.stmt->loc = (yyloc);
11010 ;
11011 }
11012 break;
11013 case 1103:
11014 {
11015 yyval.stmt = MkAsmStmt(yyvsp[(2) - (12)].specifier, yyvsp[(4) - (12)].string, yyvsp[(6) - (12)].list, yyvsp[(8) - (12)].list, yyvsp[(10) - (12)].list);
11016 yyval.stmt->loc = (yyloc);
11017 ;
11018 }
11019 break;
11020 case 1104:
11021 {
11022 yyval.stmt = MkAsmStmt(yyvsp[(2) - (8)].specifier, yyvsp[(4) - (8)].string, (((void *)0)), yyvsp[(6) - (8)].list, (((void *)0)));
11023 yyval.stmt->loc = (yyloc);
11024 ;
11025 }
11026 break;
11027 case 1105:
11028 {
11029 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, (((void *)0)), yyvsp[(6) - (10)].list, yyvsp[(8) - (10)].list);
11030 yyval.stmt->loc = (yyloc);
11031 ;
11032 }
11033 break;
11034 case 1106:
11035 {
11036 yyval.stmt = MkAsmStmt(yyvsp[(2) - (10)].specifier, yyvsp[(4) - (10)].string, yyvsp[(6) - (10)].list, (((void *)0)), yyvsp[(8) - (10)].list);
11037 yyval.stmt->loc = (yyloc);
11038 ;
11039 }
11040 break;
11041 case 1107:
11042 {
11043 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (5)].string, (((void *)0)), (((void *)0)), (((void *)0)));
11044 yyval.stmt->loc = (yyloc);
11045 ;
11046 }
11047 break;
11048 case 1108:
11049 {
11050 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (7)].string, yyvsp[(5) - (7)].list, (((void *)0)), (((void *)0)));
11051 yyval.stmt->loc = (yyloc);
11052 ;
11053 }
11054 break;
11055 case 1109:
11056 {
11057 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list, (((void *)0)));
11058 yyval.stmt->loc = (yyloc);
11059 ;
11060 }
11061 break;
11062 case 1110:
11063 {
11064 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (11)].string, yyvsp[(5) - (11)].list, yyvsp[(7) - (11)].list, yyvsp[(9) - (11)].list);
11065 yyval.stmt->loc = (yyloc);
11066 ;
11067 }
11068 break;
11069 case 1111:
11070 {
11071 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (7)].string, (((void *)0)), yyvsp[(5) - (7)].list, (((void *)0)));
11072 yyval.stmt->loc = (yyloc);
11073 ;
11074 }
11075 break;
11076 case 1112:
11077 {
11078 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, (((void *)0)), yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list);
11079 yyval.stmt->loc = (yyloc);
11080 ;
11081 }
11082 break;
11083 case 1113:
11084 {
11085 yyval.stmt = MkAsmStmt((((void *)0)), yyvsp[(3) - (9)].string, yyvsp[(5) - (9)].list, (((void *)0)), yyvsp[(7) - (9)].list);
11086 yyval.stmt->loc = (yyloc);
11087 ;
11088 }
11089 break;
11090 case 1114:
11091 {
11092 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].stmt);
11093 yyval.stmt->loc = (yyloc);
11094 ;
11095 }
11096 break;
11097 case 1115:
11098 {
11099 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11100 yyval.stmt->loc = (yyloc);
11101 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11102 ;
11103 }
11104 break;
11105 case 1116:
11106 {
11107 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11108 yyval.stmt->loc = (yyloc);
11109 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11110 ;
11111 }
11112 break;
11113 case 1117:
11114 {
11115 yyval.stmt = MkCaseStmt(MkExpDummy(), yyvsp[(3) - (3)].stmt);
11116 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11117 yyval.stmt->loc = (yyloc);
11118 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11119 ;
11120 }
11121 break;
11122 case 1118:
11123 {
11124 yyval.stmt = MkCaseStmt((((void *)0)), yyvsp[(3) - (3)].stmt);
11125 yyval.stmt->loc = (yyloc);
11126 ;
11127 }
11128 break;
11129 case 1119:
11130 {
11131 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11132
11133 stmt->loc = (yylsp[(3) - (3)]);
11134 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11135 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, stmt);
11136 yyval.stmt->loc = (yyloc);
11137 ;
11138 }
11139 break;
11140 case 1120:
11141 {
11142 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11143
11144 stmt->loc = (yylsp[(4) - (4)]);
11145 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11146 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11147 yyval.stmt->loc = (yyloc);
11148 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11149 ;
11150 }
11151 break;
11152 case 1121:
11153 {
11154 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11155
11156 stmt->loc = (yylsp[(4) - (4)]);
11157 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11158 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11159 yyval.stmt->loc = (yyloc);
11160 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11161 ;
11162 }
11163 break;
11164 case 1122:
11165 {
11166 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11167
11168 stmt->loc = (yylsp[(3) - (3)]);
11169 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11170 yyval.stmt = MkCaseStmt(MkExpDummy(), stmt);
11171 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11172 yyval.stmt->loc = (yyloc);
11173 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11174 ;
11175 }
11176 break;
11177 case 1123:
11178 {
11179 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11180
11181 stmt->loc = (yylsp[(3) - (3)]);
11182 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11183 yyval.stmt = MkCaseStmt((((void *)0)), stmt);
11184 yyval.stmt->loc = (yyloc);
11185 ;
11186 }
11187 break;
11188 case 1124:
11189 {
11190 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, yyvsp[(3) - (3)].stmt);
11191 yyval.stmt->loc = (yyloc);
11192 ;
11193 }
11194 break;
11195 case 1125:
11196 {
11197 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11198 yyval.stmt->loc = (yyloc);
11199 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11200 ;
11201 }
11202 break;
11203 case 1126:
11204 {
11205 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, yyvsp[(4) - (4)].stmt);
11206 yyval.stmt->loc = (yyloc);
11207 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11208 ;
11209 }
11210 break;
11211 case 1127:
11212 {
11213 yyval.stmt = MkCaseStmt(MkExpDummy(), yyvsp[(3) - (3)].stmt);
11214 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11215 yyval.stmt->loc = (yyloc);
11216 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11217 ;
11218 }
11219 break;
11220 case 1128:
11221 {
11222 yyval.stmt = MkCaseStmt(MkExpDummy(), (((void *)0)));
11223 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (2)]);
11224 yyval.stmt->loc = (yyloc);
11225 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (2)]).end;
11226 ;
11227 }
11228 break;
11229 case 1129:
11230 {
11231 yyval.stmt = MkCaseStmt((((void *)0)), yyvsp[(3) - (3)].stmt);
11232 yyval.stmt->loc = (yyloc);
11233 ;
11234 }
11235 break;
11236 case 1130:
11237 {
11238 yyval.stmt = MkCaseStmt((((void *)0)), (((void *)0)));
11239 yyval.stmt->loc = (yyloc);
11240 ;
11241 }
11242 break;
11243 case 1131:
11244 {
11245 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11246
11247 stmt->loc = (yylsp[(3) - (3)]);
11248 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11249 yyval.stmt = MkLabeledStmt(yyvsp[(1) - (3)].id, stmt);
11250 yyval.stmt->loc = (yyloc);
11251 ;
11252 }
11253 break;
11254 case 1132:
11255 {
11256 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11257
11258 stmt->loc = (yylsp[(4) - (4)]);
11259 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11260 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11261 yyval.stmt->loc = (yyloc);
11262 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11263 ;
11264 }
11265 break;
11266 case 1133:
11267 {
11268 struct Statement * stmt = MkBadDeclStmt(yyvsp[(4) - (4)].declaration);
11269
11270 stmt->loc = (yylsp[(4) - (4)]);
11271 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11272 yyval.stmt = MkCaseStmt(yyvsp[(2) - (4)].exp, stmt);
11273 yyval.stmt->loc = (yyloc);
11274 yyvsp[(2) - (4)].exp->loc.start = (yylsp[(1) - (4)]).end;
11275 ;
11276 }
11277 break;
11278 case 1134:
11279 {
11280 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11281
11282 stmt->loc = (yylsp[(3) - (3)]);
11283 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11284 yyval.stmt = MkCaseStmt(MkExpDummy(), stmt);
11285 yyval.stmt->__anon1.caseStmt.exp->loc = (yylsp[(2) - (3)]);
11286 yyval.stmt->loc = (yyloc);
11287 yyval.stmt->__anon1.caseStmt.exp->loc.start = (yylsp[(1) - (3)]).end;
11288 ;
11289 }
11290 break;
11291 case 1135:
11292 {
11293 struct Statement * stmt = MkBadDeclStmt(yyvsp[(3) - (3)].declaration);
11294
11295 stmt->loc = (yylsp[(3) - (3)]);
11296 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11297 yyval.stmt = MkCaseStmt((((void *)0)), stmt);
11298 yyval.stmt->loc = (yyloc);
11299 ;
11300 }
11301 break;
11302 case 1136:
11303 {
11304 yyval.declMode = structDeclMode = declMode = 1;
11305 ;
11306 }
11307 break;
11308 case 1137:
11309 {
11310 yyval.declMode = structDeclMode = declMode = 2;
11311 ;
11312 }
11313 break;
11314 case 1138:
11315 {
11316 yyval.declMode = structDeclMode = declMode = 0;
11317 ;
11318 }
11319 break;
11320 case 1139:
11321 {
11322 yyval.declMode = 1;
11323 ;
11324 }
11325 break;
11326 case 1140:
11327 {
11328 yyval.declMode = 2;
11329 ;
11330 }
11331 break;
11332 case 1141:
11333 {
11334 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11335 yyval.declaration->loc = (yyloc);
11336 structDeclMode = defaultDeclMode;
11337 ;
11338 }
11339 break;
11340 case 1142:
11341 {
11342 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11343 yyval.declaration->loc = (yyloc);
11344 structDeclMode = defaultDeclMode;
11345 ;
11346 }
11347 break;
11348 case 1143:
11349 {
11350 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11351 yyval.declaration->loc = (yyloc);
11352 structDeclMode = defaultDeclMode;
11353 ;
11354 }
11355 break;
11356 case 1144:
11357 {
11358 yyval.declaration = yyvsp[(1) - (2)].declaration;
11359 structDeclMode = defaultDeclMode;
11360 ;
11361 }
11362 break;
11363 case 1145:
11364 {
11365 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11366 yyval.declaration->loc = (yyloc);
11367 ;
11368 }
11369 break;
11370 case 1146:
11371 {
11372 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11373 yyval.declaration->loc = (yyloc);
11374 ;
11375 }
11376 break;
11377 case 1147:
11378 {
11379 yyval.declaration = MkDeclaration(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].list);
11380 yyval.declaration->loc = (yyloc);
11381 ;
11382 }
11383 break;
11384 case 1148:
11385 {
11386 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11387 yyval.declaration->loc = (yyloc);
11388 ;
11389 }
11390 break;
11391 case 1149:
11392 {
11393 yyval.declaration = MkDeclarationDefine(yyvsp[(2) - (5)].id, yyvsp[(4) - (5)].exp);
11394 yyval.declaration->loc = (yyloc);
11395 ;
11396 }
11397 break;
11398 case 1150:
11399 {
11400 structDeclMode = declMode = 3;
11401 yyval.declaration = MkDeclarationDefine(yyvsp[(3) - (6)].id, yyvsp[(5) - (6)].exp);
11402 yyval.declaration->loc = (yyloc);
11403 ;
11404 }
11405 break;
11406 case 1151:
11407 {
11408 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11409 yyval.declaration->loc = (yyloc);
11410 (yyerrstatus = 0);
11411 ;
11412 }
11413 break;
11414 case 1152:
11415 {
11416 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, (((void *)0)));
11417 yyval.declaration->loc = (yyloc);
11418 structDeclMode = defaultDeclMode;
11419 ;
11420 }
11421 break;
11422 case 1153:
11423 {
11424 structDeclMode = defaultDeclMode;
11425 ;
11426 }
11427 break;
11428 case 1154:
11429 {
11430 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11431 yyval.declaration->loc = (yyloc);
11432 structDeclMode = defaultDeclMode;
11433 ;
11434 }
11435 break;
11436 case 1155:
11437 {
11438 yyval.declaration = MkDeclarationInst(yyvsp[(1) - (2)].instance);
11439 yyval.declaration->loc = (yyloc);
11440 structDeclMode = defaultDeclMode;
11441 ;
11442 }
11443 break;
11444 case 1156:
11445 {
11446 yyval.declaration = MkDeclaration(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11447 yyval.declaration->loc = (yyloc);
11448 structDeclMode = defaultDeclMode;
11449 ;
11450 }
11451 break;
11452 case 1157:
11453 {
11454 yyval.list = MkList();
11455 ListAdd(yyval.list, yyvsp[(1) - (1)].declaration);
11456 ;
11457 }
11458 break;
11459 case 1158:
11460 {
11461 yyval.list = yyvsp[(1) - (2)].list;
11462 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].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 = yyvsp[(1) - (3)].list;
11476 ;
11477 }
11478 break;
11479 case 1161:
11480 {
11481 yyval.list = MkList();
11482 ListAdd(yyval.list, yyvsp[(1) - (1)].declaration);
11483 ;
11484 }
11485 break;
11486 case 1162:
11487 {
11488 yyval.list = yyvsp[(1) - (2)].list;
11489 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].declaration);
11490 ;
11491 }
11492 break;
11493 case 1163:
11494 {
11495 yyval.list = MkList();
11496 ListAdd(yyval.list, yyvsp[(1) - (1)].stmt);
11497 ;
11498 }
11499 break;
11500 case 1164:
11501 {
11502 yyval.list = yyvsp[(1) - (2)].list;
11503 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11504 ;
11505 }
11506 break;
11507 case 1165:
11508 {
11509 yyval.list = yyvsp[(1) - (2)].list;
11510 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11511 ;
11512 }
11513 break;
11514 case 1166:
11515 {
11516 yyval.list = MkList();
11517 ListAdd(yyval.list, yyvsp[(1) - (1)].stmt);
11518 ;
11519 }
11520 break;
11521 case 1167:
11522 {
11523 yyval.list = yyvsp[(1) - (2)].list;
11524 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11525 ;
11526 }
11527 break;
11528 case 1168:
11529 {
11530 yyval.list = yyvsp[(1) - (2)].list;
11531 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].stmt);
11532 ;
11533 }
11534 break;
11535 case 1169:
11536 {
11537 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11538
11539 stmt->loc = (yylsp[(2) - (2)]);
11540 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11541 yyval.list = yyvsp[(1) - (2)].list;
11542 ListAdd(yyvsp[(1) - (2)].list, stmt);
11543 ;
11544 }
11545 break;
11546 case 1170:
11547 {
11548 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11549
11550 stmt->loc = (yylsp[(2) - (2)]);
11551 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11552 yyval.list = yyvsp[(1) - (2)].list;
11553 ListAdd(yyvsp[(1) - (2)].list, stmt);
11554 ;
11555 }
11556 break;
11557 case 1171:
11558 {
11559 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11560
11561 stmt->loc = (yylsp[(2) - (2)]);
11562 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11563 yyval.list = yyvsp[(1) - (2)].list;
11564 ListAdd(yyvsp[(1) - (2)].list, stmt);
11565 ;
11566 }
11567 break;
11568 case 1172:
11569 {
11570 struct Statement * stmt = MkBadDeclStmt(yyvsp[(2) - (2)].declaration);
11571
11572 stmt->loc = (yylsp[(2) - (2)]);
11573 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "eC expects all declarations to precede statements in the block (C89 style)\n", (((void *)0))));
11574 yyval.list = yyvsp[(1) - (2)].list;
11575 ListAdd(yyvsp[(1) - (2)].list, stmt);
11576 ;
11577 }
11578 break;
11579 case 1173:
11580 {
11581 yyval.stmt = MkCompoundStmt((((void *)0)), yyvsp[(1) - (1)].list);
11582 ;
11583 }
11584 break;
11585 case 1174:
11586 {
11587 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (1)].list, (((void *)0)));
11588 ;
11589 }
11590 break;
11591 case 1175:
11592 {
11593 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11594 ;
11595 }
11596 break;
11597 case 1176:
11598 {
11599 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11600 ;
11601 }
11602 break;
11603 case 1177:
11604 {
11605 yyval.stmt = MkCompoundStmt((((void *)0)), yyvsp[(1) - (1)].list);
11606 ;
11607 }
11608 break;
11609 case 1178:
11610 {
11611 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (1)].list, (((void *)0)));
11612 ;
11613 }
11614 break;
11615 case 1179:
11616 {
11617 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11618 ;
11619 }
11620 break;
11621 case 1180:
11622 {
11623 yyval.stmt = MkCompoundStmt(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].list);
11624 ;
11625 }
11626 break;
11627 case 1181:
11628 {
11629 yyval.context = PushContext();
11630 ;
11631 }
11632 break;
11633 case 1182:
11634 {
11635 yyval.stmt = yyvsp[(1) - (2)].stmt;
11636 yyval.stmt->loc = (yyloc);
11637 ;
11638 }
11639 break;
11640 case 1183:
11641 {
11642 yyval.stmt = yyvsp[(2) - (2)].stmt;
11643 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (2)].context;
11644 PopContext(yyvsp[(1) - (2)].context);
11645 yyval.stmt->loc = (yyloc);
11646 yyval.stmt->loc.end.charPos++;
11647 yyval.stmt->loc.end.pos++;
11648 ;
11649 }
11650 break;
11651 case 1184:
11652 {
11653 yyval.stmt = MkCompoundStmt((((void *)0)), (((void *)0)));
11654 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (1)].context;
11655 PopContext(yyvsp[(1) - (1)].context);
11656 yyval.stmt->loc = (yyloc);
11657 yyval.stmt->loc.end.charPos++;
11658 yyval.stmt->loc.end.pos++;
11659 ;
11660 }
11661 break;
11662 case 1185:
11663 {
11664 yyval.stmt = yyvsp[(2) - (2)].stmt;
11665 yyval.stmt->__anon1.compound.context = yyvsp[(1) - (2)].context;
11666 PopContext(yyvsp[(1) - (2)].context);
11667 yyval.stmt->loc = (yyloc);
11668 yyval.stmt->loc.end.charPos++;
11669 yyval.stmt->loc.end.pos++;
11670 ;
11671 }
11672 break;
11673 case 1186:
11674 {
11675 yyval.stmt = MkExpressionStmt((((void *)0)));
11676 yyval.stmt->loc = (yyloc);
11677 ;
11678 }
11679 break;
11680 case 1187:
11681 {
11682 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
11683 yyval.stmt->loc = (yyloc);
11684 ;
11685 }
11686 break;
11687 case 1188:
11688 {
11689 yyval.stmt = MkExpressionStmt(yyvsp[(1) - (2)].list);
11690 yyval.stmt->loc = (yyloc);
11691 ;
11692 }
11693 break;
11694 case 1189:
11695 {
11696 yyval.stmt = MkIfStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt, (((void *)0)));
11697 yyval.stmt->loc = (yyloc);
11698 ;
11699 }
11700 break;
11701 case 1190:
11702 {
11703 yyval.stmt = MkIfStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt, (((void *)0)));
11704 yyval.stmt->loc = (yyloc);
11705 ;
11706 }
11707 break;
11708 case 1191:
11709 {
11710 yyval.stmt = MkIfStmt(yyvsp[(3) - (7)].list, yyvsp[(5) - (7)].stmt, yyvsp[(7) - (7)].stmt);
11711 yyval.stmt->loc = (yyloc);
11712 ;
11713 }
11714 break;
11715 case 1192:
11716 {
11717 yyval.stmt = MkIfStmt(yyvsp[(3) - (7)].list, yyvsp[(5) - (7)].stmt, yyvsp[(7) - (7)].stmt);
11718 yyval.stmt->loc = (yyloc);
11719 ;
11720 }
11721 break;
11722 case 1193:
11723 {
11724 yyval.stmt = MkSwitchStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11725 yyval.stmt->loc = (yyloc);
11726 ;
11727 }
11728 break;
11729 case 1194:
11730 {
11731 yyval.stmt = MkSwitchStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11732 yyval.stmt->loc = (yyloc);
11733 ;
11734 }
11735 break;
11736 case 1195:
11737 {
11738 yyval.stmt = MkIfStmt(yyvsp[(3) - (3)].list, (((void *)0)), (((void *)0)));
11739 yyval.stmt->loc = (yyloc);
11740 ;
11741 }
11742 break;
11743 case 1197:
11744 {
11745 yyval.stmt = MkWhileStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11746 yyval.stmt->loc = (yyloc);
11747 ;
11748 }
11749 break;
11750 case 1198:
11751 {
11752 yyval.stmt = MkWhileStmt(yyvsp[(3) - (4)].list, yyvsp[(4) - (4)].stmt);
11753 yyval.stmt->loc = (yyloc);
11754 ;
11755 }
11756 break;
11757 case 1199:
11758 {
11759 yyerror();
11760 yyval.stmt = MkWhileStmt((((void *)0)), yyvsp[(4) - (4)].stmt);
11761 yyval.stmt->loc = (yyloc);
11762 ;
11763 }
11764 break;
11765 case 1200:
11766 {
11767 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (7)].stmt, yyvsp[(5) - (7)].list);
11768 yyval.stmt->loc = (yyloc);
11769 ;
11770 }
11771 break;
11772 case 1201:
11773 {
11774 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (6)].stmt, yyvsp[(5) - (6)].list);
11775 yyval.stmt->loc = (yyloc);
11776 ;
11777 }
11778 break;
11779 case 1202:
11780 {
11781 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, (((void *)0)), yyvsp[(6) - (6)].stmt);
11782 yyval.stmt->loc = (yyloc);
11783 ;
11784 }
11785 break;
11786 case 1203:
11787 {
11788 yyerror();
11789 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, (((void *)0)), (((void *)0)), yyvsp[(5) - (5)].stmt);
11790 yyval.stmt->loc = (yyloc);
11791 ;
11792 }
11793 break;
11794 case 1204:
11795 {
11796 yyval.stmt = MkForStmt(yyvsp[(3) - (7)].stmt, yyvsp[(4) - (7)].stmt, yyvsp[(5) - (7)].list, yyvsp[(7) - (7)].stmt);
11797 yyval.stmt->loc = (yyloc);
11798 ;
11799 }
11800 break;
11801 case 1205:
11802 {
11803 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, yyvsp[(5) - (6)].list, yyvsp[(6) - (6)].stmt);
11804 yyval.stmt->loc = (yyloc);
11805 ;
11806 }
11807 break;
11808 case 1206:
11809 {
11810 yyerror();
11811 yyval.stmt = MkForStmt((((void *)0)), (((void *)0)), (((void *)0)), yyvsp[(4) - (4)].stmt);
11812 yyval.stmt->loc = (yyloc);
11813 ;
11814 }
11815 break;
11816 case 1207:
11817 {
11818 yyval.stmt = MkForEachStmt(yyvsp[(3) - (7)].id, yyvsp[(5) - (7)].list, (((void *)0)), yyvsp[(7) - (7)].stmt);
11819 yyval.stmt->loc = (yyloc);
11820 ;
11821 }
11822 break;
11823 case 1208:
11824 {
11825 yyval.stmt = MkForEachStmt(yyvsp[(3) - (9)].id, yyvsp[(5) - (9)].list, yyvsp[(7) - (9)].list, yyvsp[(9) - (9)].stmt);
11826 yyval.stmt->loc = (yyloc);
11827 ;
11828 }
11829 break;
11830 case 1209:
11831 {
11832 yyval.stmt = MkForStmt((((void *)0)), (((void *)0)), (((void *)0)), (((void *)0)));
11833 yyval.stmt->loc = (yyloc);
11834 ;
11835 }
11836 break;
11837 case 1210:
11838 {
11839 yyval.stmt = MkForStmt(MkExpressionStmt(yyvsp[(3) - (4)].list), (((void *)0)), (((void *)0)), (((void *)0)));
11840 yyval.stmt->__anon1.forStmt.init->loc = (yylsp[(3) - (4)]);
11841 yyval.stmt->loc = (yyloc);
11842 ;
11843 }
11844 break;
11845 case 1211:
11846 {
11847 yyval.stmt = MkForStmt(yyvsp[(3) - (4)].stmt, (((void *)0)), (((void *)0)), (((void *)0)));
11848 yyval.stmt->loc = (yyloc);
11849 ;
11850 }
11851 break;
11852 case 1212:
11853 {
11854 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, MkExpressionStmt(yyvsp[(4) - (5)].list), (((void *)0)), (((void *)0)));
11855 yyval.stmt->loc = (yyloc);
11856 yyval.stmt->__anon1.forStmt.check->loc = (yylsp[(4) - (5)]);
11857 ;
11858 }
11859 break;
11860 case 1213:
11861 {
11862 yyval.stmt = MkForStmt(yyvsp[(3) - (5)].stmt, yyvsp[(4) - (5)].stmt, yyvsp[(5) - (5)].list, (((void *)0)));
11863 yyval.stmt->loc = (yyloc);
11864 ;
11865 }
11866 break;
11867 case 1214:
11868 {
11869 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, (((void *)0)), yyvsp[(6) - (6)].stmt);
11870 yyval.stmt->loc = (yyloc);
11871 ;
11872 }
11873 break;
11874 case 1215:
11875 {
11876 yyval.stmt = MkForStmt(yyvsp[(3) - (7)].stmt, yyvsp[(4) - (7)].stmt, yyvsp[(5) - (7)].list, yyvsp[(7) - (7)].stmt);
11877 yyval.stmt->loc = (yyloc);
11878 ;
11879 }
11880 break;
11881 case 1216:
11882 {
11883 yyval.stmt = MkForStmt(yyvsp[(3) - (6)].stmt, yyvsp[(4) - (6)].stmt, yyvsp[(5) - (6)].list, yyvsp[(6) - (6)].stmt);
11884 yyval.stmt->loc = (yyloc);
11885 ;
11886 }
11887 break;
11888 case 1217:
11889 {
11890 yyerror();
11891 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (6)].stmt, yyvsp[(5) - (6)].list);
11892 yyval.stmt->loc = (yyloc);
11893 ;
11894 }
11895 break;
11896 case 1218:
11897 {
11898 yyerror();
11899 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (5)].stmt, yyvsp[(5) - (5)].list);
11900 yyval.stmt->loc = (yyloc);
11901 ;
11902 }
11903 break;
11904 case 1219:
11905 {
11906 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (5)].stmt, yyvsp[(5) - (5)].list);
11907 yyval.stmt->loc = (yyloc);
11908 ;
11909 }
11910 break;
11911 case 1220:
11912 {
11913 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (4)].stmt, (((void *)0)));
11914 yyval.stmt->loc = (yyloc);
11915 ;
11916 }
11917 break;
11918 case 1221:
11919 {
11920 yyerror();
11921 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (3)].stmt, (((void *)0)));
11922 yyval.stmt->loc = (yyloc);
11923 ;
11924 }
11925 break;
11926 case 1222:
11927 {
11928 yyerror();
11929 yyval.stmt = MkDoWhileStmt(yyvsp[(2) - (2)].stmt, (((void *)0)));
11930 yyval.stmt->loc = (yyloc);
11931 ;
11932 }
11933 break;
11934 case 1223:
11935 {
11936 yyerror();
11937 yyval.stmt = MkDoWhileStmt((((void *)0)), (((void *)0)));
11938 yyval.stmt->loc = (yyloc);
11939 ;
11940 }
11941 break;
11942 case 1224:
11943 {
11944 yyval.stmt = MkWhileStmt((((void *)0)), (((void *)0)));
11945 yyval.stmt->loc = (yyloc);
11946 ;
11947 }
11948 break;
11949 case 1225:
11950 {
11951 yyval.stmt = MkWhileStmt((((void *)0)), (((void *)0)));
11952 yyval.stmt->loc = (yyloc);
11953 ;
11954 }
11955 break;
11956 case 1226:
11957 {
11958 yyval.stmt = MkWhileStmt(yyvsp[(3) - (3)].list, (((void *)0)));
11959 yyval.stmt->loc = (yyloc);
11960 ;
11961 }
11962 break;
11963 case 1227:
11964 {
11965 yyval.stmt = MkWhileStmt(yyvsp[(3) - (5)].list, yyvsp[(5) - (5)].stmt);
11966 yyval.stmt->loc = (yyloc);
11967 ;
11968 }
11969 break;
11970 case 1228:
11971 {
11972 yyval.stmt = MkWhileStmt(yyvsp[(3) - (4)].list, yyvsp[(4) - (4)].stmt);
11973 yyval.stmt->loc = (yyloc);
11974 ;
11975 }
11976 break;
11977 case 1229:
11978 {
11979 yyval.stmt = MkGotoStmt(yyvsp[(2) - (3)].id);
11980 yyval.stmt->loc = (yyloc);
11981 ;
11982 }
11983 break;
11984 case 1230:
11985 {
11986 yyval.stmt = MkContinueStmt();
11987 yyval.stmt->loc = (yyloc);
11988 ;
11989 }
11990 break;
11991 case 1231:
11992 {
11993 yyval.stmt = MkBreakStmt();
11994 yyval.stmt->loc = (yyloc);
11995 ;
11996 }
11997 break;
11998 case 1232:
11999 {
12000 struct Expression * exp = MkExpDummy();
12001
12002 yyval.stmt = MkReturnStmt(MkListOne(exp));
12003 yyval.stmt->loc = (yyloc);
12004 exp->loc = (yylsp[(2) - (2)]);
12005 ;
12006 }
12007 break;
12008 case 1233:
12009 {
12010 yyval.stmt = MkReturnStmt(yyvsp[(2) - (3)].list);
12011 yyval.stmt->loc = (yyloc);
12012 ;
12013 }
12014 break;
12015 case 1234:
12016 {
12017 yyval.stmt = MkReturnStmt(yyvsp[(2) - (3)].list);
12018 yyval.stmt->loc = (yyloc);
12019 ;
12020 }
12021 break;
12022 case 1235:
12023 {
12024 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (3)].exp));
12025 yyval.stmt->loc = (yyloc);
12026 ;
12027 }
12028 break;
12029 case 1236:
12030 {
12031 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (3)].exp));
12032 yyval.stmt->loc = (yyloc);
12033 ;
12034 }
12035 break;
12036 case 1237:
12037 {
12038 yyval.stmt = MkReturnStmt(yyvsp[(2) - (2)].list);
12039 yyval.stmt->loc = (yyloc);
12040 ;
12041 }
12042 break;
12043 case 1238:
12044 {
12045 yyval.stmt = MkReturnStmt(MkListOne(yyvsp[(2) - (2)].exp));
12046 yyval.stmt->loc = (yyloc);
12047 ;
12048 }
12049 break;
12050 case 1239:
12051 {
12052 struct Expression * exp = MkExpDummy();
12053
12054 yyval.stmt = MkReturnStmt(MkListOne(exp));
12055 yyval.stmt->loc = (yyloc);
12056 exp->loc.start = exp->loc.end = (yylsp[(1) - (1)]).end;
12057 ;
12058 }
12059 break;
12060 case 1240:
12061 {
12062 yyval.stmt = MkGotoStmt((((void *)0)));
12063 yyval.stmt->loc = (yyloc);
12064 ;
12065 }
12066 break;
12067 case 1241:
12068 {
12069 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12070 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12071 yyval.function->loc = (yyloc);
12072 ;
12073 }
12074 break;
12075 case 1242:
12076 {
12077 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12078 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12079 yyval.function->loc = (yyloc);
12080 ;
12081 }
12082 break;
12083 case 1243:
12084 {
12085 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12086 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12087 yyval.function->loc = (yyloc);
12088 ;
12089 }
12090 break;
12091 case 1244:
12092 {
12093 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12094 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12095 yyval.function->loc = (yyloc);
12096 ;
12097 }
12098 break;
12099 case 1245:
12100 {
12101 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
12102 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12103 yyval.function->loc = (yyloc);
12104 ;
12105 }
12106 break;
12107 case 1246:
12108 {
12109 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (2)].declarator, (((void *)0)));
12110 ProcessFunctionBody(yyval.function, yyvsp[(2) - (2)].stmt);
12111 yyval.function->loc = (yyloc);
12112 ;
12113 }
12114 break;
12115 case 1247:
12116 {
12117 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12118 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12119 yyval.function->loc = (yyloc);
12120 yyval.function->loc.end = yyvsp[(4) - (4)].stmt->loc.end;
12121 ;
12122 }
12123 break;
12124 case 1248:
12125 {
12126 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12127 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12128 yyval.function->loc = (yyloc);
12129 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12130 ;
12131 }
12132 break;
12133 case 1249:
12134 {
12135 yyval.function = MkFunction(yyvsp[(1) - (4)].list, yyvsp[(2) - (4)].declarator, yyvsp[(3) - (4)].list);
12136 ProcessFunctionBody(yyval.function, yyvsp[(4) - (4)].stmt);
12137 yyval.function->loc = (yyloc);
12138 yyval.function->loc.end = yyvsp[(4) - (4)].stmt->loc.end;
12139 ;
12140 }
12141 break;
12142 case 1250:
12143 {
12144 yyval.function = MkFunction(yyvsp[(1) - (3)].list, yyvsp[(2) - (3)].declarator, (((void *)0)));
12145 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12146 yyval.function->loc = (yyloc);
12147 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12148 ;
12149 }
12150 break;
12151 case 1251:
12152 {
12153 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (3)].declarator, yyvsp[(2) - (3)].list);
12154 ProcessFunctionBody(yyval.function, yyvsp[(3) - (3)].stmt);
12155 yyval.function->loc = (yyloc);
12156 yyval.function->loc.end = yyvsp[(3) - (3)].stmt->loc.end;
12157 ;
12158 }
12159 break;
12160 case 1252:
12161 {
12162 yyval.function = MkFunction((((void *)0)), yyvsp[(1) - (2)].declarator, (((void *)0)));
12163 ProcessFunctionBody(yyval.function, yyvsp[(2) - (2)].stmt);
12164 yyval.function->loc = (yyloc);
12165 yyval.function->loc.end = yyvsp[(2) - (2)].stmt->loc.end;
12166 ;
12167 }
12168 break;
12169 case 1253:
12170 {
12171 yyval.string = __ecereNameSpace__ecere__sys__CopyString(yytext);
12172 ;
12173 }
12174 break;
12175 case 1254:
12176 {
12177 int len1 = strlen(yyvsp[(1) - (2)].string);
12178 int len2 = strlen(yytext);
12179
12180 yyval.string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len1 - 1 + len2 - 1 + 1));
12181 memcpy(yyval.string, yyvsp[(1) - (2)].string, len1 - 1);
12182 memcpy(yyval.string + len1 - 1, yytext + 1, len2);
12183 (__ecereNameSpace__ecere__com__eSystem_Delete(yyvsp[(1) - (2)].string), yyvsp[(1) - (2)].string = 0);
12184 ;
12185 }
12186 break;
12187 case 1255:
12188 {
12189 yyval.external = MkExternalFunction(yyvsp[(1) - (1)].function);
12190 yyval.external->loc = (yyloc);
12191 yyvsp[(1) - (1)].function->declMode = declMode;
12192 structDeclMode = declMode = defaultDeclMode;
12193 ;
12194 }
12195 break;
12196 case 1256:
12197 {
12198 yyval.external = MkExternalClass(yyvsp[(1) - (1)]._class);
12199 yyval.external->loc = (yyloc);
12200 yyvsp[(1) - (1)]._class->declMode = (declMode != 0) ? declMode : 2;
12201 structDeclMode = declMode = defaultDeclMode;
12202 ;
12203 }
12204 break;
12205 case 1257:
12206 {
12207 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12208 yyval.external->loc = (yyloc);
12209 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12210 structDeclMode = declMode = defaultDeclMode;
12211 FreeList(yyvsp[(1) - (2)].list, (void *)(FreeSpecifier));
12212 ;
12213 }
12214 break;
12215 case 1258:
12216 {
12217 yyval.external = MkExternalDeclaration(yyvsp[(1) - (1)].declaration);
12218 yyval.external->loc = (yyloc);
12219 yyvsp[(1) - (1)].declaration->declMode = declMode;
12220 structDeclMode = declMode = defaultDeclMode;
12221 ;
12222 }
12223 break;
12224 case 1259:
12225 {
12226 yyval.external = MkExternalImport(yyvsp[(2) - (2)].string, 0, (declMode != 0) ? declMode : 2);
12227 yyval.external->loc = (yyloc);
12228 ;
12229 }
12230 break;
12231 case 1260:
12232 {
12233 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, 1, (declMode != 0) ? declMode : 2);
12234 yyval.external->loc = (yyloc);
12235 ;
12236 }
12237 break;
12238 case 1261:
12239 {
12240 unsigned int isRemote = !strcmp(yyvsp[(2) - (3)].id->string, "remote");
12241
12242 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, isRemote ? 2 : 0, (declMode != 0) ? declMode : 2);
12243 yyval.external->loc = (yyloc);
12244 FreeIdentifier(yyvsp[(2) - (3)].id);
12245 if(!isRemote)
12246 yyerror();
12247 ;
12248 }
12249 break;
12250 case 1262:
12251 {
12252 yyval.external = (((void *)0));
12253 ;
12254 }
12255 break;
12256 case 1263:
12257 {
12258 yyval.external = MkExternalFunction(yyvsp[(2) - (2)].function);
12259 yyval.external->loc = (yyloc);
12260 yyvsp[(2) - (2)].function->declMode = yyvsp[(1) - (2)].declMode;
12261 structDeclMode = declMode = defaultDeclMode;
12262 ;
12263 }
12264 break;
12265 case 1264:
12266 {
12267 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12268 yyval.external->loc = (yyloc);
12269 yyvsp[(2) - (2)]._class->declMode = (yyvsp[(1) - (2)].declMode != 0) ? yyvsp[(1) - (2)].declMode : 2;
12270 structDeclMode = declMode = defaultDeclMode;
12271 ;
12272 }
12273 break;
12274 case 1265:
12275 {
12276 yyval.external = MkExternalDeclaration(yyvsp[(2) - (2)].declaration);
12277 yyval.external->loc = (yyloc);
12278 yyvsp[(2) - (2)].declaration->declMode = yyvsp[(1) - (2)].declMode;
12279 structDeclMode = declMode = defaultDeclMode;
12280 ;
12281 }
12282 break;
12283 case 1266:
12284 {
12285 yyval.external = MkExternalImport(yyvsp[(3) - (3)].string, 0, (yyvsp[(1) - (3)].declMode != 0) ? yyvsp[(1) - (3)].declMode : 2);
12286 yyval.external->loc = (yyloc);
12287 structDeclMode = declMode = defaultDeclMode;
12288 ;
12289 }
12290 break;
12291 case 1267:
12292 {
12293 yyval.external = MkExternalImport(yyvsp[(4) - (4)].string, 1, (yyvsp[(1) - (4)].declMode != 0) ? yyvsp[(1) - (4)].declMode : 2);
12294 yyval.external->loc = (yyloc);
12295 structDeclMode = declMode = defaultDeclMode;
12296 ;
12297 }
12298 break;
12299 case 1268:
12300 {
12301 unsigned int isRemote = !strcmp(yyvsp[(3) - (4)].id->string, "remote");
12302
12303 yyval.external = MkExternalImport(yyvsp[(4) - (4)].string, isRemote ? 2 : 0, (yyvsp[(1) - (4)].declMode != 0) ? yyvsp[(1) - (4)].declMode : 2);
12304 yyval.external->loc = (yyloc);
12305 FreeIdentifier(yyvsp[(3) - (4)].id);
12306 structDeclMode = declMode = defaultDeclMode;
12307 if(!isRemote)
12308 yyerror();
12309 ;
12310 }
12311 break;
12312 case 1269:
12313 {
12314 defaultDeclMode = yyvsp[(1) - (2)].declMode;
12315 yyval.external = (((void *)0));
12316 ;
12317 }
12318 break;
12319 case 1270:
12320 {
12321 defaultDeclMode = 3;
12322 yyval.external = (((void *)0));
12323 ;
12324 }
12325 break;
12326 case 1271:
12327 {
12328 yyval.external = MkExternalNameSpace(yyvsp[(2) - (2)].id);
12329 yyval.external->loc = (yyloc);
12330 ;
12331 }
12332 break;
12333 case 1272:
12334 {
12335 yyval.external = MkExternalNameSpace(MkIdentifier(yyvsp[(2) - (2)].specifier->__anon1.__anon1.name));
12336 FreeSpecifier(yyvsp[(2) - (2)].specifier);
12337 yyval.external->loc = (yyloc);
12338 ;
12339 }
12340 break;
12341 case 1273:
12342 {
12343 yyval.external = MkExternalDBTable(yyvsp[(1) - (1)].dbtableDef);
12344 yyval.external->loc = (yyloc);
12345 yyvsp[(1) - (1)].dbtableDef->declMode = (declMode != 0) ? declMode : 2;
12346 structDeclMode = declMode = defaultDeclMode;
12347 ;
12348 }
12349 break;
12350 case 1274:
12351 {
12352 yyval.external = MkExternalDBTable(yyvsp[(2) - (2)].dbtableDef);
12353 yyval.external->loc = (yyloc);
12354 yyvsp[(2) - (2)].dbtableDef->declMode = (yyvsp[(1) - (2)].declMode != 0) ? declMode : 2;
12355 structDeclMode = declMode = defaultDeclMode;
12356 ;
12357 }
12358 break;
12359 case 1275:
12360 {
12361 yyerror();
12362 yyval.external = MkExternalClass(yyvsp[(1) - (1)]._class);
12363 yyval.external->loc = yyvsp[(1) - (1)]._class->loc;
12364 yyvsp[(1) - (1)]._class->declMode = (declMode != 0) ? declMode : 2;
12365 structDeclMode = declMode = defaultDeclMode;
12366 ;
12367 }
12368 break;
12369 case 1276:
12370 {
12371 yyerror();
12372 FreeList(yyvsp[(1) - (2)].list, (void *)(FreeSpecifier));
12373 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12374 yyval.external->loc = yyvsp[(2) - (2)]._class->loc;
12375 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12376 structDeclMode = declMode = defaultDeclMode;
12377 ;
12378 }
12379 break;
12380 case 1277:
12381 {
12382 yyerror();
12383 yyval.external = MkExternalFunction(yyvsp[(1) - (1)].function);
12384 yyval.external->loc = yyvsp[(1) - (1)].function->loc;
12385 yyvsp[(1) - (1)].function->declMode = declMode;
12386 structDeclMode = declMode = defaultDeclMode;
12387 ;
12388 }
12389 break;
12390 case 1278:
12391 {
12392 yyerror();
12393 yyval.external = MkExternalClass(yyvsp[(2) - (2)]._class);
12394 yyval.external->loc = yyvsp[(2) - (2)]._class->loc;
12395 yyvsp[(2) - (2)]._class->declMode = (yyvsp[(1) - (2)].declMode != 0) ? yyvsp[(1) - (2)].declMode : 2;
12396 structDeclMode = declMode = defaultDeclMode;
12397 ;
12398 }
12399 break;
12400 case 1279:
12401 {
12402 yyerror();
12403 yyval.external = MkExternalFunction(yyvsp[(2) - (2)].function);
12404 yyval.external->loc = yyvsp[(2) - (2)].function->loc;
12405 yyvsp[(2) - (2)].function->declMode = yyvsp[(1) - (2)].declMode;
12406 structDeclMode = declMode = defaultDeclMode;
12407 ;
12408 }
12409 break;
12410 case 1280:
12411 {
12412 yyerror();
12413 yyval.external = MkExternalDeclaration(yyvsp[(1) - (1)].declaration);
12414 yyval.external->loc = (yyloc);
12415 yyvsp[(1) - (1)].declaration->declMode = declMode;
12416 structDeclMode = declMode = defaultDeclMode;
12417 ;
12418 }
12419 break;
12420 case 1281:
12421 {
12422 yyerror();
12423 yyval.external = MkExternalDeclaration(yyvsp[(2) - (2)].declaration);
12424 yyval.external->loc = (yyloc);
12425 yyvsp[(2) - (2)].declaration->declMode = yyvsp[(1) - (2)].declMode;
12426 structDeclMode = declMode = defaultDeclMode;
12427 ;
12428 }
12429 break;
12430 case 1282:
12431 {
12432 yyval.list = MkList();
12433 ListAdd(yyval.list, yyvsp[(1) - (1)].external);
12434 ast = yyval.list;
12435 ;
12436 }
12437 break;
12438 case 1283:
12439 {
12440 yyval.list = yyvsp[(1) - (2)].list;
12441 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12442 ;
12443 }
12444 break;
12445 case 1284:
12446 {
12447 yyval.list = yyvsp[(1) - (2)].list;
12448 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12449 ;
12450 }
12451 break;
12452 case 1287:
12453 {
12454 yyval.list = MkList();
12455 ListAdd(yyval.list, yyvsp[(1) - (1)].external);
12456 ast = yyval.list;
12457 ;
12458 }
12459 break;
12460 case 1288:
12461 {
12462 yyval.list = yyvsp[(1) - (2)].list;
12463 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].external);
12464 ;
12465 }
12466 break;
12467 case 1289:
12468 {
12469 struct External * _class = MkExternalClass(yyvsp[(2) - (2)]._class);
12470
12471 yyval.list = yyvsp[(1) - (2)].list;
12472 ListAdd(yyvsp[(1) - (2)].list, _class);
12473 _class->loc = (yylsp[(2) - (2)]);
12474 yyvsp[(2) - (2)]._class->declMode = (declMode != 0) ? declMode : 2;
12475 structDeclMode = declMode = defaultDeclMode;
12476 ;
12477 }
12478 break;
12479 case 1290:
12480 {
12481 struct External * _class = MkExternalClass(yyvsp[(3) - (3)]._class);
12482
12483 yyval.list = yyvsp[(1) - (3)].list;
12484 ListAdd(yyvsp[(1) - (3)].list, _class);
12485 _class->loc = (yylsp[(3) - (3)]);
12486 yyvsp[(3) - (3)]._class->declMode = (yyvsp[(2) - (3)].declMode != 0) ? yyvsp[(2) - (3)].declMode : 2;
12487 structDeclMode = declMode = defaultDeclMode;
12488 ;
12489 }
12490 break;
12491 case 1293:
12492 {
12493 ast = MkList();
12494 ;
12495 }
12496 break;
12497 case 1294:
12498 {
12499 struct Symbol * symbol = DeclClassAddNameSpace(yyvsp[(3) - (6)].id->_class, yyvsp[(3) - (6)].id->string);
12500
12501 FreeIdentifier(yyvsp[(3) - (6)].id);
12502 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (6)].string, symbol, yyvsp[(5) - (6)].list);
12503 ;
12504 }
12505 break;
12506 case 1295:
12507 {
12508 struct Symbol * symbol = DeclClass(yyvsp[(3) - (6)].specifier->__anon1.__anon1.nsSpec, yyvsp[(3) - (6)].specifier->__anon1.__anon1.name);
12509
12510 FreeSpecifier(yyvsp[(3) - (6)].specifier);
12511 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (6)].string, symbol, yyvsp[(5) - (6)].list);
12512 ;
12513 }
12514 break;
12515 case 1296:
12516 {
12517 yyval.dbtableDef = MkDBTableDef(yyvsp[(2) - (5)].string, (((void *)0)), yyvsp[(4) - (5)].list);
12518 ;
12519 }
12520 break;
12521 case 1297:
12522 {
12523 yyval.dbtableEntry = MkDBFieldEntry(MkTypeName(yyvsp[(1) - (4)].list, (((void *)0))), yyvsp[(2) - (4)].id, yyvsp[(3) - (4)].string);
12524 ;
12525 }
12526 break;
12527 case 1298:
12528 {
12529 yyval.dbindexItem = MkDBIndexItem(yyvsp[(1) - (1)].id, 0);
12530 ;
12531 }
12532 break;
12533 case 1299:
12534 {
12535 yyval.dbindexItem = MkDBIndexItem(yyvsp[(2) - (2)].id, 1);
12536 ;
12537 }
12538 break;
12539 case 1300:
12540 {
12541 yyval.dbindexItem = MkDBIndexItem(yyvsp[(2) - (2)].id, 0);
12542 ;
12543 }
12544 break;
12545 case 1301:
12546 {
12547 yyval.list = MkList();
12548 ListAdd(yyval.list, yyvsp[(1) - (1)].dbindexItem);
12549 ;
12550 }
12551 break;
12552 case 1302:
12553 {
12554 ListAdd(yyvsp[(1) - (3)].list, yyvsp[(3) - (3)].dbindexItem);
12555 ;
12556 }
12557 break;
12558 case 1303:
12559 {
12560 yyval.dbtableEntry = MkDBIndexEntry(yyvsp[(2) - (3)].list, (((void *)0)));
12561 ;
12562 }
12563 break;
12564 case 1304:
12565 {
12566 yyval.dbtableEntry = MkDBIndexEntry(yyvsp[(2) - (4)].list, yyvsp[(3) - (4)].id);
12567 ;
12568 }
12569 break;
12570 case 1305:
12571 {
12572 yyval.list = MkList();
12573 ListAdd(yyval.list, yyvsp[(1) - (1)].dbtableEntry);
12574 ;
12575 }
12576 break;
12577 case 1306:
12578 {
12579 yyval.list = MkList();
12580 ListAdd(yyval.list, yyvsp[(1) - (1)].dbtableEntry);
12581 ;
12582 }
12583 break;
12584 case 1307:
12585 {
12586 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].dbtableEntry);
12587 ;
12588 }
12589 break;
12590 case 1308:
12591 {
12592 ListAdd(yyvsp[(1) - (2)].list, yyvsp[(2) - (2)].dbtableEntry);
12593 ;
12594 }
12595 break;
12596 case 1309:
12597 {
12598 yyval.exp = MkExpDBOpen(yyvsp[(3) - (6)].exp, yyvsp[(5) - (6)].exp);
12599 ;
12600 }
12601 break;
12602 case 1310:
12603 {
12604 yyval.exp = MkExpDBField(yyvsp[(3) - (6)].string, yyvsp[(5) - (6)].id);
12605 ;
12606 }
12607 break;
12608 case 1311:
12609 {
12610 yyval.exp = MkExpDBIndex(yyvsp[(3) - (6)].string, yyvsp[(5) - (6)].id);
12611 ;
12612 }
12613 break;
12614 case 1312:
12615 {
12616 yyval.exp = MkExpDBTable(yyvsp[(3) - (4)].string);
12617 ;
12618 }
12619 break;
12620 default:
12621 break;
12622 }
12623 do
12624 {
12625 if(yydebug)
12626 {
12627 fprintf((bsl_stderr()), "%s ", "-> $$ =");
12628 yy_symbol_print((bsl_stderr()), yyr1[yyn], &yyval, &yyloc);
12629 fprintf((bsl_stderr()), "\n");
12630 }
12631 }while((0));
12632 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12633 yylen = 0;
12634 do
12635 {
12636 if(yydebug)
12637 yy_stack_print((yyss), (yyssp));
12638 }while((0));
12639 *++yyvsp = yyval;
12640 *++yylsp = yyloc;
12641 yyn = yyr1[yyn];
12642 yystate = yypgoto[yyn - 146] + *yyssp;
12643 if(0 <= yystate && yystate <= 42058 && yycheck[yystate] == *yyssp)
12644 yystate = yytable[yystate];
12645 else
12646 yystate = yydefgoto[yyn - 146];
12647 goto yynewstate;
12648 yyerrlab:
12649 if(!yyerrstatus)
12650 {
12651 ++yynerrs;
12652 yyerror("syntax error");
12653 }
12654 yyerror_range[0] = yylloc;
12655 if(yyerrstatus == 3)
12656 {
12657 if(yychar <= 0)
12658 {
12659 if(yychar == 0)
12660 goto yyabortlab;
12661 }
12662 else
12663 {
12664 yydestruct("Error: discarding", yytoken, &yylval, &yylloc);
12665 yychar = (-2);
12666 }
12667 }
12668 goto yyerrlab1;
12669 yyerrorlab:
12670 if(0)
12671 goto yyerrorlab;
12672 yyerror_range[0] = yylsp[1 - yylen];
12673 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12674 yylen = 0;
12675 do
12676 {
12677 if(yydebug)
12678 yy_stack_print((yyss), (yyssp));
12679 }while((0));
12680 yystate = *yyssp;
12681 goto yyerrlab1;
12682 yyerrlab1:
12683 yyerrstatus = 3;
12684 for(; ; )
12685 {
12686 yyn = yypact[yystate];
12687 if(yyn != -2034)
12688 {
12689 yyn += 1;
12690 if(0 <= yyn && yyn <= 42058 && yycheck[yyn] == 1)
12691 {
12692 yyn = yytable[yyn];
12693 if(0 < yyn)
12694 break;
12695 }
12696 }
12697 if(yyssp == yyss)
12698 goto yyabortlab;
12699 yyerror_range[0] = *yylsp;
12700 yydestruct("Error: popping", yystos[yystate], yyvsp, yylsp);
12701 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
12702 yystate = *yyssp;
12703 do
12704 {
12705 if(yydebug)
12706 yy_stack_print((yyss), (yyssp));
12707 }while((0));
12708 }
12709 *++yyvsp = yylval;
12710 yyerror_range[1] = yylloc;
12711 (yyloc.start = ((yyerror_range - 1))[1].start);
12712 (yyloc.end = ((yyerror_range - 1))[2].end);
12713 ;
12714 *++yylsp = yyloc;
12715 do
12716 {
12717 if(yydebug)
12718 {
12719 fprintf((bsl_stderr()), "%s ", "Shifting");
12720 yy_symbol_print((bsl_stderr()), yystos[yyn], yyvsp, yylsp);
12721 fprintf((bsl_stderr()), "\n");
12722 }
12723 }while((0));
12724 yystate = yyn;
12725 goto yynewstate;
12726 yyacceptlab:
12727 yyresult = 0;
12728 goto yyreturn;
12729 yyabortlab:
12730 yyresult = 1;
12731 goto yyreturn;
12732 yyexhaustedlab:
12733 yyerror("memory exhausted");
12734 yyresult = 2;
12735 yyreturn:
12736 if(yychar != (-2))
12737 yydestruct("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
12738 (yyvsp -= (yylen), yyssp -= (yylen), yylsp -= (yylen));
12739 do
12740 {
12741 if(yydebug)
12742 yy_stack_print((yyss), (yyssp));
12743 }while((0));
12744 while(yyssp != yyss)
12745 {
12746 yydestruct("Cleanup: popping", yystos[*yyssp], yyvsp, yylsp);
12747 (yyvsp -= (1), yyssp -= (1), yylsp -= (1));
12748 }
12749 if(yyss != yyssa)
12750 free(yyss);
12751 return (yyresult);
12752 }
12753