*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 35
-#define YY_END_OF_BUFFER 36
-static yyconst short int yy_accept[299] =
+#define YY_NUM_RULES 37
+#define YY_END_OF_BUFFER 38
+static yyconst short int yy_accept[319] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 36, 25, 31, 30, 29, 34, 25, 20,
- 34, 25, 26, 25, 25, 25, 25, 28, 27, 21,
- 21, 21, 34, 21, 21, 21, 21, 21, 22, 34,
- 22, 23, 22, 22, 22, 22, 22, 21, 21, 21,
- 34, 1, 11, 10, 11, 10, 10, 34, 34, 2,
- 8, 8, 8, 3, 8, 4, 34, 25, 0, 31,
- 29, 0, 33, 17, 0, 16, 0, 24, 24, 0,
- 25, 25, 25, 25, 25, 21, 21, 21, 25, 32,
- 25, 25, 25, 25, 25, 22, 0, 22, 17, 0,
-
- 16, 0, 22, 0, 22, 22, 22, 22, 22, 21,
- 21, 21, 22, 1, 11, 11, 9, 9, 0, 2,
- 8, 0, 8, 0, 0, 5, 6, 8, 8, 0,
- 25, 25, 25, 21, 21, 25, 25, 25, 25, 25,
- 22, 22, 22, 21, 21, 7, 7, 0, 7, 8,
- 25, 25, 25, 25, 25, 21, 21, 25, 25, 25,
- 22, 22, 22, 22, 22, 21, 21, 7, 25, 25,
- 25, 21, 21, 25, 25, 22, 22, 22, 21, 21,
- 25, 25, 25, 25, 25, 21, 21, 25, 25, 22,
- 22, 22, 22, 22, 21, 21, 18, 18, 18, 21,
-
- 0, 15, 25, 25, 18, 18, 18, 21, 25, 18,
- 18, 18, 18, 21, 25, 12, 22, 18, 18, 18,
- 18, 21, 25, 19, 19, 19, 0, 14, 25, 12,
- 22, 19, 19, 19, 25, 25, 19, 19, 19, 19,
- 19, 13, 22, 22, 19, 19, 19, 19, 19, 25,
- 25, 25, 19, 19, 22, 22, 22, 19, 19, 25,
- 25, 25, 25, 25, 22, 22, 22, 22, 22, 25,
- 25, 25, 22, 22, 22, 25, 25, 25, 25, 25,
- 22, 22, 22, 22, 22, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 0
-
+ 0, 0, 38, 27, 33, 32, 31, 36, 27, 22,
+ 36, 27, 28, 27, 27, 27, 27, 30, 29, 23,
+ 23, 23, 23, 36, 23, 23, 23, 23, 23, 24,
+ 36, 24, 25, 24, 24, 24, 24, 24, 23, 23,
+ 23, 23, 36, 1, 11, 10, 11, 10, 10, 36,
+ 36, 2, 8, 8, 8, 3, 8, 4, 36, 27,
+ 0, 33, 31, 0, 35, 19, 0, 18, 0, 26,
+ 26, 0, 27, 27, 27, 27, 27, 23, 23, 23,
+ 23, 27, 34, 27, 27, 27, 27, 27, 24, 0,
+
+ 24, 19, 0, 18, 0, 24, 0, 24, 24, 24,
+ 24, 24, 23, 23, 23, 23, 24, 1, 11, 11,
+ 9, 9, 0, 2, 8, 0, 8, 0, 0, 5,
+ 6, 8, 8, 0, 27, 27, 27, 23, 23, 23,
+ 23, 27, 27, 27, 27, 27, 24, 24, 24, 23,
+ 23, 23, 23, 7, 7, 0, 7, 8, 27, 27,
+ 27, 27, 27, 23, 23, 23, 23, 27, 27, 27,
+ 24, 24, 24, 24, 24, 23, 23, 23, 23, 7,
+ 27, 27, 27, 0, 17, 23, 23, 23, 27, 27,
+ 24, 24, 24, 23, 23, 23, 27, 27, 27, 27,
+
+ 27, 23, 23, 23, 27, 27, 24, 24, 24, 24,
+ 24, 23, 23, 23, 20, 20, 20, 0, 16, 23,
+ 0, 15, 27, 27, 20, 20, 20, 23, 27, 20,
+ 20, 20, 20, 23, 27, 12, 24, 20, 20, 20,
+ 20, 23, 27, 21, 21, 21, 0, 14, 27, 12,
+ 24, 21, 21, 21, 27, 27, 21, 21, 21, 21,
+ 21, 13, 24, 24, 21, 21, 21, 21, 21, 27,
+ 27, 27, 21, 21, 24, 24, 24, 21, 21, 27,
+ 27, 27, 27, 27, 24, 24, 24, 24, 24, 27,
+ 27, 27, 24, 24, 24, 27, 27, 27, 27, 27,
+
+ 24, 24, 24, 24, 24, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 0
} ;
static yyconst int yy_ec[256] =
1, 2, 4, 5, 6, 1, 7, 1, 1, 8,
9, 1, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 21, 21, 21, 22, 1, 1,
- 23, 24, 1, 24, 25, 26, 27, 28, 26, 26,
- 26, 29, 26, 26, 26, 26, 26, 30, 31, 32,
- 26, 33, 34, 26, 35, 26, 36, 26, 26, 26,
- 1, 37, 1, 1, 38, 1, 39, 40, 40, 41,
-
- 42, 43, 40, 40, 44, 40, 40, 45, 46, 47,
- 48, 40, 40, 49, 50, 51, 52, 40, 40, 40,
- 40, 40, 1, 1, 1, 1, 1, 1, 1, 1,
+ 23, 24, 1, 24, 25, 26, 27, 28, 29, 26,
+ 26, 30, 26, 26, 26, 26, 26, 31, 32, 33,
+ 26, 34, 35, 26, 36, 26, 37, 38, 26, 26,
+ 1, 39, 1, 1, 40, 1, 41, 42, 42, 43,
+
+ 44, 45, 42, 42, 46, 42, 42, 47, 48, 49,
+ 50, 42, 42, 51, 52, 53, 54, 42, 42, 42,
+ 42, 42, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 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[53] =
+static yyconst int yy_meta[55] =
{ 0,
1, 2, 2, 3, 1, 4, 1, 3, 3, 1,
- 2, 5, 1, 1, 5, 5, 5, 5, 5, 5,
- 5, 6, 4, 3, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 7, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 5, 4, 3, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 6, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7
} ;
-static yyconst short int yy_base[319] =
+static yyconst short int yy_base[338] =
{ 0,
- 0, 26, 61, 0, 112, 113, 120, 156, 192, 243,
- 294, 330, 627, 589, 623, 1808, 619, 619, 584, 1808,
- 1808, 583, 1808, 124, 355, 119, 134, 1808, 1808, 380,
- 586, 579, 417, 557, 558, 551, 546, 545, 556, 0,
- 553, 1808, 551, 160, 429, 155, 170, 454, 555, 545,
- 491, 565, 0, 1808, 561, 0, 1808, 307, 54, 0,
- 526, 343, 93, 1808, 104, 1808, 142, 521, 514, 555,
- 552, 544, 1808, 507, 537, 505, 560, 315, 503, 583,
- 593, 143, 0, 0, 503, 0, 489, 485, 144, 1808,
- 118, 140, 154, 145, 163, 480, 629, 0, 475, 652,
-
- 474, 675, 353, 698, 708, 186, 0, 0, 489, 0,
- 477, 467, 211, 496, 0, 492, 199, 1808, 204, 0,
- 431, 248, 380, 214, 215, 1808, 1808, 427, 219, 251,
- 733, 742, 751, 438, 428, 88, 21, 166, 171, 175,
- 760, 769, 778, 436, 421, 416, 1808, 221, 454, 613,
- 785, 242, 810, 819, 828, 409, 386, 178, 223, 226,
- 837, 264, 846, 855, 864, 360, 345, 265, 873, 882,
- 891, 335, 328, 241, 224, 900, 909, 918, 321, 323,
- 925, 290, 950, 959, 968, 311, 306, 227, 174, 977,
- 301, 986, 995, 1004, 285, 341, 1012, 414, 488, 288,
-
- 356, 1808, 278, 270, 1037, 511, 534, 283, 1044, 323,
- 0, 0, 247, 357, 228, 365, 1068, 351, 0, 0,
- 207, 362, 1077, 1086, 1095, 1104, 402, 1808, 275, 1808,
- 1113, 1122, 1131, 1140, 1147, 313, 1172, 1181, 1190, 1199,
- 559, 190, 1208, 414, 1217, 1226, 1235, 1244, 564, 1253,
- 1262, 1271, 1280, 421, 1289, 1298, 1307, 1316, 518, 1323,
- 439, 1348, 1357, 1366, 1373, 441, 1398, 1407, 1416, 1425,
- 1434, 1443, 1452, 1461, 1470, 1479, 560, 1488, 1497, 1506,
- 1515, 565, 1524, 1533, 1542, 1551, 1560, 1569, 1578, 1587,
- 1596, 172, 1603, 627, 129, 1626, 650, 1808, 1663, 1671,
-
- 1679, 1687, 1695, 1703, 1711, 1719, 1727, 158, 1735, 1743,
- 1751, 1759, 109, 1767, 1775, 1783, 1791, 1799
+ 0, 28, 64, 0, 55, 117, 118, 124, 162, 215,
+ 268, 306, 1086, 1046, 1079, 1680, 1068, 1053, 1008, 1680,
+ 1680, 999, 1680, 128, 333, 154, 161, 1680, 1680, 372,
+ 989, 986, 965, 425, 909, 912, 905, 900, 873, 877,
+ 170, 868, 1680, 859, 280, 437, 177, 207, 476, 851,
+ 832, 823, 529, 837, 0, 1680, 826, 0, 1680, 291,
+ 57, 0, 782, 320, 110, 1680, 111, 1680, 136, 773,
+ 552, 801, 790, 782, 1680, 737, 575, 694, 598, 297,
+ 681, 621, 213, 145, 0, 0, 697, 0, 681, 115,
+ 674, 197, 1680, 104, 106, 103, 196, 115, 665, 644,
+
+ 345, 658, 667, 656, 690, 331, 713, 422, 207, 0,
+ 0, 672, 0, 657, 127, 646, 236, 672, 0, 668,
+ 159, 1680, 238, 0, 631, 275, 461, 237, 244, 1680,
+ 1680, 624, 248, 372, 526, 549, 572, 622, 609, 617,
+ 605, 205, 251, 243, 293, 264, 595, 618, 641, 601,
+ 588, 599, 570, 564, 1680, 294, 677, 700, 710, 328,
+ 725, 735, 744, 298, 572, 561, 557, 288, 317, 285,
+ 753, 329, 762, 771, 780, 336, 551, 543, 534, 342,
+ 789, 798, 807, 374, 1680, 532, 515, 521, 405, 412,
+ 816, 825, 834, 458, 435, 441, 841, 432, 850, 866,
+
+ 875, 458, 398, 460, 426, 393, 884, 638, 893, 902,
+ 911, 476, 343, 477, 919, 857, 926, 662, 1680, 347,
+ 663, 1680, 429, 435, 946, 932, 953, 267, 959, 330,
+ 0, 0, 264, 685, 495, 533, 967, 534, 0, 0,
+ 232, 745, 976, 986, 995, 1004, 1007, 1680, 543, 1680,
+ 1015, 1024, 1033, 1042, 1049, 695, 1058, 1074, 1083, 1092,
+ 1067, 204, 1101, 719, 1110, 1119, 1128, 1137, 1146, 1151,
+ 1160, 1171, 1180, 602, 1189, 1198, 1207, 1216, 1223, 1226,
+ 987, 1235, 1251, 1260, 1267, 1250, 1277, 1292, 1301, 1310,
+ 1319, 1328, 1337, 1346, 1355, 1364, 1261, 1373, 1382, 1391,
+
+ 1400, 1383, 1410, 1419, 1428, 1437, 1446, 1455, 1464, 1473,
+ 1482, 198, 1489, 1496, 144, 1502, 1514, 1680, 1553, 1560,
+ 1567, 1574, 1581, 1588, 1595, 1602, 1609, 1616, 1623, 1630,
+ 1637, 124, 1644, 1651, 1658, 1665, 1672
} ;
-static yyconst short int yy_def[319] =
+static yyconst short int yy_def[338] =
{ 0,
- 298, 1, 298, 3, 1, 1, 299, 299, 300, 300,
- 301, 301, 298, 302, 298, 298, 298, 303, 304, 298,
- 298, 305, 298, 306, 302, 25, 25, 298, 298, 25,
- 30, 30, 302, 30, 30, 30, 30, 30, 307, 308,
- 309, 298, 310, 311, 307, 45, 45, 45, 48, 48,
- 307, 298, 312, 298, 312, 312, 298, 298, 298, 313,
- 314, 315, 314, 298, 314, 298, 316, 302, 302, 298,
- 298, 303, 298, 304, 304, 305, 305, 306, 317, 302,
- 302, 302, 25, 25, 25, 30, 30, 30, 302, 298,
- 302, 302, 302, 302, 302, 307, 307, 308, 309, 309,
-
- 310, 310, 311, 307, 307, 307, 45, 45, 45, 48,
- 48, 48, 307, 298, 312, 312, 298, 298, 298, 313,
- 314, 314, 315, 318, 315, 298, 298, 314, 314, 298,
- 25, 25, 25, 30, 30, 302, 302, 302, 302, 302,
- 45, 45, 45, 48, 48, 314, 298, 318, 315, 315,
- 302, 302, 25, 25, 25, 30, 30, 302, 302, 302,
- 45, 307, 45, 45, 45, 48, 48, 318, 25, 25,
- 25, 30, 30, 302, 302, 45, 45, 45, 48, 48,
- 302, 302, 25, 25, 25, 30, 30, 302, 302, 45,
- 307, 45, 45, 45, 48, 48, 302, 197, 197, 30,
-
- 298, 298, 302, 302, 45, 205, 205, 48, 302, 302,
- 197, 197, 197, 30, 302, 302, 205, 307, 205, 205,
- 205, 48, 25, 25, 25, 25, 298, 298, 302, 298,
- 45, 45, 45, 45, 302, 302, 25, 25, 25, 25,
- 302, 302, 45, 307, 45, 45, 45, 45, 307, 25,
- 25, 25, 25, 302, 45, 45, 45, 45, 307, 302,
- 302, 25, 25, 25, 307, 307, 45, 45, 45, 25,
- 25, 25, 45, 45, 45, 25, 302, 25, 25, 25,
- 45, 307, 45, 45, 45, 25, 25, 25, 45, 45,
- 45, 302, 302, 302, 307, 307, 307, 0, 298, 298,
-
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298
+ 318, 1, 318, 3, 1, 1, 319, 319, 320, 320,
+ 321, 321, 318, 322, 318, 318, 318, 323, 324, 318,
+ 318, 325, 318, 326, 322, 25, 25, 318, 318, 318,
+ 30, 30, 30, 322, 30, 30, 30, 30, 30, 327,
+ 318, 328, 318, 329, 330, 327, 46, 46, 318, 49,
+ 49, 49, 327, 318, 331, 318, 331, 331, 318, 318,
+ 318, 332, 333, 334, 333, 318, 333, 318, 335, 322,
+ 322, 318, 318, 323, 318, 324, 324, 325, 325, 326,
+ 336, 322, 322, 322, 25, 25, 25, 30, 30, 30,
+ 30, 322, 318, 322, 322, 322, 322, 322, 327, 327,
+
+ 318, 328, 328, 329, 329, 330, 327, 327, 327, 46,
+ 46, 46, 49, 49, 49, 49, 327, 318, 331, 331,
+ 318, 318, 318, 332, 333, 333, 334, 337, 334, 318,
+ 318, 333, 333, 318, 25, 25, 25, 30, 30, 30,
+ 30, 322, 322, 322, 322, 322, 46, 46, 46, 49,
+ 49, 49, 49, 333, 318, 337, 334, 334, 322, 322,
+ 25, 25, 25, 30, 30, 30, 30, 322, 322, 322,
+ 46, 327, 46, 46, 46, 49, 49, 49, 49, 337,
+ 25, 25, 25, 318, 318, 30, 30, 30, 322, 322,
+ 46, 46, 46, 49, 49, 49, 322, 322, 25, 25,
+
+ 25, 30, 30, 30, 322, 322, 46, 327, 46, 46,
+ 46, 49, 49, 49, 322, 215, 215, 318, 318, 30,
+ 318, 318, 322, 322, 46, 225, 225, 49, 322, 322,
+ 215, 215, 215, 30, 322, 322, 225, 327, 225, 225,
+ 225, 49, 25, 25, 25, 25, 318, 318, 322, 318,
+ 46, 46, 46, 46, 322, 322, 25, 25, 25, 25,
+ 322, 322, 46, 327, 46, 46, 46, 46, 327, 25,
+ 25, 25, 25, 322, 46, 46, 46, 46, 327, 322,
+ 322, 25, 25, 25, 327, 327, 46, 46, 46, 25,
+ 25, 25, 46, 46, 46, 25, 322, 25, 25, 25,
+
+ 46, 327, 46, 46, 46, 25, 25, 25, 46, 46,
+ 46, 322, 322, 322, 327, 327, 327, 0, 318, 318,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318, 318, 318, 318
} ;
-static yyconst short int yy_nxt[1861] =
+static yyconst short int yy_nxt[1735] =
{ 0,
14, 15, 16, 17, 14, 18, 19, 20, 21, 22,
23, 14, 14, 24, 25, 26, 27, 25, 25, 25,
- 25, 28, 29, 21, 30, 30, 30, 30, 30, 31,
- 30, 32, 30, 30, 30, 30, 33, 14, 14, 14,
+ 25, 28, 29, 21, 30, 30, 30, 30, 31, 30,
+ 32, 30, 33, 30, 30, 30, 30, 30, 34, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 34, 35, 36, 119, 90, 69, 37, 159,
- 38, 39, 15, 16, 17, 39, 40, 41, 21, 42,
- 43, 23, 39, 39, 44, 45, 46, 47, 45, 45,
- 45, 45, 28, 29, 21, 48, 48, 48, 48, 48,
- 49, 48, 50, 48, 48, 48, 48, 51, 39, 39,
-
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 52, 52, 126, 120, 21, 21, 21,
- 21, 15, 54, 55, 69, 56, 127, 79, 158, 122,
- 57, 79, 79, 83, 83, 83, 83, 83, 83, 83,
- 122, 57, 56, 129, 90, 119, 90, 79, 84, 84,
- 84, 84, 84, 85, 69, 81, 58, 15, 54, 55,
- 80, 56, 98, 79, 136, 97, 57, 79, 79, 107,
- 107, 107, 107, 107, 107, 107, 69, 57, 56, 69,
- 69, 69, 137, 79, 108, 108, 108, 108, 108, 109,
- 69, 139, 58, 15, 16, 17, 104, 18, 105, 69,
-
- 119, 90, 69, 138, 140, 119, 90, 69, 69, 160,
- 69, 69, 119, 90, 69, 174, 158, 124, 147, 149,
- 119, 90, 97, 158, 204, 168, 69, 96, 59, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 15, 16, 17, 97, 18, 121,
- 148, 150, 79, 121, 151, 122, 79, 148, 121, 69,
- 69, 79, 69, 69, 69, 188, 229, 68, 189, 147,
- 121, 203, 79, 79, 175, 158, 161, 69, 69, 59,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 15, 16, 17, 62, 18,
-
- 97, 148, 181, 63, 64, 65, 69, 201, 117, 90,
- 222, 69, 118, 190, 69, 214, 66, 118, 79, 216,
- 208, 215, 79, 79, 242, 235, 69, 202, 118, 118,
- 67, 15, 16, 17, 62, 18, 209, 97, 79, 63,
- 64, 65, 201, 118, 124, 124, 200, 121, 124, 69,
- 196, 80, 66, 124, 195, 187, 79, 201, 227, 69,
- 79, 79, 202, 227, 217, 124, 67, 81, 186, 82,
- 82, 82, 82, 82, 82, 82, 79, 202, 228, 125,
- 180, 124, 124, 228, 146, 124, 230, 97, 230, 104,
- 124, 69, 68, 179, 86, 86, 86, 86, 86, 86,
-
- 86, 69, 124, 227, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 125, 86, 89, 90,
- 68, 173, 68, 228, 68, 68, 243, 68, 211, 211,
- 211, 211, 211, 211, 211, 254, 254, 254, 68, 68,
- 68, 105, 172, 106, 106, 106, 106, 106, 106, 106,
- 97, 260, 122, 265, 167, 124, 124, 69, 146, 124,
- 166, 157, 156, 122, 124, 97, 96, 122, 110, 110,
- 110, 110, 110, 110, 110, 69, 124, 97, 110, 110,
- 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 125, 110, 113, 90, 96, 116, 96, 114, 96, 96,
-
- 145, 96, 212, 212, 212, 212, 212, 213, 144, 96,
- 102, 100, 96, 96, 96, 68, 97, 68, 135, 68,
- 134, 68, 68, 68, 68, 219, 219, 219, 219, 219,
- 219, 219, 259, 259, 259, 68, 68, 68, 74, 130,
- 74, 77, 74, 75, 74, 74, 73, 74, 220, 220,
- 220, 220, 220, 221, 97, 71, 70, 69, 74, 74,
- 74, 76, 122, 76, 116, 76, 114, 76, 76, 112,
- 76, 235, 276, 254, 254, 254, 243, 281, 259, 259,
- 259, 76, 76, 76, 78, 111, 68, 102, 78, 100,
- 68, 68, 97, 78, 95, 69, 69, 94, 93, 92,
-
- 97, 97, 91, 88, 78, 78, 68, 131, 132, 133,
- 131, 131, 131, 131, 124, 124, 87, 149, 124, 77,
- 75, 73, 71, 124, 70, 69, 298, 298, 298, 69,
- 96, 298, 96, 298, 96, 124, 96, 96, 298, 96,
- 298, 292, 292, 292, 292, 292, 292, 298, 298, 125,
- 96, 96, 96, 99, 298, 99, 298, 99, 298, 99,
- 99, 298, 99, 69, 295, 295, 295, 295, 295, 295,
- 298, 298, 298, 99, 99, 99, 101, 298, 101, 298,
- 101, 298, 101, 101, 298, 101, 97, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 101, 101, 101, 103,
-
- 298, 96, 298, 103, 298, 96, 96, 298, 103, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 103,
- 103, 96, 141, 142, 143, 141, 141, 141, 141, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 97, 151, 298, 152, 152, 152,
- 152, 152, 152, 152, 151, 298, 153, 153, 153, 153,
- 153, 153, 153, 151, 298, 154, 154, 154, 154, 154,
- 155, 152, 161, 298, 162, 162, 162, 162, 162, 162,
- 162, 161, 298, 163, 163, 163, 163, 163, 163, 163,
- 161, 298, 164, 164, 164, 164, 164, 165, 162, 169,
-
- 170, 171, 169, 169, 169, 169, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 69, 151, 298, 152, 152, 152, 152, 152, 152,
- 152, 151, 298, 152, 152, 152, 152, 152, 152, 152,
- 151, 298, 152, 152, 152, 152, 152, 152, 68, 96,
- 298, 176, 177, 178, 176, 176, 176, 176, 161, 298,
- 162, 162, 162, 162, 162, 162, 162, 161, 298, 162,
- 162, 162, 162, 162, 162, 162, 161, 298, 162, 162,
- 162, 162, 162, 162, 96, 181, 298, 182, 182, 182,
- 182, 182, 182, 182, 181, 298, 183, 183, 183, 183,
-
- 183, 183, 183, 181, 298, 184, 184, 184, 184, 184,
- 185, 182, 190, 298, 191, 191, 191, 191, 191, 191,
- 191, 190, 298, 192, 192, 192, 192, 192, 192, 192,
- 190, 298, 193, 193, 193, 193, 193, 194, 191, 197,
- 198, 199, 197, 197, 197, 197, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 69, 181, 298, 182, 182, 182, 182, 182, 182,
- 182, 181, 298, 182, 182, 182, 182, 182, 182, 182,
- 181, 298, 182, 182, 182, 182, 182, 182, 68, 96,
- 298, 205, 206, 207, 205, 205, 205, 205, 190, 298,
-
- 191, 191, 191, 191, 191, 191, 191, 190, 298, 191,
- 191, 191, 191, 191, 191, 191, 190, 298, 191, 191,
- 191, 191, 191, 191, 96, 209, 210, 210, 210, 210,
- 210, 210, 210, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 69, 96,
- 217, 218, 218, 218, 218, 218, 218, 218, 223, 224,
- 225, 226, 223, 223, 223, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 69, 96, 231, 232, 233, 234, 231, 231, 231, 235,
- 298, 236, 236, 236, 236, 236, 236, 236, 235, 298,
-
- 237, 237, 237, 237, 237, 237, 237, 235, 298, 238,
- 238, 238, 238, 238, 239, 240, 235, 298, 241, 241,
- 241, 236, 236, 236, 236, 243, 298, 244, 244, 244,
- 244, 244, 244, 244, 243, 298, 245, 245, 245, 245,
- 245, 245, 245, 243, 298, 246, 246, 246, 246, 246,
- 247, 248, 243, 298, 249, 249, 249, 244, 244, 244,
- 244, 250, 251, 252, 250, 250, 250, 250, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 69, 235, 298, 240, 240, 240, 240,
- 240, 240, 240, 235, 298, 240, 240, 240, 240, 240,
-
- 240, 240, 235, 298, 240, 240, 240, 240, 240, 240,
- 253, 235, 298, 253, 253, 253, 253, 253, 253, 253,
- 96, 298, 255, 256, 257, 255, 255, 255, 255, 243,
- 298, 248, 248, 248, 248, 248, 248, 248, 243, 298,
- 248, 248, 248, 248, 248, 248, 248, 243, 298, 248,
- 248, 248, 248, 248, 248, 258, 243, 298, 258, 258,
- 258, 258, 258, 258, 258, 260, 298, 261, 261, 261,
- 261, 261, 261, 261, 260, 298, 262, 262, 262, 262,
- 262, 262, 262, 260, 298, 263, 263, 263, 263, 263,
- 264, 261, 68, 298, 253, 253, 253, 253, 253, 253,
-
- 253, 265, 298, 266, 266, 266, 266, 266, 266, 266,
- 265, 298, 267, 267, 267, 267, 267, 267, 267, 265,
- 298, 268, 268, 268, 268, 268, 269, 266, 96, 298,
- 258, 258, 258, 258, 258, 258, 258, 270, 271, 272,
- 270, 270, 270, 270, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 69,
- 260, 298, 261, 261, 261, 261, 261, 261, 261, 260,
- 298, 261, 261, 261, 261, 261, 261, 261, 260, 298,
- 261, 261, 261, 261, 261, 261, 68, 273, 274, 275,
- 273, 273, 273, 273, 298, 298, 298, 298, 298, 298,
-
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 97,
- 265, 298, 266, 266, 266, 266, 266, 266, 266, 265,
- 298, 266, 266, 266, 266, 266, 266, 266, 265, 298,
- 266, 266, 266, 266, 266, 266, 96, 276, 298, 277,
- 277, 277, 277, 277, 277, 277, 276, 298, 278, 278,
- 278, 278, 278, 278, 278, 276, 298, 279, 279, 279,
- 279, 279, 280, 277, 281, 298, 282, 282, 282, 282,
- 282, 282, 282, 281, 298, 283, 283, 283, 283, 283,
- 283, 283, 281, 298, 284, 284, 284, 284, 284, 285,
- 282, 68, 298, 286, 287, 288, 286, 286, 286, 286,
-
- 276, 298, 277, 277, 277, 277, 277, 277, 277, 276,
- 298, 277, 277, 277, 277, 277, 277, 277, 276, 298,
- 277, 277, 277, 277, 277, 277, 68, 96, 298, 289,
- 290, 291, 289, 289, 289, 289, 281, 298, 282, 282,
- 282, 282, 282, 282, 282, 281, 298, 282, 282, 282,
- 282, 282, 282, 282, 281, 298, 282, 282, 282, 282,
- 282, 282, 96, 68, 298, 292, 292, 292, 292, 292,
- 292, 292, 68, 298, 286, 286, 286, 286, 286, 286,
- 286, 68, 298, 293, 293, 293, 293, 293, 294, 292,
- 96, 298, 295, 295, 295, 295, 295, 295, 295, 96,
-
- 298, 289, 289, 289, 289, 289, 289, 289, 96, 298,
- 296, 296, 296, 296, 296, 297, 295, 292, 292, 292,
- 292, 292, 292, 292, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 69,
- 295, 295, 295, 295, 295, 295, 295, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 97, 53, 53, 53, 53, 53, 53, 53,
- 53, 21, 21, 21, 21, 21, 21, 21, 21, 61,
- 61, 61, 61, 61, 61, 61, 61, 68, 298, 298,
- 298, 68, 298, 68, 68, 72, 72, 72, 72, 72,
-
- 72, 72, 72, 74, 298, 298, 298, 74, 298, 74,
- 74, 76, 298, 298, 298, 76, 298, 76, 76, 78,
- 298, 78, 298, 78, 298, 78, 78, 96, 298, 298,
- 298, 96, 298, 96, 96, 99, 298, 298, 298, 99,
- 298, 99, 99, 101, 298, 298, 298, 101, 298, 101,
- 101, 103, 298, 103, 298, 103, 298, 103, 103, 115,
- 298, 115, 115, 115, 298, 298, 115, 121, 298, 121,
- 298, 121, 121, 121, 121, 123, 123, 123, 123, 123,
- 123, 123, 123, 128, 128, 128, 128, 128, 128, 128,
- 128, 79, 298, 79, 298, 79, 298, 79, 79, 124,
-
- 124, 124, 124, 124, 124, 124, 124, 13, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298
+ 14, 14, 14, 14, 35, 36, 54, 37, 123, 93,
+ 21, 38, 21, 39, 40, 15, 16, 17, 40, 41,
+ 42, 21, 43, 44, 23, 40, 40, 45, 46, 47,
+ 48, 46, 46, 46, 46, 28, 29, 21, 49, 49,
+ 49, 49, 50, 49, 51, 49, 52, 49, 49, 49,
+
+ 49, 49, 53, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40, 54, 15,
+ 56, 57, 21, 58, 21, 15, 56, 57, 59, 58,
+ 124, 81, 130, 131, 59, 81, 81, 133, 93, 59,
+ 58, 71, 71, 139, 71, 59, 58, 140, 126, 126,
+ 143, 81, 142, 71, 144, 151, 60, 83, 146, 152,
+ 123, 93, 60, 15, 16, 17, 82, 18, 85, 85,
+ 85, 85, 85, 85, 85, 86, 86, 86, 86, 86,
+ 87, 101, 100, 71, 101, 101, 101, 101, 101, 101,
+ 101, 110, 110, 110, 110, 110, 110, 110, 123, 93,
+
+ 61, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 15, 16, 17, 108,
+ 18, 111, 111, 111, 111, 111, 112, 135, 136, 137,
+ 135, 135, 135, 135, 71, 71, 71, 123, 93, 123,
+ 93, 155, 71, 71, 145, 100, 128, 168, 157, 123,
+ 93, 71, 99, 61, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62, 62, 15,
+ 16, 17, 64, 18, 100, 156, 125, 65, 66, 67,
+ 125, 71, 158, 81, 70, 125, 126, 81, 81, 71,
+ 68, 169, 121, 93, 242, 168, 122, 125, 180, 184,
+
+ 81, 122, 71, 81, 81, 81, 69, 15, 16, 17,
+ 64, 18, 122, 122, 168, 65, 66, 67, 107, 185,
+ 81, 128, 128, 71, 125, 128, 71, 189, 68, 122,
+ 128, 71, 156, 170, 81, 82, 168, 184, 81, 81,
+ 159, 171, 128, 229, 69, 83, 155, 84, 84, 84,
+ 84, 84, 84, 84, 81, 71, 101, 185, 129, 101,
+ 101, 101, 101, 101, 101, 101, 71, 100, 71, 107,
+ 190, 71, 70, 81, 234, 184, 70, 81, 70, 228,
+ 156, 70, 81, 70, 70, 70, 88, 88, 88, 88,
+ 88, 88, 88, 81, 81, 185, 88, 88, 88, 88,
+
+ 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
+ 71, 88, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 92, 93, 70, 205,
+ 70, 71, 70, 70, 220, 70, 147, 148, 149, 147,
+ 147, 147, 147, 71, 197, 224, 70, 70, 70, 108,
+ 71, 109, 109, 109, 109, 109, 109, 109, 206, 218,
+ 100, 221, 128, 128, 71, 154, 128, 71, 214, 213,
+ 71, 128, 223, 71, 235, 100, 99, 218, 221, 219,
+ 99, 222, 99, 128, 212, 99, 236, 99, 99, 99,
+ 113, 113, 113, 113, 113, 113, 113, 219, 222, 129,
+
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 100, 113, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
+ 117, 93, 99, 71, 99, 249, 99, 99, 159, 99,
+ 160, 160, 160, 160, 160, 160, 160, 237, 204, 203,
+ 99, 99, 99, 70, 250, 70, 250, 70, 202, 70,
+ 70, 159, 70, 161, 161, 161, 161, 161, 161, 161,
+ 196, 71, 100, 70, 70, 70, 76, 195, 76, 194,
+ 76, 71, 76, 76, 159, 76, 162, 162, 162, 162,
+ 162, 163, 160, 188, 262, 187, 76, 76, 76, 78,
+
+ 186, 78, 126, 78, 179, 78, 78, 171, 78, 172,
+ 172, 172, 172, 172, 172, 172, 274, 274, 274, 78,
+ 78, 78, 80, 178, 70, 177, 80, 176, 70, 70,
+ 171, 80, 173, 173, 173, 173, 173, 173, 173, 167,
+ 71, 166, 80, 80, 70, 99, 165, 99, 164, 99,
+ 207, 99, 99, 171, 99, 174, 174, 174, 174, 174,
+ 175, 172, 126, 218, 221, 99, 99, 99, 102, 126,
+ 102, 120, 102, 118, 102, 102, 100, 102, 128, 128,
+ 153, 154, 128, 219, 222, 150, 247, 128, 102, 102,
+ 102, 104, 99, 104, 105, 104, 103, 104, 104, 128,
+
+ 104, 128, 128, 100, 157, 128, 248, 255, 141, 138,
+ 128, 104, 104, 104, 106, 129, 99, 70, 106, 134,
+ 99, 99, 128, 106, 181, 182, 183, 181, 181, 181,
+ 181, 263, 79, 71, 106, 106, 99, 159, 129, 160,
+ 160, 160, 160, 160, 160, 160, 247, 159, 71, 160,
+ 160, 160, 160, 160, 160, 160, 159, 100, 160, 160,
+ 160, 160, 160, 160, 70, 99, 248, 191, 192, 193,
+ 191, 191, 191, 191, 171, 77, 172, 172, 172, 172,
+ 172, 172, 172, 171, 75, 172, 172, 172, 172, 172,
+ 172, 172, 171, 73, 172, 172, 172, 172, 172, 172,
+
+ 99, 197, 72, 198, 198, 198, 198, 198, 198, 198,
+ 197, 71, 199, 199, 199, 199, 199, 199, 199, 197,
+ 126, 200, 200, 200, 200, 200, 201, 198, 207, 120,
+ 208, 208, 208, 208, 208, 208, 208, 207, 118, 209,
+ 209, 209, 209, 209, 209, 209, 207, 116, 210, 210,
+ 210, 210, 210, 211, 208, 215, 216, 217, 215, 215,
+ 215, 215, 197, 115, 198, 198, 198, 198, 198, 198,
+ 198, 231, 231, 231, 231, 231, 231, 231, 197, 71,
+ 198, 198, 198, 198, 198, 198, 198, 197, 114, 198,
+ 198, 198, 198, 198, 198, 70, 99, 105, 225, 226,
+
+ 227, 225, 225, 225, 225, 207, 103, 208, 208, 208,
+ 208, 208, 208, 208, 207, 100, 208, 208, 208, 208,
+ 208, 208, 208, 207, 98, 208, 208, 208, 208, 208,
+ 208, 99, 229, 230, 230, 230, 230, 230, 230, 230,
+ 232, 232, 232, 232, 232, 233, 239, 239, 239, 239,
+ 239, 239, 239, 97, 96, 95, 94, 71, 99, 237,
+ 238, 238, 238, 238, 238, 238, 238, 240, 240, 240,
+ 240, 240, 241, 243, 244, 245, 246, 243, 243, 243,
+ 99, 251, 252, 253, 254, 251, 251, 251, 255, 91,
+ 256, 256, 256, 256, 256, 256, 256, 71, 255, 280,
+
+ 257, 257, 257, 257, 257, 257, 257, 255, 247, 258,
+ 258, 258, 258, 258, 259, 260, 255, 90, 261, 261,
+ 261, 256, 256, 256, 256, 71, 89, 263, 248, 264,
+ 264, 264, 264, 264, 264, 264, 263, 79, 265, 265,
+ 265, 265, 265, 265, 265, 263, 77, 266, 266, 266,
+ 266, 266, 267, 268, 263, 75, 269, 269, 269, 264,
+ 264, 264, 264, 270, 271, 272, 270, 270, 270, 270,
+ 255, 73, 260, 260, 260, 260, 260, 260, 260, 255,
+ 72, 274, 274, 274, 71, 318, 255, 71, 260, 260,
+ 260, 260, 260, 260, 260, 255, 318, 260, 260, 260,
+
+ 260, 260, 260, 273, 255, 71, 273, 273, 273, 273,
+ 273, 273, 273, 99, 318, 275, 276, 277, 275, 275,
+ 275, 275, 263, 318, 268, 268, 268, 268, 268, 268,
+ 268, 263, 318, 268, 268, 268, 268, 268, 268, 268,
+ 263, 318, 268, 268, 268, 268, 268, 268, 278, 263,
+ 318, 278, 278, 278, 278, 278, 278, 278, 263, 318,
+ 279, 279, 279, 280, 318, 281, 281, 281, 281, 281,
+ 281, 281, 280, 318, 282, 282, 282, 282, 282, 282,
+ 282, 318, 318, 280, 100, 283, 283, 283, 283, 283,
+ 284, 281, 70, 318, 273, 273, 273, 273, 273, 273,
+
+ 273, 285, 318, 286, 286, 286, 286, 286, 286, 286,
+ 285, 318, 287, 287, 287, 287, 287, 287, 287, 285,
+ 318, 288, 288, 288, 288, 288, 289, 286, 99, 318,
+ 278, 278, 278, 278, 278, 278, 278, 279, 279, 279,
+ 290, 291, 292, 290, 290, 290, 290, 280, 318, 281,
+ 281, 281, 281, 281, 281, 281, 318, 318, 318, 318,
+ 318, 100, 285, 280, 71, 281, 281, 281, 281, 281,
+ 281, 281, 280, 296, 281, 281, 281, 281, 281, 281,
+ 70, 293, 294, 295, 293, 293, 293, 293, 100, 285,
+ 318, 286, 286, 286, 286, 286, 286, 286, 318, 71,
+
+ 318, 318, 318, 318, 285, 100, 286, 286, 286, 286,
+ 286, 286, 286, 285, 318, 286, 286, 286, 286, 286,
+ 286, 99, 296, 318, 297, 297, 297, 297, 297, 297,
+ 297, 296, 318, 298, 298, 298, 298, 298, 298, 298,
+ 296, 318, 299, 299, 299, 299, 299, 300, 297, 301,
+ 318, 302, 302, 302, 302, 302, 302, 302, 301, 318,
+ 303, 303, 303, 303, 303, 303, 303, 301, 318, 304,
+ 304, 304, 304, 304, 305, 302, 70, 318, 306, 307,
+ 308, 306, 306, 306, 306, 296, 318, 297, 297, 297,
+ 297, 297, 297, 297, 296, 301, 297, 297, 297, 297,
+
+ 297, 297, 297, 296, 318, 297, 297, 297, 297, 297,
+ 297, 70, 99, 318, 309, 310, 311, 309, 309, 309,
+ 309, 100, 301, 318, 302, 302, 302, 302, 302, 302,
+ 302, 301, 318, 302, 302, 302, 302, 302, 302, 302,
+ 301, 318, 302, 302, 302, 302, 302, 302, 99, 70,
+ 318, 312, 312, 312, 312, 312, 312, 312, 70, 318,
+ 306, 306, 306, 306, 306, 306, 306, 70, 318, 313,
+ 313, 313, 313, 313, 314, 312, 99, 318, 315, 315,
+ 315, 315, 315, 315, 315, 99, 318, 309, 309, 309,
+ 309, 309, 309, 309, 99, 318, 316, 316, 316, 316,
+
+ 316, 317, 315, 312, 312, 312, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 315, 315, 315, 315,
+ 315, 315, 315, 318, 318, 318, 318, 71, 315, 315,
+ 315, 315, 315, 315, 71, 318, 318, 318, 318, 318,
+ 100, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 100, 55, 55, 55, 55, 55, 55, 55,
+ 21, 21, 21, 21, 21, 21, 21, 63, 63, 63,
+ 63, 63, 63, 63, 70, 318, 318, 318, 318, 70,
+ 70, 74, 74, 74, 74, 74, 74, 74, 76, 318,
+ 318, 318, 318, 76, 76, 78, 318, 318, 318, 318,
+
+ 78, 78, 80, 318, 80, 318, 318, 80, 80, 99,
+ 318, 318, 318, 318, 99, 99, 102, 318, 318, 318,
+ 318, 102, 102, 104, 318, 318, 318, 318, 104, 104,
+ 106, 318, 106, 318, 318, 106, 106, 119, 318, 119,
+ 119, 318, 318, 119, 125, 318, 125, 318, 125, 125,
+ 125, 127, 127, 127, 127, 127, 127, 127, 132, 132,
+ 132, 132, 132, 132, 132, 81, 318, 81, 318, 318,
+ 81, 81, 128, 128, 128, 128, 128, 128, 128, 13,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318
} ;
-static yyconst short int yy_chk[1861] =
+static yyconst short int yy_chk[1735] =
{ 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, 2, 2, 2, 59, 59, 137, 2, 137,
- 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 1, 1, 1, 1, 2, 2, 5, 2, 61, 61,
+ 5, 2, 5, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 5, 6, 63, 313, 5, 6, 5,
- 6, 7, 7, 7, 136, 7, 65, 24, 136, 63,
- 7, 24, 24, 26, 26, 26, 26, 26, 26, 26,
- 65, 7, 7, 67, 67, 89, 89, 24, 27, 27,
- 27, 27, 27, 27, 91, 82, 7, 8, 8, 8,
- 24, 8, 308, 44, 91, 295, 8, 44, 44, 46,
- 46, 46, 46, 46, 46, 46, 92, 8, 8, 82,
- 89, 94, 92, 44, 47, 47, 47, 47, 47, 47,
- 93, 94, 8, 9, 9, 9, 44, 9, 106, 95,
-
- 117, 117, 138, 93, 95, 119, 119, 139, 292, 139,
- 189, 140, 113, 113, 158, 158, 138, 125, 124, 125,
- 129, 129, 106, 140, 189, 148, 242, 221, 9, 9,
+ 3, 3, 3, 3, 3, 3, 3, 3, 6, 7,
+ 7, 7, 6, 7, 6, 8, 8, 8, 7, 8,
+ 332, 24, 65, 67, 8, 24, 24, 69, 69, 7,
+ 7, 96, 94, 90, 95, 8, 8, 90, 65, 67,
+ 95, 24, 94, 98, 96, 115, 7, 84, 98, 115,
+ 121, 121, 8, 9, 9, 9, 24, 9, 26, 26,
+ 26, 26, 26, 26, 26, 27, 27, 27, 27, 27,
+ 27, 41, 315, 84, 41, 41, 41, 41, 41, 41,
+ 41, 47, 47, 47, 47, 47, 47, 47, 92, 92,
+
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 10, 10, 10, 113, 10, 122,
- 124, 125, 130, 122, 152, 129, 130, 148, 122, 159,
- 175, 130, 160, 188, 215, 174, 215, 213, 175, 168,
- 122, 188, 130, 130, 159, 160, 162, 174, 152, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,
-
- 162, 168, 182, 11, 11, 11, 204, 187, 58, 58,
- 208, 229, 58, 191, 203, 200, 11, 58, 78, 204,
- 195, 203, 78, 78, 229, 236, 182, 187, 58, 58,
- 11, 12, 12, 12, 12, 12, 210, 191, 78, 12,
- 12, 12, 196, 58, 62, 62, 186, 62, 62, 236,
- 180, 78, 12, 62, 179, 173, 103, 201, 214, 210,
- 103, 103, 196, 222, 218, 62, 12, 25, 172, 25,
- 25, 25, 25, 25, 25, 25, 103, 201, 214, 62,
- 167, 123, 123, 222, 123, 123, 216, 218, 216, 103,
- 123, 25, 30, 166, 30, 30, 30, 30, 30, 30,
-
- 30, 216, 123, 227, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 123, 30, 33, 33,
- 33, 157, 33, 227, 33, 33, 244, 33, 198, 198,
- 198, 198, 198, 198, 198, 254, 254, 254, 33, 33,
- 33, 45, 156, 45, 45, 45, 45, 45, 45, 45,
- 244, 261, 146, 266, 145, 149, 149, 254, 149, 149,
- 144, 135, 134, 128, 149, 45, 48, 121, 48, 48,
- 48, 48, 48, 48, 48, 261, 149, 266, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 149, 48, 51, 51, 51, 116, 51, 114, 51, 51,
-
- 112, 51, 199, 199, 199, 199, 199, 199, 111, 109,
- 101, 99, 51, 51, 51, 69, 96, 69, 88, 69,
- 87, 69, 69, 85, 69, 206, 206, 206, 206, 206,
- 206, 206, 259, 259, 259, 69, 69, 69, 75, 79,
- 75, 76, 75, 74, 75, 75, 72, 75, 207, 207,
- 207, 207, 207, 207, 259, 71, 70, 68, 75, 75,
- 75, 77, 61, 77, 55, 77, 52, 77, 77, 50,
- 77, 241, 277, 241, 241, 241, 249, 282, 249, 249,
- 249, 77, 77, 77, 80, 49, 80, 43, 80, 41,
- 80, 80, 39, 80, 38, 241, 277, 37, 36, 35,
-
- 249, 282, 34, 32, 80, 80, 80, 81, 81, 81,
- 81, 81, 81, 81, 150, 150, 31, 150, 150, 22,
- 19, 18, 17, 150, 15, 14, 13, 0, 0, 81,
- 97, 0, 97, 0, 97, 150, 97, 97, 0, 97,
- 0, 294, 294, 294, 294, 294, 294, 0, 0, 150,
- 97, 97, 97, 100, 0, 100, 0, 100, 0, 100,
- 100, 0, 100, 294, 297, 297, 297, 297, 297, 297,
- 0, 0, 0, 100, 100, 100, 102, 0, 102, 0,
- 102, 0, 102, 102, 0, 102, 297, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 102, 102, 102, 104,
-
- 0, 104, 0, 104, 0, 104, 104, 0, 104, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
- 104, 104, 105, 105, 105, 105, 105, 105, 105, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 105, 131, 0, 131, 131, 131,
- 131, 131, 131, 131, 132, 0, 132, 132, 132, 132,
- 132, 132, 132, 133, 0, 133, 133, 133, 133, 133,
- 133, 133, 141, 0, 141, 141, 141, 141, 141, 141,
- 141, 142, 0, 142, 142, 142, 142, 142, 142, 142,
- 143, 0, 143, 143, 143, 143, 143, 143, 143, 151,
-
- 151, 151, 151, 151, 151, 151, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 151, 153, 0, 153, 153, 153, 153, 153, 153,
- 153, 154, 0, 154, 154, 154, 154, 154, 154, 154,
- 155, 0, 155, 155, 155, 155, 155, 155, 155, 161,
- 0, 161, 161, 161, 161, 161, 161, 161, 163, 0,
- 163, 163, 163, 163, 163, 163, 163, 164, 0, 164,
- 164, 164, 164, 164, 164, 164, 165, 0, 165, 165,
- 165, 165, 165, 165, 165, 169, 0, 169, 169, 169,
- 169, 169, 169, 169, 170, 0, 170, 170, 170, 170,
-
- 170, 170, 170, 171, 0, 171, 171, 171, 171, 171,
- 171, 171, 176, 0, 176, 176, 176, 176, 176, 176,
- 176, 177, 0, 177, 177, 177, 177, 177, 177, 177,
- 178, 0, 178, 178, 178, 178, 178, 178, 178, 181,
- 181, 181, 181, 181, 181, 181, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 181, 183, 0, 183, 183, 183, 183, 183, 183,
- 183, 184, 0, 184, 184, 184, 184, 184, 184, 184,
- 185, 0, 185, 185, 185, 185, 185, 185, 185, 190,
- 0, 190, 190, 190, 190, 190, 190, 190, 192, 0,
-
- 192, 192, 192, 192, 192, 192, 192, 193, 0, 193,
- 193, 193, 193, 193, 193, 193, 194, 0, 194, 194,
- 194, 194, 194, 194, 194, 197, 197, 197, 197, 197,
- 197, 197, 197, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 197, 205,
- 205, 205, 205, 205, 205, 205, 205, 205, 209, 209,
- 209, 209, 209, 209, 209, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 209, 217, 217, 217, 217, 217, 217, 217, 217, 223,
- 0, 223, 223, 223, 223, 223, 223, 223, 224, 0,
-
- 224, 224, 224, 224, 224, 224, 224, 225, 0, 225,
- 225, 225, 225, 225, 225, 225, 226, 0, 226, 226,
- 226, 226, 226, 226, 226, 231, 0, 231, 231, 231,
- 231, 231, 231, 231, 232, 0, 232, 232, 232, 232,
- 232, 232, 232, 233, 0, 233, 233, 233, 233, 233,
- 233, 233, 234, 0, 234, 234, 234, 234, 234, 234,
- 234, 235, 235, 235, 235, 235, 235, 235, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 235, 237, 0, 237, 237, 237, 237,
- 237, 237, 237, 238, 0, 238, 238, 238, 238, 238,
-
- 238, 238, 239, 0, 239, 239, 239, 239, 239, 239,
- 239, 240, 0, 240, 240, 240, 240, 240, 240, 240,
- 243, 0, 243, 243, 243, 243, 243, 243, 243, 245,
- 0, 245, 245, 245, 245, 245, 245, 245, 246, 0,
- 246, 246, 246, 246, 246, 246, 246, 247, 0, 247,
- 247, 247, 247, 247, 247, 247, 248, 0, 248, 248,
- 248, 248, 248, 248, 248, 250, 0, 250, 250, 250,
- 250, 250, 250, 250, 251, 0, 251, 251, 251, 251,
- 251, 251, 251, 252, 0, 252, 252, 252, 252, 252,
- 252, 252, 253, 0, 253, 253, 253, 253, 253, 253,
-
- 253, 255, 0, 255, 255, 255, 255, 255, 255, 255,
- 256, 0, 256, 256, 256, 256, 256, 256, 256, 257,
- 0, 257, 257, 257, 257, 257, 257, 257, 258, 0,
- 258, 258, 258, 258, 258, 258, 258, 260, 260, 260,
- 260, 260, 260, 260, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 260,
- 262, 0, 262, 262, 262, 262, 262, 262, 262, 263,
- 0, 263, 263, 263, 263, 263, 263, 263, 264, 0,
- 264, 264, 264, 264, 264, 264, 264, 265, 265, 265,
- 265, 265, 265, 265, 0, 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 265,
+ 9, 9, 9, 9, 9, 9, 10, 10, 10, 109,
+ 10, 48, 48, 48, 48, 48, 48, 83, 83, 83,
+ 83, 83, 83, 83, 97, 92, 312, 117, 117, 123,
+ 123, 128, 262, 142, 97, 109, 129, 142, 129, 133,
+ 133, 83, 241, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 11,
+ 11, 11, 11, 11, 117, 128, 126, 11, 11, 11,
+ 126, 144, 129, 45, 233, 126, 133, 45, 45, 143,
+ 11, 143, 60, 60, 228, 144, 60, 126, 156, 164,
+
+ 80, 60, 146, 45, 80, 80, 11, 12, 12, 12,
+ 12, 12, 60, 60, 146, 12, 12, 12, 45, 164,
+ 80, 64, 64, 170, 64, 64, 168, 168, 12, 60,
+ 64, 145, 156, 145, 106, 80, 170, 176, 106, 106,
+ 160, 172, 64, 230, 12, 25, 180, 25, 25, 25,
+ 25, 25, 25, 25, 106, 169, 101, 176, 64, 101,
+ 101, 101, 101, 101, 101, 101, 160, 172, 230, 106,
+ 169, 25, 30, 134, 220, 184, 30, 134, 30, 213,
+ 180, 30, 134, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 134, 134, 184, 30, 30, 30, 30,
+
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 34, 34, 34, 189,
+ 34, 206, 34, 34, 203, 34, 108, 108, 108, 108,
+ 108, 108, 108, 189, 198, 206, 34, 34, 34, 46,
+ 190, 46, 46, 46, 46, 46, 46, 46, 190, 202,
+ 108, 204, 127, 127, 205, 127, 127, 223, 196, 195,
+ 198, 127, 205, 224, 223, 46, 49, 212, 214, 202,
+ 49, 204, 49, 127, 194, 49, 224, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 212, 214, 127,
+
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 53, 53, 53, 235, 53, 235, 53, 53, 135, 53,
+ 135, 135, 135, 135, 135, 135, 135, 238, 188, 187,
+ 53, 53, 53, 71, 236, 71, 236, 71, 186, 71,
+ 71, 136, 71, 136, 136, 136, 136, 136, 136, 136,
+ 179, 236, 238, 71, 71, 71, 77, 178, 77, 177,
+ 77, 249, 77, 77, 137, 77, 137, 137, 137, 137,
+ 137, 137, 137, 167, 249, 166, 77, 77, 77, 79,
+
+ 165, 79, 154, 79, 153, 79, 79, 147, 79, 147,
+ 147, 147, 147, 147, 147, 147, 274, 274, 274, 79,
+ 79, 79, 82, 152, 82, 151, 82, 150, 82, 82,
+ 148, 82, 148, 148, 148, 148, 148, 148, 148, 141,
+ 274, 140, 82, 82, 82, 100, 139, 100, 138, 100,
+ 208, 100, 100, 149, 100, 149, 149, 149, 149, 149,
+ 149, 149, 132, 218, 221, 100, 100, 100, 103, 125,
+ 103, 120, 103, 118, 103, 103, 208, 103, 157, 157,
+ 116, 157, 157, 218, 221, 114, 234, 157, 103, 103,
+ 103, 105, 112, 105, 104, 105, 102, 105, 105, 157,
+
+ 105, 158, 158, 99, 158, 158, 234, 256, 91, 89,
+ 158, 105, 105, 105, 107, 157, 107, 87, 107, 81,
+ 107, 107, 158, 107, 159, 159, 159, 159, 159, 159,
+ 159, 264, 78, 256, 107, 107, 107, 161, 158, 161,
+ 161, 161, 161, 161, 161, 161, 242, 162, 159, 162,
+ 162, 162, 162, 162, 162, 162, 163, 264, 163, 163,
+ 163, 163, 163, 163, 163, 171, 242, 171, 171, 171,
+ 171, 171, 171, 171, 173, 76, 173, 173, 173, 173,
+ 173, 173, 173, 174, 74, 174, 174, 174, 174, 174,
+ 174, 174, 175, 73, 175, 175, 175, 175, 175, 175,
+
+ 175, 181, 72, 181, 181, 181, 181, 181, 181, 181,
+ 182, 70, 182, 182, 182, 182, 182, 182, 182, 183,
+ 63, 183, 183, 183, 183, 183, 183, 183, 191, 57,
+ 191, 191, 191, 191, 191, 191, 191, 192, 54, 192,
+ 192, 192, 192, 192, 192, 192, 193, 52, 193, 193,
+ 193, 193, 193, 193, 193, 197, 197, 197, 197, 197,
+ 197, 197, 199, 51, 199, 199, 199, 199, 199, 199,
+ 199, 216, 216, 216, 216, 216, 216, 216, 200, 197,
+ 200, 200, 200, 200, 200, 200, 200, 201, 50, 201,
+ 201, 201, 201, 201, 201, 201, 207, 44, 207, 207,
+
+ 207, 207, 207, 207, 207, 209, 42, 209, 209, 209,
+ 209, 209, 209, 209, 210, 40, 210, 210, 210, 210,
+ 210, 210, 210, 211, 39, 211, 211, 211, 211, 211,
+ 211, 211, 215, 215, 215, 215, 215, 215, 215, 215,
+ 217, 217, 217, 217, 217, 217, 226, 226, 226, 226,
+ 226, 226, 226, 38, 37, 36, 35, 215, 225, 225,
+ 225, 225, 225, 225, 225, 225, 225, 227, 227, 227,
+ 227, 227, 227, 229, 229, 229, 229, 229, 229, 229,
+ 237, 237, 237, 237, 237, 237, 237, 237, 243, 33,
+ 243, 243, 243, 243, 243, 243, 243, 229, 244, 281,
+
+ 244, 244, 244, 244, 244, 244, 244, 245, 247, 245,
+ 245, 245, 245, 245, 245, 245, 246, 32, 246, 246,
+ 246, 246, 246, 246, 246, 281, 31, 251, 247, 251,
+ 251, 251, 251, 251, 251, 251, 252, 22, 252, 252,
+ 252, 252, 252, 252, 252, 253, 19, 253, 253, 253,
+ 253, 253, 253, 253, 254, 18, 254, 254, 254, 254,
+ 254, 254, 254, 255, 255, 255, 255, 255, 255, 255,
+ 257, 17, 257, 257, 257, 257, 257, 257, 257, 261,
+ 15, 261, 261, 261, 14, 13, 258, 255, 258, 258,
+ 258, 258, 258, 258, 258, 259, 0, 259, 259, 259,
+
+ 259, 259, 259, 259, 260, 261, 260, 260, 260, 260,
+ 260, 260, 260, 263, 0, 263, 263, 263, 263, 263,
+ 263, 263, 265, 0, 265, 265, 265, 265, 265, 265,
+ 265, 266, 0, 266, 266, 266, 266, 266, 266, 266,
267, 0, 267, 267, 267, 267, 267, 267, 267, 268,
0, 268, 268, 268, 268, 268, 268, 268, 269, 0,
- 269, 269, 269, 269, 269, 269, 269, 270, 0, 270,
- 270, 270, 270, 270, 270, 270, 271, 0, 271, 271,
- 271, 271, 271, 271, 271, 272, 0, 272, 272, 272,
- 272, 272, 272, 272, 273, 0, 273, 273, 273, 273,
- 273, 273, 273, 274, 0, 274, 274, 274, 274, 274,
- 274, 274, 275, 0, 275, 275, 275, 275, 275, 275,
- 275, 276, 0, 276, 276, 276, 276, 276, 276, 276,
-
- 278, 0, 278, 278, 278, 278, 278, 278, 278, 279,
- 0, 279, 279, 279, 279, 279, 279, 279, 280, 0,
- 280, 280, 280, 280, 280, 280, 280, 281, 0, 281,
- 281, 281, 281, 281, 281, 281, 283, 0, 283, 283,
- 283, 283, 283, 283, 283, 284, 0, 284, 284, 284,
- 284, 284, 284, 284, 285, 0, 285, 285, 285, 285,
- 285, 285, 285, 286, 0, 286, 286, 286, 286, 286,
- 286, 286, 287, 0, 287, 287, 287, 287, 287, 287,
- 287, 288, 0, 288, 288, 288, 288, 288, 288, 288,
- 289, 0, 289, 289, 289, 289, 289, 289, 289, 290,
-
- 0, 290, 290, 290, 290, 290, 290, 290, 291, 0,
- 291, 291, 291, 291, 291, 291, 291, 293, 293, 293,
- 293, 293, 293, 293, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 293,
- 296, 296, 296, 296, 296, 296, 296, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 296, 299, 299, 299, 299, 299, 299, 299,
- 299, 300, 300, 300, 300, 300, 300, 300, 300, 301,
- 301, 301, 301, 301, 301, 301, 301, 302, 0, 0,
- 0, 302, 0, 302, 302, 303, 303, 303, 303, 303,
-
- 303, 303, 303, 304, 0, 0, 0, 304, 0, 304,
- 304, 305, 0, 0, 0, 305, 0, 305, 305, 306,
- 0, 306, 0, 306, 0, 306, 306, 307, 0, 0,
- 0, 307, 0, 307, 307, 309, 0, 0, 0, 309,
- 0, 309, 309, 310, 0, 0, 0, 310, 0, 310,
- 310, 311, 0, 311, 0, 311, 0, 311, 311, 312,
- 0, 312, 312, 312, 0, 0, 312, 314, 0, 314,
- 0, 314, 314, 314, 314, 315, 315, 315, 315, 315,
- 315, 315, 315, 316, 316, 316, 316, 316, 316, 316,
- 316, 317, 0, 317, 0, 317, 0, 317, 317, 318,
-
- 318, 318, 318, 318, 318, 318, 318, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 298, 298, 298
+ 269, 269, 269, 270, 0, 270, 270, 270, 270, 270,
+ 270, 270, 271, 0, 271, 271, 271, 271, 271, 271,
+ 271, 0, 0, 272, 269, 272, 272, 272, 272, 272,
+ 272, 272, 273, 0, 273, 273, 273, 273, 273, 273,
+
+ 273, 275, 0, 275, 275, 275, 275, 275, 275, 275,
+ 276, 0, 276, 276, 276, 276, 276, 276, 276, 277,
+ 0, 277, 277, 277, 277, 277, 277, 277, 278, 0,
+ 278, 278, 278, 278, 278, 278, 278, 279, 279, 279,
+ 280, 280, 280, 280, 280, 280, 280, 282, 0, 282,
+ 282, 282, 282, 282, 282, 282, 0, 0, 0, 0,
+ 0, 279, 286, 283, 280, 283, 283, 283, 283, 283,
+ 283, 283, 284, 297, 284, 284, 284, 284, 284, 284,
+ 284, 285, 285, 285, 285, 285, 285, 285, 286, 287,
+ 0, 287, 287, 287, 287, 287, 287, 287, 0, 297,
+
+ 0, 0, 0, 0, 288, 285, 288, 288, 288, 288,
+ 288, 288, 288, 289, 0, 289, 289, 289, 289, 289,
+ 289, 289, 290, 0, 290, 290, 290, 290, 290, 290,
+ 290, 291, 0, 291, 291, 291, 291, 291, 291, 291,
+ 292, 0, 292, 292, 292, 292, 292, 292, 292, 293,
+ 0, 293, 293, 293, 293, 293, 293, 293, 294, 0,
+ 294, 294, 294, 294, 294, 294, 294, 295, 0, 295,
+ 295, 295, 295, 295, 295, 295, 296, 0, 296, 296,
+ 296, 296, 296, 296, 296, 298, 0, 298, 298, 298,
+ 298, 298, 298, 298, 299, 302, 299, 299, 299, 299,
+
+ 299, 299, 299, 300, 0, 300, 300, 300, 300, 300,
+ 300, 300, 301, 0, 301, 301, 301, 301, 301, 301,
+ 301, 302, 303, 0, 303, 303, 303, 303, 303, 303,
+ 303, 304, 0, 304, 304, 304, 304, 304, 304, 304,
+ 305, 0, 305, 305, 305, 305, 305, 305, 305, 306,
+ 0, 306, 306, 306, 306, 306, 306, 306, 307, 0,
+ 307, 307, 307, 307, 307, 307, 307, 308, 0, 308,
+ 308, 308, 308, 308, 308, 308, 309, 0, 309, 309,
+ 309, 309, 309, 309, 309, 310, 0, 310, 310, 310,
+ 310, 310, 310, 310, 311, 0, 311, 311, 311, 311,
+
+ 311, 311, 311, 313, 313, 313, 313, 313, 313, 313,
+ 314, 314, 314, 314, 314, 314, 316, 316, 316, 316,
+ 316, 316, 316, 0, 0, 0, 0, 313, 317, 317,
+ 317, 317, 317, 317, 314, 0, 0, 0, 0, 0,
+ 316, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 317, 319, 319, 319, 319, 319, 319, 319,
+ 320, 320, 320, 320, 320, 320, 320, 321, 321, 321,
+ 321, 321, 321, 321, 322, 0, 0, 0, 0, 322,
+ 322, 323, 323, 323, 323, 323, 323, 323, 324, 0,
+ 0, 0, 0, 324, 324, 325, 0, 0, 0, 0,
+
+ 325, 325, 326, 0, 326, 0, 0, 326, 326, 327,
+ 0, 0, 0, 0, 327, 327, 328, 0, 0, 0,
+ 0, 328, 328, 329, 0, 0, 0, 0, 329, 329,
+ 330, 0, 330, 0, 0, 330, 330, 331, 0, 331,
+ 331, 0, 0, 331, 333, 0, 333, 0, 333, 333,
+ 333, 334, 334, 334, 334, 334, 334, 334, 335, 335,
+ 335, 335, 335, 335, 335, 336, 0, 336, 0, 0,
+ 336, 336, 337, 337, 337, 337, 337, 337, 337, 318,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
+ 318, 318, 318, 318
} ;
static yy_state_type yy_last_accepting_state;
#define INITIAL 0
#line 2 "parse.lex"
/*
- * Copyright (c) 1996, 1998-2001 Todd C. Miller <Todd.Miller@courtesan.com>
+ * Copyright (c) 1996, 1998-2003 Todd C. Miller <Todd.Miller@courtesan.com>
* All rights reserved.
*
* This code is derived from software contributed by Chris Jepeway.
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Sponsored in part by the Defense Advanced Research Projects
+ * Agency (DARPA) and Air Force Research Laboratory, Air Force
+ * Materiel Command, USAF, under agreement number F39502-99-1-0512.
*/
#include "config.h"
#define INDEFS 5
-#line 984 "lex.yy.c"
+#line 968 "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 113 "parse.lex"
+#line 117 "parse.lex"
-#line 1140 "lex.yy.c"
+#line 1124 "lex.yy.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 >= 299 )
+ if ( yy_current_state >= 319 )
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] != 1808 );
+ while ( yy_base[yy_current_state] != 1680 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
case 1:
YY_RULE_SETUP
-#line 114 "parse.lex"
+#line 118 "parse.lex"
BEGIN STARTDEFS;
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 116 "parse.lex"
+#line 120 "parse.lex"
{
BEGIN INDEFS;
LEXTRACE("DEFVAR ");
case 3:
YY_RULE_SETUP
-#line 124 "parse.lex"
+#line 128 "parse.lex"
{
BEGIN STARTDEFS;
LEXTRACE(", ");
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 130 "parse.lex"
+#line 134 "parse.lex"
{
LEXTRACE("= ");
return('=');
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 135 "parse.lex"
+#line 139 "parse.lex"
{
LEXTRACE("+= ");
return('+');
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 140 "parse.lex"
+#line 144 "parse.lex"
{
LEXTRACE("-= ");
return('-');
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 145 "parse.lex"
+#line 149 "parse.lex"
{
LEXTRACE("WORD(1) ");
fill(yytext + 1, yyleng - 2);
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 151 "parse.lex"
+#line 155 "parse.lex"
{
LEXTRACE("WORD(2) ");
fill(yytext, yyleng);
case 9:
YY_RULE_SETUP
-#line 159 "parse.lex"
+#line 163 "parse.lex"
{
LEXTRACE("QUOTEDCHAR ");
fill_args(yytext + 1, 1, sawspace);
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 165 "parse.lex"
+#line 169 "parse.lex"
{
BEGIN INITIAL;
unput(*yytext);
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 171 "parse.lex"
+#line 175 "parse.lex"
{
LEXTRACE("ARG ");
fill_args(yytext, yyleng, sawspace);
case 12:
YY_RULE_SETUP
-#line 178 "parse.lex"
+#line 182 "parse.lex"
{
BEGIN GOTDEFS;
switch (yytext[8]) {
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 196 "parse.lex"
+#line 200 "parse.lex"
{
fill(yytext, yyleng);
switch (*yytext) {
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 215 "parse.lex"
+#line 219 "parse.lex"
{
/* cmnd does not require passwd for this user */
LEXTRACE("NOPASSWD ");
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 221 "parse.lex"
+#line 225 "parse.lex"
{
/* cmnd requires passwd for this user */
LEXTRACE("PASSWD ");
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 227 "parse.lex"
+#line 231 "parse.lex"
+{
+ LEXTRACE("NOEXEC ");
+ return(NOEXEC);
+ }
+ YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 236 "parse.lex"
+{
+ LEXTRACE("EXEC ");
+ return(EXEC);
+ }
+ YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 241 "parse.lex"
{
/* netgroup */
fill(yytext, yyleng);
return(NETGROUP);
}
YY_BREAK
-case 17:
+case 19:
YY_RULE_SETUP
-#line 234 "parse.lex"
+#line 248 "parse.lex"
{
/* UN*X group */
fill(yytext, yyleng);
return(USERGROUP);
}
YY_BREAK
-case 18:
+case 20:
YY_RULE_SETUP
-#line 241 "parse.lex"
+#line 255 "parse.lex"
{
fill(yytext, yyleng);
LEXTRACE("NTWKADDR ");
return(NTWKADDR);
}
YY_BREAK
-case 19:
+case 21:
YY_RULE_SETUP
-#line 247 "parse.lex"
+#line 261 "parse.lex"
{
fill(yytext, yyleng);
LEXTRACE("NTWKADDR ");
return(NTWKADDR);
}
YY_BREAK
-case 20:
+case 22:
YY_RULE_SETUP
-#line 253 "parse.lex"
+#line 267 "parse.lex"
{
BEGIN GOTRUNAS;
LEXTRACE("RUNAS ");
return (RUNAS);
}
YY_BREAK
-case 21:
+case 23:
YY_RULE_SETUP
-#line 259 "parse.lex"
+#line 273 "parse.lex"
{
if (strcmp(yytext, "ALL") == 0) {
LEXTRACE("ALL ");
}
}
YY_BREAK
-case 22:
+case 24:
YY_RULE_SETUP
-#line 270 "parse.lex"
+#line 284 "parse.lex"
{
/* username/uid that user can run command as */
fill(yytext, yyleng);
return(WORD);
}
YY_BREAK
-case 23:
+case 25:
YY_RULE_SETUP
-#line 277 "parse.lex"
+#line 291 "parse.lex"
{
BEGIN INITIAL;
}
YY_BREAK
-case 24:
+case 26:
YY_RULE_SETUP
-#line 281 "parse.lex"
+#line 295 "parse.lex"
{
/* directories can't have args... */
if (yytext[yyleng - 1] == '/') {
}
} /* a pathname */
YY_BREAK
-case 25:
+case 27:
YY_RULE_SETUP
-#line 294 "parse.lex"
+#line 308 "parse.lex"
{
/* a word */
fill(yytext, yyleng);
return(WORD);
}
YY_BREAK
-case 26:
+case 28:
YY_RULE_SETUP
-#line 301 "parse.lex"
+#line 315 "parse.lex"
{
LEXTRACE(", ");
return(',');
} /* return ',' */
YY_BREAK
-case 27:
+case 29:
YY_RULE_SETUP
-#line 306 "parse.lex"
+#line 320 "parse.lex"
{
LEXTRACE("= ");
return('=');
} /* return '=' */
YY_BREAK
-case 28:
+case 30:
YY_RULE_SETUP
-#line 311 "parse.lex"
+#line 325 "parse.lex"
{
LEXTRACE(": ");
return(':');
} /* return ':' */
YY_BREAK
-case 29:
+case 31:
YY_RULE_SETUP
-#line 316 "parse.lex"
+#line 330 "parse.lex"
{
if (yyleng % 2 == 1)
return('!'); /* return '!' */
}
YY_BREAK
-case 30:
+case 32:
YY_RULE_SETUP
-#line 321 "parse.lex"
+#line 335 "parse.lex"
{
BEGIN INITIAL;
++sudolineno;
return(COMMENT);
} /* return newline */
YY_BREAK
-case 31:
+case 33:
YY_RULE_SETUP
-#line 328 "parse.lex"
+#line 342 "parse.lex"
{ /* throw away space/tabs */
sawspace = TRUE; /* but remember for fill_args */
}
YY_BREAK
-case 32:
+case 34:
YY_RULE_SETUP
-#line 332 "parse.lex"
+#line 346 "parse.lex"
{
sawspace = TRUE; /* remember for fill_args */
++sudolineno;
LEXTRACE("\n\t");
} /* throw away EOL after \ */
YY_BREAK
-case 33:
+case 35:
YY_RULE_SETUP
-#line 338 "parse.lex"
+#line 352 "parse.lex"
{
BEGIN INITIAL;
++sudolineno;
return(COMMENT);
} /* return comments */
YY_BREAK
-case 34:
+case 36:
YY_RULE_SETUP
-#line 345 "parse.lex"
+#line 359 "parse.lex"
{
LEXTRACE("ERROR ");
return(ERROR);
case YY_STATE_EOF(GOTCMND):
case YY_STATE_EOF(STARTDEFS):
case YY_STATE_EOF(INDEFS):
-#line 350 "parse.lex"
+#line 364 "parse.lex"
{
if (YY_START != INITIAL) {
BEGIN INITIAL;
yyterminate();
}
YY_BREAK
-case 35:
+case 37:
YY_RULE_SETUP
-#line 359 "parse.lex"
+#line 373 "parse.lex"
ECHO;
YY_BREAK
#line 1583 "lex.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 >= 299 )
+ if ( yy_current_state >= 319 )
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 >= 299 )
+ if ( yy_current_state >= 319 )
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 == 298);
+ yy_is_jam = (yy_current_state == 318);
return yy_is_jam ? 0 : yy_current_state;
}
return 0;
}
#endif
-#line 359 "parse.lex"
+#line 373 "parse.lex"
static void
fill(s, len)
match[top].host = -1; \
match[top].runas = -1; \
match[top].nopass = def_authenticate ? -1 : TRUE; \
+ match[top].noexec = def_noexec ? TRUE : -1; \
top++; \
} while (0)
match[top].host = match[top-1].host; \
match[top].runas = match[top-1].runas; \
match[top].nopass = match[top-1].nopass; \
+ match[top].noexec = match[top-1].noexec; \
top++; \
} while (0)
}
parse_error = TRUE;
}
-#line 218 "parse.yacc"
+#line 220 "parse.yacc"
typedef union {
char *string;
int BOOLEAN;
struct sudo_command command;
int tok;
} YYSTYPE;
-#line 242 "sudo.tab.c"
+#line 244 "sudo.tab.c"
#define COMMAND 257
#define ALIAS 258
#define DEFVAR 259
#define RUNAS 268
#define NOPASSWD 269
#define PASSWD 270
-#define ALL 271
-#define COMMENT 272
-#define HOSTALIAS 273
-#define CMNDALIAS 274
-#define USERALIAS 275
-#define RUNASALIAS 276
-#define ERROR 277
+#define NOEXEC 271
+#define EXEC 272
+#define ALL 273
+#define COMMENT 274
+#define HOSTALIAS 275
+#define CMNDALIAS 276
+#define USERALIAS 277
+#define RUNASALIAS 278
+#define ERROR 279
#define YYERRCODE 256
#if defined(__cplusplus) || defined(__STDC__)
const short yylhs[] =
0, 0, 7, 7, 9, 7, 7, 7, 7, 7,
7, 15, 16, 18, 16, 19, 16, 21, 16, 17,
17, 22, 22, 22, 22, 22, 10, 10, 23, 25,
- 25, 2, 2, 2, 2, 2, 24, 24, 26, 29,
- 30, 29, 27, 27, 5, 5, 4, 31, 4, 3,
- 3, 3, 3, 3, 28, 28, 28, 1, 1, 1,
- 12, 12, 33, 32, 20, 20, 13, 13, 35, 34,
- 36, 36, 14, 14, 38, 37, 11, 11, 40, 39,
- 8, 8, 41, 41, 6, 6, 6, 6, 6,
+ 25, 2, 2, 2, 2, 2, 24, 24, 26, 30,
+ 31, 30, 27, 27, 5, 5, 4, 32, 4, 3,
+ 3, 3, 3, 3, 29, 29, 29, 28, 28, 28,
+ 1, 1, 1, 12, 12, 34, 33, 20, 20, 13,
+ 13, 36, 35, 37, 37, 14, 14, 39, 38, 11,
+ 11, 41, 40, 8, 8, 42, 42, 6, 6, 6,
+ 6, 6,
};
#if defined(__cplusplus) || defined(__STDC__)
const short yylen[] =
1, 2, 1, 2, 0, 3, 2, 2, 2, 2,
1, 2, 1, 0, 3, 0, 3, 0, 3, 1,
3, 1, 2, 3, 3, 3, 1, 3, 3, 1,
- 2, 1, 1, 1, 1, 1, 1, 3, 3, 1,
+ 2, 1, 1, 1, 1, 1, 1, 3, 4, 1,
0, 3, 0, 2, 1, 3, 1, 0, 3, 1,
- 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
- 1, 3, 0, 4, 1, 3, 1, 3, 0, 4,
- 1, 3, 1, 3, 0, 4, 1, 3, 0, 4,
- 1, 3, 1, 2, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 0, 1, 1, 0, 1, 1,
+ 1, 1, 1, 1, 3, 0, 4, 1, 3, 1,
+ 3, 0, 4, 1, 3, 1, 3, 0, 4, 1,
+ 3, 0, 4, 1, 3, 1, 2, 1, 1, 1,
+ 1, 1,
};
#if defined(__cplusplus) || defined(__STDC__)
const short yydefred[] =
#endif
{ 0,
0, 13, 18, 14, 16, 3, 0, 0, 0, 0,
- 0, 1, 0, 11, 0, 4, 0, 0, 0, 63,
- 0, 61, 69, 0, 67, 79, 0, 77, 75, 0,
- 73, 2, 88, 87, 86, 85, 89, 0, 83, 0,
- 81, 0, 0, 12, 0, 36, 33, 34, 35, 32,
- 0, 30, 0, 65, 0, 53, 52, 51, 50, 54,
+ 0, 1, 0, 11, 0, 4, 0, 0, 0, 66,
+ 0, 64, 72, 0, 70, 82, 0, 80, 78, 0,
+ 76, 2, 91, 90, 89, 88, 92, 0, 86, 0,
+ 84, 0, 0, 12, 0, 36, 33, 34, 35, 32,
+ 0, 30, 0, 68, 0, 53, 52, 51, 50, 54,
48, 47, 45, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 84, 0, 0, 0, 27, 0, 0, 0,
- 23, 0, 31, 0, 0, 0, 0, 62, 0, 68,
- 0, 78, 0, 74, 82, 0, 0, 24, 25, 26,
- 21, 66, 49, 46, 0, 60, 59, 58, 41, 40,
- 71, 0, 0, 0, 28, 0, 0, 37, 0, 0,
- 0, 0, 0, 56, 57, 0, 42, 72, 38, 39,
+ 0, 0, 87, 0, 0, 0, 27, 0, 0, 0,
+ 23, 0, 31, 0, 0, 0, 0, 65, 0, 71,
+ 0, 81, 0, 77, 85, 0, 0, 24, 25, 26,
+ 21, 69, 49, 46, 0, 63, 62, 61, 41, 40,
+ 74, 0, 0, 0, 28, 0, 0, 37, 0, 0,
+ 0, 0, 0, 59, 60, 0, 42, 75, 38, 56,
+ 57, 0, 39,
};
#if defined(__cplusplus) || defined(__STDC__)
const short yydgoto[] =
{ 11,
110, 52, 62, 63, 64, 39, 12, 40, 13, 75,
27, 21, 24, 30, 14, 15, 44, 18, 19, 76,
- 17, 45, 77, 117, 54, 118, 119, 126, 111, 120,
- 85, 22, 65, 25, 67, 112, 31, 71, 28, 69,
- 41,
+ 17, 45, 77, 117, 54, 118, 119, 126, 132, 111,
+ 120, 85, 22, 65, 25, 67, 112, 31, 71, 28,
+ 69, 41,
};
#if defined(__cplusplus) || defined(__STDC__)
const short yysindex[] =
#else
short yysindex[] =
#endif
- { -226,
- -256, 0, 0, 0, 0, 0, -233, -230, -227, -225,
- -226, 0, -29, 0, -28, 0, -15, -29, 257, 0,
- -26, 0, 0, -23, 0, 0, -22, 0, 0, -21,
- 0, 0, 0, 0, 0, 0, 0, -205, 0, -33,
- 0, -35, -217, 0, 7, 0, 0, 0, 0, 0,
- -193, 0, 8, 0, 10, 0, 0, 0, 0, 0,
- 0, 0, 0, 15, -17, -233, -1, -230, 2, -227,
- 11, -225, 0, -29, 3, -37, 0, -201, -194, -192,
- 0, -28, 0, -15, -179, 257, -15, 0, 222, 0,
- -29, 0, 257, 0, 0, -15, -191, 0, 0, 0,
- 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
- 0, 30, 10, 15, 0, 257, 37, 0, -250, -244,
- 222, 15, -191, 0, 0, 222, 0, 0, 0, 0,};
+ { -234,
+ -262, 0, 0, 0, 0, 0, -242, -238, -235, -229,
+ -234, 0, 296, 0, -31, 0, 305, 296, 309, 0,
+ -19, 0, 0, -10, 0, 0, -4, 0, 0, 2,
+ 0, 0, 0, 0, 0, 0, 0, -212, 0, 283,
+ 0, -26, -194, 0, 22, 0, 0, 0, 0, 0,
+ -205, 0, 23, 0, 25, 0, 0, 0, 0, 0,
+ 0, 0, 0, 27, -23, -242, 11, -238, 12, -235,
+ 14, -229, 0, 296, 18, -34, 0, -185, -184, -180,
+ 0, -31, 0, 305, -199, 309, 305, 0, -33, 0,
+ 296, 0, 309, 0, 0, 305, -183, 0, 0, 0,
+ 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
+ 0, 40, 25, 27, 0, 309, 42, 0, -257, -221,
+ -33, 27, -183, 0, 0, -244, 0, 0, 0, 0,
+ 0, -33, 0,};
#if defined(__cplusplus) || defined(__STDC__)
const short yyrindex[] =
#else
short yyrindex[] =
#endif
- { 269,
+ { 328,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 269, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 127, 0, 0, 148, 0, 0, 169, 0, 0, 190,
+ 328, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 139, 0, 0, 162, 0, 0, 185, 0, 0, 208,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 211, 0, 0, 0, 0, 0,
- 0, 0, -24, 0, -12, 0, 0, 0, 0, 0,
- 0, 0, 0, -10, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 236, 0, 0, 0, 0, 0,
+ 0, 1, 0, 0, 236, 0, 0, 0, 0, 0,
+ 0, 0, -30, 0, -24, 0, 0, 0, 0, 0,
+ 0, 0, 0, -12, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 260, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -18, 0, 0, 0,
- 0, 0, 0, 0, 22, 0, 0, 0, 0, 0,
- 0, 43, 64, 85, 0, 0, 106, 0, 288, 0,
- 0, 267, -18, 0, 0, 0, 0, 0, 0, 0,};
+ 0, 0, 0, 0, 0, 0, -27, 0, 0, 0,
+ 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
+ 0, 47, 70, 93, 0, 0, 116, 0, 282, 0,
+ 0, -20, -27, 0, 0, -25, 0, 0, 0, 0,
+ 0, 0, 0,};
#if defined(__cplusplus) || defined(__STDC__)
const short yygindex[] =
#else
short yygindex[] =
#endif
{ 0,
- -34, 36, 4, 5, -87, 50, 79, -16, 0, 0,
- 0, 0, 0, 0, 0, 0, 12, 0, 0, -14,
- 0, 0, -3, 0, 14, -27, 0, 0, -109, 0,
- 0, 29, 0, 31, 0, 0, 28, 0, 32, 0,
- 33,
+ -32, 36, 4, 5, -88, 52, 81, -14, 0, 0,
+ 0, 0, 0, 0, 0, 0, 13, 0, 0, -6,
+ 0, 0, -2, 0, 15, -22, 0, 0, 0, -114,
+ 0, 0, 30, 0, 29, 0, 0, 26, 0, 32,
+ 0, 33,
};
-#define YYTABLESIZE 559
+#define YYTABLESIZE 601
#if defined(__cplusplus) || defined(__STDC__)
const short yytable[] =
#else
short yytable[] =
#endif
- { 51,
- 22, 55, 53, 38, 43, 114, 84, 79, 19, 80,
- 74, 128, 106, 107, 43, 16, 130, 51, 124, 125,
- 15, 64, 17, 97, 20, 78, 108, 23, 122, 1,
- 26, 66, 29, 22, 68, 70, 72, 2, 3, 4,
- 5, 81, 70, 87, 22, 6, 7, 8, 9, 10,
- 82, 84, 33, 74, 64, 34, 35, 36, 86, 89,
- 96, 98, 91, 80, 46, 37, 47, 48, 99, 49,
- 100, 93, 105, 121, 113, 70, 116, 50, 56, 64,
- 123, 57, 58, 59, 76, 127, 83, 73, 103, 32,
- 104, 60, 115, 101, 88, 129, 80, 102, 90, 94,
- 70, 92, 0, 0, 0, 29, 95, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 76, 0, 0,
- 0, 80, 0, 0, 0, 0, 8, 0, 0, 0,
+ { 109,
+ 22, 43, 19, 55, 114, 43, 128, 55, 15, 84,
+ 53, 16, 44, 124, 125, 20, 79, 133, 80, 23,
+ 17, 1, 26, 67, 130, 131, 97, 122, 29, 2,
+ 3, 4, 5, 22, 78, 106, 107, 87, 66, 6,
+ 7, 8, 9, 10, 22, 33, 73, 68, 34, 35,
+ 36, 108, 46, 70, 47, 48, 67, 49, 56, 72,
+ 37, 57, 58, 59, 81, 82, 84, 50, 74, 83,
+ 86, 89, 91, 60, 93, 96, 113, 98, 99, 73,
+ 105, 67, 100, 121, 116, 123, 83, 127, 103, 73,
+ 104, 32, 79, 115, 101, 88, 90, 94, 102, 0,
+ 129, 92, 83, 0, 73, 0, 95, 0, 0, 0,
+ 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 79, 0, 83, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,
0, 0, 0, 0, 0, 0, 0, 0, 29, 0,
- 0, 0, 76, 0, 0, 0, 0, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
- 0, 0, 0, 29, 0, 0, 0, 0, 7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 10, 0, 46, 0, 47, 48, 33, 49,
- 42, 34, 35, 36, 19, 6, 0, 50, 43, 43,
- 0, 37, 46, 20, 47, 48, 15, 49, 17, 0,
- 43, 43, 43, 0, 109, 50, 22, 0, 22, 0,
- 0, 22, 22, 22, 22, 22, 22, 22, 6, 0,
- 0, 22, 22, 22, 22, 22, 22, 64, 0, 64,
- 0, 0, 64, 64, 64, 64, 64, 64, 64, 61,
- 0, 0, 64, 64, 64, 64, 64, 64, 70, 44,
- 70, 5, 0, 70, 70, 70, 70, 70, 70, 70,
- 0, 0, 0, 70, 70, 70, 70, 70, 70, 80,
- 55, 80, 0, 0, 80, 80, 80, 80, 80, 80,
- 80, 0, 0, 0, 80, 80, 80, 80, 80, 80,
- 76, 0, 76, 0, 0, 76, 76, 76, 76, 76,
- 76, 76, 0, 0, 0, 76, 76, 76, 76, 76,
- 76, 29, 0, 29, 0, 0, 29, 29, 29, 29,
- 29, 29, 29, 0, 0, 0, 29, 29, 29, 29,
- 29, 29, 8, 0, 8, 0, 0, 8, 8, 8,
- 8, 8, 8, 8, 0, 0, 0, 8, 8, 8,
- 8, 8, 8, 9, 0, 9, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 0, 0, 0, 9, 9,
- 9, 9, 9, 9, 7, 0, 7, 0, 0, 7,
- 7, 7, 7, 7, 7, 7, 0, 0, 0, 7,
- 7, 7, 7, 7, 7, 10, 0, 10, 0, 0,
- 10, 10, 10, 10, 10, 10, 10, 0, 0, 0,
- 10, 10, 10, 10, 10, 10, 20, 0, 20, 0,
- 0, 20, 20, 20, 20, 20, 20, 20, 106, 107,
- 0, 20, 20, 20, 20, 20, 20, 0, 0, 0,
- 0, 6, 108, 6, 0, 0, 6, 6, 6, 6,
- 6, 6, 6, 0, 0, 0, 6, 6, 6, 6,
- 6, 6, 0, 0, 56, 0, 0, 57, 58, 59,
- 0, 0, 0, 44, 44, 0, 5, 60, 0, 5,
- 5, 5, 0, 0, 0, 44, 44, 44, 0, 5,
- 0, 0, 0, 0, 55, 55, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 55,
+ 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8, 0, 29, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 10, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
+ 0, 0, 0, 106, 107, 0, 0, 42, 19, 43,
+ 43, 55, 55, 0, 15, 20, 44, 44, 0, 108,
+ 10, 43, 43, 43, 43, 43, 17, 55, 44, 44,
+ 44, 44, 44, 0, 0, 0, 22, 0, 22, 6,
+ 0, 22, 22, 22, 22, 22, 22, 22, 20, 0,
+ 0, 0, 0, 22, 22, 22, 22, 22, 22, 67,
+ 0, 67, 0, 0, 67, 67, 67, 67, 67, 67,
+ 67, 0, 6, 0, 0, 0, 67, 67, 67, 67,
+ 67, 67, 73, 0, 73, 0, 0, 73, 73, 73,
+ 73, 73, 73, 73, 58, 51, 0, 0, 0, 73,
+ 73, 73, 73, 73, 73, 83, 74, 83, 38, 0,
+ 83, 83, 83, 83, 83, 83, 83, 51, 0, 0,
+ 0, 61, 83, 83, 83, 83, 83, 83, 79, 0,
+ 79, 0, 0, 79, 79, 79, 79, 79, 79, 79,
+ 5, 0, 0, 0, 0, 79, 79, 79, 79, 79,
+ 79, 29, 0, 29, 0, 0, 29, 29, 29, 29,
+ 29, 29, 29, 0, 0, 0, 0, 0, 29, 29,
+ 29, 29, 29, 29, 8, 0, 8, 0, 0, 8,
+ 8, 8, 8, 8, 8, 8, 0, 0, 0, 0,
+ 0, 8, 8, 8, 8, 8, 8, 9, 0, 9,
+ 0, 0, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
+ 7, 0, 7, 0, 0, 7, 7, 7, 7, 7,
+ 7, 7, 0, 0, 0, 0, 0, 7, 7, 7,
+ 7, 7, 7, 10, 0, 10, 0, 0, 10, 10,
+ 10, 10, 10, 10, 10, 0, 0, 0, 0, 0,
+ 10, 10, 10, 10, 10, 10, 0, 0, 0, 0,
+ 0, 20, 0, 20, 0, 0, 20, 20, 20, 20,
+ 20, 20, 20, 0, 0, 0, 0, 0, 20, 20,
+ 20, 20, 20, 20, 0, 6, 0, 6, 0, 0,
+ 6, 6, 6, 6, 6, 6, 6, 0, 0, 0,
+ 0, 0, 6, 6, 6, 6, 6, 6, 58, 58,
+ 46, 0, 47, 48, 0, 49, 0, 0, 0, 0,
+ 58, 58, 0, 33, 58, 50, 34, 35, 36, 0,
+ 0, 0, 46, 0, 47, 48, 56, 49, 37, 57,
+ 58, 59, 0, 0, 0, 0, 0, 50, 0, 0,
+ 0, 60, 0, 0, 0, 5, 0, 0, 5, 5,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5,
};
#if defined(__cplusplus) || defined(__STDC__)
const short yycheck[] =
short yycheck[] =
#endif
{ 33,
- 0, 18, 17, 33, 33, 93, 44, 43, 33, 45,
- 44, 121, 257, 258, 33, 272, 126, 33, 269, 270,
- 33, 0, 33, 61, 258, 61, 271, 258, 116, 256,
- 258, 58, 258, 33, 58, 58, 58, 264, 265, 266,
- 267, 259, 0, 61, 44, 272, 273, 274, 275, 276,
- 44, 44, 258, 44, 33, 261, 262, 263, 44, 61,
- 58, 263, 61, 0, 258, 271, 260, 261, 263, 263,
- 263, 61, 87, 44, 91, 33, 268, 271, 258, 58,
- 44, 261, 262, 263, 0, 120, 51, 38, 85, 11,
- 86, 271, 96, 82, 66, 123, 33, 84, 68, 72,
- 58, 70, -1, -1, -1, 0, 74, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 33, -1, -1,
- -1, 58, -1, -1, -1, -1, 0, -1, -1, -1,
+ 0, 33, 33, 18, 93, 33, 121, 33, 33, 44,
+ 17, 274, 33, 271, 272, 258, 43, 132, 45, 258,
+ 33, 256, 258, 0, 269, 270, 61, 116, 258, 264,
+ 265, 266, 267, 33, 61, 257, 258, 61, 58, 274,
+ 275, 276, 277, 278, 44, 258, 0, 58, 261, 262,
+ 263, 273, 258, 58, 260, 261, 33, 263, 258, 58,
+ 273, 261, 262, 263, 259, 44, 44, 273, 44, 0,
+ 44, 61, 61, 273, 61, 58, 91, 263, 263, 33,
+ 87, 58, 263, 44, 268, 44, 51, 120, 85, 38,
+ 86, 11, 0, 96, 82, 66, 68, 72, 84, -1,
+ 123, 70, 33, -1, 58, -1, 74, -1, -1, -1,
+ -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 33, -1, 58, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 0, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, 58, -1, -1, -1, -1, 0, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 33,
- -1, -1, -1, 58, -1, -1, -1, -1, 0, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 33, -1, -1, -1, -1, -1, -1, -1, -1, 0,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 33, -1, -1, -1, -1, -1, -1, -1, -1,
- 0, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 33, -1, 258, -1, 260, 261, 258, 263,
- 259, 261, 262, 263, 259, 0, -1, 271, 257, 258,
- -1, 271, 258, 33, 260, 261, 259, 263, 259, -1,
- 269, 270, 271, -1, 33, 271, 256, -1, 258, -1,
+ 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 0, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 33, -1, 58, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 0, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 33, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 0, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 33, -1, -1,
+ -1, -1, -1, 257, 258, -1, -1, 259, 259, 257,
+ 258, 257, 258, -1, 259, 0, 257, 258, -1, 273,
+ 33, 269, 270, 271, 272, 273, 259, 273, 269, 270,
+ 271, 272, 273, -1, -1, -1, 256, -1, 258, 0,
-1, 261, 262, 263, 264, 265, 266, 267, 33, -1,
- -1, 271, 272, 273, 274, 275, 276, 256, -1, 258,
- -1, -1, 261, 262, 263, 264, 265, 266, 267, 33,
- -1, -1, 271, 272, 273, 274, 275, 276, 256, 33,
- 258, 33, -1, 261, 262, 263, 264, 265, 266, 267,
- -1, -1, -1, 271, 272, 273, 274, 275, 276, 256,
- 33, 258, -1, -1, 261, 262, 263, 264, 265, 266,
- 267, -1, -1, -1, 271, 272, 273, 274, 275, 276,
+ -1, -1, -1, 273, 274, 275, 276, 277, 278, 256,
+ -1, 258, -1, -1, 261, 262, 263, 264, 265, 266,
+ 267, -1, 33, -1, -1, -1, 273, 274, 275, 276,
+ 277, 278, 256, -1, 258, -1, -1, 261, 262, 263,
+ 264, 265, 266, 267, 33, 33, -1, -1, -1, 273,
+ 274, 275, 276, 277, 278, 256, 44, 258, 33, -1,
+ 261, 262, 263, 264, 265, 266, 267, 33, -1, -1,
+ -1, 33, 273, 274, 275, 276, 277, 278, 256, -1,
+ 258, -1, -1, 261, 262, 263, 264, 265, 266, 267,
+ 33, -1, -1, -1, -1, 273, 274, 275, 276, 277,
+ 278, 256, -1, 258, -1, -1, 261, 262, 263, 264,
+ 265, 266, 267, -1, -1, -1, -1, -1, 273, 274,
+ 275, 276, 277, 278, 256, -1, 258, -1, -1, 261,
+ 262, 263, 264, 265, 266, 267, -1, -1, -1, -1,
+ -1, 273, 274, 275, 276, 277, 278, 256, -1, 258,
+ -1, -1, 261, 262, 263, 264, 265, 266, 267, -1,
+ -1, -1, -1, -1, 273, 274, 275, 276, 277, 278,
256, -1, 258, -1, -1, 261, 262, 263, 264, 265,
- 266, 267, -1, -1, -1, 271, 272, 273, 274, 275,
- 276, 256, -1, 258, -1, -1, 261, 262, 263, 264,
- 265, 266, 267, -1, -1, -1, 271, 272, 273, 274,
- 275, 276, 256, -1, 258, -1, -1, 261, 262, 263,
- 264, 265, 266, 267, -1, -1, -1, 271, 272, 273,
- 274, 275, 276, 256, -1, 258, -1, -1, 261, 262,
- 263, 264, 265, 266, 267, -1, -1, -1, 271, 272,
- 273, 274, 275, 276, 256, -1, 258, -1, -1, 261,
- 262, 263, 264, 265, 266, 267, -1, -1, -1, 271,
- 272, 273, 274, 275, 276, 256, -1, 258, -1, -1,
+ 266, 267, -1, -1, -1, -1, -1, 273, 274, 275,
+ 276, 277, 278, 256, -1, 258, -1, -1, 261, 262,
+ 263, 264, 265, 266, 267, -1, -1, -1, -1, -1,
+ 273, 274, 275, 276, 277, 278, -1, -1, -1, -1,
+ -1, 256, -1, 258, -1, -1, 261, 262, 263, 264,
+ 265, 266, 267, -1, -1, -1, -1, -1, 273, 274,
+ 275, 276, 277, 278, -1, 256, -1, 258, -1, -1,
261, 262, 263, 264, 265, 266, 267, -1, -1, -1,
- 271, 272, 273, 274, 275, 276, 256, -1, 258, -1,
- -1, 261, 262, 263, 264, 265, 266, 267, 257, 258,
- -1, 271, 272, 273, 274, 275, 276, -1, -1, -1,
- -1, 256, 271, 258, -1, -1, 261, 262, 263, 264,
- 265, 266, 267, -1, -1, -1, 271, 272, 273, 274,
- 275, 276, -1, -1, 258, -1, -1, 261, 262, 263,
- -1, -1, -1, 257, 258, -1, 258, 271, -1, 261,
- 262, 263, -1, -1, -1, 269, 270, 271, -1, 271,
- -1, -1, -1, -1, 257, 258, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 271,
+ -1, -1, 273, 274, 275, 276, 277, 278, 257, 258,
+ 258, -1, 260, 261, -1, 263, -1, -1, -1, -1,
+ 269, 270, -1, 258, 273, 273, 261, 262, 263, -1,
+ -1, -1, 258, -1, 260, 261, 258, 263, 273, 261,
+ 262, 263, -1, -1, -1, -1, -1, 273, -1, -1,
+ -1, 273, -1, -1, -1, 258, -1, -1, 261, 262,
+ 263, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 273,
};
#define YYFINAL 11
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
-#define YYMAXTOKEN 277
+#define YYMAXTOKEN 279
#if YYDEBUG
#if defined(__cplusplus) || defined(__STDC__)
const char * const yyname[] =
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"COMMAND","ALIAS","DEFVAR","NTWKADDR","NETGROUP","USERGROUP","WORD","DEFAULTS",
"DEFAULTS_HOST","DEFAULTS_USER","DEFAULTS_RUNAS","RUNAS","NOPASSWD","PASSWD",
-"ALL","COMMENT","HOSTALIAS","CMNDALIAS","USERALIAS","RUNASALIAS","ERROR",
+"NOEXEC","EXEC","ALL","COMMENT","HOSTALIAS","CMNDALIAS","USERALIAS",
+"RUNASALIAS","ERROR",
};
#if defined(__cplusplus) || defined(__STDC__)
const char * const yyrule[] =
"host : ALIAS",
"cmndspeclist : cmndspec",
"cmndspeclist : cmndspeclist ',' cmndspec",
-"cmndspec : runasspec nopasswd opcmnd",
+"cmndspec : runasspec noexec nopasswd opcmnd",
"opcmnd : cmnd",
"$$5 :",
"opcmnd : '!' $$5 cmnd",
"nopasswd :",
"nopasswd : NOPASSWD",
"nopasswd : PASSWD",
+"noexec :",
+"noexec : NOEXEC",
+"noexec : EXEC",
"cmnd : ALL",
"cmnd : ALIAS",
"cmnd : COMMAND",
short *yysslim;
YYSTYPE *yyvs;
int yystacksize;
-#line 869 "parse.yacc"
+#line 895 "parse.yacc"
#define MOREALIASES (32)
aliasinfo *aliases = NULL;
(void) printf("(%s) ", def_runas_default);
}
+ /* Is execve(2) disabled? */
+ if (cm_list[count].noexecve == TRUE && !def_noexec)
+ (void) fputs("NOEXEC: ", stdout);
+ else if (cm_list[count].noexecve == FALSE && def_noexec)
+ (void) fputs("EXEC: ", stdout);
+
/* Is a password required? */
if (cm_list[count].nopasswd == TRUE && def_authenticate)
(void) fputs("NOPASSWD: ", stdout);
cm_list[cm_list_len].runas = cm_list[cm_list_len].cmnd = NULL;
cm_list[cm_list_len].nopasswd = FALSE;
+ cm_list[cm_list_len].noexecve = FALSE;
}
/*
if (printmatches == TRUE)
expand_match_list();
}
-#line 948 "sudo.tab.c"
+#line 978 "sudo.tab.c"
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
#if defined(__cplusplus) || defined(__STDC__)
static int yygrowstack(void)
switch (yyn)
{
case 3:
-#line 269 "parse.yacc"
+#line 273 "parse.yacc"
{ ; }
break;
case 4:
-#line 271 "parse.yacc"
+#line 275 "parse.yacc"
{ yyerrok; }
break;
case 5:
-#line 272 "parse.yacc"
+#line 276 "parse.yacc"
{ push; }
break;
case 6:
-#line 272 "parse.yacc"
+#line 276 "parse.yacc"
{
while (top && user_matches != TRUE)
pop;
}
break;
case 7:
-#line 277 "parse.yacc"
+#line 281 "parse.yacc"
{ ; }
break;
case 8:
-#line 279 "parse.yacc"
+#line 283 "parse.yacc"
{ ; }
break;
case 9:
-#line 281 "parse.yacc"
+#line 285 "parse.yacc"
{ ; }
break;
case 10:
-#line 283 "parse.yacc"
+#line 287 "parse.yacc"
{ ; }
break;
case 11:
-#line 285 "parse.yacc"
+#line 289 "parse.yacc"
{ ; }
break;
case 13:
-#line 291 "parse.yacc"
+#line 295 "parse.yacc"
{
defaults_matches = TRUE;
}
break;
case 14:
-#line 294 "parse.yacc"
+#line 298 "parse.yacc"
{ push; }
break;
case 15:
-#line 294 "parse.yacc"
+#line 298 "parse.yacc"
{
defaults_matches = user_matches;
pop;
}
break;
case 16:
-#line 298 "parse.yacc"
+#line 302 "parse.yacc"
{ push; }
break;
case 17:
-#line 298 "parse.yacc"
+#line 302 "parse.yacc"
{
defaults_matches = yyvsp[0].BOOLEAN == TRUE;
pop;
}
break;
case 18:
-#line 302 "parse.yacc"
+#line 306 "parse.yacc"
{ push; }
break;
case 19:
-#line 302 "parse.yacc"
+#line 306 "parse.yacc"
{
defaults_matches = host_matches;
pop;
}
break;
case 22:
-#line 312 "parse.yacc"
+#line 316 "parse.yacc"
{
if (defaults_matches == TRUE &&
!set_default(yyvsp[0].string, NULL, TRUE)) {
}
break;
case 23:
-#line 320 "parse.yacc"
+#line 324 "parse.yacc"
{
if (defaults_matches == TRUE &&
!set_default(yyvsp[0].string, NULL, FALSE)) {
}
break;
case 24:
-#line 328 "parse.yacc"
+#line 332 "parse.yacc"
{
if (defaults_matches == TRUE &&
!set_default(yyvsp[-2].string, yyvsp[0].string, TRUE)) {
}
break;
case 25:
-#line 337 "parse.yacc"
+#line 341 "parse.yacc"
{
if (defaults_matches == TRUE &&
!set_default(yyvsp[-2].string, yyvsp[0].string, '+')) {
}
break;
case 26:
-#line 346 "parse.yacc"
+#line 350 "parse.yacc"
{
if (defaults_matches == TRUE &&
!set_default(yyvsp[-2].string, yyvsp[0].string, '-')) {
}
break;
case 29:
-#line 361 "parse.yacc"
+#line 365 "parse.yacc"
{
/*
* We already did a push if necessary in
*/
host_matches = -1;
runas_matches = -1;
- if (def_authenticate)
- no_passwd = -1;
- else
- no_passwd = TRUE;
+ no_passwd = def_authenticate ? -1 : TRUE;
+ no_execve = def_noexec ? TRUE : -1;
}
break;
case 30:
-#line 376 "parse.yacc"
+#line 378 "parse.yacc"
{
if (yyvsp[0].BOOLEAN != -1)
host_matches = yyvsp[0].BOOLEAN;
}
break;
case 31:
-#line 380 "parse.yacc"
+#line 382 "parse.yacc"
{
if (yyvsp[0].BOOLEAN != -1)
host_matches = ! yyvsp[0].BOOLEAN;
}
break;
case 32:
-#line 386 "parse.yacc"
+#line 388 "parse.yacc"
{
yyval.BOOLEAN = TRUE;
}
break;
case 33:
-#line 389 "parse.yacc"
+#line 391 "parse.yacc"
{
if (addr_matches(yyvsp[0].string))
yyval.BOOLEAN = TRUE;
}
break;
case 34:
-#line 396 "parse.yacc"
+#line 398 "parse.yacc"
{
if (netgr_matches(yyvsp[0].string, user_host, user_shost, NULL))
yyval.BOOLEAN = TRUE;
}
break;
case 35:
-#line 403 "parse.yacc"
+#line 405 "parse.yacc"
{
if (hostname_matches(user_shost, user_host, yyvsp[0].string) == 0)
yyval.BOOLEAN = TRUE;
}
break;
case 36:
-#line 410 "parse.yacc"
+#line 412 "parse.yacc"
{
aliasinfo *aip = find_alias(yyvsp[0].string, HOST_ALIAS);
}
break;
case 39:
-#line 438 "parse.yacc"
+#line 440 "parse.yacc"
{
/*
* Push the entry onto the stack if it is worth
}
break;
case 40:
-#line 465 "parse.yacc"
+#line 467 "parse.yacc"
{
if (yyvsp[0].BOOLEAN != -1)
cmnd_matches = yyvsp[0].BOOLEAN;
}
break;
case 41:
-#line 469 "parse.yacc"
+#line 471 "parse.yacc"
{
if (printmatches == TRUE) {
if (in_alias == TRUE)
}
break;
case 42:
-#line 477 "parse.yacc"
+#line 479 "parse.yacc"
{
if (yyvsp[0].BOOLEAN != -1)
cmnd_matches = ! yyvsp[0].BOOLEAN;
}
break;
case 43:
-#line 483 "parse.yacc"
+#line 485 "parse.yacc"
{
if (printmatches == TRUE && host_matches == TRUE &&
user_matches == TRUE) {
}
break;
case 44:
-#line 506 "parse.yacc"
+#line 508 "parse.yacc"
{
runas_matches = (yyvsp[0].BOOLEAN == TRUE ? TRUE : FALSE);
}
break;
case 45:
-#line 511 "parse.yacc"
+#line 513 "parse.yacc"
{ ; }
break;
case 46:
-#line 512 "parse.yacc"
+#line 514 "parse.yacc"
{
/* Later entries override earlier ones. */
if (yyvsp[0].BOOLEAN != -1)
}
break;
case 47:
-#line 521 "parse.yacc"
+#line 523 "parse.yacc"
{ ; }
break;
case 48:
-#line 522 "parse.yacc"
+#line 524 "parse.yacc"
{
if (printmatches == TRUE) {
if (in_alias == TRUE)
}
break;
case 49:
-#line 530 "parse.yacc"
+#line 532 "parse.yacc"
{
/* Set $$ to the negation of runasuser */
yyval.BOOLEAN = (yyvsp[0].BOOLEAN == -1 ? -1 : ! yyvsp[0].BOOLEAN);
}
break;
case 50:
-#line 536 "parse.yacc"
+#line 538 "parse.yacc"
{
if (printmatches == TRUE) {
if (in_alias == TRUE)
}
break;
case 51:
-#line 550 "parse.yacc"
+#line 552 "parse.yacc"
{
if (printmatches == TRUE) {
if (in_alias == TRUE)
}
break;
case 52:
-#line 564 "parse.yacc"
+#line 566 "parse.yacc"
{
if (printmatches == TRUE) {
if (in_alias == TRUE)
}
break;
case 53:
-#line 578 "parse.yacc"
+#line 580 "parse.yacc"
{
aliasinfo *aip = find_alias(yyvsp[0].string, RUNAS_ALIAS);
}
break;
case 54:
-#line 607 "parse.yacc"
+#line 609 "parse.yacc"
{
if (printmatches == TRUE) {
if (in_alias == TRUE)
}
break;
case 55:
-#line 619 "parse.yacc"
+#line 621 "parse.yacc"
{
/* Inherit NOPASSWD/PASSWD status. */
if (printmatches == TRUE && host_matches == TRUE &&
}
break;
case 56:
-#line 629 "parse.yacc"
+#line 631 "parse.yacc"
{
no_passwd = TRUE;
if (printmatches == TRUE && host_matches == TRUE &&
}
break;
case 57:
-#line 635 "parse.yacc"
+#line 637 "parse.yacc"
{
no_passwd = FALSE;
if (printmatches == TRUE && host_matches == TRUE &&
}
break;
case 58:
-#line 643 "parse.yacc"
+#line 645 "parse.yacc"
+{
+ /* Inherit NOEXEC/EXEC status. */
+ if (printmatches == TRUE && host_matches == TRUE &&
+ user_matches == TRUE) {
+ if (no_execve == TRUE)
+ cm_list[cm_list_len].noexecve = TRUE;
+ else
+ cm_list[cm_list_len].noexecve = FALSE;
+ }
+ }
+break;
+case 59:
+#line 655 "parse.yacc"
+{
+ no_execve = TRUE;
+ if (printmatches == TRUE && host_matches == TRUE &&
+ user_matches == TRUE)
+ cm_list[cm_list_len].noexecve = TRUE;
+ }
+break;
+case 60:
+#line 661 "parse.yacc"
+{
+ no_execve = FALSE;
+ if (printmatches == TRUE && host_matches == TRUE &&
+ user_matches == TRUE)
+ cm_list[cm_list_len].noexecve = FALSE;
+ }
+break;
+case 61:
+#line 669 "parse.yacc"
{
if (printmatches == TRUE) {
if (in_alias == TRUE)
safe_cmnd = estrdup(user_cmnd);
}
break;
-case 59:
-#line 660 "parse.yacc"
+case 62:
+#line 686 "parse.yacc"
{
aliasinfo *aip;
free(yyvsp[0].string);
}
break;
-case 60:
-#line 689 "parse.yacc"
+case 63:
+#line 715 "parse.yacc"
{
if (printmatches == TRUE) {
if (in_alias == TRUE) {
free(yyvsp[0].command.args);
}
break;
-case 63:
-#line 721 "parse.yacc"
+case 66:
+#line 747 "parse.yacc"
{ push; }
break;
-case 64:
-#line 721 "parse.yacc"
+case 67:
+#line 747 "parse.yacc"
{
if ((host_matches != -1 || pedantic) &&
!add_alias(yyvsp[-3].string, HOST_ALIAS, host_matches)) {
pop;
}
break;
-case 69:
-#line 739 "parse.yacc"
+case 72:
+#line 765 "parse.yacc"
{
push;
if (printmatches == TRUE) {
}
}
break;
-case 70:
-#line 748 "parse.yacc"
+case 73:
+#line 774 "parse.yacc"
{
if ((cmnd_matches != -1 || pedantic) &&
!add_alias(yyvsp[-3].string, CMND_ALIAS, cmnd_matches)) {
in_alias = FALSE;
}
break;
-case 71:
-#line 762 "parse.yacc"
+case 74:
+#line 788 "parse.yacc"
{ ; }
break;
-case 75:
-#line 770 "parse.yacc"
+case 78:
+#line 796 "parse.yacc"
{
if (printmatches == TRUE) {
in_alias = TRUE;
}
}
break;
-case 76:
-#line 778 "parse.yacc"
+case 79:
+#line 804 "parse.yacc"
{
if ((yyvsp[0].BOOLEAN != -1 || pedantic) &&
!add_alias(yyvsp[-3].string, RUNAS_ALIAS, yyvsp[0].BOOLEAN)) {
in_alias = FALSE;
}
break;
-case 79:
-#line 795 "parse.yacc"
+case 82:
+#line 821 "parse.yacc"
{ push; }
break;
-case 80:
-#line 795 "parse.yacc"
+case 83:
+#line 821 "parse.yacc"
{
if ((user_matches != -1 || pedantic) &&
!add_alias(yyvsp[-3].string, USER_ALIAS, user_matches)) {
free(yyvsp[-3].string);
}
break;
-case 83:
-#line 810 "parse.yacc"
+case 86:
+#line 836 "parse.yacc"
{
if (yyvsp[0].BOOLEAN != -1)
user_matches = yyvsp[0].BOOLEAN;
}
break;
-case 84:
-#line 814 "parse.yacc"
+case 87:
+#line 840 "parse.yacc"
{
if (yyvsp[0].BOOLEAN != -1)
user_matches = ! yyvsp[0].BOOLEAN;
}
break;
-case 85:
-#line 820 "parse.yacc"
+case 88:
+#line 846 "parse.yacc"
{
if (strcmp(yyvsp[0].string, user_name) == 0)
yyval.BOOLEAN = TRUE;
free(yyvsp[0].string);
}
break;
-case 86:
-#line 827 "parse.yacc"
+case 89:
+#line 853 "parse.yacc"
{
if (usergr_matches(yyvsp[0].string, user_name))
yyval.BOOLEAN = TRUE;
free(yyvsp[0].string);
}
break;
-case 87:
-#line 834 "parse.yacc"
+case 90:
+#line 860 "parse.yacc"
{
if (netgr_matches(yyvsp[0].string, NULL, NULL, user_name))
yyval.BOOLEAN = TRUE;
free(yyvsp[0].string);
}
break;
-case 88:
-#line 841 "parse.yacc"
+case 91:
+#line 867 "parse.yacc"
{
aliasinfo *aip = find_alias(yyvsp[0].string, USER_ALIAS);
free(yyvsp[0].string);
}
break;
-case 89:
-#line 863 "parse.yacc"
+case 92:
+#line 889 "parse.yacc"
{
yyval.BOOLEAN = TRUE;
}
break;
-#line 1863 "sudo.tab.c"
+#line 1922 "sudo.tab.c"
}
yyssp -= yym;
yystate = *yyssp;