/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /cvs/src/usr.bin/lex/flex.skl,v 1.11 2010/08/04 18:24:50 millert Exp $
+ * $Header: /home/cvs/openbsd/src/usr.bin/lex/flex.skl,v 1.11 2010/08/04 18:24:50 millert Exp $
*/
#define FLEX_SCANNER
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
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,
+ 18, 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, 0, 28, 42, 42, 21, 0, 18,
+ 37, 37, 37, 37, 37, 0, 28, 42, 42, 21,
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,
+ 37, 37, 37, 37, 0, 29, 0, 0, 19, 47,
+ 47, 47, 47, 47, 37, 37, 37, 37, 37, 35,
35, 35, 35, 35, 35, 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,
+ 886, 894, 1424, 913, 570, 3665, 2208, 2197, 2201, 2178,
+ 2185, 2194, 2194, 2176, 558, 2169, 2152, 2150, 648, 626,
+ 530, 559, 923, 336, 1467, 1503, 964, 2171, 2140, 2139,
+ 2138, 1537, 551, 1000, 1041, 1082, 653, 694, 797, 1049,
+
+ 923, 1580, 0, 1116, 1591, 1090, 1008, 1633, 1125, 2121,
+ 2082, 747, 686, 2064, 2071, 786, 926, 905, 2080, 2033,
+ 679, 634, 544, 915, 1675, 1710, 1745, 2052, 2043, 2033,
+ 1150, 1781, 1158, 1133, 1822, 1197, 1166, 2028, 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,
+ 1876, 1307, 1315, 1918, 1323, 1987, 1968, 1188, 3665, 1967,
+ 1951, 1929, 1913, 1286, 3665, 1336, 3665, 707, 1897, 1889,
+ 786, 930, 764, 1298, 1358, 1041, 1960, 1995, 1400, 1927,
+ 1879, 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,
+ 1557, 1602, 2126, 0, 1613, 2137, 1650, 1565, 1660, 1806,
+ 1779, 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,
+ 1887, 714, 825, 2419, 0, 926, 1407, 1468, 1430, 1431,
+ 1547, 3665, 1616, 3665, 1381, 1731, 1045, 1512, 1575, 1908,
+ 1913, 1970, 1498, 2429, 2465, 1947, 1611, 1981, 1264, 2006,
+ 2016, 2061, 1198, 1181, 1732, 1782, 2067, 1842, 2501, 0,
+ 1181, 2512, 2100, 1904, 2553, 2110, 2155, 2164, 2189, 1769,
+
+ 1142, 1232, 1634, 3665, 1699, 1095, 1077, 1025, 1046, 1306,
+ 3665, 384, 981, 2211, 2218, 2238, 2243, 2263, 2288, 2249,
+ 2307, 2596, 2632, 2668, 2304, 2354, 2395, 983, 894, 1902,
+ 1928, 2362, 1929, 2704, 0, 1428, 2715, 2403, 2437, 2445,
+ 867, 2454, 2474, 2483, 831, 1982, 3665, 1983, 782, 3665,
+ 1511, 2489, 2529, 2537, 1895, 2758, 2794, 2573, 2579, 650,
+ 2607, 2617, 2642, 629, 525, 1931, 447, 347, 2650, 0,
+ 1528, 2019, 3665, 2044, 1805, 2830, 2866, 2902, 2676, 2684,
+ 2692, 323, 0, 316, 2067, 3665, 166, 1845, 3665, 2733,
+ 1945, 2938, 2974, 2743, 3665, 2767, 2777, 2658, 3665, 2805,
2813, 2847, 63, 2855, 2881, 3665, 3023, 3039, 3055, 3071,
- 3087, 3103, 3119, 3135, 3151, 3157, 3173, 3189, 1498, 3205,
+ 3087, 3103, 3119, 3135, 3151, 3157, 3173, 3189, 2025, 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
+ 3583, 3589, 3597, 3604, 3610, 3618, 3624, 3632, 3648, 1295
} ;
static yyconst short int yy_def[671] =
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,
+ 606, 606, 606, 606, 606, 606, 659, 623, 611, 660,
+ 661, 611, 611, 611, 611, 611, 611, 606, 606, 606,
+ 606, 606, 606, 662, 662, 663, 442, 663, 663, 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,
+ 664, 664, 606, 606, 35, 35, 35, 606, 659, 659,
+ 606, 623, 611, 660, 660, 660, 660, 606, 660, 661,
+ 661, 611, 611, 611, 606, 606, 606, 606, 665, 665,
+ 666, 495, 666, 666, 534, 534, 606, 537, 537, 537,
+ 606, 606, 606, 606, 606, 606, 606, 35, 35, 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,
+ 569, 606, 606, 35, 669, 611, 611, 611, 606, 606,
+ 606, 606, 670, 670, 606, 606, 669, 669, 606, 611,
+ 611, 611, 611, 611, 606, 606, 606, 606, 606, 611,
611, 611, 611, 611, 611, 0, 606, 606, 606, 606,
606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
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,
+ 146, 93, 62, 15, 16, 17, 117, 63, 589, 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,
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,
+ 168, 168, 168, 606, 155, 156, 79, 231, 159, 382,
134, 160, 160, 160, 160, 160, 160, 160, 160, 241,
- 72, 15, 16, 17, 67, 63, 382, 170, 89, 283,
+ 72, 15, 16, 17, 67, 63, 532, 170, 89, 283,
68, 69, 70, 135, 162, 86, 214, 86, 86, 267,
- 530, 86, 86, 268, 71, 86, 170, 164, 165, 166,
+ 606, 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,
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,
+ 382, 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,
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,
+ 105, 178, 170, 275, 179, 282, 180, 117, 532, 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,
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,
+ 83, 142, 487, 322, 606, 606, 606, 606, 606, 606,
+ 606, 606, 78, 559, 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,
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,
+ 300, 78, 78, 133, 574, 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,
+ 419, 133, 133, 78, 201, 170, 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,
+ 201, 170, 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,
+ 303, 303, 303, 303, 304, 79, 201, 487, 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,
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,
+ 210, 210, 210, 211, 253, 170, 434, 212, 212, 212,
212, 212, 79, 337, 346, 338, 338, 338, 338, 338,
- 338, 338, 338, 349, 349, 349, 349, 349, 350, 487,
+ 338, 338, 338, 349, 349, 349, 349, 349, 350, 79,
212, 212, 212, 212, 212, 212, 170, 215, 216, 217,
- 215, 215, 215, 215, 215, 218, 527, 527, 434, 219,
+ 215, 215, 215, 215, 215, 218, 510, 511, 511, 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, 220, 606, 170, 550, 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,
+ 549, 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,
+ 387, 387, 387, 388, 79, 201, 170, 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,
+ 254, 255, 529, 529, 434, 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,
+ 337, 384, 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,
+ 260, 260, 260, 263, 170, 253, 170, 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,
+ 264, 264, 264, 264, 264, 264, 283, 478, 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,
+ 399, 399, 399, 399, 170, 599, 346, 510, 511, 365,
+ 599, 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,
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,
+ 504, 508, 301, 301, 301, 301, 301, 301, 170, 305,
+ 306, 307, 305, 305, 305, 305, 305, 308, 79, 565,
+ 565, 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,
+ 507, 253, 170, 506, 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,
+ 505, 472, 575, 83, 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,
+ 447, 447, 447, 448, 445, 445, 79, 434, 461, 583,
+ 583, 79, 332, 333, 334, 332, 332, 332, 332, 332,
+ 335, 253, 170, 444, 336, 336, 336, 336, 336, 512,
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,
+ 451, 451, 451, 451, 331, 503, 401, 79, 513, 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,
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,
+ 546, 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,
+ 470, 471, 547, 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,
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,
+ 383, 383, 383, 383, 384, 487, 588, 589, 385, 385,
385, 385, 385, 497, 498, 499, 497, 497, 497, 497,
- 497, 444, 331, 445, 445, 445, 445, 445, 445, 445,
+ 497, 444, 458, 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,
+ 389, 389, 389, 389, 389, 392, 588, 589, 457, 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,
+ 253, 170, 331, 402, 402, 402, 402, 402, 554, 515,
+ 401, 516, 517, 518, 515, 382, 516, 517, 518, 535,
+ 535, 535, 535, 535, 536, 487, 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,
+ 406, 382, 606, 79, 382, 409, 409, 409, 409, 409,
+ 251, 532, 532, 418, 532, 417, 519, 415, 590, 414,
+ 472, 521, 473, 473, 473, 473, 473, 473, 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,
+ 376, 376, 376, 546, 572, 522, 523, 524, 522, 522,
+ 522, 522, 522, 79, 413, 79, 525, 526, 527, 525,
+
+ 525, 525, 525, 525, 412, 547, 573, 411, 79, 375,
+ 376, 376, 376, 376, 376, 376, 376, 376, 79, 478,
+ 572, 479, 479, 479, 479, 479, 479, 479, 479, 478,
+ 410, 479, 479, 479, 479, 479, 479, 479, 479, 144,
+ 144, 337, 573, 79, 382, 585, 432, 432, 432, 432,
+ 432, 432, 432, 432, 384, 382, 331, 433, 433, 433,
+ 433, 433, 433, 433, 433, 434, 251, 586, 585, 435,
+ 435, 435, 435, 435, 478, 211, 479, 479, 479, 479,
+ 479, 479, 496, 496, 496, 496, 496, 496, 496, 496,
+ 586, 370, 435, 435, 435, 435, 435, 435, 439, 440,
+
+ 441, 439, 439, 439, 439, 439, 442, 369, 363, 362,
+ 443, 443, 443, 443, 443, 534, 534, 534, 534, 534,
+ 534, 534, 534, 606, 357, 533, 533, 533, 533, 533,
+ 533, 533, 533, 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,
+ 356, 331, 251, 211, 453, 453, 453, 453, 453, 170,
+ 541, 541, 541, 541, 541, 541, 541, 541, 170, 542,
+ 542, 542, 542, 542, 542, 542, 542, 453, 453, 453,
+ 453, 453, 453, 472, 211, 473, 473, 473, 473, 473,
+
+ 473, 473, 473, 170, 543, 543, 543, 543, 543, 544,
+ 541, 541, 606, 276, 606, 606, 606, 320, 319, 515,
+ 317, 516, 517, 518, 316, 315, 314, 313, 79, 472,
+ 312, 474, 474, 474, 474, 474, 474, 474, 474, 606,
+ 311, 516, 517, 518, 606, 310, 606, 606, 518, 292,
+ 606, 251, 606, 606, 606, 211, 288, 211, 103, 519,
+ 276, 278, 276, 277, 79, 472, 519, 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,
+ 553, 553, 553, 553, 553, 553, 519, 273, 272, 271,
+ 270, 519, 269, 97, 211, 514, 514, 521, 251, 514,
79, 472, 211, 477, 477, 477, 473, 473, 473, 473,
- 473, 512, 512, 512, 518, 518, 103, 559, 518, 560,
+ 473, 514, 514, 514, 520, 520, 103, 559, 520, 560,
560, 560, 560, 560, 560, 560, 560, 83, 199, 239,
- 518, 518, 518, 236, 235, 234, 79, 382, 233, 485,
+ 520, 520, 520, 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,
+ 561, 561, 561, 561, 561, 561, 561, 540, 540, 540,
+ 540, 540, 540, 540, 540, 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,
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,
+ 568, 568, 568, 568, 568, 568, 568, 568, 170, 541,
+ 541, 541, 541, 541, 541, 541, 541, 79, 472, 103,
+ 473, 473, 473, 473, 473, 473, 473, 473, 170, 541,
+ 541, 541, 541, 541, 541, 541, 541, 170, 541, 541,
+
+ 541, 541, 541, 541, 553, 553, 553, 553, 553, 553,
+ 553, 553, 95, 79, 382, 83, 530, 530, 530, 530,
+ 530, 530, 530, 530, 487, 382, 83, 531, 531, 531,
+ 531, 531, 531, 531, 531, 532, 199, 151, 152, 533,
+ 533, 533, 533, 533, 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,
+ 146, 146, 533, 533, 533, 533, 533, 533, 537, 538,
+ 539, 537, 537, 537, 537, 537, 138, 197, 132, 132,
+ 540, 540, 540, 540, 540, 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,
+ 579, 579, 189, 540, 540, 540, 540, 540, 540, 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,
+ 584, 584, 584, 595, 595, 595, 595, 595, 595, 103,
79, 554, 78, 557, 557, 557, 557, 557, 558, 555,
- 555, 593, 593, 593, 593, 593, 593, 593, 593, 594,
+ 555, 595, 595, 595, 595, 595, 595, 595, 595, 596,
- 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,
+ 596, 596, 596, 596, 596, 596, 596, 597, 597, 597,
+ 597, 597, 598, 595, 595, 103, 79, 382, 163, 566,
+ 566, 566, 566, 566, 566, 566, 566, 532, 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,
+ 602, 600, 600, 600, 600, 600, 590, 146, 591, 591,
+ 591, 591, 591, 591, 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,
+ 555, 79, 595, 595, 595, 595, 595, 595, 595, 595,
+ 128, 79, 595, 595, 595, 595, 595, 595, 595, 595,
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, 606, 79, 590, 606, 591, 591, 591, 591, 591,
+ 591, 591, 591, 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,
+ 603, 603, 603, 603, 603, 603, 603, 603, 79, 590,
+ 606, 592, 592, 592, 592, 592, 592, 592, 592, 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, 79, 590, 606, 593, 593, 593,
+ 593, 593, 594, 591, 591, 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,
+ 79, 590, 606, 591, 591, 591, 591, 591, 591, 591,
+ 591, 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, 79, 590, 606, 591,
+ 591, 591, 591, 591, 591, 591, 591, 606, 606, 606,
606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
606, 606, 606, 606, 606, 606, 606, 606, 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,
+ 501, 509, 509, 509, 509, 509, 509, 509, 509, 509,
+ 509, 509, 509, 509, 509, 509, 509, 514, 514, 606,
+ 514, 514, 514, 606, 606, 514, 514, 514, 606, 606,
+ 514, 514, 514, 520, 520, 606, 520, 520, 520, 606,
+ 606, 520, 520, 520, 606, 606, 520, 520, 520, 528,
+
+ 528, 606, 606, 606, 528, 529, 606, 529, 529, 606,
+ 606, 606, 529, 545, 545, 606, 606, 606, 606, 545,
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,
+ 583, 606, 583, 606, 606, 606, 606, 583, 587, 587,
+ 587, 587, 587, 587, 587, 587, 587, 587, 587, 587,
+ 587, 587, 587, 587, 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,
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,
+ 70, 25, 6, 7, 7, 7, 45, 7, 587, 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,
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,
+ 101, 101, 101, 86, 155, 155, 198, 185, 87, 584,
55, 87, 87, 87, 87, 87, 87, 87, 87, 198,
- 9, 10, 10, 10, 10, 10, 584, 171, 86, 284,
+ 9, 10, 10, 10, 10, 10, 582, 171, 86, 284,
10, 10, 10, 55, 161, 89, 171, 89, 89, 222,
- 582, 89, 89, 222, 10, 89, 213, 95, 95, 95,
+ 568, 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,
+ 92, 92, 192, 195, 284, 195, 512, 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,
+ 131, 131, 131, 131, 131, 26, 512, 26, 26, 26,
26, 26, 26, 32, 146, 238, 238, 146, 146, 32,
- 568, 191, 32, 32, 146, 32, 32, 32, 32, 32,
+ 567, 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, 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,
+ 35, 109, 252, 231, 109, 241, 109, 117, 565, 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,
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,
+ 279, 63, 564, 280, 63, 63, 63, 63, 63, 63,
+ 63, 63, 79, 560, 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,
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,
+ 299, 135, 135, 135, 549, 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,
+ 371, 135, 135, 135, 164, 545, 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,
+ 165, 541, 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,
+ 262, 262, 262, 262, 262, 165, 166, 529, 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,
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, 170, 170, 345, 345, 528, 170, 170, 170,
170, 170, 287, 294, 345, 294, 294, 294, 294, 294,
- 294, 294, 294, 307, 307, 307, 307, 307, 307, 527,
+ 294, 294, 294, 307, 307, 307, 307, 307, 307, 513,
170, 170, 170, 170, 170, 170, 172, 172, 172, 172,
- 172, 172, 172, 172, 172, 172, 491, 491, 526, 172,
+ 172, 172, 172, 172, 172, 172, 467, 467, 509, 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, 173, 347, 347, 508, 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,
+ 507, 203, 203, 203, 203, 203, 203, 203, 203, 304,
+ 304, 304, 304, 304, 304, 304, 304, 506, 309, 304,
309, 309, 309, 309, 309, 309, 309, 309, 334, 334,
- 334, 334, 334, 334, 203, 204, 507, 204, 204, 204,
+ 334, 334, 334, 334, 203, 204, 501, 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,
+ 215, 215, 491, 491, 484, 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,
+ 341, 483, 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, 218, 218, 397, 502, 502, 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,
+ 218, 218, 218, 218, 218, 218, 242, 479, 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,
+ 350, 350, 350, 350, 398, 670, 350, 510, 510, 364,
+ 670, 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,
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,
+ 457, 465, 260, 260, 260, 260, 260, 260, 263, 263,
+ 263, 263, 263, 263, 263, 263, 263, 263, 379, 536,
+ 536, 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,
+ 460, 399, 399, 459, 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,
+ 458, 473, 551, 551, 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,
+ 396, 396, 396, 396, 396, 396, 473, 435, 461, 571,
+ 571, 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,
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, 332, 332, 486, 575, 575, 332, 332,
332, 332, 332, 444, 444, 444, 444, 444, 444, 444,
- 444, 446, 381, 446, 446, 446, 446, 446, 446, 446,
+ 444, 446, 411, 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, 335, 335, 588, 588, 410, 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,
+ 451, 451, 381, 351, 351, 351, 351, 351, 555, 470,
+ 451, 470, 470, 470, 471, 530, 471, 471, 471, 494,
+ 494, 494, 494, 494, 494, 530, 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, 531, 533, 555, 566, 354, 354, 354, 354, 354,
+ 380, 531, 533, 370, 566, 369, 470, 363, 591, 362,
+ 476, 471, 476, 476, 476, 476, 476, 476, 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,
+ 377, 377, 377, 546, 548, 472, 472, 472, 472, 472,
+ 472, 472, 472, 591, 361, 476, 478, 478, 478, 478,
+
+ 478, 478, 478, 478, 360, 546, 548, 357, 377, 378,
+ 378, 378, 378, 378, 378, 378, 378, 378, 472, 480,
+ 572, 480, 480, 480, 480, 480, 480, 480, 480, 481,
+ 356, 481, 481, 481, 481, 481, 481, 481, 481, 619,
+ 619, 338, 572, 378, 386, 574, 386, 386, 386, 386,
+ 386, 386, 386, 386, 386, 389, 330, 389, 389, 389,
+ 389, 389, 389, 389, 389, 389, 329, 574, 585, 389,
+ 389, 389, 389, 389, 482, 328, 482, 482, 482, 482,
+ 482, 482, 487, 487, 487, 487, 487, 487, 487, 487,
+ 585, 320, 389, 389, 389, 389, 389, 389, 392, 392,
+
+ 392, 392, 392, 392, 392, 392, 392, 319, 315, 314,
+ 392, 392, 392, 392, 392, 493, 493, 493, 493, 493,
+ 493, 493, 493, 496, 311, 496, 496, 496, 496, 496,
+ 496, 496, 496, 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,
+ 310, 291, 290, 289, 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,
+ 406, 406, 406, 423, 288, 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,
+ 499, 499, 514, 278, 514, 514, 514, 277, 276, 515,
+ 274, 515, 515, 515, 273, 272, 271, 270, 423, 424,
+ 269, 424, 424, 424, 424, 424, 424, 424, 424, 516,
+ 268, 516, 516, 516, 517, 267, 517, 517, 517, 251,
+ 520, 250, 520, 520, 520, 249, 248, 246, 245, 514,
+ 236, 235, 234, 233, 424, 425, 515, 425, 425, 425,
+ 425, 425, 425, 425, 425, 518, 232, 229, 518, 518,
+ 518, 518, 518, 518, 518, 518, 516, 227, 226, 225,
+ 224, 517, 223, 220, 212, 519, 519, 520, 211, 519,
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,
+ 426, 519, 519, 519, 521, 521, 207, 525, 521, 525,
+ 525, 525, 525, 525, 525, 525, 525, 200, 199, 193,
+ 521, 521, 521, 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,
+ 183, 182, 439, 439, 439, 439, 439, 526, 181, 526,
+ 526, 526, 526, 526, 526, 526, 526, 532, 532, 532,
+ 532, 532, 532, 532, 532, 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,
+ 180, 179, 178, 442, 442, 442, 442, 442, 527, 177,
+ 527, 527, 527, 527, 527, 527, 527, 527, 538, 538,
+ 538, 538, 538, 538, 538, 538, 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,
+ 474, 474, 539, 539, 539, 539, 539, 539, 540, 175,
+ 540, 540, 540, 540, 540, 540, 540, 540, 542, 542,
+ 542, 542, 542, 542, 542, 542, 542, 474, 475, 169,
+ 475, 475, 475, 475, 475, 475, 475, 475, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 544, 544, 544,
- 542, 542, 542, 542, 552, 552, 552, 552, 552, 552,
+ 544, 544, 544, 544, 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,
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,
+ 559, 559, 121, 495, 495, 495, 495, 495, 495, 522,
+ 120, 522, 522, 522, 522, 522, 522, 522, 522, 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,
+ 113, 112, 111, 110, 522, 523, 108, 523, 523, 523,
+ 523, 523, 523, 523, 523, 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,
+ 569, 569, 569, 598, 598, 598, 598, 598, 598, 102,
+ 523, 524, 98, 524, 524, 524, 524, 524, 524, 524,
+ 524, 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,
+ 581, 581, 581, 581, 581, 97, 524, 534, 93, 534,
+ 534, 534, 534, 534, 534, 534, 534, 534, 537, 90,
+ 537, 537, 537, 537, 537, 537, 537, 537, 82, 81,
+ 80, 78, 537, 537, 537, 537, 537, 73, 590, 590,
+ 590, 590, 590, 590, 590, 590, 594, 66, 594, 594,
+ 594, 594, 594, 594, 59, 537, 537, 537, 537, 537,
+ 537, 556, 54, 556, 556, 556, 556, 556, 556, 556,
+ 556, 590, 596, 596, 596, 596, 596, 596, 596, 596,
+ 51, 594, 597, 597, 597, 597, 597, 597, 597, 597,
49, 41, 40, 39, 38, 37, 556, 557, 36, 557,
557, 557, 557, 557, 557, 557, 557, 33, 29, 23,
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,
+ 578, 592, 0, 592, 592, 592, 592, 592, 592, 592,
+ 592, 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,
+ 0, 0, 0, 0, 0, 0, 592, 593, 0, 593,
+ 593, 593, 593, 593, 593, 593, 593, 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, 591, 607, 607, 607, 607, 607, 607, 607,
+ 0, 0, 593, 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,
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,
+ 658, 659, 659, 659, 659, 659, 659, 659, 659, 659,
+ 659, 659, 659, 659, 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,
+ 660, 660, 660, 661, 661, 0, 661, 661, 661, 0,
+ 0, 661, 661, 661, 0, 0, 661, 661, 661, 662,
- 0, 0, 0, 663, 664, 664, 664, 664, 664, 664,
- 664, 664, 664, 664, 664, 664, 664, 664, 664, 664,
+ 662, 0, 0, 0, 662, 663, 0, 663, 663, 0,
+ 0, 0, 663, 664, 664, 0, 0, 0, 0, 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,
+ 668, 0, 668, 0, 0, 0, 0, 668, 669, 669,
+ 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
+ 669, 669, 669, 669, 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,
#include "parse.h"
#include "toke.h"
#include <gram.h>
+#include "lbuf.h"
extern YYSTYPE yylval;
-extern int parse_error;
+extern bool parse_error;
int sudolineno;
+int last_token;
char *sudoers;
-static int continued, prev_state, sawspace;
+static bool continued, sawspace;
+static int prev_state;
-static int _push_include(char *, int);
-static int pop_include(void);
+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 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"
+#line 1515 "lex.yy.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 123 "toke.l"
-#line 1667 "lex.yy.c"
+#line 1671 "lex.yy.c"
if ( yy_init )
{
case 1:
YY_RULE_SETUP
-#line 120 "toke.l"
+#line 124 "toke.l"
{
LEXTRACE(", ");
- return ',';
+ LEXRETURN(',');
} /* return ',' */
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 125 "toke.l"
+#line 129 "toke.l"
BEGIN STARTDEFS;
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 127 "toke.l"
+#line 131 "toke.l"
{
BEGIN INDEFS;
LEXTRACE("DEFVAR ");
if (!fill(yytext, yyleng))
yyterminate();
- return DEFVAR;
+ LEXRETURN(DEFVAR);
}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 136 "toke.l"
+#line 140 "toke.l"
{
BEGIN STARTDEFS;
LEXTRACE(", ");
- return ',';
+ LEXRETURN(',');
} /* return ',' */
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 142 "toke.l"
+#line 146 "toke.l"
{
LEXTRACE("= ");
- return '=';
+ LEXRETURN('=');
} /* return '=' */
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 147 "toke.l"
+#line 151 "toke.l"
{
LEXTRACE("+= ");
- return '+';
+ LEXRETURN('+');
} /* return '+' */
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 152 "toke.l"
+#line 156 "toke.l"
{
LEXTRACE("-= ");
- return '-';
+ LEXRETURN('-');
} /* return '-' */
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 157 "toke.l"
+#line 161 "toke.l"
{
LEXTRACE("BEGINSTR ");
yylval.string = NULL;
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 164 "toke.l"
+#line 168 "toke.l"
{
LEXTRACE("WORD(2) ");
if (!fill(yytext, yyleng))
yyterminate();
- return WORD;
+ LEXRETURN(WORD);
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 173 "toke.l"
+#line 177 "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 183 "toke.l"
{
LEXTRACE("ENDSTR ");
BEGIN prev_state;
if (yylval.string == NULL) {
LEXTRACE("ERROR "); /* empty string */
- return ERROR;
+ LEXRETURN(ERROR);
}
if (prev_state == INITIAL) {
switch (yylval.string[0]) {
(yylval.string[1] == ':' &&
yylval.string[2] == '\0')) {
LEXTRACE("ERROR "); /* empty group */
- return ERROR;
+ LEXRETURN(ERROR);
}
LEXTRACE("USERGROUP ");
- return USERGROUP;
+ LEXRETURN(USERGROUP);
case '+':
if (yylval.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 215 "toke.l"
{
LEXTRACE("BACKSLASH ");
if (!append(yytext, yyleng))
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 217 "toke.l"
+#line 221 "toke.l"
{
LEXTRACE("STRBODY ");
if (!append(yytext, yyleng))
case 14:
YY_RULE_SETUP
-#line 225 "toke.l"
+#line 229 "toke.l"
{
/* quoted fnmatch glob char, pass verbatim */
LEXTRACE("QUOTEDCHAR ");
if (!fill_args(yytext, 2, sawspace))
yyterminate();
- sawspace = FALSE;
+ sawspace = false;
}
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 233 "toke.l"
+#line 237 "toke.l"
{
/* quoted sudoers special char, strip backslash */
LEXTRACE("QUOTEDCHAR ");
if (!fill_args(yytext + 1, 1, sawspace))
yyterminate();
- sawspace = FALSE;
+ sawspace = false;
}
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 241 "toke.l"
+#line 245 "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 251 "toke.l"
{
LEXTRACE("ARG ");
if (!fill_args(yytext, yyleng, sawspace))
yyterminate();
- sawspace = FALSE;
+ sawspace = false;
} /* a command line arg */
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 255 "toke.l"
+#line 259 "toke.l"
{
char *path;
if (continued) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
if ((path = parse_include(yytext)) == NULL)
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 273 "toke.l"
+#line 277 "toke.l"
{
char *path;
if (continued) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
if ((path = parse_include(yytext)) == NULL)
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 294 "toke.l"
+#line 298 "toke.l"
{
char deftype;
int n;
if (continued) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
for (n = 0; isblank((unsigned char)yytext[n]); n++)
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:
YY_RULE_SETUP
-#line 334 "toke.l"
+#line 338 "toke.l"
{
int n;
if (continued) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
for (n = 0; isblank((unsigned char)yytext[n]); n++)
switch (yytext[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:
YY_RULE_SETUP
-#line 360 "toke.l"
+#line 364 "toke.l"
{
/* cmnd does not require passwd for this user */
LEXTRACE("NOPASSWD ");
- return NOPASSWD;
+ LEXRETURN(NOPASSWD);
}
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 366 "toke.l"
+#line 370 "toke.l"
{
/* cmnd requires passwd for this user */
LEXTRACE("PASSWD ");
- return PASSWD;
+ LEXRETURN(PASSWD);
}
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 372 "toke.l"
+#line 376 "toke.l"
{
LEXTRACE("NOEXEC ");
- return NOEXEC;
+ LEXRETURN(NOEXEC);
}
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 377 "toke.l"
+#line 381 "toke.l"
{
LEXTRACE("EXEC ");
- return EXEC;
+ LEXRETURN(EXEC);
}
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 382 "toke.l"
+#line 386 "toke.l"
{
LEXTRACE("SETENV ");
- return SETENV;
+ LEXRETURN(SETENV);
}
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 387 "toke.l"
+#line 391 "toke.l"
{
LEXTRACE("NOSETENV ");
- return NOSETENV;
+ LEXRETURN(NOSETENV);
}
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 392 "toke.l"
+#line 396 "toke.l"
{
LEXTRACE("LOG_OUTPUT ");
- return LOG_OUTPUT;
+ LEXRETURN(LOG_OUTPUT);
}
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 397 "toke.l"
+#line 401 "toke.l"
{
LEXTRACE("NOLOG_OUTPUT ");
- return NOLOG_OUTPUT;
+ LEXRETURN(NOLOG_OUTPUT);
}
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 402 "toke.l"
+#line 406 "toke.l"
{
LEXTRACE("LOG_INPUT ");
- return LOG_INPUT;
+ LEXRETURN(LOG_INPUT);
}
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 407 "toke.l"
+#line 411 "toke.l"
{
LEXTRACE("NOLOG_INPUT ");
- return NOLOG_INPUT;
+ LEXRETURN(NOLOG_INPUT);
}
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 412 "toke.l"
+#line 416 "toke.l"
{
/* empty group or netgroup */
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 418 "toke.l"
+#line 422 "toke.l"
{
/* netgroup */
if (!fill(yytext, yyleng))
yyterminate();
LEXTRACE("NETGROUP ");
- return NETGROUP;
+ LEXRETURN(NETGROUP);
}
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 426 "toke.l"
+#line 430 "toke.l"
{
/* group */
if (!fill(yytext, yyleng))
yyterminate();
LEXTRACE("USERGROUP ");
- return USERGROUP;
+ LEXRETURN(USERGROUP);
}
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 434 "toke.l"
+#line 438 "toke.l"
{
if (!fill(yytext, yyleng))
yyterminate();
LEXTRACE("NTWKADDR ");
- return NTWKADDR;
+ LEXRETURN(NTWKADDR);
}
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 441 "toke.l"
+#line 445 "toke.l"
{
if (!fill(yytext, yyleng))
yyterminate();
LEXTRACE("NTWKADDR ");
- return NTWKADDR;
+ LEXRETURN(NTWKADDR);
}
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 448 "toke.l"
+#line 452 "toke.l"
{
if (!ipv6_valid(yytext)) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
if (!fill(yytext, yyleng))
yyterminate();
LEXTRACE("NTWKADDR ");
- return NTWKADDR;
+ LEXRETURN(NTWKADDR);
}
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 459 "toke.l"
+#line 463 "toke.l"
{
if (!ipv6_valid(yytext)) {
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
if (!fill(yytext, yyleng))
yyterminate();
LEXTRACE("NTWKADDR ");
- return NTWKADDR;
+ LEXRETURN(NTWKADDR);
}
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 470 "toke.l"
+#line 474 "toke.l"
{
LEXTRACE("ALL ");
- return ALL;
+ LEXRETURN(ALL);
}
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 476 "toke.l"
+#line 480 "toke.l"
{
#ifdef HAVE_SELINUX
LEXTRACE("ROLE ");
- return ROLE;
+ LEXRETURN(ROLE);
#else
goto got_alias;
#endif
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 485 "toke.l"
+#line 489 "toke.l"
{
#ifdef HAVE_SELINUX
LEXTRACE("TYPE ");
- return TYPE;
+ LEXRETURN(TYPE);
#else
goto got_alias;
#endif
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 494 "toke.l"
+#line 498 "toke.l"
{
#ifndef HAVE_SELINUX
got_alias:
if (!fill(yytext, yyleng))
yyterminate();
LEXTRACE("ALIAS ");
- return ALIAS;
+ LEXRETURN(ALIAS);
}
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 504 "toke.l"
+#line 508 "toke.l"
{
/* no command args allowed for Defaults!/path */
if (!fill_cmnd(yytext, yyleng))
yyterminate();
LEXTRACE("COMMAND ");
- return COMMAND;
+ LEXRETURN(COMMAND);
}
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 512 "toke.l"
+#line 516 "toke.l"
{
BEGIN GOTCMND;
LEXTRACE("COMMAND ");
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 519 "toke.l"
+#line 523 "toke.l"
{
/* directories can't have args... */
if (yytext[yyleng - 1] == '/') {
LEXTRACE("COMMAND ");
if (!fill_cmnd(yytext, yyleng))
yyterminate();
- return COMMAND;
+ LEXRETURN(COMMAND);
} else {
BEGIN GOTCMND;
LEXTRACE("COMMAND ");
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 534 "toke.l"
+#line 538 "toke.l"
{
LEXTRACE("BEGINSTR ");
yylval.string = NULL;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 541 "toke.l"
+#line 545 "toke.l"
{
/* a word */
if (!fill(yytext, yyleng))
yyterminate();
LEXTRACE("WORD(5) ");
- return WORD;
+ LEXRETURN(WORD);
}
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 549 "toke.l"
+#line 553 "toke.l"
{
LEXTRACE("( ");
- return '(';
+ LEXRETURN('(');
}
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 554 "toke.l"
+#line 558 "toke.l"
{
LEXTRACE(") ");
- return ')';
+ LEXRETURN(')');
}
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 559 "toke.l"
+#line 563 "toke.l"
{
LEXTRACE(", ");
- return ',';
+ LEXRETURN(',');
} /* return ',' */
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 564 "toke.l"
+#line 568 "toke.l"
{
LEXTRACE("= ");
- return '=';
+ LEXRETURN('=');
} /* return '=' */
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 569 "toke.l"
+#line 573 "toke.l"
{
LEXTRACE(": ");
- return ':';
+ LEXRETURN(':');
} /* return ':' */
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 574 "toke.l"
+#line 578 "toke.l"
{
if (yyleng & 1) {
LEXTRACE("!");
- return '!'; /* return '!' */
+ LEXRETURN('!'); /* return '!' */
}
}
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 581 "toke.l"
+#line 585 "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:
YY_RULE_SETUP
-#line 593 "toke.l"
+#line 597 "toke.l"
{ /* throw away space/tabs */
- sawspace = TRUE; /* but remember for fill_args */
+ sawspace = true; /* but remember for fill_args */
}
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 597 "toke.l"
+#line 601 "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:
YY_RULE_SETUP
-#line 603 "toke.l"
+#line 607 "toke.l"
{
BEGIN INITIAL;
- ++sudolineno;
- continued = FALSE;
+ sudolineno++;
+ continued = false;
LEXTRACE("#\n");
- return COMMENT;
+ LEXRETURN(COMMENT);
} /* comment, not uid/gid */
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 611 "toke.l"
+#line 615 "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 616 "toke.l"
+#line 620 "toke.l"
{
if (YY_START != INITIAL) {
BEGIN INITIAL;
LEXTRACE("ERROR ");
- return ERROR;
+ LEXRETURN(ERROR);
}
if (!pop_include())
yyterminate();
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 626 "toke.l"
+#line 630 "toke.l"
ECHO;
YY_BREAK
-#line 2443 "lex.yy.c"
+#line 2447 "lex.yy.c"
case YY_END_OF_BUFFER:
{
return 0;
}
#endif
-#line 626 "toke.l"
+#line 630 "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) {
}
done:
efree(dirpath);
- return path;
+ debug_return_str(path);
bad:
while (first != NULL) {
pl = first;
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--;
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;
+ 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;
+ debug_return_bool(false);
}
}
if (isdir) {
if (!(path = switch_dir(&istack[idepth], path))) {
/* switch_dir() called yyerror() for us */
- return FALSE;
+ 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) {
+ if ((fp = open_sudoers(path, true, &keepopen)) == NULL) {
char *errbuf;
if (asprintf(&errbuf, _("%s: %s"), path, strerror(errno)) != -1) {
yyerror(errbuf);
} else {
yyerror(_("unable to allocate memory"));
}
- return FALSE;
+ debug_return_bool(false);
}
istack[idepth].more = NULL;
}
sudoers = path;
yy_switch_to_buffer(yy_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);
/* 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);
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) {
+ path = pp = malloc(len + dirlen + 1);
+ if (path == NULL) {
yyerror(_("unable to allocate memory"));
- return 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
{
return fputs(msg, stderr);
}
+#else
+static 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(SUDO_DEBUG_PARSER|SUDO_DEBUG_DEBUG, "%s:%d %s",
+ sudoers, sudolineno, lbuf.buf);
+ lbuf.len = 0;
+ }
+ return 0;
+}
#endif /* TRACELEXER */