#include <config.h>
+#define yy_create_buffer sudoers_create_buffer
+#define yy_delete_buffer sudoers_delete_buffer
+#define yy_scan_buffer sudoers_scan_buffer
+#define yy_scan_string sudoers_scan_string
+#define yy_scan_bytes sudoers_scan_bytes
+#define yy_flex_debug sudoers_flex_debug
+#define yy_init_buffer sudoers_init_buffer
+#define yy_flush_buffer sudoers_flush_buffer
+#define yy_load_buffer_state sudoers_load_buffer_state
+#define yy_switch_to_buffer sudoers_switch_to_buffer
+#define yyin sudoersin
+#define yyleng sudoersleng
+#define yylex sudoerslex
+#define yyout sudoersout
+#define yyrestart sudoersrestart
+#define yytext sudoerstext
+
/* $OpenBSD: flex.skl,v 1.11 2010/08/04 18:24:50 millert Exp $ */
/* A lexical scanner generated by flex */
*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 59
-#define YY_END_OF_BUFFER 60
-static yyconst short int yy_accept[607] =
+#define YY_NUM_RULES 67
+#define YY_END_OF_BUFFER 68
+static yyconst short int yy_accept[814] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 60, 47, 55, 54, 53, 46, 58, 32,
- 48, 49, 32, 50, 47, 47, 47, 47, 52, 51,
- 58, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 58, 47, 47, 55, 58, 42, 42, 42, 42,
- 42, 2, 58, 1, 47, 47, 17, 16, 17, 16,
- 16, 58, 58, 58, 3, 9, 8, 9, 4, 9,
- 5, 58, 13, 13, 13, 11, 12, 47, 0, 55,
- 53, 0, 57, 0, 47, 34, 0, 32, 0, 33,
- 0, 45, 45, 0, 47, 47, 0, 47, 47, 47,
-
- 47, 0, 37, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 47, 56, 47, 55, 0, 0, 0,
- 0, 0, 0, 47, 47, 47, 47, 47, 2, 1,
- 0, 1, 43, 43, 0, 47, 17, 17, 15, 14,
- 15, 0, 0, 3, 9, 0, 6, 7, 9, 9,
- 13, 0, 13, 13, 0, 10, 0, 0, 0, 34,
- 34, 0, 0, 47, 47, 47, 47, 47, 0, 0,
- 37, 37, 42, 39, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 47, 0, 0, 0, 0, 0,
- 0, 47, 47, 47, 47, 47, 0, 47, 10, 0,
-
- 47, 47, 47, 47, 47, 47, 0, 38, 38, 38,
- 0, 0, 37, 37, 37, 37, 37, 37, 37, 42,
- 42, 42, 42, 42, 42, 42, 42, 40, 42, 41,
- 47, 0, 0, 0, 0, 0, 0, 47, 47, 47,
- 47, 47, 47, 47, 0, 0, 38, 38, 38, 0,
- 37, 37, 0, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 0, 25, 42, 42, 42, 42,
- 42, 42, 42, 42, 47, 0, 0, 0, 0, 47,
- 47, 47, 47, 47, 47, 47, 47, 0, 38, 0,
- 37, 37, 37, 0, 0, 0, 37, 37, 37, 37,
-
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 42,
- 42, 42, 42, 42, 42, 42, 42, 47, 0, 0,
- 0, 47, 47, 47, 35, 35, 35, 0, 0, 37,
- 37, 37, 37, 37, 37, 37, 0, 0, 0, 0,
- 0, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 42, 42, 0, 24, 42,
- 42, 42, 42, 0, 23, 0, 26, 47, 0, 0,
- 0, 47, 47, 47, 47, 35, 35, 35, 35, 0,
- 37, 0, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 0, 0, 0, 37, 37, 37, 37,
-
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 42,
- 42, 42, 42, 42, 42, 44, 0, 0, 0, 47,
- 20, 43, 36, 36, 36, 36, 37, 0, 0, 0,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 0, 0, 0, 0, 0, 37, 37,
- 37, 37, 37, 37, 37, 37, 42, 42, 42, 42,
- 0, 22, 0, 27, 0, 20, 0, 0, 47, 0,
- 47, 47, 47, 36, 36, 36, 36, 0, 0, 0,
- 0, 0, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+ 0, 0, 0, 0, 68, 55, 63, 62, 61, 54,
+ 66, 34, 56, 57, 34, 58, 55, 55, 55, 55,
+ 60, 59, 66, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 66, 55, 55, 63, 66, 46, 46,
+ 46, 46, 46, 2, 66, 1, 55, 46, 46, 55,
+ 17, 16, 17, 16, 16, 66, 66, 66, 3, 9,
+ 8, 9, 4, 9, 5, 66, 13, 13, 13, 11,
+ 12, 66, 19, 19, 18, 18, 18, 19, 18, 18,
+ 18, 19, 19, 19, 19, 19, 18, 19, 19, 55,
+
+ 0, 63, 61, 0, 65, 0, 55, 36, 0, 34,
+ 0, 35, 0, 53, 53, 0, 55, 55, 0, 55,
+ 55, 55, 55, 0, 39, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 55, 64, 55,
+ 55, 63, 0, 0, 0, 0, 0, 0, 55, 55,
+ 55, 55, 55, 2, 1, 0, 1, 47, 47, 0,
+ 55, 17, 17, 15, 14, 15, 0, 0, 3, 9,
+ 0, 6, 7, 9, 9, 13, 0, 13, 13, 0,
+ 10, 36, 0, 0, 35, 19, 19, 0, 19, 0,
+ 0, 18, 18, 18, 18, 18, 18, 19, 19, 46,
+
+ 19, 19, 19, 19, 19, 19, 19, 0, 0, 0,
+ 36, 55, 55, 55, 55, 55, 0, 0, 39, 39,
+ 46, 41, 46, 46, 46, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 55, 55, 0, 0, 0, 0,
+ 0, 0, 55, 55, 55, 55, 55, 0, 55, 10,
+ 0, 0, 0, 18, 18, 18, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 0, 55, 55,
+ 55, 55, 55, 55, 0, 40, 40, 40, 0, 0,
+ 39, 39, 39, 39, 39, 39, 39, 46, 46, 46,
+ 46, 46, 46, 46, 46, 46, 46, 42, 46, 43,
+
+ 55, 55, 55, 55, 0, 0, 0, 0, 0, 0,
+ 55, 55, 55, 55, 0, 0, 0, 0, 0, 18,
+ 18, 19, 46, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 55, 55, 55, 0, 0, 40, 40,
+ 40, 0, 39, 39, 0, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 0, 27, 46, 46,
+ 46, 46, 46, 46, 46, 46, 44, 46, 55, 55,
+ 55, 55, 55, 0, 0, 0, 0, 55, 55, 55,
+ 0, 0, 0, 18, 18, 46, 46, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 55, 55,
+
+ 55, 55, 55, 0, 40, 0, 39, 39, 39, 0,
+ 0, 0, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 46, 46, 46, 46, 46,
+ 46, 46, 46, 46, 48, 49, 50, 51, 55, 0,
+ 0, 0, 55, 55, 55, 0, 0, 0, 0, 0,
+ 46, 46, 19, 46, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 37, 37, 37, 0, 0, 39, 39,
+ 39, 39, 39, 39, 39, 0, 0, 0, 0, 0,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 46, 46, 46, 0, 26, 46,
+
+ 46, 46, 46, 0, 25, 0, 28, 55, 0, 0,
+ 0, 55, 55, 55, 37, 37, 37, 46, 46, 46,
+ 46, 19, 19, 19, 55, 37, 37, 37, 37, 0,
+ 39, 0, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 0, 0, 0, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 46,
+ 46, 46, 46, 46, 46, 46, 52, 0, 0, 0,
+ 55, 22, 47, 0, 37, 37, 37, 37, 46, 46,
+ 46, 46, 19, 19, 19, 38, 38, 38, 38, 39,
+ 0, 0, 0, 39, 39, 39, 39, 39, 39, 39,
+
+ 39, 39, 39, 39, 39, 39, 0, 0, 0, 0,
+ 0, 39, 39, 39, 39, 39, 39, 39, 39, 46,
+ 46, 46, 46, 46, 0, 24, 0, 29, 0, 22,
+ 0, 0, 55, 0, 55, 38, 38, 38, 38, 46,
+ 46, 46, 46, 55, 55, 38, 38, 38, 38, 0,
+ 0, 0, 0, 0, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 45, 0, 32, 46, 46, 46,
+ 0, 0, 0, 20, 0, 23, 22, 0, 0, 0,
+ 0, 0, 22, 0, 0, 0, 38, 38, 38, 38,
+
+ 46, 46, 46, 55, 55, 55, 0, 0, 0, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 0, 30, 46,
+ 46, 23, 0, 0, 22, 0, 0, 0, 46, 46,
+ 55, 55, 55, 55, 55, 0, 0, 0, 0, 0,
+ 39, 39, 39, 39, 39, 39, 39, 39, 0, 33,
+ 46, 0, 0, 0, 0, 0, 0, 46, 55, 55,
+ 55, 39, 39, 39, 39, 39, 39, 0, 31, 0,
+ 0, 21, 0, 0, 0, 55, 55, 55, 55, 55,
+ 39, 39, 39, 39, 39, 0, 0, 0, 0, 0,
- 37, 37, 0, 30, 42, 42, 42, 0, 0, 0,
- 21, 20, 0, 0, 0, 0, 0, 20, 0, 47,
- 47, 47, 0, 0, 0, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 0, 28, 42, 42, 21, 0, 18,
- 0, 0, 20, 47, 47, 47, 47, 47, 0, 0,
- 0, 0, 0, 37, 37, 37, 37, 37, 37, 37,
- 37, 0, 31, 42, 0, 47, 47, 47, 37, 37,
- 37, 37, 37, 37, 0, 29, 0, 47, 47, 47,
- 47, 47, 37, 37, 37, 37, 37, 0, 19, 35,
-
- 35, 35, 35, 35, 35, 0
+ 37, 37, 0
} ;
static yyconst int yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 4, 5, 6, 1, 7, 1, 1, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 22, 22, 23, 24, 1, 1,
- 25, 26, 10, 27, 28, 29, 30, 31, 32, 29,
- 33, 34, 35, 36, 36, 37, 36, 38, 39, 40,
- 36, 41, 42, 43, 44, 45, 46, 47, 48, 36,
- 10, 49, 10, 1, 50, 1, 51, 52, 53, 54,
-
- 55, 56, 57, 57, 58, 57, 57, 59, 60, 61,
- 62, 57, 57, 63, 64, 65, 66, 57, 57, 57,
- 57, 57, 1, 1, 1, 1, 1, 1, 1, 1,
+ 19, 20, 21, 22, 23, 24, 25, 26, 1, 1,
+ 27, 28, 10, 29, 30, 31, 32, 33, 34, 31,
+ 35, 36, 37, 38, 38, 39, 40, 41, 42, 43,
+ 38, 44, 45, 46, 47, 48, 49, 50, 51, 38,
+ 10, 52, 10, 1, 53, 1, 54, 55, 56, 57,
+
+ 58, 59, 60, 61, 62, 60, 60, 63, 64, 65,
+ 66, 60, 60, 67, 68, 69, 70, 60, 60, 60,
+ 60, 60, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1
} ;
-static yyconst int yy_meta[67] =
+static yyconst int yy_meta[71] =
{ 0,
1, 2, 3, 4, 5, 6, 1, 7, 7, 1,
- 1, 8, 1, 9, 10, 11, 11, 11, 11, 11,
- 11, 11, 11, 12, 13, 7, 1, 11, 11, 11,
- 11, 11, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 14, 15,
- 16, 16, 16, 16, 16, 16, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15
+ 8, 9, 10, 11, 12, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 14, 15, 7, 1, 16,
+ 16, 16, 16, 16, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 18, 19, 20, 20, 20, 20, 20, 20, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21
} ;
-static yyconst short int yy_base[671] =
+static yyconst short int yy_base[931] =
{ 0,
- 0, 65, 67, 72, 99, 114, 162, 227, 292, 340,
- 86, 125, 2840, 2790, 2836, 3665, 2833, 3665, 387, 70,
- 3665, 3665, 2771, 3665, 136, 397, 133, 159, 2795, 3665,
- 3665, 453, 2781, 33, 504, 2770, 2767, 2777, 2765, 2771,
- 2754, 559, 170, 19, 165, 583, 38, 49, 2739, 68,
- 2727, 81, 219, 2771, 305, 48, 0, 3665, 2761, 3665,
- 0, 250, 639, 119, 0, 2709, 3665, 108, 3665, 112,
- 3665, 140, 2699, 98, 121, 3665, 195, 2693, 661, 2739,
- 2736, 2736, 3665, 227, 247, 300, 316, 152, 354, 2681,
- 686, 373, 2670, 711, 352, 722, 2692, 2669, 375, 414,
-
- 302, 2656, 57, 763, 0, 2628, 2625, 2614, 505, 2602,
- 2606, 2599, 2601, 202, 3665, 153, 546, 2572, 2565, 2549,
- 2537, 2524, 200, 110, 244, 28, 111, 252, 171, 2578,
- 422, 2577, 565, 2529, 818, 262, 0, 2573, 179, 3665,
- 3665, 599, 269, 0, 2513, 453, 3665, 3665, 2512, 548,
- 2490, 2533, 206, 253, 323, 2535, 2524, 2513, 607, 615,
- 306, 722, 586, 831, 867, 903, 939, 2499, 2456, 980,
- 333, 1022, 1063, 0, 2430, 2394, 2363, 2364, 2374, 2369,
- 2327, 2330, 2329, 2328, 266, 2289, 2283, 2272, 2274, 2279,
- 409, 334, 2279, 145, 335, 83, 672, 278, 2327, 2325,
-
- 627, 259, 1106, 1142, 741, 210, 2293, 2279, 683, 513,
- 2275, 2271, 352, 747, 1178, 780, 788, 1220, 815, 2270,
- 400, 325, 2261, 2258, 2248, 2246, 2242, 0, 2240, 0,
- 489, 2223, 2213, 2198, 2211, 2198, 420, 407, 529, 490,
- 491, 1263, 1299, 1335, 2235, 2234, 839, 2234, 2232, 2228,
- 2226, 528, 848, 657, 856, 665, 1371, 0, 877, 1382,
- 886, 894, 1424, 913, 570, 3665, 2208, 2197, 2198, 2177,
- 2184, 2193, 2190, 2169, 558, 2145, 2098, 2099, 648, 626,
- 530, 559, 923, 336, 1467, 1503, 964, 2138, 2137, 2108,
- 2086, 1537, 551, 1000, 1041, 1082, 653, 694, 797, 1049,
-
- 923, 1580, 0, 1116, 1591, 1090, 1008, 1633, 1125, 2069,
- 2065, 747, 686, 2046, 2005, 786, 926, 905, 2014, 1982,
- 679, 634, 544, 915, 1675, 1710, 1745, 2015, 1978, 1962,
- 1150, 1781, 1158, 1133, 1822, 1197, 1166, 1954, 1239, 1273,
- 1207, 950, 951, 962, 991, 1247, 1073, 1865, 0, 1283,
- 1876, 1307, 1315, 1918, 1323, 1923, 1923, 1188, 3665, 1924,
- 1898, 1893, 1873, 1286, 3665, 1336, 3665, 707, 1790, 1783,
- 786, 930, 764, 1298, 1358, 1041, 1960, 1995, 1400, 1823,
- 1799, 1348, 708, 1406, 1348, 2031, 0, 559, 2042, 1441,
- 1449, 2083, 1477, 1487, 1513, 1523, 1230, 1290, 1458, 1548,
-
- 1557, 1602, 2126, 0, 1613, 2137, 1650, 1565, 1660, 1765,
- 1763, 1680, 1675, 1359, 1406, 1626, 1601, 1577, 897, 938,
- 1695, 1589, 2180, 2216, 2252, 2288, 1611, 1686, 1720, 1731,
- 1563, 1478, 1504, 1694, 1524, 2324, 0, 617, 2335, 1753,
- 1761, 2376, 1769, 1798, 1550, 1808, 1841, 1851, 1335, 1358,
- 1887, 714, 825, 2419, 0, 926, 1407, 1508, 1506, 1471,
- 1547, 3665, 1616, 3665, 1423, 1731, 1907, 1512, 1575, 1910,
- 1915, 1935, 1498, 2429, 2465, 1971, 1611, 1977, 1457, 2005,
- 2015, 1987, 1408, 1254, 1732, 1782, 2059, 1842, 2501, 0,
- 1025, 2512, 2067, 2100, 2553, 2108, 2155, 2164, 2189, 1769,
-
- 1207, 1189, 1634, 3665, 1699, 1162, 1113, 1074, 1118, 384,
- 1040, 2211, 2218, 2238, 2243, 2263, 2288, 2249, 2307, 2596,
- 2632, 2668, 2304, 2354, 2395, 1025, 1006, 1889, 2016, 2362,
- 2043, 2704, 0, 1224, 2715, 2403, 2437, 2445, 992, 2454,
- 2474, 2483, 903, 1921, 3665, 1941, 839, 3665, 843, 3665,
- 1306, 2489, 2529, 2537, 1911, 2758, 2794, 2573, 2579, 811,
- 2607, 2617, 2642, 640, 629, 2109, 535, 447, 2650, 0,
- 1428, 1942, 3665, 2044, 2216, 2830, 2866, 2902, 2676, 2684,
- 2692, 337, 0, 333, 2067, 3665, 327, 2733, 1912, 2938,
- 2974, 2743, 3665, 2767, 2777, 2658, 3665, 166, 3665, 2805,
-
- 2813, 2847, 63, 2855, 2881, 3665, 3023, 3039, 3055, 3071,
- 3087, 3103, 3119, 3135, 3151, 3157, 3173, 3189, 1498, 3205,
- 3221, 3237, 3253, 3269, 3285, 3301, 3307, 3314, 3330, 3346,
- 3352, 3359, 3365, 3371, 3377, 3384, 3390, 3396, 3402, 3409,
- 3417, 3423, 3429, 3435, 3442, 3450, 3456, 3462, 3469, 3477,
- 3483, 3491, 3498, 3506, 3512, 3520, 3527, 3535, 3551, 3567,
- 3573, 3581, 3588, 3604, 3610, 3618, 3624, 3632, 1295, 3648
+ 0, 69, 71, 79, 94, 124, 175, 244, 153, 197,
+ 85, 130, 314, 0, 4514, 4461, 4510, 5604, 4507, 5604,
+ 382, 86, 5604, 5604, 4458, 5604, 140, 394, 195, 153,
+ 4483, 5604, 5604, 453, 4383, 43, 508, 37, 4379, 65,
+ 4378, 4385, 4367, 566, 581, 91, 151, 604, 39, 41,
+ 4351, 34, 4348, 117, 4402, 4412, 428, 4371, 4382, 136,
+ 0, 5604, 4407, 5604, 0, 606, 664, 105, 0, 4358,
+ 5604, 115, 5604, 133, 5604, 138, 4357, 152, 171, 5604,
+ 188, 383, 641, 694, 737, 235, 245, 794, 843, 4369,
+ 157, 898, 4365, 4364, 4375, 4370, 944, 0, 206, 4351,
+
+ 266, 4400, 4397, 4397, 5604, 263, 532, 585, 4386, 608,
+ 707, 4346, 829, 648, 4345, 968, 981, 1018, 4359, 4370,
+ 563, 708, 422, 4357, 371, 1062, 1106, 4343, 4347, 4340,
+ 4344, 596, 4333, 4340, 4337, 4329, 4331, 644, 5604, 237,
+ 137, 946, 4309, 4314, 4305, 4300, 4301, 121, 225, 530,
+ 377, 369, 335, 445, 4366, 720, 4365, 931, 4314, 1018,
+ 169, 0, 4361, 160, 5604, 5604, 991, 388, 0, 4312,
+ 638, 5604, 5604, 4311, 661, 4310, 4356, 392, 221, 420,
+ 4358, 653, 665, 1139, 4296, 1145, 0, 1173, 1201, 1210,
+ 1037, 1239, 4333, 1081, 1170, 826, 1288, 1343, 4307, 0,
+
+ 4311, 4309, 899, 4298, 4296, 4287, 4283, 4336, 4335, 1222,
+ 1258, 1389, 1362, 968, 1428, 4323, 4310, 1472, 520, 1517,
+ 1561, 1605, 4303, 4297, 4280, 4282, 4289, 4300, 4295, 4283,
+ 4279, 4292, 4291, 4290, 654, 493, 4258, 4252, 4242, 4244,
+ 4250, 534, 579, 4253, 491, 407, 506, 1413, 626, 4304,
+ 4251, 4239, 1651, 1661, 4227, 1705, 0, 4197, 4164, 4155,
+ 4151, 4151, 4135, 4112, 4111, 811, 4067, 4122, 1749, 378,
+ 0, 0, 1041, 243, 4098, 4097, 1786, 805, 4096, 4095,
+ 623, 1410, 1799, 1447, 1091, 1844, 1890, 4094, 429, 4073,
+ 632, 4084, 4082, 4056, 4054, 4050, 4053, 0, 4046, 0,
+
+ 929, 638, 544, 561, 4022, 4024, 4008, 4022, 4008, 746,
+ 524, 1063, 413, 662, 1491, 4060, 4059, 4058, 1270, 1900,
+ 1944, 763, 904, 4037, 4020, 4009, 4007, 3992, 3988, 818,
+ 3993, 3988, 3912, 1990, 2002, 2014, 3930, 3929, 2024, 3929,
+ 3912, 3911, 3910, 919, 1536, 1003, 1580, 1142, 2037, 0,
+ 1626, 2083, 1680, 1372, 2128, 2174, 764, 5604, 3892, 3877,
+ 3870, 3884, 3862, 3869, 3879, 3879, 0, 3863, 698, 593,
+ 820, 973, 1093, 3857, 3824, 3825, 922, 897, 969, 1097,
+ 3866, 3858, 2186, 2196, 3829, 3807, 3800, 3814, 3778, 3784,
+ 3794, 3793, 3747, 3726, 3716, 3711, 3696, 3656, 2240, 1017,
+
+ 2279, 2291, 1637, 3686, 3662, 3648, 3646, 2301, 1127, 3642,
+ 3641, 2347, 1154, 1205, 1209, 1724, 1761, 2359, 0, 1763,
+ 2405, 1774, 1457, 2450, 2496, 2521, 1024, 1127, 1181, 1190,
+ 1169, 1207, 1224, 1392, 3602, 3584, 3577, 3560, 1240, 3581,
+ 3547, 1313, 1391, 874, 1774, 1821, 3584, 3576, 3569, 1503,
+ 3523, 3519, 869, 1379, 3515, 3511, 949, 1045, 0, 0,
+ 0, 0, 3478, 2577, 1863, 1546, 3510, 3509, 3506, 1919,
+ 2616, 1963, 1590, 2660, 2706, 2056, 3517, 3509, 3487, 1692,
+ 1879, 1979, 2096, 2104, 2147, 2106, 2718, 0, 2217, 2764,
+ 2250, 1734, 2809, 2855, 2880, 2086, 1133, 1088, 5604, 421,
+
+ 2087, 1184, 2088, 1369, 5604, 1370, 5604, 1197, 3418, 3389,
+ 1282, 2127, 1249, 1368, 3442, 3427, 2936, 3386, 3320, 3309,
+ 3295, 2951, 1219, 3272, 3006, 1181, 3044, 0, 1709, 3290,
+ 3263, 2260, 58, 2320, 1774, 3083, 0, 2380, 3129, 2424,
+ 1831, 3173, 3219, 3270, 3265, 3231, 2336, 2462, 2464, 2471,
+ 3256, 2477, 3243, 0, 2589, 3289, 2600, 1929, 3335, 3360,
+ 1376, 1087, 1847, 1409, 1542, 1586, 3218, 3184, 3166, 1832,
+ 1427, 2060, 3174, 2635, 3210, 3186, 3185, 2435, 3129, 3111,
+ 3114, 3066, 3429, 1454, 0, 3486, 2679, 2737, 1483, 3085,
+ 2989, 2839, 3525, 2819, 2003, 2280, 2783, 2381, 3537, 0,
+
+ 2830, 3583, 3016, 2157, 3627, 3673, 3026, 2821, 2801, 2750,
+ 2228, 2472, 2474, 2695, 1189, 1531, 3685, 0, 2647, 1848,
+ 1925, 1602, 1522, 1849, 1587, 5604, 1664, 5604, 2692, 1967,
+ 1630, 2177, 2014, 2406, 2761, 2674, 2630, 3731, 2272, 1926,
+ 2155, 2500, 1927, 3741, 2076, 3780, 0, 1967, 2277, 3054,
+ 2598, 2535, 2509, 2841, 2470, 2431, 2485, 2600, 3064, 2617,
+ 3819, 0, 3104, 3865, 3148, 3036, 3909, 3955, 2390, 2373,
+ 3966, 3118, 2338, 1742, 2298, 2129, 5604, 2743, 1825, 1738,
+ 2219, 2153, 1825, 5604, 2062, 2083, 3130, 3172, 3276, 3281,
+ 1984, 2880, 1920, 3360, 3192, 1912, 1877, 1858, 3274, 1744,
+
+ 2326, 2643, 2745, 3978, 3990, 4002, 1700, 1693, 4014, 1662,
+ 1623, 2856, 2951, 3496, 3084, 4026, 0, 3508, 4072, 3556,
+ 3074, 0, 1599, 1510, 1503, 3319, 1423, 2328, 5604, 3154,
+ 2037, 5604, 2124, 3602, 3646, 1409, 1403, 4118, 2407, 2791,
+ 4130, 2334, 4142, 4154, 3659, 3704, 1390, 1286, 1251, 3418,
+ 1158, 1087, 3105, 1077, 1056, 4166, 0, 3568, 2499, 5604,
+ 3270, 2220, 3751, 1014, 1005, 957, 3614, 2522, 4178, 4190,
+ 4202, 3761, 3790, 3800, 684, 0, 683, 2685, 5604, 658,
+ 2222, 5604, 522, 382, 4214, 4226, 2335, 4238, 4250, 3840,
+ 5604, 3846, 3884, 3202, 5604, 3928, 374, 208, 117, 3716,
+
+ 4260, 4297, 4334, 4045, 4091, 4270, 59, 4371, 3941, 5604,
+ 4280, 3771, 5604, 4423, 4444, 4465, 4486, 4507, 4528, 4549,
+ 4570, 4591, 4600, 2074, 4620, 4641, 2383, 4662, 4683, 4704,
+ 4725, 4746, 4767, 4788, 4809, 2337, 4830, 4839, 4847, 4856,
+ 4876, 4897, 4918, 2474, 4939, 4960, 4981, 5002, 5011, 5030,
+ 5039, 5048, 2421, 2516, 5056, 5064, 5072, 5081, 5089, 5096,
+ 5104, 5112, 5121, 5131, 2600, 2694, 5139, 5147, 5155, 2695,
+ 2757, 5164, 5174, 5194, 2798, 5203, 5211, 2799, 5220, 5230,
+ 5250, 2228, 2615, 5259, 5271, 5280, 5290, 2803, 2825, 5299,
+ 5309, 5318, 5338, 2700, 5347, 5359, 2841, 2872, 5368, 5378,
+
+ 2873, 5387, 5397, 5417, 5438, 5459, 3115, 3116, 5479, 3168,
+ 5486, 5496, 2951, 2967, 5505, 2520, 5525, 3304, 3313, 5534,
+ 5544, 3517, 3314, 3318, 5552, 5562, 5582, 3814, 3319, 3430
} ;
-static yyconst short int yy_def[671] =
+static yyconst short int yy_def[931] =
{ 0,
- 606, 1, 1, 1, 607, 607, 608, 608, 609, 609,
- 610, 610, 606, 611, 606, 606, 606, 606, 612, 613,
- 606, 606, 614, 606, 615, 611, 26, 26, 616, 606,
- 606, 606, 32, 32, 32, 35, 35, 35, 35, 35,
- 35, 611, 26, 611, 606, 612, 32, 32, 35, 35,
- 35, 606, 606, 606, 617, 611, 618, 606, 618, 606,
- 618, 606, 612, 606, 619, 620, 606, 620, 606, 620,
- 606, 621, 622, 622, 622, 606, 606, 611, 611, 606,
- 606, 623, 606, 624, 606, 613, 606, 625, 613, 614,
- 614, 615, 626, 611, 611, 26, 616, 96, 96, 96,
-
- 96, 627, 628, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 611, 606, 611, 606, 606, 606, 606,
- 606, 606, 623, 611, 96, 611, 611, 611, 606, 606,
- 606, 606, 617, 629, 611, 611, 618, 618, 606, 606,
- 606, 624, 606, 619, 620, 620, 606, 606, 620, 620,
- 622, 606, 622, 622, 606, 606, 623, 630, 606, 606,
- 625, 625, 606, 611, 611, 611, 96, 167, 631, 606,
- 632, 606, 104, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 611, 606, 606, 606, 606, 606,
- 623, 611, 167, 611, 611, 611, 606, 611, 606, 630,
-
- 611, 611, 611, 611, 611, 611, 633, 634, 634, 209,
- 635, 634, 636, 172, 606, 215, 215, 606, 215, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 611, 606, 606, 606, 606, 606, 623, 611, 611, 611,
- 611, 611, 611, 611, 606, 637, 637, 247, 637, 638,
- 639, 640, 606, 641, 218, 641, 641, 257, 641, 606,
- 260, 260, 606, 260, 606, 606, 35, 35, 35, 35,
- 35, 35, 35, 35, 611, 606, 606, 606, 623, 611,
- 611, 611, 611, 611, 611, 611, 611, 642, 642, 643,
- 644, 606, 606, 606, 606, 606, 645, 645, 646, 263,
-
- 646, 646, 302, 646, 606, 305, 305, 606, 305, 35,
- 35, 35, 35, 35, 35, 35, 35, 611, 606, 606,
- 623, 611, 611, 611, 611, 611, 611, 606, 647, 648,
- 292, 606, 332, 332, 606, 332, 606, 606, 606, 606,
- 606, 606, 649, 649, 650, 308, 650, 650, 348, 650,
- 606, 351, 351, 606, 351, 35, 35, 606, 606, 35,
- 35, 35, 35, 606, 606, 606, 606, 611, 606, 606,
- 623, 611, 611, 611, 611, 611, 611, 611, 611, 606,
- 651, 606, 652, 335, 652, 652, 386, 386, 606, 389,
- 389, 606, 389, 606, 606, 606, 606, 653, 653, 654,
-
- 354, 654, 654, 403, 654, 606, 406, 406, 406, 35,
- 35, 35, 35, 35, 35, 611, 606, 606, 623, 611,
- 611, 611, 611, 611, 611, 611, 606, 606, 606, 606,
- 655, 655, 656, 392, 656, 656, 436, 436, 606, 439,
- 439, 606, 439, 606, 606, 606, 606, 606, 606, 657,
- 657, 658, 658, 658, 454, 454, 35, 35, 35, 35,
- 606, 606, 606, 606, 606, 606, 623, 623, 611, 659,
- 660, 611, 611, 611, 611, 611, 611, 606, 606, 606,
- 606, 606, 606, 661, 661, 662, 442, 662, 662, 489,
- 489, 606, 492, 492, 606, 492, 606, 606, 606, 606,
-
- 663, 663, 606, 606, 35, 35, 35, 606, 664, 623,
- 611, 659, 659, 659, 659, 606, 659, 660, 660, 611,
- 611, 611, 606, 606, 606, 606, 665, 665, 666, 495,
- 666, 666, 532, 532, 606, 535, 535, 535, 606, 606,
- 606, 606, 606, 606, 606, 35, 35, 606, 664, 606,
- 623, 606, 606, 611, 611, 611, 611, 611, 606, 606,
- 606, 606, 606, 606, 667, 667, 668, 668, 668, 569,
- 569, 606, 606, 35, 623, 611, 611, 611, 606, 606,
- 606, 606, 669, 669, 606, 606, 670, 611, 611, 611,
- 611, 611, 606, 606, 606, 606, 606, 670, 606, 611,
-
- 611, 611, 611, 611, 611, 0, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606
+ 813, 1, 1, 1, 814, 814, 815, 815, 816, 816,
+ 817, 817, 813, 13, 813, 818, 813, 813, 813, 813,
+ 819, 820, 813, 813, 821, 813, 822, 818, 28, 28,
+ 823, 813, 813, 813, 34, 34, 34, 37, 37, 37,
+ 37, 37, 37, 818, 28, 818, 813, 819, 34, 34,
+ 37, 37, 37, 813, 824, 813, 825, 37, 37, 818,
+ 826, 813, 826, 813, 826, 813, 819, 813, 827, 828,
+ 813, 828, 813, 828, 813, 829, 830, 830, 830, 813,
+ 813, 831, 832, 833, 813, 85, 85, 85, 813, 89,
+ 89, 89, 92, 92, 92, 92, 85, 88, 88, 818,
+
+ 818, 813, 813, 834, 813, 835, 813, 820, 836, 831,
+ 820, 821, 821, 822, 837, 818, 818, 28, 838, 118,
+ 118, 118, 118, 839, 840, 37, 126, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 818, 813, 818,
+ 818, 813, 813, 813, 813, 813, 813, 834, 818, 118,
+ 818, 818, 818, 813, 813, 813, 813, 841, 842, 818,
+ 818, 843, 843, 813, 813, 813, 835, 813, 844, 845,
+ 845, 813, 813, 845, 845, 830, 813, 830, 830, 813,
+ 813, 831, 831, 831, 846, 847, 88, 846, 848, 813,
+ 813, 85, 192, 192, 192, 192, 813, 197, 198, 849,
+
+ 198, 198, 198, 198, 198, 88, 88, 834, 850, 813,
+ 813, 818, 212, 212, 118, 215, 851, 813, 852, 813,
+ 127, 221, 222, 222, 222, 222, 222, 222, 222, 222,
+ 222, 222, 222, 222, 818, 818, 813, 813, 813, 813,
+ 813, 834, 818, 215, 818, 818, 818, 813, 818, 813,
+ 853, 854, 813, 88, 254, 197, 198, 198, 198, 198,
+ 198, 198, 198, 198, 198, 88, 88, 850, 818, 818,
+ 212, 212, 212, 818, 855, 856, 856, 277, 857, 856,
+ 858, 220, 813, 283, 283, 813, 283, 222, 222, 222,
+ 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
+
+ 818, 818, 818, 818, 813, 813, 813, 813, 813, 834,
+ 818, 818, 818, 818, 813, 813, 853, 853, 813, 254,
+ 197, 198, 859, 198, 198, 198, 198, 198, 198, 88,
+ 88, 88, 88, 212, 212, 212, 813, 860, 860, 339,
+ 860, 861, 862, 863, 813, 864, 286, 864, 813, 349,
+ 864, 813, 352, 352, 813, 352, 813, 813, 222, 222,
+ 222, 222, 222, 222, 222, 222, 222, 222, 818, 818,
+ 818, 818, 818, 813, 813, 813, 834, 818, 818, 818,
+ 865, 866, 813, 88, 321, 859, 859, 198, 198, 198,
+ 198, 198, 198, 88, 88, 88, 88, 88, 818, 818,
+
+ 212, 212, 818, 867, 867, 868, 869, 813, 813, 870,
+ 871, 813, 872, 872, 873, 355, 873, 813, 418, 873,
+ 813, 421, 421, 813, 421, 813, 426, 426, 426, 426,
+ 426, 426, 426, 426, 818, 818, 818, 818, 818, 813,
+ 813, 874, 818, 818, 818, 813, 813, 875, 875, 813,
+ 859, 859, 198, 859, 198, 198, 198, 198, 88, 88,
+ 88, 88, 88, 818, 464, 464, 813, 876, 877, 408,
+ 813, 471, 471, 813, 471, 813, 813, 878, 878, 813,
+ 813, 879, 879, 880, 424, 880, 813, 487, 880, 813,
+ 490, 490, 813, 490, 813, 495, 495, 813, 813, 495,
+
+ 495, 495, 495, 813, 813, 813, 813, 818, 813, 813,
+ 881, 818, 818, 818, 882, 883, 813, 884, 884, 884,
+ 884, 813, 522, 885, 818, 818, 818, 527, 527, 813,
+ 886, 813, 887, 474, 887, 813, 536, 887, 813, 539,
+ 539, 813, 539, 888, 889, 813, 813, 890, 890, 891,
+ 892, 891, 813, 553, 891, 813, 556, 556, 556, 813,
+ 560, 560, 560, 560, 560, 560, 818, 813, 813, 893,
+ 818, 818, 818, 813, 813, 894, 894, 813, 895, 895,
+ 895, 895, 813, 583, 896, 818, 586, 586, 586, 813,
+ 897, 898, 813, 899, 899, 900, 542, 900, 813, 599,
+
+ 900, 813, 602, 602, 813, 602, 813, 813, 901, 901,
+ 813, 813, 902, 902, 903, 903, 813, 617, 903, 560,
+ 560, 560, 560, 560, 813, 813, 813, 813, 813, 813,
+ 904, 893, 818, 905, 906, 907, 908, 813, 907, 909,
+ 909, 909, 909, 818, 818, 818, 646, 646, 818, 813,
+ 813, 910, 910, 813, 813, 911, 911, 912, 605, 912,
+ 813, 661, 912, 813, 664, 664, 813, 664, 913, 914,
+ 813, 813, 915, 915, 560, 813, 813, 560, 560, 560,
+ 813, 904, 904, 813, 893, 818, 905, 905, 905, 905,
+ 916, 905, 917, 917, 813, 813, 907, 907, 813, 813,
+
+ 909, 909, 909, 646, 646, 646, 918, 919, 813, 813,
+ 920, 920, 921, 667, 921, 813, 716, 921, 813, 719,
+ 719, 922, 813, 913, 913, 813, 813, 813, 813, 560,
+ 560, 813, 893, 813, 813, 923, 924, 813, 909, 909,
+ 646, 818, 646, 646, 818, 813, 813, 918, 918, 813,
+ 813, 925, 925, 926, 926, 926, 756, 926, 813, 813,
+ 560, 927, 813, 813, 923, 923, 813, 909, 646, 646,
+ 646, 813, 813, 813, 813, 928, 928, 813, 813, 927,
+ 927, 813, 929, 930, 813, 646, 818, 646, 646, 818,
+ 813, 813, 813, 813, 813, 813, 813, 929, 929, 813,
+
+ 818, 818, 818, 813, 813, 813, 818, 818, 818, 813,
+ 813, 813, 0, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813
} ;
-static yyconst short int yy_nxt[3732] =
+static yyconst short int yy_nxt[5675] =
{ 0,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 14,
- 23, 24, 14, 14, 25, 26, 27, 28, 26, 26,
- 26, 26, 26, 29, 30, 31, 14, 32, 33, 33,
- 33, 34, 35, 35, 35, 35, 36, 37, 35, 38,
- 39, 40, 41, 35, 35, 35, 35, 35, 42, 14,
- 43, 43, 43, 43, 43, 43, 14, 14, 14, 14,
- 14, 14, 14, 44, 14, 14, 45, 79, 52, 105,
- 46, 170, 53, 52, 105, 87, 79, 53, 54, 107,
- 172, 55, 129, 54, 116, 105, 55, 74, 16, 75,
- 76, 194, 130, 88, 47, 48, 79, 124, 49, 153,
-
- 15, 58, 59, 125, 60, 50, 111, 35, 51, 35,
- 60, 79, 35, 136, 35, 15, 58, 59, 89, 60,
- 143, 115, 60, 61, 154, 60, 74, 16, 75, 76,
- 56, 79, 147, 127, 77, 56, 148, 60, 61, 93,
- 93, 150, 115, 93, 93, 238, 152, 62, 99, 99,
- 99, 99, 99, 99, 99, 99, 146, 87, 79, 79,
- 146, 93, 62, 15, 16, 17, 117, 63, 599, 152,
- 192, 195, 129, 77, 100, 100, 100, 100, 100, 101,
- 143, 115, 130, 78, 94, 98, 98, 98, 98, 98,
- 98, 98, 98, 79, 118, 119, 155, 156, 120, 151,
-
- 162, 79, 83, 143, 115, 121, 185, 153, 122, 238,
- 64, 65, 65, 65, 65, 65, 65, 65, 65, 65,
- 65, 65, 65, 65, 65, 65, 65, 65, 15, 16,
- 17, 131, 63, 97, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 79, 139, 115, 140, 152, 141, 154, 78, 79, 140,
- 191, 141, 85, 85, 85, 85, 85, 85, 85, 85,
- 143, 115, 201, 141, 141, 64, 65, 65, 65, 65,
- 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
- 65, 65, 65, 15, 16, 17, 67, 63, 141, 193,
-
- 79, 152, 68, 69, 70, 606, 196, 79, 134, 134,
- 79, 606, 134, 134, 79, 198, 71, 168, 168, 168,
- 168, 168, 168, 606, 155, 156, 79, 231, 159, 599,
- 134, 160, 160, 160, 160, 160, 160, 160, 160, 241,
- 72, 15, 16, 17, 67, 63, 382, 170, 89, 283,
- 68, 69, 70, 135, 162, 86, 214, 86, 86, 267,
- 530, 86, 86, 268, 71, 86, 170, 164, 165, 166,
- 164, 164, 164, 164, 164, 214, 93, 93, 86, 86,
- 93, 93, 79, 79, 79, 240, 83, 238, 72, 83,
- 168, 168, 168, 168, 168, 168, 168, 168, 93, 84,
-
- 79, 265, 85, 85, 85, 85, 85, 85, 85, 85,
- 95, 83, 96, 96, 96, 96, 96, 96, 96, 96,
- 97, 94, 83, 266, 98, 98, 98, 98, 98, 168,
- 168, 168, 168, 168, 168, 168, 168, 85, 85, 85,
- 85, 85, 85, 85, 85, 79, 551, 98, 98, 98,
- 98, 98, 98, 78, 145, 79, 280, 145, 145, 78,
- 606, 237, 78, 78, 145, 78, 78, 78, 104, 104,
- 104, 104, 104, 104, 104, 104, 97, 145, 279, 78,
- 104, 104, 104, 104, 104, 105, 105, 105, 105, 106,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
-
- 105, 79, 105, 98, 98, 98, 98, 98, 98, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 105,
- 105, 105, 105, 105, 105, 105, 105, 606, 249, 249,
- 249, 105, 105, 105, 105, 105, 177, 79, 79, 79,
- 105, 178, 170, 275, 179, 282, 180, 117, 382, 143,
- 115, 214, 97, 238, 78, 78, 78, 78, 78, 78,
- 114, 115, 78, 78, 78, 170, 78, 78, 134, 134,
- 78, 265, 134, 134, 214, 118, 119, 79, 79, 120,
- 431, 431, 78, 78, 78, 83, 121, 93, 323, 122,
- 134, 93, 79, 266, 281, 84, 146, 93, 85, 85,
-
- 85, 85, 85, 85, 85, 85, 79, 79, 373, 93,
- 93, 318, 324, 135, 606, 606, 606, 606, 606, 606,
- 606, 606, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 484, 484,
- 123, 83, 242, 243, 244, 242, 242, 242, 242, 242,
- 83, 142, 530, 322, 606, 606, 606, 606, 606, 606,
- 606, 606, 78, 487, 78, 78, 78, 170, 78, 78,
- 253, 170, 78, 134, 79, 79, 255, 134, 606, 170,
- 255, 83, 79, 134, 78, 78, 78, 90, 255, 90,
- 90, 90, 372, 90, 90, 134, 134, 90, 247, 247,
-
- 248, 249, 249, 249, 249, 249, 211, 253, 170, 90,
- 90, 90, 92, 321, 78, 78, 92, 255, 78, 78,
- 360, 382, 92, 161, 361, 161, 161, 253, 170, 161,
- 161, 384, 371, 161, 92, 92, 78, 167, 167, 167,
- 167, 167, 167, 167, 167, 161, 161, 161, 358, 167,
- 167, 167, 167, 167, 201, 79, 202, 202, 202, 202,
- 202, 202, 219, 219, 219, 219, 219, 219, 219, 219,
- 359, 416, 167, 167, 167, 167, 167, 167, 173, 173,
- 173, 173, 173, 173, 173, 173, 97, 364, 83, 79,
- 173, 173, 173, 173, 173, 257, 257, 257, 257, 257,
-
- 257, 257, 257, 258, 258, 258, 258, 258, 259, 365,
- 253, 170, 79, 167, 167, 167, 167, 167, 167, 133,
- 300, 78, 78, 133, 559, 78, 78, 421, 606, 133,
- 256, 256, 256, 256, 256, 256, 256, 256, 606, 170,
- 419, 133, 133, 78, 201, 550, 202, 202, 202, 202,
- 202, 202, 202, 202, 289, 289, 289, 289, 289, 289,
- 289, 289, 211, 294, 295, 296, 294, 294, 294, 294,
- 294, 264, 264, 264, 264, 264, 264, 264, 264, 79,
- 201, 574, 203, 203, 203, 203, 203, 203, 203, 203,
- 253, 170, 298, 298, 298, 298, 298, 298, 467, 83,
-
- 255, 302, 302, 302, 302, 302, 302, 302, 302, 303,
- 303, 303, 303, 303, 304, 79, 201, 170, 204, 204,
- 204, 204, 204, 205, 202, 202, 606, 366, 301, 301,
- 301, 301, 301, 301, 301, 301, 606, 170, 325, 326,
- 327, 325, 325, 325, 325, 325, 300, 501, 501, 367,
- 468, 79, 78, 79, 206, 206, 206, 206, 206, 206,
- 206, 206, 368, 79, 170, 170, 206, 206, 206, 206,
- 206, 79, 374, 255, 300, 253, 170, 283, 79, 284,
- 284, 284, 284, 284, 284, 300, 79, 420, 469, 206,
- 206, 206, 206, 206, 206, 208, 209, 210, 210, 210,
-
- 210, 210, 210, 211, 253, 170, 170, 212, 212, 212,
- 212, 212, 79, 337, 346, 338, 338, 338, 338, 338,
- 338, 338, 338, 349, 349, 349, 349, 349, 350, 487,
- 212, 212, 212, 212, 212, 212, 170, 215, 216, 217,
- 215, 215, 215, 215, 215, 218, 527, 527, 434, 219,
- 219, 219, 219, 219, 337, 375, 339, 339, 339, 339,
- 339, 339, 339, 339, 309, 309, 309, 309, 309, 309,
- 309, 309, 219, 219, 219, 219, 219, 219, 220, 220,
- 220, 220, 220, 220, 220, 220, 606, 170, 79, 79,
- 220, 220, 220, 220, 220, 337, 346, 340, 340, 340,
-
- 340, 340, 341, 338, 338, 348, 348, 348, 348, 348,
- 348, 348, 348, 206, 206, 206, 206, 206, 206, 201,
- 550, 202, 202, 202, 202, 202, 202, 202, 202, 253,
- 170, 344, 344, 344, 344, 344, 344, 548, 606, 300,
- 347, 347, 347, 347, 347, 347, 347, 347, 387, 387,
- 387, 387, 387, 388, 79, 201, 547, 202, 202, 202,
- 202, 202, 202, 202, 202, 336, 336, 336, 336, 336,
- 336, 336, 336, 386, 386, 386, 386, 386, 386, 386,
- 386, 394, 395, 396, 394, 394, 394, 394, 394, 358,
- 79, 253, 170, 254, 254, 254, 254, 254, 254, 254,
-
- 254, 255, 253, 170, 546, 256, 256, 256, 256, 256,
- 606, 359, 385, 385, 385, 385, 385, 385, 385, 385,
- 337, 170, 338, 338, 338, 338, 338, 338, 256, 256,
- 256, 256, 256, 256, 170, 260, 261, 262, 260, 260,
- 260, 260, 260, 263, 170, 565, 565, 264, 264, 264,
- 264, 264, 337, 300, 338, 338, 338, 338, 338, 338,
- 338, 338, 355, 355, 355, 355, 355, 355, 355, 355,
- 264, 264, 264, 264, 264, 264, 283, 434, 284, 284,
- 284, 284, 284, 284, 284, 284, 337, 364, 338, 338,
- 338, 338, 338, 338, 338, 338, 253, 170, 399, 399,
-
- 399, 399, 399, 399, 170, 597, 346, 575, 83, 365,
- 597, 79, 283, 346, 285, 285, 285, 285, 285, 285,
- 285, 285, 403, 403, 403, 403, 403, 403, 403, 403,
- 404, 404, 404, 404, 404, 405, 606, 366, 402, 402,
- 402, 402, 402, 402, 402, 402, 79, 79, 283, 170,
- 286, 286, 286, 286, 286, 287, 284, 284, 346, 367,
- 461, 606, 422, 428, 429, 430, 428, 428, 428, 428,
- 428, 384, 170, 423, 424, 425, 426, 423, 423, 423,
- 423, 401, 462, 79, 253, 170, 298, 298, 298, 298,
- 298, 298, 298, 298, 255, 253, 170, 299, 299, 299,
-
- 299, 299, 299, 299, 299, 300, 79, 463, 503, 301,
- 301, 301, 301, 301, 375, 376, 376, 376, 376, 376,
- 376, 393, 393, 393, 393, 393, 393, 393, 393, 464,
- 504, 384, 301, 301, 301, 301, 301, 301, 170, 305,
- 306, 307, 305, 305, 305, 305, 305, 308, 79, 583,
- 583, 309, 309, 309, 309, 309, 436, 436, 436, 436,
- 436, 436, 436, 436, 437, 437, 437, 437, 437, 438,
- 478, 253, 170, 508, 309, 309, 309, 309, 309, 309,
- 283, 346, 284, 284, 284, 284, 284, 284, 284, 284,
- 606, 382, 435, 435, 435, 435, 435, 435, 435, 435,
-
- 444, 384, 445, 445, 445, 445, 445, 445, 445, 445,
- 507, 472, 144, 144, 83, 79, 283, 382, 284, 284,
- 284, 284, 284, 284, 284, 284, 444, 434, 446, 446,
- 446, 446, 446, 446, 446, 446, 444, 606, 447, 447,
- 447, 447, 447, 448, 445, 445, 79, 434, 461, 506,
- 505, 79, 332, 333, 334, 332, 332, 332, 332, 332,
- 335, 253, 170, 444, 336, 336, 336, 336, 336, 510,
- 462, 401, 409, 409, 409, 409, 409, 409, 409, 409,
- 455, 455, 455, 455, 455, 456, 384, 336, 336, 336,
- 336, 336, 336, 253, 170, 344, 344, 344, 344, 344,
-
- 344, 344, 344, 300, 253, 170, 345, 345, 345, 345,
- 345, 345, 345, 345, 346, 606, 170, 463, 347, 347,
- 347, 347, 347, 79, 472, 401, 253, 170, 451, 451,
- 451, 451, 451, 451, 331, 503, 401, 79, 511, 464,
- 466, 347, 347, 347, 347, 347, 347, 170, 351, 352,
- 353, 351, 351, 351, 351, 351, 354, 504, 465, 79,
- 355, 355, 355, 355, 355, 454, 454, 454, 454, 454,
- 454, 454, 454, 606, 79, 453, 453, 453, 453, 453,
- 453, 453, 453, 355, 355, 355, 355, 355, 355, 375,
- 376, 376, 376, 376, 376, 376, 376, 376, 470, 478,
-
- 544, 479, 479, 479, 479, 479, 479, 479, 479, 443,
- 443, 443, 443, 443, 443, 443, 443, 460, 470, 459,
- 470, 471, 545, 79, 375, 377, 377, 377, 377, 377,
- 377, 377, 377, 478, 470, 480, 480, 480, 480, 480,
- 480, 480, 480, 79, 478, 382, 481, 481, 481, 481,
- 481, 482, 479, 479, 470, 434, 470, 470, 79, 375,
- 378, 378, 378, 378, 378, 379, 376, 376, 489, 489,
- 489, 489, 489, 489, 489, 489, 490, 490, 490, 490,
- 490, 491, 606, 170, 488, 488, 488, 488, 488, 488,
- 488, 488, 401, 79, 382, 382, 383, 383, 383, 383,
-
- 383, 383, 383, 383, 384, 487, 458, 457, 385, 385,
- 385, 385, 385, 497, 498, 499, 497, 497, 497, 497,
- 497, 444, 331, 445, 445, 445, 445, 445, 445, 445,
- 445, 385, 385, 385, 385, 385, 385, 389, 390, 391,
- 389, 389, 389, 389, 389, 392, 251, 418, 417, 393,
- 393, 393, 393, 393, 444, 606, 445, 445, 445, 445,
- 445, 445, 445, 445, 444, 487, 445, 445, 445, 445,
- 445, 445, 393, 393, 393, 393, 393, 393, 253, 170,
- 399, 399, 399, 399, 399, 399, 399, 399, 346, 253,
- 170, 400, 400, 400, 400, 400, 400, 400, 400, 401,
-
- 253, 170, 382, 402, 402, 402, 402, 402, 467, 83,
- 401, 513, 487, 514, 515, 516, 513, 415, 514, 515,
- 516, 509, 544, 414, 554, 588, 402, 402, 402, 402,
- 402, 402, 170, 406, 407, 408, 406, 406, 406, 406,
- 406, 413, 572, 572, 545, 409, 409, 409, 409, 409,
- 520, 521, 522, 520, 520, 520, 520, 520, 517, 79,
- 79, 412, 411, 519, 573, 573, 410, 337, 409, 409,
- 409, 409, 409, 409, 375, 376, 376, 376, 376, 376,
- 376, 376, 376, 79, 472, 331, 473, 473, 473, 473,
- 473, 473, 523, 524, 525, 523, 523, 523, 523, 523,
-
- 478, 251, 479, 479, 479, 479, 479, 479, 79, 375,
- 376, 376, 376, 376, 376, 376, 376, 376, 478, 79,
- 479, 479, 479, 479, 479, 479, 479, 479, 478, 382,
- 479, 479, 479, 479, 479, 479, 479, 479, 211, 530,
- 370, 369, 363, 79, 382, 585, 432, 432, 432, 432,
- 432, 432, 432, 432, 384, 382, 606, 433, 433, 433,
- 433, 433, 433, 433, 433, 434, 530, 586, 585, 435,
- 435, 435, 435, 435, 496, 496, 496, 496, 496, 496,
- 496, 496, 532, 532, 532, 532, 532, 532, 532, 532,
- 586, 362, 435, 435, 435, 435, 435, 435, 439, 440,
-
- 441, 439, 439, 439, 439, 439, 442, 357, 356, 331,
- 443, 443, 443, 443, 443, 533, 533, 533, 533, 533,
- 534, 606, 382, 531, 531, 531, 531, 531, 531, 531,
- 531, 251, 530, 443, 443, 443, 443, 443, 443, 253,
- 170, 451, 451, 451, 451, 451, 451, 451, 451, 401,
- 253, 170, 452, 452, 452, 452, 452, 452, 452, 452,
- 211, 211, 276, 320, 453, 453, 453, 453, 453, 170,
- 539, 539, 539, 539, 539, 539, 539, 539, 170, 540,
- 540, 540, 540, 540, 540, 540, 540, 453, 453, 453,
- 453, 453, 453, 472, 319, 473, 473, 473, 473, 473,
-
- 473, 473, 473, 170, 541, 541, 541, 541, 541, 542,
- 539, 539, 606, 317, 606, 606, 606, 575, 83, 513,
- 316, 514, 515, 516, 315, 314, 313, 312, 79, 472,
- 587, 474, 474, 474, 474, 474, 474, 474, 474, 606,
- 311, 514, 515, 516, 606, 310, 606, 606, 516, 292,
- 606, 251, 606, 606, 606, 211, 288, 211, 103, 517,
- 276, 278, 276, 277, 79, 472, 517, 475, 475, 475,
- 475, 475, 476, 477, 477, 552, 276, 274, 553, 553,
- 553, 553, 553, 553, 553, 553, 517, 273, 272, 271,
- 270, 517, 269, 97, 211, 512, 512, 519, 251, 512,
-
- 79, 472, 211, 477, 477, 477, 473, 473, 473, 473,
- 473, 512, 512, 512, 518, 518, 103, 559, 518, 560,
- 560, 560, 560, 560, 560, 560, 560, 83, 199, 239,
- 518, 518, 518, 236, 235, 234, 79, 382, 233, 485,
- 485, 485, 485, 485, 485, 485, 485, 434, 382, 232,
- 486, 486, 486, 486, 486, 486, 486, 486, 487, 230,
- 229, 228, 488, 488, 488, 488, 488, 559, 227, 561,
- 561, 561, 561, 561, 561, 561, 561, 538, 538, 538,
- 538, 538, 538, 538, 538, 488, 488, 488, 488, 488,
- 488, 492, 493, 494, 492, 492, 492, 492, 492, 495,
-
- 226, 225, 224, 496, 496, 496, 496, 496, 559, 223,
- 562, 562, 562, 562, 562, 563, 560, 560, 569, 569,
- 569, 569, 569, 569, 569, 569, 496, 496, 496, 496,
- 496, 496, 253, 170, 502, 502, 502, 502, 502, 502,
- 502, 502, 472, 222, 473, 473, 473, 473, 473, 473,
- 473, 473, 570, 570, 570, 570, 570, 571, 606, 221,
- 568, 568, 568, 568, 568, 568, 568, 568, 170, 539,
- 539, 539, 539, 539, 539, 539, 539, 79, 472, 103,
- 473, 473, 473, 473, 473, 473, 473, 473, 170, 539,
- 539, 539, 539, 539, 539, 539, 539, 170, 539, 539,
-
- 539, 539, 539, 539, 553, 553, 553, 553, 553, 553,
- 553, 553, 95, 79, 382, 83, 528, 528, 528, 528,
- 528, 528, 528, 528, 487, 382, 83, 529, 529, 529,
- 529, 529, 529, 529, 529, 530, 199, 151, 152, 531,
- 531, 531, 531, 531, 553, 553, 553, 553, 553, 553,
- 553, 553, 576, 577, 578, 576, 576, 576, 576, 576,
- 146, 146, 531, 531, 531, 531, 531, 531, 535, 536,
- 537, 535, 535, 535, 535, 535, 138, 197, 132, 132,
- 538, 538, 538, 538, 538, 79, 554, 190, 555, 555,
- 555, 555, 555, 555, 579, 580, 581, 579, 579, 579,
-
- 579, 579, 189, 538, 538, 538, 538, 538, 538, 554,
- 188, 555, 555, 555, 555, 555, 555, 555, 555, 187,
- 559, 79, 560, 560, 560, 560, 560, 560, 560, 560,
- 559, 186, 560, 560, 560, 560, 560, 560, 560, 560,
- 184, 183, 182, 181, 79, 554, 176, 556, 556, 556,
- 556, 556, 556, 556, 556, 559, 175, 560, 560, 560,
- 560, 560, 560, 382, 174, 584, 584, 584, 584, 584,
- 584, 584, 584, 593, 593, 593, 593, 593, 593, 103,
- 79, 554, 78, 557, 557, 557, 557, 557, 558, 555,
- 555, 593, 593, 593, 593, 593, 593, 593, 593, 594,
-
- 594, 594, 594, 594, 594, 594, 594, 595, 595, 595,
- 595, 595, 596, 593, 593, 103, 79, 382, 163, 566,
- 566, 566, 566, 566, 566, 566, 566, 530, 382, 91,
- 567, 567, 567, 567, 567, 567, 567, 567, 83, 81,
- 80, 79, 568, 568, 568, 568, 568, 152, 600, 601,
- 602, 600, 600, 600, 600, 600, 588, 146, 589, 589,
- 589, 589, 589, 589, 138, 568, 568, 568, 568, 568,
- 568, 554, 132, 555, 555, 555, 555, 555, 555, 555,
- 555, 79, 593, 593, 593, 593, 593, 593, 593, 593,
- 128, 79, 593, 593, 593, 593, 593, 593, 593, 593,
-
- 126, 113, 112, 111, 110, 109, 79, 554, 108, 555,
- 555, 555, 555, 555, 555, 555, 555, 105, 103, 91,
- 603, 603, 603, 603, 603, 603, 603, 603, 600, 600,
- 600, 600, 600, 600, 600, 600, 81, 80, 79, 606,
- 606, 606, 79, 588, 606, 589, 589, 589, 589, 589,
- 589, 589, 589, 79, 606, 606, 606, 606, 606, 606,
- 606, 79, 604, 604, 604, 604, 604, 605, 603, 603,
- 603, 603, 603, 603, 603, 603, 603, 603, 79, 588,
- 606, 590, 590, 590, 590, 590, 590, 590, 590, 606,
- 606, 606, 606, 606, 606, 79, 603, 603, 603, 603,
-
- 603, 603, 606, 79, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 79, 588, 606, 591, 591, 591,
- 591, 591, 592, 589, 589, 606, 606, 606, 606, 79,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 79, 588, 606, 589, 589, 589, 589, 589, 589, 589,
- 589, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 79, 588, 606, 589,
- 589, 589, 589, 589, 589, 589, 589, 606, 606, 606,
-
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 79, 57, 57, 57, 57, 57, 57, 57,
- 57, 57, 57, 57, 57, 57, 57, 57, 57, 31,
- 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
- 31, 31, 31, 31, 31, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 78, 606, 606,
- 606, 606, 606, 606, 606, 78, 78, 78, 606, 606,
-
- 78, 78, 78, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 86,
- 606, 606, 606, 606, 86, 606, 606, 86, 86, 86,
- 86, 606, 86, 86, 86, 90, 606, 606, 606, 606,
- 606, 606, 606, 90, 90, 90, 606, 606, 90, 90,
- 90, 92, 606, 606, 92, 92, 606, 92, 606, 92,
- 92, 92, 606, 606, 92, 92, 92, 102, 102, 606,
- 606, 606, 102, 133, 606, 606, 133, 133, 606, 133,
- 606, 133, 133, 133, 606, 606, 133, 133, 133, 137,
- 606, 606, 137, 137, 606, 137, 606, 137, 137, 137,
-
- 606, 137, 606, 137, 137, 145, 606, 606, 145, 606,
- 606, 145, 606, 145, 145, 145, 145, 606, 145, 145,
- 145, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 151, 151, 606,
- 151, 606, 151, 151, 151, 151, 151, 151, 151, 151,
- 151, 151, 151, 157, 157, 157, 157, 157, 157, 157,
- 157, 157, 157, 157, 157, 157, 157, 157, 157, 158,
- 158, 606, 158, 158, 158, 158, 158, 158, 158, 158,
- 158, 158, 158, 158, 158, 161, 606, 606, 606, 606,
- 161, 606, 606, 161, 161, 161, 606, 606, 161, 161,
-
- 161, 93, 606, 606, 93, 93, 606, 93, 606, 93,
- 93, 93, 606, 606, 93, 93, 93, 169, 169, 606,
- 606, 606, 169, 171, 171, 171, 606, 606, 606, 171,
- 134, 606, 606, 134, 134, 606, 134, 606, 134, 134,
- 134, 606, 606, 134, 134, 134, 200, 200, 200, 200,
- 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
- 200, 200, 207, 207, 606, 606, 606, 207, 213, 213,
- 213, 606, 606, 606, 213, 245, 245, 606, 606, 606,
- 245, 246, 246, 606, 606, 606, 246, 250, 250, 606,
- 606, 606, 250, 252, 252, 252, 606, 606, 606, 252,
-
- 288, 288, 606, 606, 606, 288, 290, 290, 606, 606,
- 606, 290, 291, 291, 606, 606, 606, 291, 293, 293,
- 293, 606, 606, 606, 293, 297, 297, 297, 297, 606,
- 606, 606, 297, 328, 328, 606, 606, 606, 328, 329,
- 329, 606, 606, 606, 329, 330, 330, 606, 606, 606,
- 330, 342, 342, 342, 606, 606, 606, 342, 343, 343,
- 343, 343, 606, 606, 606, 343, 380, 380, 606, 606,
- 606, 380, 381, 381, 606, 606, 606, 381, 397, 397,
- 397, 606, 606, 606, 397, 398, 398, 398, 398, 606,
- 606, 606, 398, 427, 427, 606, 606, 606, 427, 431,
-
- 606, 431, 431, 606, 606, 606, 431, 449, 449, 449,
- 606, 606, 606, 449, 450, 450, 450, 450, 606, 606,
- 606, 450, 483, 483, 606, 606, 606, 483, 484, 606,
- 484, 484, 606, 606, 606, 484, 500, 500, 500, 606,
- 606, 606, 500, 501, 501, 501, 606, 606, 606, 606,
- 501, 512, 512, 606, 512, 512, 512, 606, 606, 512,
- 512, 512, 606, 606, 512, 512, 512, 518, 518, 606,
- 518, 518, 518, 606, 606, 518, 518, 518, 606, 606,
- 518, 518, 518, 526, 526, 606, 606, 606, 526, 527,
- 606, 527, 527, 606, 606, 606, 527, 543, 543, 606,
-
- 606, 606, 606, 543, 549, 549, 549, 549, 549, 549,
- 549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
- 564, 564, 606, 606, 606, 564, 565, 606, 565, 565,
- 606, 606, 606, 565, 582, 582, 606, 606, 606, 582,
- 583, 606, 583, 606, 606, 606, 606, 583, 598, 598,
- 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
- 598, 598, 598, 598, 13, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
-
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 16,
+ 25, 26, 16, 16, 27, 28, 29, 30, 28, 28,
+ 28, 28, 28, 28, 28, 31, 32, 33, 16, 34,
+ 35, 35, 35, 36, 37, 37, 37, 37, 38, 37,
+ 39, 37, 40, 41, 42, 43, 37, 37, 37, 37,
+ 37, 44, 16, 45, 45, 45, 45, 45, 45, 16,
+ 16, 16, 16, 16, 16, 16, 16, 46, 16, 16,
+ 47, 532, 54, 130, 48, 135, 55, 127, 131, 127,
+ 54, 127, 56, 534, 55, 57, 78, 18, 79, 80,
+ 56, 109, 129, 57, 133, 17, 62, 63, 150, 64,
+
+ 49, 50, 149, 152, 51, 64, 168, 139, 134, 58,
+ 101, 110, 52, 59, 37, 53, 37, 58, 154, 64,
+ 65, 59, 37, 105, 37, 17, 62, 63, 155, 64,
+ 796, 78, 18, 79, 80, 64, 81, 111, 60, 175,
+ 139, 172, 101, 115, 115, 66, 60, 115, 115, 64,
+ 65, 140, 142, 178, 17, 18, 19, 71, 67, 173,
+ 141, 168, 139, 72, 73, 74, 171, 115, 122, 122,
+ 122, 122, 122, 123, 179, 66, 17, 18, 19, 75,
+ 67, 81, 143, 144, 171, 242, 145, 101, 101, 180,
+ 181, 116, 176, 236, 146, 198, 140, 147, 17, 18,
+
+ 19, 71, 67, 177, 76, 161, 201, 72, 73, 74,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 101, 796, 177, 75, 179, 249, 68, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 17, 18, 19, 76, 67,
+ 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
+ 195, 195, 195, 195, 195, 196, 206, 100, 119, 100,
+ 100, 100, 177, 100, 100, 207, 101, 100, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 101, 243,
+ 235, 100, 100, 100, 101, 68, 69, 69, 69, 69,
+
+ 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 33, 17, 18, 19, 33, 33,
+ 82, 23, 24, 33, 83, 26, 33, 33, 84, 85,
+ 86, 87, 85, 85, 85, 85, 85, 85, 85, 31,
+ 88, 33, 33, 89, 90, 90, 90, 91, 92, 92,
+ 92, 92, 93, 92, 94, 92, 95, 92, 96, 92,
+ 92, 92, 92, 92, 92, 68, 33, 97, 97, 97,
+ 97, 97, 97, 98, 98, 98, 98, 98, 98, 98,
+ 98, 99, 98, 98, 105, 218, 101, 796, 109, 168,
+ 139, 269, 247, 178, 106, 796, 220, 107, 107, 107,
+
+ 107, 107, 107, 107, 107, 107, 107, 117, 183, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 119,
+ 101, 180, 181, 120, 120, 120, 120, 120, 101, 101,
+ 357, 159, 159, 246, 184, 159, 159, 216, 216, 216,
+ 216, 216, 216, 177, 245, 101, 154, 120, 120, 120,
+ 120, 120, 120, 100, 358, 159, 155, 127, 101, 100,
+ 313, 563, 100, 100, 101, 100, 100, 100, 126, 126,
+ 126, 126, 126, 126, 126, 126, 126, 126, 119, 160,
+ 311, 100, 126, 126, 126, 126, 126, 127, 127, 127,
+ 127, 128, 127, 127, 127, 127, 127, 127, 127, 127,
+
+ 127, 127, 127, 127, 101, 127, 120, 120, 120, 120,
+ 120, 120, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 813, 218, 796, 105, 127, 127, 127,
+ 127, 127, 101, 100, 101, 282, 127, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 101, 304, 311,
+ 372, 100, 100, 100, 100, 100, 100, 138, 139, 100,
+ 100, 100, 311, 100, 100, 101, 378, 100, 216, 216,
+ 216, 216, 216, 216, 216, 216, 216, 216, 244, 310,
+ 813, 100, 100, 100, 100, 101, 120, 120, 120, 120,
+
+ 120, 120, 120, 120, 120, 120, 105, 164, 139, 165,
+ 813, 166, 101, 109, 436, 165, 106, 166, 373, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 226,
+ 101, 166, 166, 813, 227, 311, 111, 218, 228, 170,
+ 229, 185, 170, 170, 101, 168, 139, 185, 282, 170,
+ 185, 115, 115, 185, 185, 115, 115, 166, 813, 184,
+ 782, 371, 168, 139, 170, 148, 105, 187, 360, 185,
+ 109, 301, 302, 361, 303, 115, 167, 101, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 101,
+ 813, 314, 188, 185, 115, 101, 532, 115, 115, 116,
+
+ 115, 115, 115, 115, 184, 101, 115, 115, 108, 714,
+ 108, 108, 171, 101, 108, 108, 184, 435, 108, 380,
+ 187, 115, 115, 216, 216, 216, 216, 216, 216, 216,
+ 216, 216, 216, 108, 108, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 190, 115, 187, 105, 101,
+ 191, 187, 192, 192, 192, 192, 192, 192, 192, 192,
+ 192, 192, 119, 187, 357, 357, 193, 193, 193, 193,
+ 193, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 358, 358,
+ 193, 193, 193, 193, 193, 193, 187, 187, 187, 187,
+
+ 187, 187, 187, 187, 187, 187, 187, 813, 377, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 813,
+ 341, 341, 341, 187, 187, 187, 187, 187, 330, 331,
+ 112, 332, 112, 112, 112, 394, 112, 112, 395, 437,
+ 112, 255, 255, 255, 255, 255, 255, 187, 187, 187,
+ 187, 187, 187, 187, 112, 112, 112, 187, 197, 197,
+ 197, 197, 197, 197, 197, 197, 197, 197, 119, 187,
+ 498, 101, 197, 197, 197, 197, 197, 198, 198, 198,
+ 198, 199, 198, 198, 198, 198, 198, 198, 198, 198,
+ 198, 198, 198, 198, 499, 200, 193, 193, 193, 193,
+
+ 193, 193, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 198, 198, 198, 198, 198, 198, 198,
+ 198, 198, 198, 813, 105, 101, 443, 198, 198, 198,
+ 198, 198, 260, 218, 159, 159, 198, 261, 159, 159,
+ 386, 262, 513, 263, 282, 387, 369, 142, 101, 370,
+ 504, 187, 187, 187, 187, 187, 187, 813, 159, 193,
+ 193, 193, 193, 193, 193, 193, 193, 193, 193, 114,
+ 763, 100, 100, 114, 505, 100, 100, 143, 144, 114,
+ 101, 145, 160, 272, 272, 272, 272, 272, 273, 146,
+ 438, 442, 147, 114, 114, 100, 212, 213, 214, 212,
+
+ 212, 212, 212, 212, 212, 212, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 345, 218, 763, 158,
+ 101, 100, 100, 158, 101, 100, 100, 763, 347, 158,
+ 399, 444, 101, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 158, 158, 100, 506, 215, 215, 215,
+ 215, 215, 251, 252, 253, 251, 251, 251, 251, 251,
+ 251, 251, 100, 100, 100, 100, 496, 127, 101, 813,
+ 507, 215, 215, 215, 215, 215, 215, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 119, 119, 498,
+ 532, 221, 221, 221, 221, 221, 255, 255, 255, 255,
+
+ 255, 255, 255, 255, 255, 255, 350, 350, 350, 350,
+ 350, 351, 714, 499, 101, 215, 215, 215, 215, 215,
+ 215, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 813, 379, 622, 127, 127, 127, 127, 127, 127,
+ 182, 218, 182, 182, 101, 185, 182, 182, 101, 439,
+ 182, 185, 282, 445, 185, 813, 218, 185, 185, 100,
+ 100, 100, 100, 100, 100, 182, 182, 347, 218, 127,
+ 127, 187, 497, 185, 185, 562, 185, 185, 185, 347,
+ 185, 185, 498, 659, 185, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 525, 188, 185, 185, 185,
+
+ 185, 115, 345, 218, 115, 115, 499, 115, 115, 115,
+ 115, 115, 127, 115, 115, 115, 565, 502, 345, 218,
+ 127, 115, 345, 218, 127, 504, 500, 187, 115, 115,
+ 347, 501, 101, 127, 416, 115, 115, 211, 211, 211,
+ 211, 211, 211, 211, 211, 211, 211, 503, 101, 505,
+ 127, 198, 190, 115, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 254, 746, 567, 584, 127, 254, 254,
+ 254, 254, 254, 211, 211, 211, 211, 211, 211, 211,
+ 211, 211, 211, 315, 105, 316, 316, 316, 316, 316,
+ 316, 101, 254, 254, 254, 254, 254, 254, 187, 746,
+
+ 101, 508, 187, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 119, 187, 105, 572, 256, 256, 256,
+ 256, 256, 198, 198, 198, 198, 198, 198, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 570,
+ 200, 254, 254, 254, 254, 254, 254, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 813, 511,
+ 504, 506, 198, 198, 198, 198, 198, 271, 271, 271,
+ 271, 271, 271, 271, 271, 271, 271, 419, 419, 419,
+ 419, 419, 420, 506, 505, 507, 187, 187, 187, 187,
+
+ 187, 187, 269, 746, 270, 270, 270, 270, 270, 270,
+ 270, 270, 270, 270, 159, 520, 763, 507, 159, 101,
+ 521, 621, 763, 127, 159, 287, 287, 287, 287, 287,
+ 287, 287, 287, 287, 287, 127, 573, 218, 159, 159,
+ 101, 100, 101, 274, 274, 274, 274, 274, 274, 274,
+ 274, 274, 274, 512, 624, 627, 127, 274, 274, 274,
+ 274, 274, 349, 349, 349, 349, 349, 349, 349, 349,
+ 349, 349, 488, 488, 488, 488, 488, 489, 101, 628,
+ 633, 274, 274, 274, 274, 274, 274, 276, 277, 278,
+ 278, 278, 278, 278, 278, 278, 278, 279, 649, 649,
+
+ 649, 280, 280, 280, 280, 280, 381, 382, 383, 381,
+ 381, 381, 381, 381, 381, 381, 446, 218, 447, 447,
+ 447, 447, 447, 447, 218, 280, 280, 280, 280, 280,
+ 280, 218, 283, 284, 285, 283, 283, 283, 283, 283,
+ 283, 283, 286, 625, 813, 218, 287, 287, 287, 287,
+ 287, 410, 411, 412, 410, 410, 410, 410, 410, 410,
+ 410, 528, 528, 528, 528, 528, 529, 626, 679, 127,
+ 287, 287, 287, 287, 287, 287, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 119, 627, 625, 127,
+ 288, 288, 288, 288, 288, 356, 356, 356, 356, 356,
+
+ 356, 356, 356, 356, 356, 537, 537, 537, 537, 537,
+ 538, 628, 626, 218, 274, 274, 274, 274, 274, 274,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 813, 683, 684, 127, 127, 127, 127, 127, 127, 345,
+ 218, 414, 414, 414, 414, 414, 414, 678, 659, 127,
+ 399, 347, 400, 400, 400, 400, 400, 400, 100, 100,
+ 100, 100, 100, 100, 315, 627, 318, 318, 318, 318,
+ 318, 319, 316, 316, 316, 316, 320, 320, 320, 320,
+ 320, 320, 320, 320, 320, 320, 119, 597, 101, 628,
+ 320, 320, 320, 320, 320, 418, 418, 418, 418, 418,
+
+ 418, 418, 418, 418, 418, 476, 746, 477, 477, 477,
+ 477, 477, 477, 746, 320, 320, 320, 320, 320, 320,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 100, 100, 100, 100, 321, 321, 321, 321, 321, 425,
+ 425, 425, 425, 425, 425, 425, 425, 425, 425, 554,
+ 554, 554, 554, 554, 555, 345, 218, 695, 320, 320,
+ 320, 320, 320, 320, 334, 335, 336, 334, 334, 334,
+ 334, 334, 334, 334, 813, 218, 345, 218, 483, 483,
+ 483, 483, 483, 483, 731, 127, 416, 813, 416, 487,
+ 487, 487, 487, 487, 487, 487, 487, 487, 487, 534,
+
+ 101, 339, 339, 340, 341, 341, 341, 341, 341, 341,
+ 341, 279, 345, 218, 346, 346, 346, 346, 346, 346,
+ 346, 346, 346, 346, 347, 101, 683, 684, 348, 348,
+ 348, 348, 348, 631, 105, 514, 515, 516, 517, 515,
+ 515, 515, 515, 515, 515, 515, 600, 600, 600, 600,
+ 600, 601, 348, 348, 348, 348, 348, 348, 218, 352,
+ 353, 354, 352, 352, 352, 352, 352, 352, 352, 355,
+ 730, 695, 127, 356, 356, 356, 356, 356, 527, 527,
+ 527, 527, 527, 527, 527, 527, 527, 527, 632, 623,
+ 695, 680, 675, 218, 127, 127, 127, 356, 356, 356,
+
+ 356, 356, 356, 813, 347, 348, 348, 348, 348, 348,
+ 348, 348, 348, 348, 348, 384, 384, 384, 384, 384,
+ 384, 384, 384, 384, 384, 695, 676, 676, 813, 384,
+ 384, 384, 384, 384, 475, 475, 475, 475, 475, 475,
+ 475, 475, 475, 475, 618, 618, 618, 618, 618, 619,
+ 677, 677, 813, 384, 384, 384, 384, 384, 384, 385,
+ 385, 385, 385, 385, 385, 385, 385, 385, 385, 703,
+ 634, 694, 127, 385, 385, 385, 385, 385, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 100, 100,
+ 100, 100, 634, 218, 634, 634, 734, 384, 384, 384,
+
+ 384, 384, 384, 399, 416, 400, 400, 400, 400, 400,
+ 400, 400, 400, 400, 400, 399, 532, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 399, 534, 402,
+ 402, 402, 402, 402, 403, 400, 400, 400, 400, 405,
+ 405, 405, 405, 405, 405, 405, 405, 405, 405, 279,
+ 345, 218, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 347, 634, 105, 101, 413, 413, 413, 413,
+ 413, 544, 545, 546, 544, 544, 544, 544, 544, 544,
+ 544, 686, 761, 107, 127, 634, 107, 634, 635, 644,
+ 413, 413, 413, 413, 413, 413, 345, 218, 415, 415,
+
+ 415, 415, 415, 415, 415, 415, 415, 415, 416, 345,
+ 218, 101, 417, 417, 417, 417, 417, 345, 218, 813,
+ 218, 416, 127, 127, 127, 762, 105, 101, 733, 485,
+ 676, 485, 561, 564, 101, 566, 417, 417, 417, 417,
+ 417, 417, 218, 421, 422, 423, 421, 421, 421, 421,
+ 421, 421, 421, 424, 677, 684, 813, 425, 425, 425,
+ 425, 425, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 662, 662, 662, 662, 662, 663, 101, 105,
+ 813, 425, 425, 425, 425, 425, 425, 813, 571, 417,
+ 417, 417, 417, 417, 417, 417, 417, 417, 417, 446,
+
+ 701, 449, 449, 449, 449, 449, 450, 447, 447, 447,
+ 447, 384, 384, 384, 384, 384, 384, 384, 384, 384,
+ 384, 781, 782, 781, 782, 384, 384, 384, 384, 384,
+ 345, 218, 549, 549, 549, 549, 549, 549, 685, 575,
+ 575, 607, 485, 608, 608, 608, 608, 608, 608, 384,
+ 384, 384, 384, 384, 384, 464, 465, 466, 464, 464,
+ 464, 464, 464, 464, 464, 553, 553, 553, 553, 553,
+ 553, 553, 553, 553, 553, 591, 592, 593, 591, 591,
+ 591, 591, 591, 591, 591, 695, 732, 700, 700, 700,
+ 644, 101, 399, 532, 400, 400, 400, 400, 400, 400,
+
+ 400, 400, 400, 400, 399, 597, 400, 400, 400, 400,
+ 400, 400, 400, 400, 400, 400, 471, 472, 473, 471,
+ 471, 471, 471, 471, 471, 471, 474, 728, 101, 728,
+ 475, 475, 475, 475, 475, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 127, 211, 741, 786, 211,
+ 218, 729, 218, 729, 475, 475, 475, 475, 475, 475,
+ 476, 416, 479, 479, 479, 479, 479, 480, 477, 477,
+ 477, 477, 345, 218, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 416, 101, 101, 218, 482, 482,
+ 482, 482, 482, 532, 813, 595, 595, 595, 595, 595,
+
+ 595, 169, 169, 169, 218, 534, 597, 688, 759, 689,
+ 690, 691, 482, 482, 482, 482, 482, 482, 345, 218,
+ 484, 484, 484, 484, 484, 484, 484, 484, 484, 484,
+ 485, 316, 760, 316, 486, 486, 486, 486, 486, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 574,
+ 575, 575, 575, 575, 575, 575, 597, 692, 486, 486,
+ 486, 486, 486, 486, 218, 490, 491, 492, 490, 490,
+ 490, 490, 490, 490, 490, 493, 218, 345, 218, 494,
+ 494, 494, 494, 494, 345, 218, 218, 485, 218, 485,
+ 813, 218, 169, 169, 169, 534, 551, 485, 532, 551,
+
+ 759, 813, 551, 494, 494, 494, 494, 494, 494, 813,
+ 597, 486, 486, 486, 486, 486, 486, 486, 486, 486,
+ 486, 100, 650, 778, 760, 813, 317, 100, 317, 735,
+ 100, 100, 735, 100, 100, 100, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 702, 779, 650, 100,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 495, 127, 127, 127, 127, 127,
+ 127, 127, 101, 127, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 525, 526, 526, 526, 526, 526, 526, 526, 526,
+
+ 526, 526, 345, 218, 614, 614, 614, 614, 614, 614,
+ 447, 650, 447, 532, 551, 617, 617, 617, 617, 617,
+ 617, 617, 617, 617, 617, 659, 576, 576, 101, 532,
+ 813, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 534, 659, 695, 813, 535, 535, 535, 535, 535,
+ 636, 637, 638, 639, 636, 636, 636, 636, 636, 636,
+ 345, 218, 674, 674, 674, 674, 674, 674, 813, 535,
+ 535, 535, 535, 535, 535, 539, 540, 541, 539, 539,
+ 539, 539, 539, 539, 539, 542, 778, 695, 739, 543,
+ 543, 543, 543, 543, 646, 646, 646, 646, 646, 646,
+
+ 646, 646, 646, 646, 448, 477, 448, 477, 345, 218,
+ 779, 575, 575, 543, 543, 543, 543, 543, 543, 813,
+ 551, 535, 535, 535, 535, 535, 535, 535, 535, 535,
+ 535, 345, 218, 549, 549, 549, 549, 549, 549, 549,
+ 549, 549, 549, 485, 728, 681, 813, 548, 548, 548,
+ 548, 548, 647, 647, 647, 647, 647, 648, 649, 649,
+ 649, 649, 688, 607, 689, 690, 691, 478, 729, 478,
+ 813, 548, 548, 548, 548, 548, 548, 345, 218, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 551,
+ 127, 740, 813, 552, 552, 552, 552, 552, 606, 606,
+
+ 606, 606, 606, 606, 606, 606, 606, 606, 447, 477,
+ 447, 477, 694, 608, 607, 608, 813, 552, 552, 552,
+ 552, 552, 552, 218, 556, 557, 558, 556, 556, 556,
+ 556, 556, 556, 556, 607, 609, 768, 609, 559, 559,
+ 559, 559, 559, 532, 534, 657, 657, 657, 657, 657,
+ 657, 651, 650, 651, 650, 597, 651, 651, 651, 651,
+ 651, 651, 559, 559, 559, 559, 559, 559, 813, 532,
+ 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
+ 100, 659, 652, 608, 652, 608, 100, 687, 687, 100,
+ 100, 687, 100, 100, 100, 127, 127, 127, 127, 127,
+
+ 127, 127, 127, 127, 127, 687, 687, 687, 100, 127,
+ 127, 127, 127, 127, 127, 127, 560, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 101, 127, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 574, 577, 577, 577, 577, 577, 578, 575, 575, 575,
+ 575, 187, 723, 723, 532, 187, 198, 198, 198, 198,
+ 198, 198, 198, 198, 198, 198, 714, 187, 724, 724,
+ 198, 198, 198, 583, 198, 198, 198, 198, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
+
+ 198, 198, 650, 200, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 586, 587, 588, 589, 586, 586, 586, 586, 586,
+ 586, 661, 661, 661, 661, 661, 661, 661, 661, 661,
+ 661, 669, 670, 671, 669, 669, 669, 669, 669, 669,
+ 669, 717, 717, 717, 717, 717, 718, 101, 525, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 707,
+ 708, 709, 707, 707, 707, 707, 707, 707, 707, 668,
+ 668, 668, 668, 668, 668, 668, 668, 668, 668, 757,
+ 757, 757, 757, 757, 758, 101, 532, 813, 595, 595,
+
+ 595, 595, 595, 595, 595, 595, 595, 595, 534, 714,
+ 470, 643, 594, 594, 594, 594, 594, 532, 532, 712,
+ 712, 712, 712, 712, 712, 696, 697, 696, 697, 659,
+ 714, 813, 218, 813, 813, 813, 594, 594, 594, 594,
+ 594, 594, 532, 551, 596, 596, 596, 596, 596, 596,
+ 596, 596, 596, 596, 597, 759, 642, 641, 598, 598,
+ 598, 598, 598, 716, 716, 716, 716, 716, 716, 716,
+ 716, 716, 716, 688, 640, 689, 690, 691, 651, 760,
+ 651, 692, 598, 598, 598, 598, 598, 598, 602, 603,
+ 604, 602, 602, 602, 602, 602, 602, 602, 605, 574,
+
+ 574, 127, 606, 606, 606, 606, 606, 736, 737, 738,
+ 736, 736, 736, 736, 736, 736, 736, 791, 791, 791,
+ 791, 791, 791, 692, 574, 101, 606, 606, 606, 606,
+ 606, 606, 813, 630, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 607, 629, 610, 610, 610, 610,
+ 610, 611, 608, 608, 608, 608, 345, 218, 614, 614,
+ 614, 614, 614, 614, 614, 614, 614, 614, 551, 101,
+ 218, 778, 613, 613, 613, 613, 613, 813, 607, 689,
+ 690, 691, 813, 607, 813, 813, 691, 695, 470, 696,
+ 696, 696, 696, 696, 696, 779, 613, 613, 613, 613,
+
+ 613, 613, 345, 218, 615, 615, 615, 615, 615, 615,
+ 615, 615, 615, 615, 747, 343, 747, 127, 616, 616,
+ 616, 616, 616, 748, 764, 748, 764, 692, 765, 797,
+ 765, 797, 692, 218, 723, 723, 723, 723, 723, 723,
+ 585, 582, 616, 616, 616, 616, 616, 616, 813, 581,
+ 616, 616, 616, 616, 616, 616, 616, 616, 616, 616,
+ 100, 693, 580, 693, 693, 693, 100, 693, 693, 100,
+ 100, 693, 100, 100, 100, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 693, 693, 693, 100, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+
+ 127, 127, 127, 127, 127, 127, 127, 620, 127, 127,
+ 127, 101, 127, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 625, 746, 579, 747, 747, 747, 747, 747, 747, 187,
+ 798, 574, 798, 187, 198, 198, 198, 198, 198, 198,
+ 198, 198, 198, 198, 626, 187, 574, 569, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
+ 568, 200, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 644,
+
+ 476, 645, 645, 645, 645, 645, 645, 645, 645, 645,
+ 645, 722, 722, 722, 722, 722, 722, 722, 722, 722,
+ 722, 532, 476, 753, 753, 753, 753, 753, 753, 755,
+ 476, 470, 755, 714, 343, 279, 755, 101, 650, 524,
+ 653, 653, 653, 653, 653, 654, 651, 651, 651, 651,
+ 532, 523, 657, 657, 657, 657, 657, 657, 657, 657,
+ 657, 657, 597, 522, 519, 518, 656, 656, 656, 656,
+ 656, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 532, 446, 777, 777, 777, 777, 777, 777, 446,
+ 656, 656, 656, 656, 656, 656, 532, 446, 658, 658,
+
+ 658, 658, 658, 658, 658, 658, 658, 658, 659, 510,
+ 509, 101, 660, 660, 660, 660, 660, 735, 735, 735,
+ 735, 735, 735, 735, 735, 735, 735, 763, 101, 764,
+ 764, 764, 764, 764, 764, 101, 660, 660, 660, 660,
+ 660, 660, 664, 665, 666, 664, 664, 664, 664, 664,
+ 664, 664, 667, 101, 476, 476, 668, 668, 668, 668,
+ 668, 735, 735, 735, 735, 735, 735, 735, 735, 735,
+ 735, 470, 741, 343, 742, 742, 742, 742, 742, 742,
+ 668, 668, 668, 668, 668, 668, 813, 279, 660, 660,
+ 660, 660, 660, 660, 660, 660, 660, 660, 345, 218,
+
+ 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
+ 101, 279, 463, 462, 673, 673, 673, 673, 673, 772,
+ 773, 774, 772, 772, 772, 772, 772, 772, 772, 796,
+ 461, 797, 797, 797, 797, 797, 797, 460, 673, 673,
+ 673, 673, 673, 673, 695, 459, 698, 698, 698, 698,
+ 698, 699, 700, 700, 700, 700, 704, 705, 706, 704,
+ 704, 704, 704, 704, 704, 704, 783, 784, 785, 783,
+ 783, 783, 783, 783, 783, 783, 791, 791, 791, 791,
+ 791, 791, 791, 791, 791, 791, 810, 810, 810, 810,
+ 810, 810, 101, 644, 458, 645, 645, 645, 645, 645,
+
+ 645, 645, 645, 645, 645, 792, 792, 792, 792, 792,
+ 792, 792, 792, 792, 792, 793, 793, 793, 793, 793,
+ 794, 791, 791, 791, 791, 457, 795, 456, 455, 795,
+ 454, 101, 532, 795, 712, 712, 712, 712, 712, 712,
+ 712, 712, 712, 712, 659, 453, 452, 451, 711, 711,
+ 711, 711, 711, 786, 813, 787, 787, 787, 787, 787,
+ 787, 791, 791, 791, 791, 791, 791, 791, 791, 791,
+ 791, 446, 711, 711, 711, 711, 711, 711, 532, 446,
+ 713, 713, 713, 713, 713, 713, 713, 713, 713, 713,
+ 714, 101, 374, 441, 715, 715, 715, 715, 715, 791,
+
+ 791, 791, 791, 791, 791, 791, 791, 791, 791, 440,
+ 434, 433, 432, 431, 430, 429, 428, 427, 715, 715,
+ 715, 715, 715, 715, 719, 720, 721, 719, 719, 719,
+ 719, 719, 719, 719, 426, 408, 343, 279, 722, 722,
+ 722, 722, 722, 804, 805, 806, 804, 804, 804, 804,
+ 804, 804, 804, 404, 279, 125, 807, 807, 807, 807,
+ 807, 807, 722, 722, 722, 722, 722, 722, 813, 398,
+ 715, 715, 715, 715, 715, 715, 715, 715, 715, 715,
+ 218, 725, 725, 725, 725, 725, 726, 723, 723, 723,
+ 723, 741, 101, 742, 742, 742, 742, 742, 742, 742,
+
+ 742, 742, 742, 741, 397, 743, 743, 743, 743, 743,
+ 743, 743, 743, 743, 743, 741, 396, 744, 744, 744,
+ 744, 744, 745, 742, 742, 742, 742, 746, 393, 749,
+ 749, 749, 749, 749, 750, 747, 747, 747, 747, 532,
+ 392, 753, 753, 753, 753, 753, 753, 753, 753, 753,
+ 753, 714, 391, 390, 389, 752, 752, 752, 752, 752,
+ 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
+ 388, 315, 315, 315, 374, 376, 374, 375, 374, 752,
+ 752, 752, 752, 752, 752, 532, 368, 754, 754, 754,
+ 754, 754, 754, 754, 754, 754, 754, 367, 366, 365,
+
+ 364, 755, 755, 755, 755, 755, 804, 804, 804, 804,
+ 804, 804, 804, 804, 804, 804, 363, 362, 359, 119,
+ 279, 343, 279, 125, 105, 755, 755, 755, 755, 755,
+ 755, 763, 333, 766, 766, 766, 766, 766, 767, 764,
+ 764, 764, 764, 100, 329, 769, 770, 771, 769, 769,
+ 769, 769, 769, 769, 769, 741, 328, 742, 742, 742,
+ 742, 742, 742, 742, 742, 742, 742, 741, 327, 742,
+ 742, 742, 742, 742, 742, 742, 742, 742, 742, 532,
+ 326, 777, 777, 777, 777, 777, 777, 777, 777, 777,
+ 777, 786, 325, 787, 787, 787, 787, 787, 787, 787,
+
+ 787, 787, 787, 786, 324, 788, 788, 788, 788, 788,
+ 788, 788, 788, 788, 788, 786, 323, 789, 789, 789,
+ 789, 789, 790, 787, 787, 787, 787, 796, 322, 799,
+ 799, 799, 799, 799, 800, 797, 797, 797, 797, 100,
+ 191, 801, 802, 803, 801, 801, 801, 801, 801, 801,
+ 801, 786, 315, 787, 787, 787, 787, 787, 787, 787,
+ 787, 787, 787, 786, 315, 787, 787, 787, 787, 787,
+ 787, 787, 787, 787, 787, 807, 807, 807, 807, 807,
+ 807, 807, 807, 807, 807, 811, 811, 811, 811, 811,
+ 812, 810, 810, 810, 810, 810, 810, 810, 810, 810,
+
+ 810, 810, 810, 810, 810, 250, 312, 309, 308, 307,
+ 306, 101, 801, 801, 801, 801, 801, 801, 801, 801,
+ 801, 801, 305, 300, 299, 298, 297, 296, 295, 294,
+ 293, 292, 291, 290, 289, 125, 117, 105, 105, 267,
+ 266, 265, 264, 259, 258, 257, 813, 188, 101, 808,
+ 808, 808, 808, 808, 809, 807, 807, 807, 807, 250,
+ 176, 177, 171, 171, 163, 248, 157, 157, 241, 240,
+ 239, 238, 237, 234, 233, 232, 231, 230, 225, 224,
+ 223, 222, 125, 100, 125, 101, 807, 807, 807, 807,
+ 807, 807, 807, 807, 807, 807, 190, 113, 210, 105,
+
+ 103, 102, 101, 205, 204, 203, 202, 198, 177, 171,
+ 163, 133, 131, 157, 156, 153, 151, 137, 136, 135,
+ 132, 127, 101, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+
+ 77, 77, 77, 77, 77, 77, 77, 100, 125, 113,
+ 103, 102, 101, 813, 100, 813, 100, 100, 100, 100,
+ 813, 813, 100, 100, 100, 100, 100, 100, 104, 104,
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 108,
+ 813, 813, 813, 813, 108, 813, 108, 813, 108, 108,
+ 108, 108, 108, 813, 108, 108, 108, 108, 108, 108,
+ 112, 813, 813, 813, 813, 813, 813, 112, 813, 112,
+ 112, 112, 112, 813, 813, 112, 112, 112, 112, 112,
+ 112, 114, 813, 813, 114, 114, 813, 114, 114, 813,
+
+ 114, 114, 114, 114, 813, 813, 114, 114, 114, 114,
+ 114, 114, 124, 124, 813, 124, 813, 813, 813, 124,
+ 158, 813, 813, 158, 158, 813, 158, 158, 813, 158,
+ 158, 158, 158, 813, 813, 158, 158, 158, 158, 158,
+ 158, 162, 813, 813, 162, 162, 813, 162, 162, 813,
+ 162, 162, 162, 162, 813, 162, 162, 162, 813, 162,
+ 162, 162, 170, 813, 813, 170, 813, 813, 170, 170,
+ 813, 170, 170, 170, 170, 170, 813, 170, 170, 170,
+ 170, 170, 170, 174, 174, 174, 174, 174, 174, 174,
+ 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
+
+ 174, 174, 174, 174, 176, 176, 813, 176, 813, 176,
+ 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
+ 176, 176, 176, 176, 176, 182, 813, 813, 813, 813,
+ 182, 813, 182, 813, 182, 182, 182, 182, 182, 813,
+ 182, 182, 182, 182, 182, 182, 186, 813, 813, 813,
+ 813, 813, 813, 186, 813, 186, 186, 186, 186, 813,
+ 186, 186, 186, 186, 186, 186, 186, 189, 813, 813,
+ 189, 189, 813, 189, 189, 813, 189, 189, 189, 189,
+ 813, 189, 189, 189, 189, 189, 189, 189, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 209,
+ 209, 813, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 115, 813, 813, 115, 115, 813, 115, 115, 813, 115,
+ 115, 115, 115, 813, 813, 115, 115, 115, 115, 115,
+ 115, 124, 124, 813, 124, 813, 813, 813, 124, 217,
+ 217, 813, 217, 813, 813, 813, 217, 219, 219, 219,
+ 813, 219, 813, 813, 813, 219, 158, 813, 813, 158,
+ 158, 813, 158, 158, 813, 158, 158, 158, 158, 813,
+ 813, 158, 158, 158, 158, 158, 158, 159, 813, 813,
+
+ 159, 159, 813, 159, 159, 813, 159, 159, 159, 159,
+ 813, 813, 159, 159, 159, 159, 159, 159, 162, 813,
+ 813, 162, 162, 813, 162, 162, 813, 162, 162, 162,
+ 162, 813, 162, 162, 162, 813, 162, 162, 162, 170,
+ 813, 813, 170, 813, 813, 170, 170, 813, 170, 170,
+ 170, 170, 170, 813, 170, 170, 170, 170, 170, 170,
+ 185, 813, 813, 813, 813, 813, 813, 185, 813, 185,
+ 185, 185, 185, 813, 813, 185, 185, 185, 185, 185,
+ 185, 186, 813, 813, 813, 813, 813, 813, 186, 813,
+ 186, 186, 186, 186, 813, 186, 186, 186, 186, 186,
+
+ 186, 186, 189, 813, 813, 189, 189, 813, 189, 189,
+ 813, 189, 189, 189, 189, 813, 189, 189, 189, 189,
+ 189, 189, 189, 200, 813, 813, 200, 200, 813, 200,
+ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
+ 268, 275, 275, 813, 275, 813, 813, 813, 275, 281,
+ 281, 281, 813, 281, 813, 813, 813, 281, 337, 337,
+ 813, 337, 813, 813, 813, 337, 338, 338, 813, 338,
+ 813, 813, 813, 338, 342, 342, 813, 342, 813, 813,
+ 813, 342, 344, 344, 344, 813, 344, 813, 813, 813,
+
+ 344, 200, 813, 813, 200, 200, 813, 200, 404, 404,
+ 813, 404, 813, 813, 813, 404, 406, 406, 813, 406,
+ 813, 813, 813, 406, 407, 407, 813, 407, 813, 813,
+ 813, 407, 409, 409, 409, 813, 409, 813, 813, 813,
+ 409, 413, 413, 413, 413, 813, 413, 813, 813, 813,
+ 413, 467, 467, 813, 467, 813, 813, 813, 467, 468,
+ 468, 813, 468, 813, 813, 813, 468, 469, 469, 813,
+ 469, 813, 813, 813, 469, 481, 481, 481, 813, 481,
+ 813, 813, 813, 481, 482, 482, 482, 482, 813, 482,
+ 813, 813, 813, 482, 208, 208, 208, 208, 208, 208,
+
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 530, 530, 813, 530, 813,
+ 813, 813, 530, 531, 531, 813, 531, 813, 813, 813,
+ 531, 547, 547, 547, 813, 547, 813, 813, 813, 547,
+ 548, 548, 548, 548, 813, 548, 813, 813, 813, 548,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 200, 813, 813, 200, 200, 813, 200, 187, 813,
+ 813, 813, 187, 187, 813, 187, 187, 187, 813, 813,
+ 187, 187, 590, 590, 813, 590, 813, 813, 813, 590,
+
+ 594, 813, 594, 594, 813, 594, 813, 813, 813, 594,
+ 612, 612, 612, 813, 612, 813, 813, 813, 612, 613,
+ 613, 613, 613, 813, 613, 813, 813, 813, 613, 559,
+ 559, 813, 813, 559, 813, 813, 813, 559, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 200,
+ 813, 813, 200, 200, 813, 200, 187, 813, 813, 813,
+ 187, 187, 813, 187, 187, 187, 813, 813, 187, 187,
+ 655, 655, 813, 655, 813, 813, 813, 655, 656, 813,
+ 656, 656, 813, 656, 813, 813, 813, 656, 672, 672,
+
+ 672, 813, 672, 813, 813, 813, 672, 673, 673, 673,
+ 813, 813, 673, 813, 813, 813, 673, 682, 682, 682,
+ 682, 682, 682, 682, 682, 682, 682, 682, 682, 682,
+ 682, 682, 682, 682, 682, 682, 682, 682, 687, 687,
+ 813, 687, 687, 687, 813, 687, 813, 687, 687, 687,
+ 687, 813, 813, 687, 687, 687, 687, 687, 687, 693,
+ 693, 813, 693, 693, 693, 813, 693, 813, 693, 693,
+ 693, 693, 813, 813, 693, 693, 693, 693, 693, 693,
+ 200, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 200, 200, 813, 200, 200, 813, 200, 710, 710,
+
+ 813, 710, 813, 813, 813, 710, 711, 813, 711, 711,
+ 813, 711, 813, 813, 813, 711, 727, 727, 813, 813,
+ 727, 813, 813, 813, 727, 693, 813, 813, 813, 813,
+ 813, 813, 693, 813, 693, 693, 693, 693, 813, 813,
+ 693, 693, 693, 693, 693, 693, 751, 751, 813, 751,
+ 813, 813, 813, 751, 752, 813, 752, 752, 813, 752,
+ 813, 813, 813, 752, 775, 775, 813, 775, 813, 813,
+ 813, 775, 776, 813, 776, 813, 813, 776, 813, 813,
+ 813, 776, 780, 780, 780, 780, 780, 780, 780, 780,
+ 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
+
+ 780, 780, 780, 15, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813
} ;
-static yyconst short int yy_chk[3732] =
+static yyconst short int yy_chk[5675] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 44, 3, 34,
- 2, 103, 3, 4, 47, 20, 126, 4, 3, 34,
- 103, 3, 52, 4, 44, 48, 4, 11, 11, 11,
- 11, 126, 52, 20, 2, 2, 56, 47, 2, 74,
-
- 5, 5, 5, 48, 5, 2, 50, 3, 2, 3,
- 5, 603, 4, 56, 4, 6, 6, 6, 20, 6,
- 64, 64, 5, 5, 75, 6, 12, 12, 12, 12,
- 3, 196, 68, 50, 11, 4, 70, 6, 6, 25,
- 25, 72, 72, 25, 25, 196, 74, 5, 27, 27,
- 27, 27, 27, 27, 27, 27, 68, 88, 124, 127,
- 70, 25, 6, 7, 7, 7, 45, 7, 598, 75,
- 124, 127, 129, 12, 28, 28, 28, 28, 28, 28,
- 139, 139, 129, 43, 25, 43, 43, 43, 43, 43,
- 43, 43, 43, 194, 45, 45, 77, 77, 45, 77,
-
- 88, 116, 123, 114, 114, 45, 116, 153, 45, 194,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 533, 3, 38, 2, 52, 3, 49, 38, 50,
+ 4, 36, 3, 533, 4, 3, 11, 11, 11, 11,
+ 4, 22, 36, 4, 40, 5, 5, 5, 50, 5,
+
+ 2, 2, 49, 52, 2, 5, 68, 68, 40, 3,
+ 807, 22, 2, 3, 3, 2, 3, 4, 54, 5,
+ 5, 4, 4, 148, 4, 6, 6, 6, 54, 6,
+ 799, 12, 12, 12, 12, 6, 11, 22, 3, 76,
+ 76, 72, 46, 27, 27, 5, 4, 27, 27, 6,
+ 6, 46, 47, 78, 9, 9, 9, 9, 9, 74,
+ 46, 164, 164, 9, 9, 9, 72, 27, 30, 30,
+ 30, 30, 30, 30, 79, 6, 7, 7, 7, 9,
+ 7, 12, 47, 47, 74, 148, 47, 60, 141, 81,
+ 81, 27, 81, 141, 47, 91, 60, 47, 10, 10,
+
+ 10, 10, 10, 78, 9, 60, 91, 10, 10, 10,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 161, 798, 79, 10, 179, 161, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 8, 8,
- 8, 53, 8, 206, 53, 53, 53, 53, 53, 53,
- 53, 53, 84, 84, 84, 84, 84, 84, 84, 84,
- 114, 62, 62, 62, 153, 62, 154, 125, 206, 62,
- 123, 62, 85, 85, 85, 85, 85, 85, 85, 85,
- 143, 143, 202, 62, 62, 8, 8, 8, 8, 8,
+ 7, 7, 7, 7, 7, 8, 8, 8, 10, 8,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 87, 87, 87, 87, 87, 87, 99, 101, 274, 101,
+ 101, 101, 179, 101, 101, 99, 149, 101, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 140, 149,
+ 140, 101, 101, 101, 274, 8, 8, 8, 8, 8,
+
8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 9, 9, 9, 9, 9, 62, 125,
-
- 128, 154, 9, 9, 9, 86, 128, 202, 55, 55,
- 136, 161, 55, 55, 185, 136, 9, 101, 101, 101,
- 101, 101, 101, 86, 155, 155, 198, 185, 87, 587,
- 55, 87, 87, 87, 87, 87, 87, 87, 87, 198,
- 9, 10, 10, 10, 10, 10, 584, 171, 86, 284,
- 10, 10, 10, 55, 161, 89, 171, 89, 89, 222,
- 582, 89, 89, 222, 10, 89, 213, 95, 95, 95,
- 95, 95, 95, 95, 95, 213, 92, 92, 89, 89,
- 92, 92, 192, 195, 284, 195, 510, 192, 10, 19,
- 99, 99, 99, 99, 99, 99, 99, 99, 92, 19,
-
- 95, 221, 19, 19, 19, 19, 19, 19, 19, 19,
- 26, 191, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 92, 237, 221, 26, 26, 26, 26, 26, 100,
- 100, 100, 100, 100, 100, 100, 100, 131, 131, 131,
- 131, 131, 131, 131, 131, 26, 510, 26, 26, 26,
- 26, 26, 26, 32, 146, 238, 238, 146, 146, 32,
- 568, 191, 32, 32, 146, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 146, 237, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 210, 210,
- 210, 35, 35, 35, 35, 35, 109, 231, 240, 241,
- 35, 109, 252, 231, 109, 241, 109, 117, 567, 150,
- 150, 252, 239, 240, 35, 35, 35, 35, 35, 35,
- 42, 42, 42, 42, 42, 293, 42, 42, 133, 133,
- 42, 265, 133, 133, 293, 117, 117, 239, 281, 117,
- 388, 388, 42, 42, 42, 46, 117, 163, 281, 117,
- 133, 163, 323, 265, 239, 46, 150, 163, 46, 46,
-
- 46, 46, 46, 46, 46, 46, 275, 282, 323, 163,
- 163, 275, 282, 133, 142, 142, 142, 142, 142, 142,
- 142, 142, 159, 159, 159, 159, 159, 159, 159, 159,
- 160, 160, 160, 160, 160, 160, 160, 160, 438, 438,
- 46, 63, 201, 201, 201, 201, 201, 201, 201, 201,
- 279, 63, 565, 280, 63, 63, 63, 63, 63, 63,
- 63, 63, 79, 564, 79, 79, 79, 297, 79, 79,
- 254, 254, 79, 197, 280, 201, 297, 197, 256, 256,
- 254, 321, 322, 197, 79, 79, 79, 91, 256, 91,
- 91, 91, 322, 91, 91, 197, 197, 91, 209, 209,
-
- 209, 209, 209, 209, 209, 209, 209, 298, 298, 91,
- 91, 91, 94, 279, 94, 94, 94, 298, 94, 94,
- 313, 383, 94, 162, 313, 162, 162, 452, 452, 162,
- 162, 383, 321, 162, 94, 94, 94, 96, 96, 96,
- 96, 96, 96, 96, 96, 162, 162, 162, 312, 96,
- 96, 96, 96, 96, 205, 368, 205, 205, 205, 205,
- 205, 205, 214, 214, 214, 214, 214, 214, 214, 214,
- 312, 368, 96, 96, 96, 96, 96, 96, 104, 104,
- 104, 104, 104, 104, 104, 104, 104, 316, 371, 205,
- 104, 104, 104, 104, 104, 216, 216, 216, 216, 216,
-
- 216, 216, 216, 217, 217, 217, 217, 217, 217, 316,
- 299, 299, 373, 104, 104, 104, 104, 104, 104, 135,
- 299, 135, 135, 135, 560, 135, 135, 373, 219, 135,
- 219, 219, 219, 219, 219, 219, 219, 219, 453, 453,
- 371, 135, 135, 135, 164, 549, 164, 164, 164, 164,
- 164, 164, 164, 164, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 253, 253, 253, 253, 253, 253, 253,
- 253, 255, 255, 255, 255, 255, 255, 255, 255, 164,
- 165, 547, 165, 165, 165, 165, 165, 165, 165, 165,
- 259, 259, 259, 259, 259, 259, 259, 259, 419, 419,
-
- 259, 261, 261, 261, 261, 261, 261, 261, 261, 262,
- 262, 262, 262, 262, 262, 165, 166, 543, 166, 166,
- 166, 166, 166, 166, 166, 166, 264, 317, 264, 264,
- 264, 264, 264, 264, 264, 264, 301, 301, 283, 283,
- 283, 283, 283, 283, 283, 283, 301, 456, 456, 317,
- 419, 166, 167, 318, 167, 167, 167, 167, 167, 167,
- 167, 167, 318, 324, 342, 343, 167, 167, 167, 167,
- 167, 283, 324, 342, 343, 344, 344, 287, 372, 287,
- 287, 287, 287, 287, 287, 344, 420, 372, 420, 167,
- 167, 167, 167, 167, 167, 170, 170, 170, 170, 170,
-
- 170, 170, 170, 170, 345, 345, 539, 170, 170, 170,
- 170, 170, 287, 294, 345, 294, 294, 294, 294, 294,
- 294, 294, 294, 307, 307, 307, 307, 307, 307, 527,
- 170, 170, 170, 170, 170, 170, 172, 172, 172, 172,
- 172, 172, 172, 172, 172, 172, 491, 491, 526, 172,
- 172, 172, 172, 172, 295, 376, 295, 295, 295, 295,
- 295, 295, 295, 295, 300, 300, 300, 300, 300, 300,
- 300, 300, 172, 172, 172, 172, 172, 172, 173, 173,
- 173, 173, 173, 173, 173, 173, 347, 347, 511, 376,
- 173, 173, 173, 173, 173, 296, 347, 296, 296, 296,
-
- 296, 296, 296, 296, 296, 306, 306, 306, 306, 306,
- 306, 306, 306, 173, 173, 173, 173, 173, 173, 203,
- 509, 203, 203, 203, 203, 203, 203, 203, 203, 304,
- 304, 304, 304, 304, 304, 304, 304, 508, 309, 304,
- 309, 309, 309, 309, 309, 309, 309, 309, 334, 334,
- 334, 334, 334, 334, 203, 204, 507, 204, 204, 204,
- 204, 204, 204, 204, 204, 331, 331, 331, 331, 331,
- 331, 331, 331, 333, 333, 333, 333, 333, 333, 333,
- 333, 337, 337, 337, 337, 337, 337, 337, 337, 358,
- 204, 215, 215, 215, 215, 215, 215, 215, 215, 215,
-
- 215, 215, 502, 502, 506, 215, 215, 215, 215, 215,
- 336, 358, 336, 336, 336, 336, 336, 336, 336, 336,
- 341, 501, 341, 341, 341, 341, 341, 341, 215, 215,
- 215, 215, 215, 215, 218, 218, 218, 218, 218, 218,
- 218, 218, 218, 218, 397, 534, 534, 218, 218, 218,
- 218, 218, 339, 397, 339, 339, 339, 339, 339, 339,
- 339, 339, 346, 346, 346, 346, 346, 346, 346, 346,
- 218, 218, 218, 218, 218, 218, 242, 484, 242, 242,
- 242, 242, 242, 242, 242, 242, 340, 364, 340, 340,
- 340, 340, 340, 340, 340, 340, 350, 350, 350, 350,
-
- 350, 350, 350, 350, 398, 669, 350, 551, 551, 364,
- 669, 242, 243, 398, 243, 243, 243, 243, 243, 243,
- 243, 243, 352, 352, 352, 352, 352, 352, 352, 352,
- 353, 353, 353, 353, 353, 353, 355, 366, 355, 355,
- 355, 355, 355, 355, 355, 355, 374, 243, 244, 449,
- 244, 244, 244, 244, 244, 244, 244, 244, 449, 366,
- 414, 385, 374, 382, 382, 382, 382, 382, 382, 382,
- 382, 385, 450, 375, 375, 375, 375, 375, 375, 375,
- 375, 450, 414, 244, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 260, 260, 260, 260, 260,
-
- 260, 260, 260, 260, 260, 260, 375, 415, 457, 260,
- 260, 260, 260, 260, 379, 379, 379, 379, 379, 379,
- 379, 384, 384, 384, 384, 384, 384, 384, 384, 415,
- 457, 483, 260, 260, 260, 260, 260, 260, 263, 263,
- 263, 263, 263, 263, 263, 263, 263, 263, 379, 571,
- 571, 263, 263, 263, 263, 263, 390, 390, 390, 390,
- 390, 390, 390, 390, 391, 391, 391, 391, 391, 391,
- 479, 399, 399, 465, 263, 263, 263, 263, 263, 263,
- 285, 399, 285, 285, 285, 285, 285, 285, 285, 285,
- 393, 432, 393, 393, 393, 393, 393, 393, 393, 393,
-
- 394, 432, 394, 394, 394, 394, 394, 394, 394, 394,
- 460, 473, 619, 619, 468, 285, 286, 433, 286, 286,
- 286, 286, 286, 286, 286, 286, 395, 433, 395, 395,
- 395, 395, 395, 395, 395, 395, 396, 435, 396, 396,
- 396, 396, 396, 396, 396, 396, 473, 435, 461, 459,
- 458, 286, 292, 292, 292, 292, 292, 292, 292, 292,
- 292, 400, 400, 445, 292, 292, 292, 292, 292, 468,
- 461, 400, 401, 401, 401, 401, 401, 401, 401, 401,
- 408, 408, 408, 408, 408, 408, 431, 292, 292, 292,
- 292, 292, 292, 302, 302, 302, 302, 302, 302, 302,
-
- 302, 302, 302, 302, 305, 305, 305, 305, 305, 305,
- 305, 305, 305, 305, 305, 402, 402, 463, 305, 305,
- 305, 305, 305, 469, 477, 402, 405, 405, 405, 405,
- 405, 405, 405, 405, 427, 503, 405, 422, 469, 463,
- 418, 305, 305, 305, 305, 305, 305, 308, 308, 308,
- 308, 308, 308, 308, 308, 308, 308, 503, 417, 477,
- 308, 308, 308, 308, 308, 407, 407, 407, 407, 407,
- 407, 407, 407, 409, 416, 409, 409, 409, 409, 409,
- 409, 409, 409, 308, 308, 308, 308, 308, 308, 325,
- 325, 325, 325, 325, 325, 325, 325, 325, 421, 428,
-
- 505, 428, 428, 428, 428, 428, 428, 428, 428, 434,
- 434, 434, 434, 434, 434, 434, 434, 413, 421, 412,
- 421, 421, 505, 325, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 429, 466, 429, 429, 429, 429, 429,
- 429, 429, 429, 421, 430, 485, 430, 430, 430, 430,
- 430, 430, 430, 430, 466, 485, 466, 466, 326, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 440, 440,
- 440, 440, 440, 440, 440, 440, 441, 441, 441, 441,
- 441, 441, 443, 500, 443, 443, 443, 443, 443, 443,
- 443, 443, 500, 327, 332, 486, 332, 332, 332, 332,
-
- 332, 332, 332, 332, 332, 486, 411, 410, 332, 332,
- 332, 332, 332, 444, 444, 444, 444, 444, 444, 444,
- 444, 446, 381, 446, 446, 446, 446, 446, 446, 446,
- 446, 332, 332, 332, 332, 332, 332, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 380, 370, 369, 335,
- 335, 335, 335, 335, 447, 488, 447, 447, 447, 447,
- 447, 447, 447, 447, 448, 488, 448, 448, 448, 448,
- 448, 448, 335, 335, 335, 335, 335, 335, 348, 348,
- 348, 348, 348, 348, 348, 348, 348, 348, 348, 351,
- 351, 351, 351, 351, 351, 351, 351, 351, 351, 351,
-
- 451, 451, 528, 351, 351, 351, 351, 351, 467, 467,
- 451, 470, 528, 470, 470, 470, 471, 363, 471, 471,
- 471, 467, 544, 362, 555, 589, 351, 351, 351, 351,
- 351, 351, 354, 354, 354, 354, 354, 354, 354, 354,
- 354, 361, 546, 572, 544, 354, 354, 354, 354, 354,
- 472, 472, 472, 472, 472, 472, 472, 472, 470, 555,
- 589, 360, 357, 471, 546, 572, 356, 338, 354, 354,
- 354, 354, 354, 354, 377, 377, 377, 377, 377, 377,
- 377, 377, 377, 472, 476, 330, 476, 476, 476, 476,
- 476, 476, 478, 478, 478, 478, 478, 478, 478, 478,
-
- 482, 329, 482, 482, 482, 482, 482, 482, 377, 378,
- 378, 378, 378, 378, 378, 378, 378, 378, 480, 476,
- 480, 480, 480, 480, 480, 480, 480, 480, 481, 529,
- 481, 481, 481, 481, 481, 481, 481, 481, 328, 529,
- 320, 319, 315, 378, 386, 574, 386, 386, 386, 386,
- 386, 386, 386, 386, 386, 389, 531, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 531, 574, 585, 389,
- 389, 389, 389, 389, 487, 487, 487, 487, 487, 487,
- 487, 487, 493, 493, 493, 493, 493, 493, 493, 493,
- 585, 314, 389, 389, 389, 389, 389, 389, 392, 392,
-
- 392, 392, 392, 392, 392, 392, 392, 311, 310, 291,
- 392, 392, 392, 392, 392, 494, 494, 494, 494, 494,
- 494, 496, 566, 496, 496, 496, 496, 496, 496, 496,
- 496, 290, 566, 392, 392, 392, 392, 392, 392, 403,
- 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
- 406, 406, 406, 406, 406, 406, 406, 406, 406, 406,
- 289, 288, 278, 277, 406, 406, 406, 406, 406, 497,
- 497, 497, 497, 497, 497, 497, 497, 497, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 406, 406, 406,
- 406, 406, 406, 423, 276, 423, 423, 423, 423, 423,
-
- 423, 423, 423, 499, 499, 499, 499, 499, 499, 499,
- 499, 499, 512, 274, 512, 512, 512, 575, 575, 513,
- 273, 513, 513, 513, 272, 271, 270, 269, 423, 424,
- 575, 424, 424, 424, 424, 424, 424, 424, 424, 514,
- 268, 514, 514, 514, 515, 267, 515, 515, 515, 251,
- 518, 250, 518, 518, 518, 249, 248, 246, 245, 512,
- 236, 235, 234, 233, 424, 425, 513, 425, 425, 425,
- 425, 425, 425, 425, 425, 516, 232, 229, 516, 516,
- 516, 516, 516, 516, 516, 516, 514, 227, 226, 225,
- 224, 515, 223, 220, 212, 517, 517, 518, 211, 517,
-
- 425, 426, 208, 426, 426, 426, 426, 426, 426, 426,
- 426, 517, 517, 517, 519, 519, 207, 523, 519, 523,
- 523, 523, 523, 523, 523, 523, 523, 200, 199, 193,
- 519, 519, 519, 190, 189, 188, 426, 436, 187, 436,
- 436, 436, 436, 436, 436, 436, 436, 436, 439, 186,
- 439, 439, 439, 439, 439, 439, 439, 439, 439, 184,
- 183, 182, 439, 439, 439, 439, 439, 524, 181, 524,
- 524, 524, 524, 524, 524, 524, 524, 530, 530, 530,
- 530, 530, 530, 530, 530, 439, 439, 439, 439, 439,
- 439, 442, 442, 442, 442, 442, 442, 442, 442, 442,
-
- 180, 179, 178, 442, 442, 442, 442, 442, 525, 177,
- 525, 525, 525, 525, 525, 525, 525, 525, 536, 536,
- 536, 536, 536, 536, 536, 536, 442, 442, 442, 442,
- 442, 442, 454, 454, 454, 454, 454, 454, 454, 454,
- 454, 454, 474, 176, 474, 474, 474, 474, 474, 474,
- 474, 474, 537, 537, 537, 537, 537, 537, 538, 175,
- 538, 538, 538, 538, 538, 538, 538, 538, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 474, 475, 169,
- 475, 475, 475, 475, 475, 475, 475, 475, 541, 541,
- 541, 541, 541, 541, 541, 541, 541, 542, 542, 542,
-
- 542, 542, 542, 542, 552, 552, 552, 552, 552, 552,
- 552, 552, 168, 475, 489, 158, 489, 489, 489, 489,
- 489, 489, 489, 489, 489, 492, 157, 492, 492, 492,
- 492, 492, 492, 492, 492, 492, 156, 152, 151, 492,
- 492, 492, 492, 492, 553, 553, 553, 553, 553, 553,
- 553, 553, 554, 554, 554, 554, 554, 554, 554, 554,
- 149, 145, 492, 492, 492, 492, 492, 492, 495, 495,
- 495, 495, 495, 495, 495, 495, 138, 134, 132, 130,
- 495, 495, 495, 495, 495, 554, 558, 122, 558, 558,
- 558, 558, 558, 558, 559, 559, 559, 559, 559, 559,
-
- 559, 559, 121, 495, 495, 495, 495, 495, 495, 520,
- 120, 520, 520, 520, 520, 520, 520, 520, 520, 119,
- 561, 558, 561, 561, 561, 561, 561, 561, 561, 561,
- 562, 118, 562, 562, 562, 562, 562, 562, 562, 562,
- 113, 112, 111, 110, 520, 521, 108, 521, 521, 521,
- 521, 521, 521, 521, 521, 563, 107, 563, 563, 563,
- 563, 563, 563, 569, 106, 569, 569, 569, 569, 569,
- 569, 569, 569, 596, 596, 596, 596, 596, 596, 102,
- 521, 522, 98, 522, 522, 522, 522, 522, 522, 522,
- 522, 579, 579, 579, 579, 579, 579, 579, 579, 580,
-
- 580, 580, 580, 580, 580, 580, 580, 581, 581, 581,
- 581, 581, 581, 581, 581, 97, 522, 532, 93, 532,
- 532, 532, 532, 532, 532, 532, 532, 532, 535, 90,
- 535, 535, 535, 535, 535, 535, 535, 535, 82, 81,
- 80, 78, 535, 535, 535, 535, 535, 73, 588, 588,
- 588, 588, 588, 588, 588, 588, 592, 66, 592, 592,
- 592, 592, 592, 592, 59, 535, 535, 535, 535, 535,
- 535, 556, 54, 556, 556, 556, 556, 556, 556, 556,
- 556, 588, 594, 594, 594, 594, 594, 594, 594, 594,
- 51, 592, 595, 595, 595, 595, 595, 595, 595, 595,
-
- 49, 41, 40, 39, 38, 37, 556, 557, 36, 557,
- 557, 557, 557, 557, 557, 557, 557, 33, 29, 23,
- 600, 600, 600, 600, 600, 600, 600, 600, 601, 601,
- 601, 601, 601, 601, 601, 601, 17, 15, 14, 13,
- 0, 0, 557, 576, 0, 576, 576, 576, 576, 576,
- 576, 576, 576, 600, 0, 0, 0, 0, 0, 0,
- 0, 601, 602, 602, 602, 602, 602, 602, 602, 602,
- 604, 604, 604, 604, 604, 604, 604, 604, 576, 577,
- 0, 577, 577, 577, 577, 577, 577, 577, 577, 0,
- 0, 0, 0, 0, 0, 602, 605, 605, 605, 605,
-
- 605, 605, 0, 604, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 577, 578, 0, 578, 578, 578,
- 578, 578, 578, 578, 578, 0, 0, 0, 0, 605,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 578, 590, 0, 590, 590, 590, 590, 590, 590, 590,
- 590, 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, 590, 591, 0, 591,
- 591, 591, 591, 591, 591, 591, 591, 0, 0, 0,
+ 8, 8, 8, 8, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 21, 125, 153, 797, 82, 168,
+ 168, 270, 153, 178, 21, 784, 125, 21, 21, 21,
+
+ 21, 21, 21, 21, 21, 21, 21, 28, 82, 28,
+ 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+ 152, 180, 180, 28, 28, 28, 28, 28, 151, 270,
+ 289, 57, 57, 152, 82, 57, 57, 123, 123, 123,
+ 123, 123, 123, 178, 151, 28, 154, 28, 28, 28,
+ 28, 28, 28, 34, 289, 57, 154, 500, 246, 34,
+ 246, 500, 34, 34, 313, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 57,
+ 313, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+ 34, 34, 34, 37, 37, 37, 37, 37, 37, 37,
+ 37, 37, 37, 37, 219, 783, 242, 37, 37, 37,
+ 37, 37, 245, 150, 236, 219, 37, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 247, 236, 245,
+ 303, 37, 37, 37, 37, 37, 37, 44, 44, 44,
+ 44, 44, 247, 44, 44, 311, 311, 44, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 150, 242,
+ 108, 44, 44, 44, 45, 303, 45, 45, 45, 45,
+
+ 45, 45, 45, 45, 45, 45, 48, 66, 66, 66,
+ 108, 66, 304, 110, 370, 66, 48, 66, 304, 48,
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 132,
+ 243, 66, 66, 110, 132, 243, 108, 281, 132, 171,
+ 132, 83, 171, 171, 370, 138, 138, 83, 281, 171,
+ 83, 114, 114, 83, 83, 114, 114, 66, 182, 110,
+ 780, 302, 175, 175, 171, 48, 67, 83, 291, 83,
+ 183, 235, 235, 291, 235, 114, 67, 249, 182, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67, 67, 302,
+ 183, 249, 83, 83, 84, 138, 777, 84, 84, 114,
+
+ 84, 84, 84, 84, 182, 235, 84, 84, 111, 775,
+ 111, 111, 175, 314, 111, 111, 183, 369, 111, 314,
+ 84, 84, 84, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 111, 111, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 84, 84, 85, 310, 369,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 322, 357, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 322, 357,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 591, 607, 607, 607, 607, 607, 607, 607,
- 607, 607, 607, 607, 607, 607, 607, 607, 607, 608,
- 608, 608, 608, 608, 608, 608, 608, 608, 608, 608,
- 608, 608, 608, 608, 608, 609, 609, 609, 609, 609,
- 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
- 609, 610, 610, 610, 610, 610, 610, 610, 610, 610,
- 610, 610, 610, 610, 610, 610, 610, 611, 0, 0,
- 0, 0, 0, 0, 0, 611, 611, 611, 0, 0,
-
- 611, 611, 611, 612, 612, 612, 612, 612, 612, 612,
- 612, 612, 612, 612, 612, 612, 612, 612, 612, 613,
- 0, 0, 0, 0, 613, 0, 0, 613, 613, 613,
- 613, 0, 613, 613, 613, 614, 0, 0, 0, 0,
- 0, 0, 0, 614, 614, 614, 0, 0, 614, 614,
- 614, 615, 0, 0, 615, 615, 0, 615, 0, 615,
- 615, 615, 0, 0, 615, 615, 615, 616, 616, 0,
- 0, 0, 616, 617, 0, 0, 617, 617, 0, 617,
- 0, 617, 617, 617, 0, 0, 617, 617, 617, 618,
- 0, 0, 618, 618, 0, 618, 0, 618, 618, 618,
-
- 0, 618, 0, 618, 618, 620, 0, 0, 620, 0,
- 0, 620, 0, 620, 620, 620, 620, 0, 620, 620,
- 620, 621, 621, 621, 621, 621, 621, 621, 621, 621,
- 621, 621, 621, 621, 621, 621, 621, 622, 622, 0,
- 622, 0, 622, 622, 622, 622, 622, 622, 622, 622,
- 622, 622, 622, 623, 623, 623, 623, 623, 623, 623,
- 623, 623, 623, 623, 623, 623, 623, 623, 623, 624,
- 624, 0, 624, 624, 624, 624, 624, 624, 624, 624,
- 624, 624, 624, 624, 624, 625, 0, 0, 0, 0,
- 625, 0, 0, 625, 625, 625, 0, 0, 625, 625,
-
- 625, 626, 0, 0, 626, 626, 0, 626, 0, 626,
- 626, 626, 0, 0, 626, 626, 626, 627, 627, 0,
- 0, 0, 627, 628, 628, 628, 0, 0, 0, 628,
- 629, 0, 0, 629, 629, 0, 629, 0, 629, 629,
- 629, 0, 0, 629, 629, 629, 630, 630, 630, 630,
- 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
- 630, 630, 631, 631, 0, 0, 0, 631, 632, 632,
- 632, 0, 0, 0, 632, 633, 633, 0, 0, 0,
- 633, 634, 634, 0, 0, 0, 634, 635, 635, 0,
- 0, 0, 635, 636, 636, 636, 0, 0, 0, 636,
-
- 637, 637, 0, 0, 0, 637, 638, 638, 0, 0,
- 0, 638, 639, 639, 0, 0, 0, 639, 640, 640,
- 640, 0, 0, 0, 640, 641, 641, 641, 641, 0,
- 0, 0, 641, 642, 642, 0, 0, 0, 642, 643,
- 643, 0, 0, 0, 643, 644, 644, 0, 0, 0,
- 644, 645, 645, 645, 0, 0, 0, 645, 646, 646,
- 646, 646, 0, 0, 0, 646, 647, 647, 0, 0,
- 0, 647, 648, 648, 0, 0, 0, 648, 649, 649,
- 649, 0, 0, 0, 649, 650, 650, 650, 650, 0,
- 0, 0, 650, 651, 651, 0, 0, 0, 651, 652,
-
- 0, 652, 652, 0, 0, 0, 652, 653, 653, 653,
- 0, 0, 0, 653, 654, 654, 654, 654, 0, 0,
- 0, 654, 655, 655, 0, 0, 0, 655, 656, 0,
- 656, 656, 0, 0, 0, 656, 657, 657, 657, 0,
- 0, 0, 657, 658, 658, 658, 0, 0, 0, 0,
- 658, 659, 659, 0, 659, 659, 659, 0, 0, 659,
- 659, 659, 0, 0, 659, 659, 659, 660, 660, 0,
- 660, 660, 660, 0, 0, 660, 660, 660, 0, 0,
- 660, 660, 660, 661, 661, 0, 0, 0, 661, 662,
- 0, 662, 662, 0, 0, 0, 662, 663, 663, 0,
-
- 0, 0, 0, 663, 664, 664, 664, 664, 664, 664,
+ 85, 85, 85, 85, 85, 85, 85, 88, 310, 88,
+ 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
+ 278, 278, 278, 88, 88, 88, 88, 88, 266, 266,
+ 113, 266, 113, 113, 113, 330, 113, 113, 330, 371,
+ 113, 196, 196, 196, 196, 196, 196, 88, 88, 88,
+ 88, 88, 88, 89, 113, 113, 113, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 453, 371, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 453, 89, 89, 89, 89, 89,
+
+ 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 92, 92, 92, 92, 92, 92, 92,
+ 92, 92, 92, 92, 377, 444, 378, 92, 92, 92,
+ 92, 92, 203, 344, 158, 158, 92, 203, 158, 158,
+ 323, 203, 444, 203, 344, 323, 301, 142, 378, 301,
+ 457, 92, 92, 92, 92, 92, 92, 97, 158, 97,
+ 97, 97, 97, 97, 97, 97, 97, 97, 97, 116,
+ 766, 116, 116, 116, 457, 116, 116, 142, 142, 116,
+ 301, 142, 158, 214, 214, 214, 214, 214, 214, 142,
+ 372, 377, 142, 116, 116, 116, 117, 117, 117, 117,
+
+ 117, 117, 117, 117, 117, 117, 167, 167, 167, 167,
+ 167, 167, 167, 167, 167, 167, 346, 346, 765, 160,
+ 379, 160, 160, 160, 372, 160, 160, 764, 346, 160,
+ 400, 379, 117, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 160, 160, 160, 458, 118, 118, 118,
+ 118, 118, 191, 191, 191, 191, 191, 191, 191, 191,
+ 191, 191, 273, 273, 273, 273, 427, 427, 400, 755,
+ 458, 118, 118, 118, 118, 118, 118, 126, 126, 126,
+ 126, 126, 126, 126, 126, 126, 126, 126, 312, 498,
+ 754, 126, 126, 126, 126, 126, 194, 194, 194, 194,
+
+ 194, 194, 194, 194, 194, 194, 285, 285, 285, 285,
+ 285, 285, 752, 498, 312, 126, 126, 126, 126, 126,
+ 126, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 312, 562, 562, 127, 127, 127, 127, 127,
+ 184, 409, 184, 184, 373, 186, 184, 184, 380, 373,
+ 184, 186, 409, 380, 186, 348, 348, 186, 186, 127,
+ 127, 127, 127, 127, 127, 184, 184, 348, 413, 497,
+ 428, 186, 428, 186, 188, 497, 188, 188, 188, 413,
+ 188, 188, 429, 751, 188, 195, 195, 195, 195, 195,
+ 195, 195, 195, 195, 195, 526, 186, 186, 188, 188,
+
+ 188, 189, 615, 615, 189, 189, 429, 189, 189, 189,
+ 189, 190, 431, 189, 189, 190, 502, 431, 414, 414,
+ 502, 190, 415, 415, 429, 433, 430, 189, 189, 189,
+ 414, 430, 526, 430, 415, 190, 190, 210, 210, 210,
+ 210, 210, 210, 210, 210, 210, 210, 432, 508, 433,
+ 432, 523, 189, 189, 192, 192, 192, 192, 192, 192,
+ 192, 192, 192, 192, 749, 508, 523, 433, 192, 192,
+ 192, 192, 192, 211, 211, 211, 211, 211, 211, 211,
+ 211, 211, 211, 319, 511, 319, 319, 319, 319, 319,
+ 319, 439, 192, 192, 192, 192, 192, 192, 197, 748,
+
+ 513, 439, 197, 197, 197, 197, 197, 197, 197, 197,
+ 197, 197, 197, 197, 197, 442, 513, 197, 197, 197,
+ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
+ 197, 197, 197, 197, 197, 197, 197, 197, 197, 511,
+ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
+ 197, 197, 197, 197, 197, 197, 197, 197, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 442,
+ 504, 506, 198, 198, 198, 198, 198, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 354, 354, 354,
+ 354, 354, 354, 434, 504, 506, 198, 198, 198, 198,
+
+ 198, 198, 212, 747, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 248, 454, 737, 434, 248, 514,
+ 454, 561, 736, 561, 248, 282, 282, 282, 282, 282,
+ 282, 282, 282, 282, 282, 434, 514, 727, 248, 248,
+ 212, 215, 443, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 443, 564, 584, 564, 215, 215, 215,
+ 215, 215, 284, 284, 284, 284, 284, 284, 284, 284,
+ 284, 284, 423, 423, 423, 423, 423, 423, 571, 584,
+ 571, 215, 215, 215, 215, 215, 215, 218, 218, 218,
+ 218, 218, 218, 218, 218, 218, 218, 218, 589, 589,
+
+ 589, 218, 218, 218, 218, 218, 315, 315, 315, 315,
+ 315, 315, 315, 315, 315, 315, 450, 725, 450, 450,
+ 450, 450, 450, 450, 724, 218, 218, 218, 218, 218,
+ 218, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 565, 616, 616, 220, 220, 220, 220,
+ 220, 345, 345, 345, 345, 345, 345, 345, 345, 345,
+ 345, 466, 466, 466, 466, 466, 466, 565, 623, 623,
+ 220, 220, 220, 220, 220, 220, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 566, 625, 565,
+ 221, 221, 221, 221, 221, 347, 347, 347, 347, 347,
+
+ 347, 347, 347, 347, 347, 473, 473, 473, 473, 473,
+ 473, 566, 625, 723, 221, 221, 221, 221, 221, 221,
+ 222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
+ 222, 631, 631, 566, 222, 222, 222, 222, 222, 351,
+ 351, 351, 351, 351, 351, 351, 351, 622, 711, 622,
+ 403, 351, 403, 403, 403, 403, 403, 403, 222, 222,
+ 222, 222, 222, 222, 253, 627, 253, 253, 253, 253,
+ 253, 253, 253, 253, 253, 253, 254, 254, 254, 254,
+ 254, 254, 254, 254, 254, 254, 254, 710, 403, 627,
+ 254, 254, 254, 254, 254, 353, 353, 353, 353, 353,
+
+ 353, 353, 353, 353, 353, 480, 708, 480, 480, 480,
+ 480, 480, 480, 707, 254, 254, 254, 254, 254, 254,
+ 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
+ 529, 529, 529, 529, 256, 256, 256, 256, 256, 416,
+ 416, 416, 416, 416, 416, 416, 416, 416, 416, 492,
+ 492, 492, 492, 492, 492, 674, 674, 700, 256, 256,
+ 256, 256, 256, 256, 269, 269, 269, 269, 269, 269,
+ 269, 269, 269, 269, 417, 417, 420, 420, 420, 420,
+ 420, 420, 420, 420, 680, 680, 417, 535, 420, 422,
+ 422, 422, 422, 422, 422, 422, 422, 422, 422, 535,
+
+ 269, 277, 277, 277, 277, 277, 277, 277, 277, 277,
+ 277, 277, 283, 283, 283, 283, 283, 283, 283, 283,
+ 283, 283, 283, 283, 283, 445, 683, 683, 283, 283,
+ 283, 283, 283, 570, 570, 445, 446, 446, 446, 446,
+ 446, 446, 446, 446, 446, 446, 541, 541, 541, 541,
+ 541, 541, 283, 283, 283, 283, 283, 283, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 679, 698, 679, 286, 286, 286, 286, 286, 465, 465,
+ 465, 465, 465, 465, 465, 465, 465, 465, 570, 563,
+ 697, 624, 620, 481, 563, 620, 624, 286, 286, 286,
+
+ 286, 286, 286, 287, 481, 287, 287, 287, 287, 287,
+ 287, 287, 287, 287, 287, 320, 320, 320, 320, 320,
+ 320, 320, 320, 320, 320, 696, 621, 640, 643, 320,
+ 320, 320, 320, 320, 470, 470, 470, 470, 470, 470,
+ 470, 470, 470, 470, 558, 558, 558, 558, 558, 558,
+ 621, 640, 643, 320, 320, 320, 320, 320, 320, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 643,
+ 630, 693, 621, 321, 321, 321, 321, 321, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 648, 648,
+ 648, 648, 630, 482, 630, 630, 691, 321, 321, 321,
+
+ 321, 321, 321, 334, 482, 334, 334, 334, 334, 334,
+ 334, 334, 334, 334, 334, 335, 595, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 336, 595, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 349, 349, 349, 349, 349, 349, 349, 349, 349, 349,
+ 349, 349, 349, 572, 685, 633, 349, 349, 349, 349,
+ 349, 476, 476, 476, 476, 476, 476, 476, 476, 476,
+ 476, 633, 731, 824, 731, 572, 824, 572, 572, 645,
+ 349, 349, 349, 349, 349, 349, 352, 352, 352, 352,
+
+ 352, 352, 352, 352, 352, 352, 352, 352, 352, 483,
+ 483, 572, 352, 352, 352, 352, 352, 484, 484, 486,
+ 486, 483, 496, 501, 503, 733, 733, 645, 685, 484,
+ 676, 486, 496, 501, 686, 503, 352, 352, 352, 352,
+ 352, 352, 355, 355, 355, 355, 355, 355, 355, 355,
+ 355, 355, 355, 355, 676, 682, 641, 355, 355, 355,
+ 355, 355, 485, 485, 485, 485, 485, 485, 485, 485,
+ 485, 485, 604, 604, 604, 604, 604, 604, 512, 632,
+ 641, 355, 355, 355, 355, 355, 355, 356, 512, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 383,
+
+ 641, 383, 383, 383, 383, 383, 383, 383, 383, 383,
+ 383, 384, 384, 384, 384, 384, 384, 384, 384, 384,
+ 384, 762, 762, 781, 781, 384, 384, 384, 384, 384,
+ 489, 489, 489, 489, 489, 489, 489, 489, 632, 882,
+ 882, 611, 489, 611, 611, 611, 611, 611, 611, 384,
+ 384, 384, 384, 384, 384, 399, 399, 399, 399, 399,
+ 399, 399, 399, 399, 399, 491, 491, 491, 491, 491,
+ 491, 491, 491, 491, 491, 532, 532, 532, 532, 532,
+ 532, 532, 532, 532, 532, 639, 681, 639, 639, 639,
+ 649, 399, 401, 596, 401, 401, 401, 401, 401, 401,
+
+ 401, 401, 401, 401, 402, 596, 402, 402, 402, 402,
+ 402, 402, 402, 402, 402, 402, 408, 408, 408, 408,
+ 408, 408, 408, 408, 408, 408, 408, 701, 649, 728,
+ 408, 408, 408, 408, 408, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 534, 675, 836, 742, 787, 836,
+ 547, 701, 673, 728, 408, 408, 408, 408, 408, 408,
+ 412, 547, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 412, 418, 418, 418, 418, 418, 418, 418, 418,
+ 418, 418, 418, 418, 418, 742, 787, 670, 418, 418,
+ 418, 418, 418, 538, 598, 538, 538, 538, 538, 538,
+
+ 538, 827, 827, 827, 669, 538, 598, 634, 739, 634,
+ 634, 634, 418, 418, 418, 418, 418, 418, 421, 421,
+ 421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
+ 421, 853, 739, 853, 421, 421, 421, 421, 421, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540, 540, 578,
+ 578, 578, 578, 578, 578, 578, 656, 634, 421, 421,
+ 421, 421, 421, 421, 424, 424, 424, 424, 424, 424,
+ 424, 424, 424, 424, 424, 424, 548, 549, 549, 424,
+ 424, 424, 424, 424, 550, 550, 612, 548, 613, 549,
+ 552, 552, 844, 844, 844, 655, 550, 612, 657, 613,
+
+ 759, 642, 552, 424, 424, 424, 424, 424, 424, 425,
+ 657, 425, 425, 425, 425, 425, 425, 425, 425, 425,
+ 425, 426, 653, 768, 759, 642, 854, 426, 854, 916,
+ 426, 426, 916, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 426, 642, 768, 652, 426,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 464, 464, 464, 464, 464, 464, 464, 464, 464,
+
+ 464, 464, 555, 555, 555, 555, 555, 555, 555, 555,
+ 865, 651, 865, 658, 555, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 658, 883, 883, 464, 471,
+ 660, 471, 471, 471, 471, 471, 471, 471, 471, 471,
+ 471, 471, 660, 637, 702, 471, 471, 471, 471, 471,
+ 574, 574, 574, 574, 574, 574, 574, 574, 574, 574,
+ 619, 619, 619, 619, 619, 619, 619, 619, 702, 471,
+ 471, 471, 471, 471, 471, 474, 474, 474, 474, 474,
+ 474, 474, 474, 474, 474, 474, 778, 636, 702, 474,
+ 474, 474, 474, 474, 587, 587, 587, 587, 587, 587,
+
+ 587, 587, 587, 587, 866, 870, 866, 870, 614, 614,
+ 778, 894, 894, 474, 474, 474, 474, 474, 474, 475,
+ 614, 475, 475, 475, 475, 475, 475, 475, 475, 475,
+ 475, 487, 487, 487, 487, 487, 487, 487, 487, 487,
+ 487, 487, 487, 487, 678, 629, 703, 487, 487, 487,
+ 487, 487, 588, 588, 588, 588, 588, 588, 588, 588,
+ 588, 588, 635, 610, 635, 635, 635, 871, 678, 871,
+ 703, 487, 487, 487, 487, 487, 487, 490, 490, 490,
+ 490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
+ 678, 703, 740, 490, 490, 490, 490, 490, 597, 597,
+
+ 597, 597, 597, 597, 597, 597, 597, 597, 875, 878,
+ 875, 878, 635, 888, 609, 888, 740, 490, 490, 490,
+ 490, 490, 490, 493, 493, 493, 493, 493, 493, 493,
+ 493, 493, 493, 493, 608, 889, 740, 889, 493, 493,
+ 493, 493, 493, 601, 594, 601, 601, 601, 601, 601,
+ 601, 897, 592, 897, 654, 601, 654, 654, 654, 654,
+ 654, 654, 493, 493, 493, 493, 493, 493, 494, 712,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 495, 712, 898, 901, 898, 901, 495, 692, 692, 495,
+ 495, 692, 495, 495, 495, 495, 495, 495, 495, 495,
+
+ 495, 495, 495, 495, 495, 692, 692, 692, 495, 495,
+ 495, 495, 495, 495, 495, 495, 495, 495, 495, 495,
+ 495, 495, 495, 495, 495, 495, 495, 495, 495, 495,
+ 495, 495, 495, 495, 495, 495, 495, 495, 495, 495,
+ 495, 495, 495, 495, 495, 495, 495, 495, 495, 495,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 522, 913, 913, 713, 522, 522, 522, 522, 522,
+ 522, 522, 522, 522, 522, 522, 713, 522, 914, 914,
+ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522,
+ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522,
+
+ 522, 522, 591, 522, 522, 522, 522, 522, 522, 522,
+ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522,
+ 522, 525, 525, 525, 525, 525, 525, 525, 525, 525,
+ 525, 603, 603, 603, 603, 603, 603, 603, 603, 603,
+ 603, 607, 607, 607, 607, 607, 607, 607, 607, 607,
+ 607, 666, 666, 666, 666, 666, 666, 525, 527, 527,
+ 527, 527, 527, 527, 527, 527, 527, 527, 527, 650,
+ 650, 650, 650, 650, 650, 650, 650, 650, 650, 659,
+ 659, 659, 659, 659, 659, 659, 659, 659, 659, 721,
+ 721, 721, 721, 721, 721, 527, 536, 715, 536, 536,
+
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 715,
+ 590, 582, 536, 536, 536, 536, 536, 663, 753, 663,
+ 663, 663, 663, 663, 663, 907, 908, 907, 908, 663,
+ 753, 687, 672, 687, 687, 687, 536, 536, 536, 536,
+ 536, 536, 539, 672, 539, 539, 539, 539, 539, 539,
+ 539, 539, 539, 539, 539, 730, 581, 580, 539, 539,
+ 539, 539, 539, 665, 665, 665, 665, 665, 665, 665,
+ 665, 665, 665, 688, 579, 688, 688, 688, 910, 730,
+ 910, 687, 539, 539, 539, 539, 539, 539, 542, 542,
+ 542, 542, 542, 542, 542, 542, 542, 542, 542, 577,
+
+ 576, 730, 542, 542, 542, 542, 542, 695, 695, 695,
+ 695, 695, 695, 695, 695, 695, 695, 794, 794, 794,
+ 794, 794, 794, 688, 575, 573, 542, 542, 542, 542,
+ 542, 542, 543, 569, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 546, 568, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 553, 553, 553, 553,
+ 553, 553, 553, 553, 553, 553, 553, 553, 553, 567,
+ 551, 761, 553, 553, 553, 553, 553, 689, 545, 689,
+ 689, 689, 690, 544, 690, 690, 690, 699, 531, 699,
+ 699, 699, 699, 699, 699, 761, 553, 553, 553, 553,
+
+ 553, 553, 556, 556, 556, 556, 556, 556, 556, 556,
+ 556, 556, 556, 556, 918, 530, 918, 761, 556, 556,
+ 556, 556, 556, 919, 923, 919, 923, 689, 924, 929,
+ 924, 929, 690, 726, 726, 726, 726, 726, 726, 726,
+ 524, 521, 556, 556, 556, 556, 556, 556, 559, 520,
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+ 560, 694, 519, 694, 694, 694, 560, 694, 694, 560,
+ 560, 694, 560, 560, 560, 560, 560, 560, 560, 560,
+ 560, 560, 560, 560, 560, 694, 694, 694, 560, 560,
+ 560, 560, 560, 560, 560, 560, 560, 560, 560, 560,
+
+ 560, 560, 560, 560, 560, 560, 560, 560, 560, 560,
+ 560, 560, 560, 560, 560, 560, 560, 560, 560, 560,
+ 560, 560, 560, 560, 560, 560, 560, 560, 560, 560,
+ 583, 750, 518, 750, 750, 750, 750, 750, 750, 583,
+ 930, 516, 930, 583, 583, 583, 583, 583, 583, 583,
+ 583, 583, 583, 583, 583, 583, 515, 510, 583, 583,
+ 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,
+ 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,
+ 509, 583, 583, 583, 583, 583, 583, 583, 583, 583,
+ 583, 583, 583, 583, 583, 583, 583, 583, 583, 586,
+
+ 479, 586, 586, 586, 586, 586, 586, 586, 586, 586,
+ 586, 714, 714, 714, 714, 714, 714, 714, 714, 714,
+ 714, 718, 478, 718, 718, 718, 718, 718, 718, 922,
+ 477, 469, 922, 718, 468, 467, 922, 586, 593, 463,
+ 593, 593, 593, 593, 593, 593, 593, 593, 593, 593,
+ 599, 456, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 455, 452, 451, 599, 599, 599, 599,
+ 599, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 758, 449, 758, 758, 758, 758, 758, 758, 448,
+ 599, 599, 599, 599, 599, 599, 602, 447, 602, 602,
+
+ 602, 602, 602, 602, 602, 602, 602, 602, 602, 441,
+ 440, 438, 602, 602, 602, 602, 602, 734, 734, 734,
+ 734, 734, 734, 734, 734, 734, 734, 767, 437, 767,
+ 767, 767, 767, 767, 767, 436, 602, 602, 602, 602,
+ 602, 602, 605, 605, 605, 605, 605, 605, 605, 605,
+ 605, 605, 605, 435, 411, 410, 605, 605, 605, 605,
+ 605, 735, 735, 735, 735, 735, 735, 735, 735, 735,
+ 735, 407, 745, 406, 745, 745, 745, 745, 745, 745,
+ 605, 605, 605, 605, 605, 605, 606, 405, 606, 606,
+ 606, 606, 606, 606, 606, 606, 606, 606, 617, 617,
+
+ 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
+ 745, 404, 398, 397, 617, 617, 617, 617, 617, 746,
+ 746, 746, 746, 746, 746, 746, 746, 746, 746, 800,
+ 396, 800, 800, 800, 800, 800, 800, 395, 617, 617,
+ 617, 617, 617, 617, 638, 394, 638, 638, 638, 638,
+ 638, 638, 638, 638, 638, 638, 644, 644, 644, 644,
+ 644, 644, 644, 644, 644, 644, 763, 763, 763, 763,
+ 763, 763, 763, 763, 763, 763, 772, 772, 772, 772,
+ 772, 772, 772, 772, 772, 772, 812, 812, 812, 812,
+ 812, 812, 644, 646, 393, 646, 646, 646, 646, 646,
+
+ 646, 646, 646, 646, 646, 773, 773, 773, 773, 773,
+ 773, 773, 773, 773, 773, 774, 774, 774, 774, 774,
+ 774, 774, 774, 774, 774, 392, 928, 391, 390, 928,
+ 389, 646, 661, 928, 661, 661, 661, 661, 661, 661,
+ 661, 661, 661, 661, 661, 388, 387, 386, 661, 661,
+ 661, 661, 661, 790, 385, 790, 790, 790, 790, 790,
+ 790, 792, 792, 792, 792, 792, 792, 792, 792, 792,
+ 792, 382, 661, 661, 661, 661, 661, 661, 664, 381,
664, 664, 664, 664, 664, 664, 664, 664, 664, 664,
- 665, 665, 0, 0, 0, 665, 666, 0, 666, 666,
- 0, 0, 0, 666, 667, 667, 0, 0, 0, 667,
- 668, 0, 668, 0, 0, 0, 0, 668, 670, 670,
- 670, 670, 670, 670, 670, 670, 670, 670, 670, 670,
- 670, 670, 670, 670, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
-
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
- 606
+ 664, 790, 376, 375, 664, 664, 664, 664, 664, 793,
+
+ 793, 793, 793, 793, 793, 793, 793, 793, 793, 374,
+ 368, 366, 365, 364, 363, 362, 361, 360, 664, 664,
+ 664, 664, 664, 664, 667, 667, 667, 667, 667, 667,
+ 667, 667, 667, 667, 359, 343, 342, 341, 667, 667,
+ 667, 667, 667, 796, 796, 796, 796, 796, 796, 796,
+ 796, 796, 796, 340, 338, 337, 809, 809, 809, 809,
+ 809, 809, 667, 667, 667, 667, 667, 667, 668, 333,
+ 668, 668, 668, 668, 668, 668, 668, 668, 668, 668,
+ 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
+ 671, 704, 809, 704, 704, 704, 704, 704, 704, 704,
+
+ 704, 704, 704, 705, 332, 705, 705, 705, 705, 705,
+ 705, 705, 705, 705, 705, 706, 331, 706, 706, 706,
+ 706, 706, 706, 706, 706, 706, 706, 709, 329, 709,
+ 709, 709, 709, 709, 709, 709, 709, 709, 709, 716,
+ 328, 716, 716, 716, 716, 716, 716, 716, 716, 716,
+ 716, 716, 327, 326, 325, 716, 716, 716, 716, 716,
+ 804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
+ 324, 318, 317, 316, 309, 308, 307, 306, 305, 716,
+ 716, 716, 716, 716, 716, 719, 299, 719, 719, 719,
+ 719, 719, 719, 719, 719, 719, 719, 297, 296, 295,
+
+ 294, 719, 719, 719, 719, 719, 805, 805, 805, 805,
+ 805, 805, 805, 805, 805, 805, 293, 292, 290, 288,
+ 280, 279, 276, 275, 268, 719, 719, 719, 719, 719,
+ 719, 738, 267, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 741, 265, 741, 741, 741, 741, 741,
+ 741, 741, 741, 741, 741, 743, 264, 743, 743, 743,
+ 743, 743, 743, 743, 743, 743, 743, 744, 263, 744,
+ 744, 744, 744, 744, 744, 744, 744, 744, 744, 756,
+ 262, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 769, 261, 769, 769, 769, 769, 769, 769, 769,
+
+ 769, 769, 769, 770, 260, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 771, 259, 771, 771, 771,
+ 771, 771, 771, 771, 771, 771, 771, 785, 258, 785,
+ 785, 785, 785, 785, 785, 785, 785, 785, 785, 786,
+ 255, 786, 786, 786, 786, 786, 786, 786, 786, 786,
+ 786, 788, 252, 788, 788, 788, 788, 788, 788, 788,
+ 788, 788, 788, 789, 251, 789, 789, 789, 789, 789,
+ 789, 789, 789, 789, 789, 801, 801, 801, 801, 801,
+ 801, 801, 801, 801, 801, 806, 806, 806, 806, 806,
+ 806, 806, 806, 806, 806, 811, 811, 811, 811, 811,
+
+ 811, 811, 811, 811, 811, 250, 244, 241, 240, 239,
+ 238, 801, 802, 802, 802, 802, 802, 802, 802, 802,
+ 802, 802, 237, 234, 233, 232, 231, 230, 229, 228,
+ 227, 226, 225, 224, 223, 217, 216, 209, 208, 207,
+ 206, 205, 204, 202, 201, 199, 193, 185, 802, 803,
+ 803, 803, 803, 803, 803, 803, 803, 803, 803, 181,
+ 177, 176, 174, 170, 163, 159, 157, 155, 147, 146,
+ 145, 144, 143, 137, 136, 135, 134, 133, 131, 130,
+ 129, 128, 124, 120, 119, 803, 808, 808, 808, 808,
+ 808, 808, 808, 808, 808, 808, 115, 112, 109, 104,
+
+ 103, 102, 100, 96, 95, 94, 93, 90, 77, 70,
+ 63, 59, 58, 56, 55, 53, 51, 43, 42, 41,
+ 39, 35, 808, 814, 814, 814, 814, 814, 814, 814,
+ 814, 814, 814, 814, 814, 814, 814, 814, 814, 814,
+ 814, 814, 814, 814, 815, 815, 815, 815, 815, 815,
+ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
+ 815, 815, 815, 815, 815, 816, 816, 816, 816, 816,
+ 816, 816, 816, 816, 816, 816, 816, 816, 816, 816,
+ 816, 816, 816, 816, 816, 816, 817, 817, 817, 817,
+ 817, 817, 817, 817, 817, 817, 817, 817, 817, 817,
+
+ 817, 817, 817, 817, 817, 817, 817, 818, 31, 25,
+ 19, 17, 16, 15, 818, 0, 818, 818, 818, 818,
+ 0, 0, 818, 818, 818, 818, 818, 818, 819, 819,
+ 819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
+ 819, 819, 819, 819, 819, 819, 819, 819, 819, 820,
+ 0, 0, 0, 0, 820, 0, 820, 0, 820, 820,
+ 820, 820, 820, 0, 820, 820, 820, 820, 820, 820,
+ 821, 0, 0, 0, 0, 0, 0, 821, 0, 821,
+ 821, 821, 821, 0, 0, 821, 821, 821, 821, 821,
+ 821, 822, 0, 0, 822, 822, 0, 822, 822, 0,
+
+ 822, 822, 822, 822, 0, 0, 822, 822, 822, 822,
+ 822, 822, 823, 823, 0, 823, 0, 0, 0, 823,
+ 825, 0, 0, 825, 825, 0, 825, 825, 0, 825,
+ 825, 825, 825, 0, 0, 825, 825, 825, 825, 825,
+ 825, 826, 0, 0, 826, 826, 0, 826, 826, 0,
+ 826, 826, 826, 826, 0, 826, 826, 826, 0, 826,
+ 826, 826, 828, 0, 0, 828, 0, 0, 828, 828,
+ 0, 828, 828, 828, 828, 828, 0, 828, 828, 828,
+ 828, 828, 828, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 829, 829, 829,
+
+ 829, 829, 829, 829, 830, 830, 0, 830, 0, 830,
+ 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
+ 830, 830, 830, 830, 830, 831, 0, 0, 0, 0,
+ 831, 0, 831, 0, 831, 831, 831, 831, 831, 0,
+ 831, 831, 831, 831, 831, 831, 832, 0, 0, 0,
+ 0, 0, 0, 832, 0, 832, 832, 832, 832, 0,
+ 832, 832, 832, 832, 832, 832, 832, 833, 0, 0,
+ 833, 833, 0, 833, 833, 0, 833, 833, 833, 833,
+ 0, 833, 833, 833, 833, 833, 833, 833, 834, 834,
+ 834, 834, 834, 834, 834, 834, 834, 834, 834, 834,
+
+ 834, 834, 834, 834, 834, 834, 834, 834, 834, 835,
+ 835, 0, 835, 835, 835, 835, 835, 835, 835, 835,
+ 835, 835, 835, 835, 835, 835, 835, 835, 835, 835,
+ 837, 0, 0, 837, 837, 0, 837, 837, 0, 837,
+ 837, 837, 837, 0, 0, 837, 837, 837, 837, 837,
+ 837, 838, 838, 0, 838, 0, 0, 0, 838, 839,
+ 839, 0, 839, 0, 0, 0, 839, 840, 840, 840,
+ 0, 840, 0, 0, 0, 840, 841, 0, 0, 841,
+ 841, 0, 841, 841, 0, 841, 841, 841, 841, 0,
+ 0, 841, 841, 841, 841, 841, 841, 842, 0, 0,
+
+ 842, 842, 0, 842, 842, 0, 842, 842, 842, 842,
+ 0, 0, 842, 842, 842, 842, 842, 842, 843, 0,
+ 0, 843, 843, 0, 843, 843, 0, 843, 843, 843,
+ 843, 0, 843, 843, 843, 0, 843, 843, 843, 845,
+ 0, 0, 845, 0, 0, 845, 845, 0, 845, 845,
+ 845, 845, 845, 0, 845, 845, 845, 845, 845, 845,
+ 846, 0, 0, 0, 0, 0, 0, 846, 0, 846,
+ 846, 846, 846, 0, 0, 846, 846, 846, 846, 846,
+ 846, 847, 0, 0, 0, 0, 0, 0, 847, 0,
+ 847, 847, 847, 847, 0, 847, 847, 847, 847, 847,
+
+ 847, 847, 848, 0, 0, 848, 848, 0, 848, 848,
+ 0, 848, 848, 848, 848, 0, 848, 848, 848, 848,
+ 848, 848, 848, 849, 0, 0, 849, 849, 0, 849,
+ 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
+ 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
+ 850, 851, 851, 0, 851, 0, 0, 0, 851, 852,
+ 852, 852, 0, 852, 0, 0, 0, 852, 855, 855,
+ 0, 855, 0, 0, 0, 855, 856, 856, 0, 856,
+ 0, 0, 0, 856, 857, 857, 0, 857, 0, 0,
+ 0, 857, 858, 858, 858, 0, 858, 0, 0, 0,
+
+ 858, 859, 0, 0, 859, 859, 0, 859, 860, 860,
+ 0, 860, 0, 0, 0, 860, 861, 861, 0, 861,
+ 0, 0, 0, 861, 862, 862, 0, 862, 0, 0,
+ 0, 862, 863, 863, 863, 0, 863, 0, 0, 0,
+ 863, 864, 864, 864, 864, 0, 864, 0, 0, 0,
+ 864, 867, 867, 0, 867, 0, 0, 0, 867, 868,
+ 868, 0, 868, 0, 0, 0, 868, 869, 869, 0,
+ 869, 0, 0, 0, 869, 872, 872, 872, 0, 872,
+ 0, 0, 0, 872, 873, 873, 873, 873, 0, 873,
+ 0, 0, 0, 873, 874, 874, 874, 874, 874, 874,
+
+ 874, 874, 874, 874, 874, 874, 874, 874, 874, 874,
+ 874, 874, 874, 874, 874, 876, 876, 0, 876, 0,
+ 0, 0, 876, 877, 877, 0, 877, 0, 0, 0,
+ 877, 879, 879, 879, 0, 879, 0, 0, 0, 879,
+ 880, 880, 880, 880, 0, 880, 0, 0, 0, 880,
+ 881, 881, 881, 881, 881, 881, 881, 881, 881, 881,
+ 881, 881, 881, 881, 881, 881, 881, 881, 881, 881,
+ 881, 884, 0, 0, 884, 884, 0, 884, 885, 0,
+ 0, 0, 885, 885, 0, 885, 885, 885, 0, 0,
+ 885, 885, 886, 886, 0, 886, 0, 0, 0, 886,
+
+ 887, 0, 887, 887, 0, 887, 0, 0, 0, 887,
+ 890, 890, 890, 0, 890, 0, 0, 0, 890, 891,
+ 891, 891, 891, 0, 891, 0, 0, 0, 891, 892,
+ 892, 0, 0, 892, 0, 0, 0, 892, 893, 893,
+ 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,
+ 893, 893, 893, 893, 893, 893, 893, 893, 893, 895,
+ 0, 0, 895, 895, 0, 895, 896, 0, 0, 0,
+ 896, 896, 0, 896, 896, 896, 0, 0, 896, 896,
+ 899, 899, 0, 899, 0, 0, 0, 899, 900, 0,
+ 900, 900, 0, 900, 0, 0, 0, 900, 902, 902,
+
+ 902, 0, 902, 0, 0, 0, 902, 903, 903, 903,
+ 0, 0, 903, 0, 0, 0, 903, 904, 904, 904,
+ 904, 904, 904, 904, 904, 904, 904, 904, 904, 904,
+ 904, 904, 904, 904, 904, 904, 904, 904, 905, 905,
+ 0, 905, 905, 905, 0, 905, 0, 905, 905, 905,
+ 905, 0, 0, 905, 905, 905, 905, 905, 905, 906,
+ 906, 0, 906, 906, 906, 0, 906, 0, 906, 906,
+ 906, 906, 0, 0, 906, 906, 906, 906, 906, 906,
+ 909, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 909, 909, 0, 909, 909, 0, 909, 911, 911,
+
+ 0, 911, 0, 0, 0, 911, 912, 0, 912, 912,
+ 0, 912, 0, 0, 0, 912, 915, 915, 0, 0,
+ 915, 0, 0, 0, 915, 917, 0, 0, 0, 0,
+ 0, 0, 917, 0, 917, 917, 917, 917, 0, 0,
+ 917, 917, 917, 917, 917, 917, 920, 920, 0, 920,
+ 0, 0, 0, 920, 921, 0, 921, 921, 0, 921,
+ 0, 0, 0, 921, 925, 925, 0, 925, 0, 0,
+ 0, 925, 926, 0, 926, 0, 0, 926, 0, 0,
+ 0, 926, 927, 927, 927, 927, 927, 927, 927, 927,
+ 927, 927, 927, 927, 927, 927, 927, 927, 927, 927,
+
+ 927, 927, 927, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813
} ;
static yy_state_type yy_last_accepting_state;
#define INITIAL 0
#line 2 "toke.l"
/*
- * Copyright (c) 1996, 1998-2005, 2007-2011
+ * Copyright (c) 1996, 1998-2005, 2007-2013
* Todd C. Miller <Todd.Miller@courtesan.com>
*
* Permission to use, copy, modify, and distribute this software for any
#include <config.h>
#include <sys/types.h>
-#include <sys/param.h>
#include <sys/stat.h>
#include <stdio.h>
#ifdef STDC_HEADERS
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif /* HAVE_STRINGS_H */
+#if defined(HAVE_STDINT_H)
+# include <stdint.h>
+#elif defined(HAVE_INTTYPES_H)
+# include <inttypes.h>
+#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
#include "parse.h"
#include "toke.h"
#include <gram.h>
+#include "lbuf.h"
+#include "sha2.h"
+#include "secure_path.h"
-extern YYSTYPE yylval;
-extern int parse_error;
+extern YYSTYPE sudoerslval;
+extern bool parse_error;
+extern bool sudoers_warnings;
int sudolineno;
+int last_token;
char *sudoers;
-static int continued, prev_state, sawspace;
+/* Default sudoers path, mode and owner (may be set via sudo.conf) */
+const char *sudoers_file = _PATH_SUDOERS;
+mode_t sudoers_mode = SUDOERS_MODE;
+uid_t sudoers_uid = SUDOERS_UID;
+gid_t sudoers_gid = SUDOERS_GID;
-static int _push_include(char *, int);
-static int pop_include(void);
+static bool continued, sawspace;
+static int prev_state;
+static int digest_len;
+
+static bool _push_include(char *, bool);
+static bool pop_include(void);
static char *parse_include(char *);
-#ifdef TRACELEXER
-static int sudoers_trace_print(const char *msg);
-#else
-# define sudoers_trace_print NULL
-#endif
int (*trace_print)(const char *msg) = sudoers_trace_print;
-#define push_include(_p) (_push_include((_p), FALSE))
-#define push_includedir(_p) (_push_include((_p), TRUE))
+#define LEXRETURN(n) do { \
+ last_token = (n); \
+ return (n); \
+} while (0)
+
+#define ECHO ignore_result(fwrite(sudoerstext, sudoersleng, 1, sudoersout))
+
+#define push_include(_p) (_push_include((_p), false))
+#define push_includedir(_p) (_push_include((_p), true))
#define YY_NO_INPUT 1
#define YY_NO_UNPUT 1
#define GOTDEFS 1
#define INSTR 5
-#line 1511 "lex.yy.c"
+#define WANTDIGEST 6
+
+#line 2056 "lex.sudoers.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 119 "toke.l"
+#line 140 "toke.l"
-#line 1667 "lex.yy.c"
+#line 2212 "lex.sudoers.c"
if ( yy_init )
{
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 607 )
+ if ( yy_current_state >= 814 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 3665 );
+ while ( yy_base[yy_current_state] != 5604 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
case 1:
YY_RULE_SETUP
-#line 120 "toke.l"
+#line 141 "toke.l"
{
LEXTRACE(", ");
- return ',';
+ LEXRETURN(',');
} /* return ',' */
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 125 "toke.l"
+#line 146 "toke.l"
BEGIN STARTDEFS;
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 127 "toke.l"
+#line 148 "toke.l"
{
BEGIN INDEFS;
LEXTRACE("DEFVAR ");
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
- return DEFVAR;
+ LEXRETURN(DEFVAR);
}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 136 "toke.l"
+#line 157 "toke.l"
{
BEGIN STARTDEFS;
LEXTRACE(", ");
- return ',';
+ LEXRETURN(',');
} /* return ',' */
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 142 "toke.l"
+#line 163 "toke.l"
{
LEXTRACE("= ");
- return '=';
+ LEXRETURN('=');
} /* return '=' */
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 147 "toke.l"
+#line 168 "toke.l"
{
LEXTRACE("+= ");
- return '+';
+ LEXRETURN('+');
} /* return '+' */
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 152 "toke.l"
+#line 173 "toke.l"
{
LEXTRACE("-= ");
- return '-';
+ LEXRETURN('-');
} /* return '-' */
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 157 "toke.l"
+#line 178 "toke.l"
{
LEXTRACE("BEGINSTR ");
- yylval.string = NULL;
+ sudoerslval.string = NULL;
prev_state = YY_START;
BEGIN INSTR;
}
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 164 "toke.l"
+#line 185 "toke.l"
{
LEXTRACE("WORD(2) ");
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
- return WORD;
+ LEXRETURN(WORD);
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 173 "toke.l"
+#line 194 "toke.l"
{
/* Line continuation char followed by newline. */
- ++sudolineno;
- continued = TRUE;
+ sudolineno++;
+ continued = true;
}
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 179 "toke.l"
+#line 200 "toke.l"
{
LEXTRACE("ENDSTR ");
BEGIN prev_state;
- if (yylval.string == NULL) {
+ if (sudoerslval.string == NULL) {
LEXTRACE("ERROR "); /* empty string */
- return ERROR;
+ LEXRETURN(ERROR);
}
if (prev_state == INITIAL) {
- switch (yylval.string[0]) {
+ switch (sudoerslval.string[0]) {
case '%':
- if (yylval.string[1] == '\0' ||
- (yylval.string[1] == ':' &&
- yylval.string[2] == '\0')) {
+ if (sudoerslval.string[1] == '\0' ||
+ (sudoerslval.string[1] == ':' &&
+ sudoerslval.string[2] == '\0')) {
LEXTRACE("ERROR "); /* empty group */
- return ERROR;
+ LEXRETURN(ERROR);
}
LEXTRACE("USERGROUP ");
- return USERGROUP;
+ LEXRETURN(USERGROUP);
case '+':
- if (yylval.string[1] == '\0') {
+ if (sudoerslval.string[1] == '\0') {
LEXTRACE("ERROR "); /* empty netgroup */
- return ERROR;
+ LEXRETURN(ERROR);
}
LEXTRACE("NETGROUP ");
- return NETGROUP;
+ LEXRETURN(NETGROUP);
}
}
LEXTRACE("WORD(4) ");
- return WORD;
+ LEXRETURN(WORD);
}
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 211 "toke.l"
+#line 232 "toke.l"
{
LEXTRACE("BACKSLASH ");
- if (!append(yytext, yyleng))
+ if (!append(sudoerstext, sudoersleng))
yyterminate();
}
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 217 "toke.l"
+#line 238 "toke.l"
{
LEXTRACE("STRBODY ");
- if (!append(yytext, yyleng))
+ if (!append(sudoerstext, sudoersleng))
yyterminate();
}
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 225 "toke.l"
+#line 246 "toke.l"
{
/* quoted fnmatch glob char, pass verbatim */
LEXTRACE("QUOTEDCHAR ");
- if (!fill_args(yytext, 2, sawspace))
+ if (!fill_args(sudoerstext, 2, sawspace))
yyterminate();
- sawspace = FALSE;
+ sawspace = false;
}
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 233 "toke.l"
+#line 254 "toke.l"
{
/* quoted sudoers special char, strip backslash */
LEXTRACE("QUOTEDCHAR ");
- if (!fill_args(yytext + 1, 1, sawspace))
+ if (!fill_args(sudoerstext + 1, 1, sawspace))
yyterminate();
- sawspace = FALSE;
+ sawspace = false;
}
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 241 "toke.l"
+#line 262 "toke.l"
{
BEGIN INITIAL;
yyless(0);
- return COMMAND;
+ LEXRETURN(COMMAND);
} /* end of command line args */
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 247 "toke.l"
+#line 268 "toke.l"
{
LEXTRACE("ARG ");
- if (!fill_args(yytext, yyleng, sawspace))
+ if (!fill_args(sudoerstext, sudoersleng, sawspace))
yyterminate();
- sawspace = FALSE;
+ sawspace = false;
} /* a command line arg */
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 255 "toke.l"
+#line 276 "toke.l"
+{
+ /* Only return DIGEST if the length is correct. */
+ if (sudoersleng == digest_len * 2) {
+ if (!fill(sudoerstext, sudoersleng))
+ yyterminate();
+ BEGIN INITIAL;
+ LEXTRACE("DIGEST ");
+ LEXRETURN(DIGEST);
+ }
+ BEGIN INITIAL;
+ yyless(sudoersleng);
+ } /* hex digest */
+ YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 289 "toke.l"
+{
+ /* Only return DIGEST if the length is correct. */
+ size_t len;
+ if (sudoerstext[sudoersleng - 1] == '=') {
+ /* use padding */
+ len = 4 * ((digest_len + 2) / 3);
+ } else {
+ /* no padding */
+ len = (4 * digest_len + 2) / 3;
+ }
+ if (sudoersleng == len) {
+ if (!fill(sudoerstext, sudoersleng))
+ yyterminate();
+ BEGIN INITIAL;
+ LEXTRACE("DIGEST ");
+ LEXRETURN(DIGEST);
+ }
+ BEGIN INITIAL;
+ yyless(sudoersleng);
+ } /* base64 digest */
+ YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 310 "toke.l"
{
char *path;
if (continued) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
- if ((path = parse_include(yytext)) == NULL)
+ if ((path = parse_include(sudoerstext)) == NULL)
yyterminate();
LEXTRACE("INCLUDE\n");
yyterminate();
}
YY_BREAK
-case 19:
+case 21:
YY_RULE_SETUP
-#line 273 "toke.l"
+#line 328 "toke.l"
{
char *path;
if (continued) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
- if ((path = parse_include(yytext)) == NULL)
+ if ((path = parse_include(sudoerstext)) == NULL)
yyterminate();
LEXTRACE("INCLUDEDIR\n");
yyterminate();
}
YY_BREAK
-case 20:
+case 22:
YY_RULE_SETUP
-#line 294 "toke.l"
+#line 349 "toke.l"
{
char deftype;
int n;
if (continued) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
- for (n = 0; isblank((unsigned char)yytext[n]); n++)
+ for (n = 0; isblank((unsigned char)sudoerstext[n]); n++)
continue;
n += sizeof("Defaults") - 1;
- if ((deftype = yytext[n++]) != '\0') {
- while (isblank((unsigned char)yytext[n]))
+ if ((deftype = sudoerstext[n++]) != '\0') {
+ while (isblank((unsigned char)sudoerstext[n]))
n++;
}
BEGIN GOTDEFS;
case ':':
yyless(n);
LEXTRACE("DEFAULTS_USER ");
- return DEFAULTS_USER;
+ LEXRETURN(DEFAULTS_USER);
case '>':
yyless(n);
LEXTRACE("DEFAULTS_RUNAS ");
- return DEFAULTS_RUNAS;
+ LEXRETURN(DEFAULTS_RUNAS);
case '@':
yyless(n);
LEXTRACE("DEFAULTS_HOST ");
- return DEFAULTS_HOST;
+ LEXRETURN(DEFAULTS_HOST);
case '!':
yyless(n);
LEXTRACE("DEFAULTS_CMND ");
- return DEFAULTS_CMND;
+ LEXRETURN(DEFAULTS_CMND);
default:
LEXTRACE("DEFAULTS ");
- return DEFAULTS;
+ LEXRETURN(DEFAULTS);
}
}
YY_BREAK
-case 21:
+case 23:
YY_RULE_SETUP
-#line 334 "toke.l"
+#line 389 "toke.l"
{
int n;
if (continued) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
- for (n = 0; isblank((unsigned char)yytext[n]); n++)
+ for (n = 0; isblank((unsigned char)sudoerstext[n]); n++)
continue;
- switch (yytext[n]) {
+ switch (sudoerstext[n]) {
case 'H':
LEXTRACE("HOSTALIAS ");
- return HOSTALIAS;
+ LEXRETURN(HOSTALIAS);
case 'C':
LEXTRACE("CMNDALIAS ");
- return CMNDALIAS;
+ LEXRETURN(CMNDALIAS);
case 'U':
LEXTRACE("USERALIAS ");
- return USERALIAS;
+ LEXRETURN(USERALIAS);
case 'R':
LEXTRACE("RUNASALIAS ");
- return RUNASALIAS;
+ LEXRETURN(RUNASALIAS);
}
}
YY_BREAK
-case 22:
+case 24:
YY_RULE_SETUP
-#line 360 "toke.l"
+#line 415 "toke.l"
{
/* cmnd does not require passwd for this user */
LEXTRACE("NOPASSWD ");
- return NOPASSWD;
+ LEXRETURN(NOPASSWD);
}
YY_BREAK
-case 23:
+case 25:
YY_RULE_SETUP
-#line 366 "toke.l"
+#line 421 "toke.l"
{
/* cmnd requires passwd for this user */
LEXTRACE("PASSWD ");
- return PASSWD;
+ LEXRETURN(PASSWD);
}
YY_BREAK
-case 24:
+case 26:
YY_RULE_SETUP
-#line 372 "toke.l"
+#line 427 "toke.l"
{
LEXTRACE("NOEXEC ");
- return NOEXEC;
+ LEXRETURN(NOEXEC);
}
YY_BREAK
-case 25:
+case 27:
YY_RULE_SETUP
-#line 377 "toke.l"
+#line 432 "toke.l"
{
LEXTRACE("EXEC ");
- return EXEC;
+ LEXRETURN(EXEC);
}
YY_BREAK
-case 26:
+case 28:
YY_RULE_SETUP
-#line 382 "toke.l"
+#line 437 "toke.l"
{
LEXTRACE("SETENV ");
- return SETENV;
+ LEXRETURN(SETENV);
}
YY_BREAK
-case 27:
+case 29:
YY_RULE_SETUP
-#line 387 "toke.l"
+#line 442 "toke.l"
{
LEXTRACE("NOSETENV ");
- return NOSETENV;
+ LEXRETURN(NOSETENV);
}
YY_BREAK
-case 28:
+case 30:
YY_RULE_SETUP
-#line 392 "toke.l"
+#line 447 "toke.l"
{
LEXTRACE("LOG_OUTPUT ");
- return LOG_OUTPUT;
+ LEXRETURN(LOG_OUTPUT);
}
YY_BREAK
-case 29:
+case 31:
YY_RULE_SETUP
-#line 397 "toke.l"
+#line 452 "toke.l"
{
LEXTRACE("NOLOG_OUTPUT ");
- return NOLOG_OUTPUT;
+ LEXRETURN(NOLOG_OUTPUT);
}
YY_BREAK
-case 30:
+case 32:
YY_RULE_SETUP
-#line 402 "toke.l"
+#line 457 "toke.l"
{
LEXTRACE("LOG_INPUT ");
- return LOG_INPUT;
+ LEXRETURN(LOG_INPUT);
}
YY_BREAK
-case 31:
+case 33:
YY_RULE_SETUP
-#line 407 "toke.l"
+#line 462 "toke.l"
{
LEXTRACE("NOLOG_INPUT ");
- return NOLOG_INPUT;
+ LEXRETURN(NOLOG_INPUT);
}
YY_BREAK
-case 32:
+case 34:
YY_RULE_SETUP
-#line 412 "toke.l"
+#line 467 "toke.l"
{
/* empty group or netgroup */
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
YY_BREAK
-case 33:
+case 35:
YY_RULE_SETUP
-#line 418 "toke.l"
+#line 473 "toke.l"
{
/* netgroup */
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
LEXTRACE("NETGROUP ");
- return NETGROUP;
+ LEXRETURN(NETGROUP);
}
YY_BREAK
-case 34:
+case 36:
YY_RULE_SETUP
-#line 426 "toke.l"
+#line 481 "toke.l"
{
/* group */
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
LEXTRACE("USERGROUP ");
- return USERGROUP;
+ LEXRETURN(USERGROUP);
}
YY_BREAK
-case 35:
+case 37:
YY_RULE_SETUP
-#line 434 "toke.l"
+#line 489 "toke.l"
{
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
LEXTRACE("NTWKADDR ");
- return NTWKADDR;
+ LEXRETURN(NTWKADDR);
}
YY_BREAK
-case 36:
+case 38:
YY_RULE_SETUP
-#line 441 "toke.l"
+#line 496 "toke.l"
{
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
LEXTRACE("NTWKADDR ");
- return NTWKADDR;
+ LEXRETURN(NTWKADDR);
}
YY_BREAK
-case 37:
+case 39:
YY_RULE_SETUP
-#line 448 "toke.l"
+#line 503 "toke.l"
{
- if (!ipv6_valid(yytext)) {
+ if (!ipv6_valid(sudoerstext)) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
LEXTRACE("NTWKADDR ");
- return NTWKADDR;
+ LEXRETURN(NTWKADDR);
}
YY_BREAK
-case 38:
+case 40:
YY_RULE_SETUP
-#line 459 "toke.l"
+#line 514 "toke.l"
{
- if (!ipv6_valid(yytext)) {
+ if (!ipv6_valid(sudoerstext)) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
LEXTRACE("NTWKADDR ");
- return NTWKADDR;
+ LEXRETURN(NTWKADDR);
}
YY_BREAK
-case 39:
+case 41:
YY_RULE_SETUP
-#line 470 "toke.l"
+#line 525 "toke.l"
{
LEXTRACE("ALL ");
- return ALL;
+ LEXRETURN(ALL);
}
YY_BREAK
-case 40:
+case 42:
YY_RULE_SETUP
-#line 476 "toke.l"
+#line 531 "toke.l"
{
#ifdef HAVE_SELINUX
LEXTRACE("ROLE ");
- return ROLE;
+ LEXRETURN(ROLE);
#else
goto got_alias;
#endif
}
YY_BREAK
-case 41:
+case 43:
YY_RULE_SETUP
-#line 485 "toke.l"
+#line 540 "toke.l"
{
#ifdef HAVE_SELINUX
LEXTRACE("TYPE ");
- return TYPE;
+ LEXRETURN(TYPE);
#else
goto got_alias;
#endif
}
YY_BREAK
-case 42:
+case 44:
YY_RULE_SETUP
-#line 494 "toke.l"
+#line 548 "toke.l"
+{
+#ifdef HAVE_PRIV_SET
+ LEXTRACE("PRIVS ");
+ LEXRETURN(PRIVS);
+#else
+ goto got_alias;
+#endif
+ }
+ YY_BREAK
+case 45:
+YY_RULE_SETUP
+#line 557 "toke.l"
+{
+#ifdef HAVE_PRIV_SET
+ LEXTRACE("LIMITPRIVS ");
+ LEXRETURN(LIMITPRIVS);
+#else
+ goto got_alias;
+#endif
+ }
+ YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 566 "toke.l"
{
got_alias:
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
LEXTRACE("ALIAS ");
- return ALIAS;
+ LEXRETURN(ALIAS);
}
YY_BREAK
-case 43:
+case 47:
YY_RULE_SETUP
-#line 502 "toke.l"
+#line 574 "toke.l"
{
+ /* XXX - no way to specify digest for command */
/* no command args allowed for Defaults!/path */
- if (!fill_cmnd(yytext, yyleng))
+ if (!fill_cmnd(sudoerstext, sudoersleng))
yyterminate();
LEXTRACE("COMMAND ");
- return COMMAND;
+ LEXRETURN(COMMAND);
}
YY_BREAK
-case 44:
+case 48:
YY_RULE_SETUP
-#line 510 "toke.l"
+#line 583 "toke.l"
+{
+ digest_len = SHA224_DIGEST_LENGTH;
+ BEGIN WANTDIGEST;
+ LEXTRACE("SHA224 ");
+ LEXRETURN(SHA224);
+ }
+ YY_BREAK
+case 49:
+YY_RULE_SETUP
+#line 590 "toke.l"
+{
+ digest_len = SHA256_DIGEST_LENGTH;
+ BEGIN WANTDIGEST;
+ LEXTRACE("SHA256 ");
+ LEXRETURN(SHA256);
+ }
+ YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 597 "toke.l"
+{
+ digest_len = SHA384_DIGEST_LENGTH;
+ BEGIN WANTDIGEST;
+ LEXTRACE("SHA384 ");
+ LEXRETURN(SHA384);
+ }
+ YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 604 "toke.l"
+{
+ digest_len = SHA512_DIGEST_LENGTH;
+ BEGIN WANTDIGEST;
+ LEXTRACE("SHA512 ");
+ LEXRETURN(SHA512);
+ }
+ YY_BREAK
+case 52:
+YY_RULE_SETUP
+#line 611 "toke.l"
{
BEGIN GOTCMND;
LEXTRACE("COMMAND ");
- if (!fill_cmnd(yytext, yyleng))
+ if (!fill_cmnd(sudoerstext, sudoersleng))
yyterminate();
} /* sudo -e */
YY_BREAK
-case 45:
+case 53:
YY_RULE_SETUP
-#line 517 "toke.l"
+#line 618 "toke.l"
{
/* directories can't have args... */
- if (yytext[yyleng - 1] == '/') {
+ if (sudoerstext[sudoersleng - 1] == '/') {
LEXTRACE("COMMAND ");
- if (!fill_cmnd(yytext, yyleng))
+ if (!fill_cmnd(sudoerstext, sudoersleng))
yyterminate();
- return COMMAND;
+ LEXRETURN(COMMAND);
} else {
BEGIN GOTCMND;
LEXTRACE("COMMAND ");
- if (!fill_cmnd(yytext, yyleng))
+ if (!fill_cmnd(sudoerstext, sudoersleng))
yyterminate();
}
} /* a pathname */
YY_BREAK
-case 46:
+case 54:
YY_RULE_SETUP
-#line 532 "toke.l"
+#line 633 "toke.l"
{
LEXTRACE("BEGINSTR ");
- yylval.string = NULL;
+ sudoerslval.string = NULL;
prev_state = YY_START;
BEGIN INSTR;
}
YY_BREAK
-case 47:
+case 55:
YY_RULE_SETUP
-#line 539 "toke.l"
+#line 640 "toke.l"
{
/* a word */
- if (!fill(yytext, yyleng))
+ if (!fill(sudoerstext, sudoersleng))
yyterminate();
LEXTRACE("WORD(5) ");
- return WORD;
+ LEXRETURN(WORD);
}
YY_BREAK
-case 48:
+case 56:
YY_RULE_SETUP
-#line 547 "toke.l"
+#line 648 "toke.l"
{
LEXTRACE("( ");
- return '(';
+ LEXRETURN('(');
}
YY_BREAK
-case 49:
+case 57:
YY_RULE_SETUP
-#line 552 "toke.l"
+#line 653 "toke.l"
{
LEXTRACE(") ");
- return ')';
+ LEXRETURN(')');
}
YY_BREAK
-case 50:
+case 58:
YY_RULE_SETUP
-#line 557 "toke.l"
+#line 658 "toke.l"
{
LEXTRACE(", ");
- return ',';
+ LEXRETURN(',');
} /* return ',' */
YY_BREAK
-case 51:
+case 59:
YY_RULE_SETUP
-#line 562 "toke.l"
+#line 663 "toke.l"
{
LEXTRACE("= ");
- return '=';
+ LEXRETURN('=');
} /* return '=' */
YY_BREAK
-case 52:
+case 60:
YY_RULE_SETUP
-#line 567 "toke.l"
+#line 668 "toke.l"
{
LEXTRACE(": ");
- return ':';
+ LEXRETURN(':');
} /* return ':' */
YY_BREAK
-case 53:
+case 61:
YY_RULE_SETUP
-#line 572 "toke.l"
+#line 673 "toke.l"
{
- if (yyleng & 1) {
+ if (sudoersleng & 1) {
LEXTRACE("!");
- return '!'; /* return '!' */
+ LEXRETURN('!'); /* return '!' */
}
}
YY_BREAK
-case 54:
+case 62:
YY_RULE_SETUP
-#line 579 "toke.l"
+#line 680 "toke.l"
{
if (YY_START == INSTR) {
LEXTRACE("ERROR ");
- return ERROR; /* line break in string */
+ LEXRETURN(ERROR); /* line break in string */
}
BEGIN INITIAL;
- ++sudolineno;
- continued = FALSE;
+ sudolineno++;
+ continued = false;
LEXTRACE("\n");
- return COMMENT;
+ LEXRETURN(COMMENT);
} /* return newline */
YY_BREAK
-case 55:
+case 63:
YY_RULE_SETUP
-#line 591 "toke.l"
+#line 692 "toke.l"
{ /* throw away space/tabs */
- sawspace = TRUE; /* but remember for fill_args */
+ sawspace = true; /* but remember for fill_args */
}
YY_BREAK
-case 56:
+case 64:
YY_RULE_SETUP
-#line 595 "toke.l"
+#line 696 "toke.l"
{
- sawspace = TRUE; /* remember for fill_args */
- ++sudolineno;
- continued = TRUE;
+ sawspace = true; /* remember for fill_args */
+ sudolineno++;
+ continued = true;
} /* throw away EOL after \ */
YY_BREAK
-case 57:
+case 65:
YY_RULE_SETUP
-#line 601 "toke.l"
+#line 702 "toke.l"
{
BEGIN INITIAL;
- ++sudolineno;
- continued = FALSE;
+ sudolineno++;
+ continued = false;
LEXTRACE("#\n");
- return COMMENT;
+ LEXRETURN(COMMENT);
} /* comment, not uid/gid */
YY_BREAK
-case 58:
+case 66:
YY_RULE_SETUP
-#line 609 "toke.l"
+#line 710 "toke.l"
{
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
} /* parse error */
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(STARTDEFS):
case YY_STATE_EOF(INDEFS):
case YY_STATE_EOF(INSTR):
-#line 614 "toke.l"
+case YY_STATE_EOF(WANTDIGEST):
+#line 715 "toke.l"
{
if (YY_START != INITIAL) {
BEGIN INITIAL;
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
if (!pop_include())
yyterminate();
}
YY_BREAK
-case 59:
+case 67:
YY_RULE_SETUP
-#line 624 "toke.l"
+#line 725 "toke.l"
ECHO;
YY_BREAK
-#line 2441 "lex.yy.c"
+#line 3092 "lex.sudoers.c"
case YY_END_OF_BUFFER:
{
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 607 )
+ if ( yy_current_state >= 814 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 607 )
+ if ( yy_current_state >= 814 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 606);
+ yy_is_jam = (yy_current_state == 813);
return yy_is_jam ? 0 : yy_current_state;
}
return 0;
}
#endif
-#line 624 "toke.l"
+#line 725 "toke.l"
struct path_list {
char *path;
char *path;
struct path_list *more; /* more files in case of includedir */
int lineno;
- int keepopen;
+ bool keepopen;
};
static int
struct stat sb;
struct path_list *pl, *first = NULL;
struct path_list **sorted = NULL;
+ debug_decl(switch_dir, SUDO_DEBUG_PARSER)
if (!(dir = opendir(dirpath))) {
if (errno != ENOENT) {
- char *errbuf;
- if (asprintf(&errbuf, "%s: %s", dirpath, strerror(errno)) != -1) {
- yyerror(errbuf);
- free(errbuf);
- } else {
- yyerror("unable to allocate memory");
- }
+ warning("%s", dirpath);
+ sudoerserror(NULL);
}
goto done;
}
pl->path = path;
pl->next = first;
first = pl;
+ path = NULL;
count++;
}
closedir(dir);
}
done:
efree(dirpath);
- return path;
+ debug_return_str(path);
bad:
while (first != NULL) {
pl = first;
first = pl->next;
- free(pl->path);
- free(pl);
+ efree(pl->path);
+ efree(pl);
}
efree(sorted);
efree(dirpath);
efree(path);
- return NULL;
+ debug_return_str(NULL);
}
#define MAX_SUDOERS_DEPTH 128
static size_t istacksize, idepth;
static struct include_stack *istack;
-static int keepopen;
+static bool keepopen;
void
init_lexer(void)
{
struct path_list *pl;
+ debug_decl(init_lexer, SUDO_DEBUG_PARSER)
while (idepth) {
idepth--;
efree(istack[idepth].path);
if (idepth && !istack[idepth].keepopen)
fclose(istack[idepth].bs->yy_input_file);
- yy_delete_buffer(istack[idepth].bs);
+ sudoers_delete_buffer(istack[idepth].bs);
}
efree(istack);
istack = NULL;
istacksize = idepth = 0;
sudolineno = 1;
- keepopen = FALSE;
- sawspace = FALSE;
- continued = FALSE;
+ keepopen = false;
+ sawspace = false;
+ continued = false;
prev_state = INITIAL;
+
+ debug_return;
}
-static int
-_push_include(char *path, int isdir)
+static bool
+_push_include(char *path, bool isdir)
{
struct path_list *pl;
FILE *fp;
+ debug_decl(_push_include, SUDO_DEBUG_PARSER)
/* push current state onto stack */
if (idepth >= istacksize) {
if (idepth > MAX_SUDOERS_DEPTH) {
- yyerror("too many levels of includes");
- return FALSE;
+ sudoerserror(N_("too many levels of includes"));
+ debug_return_bool(false);
}
istacksize += SUDOERS_STACK_INCREMENT;
istack = (struct include_stack *) realloc(istack,
sizeof(*istack) * istacksize);
if (istack == NULL) {
- yyerror("unable to allocate memory");
- return FALSE;
+ warning(NULL);
+ sudoerserror(NULL);
+ debug_return_bool(false);
}
}
if (isdir) {
+ struct stat sb;
+ switch (sudo_secure_dir(path, sudoers_uid, sudoers_gid, &sb)) {
+ case SUDO_PATH_SECURE:
+ break;
+ case SUDO_PATH_MISSING:
+ debug_return_bool(false);
+ case SUDO_PATH_BAD_TYPE:
+ errno = ENOTDIR;
+ if (sudoers_warnings) {
+ warning("%s", path);
+ }
+ debug_return_bool(false);
+ case SUDO_PATH_WRONG_OWNER:
+ if (sudoers_warnings) {
+ warningx(_("%s is owned by uid %u, should be %u"),
+ path, (unsigned int) sb.st_uid,
+ (unsigned int) sudoers_uid);
+ }
+ debug_return_bool(false);
+ case SUDO_PATH_WORLD_WRITABLE:
+ if (sudoers_warnings) {
+ warningx(_("%s is world writable"), path);
+ }
+ debug_return_bool(false);
+ case SUDO_PATH_GROUP_WRITABLE:
+ if (sudoers_warnings) {
+ warningx(_("%s is owned by gid %u, should be %u"),
+ path, (unsigned int) sb.st_gid,
+ (unsigned int) sudoers_gid);
+ }
+ debug_return_bool(false);
+ default:
+ /* NOTREACHED */
+ debug_return_bool(false);
+ }
if (!(path = switch_dir(&istack[idepth], path))) {
- /* switch_dir() called yyerror() for us */
- return FALSE;
+ /* switch_dir() called sudoerserror() for us */
+ debug_return_bool(false);
}
- while ((fp = open_sudoers(path, FALSE, &keepopen)) == NULL) {
+ while ((fp = open_sudoers(path, false, &keepopen)) == NULL) {
/* Unable to open path in includedir, go to next one, if any. */
efree(path);
if ((pl = istack[idepth].more) == NULL)
- return FALSE;
+ debug_return_bool(false);
path = pl->path;
istack[idepth].more = pl->next;
efree(pl);
}
} else {
- if ((fp = open_sudoers(path, TRUE, &keepopen)) == NULL) {
- char *errbuf;
- if (asprintf(&errbuf, "%s: %s", path, strerror(errno)) != -1) {
- yyerror(errbuf);
- free(errbuf);
- } else {
- yyerror("unable to allocate memory");
- }
- return FALSE;
+ if ((fp = open_sudoers(path, true, &keepopen)) == NULL) {
+ /* The error was already printed by open_sudoers() */
+ sudoerserror(NULL);
+ debug_return_bool(false);
}
istack[idepth].more = NULL;
}
idepth++;
sudolineno = 1;
sudoers = path;
- yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE));
+ sudoers_switch_to_buffer(sudoers_create_buffer(fp, YY_BUF_SIZE));
- return TRUE;
+ debug_return_bool(true);
}
-static int
+static bool
pop_include(void)
{
struct path_list *pl;
FILE *fp;
+ debug_decl(pop_include, SUDO_DEBUG_PARSER)
if (idepth == 0)
- return FALSE;
+ debug_return_bool(false);
if (!keepopen)
fclose(YY_CURRENT_BUFFER->yy_input_file);
- yy_delete_buffer(YY_CURRENT_BUFFER);
+ sudoers_delete_buffer(YY_CURRENT_BUFFER);
/* If we are in an include dir, move to the next file. */
while ((pl = istack[idepth - 1].more) != NULL) {
- fp = open_sudoers(pl->path, FALSE, &keepopen);
+ fp = open_sudoers(pl->path, false, &keepopen);
if (fp != NULL) {
istack[idepth - 1].more = pl->next;
efree(sudoers);
sudoers = pl->path;
sudolineno = 1;
- yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE));
+ sudoers_switch_to_buffer(sudoers_create_buffer(fp, YY_BUF_SIZE));
efree(pl);
break;
}
/* If no path list, just pop the last dir on the stack. */
if (pl == NULL) {
idepth--;
- yy_switch_to_buffer(istack[idepth].bs);
+ sudoers_switch_to_buffer(istack[idepth].bs);
efree(sudoers);
sudoers = istack[idepth].path;
sudolineno = istack[idepth].lineno;
keepopen = istack[idepth].keepopen;
}
- return TRUE;
+ debug_return_bool(true);
}
static char *
parse_include(char *base)
{
- char *cp, *ep, *path;
- int len = 0, subst = 0;
+ char *cp, *ep, *path, *pp;
+ int dirlen = 0, len = 0, subst = 0;
size_t shost_len = 0;
+ debug_decl(parse_include, SUDO_DEBUG_PARSER)
/* Pull out path from #include line. */
cp = base + sizeof("#include");
ep++;
}
- /* Make a copy of path and return it. */
+ /* Relative paths are located in the same dir as the sudoers file. */
+ if (*cp != '/') {
+ char *dirend = strrchr(sudoers, '/');
+ if (dirend != NULL)
+ dirlen = (int)(dirend - sudoers) + 1;
+ }
+
+ /* Make a copy of the fully-qualified path and return it. */
len += (int)(ep - cp);
- if ((path = malloc(len + 1)) == NULL)
- yyerror("unable to allocate memory");
+ path = pp = malloc(len + dirlen + 1);
+ if (path == NULL) {
+ warning(NULL);
+ sudoerserror(NULL);
+ debug_return_str(NULL);
+ }
+ if (dirlen) {
+ memcpy(path, sudoers, dirlen);
+ pp += dirlen;
+ }
if (subst) {
/* substitute for %h */
- char *pp = path;
while (cp < ep) {
if (cp[0] == '%' && cp[1] == 'h') {
memcpy(pp, user_shost, shost_len);
}
*pp = '\0';
} else {
- memcpy(path, cp, len);
- path[len] = '\0';
+ memcpy(pp, cp, len);
+ pp[len] = '\0';
}
/* Push any excess characters (e.g. comment, newline) back to the lexer */
if (*ep != '\0')
yyless((int)(ep - base));
- return path;
+ debug_return_str(path);
}
#ifdef TRACELEXER
-static int
+int
sudoers_trace_print(const char *msg)
{
return fputs(msg, stderr);
}
+#else
+int
+sudoers_trace_print(const char *msg)
+{
+ static bool initialized;
+ static struct lbuf lbuf;
+
+ if (!initialized) {
+ initialized = true;
+ lbuf_init(&lbuf, NULL, 0, NULL, 0);
+ }
+
+ lbuf_append(&lbuf, "%s", msg);
+ /* XXX - assumes a final newline */
+ if (strchr(msg, '\n') != NULL)
+ {
+ sudo_debug_printf2(NULL, NULL, 0, SUDO_DEBUG_PARSER|SUDO_DEBUG_DEBUG,
+ "%s:%d %s", sudoers, sudolineno, lbuf.buf);
+ lbuf.len = 0;
+ }
+ return 0;
+}
#endif /* TRACELEXER */