diff --git a/ast.go b/ast.go index 023df5c..359d24c 100644 --- a/ast.go +++ b/ast.go @@ -2113,6 +2113,8 @@ const ( NotRegexpStr = "not regexp" StartsWithStr = "starts_with" NotStartsWithStr = "not starts_with" + ContainsStr = "contains" + NotContainsStr = "not contains" JSONExtractOp = "->" JSONUnquoteExtractOp = "->>" ) diff --git a/sql.go b/sql.go index 3dadbb8..0cda6a3 100644 --- a/sql.go +++ b/sql.go @@ -183,155 +183,156 @@ const LIKE = 57423 const REGEXP = 57424 const IN = 57425 const STARTS_WITH = 57426 -const SHIFT_LEFT = 57427 -const SHIFT_RIGHT = 57428 -const DIV = 57429 -const MOD = 57430 -const UNARY = 57431 -const COLLATE = 57432 -const BINARY = 57433 -const UNDERSCORE_BINARY = 57434 -const INTERVAL = 57435 -const JSON_EXTRACT_OP = 57436 -const JSON_UNQUOTE_EXTRACT_OP = 57437 -const CREATE = 57438 -const ALTER = 57439 -const DROP = 57440 -const RENAME = 57441 -const ANALYZE = 57442 -const ADD = 57443 -const SCHEMA = 57444 -const TABLE = 57445 -const INDEX = 57446 -const VIEW = 57447 -const TO = 57448 -const IGNORE = 57449 -const IF = 57450 -const UNIQUE = 57451 -const PRIMARY = 57452 -const COLUMN = 57453 -const CONSTRAINT = 57454 -const SPATIAL = 57455 -const FULLTEXT = 57456 -const FOREIGN = 57457 -const KEY_BLOCK_SIZE = 57458 -const SHOW = 57459 -const DESCRIBE = 57460 -const EXPLAIN = 57461 -const DATE = 57462 -const ESCAPE = 57463 -const REPAIR = 57464 -const OPTIMIZE = 57465 -const TRUNCATE = 57466 -const MAXVALUE = 57467 -const PARTITION = 57468 -const REORGANIZE = 57469 -const LESS = 57470 -const THAN = 57471 -const PROCEDURE = 57472 -const TRIGGER = 57473 -const VINDEX = 57474 -const VINDEXES = 57475 -const STATUS = 57476 -const VARIABLES = 57477 -const BEGIN = 57478 -const START = 57479 -const TRANSACTION = 57480 -const COMMIT = 57481 -const ROLLBACK = 57482 -const BIT = 57483 -const TINYINT = 57484 -const SMALLINT = 57485 -const MEDIUMINT = 57486 -const INT = 57487 -const INTEGER = 57488 -const BIGINT = 57489 -const INTNUM = 57490 -const REAL = 57491 -const DOUBLE = 57492 -const FLOAT_TYPE = 57493 -const DECIMAL = 57494 -const NUMERIC = 57495 -const TIME = 57496 -const TIMESTAMP = 57497 -const DATETIME = 57498 -const YEAR = 57499 -const CHAR = 57500 -const VARCHAR = 57501 -const BOOL = 57502 -const CHARACTER = 57503 -const VARBINARY = 57504 -const NCHAR = 57505 -const TEXT = 57506 -const TINYTEXT = 57507 -const MEDIUMTEXT = 57508 -const LONGTEXT = 57509 -const BLOB = 57510 -const TINYBLOB = 57511 -const MEDIUMBLOB = 57512 -const LONGBLOB = 57513 -const JSON = 57514 -const ENUM = 57515 -const GEOMETRY = 57516 -const POINT = 57517 -const LINESTRING = 57518 -const POLYGON = 57519 -const GEOMETRYCOLLECTION = 57520 -const MULTIPOINT = 57521 -const MULTILINESTRING = 57522 -const MULTIPOLYGON = 57523 -const NULLX = 57524 -const AUTO_INCREMENT = 57525 -const APPROXNUM = 57526 -const SIGNED = 57527 -const UNSIGNED = 57528 -const ZEROFILL = 57529 -const DATABASES = 57530 -const TABLES = 57531 -const VITESS_KEYSPACES = 57532 -const VITESS_SHARDS = 57533 -const VITESS_TABLETS = 57534 -const VSCHEMA_TABLES = 57535 -const EXTENDED = 57536 -const FULL = 57537 -const PROCESSLIST = 57538 -const NAMES = 57539 -const CHARSET = 57540 -const GLOBAL = 57541 -const SESSION = 57542 -const ISOLATION = 57543 -const LEVEL = 57544 -const READ = 57545 -const WRITE = 57546 -const ONLY = 57547 -const REPEATABLE = 57548 -const COMMITTED = 57549 -const UNCOMMITTED = 57550 -const SERIALIZABLE = 57551 -const CURRENT_TIMESTAMP = 57552 -const DATABASE = 57553 -const CURRENT_DATE = 57554 -const CURRENT_TIME = 57555 -const LOCALTIME = 57556 -const LOCALTIMESTAMP = 57557 -const UTC_DATE = 57558 -const UTC_TIME = 57559 -const UTC_TIMESTAMP = 57560 -const REPLACE = 57561 -const CONVERT = 57562 -const CAST = 57563 -const SUBSTR = 57564 -const SUBSTRING = 57565 -const GROUP_CONCAT = 57566 -const SEPARATOR = 57567 -const MATCH = 57568 -const AGAINST = 57569 -const BOOLEAN = 57570 -const LANGUAGE = 57571 -const WITH = 57572 -const QUERY = 57573 -const EXPANSION = 57574 -const UNUSED = 57575 +const CONTAINS = 57427 +const SHIFT_LEFT = 57428 +const SHIFT_RIGHT = 57429 +const DIV = 57430 +const MOD = 57431 +const UNARY = 57432 +const COLLATE = 57433 +const BINARY = 57434 +const UNDERSCORE_BINARY = 57435 +const INTERVAL = 57436 +const JSON_EXTRACT_OP = 57437 +const JSON_UNQUOTE_EXTRACT_OP = 57438 +const CREATE = 57439 +const ALTER = 57440 +const DROP = 57441 +const RENAME = 57442 +const ANALYZE = 57443 +const ADD = 57444 +const SCHEMA = 57445 +const TABLE = 57446 +const INDEX = 57447 +const VIEW = 57448 +const TO = 57449 +const IGNORE = 57450 +const IF = 57451 +const UNIQUE = 57452 +const PRIMARY = 57453 +const COLUMN = 57454 +const CONSTRAINT = 57455 +const SPATIAL = 57456 +const FULLTEXT = 57457 +const FOREIGN = 57458 +const KEY_BLOCK_SIZE = 57459 +const SHOW = 57460 +const DESCRIBE = 57461 +const EXPLAIN = 57462 +const DATE = 57463 +const ESCAPE = 57464 +const REPAIR = 57465 +const OPTIMIZE = 57466 +const TRUNCATE = 57467 +const MAXVALUE = 57468 +const PARTITION = 57469 +const REORGANIZE = 57470 +const LESS = 57471 +const THAN = 57472 +const PROCEDURE = 57473 +const TRIGGER = 57474 +const VINDEX = 57475 +const VINDEXES = 57476 +const STATUS = 57477 +const VARIABLES = 57478 +const BEGIN = 57479 +const START = 57480 +const TRANSACTION = 57481 +const COMMIT = 57482 +const ROLLBACK = 57483 +const BIT = 57484 +const TINYINT = 57485 +const SMALLINT = 57486 +const MEDIUMINT = 57487 +const INT = 57488 +const INTEGER = 57489 +const BIGINT = 57490 +const INTNUM = 57491 +const REAL = 57492 +const DOUBLE = 57493 +const FLOAT_TYPE = 57494 +const DECIMAL = 57495 +const NUMERIC = 57496 +const TIME = 57497 +const TIMESTAMP = 57498 +const DATETIME = 57499 +const YEAR = 57500 +const CHAR = 57501 +const VARCHAR = 57502 +const BOOL = 57503 +const CHARACTER = 57504 +const VARBINARY = 57505 +const NCHAR = 57506 +const TEXT = 57507 +const TINYTEXT = 57508 +const MEDIUMTEXT = 57509 +const LONGTEXT = 57510 +const BLOB = 57511 +const TINYBLOB = 57512 +const MEDIUMBLOB = 57513 +const LONGBLOB = 57514 +const JSON = 57515 +const ENUM = 57516 +const GEOMETRY = 57517 +const POINT = 57518 +const LINESTRING = 57519 +const POLYGON = 57520 +const GEOMETRYCOLLECTION = 57521 +const MULTIPOINT = 57522 +const MULTILINESTRING = 57523 +const MULTIPOLYGON = 57524 +const NULLX = 57525 +const AUTO_INCREMENT = 57526 +const APPROXNUM = 57527 +const SIGNED = 57528 +const UNSIGNED = 57529 +const ZEROFILL = 57530 +const DATABASES = 57531 +const TABLES = 57532 +const VITESS_KEYSPACES = 57533 +const VITESS_SHARDS = 57534 +const VITESS_TABLETS = 57535 +const VSCHEMA_TABLES = 57536 +const EXTENDED = 57537 +const FULL = 57538 +const PROCESSLIST = 57539 +const NAMES = 57540 +const CHARSET = 57541 +const GLOBAL = 57542 +const SESSION = 57543 +const ISOLATION = 57544 +const LEVEL = 57545 +const READ = 57546 +const WRITE = 57547 +const ONLY = 57548 +const REPEATABLE = 57549 +const COMMITTED = 57550 +const UNCOMMITTED = 57551 +const SERIALIZABLE = 57552 +const CURRENT_TIMESTAMP = 57553 +const DATABASE = 57554 +const CURRENT_DATE = 57555 +const CURRENT_TIME = 57556 +const LOCALTIME = 57557 +const LOCALTIMESTAMP = 57558 +const UTC_DATE = 57559 +const UTC_TIME = 57560 +const UTC_TIMESTAMP = 57561 +const REPLACE = 57562 +const CONVERT = 57563 +const CAST = 57564 +const SUBSTR = 57565 +const SUBSTRING = 57566 +const GROUP_CONCAT = 57567 +const SEPARATOR = 57568 +const MATCH = 57569 +const AGAINST = 57570 +const BOOLEAN = 57571 +const LANGUAGE = 57572 +const WITH = 57573 +const QUERY = 57574 +const EXPANSION = 57575 +const UNUSED = 57576 var yyToknames = [...]string{ "$end", @@ -425,6 +426,7 @@ var yyToknames = [...]string{ "REGEXP", "IN", "STARTS_WITH", + "CONTAINS", "'|'", "'&'", "SHIFT_LEFT", @@ -602,413 +604,355 @@ var yyExca = [...]int16{ 5, 27, -2, 4, -1, 36, - 151, 263, 152, 263, + 153, 263, -2, 253, -1, 238, - 110, 589, - -2, 585, + 111, 591, + -2, 587, -1, 239, - 110, 590, - -2, 586, + 111, 592, + -2, 588, -1, 308, - 80, 749, + 80, 752, -2, 58, -1, 309, - 80, 710, + 80, 713, -2, 59, -1, 314, - 80, 694, - -2, 551, - -1, 316, - 80, 731, + 80, 697, -2, 553, - -1, 577, + -1, 316, + 80, 734, + -2, 555, + -1, 579, 52, 41, 54, 41, -2, 43, - -1, 710, - 110, 592, - -2, 588, - -1, 917, + -1, 712, + 111, 594, + -2, 590, + -1, 922, 5, 28, - -2, 397, - -1, 942, + -2, 399, + -1, 947, 5, 27, - -2, 526, - -1, 1166, + -2, 528, + -1, 1171, 5, 28, - -2, 527, - -1, 1210, - 5, 27, -2, 529, - -1, 1272, + -1, 1215, + 5, 27, + -2, 531, + -1, 1277, 5, 28, - -2, 530, + -2, 532, } const yyPrivate = 57344 -const yyLast = 11072 +const yyLast = 11018 var yyAct = [...]int16{ - 269, 47, 1263, 858, 524, 1221, 648, 1074, 1102, 792, - 1003, 1075, 1172, 217, 774, 1071, 814, 571, 852, 813, - 268, 775, 945, 1048, 211, 523, 3, 313, 737, 909, - 744, 961, 747, 1006, 569, 838, 824, 994, 587, 763, - 456, 950, 586, 712, 771, 462, 810, 476, 47, 307, - 848, 411, 558, 890, 573, 241, 222, 226, 53, 468, - 52, 304, 299, 302, 1292, 294, 1282, 1290, 212, 213, - 214, 215, 1270, 216, 1288, 859, 1281, 1066, 832, 243, - 875, 1160, 415, 436, 245, 1230, 1096, 969, 1097, 1098, - 968, 443, 230, 970, 874, 805, 293, 1269, 451, 295, - 232, 985, 1245, 538, 490, 489, 499, 500, 492, 493, - 494, 495, 496, 497, 498, 491, 57, 831, 501, 806, - 807, 879, 1184, 1199, 1108, 1109, 1110, 588, 839, 589, - 873, 424, 1113, 1111, 1149, 181, 177, 178, 179, 1147, - 210, 59, 60, 61, 62, 63, 298, 438, 1289, 440, - 677, 447, 448, 1287, 1049, 310, 1264, 678, 1027, 1222, - 772, 425, 1228, 418, 826, 175, 174, 239, 175, 656, - 647, 826, 1224, 960, 437, 439, 793, 795, 959, 870, - 867, 868, 958, 866, 1051, 413, 513, 514, 421, 189, - 176, 1250, 412, 1169, 442, 442, 442, 442, 76, 442, - 1035, 925, 186, 902, 454, 186, 442, 1024, 877, 880, - 684, 826, 480, 1026, 431, 811, 1053, 501, 1057, 885, - 1052, 491, 1050, 47, 501, 474, 473, 1055, 195, 186, - 186, 76, 1070, 475, 681, 186, 1054, 76, 510, 979, - 1223, 512, 475, 872, 180, 839, 1117, 1255, 465, 1056, - 1058, 794, 205, 1127, 948, 435, 590, 825, 1068, 1246, - 1229, 1227, 823, 821, 825, 871, 822, 764, 522, 1031, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 464, - 537, 539, 539, 539, 539, 539, 539, 539, 539, 547, - 548, 549, 550, 1112, 1268, 983, 651, 1118, 886, 764, - 570, 932, 876, 190, 825, 828, 1025, 720, 1023, 192, - 829, 427, 428, 429, 1258, 878, 198, 194, 470, 459, - 463, 717, 718, 716, 719, 511, 499, 500, 492, 493, - 494, 495, 496, 497, 498, 491, 481, 417, 501, 1275, - 466, 173, 186, 196, 186, 1030, 200, 899, 900, 901, - 186, 494, 495, 496, 497, 498, 491, 186, 921, 501, - 920, 76, 76, 76, 76, 578, 76, 584, 922, 1274, - 525, 1253, 1190, 76, 191, 1189, 474, 473, 998, 536, - 687, 688, 474, 473, 298, 540, 541, 542, 543, 544, - 545, 546, 473, 475, 1014, 997, 738, 310, 739, 475, - 76, 193, 292, 201, 202, 203, 204, 208, 475, 419, - 420, 683, 207, 206, 1105, 442, 474, 473, 1014, 702, - 704, 705, 1012, 442, 703, 1256, 474, 473, 986, 1206, - 236, 1187, 50, 475, 442, 442, 442, 442, 442, 442, - 442, 442, 715, 475, 1135, 995, 1012, 682, 442, 442, - 1104, 492, 493, 494, 495, 496, 497, 498, 491, 665, - 186, 501, 980, 474, 473, 1278, 455, 186, 186, 186, - 1214, 1261, 455, 76, 1214, 455, 1214, 1215, 689, 76, - 475, 1181, 1180, 1093, 455, 663, 971, 1013, 1168, 455, - 1124, 1123, 1018, 1015, 1008, 1009, 1016, 1011, 1010, 1120, - 1121, 1120, 1119, 946, 713, 915, 455, 21, 710, 1017, - 861, 1013, 740, 47, 662, 1020, 1018, 1015, 1008, 1009, - 1016, 1011, 1010, 661, 691, 706, 652, 526, 555, 455, - 749, 455, 1234, 1017, 708, 650, 645, 23, 433, 1007, - 490, 489, 499, 500, 492, 493, 494, 495, 496, 497, - 498, 491, 751, 426, 501, 412, 299, 299, 299, 299, - 299, 940, 267, 221, 941, 597, 596, 1233, 714, 741, - 742, 570, 709, 796, 699, 700, 1114, 749, 1072, 768, - 299, 946, 76, 947, 50, 799, 910, 580, 186, 186, - 76, 23, 186, 74, 761, 186, 751, 54, 1164, 186, - 555, 76, 76, 76, 76, 76, 76, 76, 76, 581, - 1126, 756, 759, 554, 800, 76, 76, 765, 1209, 789, - 186, 777, 798, 1038, 780, 555, 312, 525, 803, 797, - 754, 755, 416, 802, 776, 76, 915, 555, 50, 186, - 298, 298, 298, 298, 298, 76, 840, 841, 842, 818, - 582, 442, 580, 442, 1122, 298, 778, 779, 972, 781, - 804, 442, 927, 854, 298, 947, 915, 23, 924, 915, - 690, 583, 685, 50, 1194, 310, 833, 515, 516, 517, - 518, 519, 520, 521, 834, 835, 836, 837, 815, 76, - 649, 809, 850, 851, 258, 257, 260, 261, 262, 263, - 845, 846, 847, 259, 264, 926, 223, 946, 853, 1087, - 903, 923, 710, 975, 50, 560, 563, 564, 565, 561, - 186, 562, 566, 186, 186, 186, 186, 186, 748, 750, - 892, 891, 951, 952, 856, 186, 849, 713, 186, 844, - 843, 65, 186, 1107, 766, 1072, 999, 186, 186, 954, - 659, 76, 452, 50, 697, 957, 312, 312, 312, 312, - 904, 312, 786, 956, 76, 1156, 455, 787, 312, 783, - 784, 782, 943, 944, 791, 785, 709, 788, 1286, 564, - 565, 227, 228, 888, 889, 1280, 463, 1034, 887, 1285, - 897, 896, 990, 595, 434, 478, 982, 942, 1260, 1259, - 299, 714, 931, 490, 489, 499, 500, 492, 493, 494, - 495, 496, 497, 498, 491, 186, 1207, 501, 76, 469, - 76, 963, 955, 965, 186, 976, 1162, 186, 76, 1195, - 973, 863, 457, 467, 964, 560, 563, 564, 565, 561, - 658, 562, 566, 966, 458, 951, 952, 568, 469, 746, - 916, 224, 225, 895, 218, 1239, 219, 1238, 442, 977, - 978, 894, 54, 1197, 947, 933, 471, 1247, 312, 1185, - 987, 988, 680, 56, 592, 58, 579, 51, 1, 860, - 1002, 441, 996, 442, 298, 989, 869, 991, 992, 993, - 1005, 1262, 1220, 1101, 820, 812, 410, 64, 1254, 819, - 1226, 1019, 1183, 827, 984, 815, 830, 1106, 1257, 981, - 602, 600, 601, 711, 599, 604, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 603, 598, 1041, 1042, 197, 305, 567, 591, - 855, 472, 1077, 66, 47, 912, 1060, 1022, 1047, 913, - 1059, 1004, 1021, 710, 865, 1073, 917, 918, 919, 1089, - 1090, 1091, 1076, 1029, 76, 928, 676, 186, 1083, 1078, - 934, 884, 935, 936, 937, 938, 1081, 312, 450, 199, - 509, 76, 893, 967, 311, 312, 1079, 1095, 1067, 686, - 461, 1100, 1099, 1237, 1040, 1196, 312, 312, 312, 312, - 312, 312, 312, 312, 1082, 930, 535, 762, 244, 701, - 312, 312, 256, 253, 255, 254, 692, 1063, 939, 482, - 776, 242, 1094, 234, 76, 76, 776, 76, 297, 551, - 693, 1128, 559, 1069, 1115, 1116, 557, 556, 953, 299, - 478, 949, 296, 312, 1130, 1037, 1159, 1133, 1084, 1085, - 76, 1244, 1086, 186, 186, 1088, 696, 25, 55, 229, - 1137, 186, 19, 18, 815, 17, 815, 1158, 20, 16, - 76, 15, 1145, 1138, 14, 29, 444, 445, 446, 13, - 449, 12, 11, 10, 743, 9, 8, 453, 7, 1163, - 6, 5, 4, 220, 757, 757, 1171, 22, 2, 0, - 757, 0, 1174, 1175, 1176, 0, 0, 0, 1179, 0, - 1177, 76, 76, 0, 0, 0, 973, 757, 0, 1046, - 0, 0, 0, 298, 0, 0, 442, 1040, 1142, 1143, - 0, 1144, 1136, 0, 1146, 0, 1148, 1192, 0, 0, - 76, 0, 76, 76, 1193, 0, 312, 0, 905, 906, - 907, 908, 0, 0, 0, 1186, 0, 1188, 0, 312, - 0, 0, 0, 0, 0, 1077, 1092, 186, 1211, 0, - 0, 1161, 0, 0, 0, 76, 1208, 0, 525, 1198, - 0, 0, 1182, 0, 0, 1076, 0, 1219, 76, 186, - 1225, 815, 0, 1210, 0, 76, 1236, 0, 0, 0, - 0, 0, 0, 76, 0, 0, 186, 1235, 0, 0, - 1077, 0, 47, 312, 0, 312, 0, 1248, 1004, 815, - 0, 0, 0, 312, 0, 0, 1252, 0, 0, 0, - 1076, 0, 0, 1231, 0, 1232, 0, 1249, 0, 0, - 0, 0, 0, 0, 1266, 0, 1139, 312, 0, 0, - 0, 0, 0, 1141, 0, 76, 0, 76, 76, 76, - 186, 76, 1271, 0, 1150, 1151, 1152, 76, 1276, 1155, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1283, 1284, 1165, 1166, 1167, 0, 1170, 0, 0, 0, - 1291, 0, 0, 76, 76, 76, 646, 0, 0, 0, - 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 666, 667, 668, 669, 670, - 671, 672, 673, 0, 0, 0, 0, 776, 0, 674, - 675, 0, 0, 460, 0, 0, 76, 76, 0, 1265, - 525, 1044, 1045, 0, 0, 0, 0, 0, 0, 76, - 0, 0, 0, 300, 1061, 1062, 0, 1064, 1065, 962, - 0, 0, 76, 0, 1205, 0, 0, 0, 184, 0, - 0, 209, 0, 0, 0, 0, 312, 752, 753, 1216, - 1217, 1218, 76, 760, 0, 0, 0, 0, 183, 0, - 0, 0, 0, 233, 0, 184, 184, 767, 0, 769, - 770, 184, 0, 0, 0, 1240, 1241, 1242, 1243, 0, - 0, 0, 0, 0, 0, 0, 303, 0, 76, 1000, - 312, 414, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 0, 0, 0, 0, 1153, 455, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 1267, - 0, 0, 0, 0, 1272, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 1277, 0, 0, - 0, 0, 0, 0, 1140, 490, 489, 499, 500, 492, - 493, 494, 495, 496, 497, 498, 491, 0, 312, 501, - 0, 0, 0, 0, 0, 0, 0, 0, 1295, 1296, - 0, 0, 0, 757, 0, 0, 1080, 962, 184, 757, - 184, 0, 0, 0, 0, 0, 184, 0, 0, 0, - 455, 0, 0, 184, 0, 0, 1157, 0, 422, 0, - 423, 0, 862, 0, 864, 312, 430, 312, 1103, 0, - 0, 1154, 883, 432, 0, 0, 898, 0, 0, 0, - 23, 24, 48, 26, 27, 0, 0, 490, 489, 499, - 500, 492, 493, 494, 495, 496, 497, 498, 491, 42, - 1129, 501, 0, 0, 28, 0, 0, 0, 0, 0, - 0, 0, 0, 1131, 1200, 1201, 0, 1202, 1203, 1204, - 1134, 0, 0, 37, 0, 914, 0, 50, 312, 490, - 489, 499, 500, 492, 493, 494, 495, 496, 497, 498, - 491, 929, 0, 501, 490, 489, 499, 500, 492, 493, - 494, 495, 496, 497, 498, 491, 184, 0, 501, 0, - 0, 0, 0, 184, 575, 184, 0, 0, 0, 0, - 0, 0, 1043, 0, 0, 0, 553, 0, 0, 0, - 1173, 0, 1173, 1173, 1173, 577, 1178, 30, 31, 33, - 32, 35, 312, 490, 489, 499, 500, 492, 493, 494, - 495, 496, 497, 498, 491, 0, 0, 501, 36, 43, - 44, 911, 0, 45, 46, 34, 0, 0, 312, 312, - 312, 0, 0, 0, 0, 0, 0, 38, 39, 0, - 40, 41, 490, 489, 499, 500, 492, 493, 494, 495, - 496, 497, 498, 491, 0, 0, 501, 0, 0, 0, - 0, 0, 1293, 0, 0, 0, 0, 0, 0, 0, - 0, 1212, 1213, 0, 0, 0, 0, 0, 0, 1001, - 0, 0, 0, 0, 1103, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 184, 0, 1173, 184, 0, - 0, 184, 0, 0, 1028, 664, 0, 0, 0, 0, - 0, 0, 0, 0, 653, 654, 0, 1251, 657, 0, - 49, 660, 0, 0, 0, 0, 184, 619, 490, 489, - 499, 500, 492, 493, 494, 495, 496, 497, 498, 491, - 0, 0, 501, 0, 0, 184, 679, 0, 0, 0, - 757, 0, 0, 1273, 664, 0, 0, 0, 0, 0, - 484, 0, 488, 0, 0, 698, 0, 1279, 502, 503, - 504, 505, 506, 507, 508, 0, 485, 486, 483, 487, - 490, 489, 499, 500, 492, 493, 494, 495, 496, 497, - 498, 491, 0, 0, 501, 0, 233, 0, 0, 0, - 0, 233, 233, 0, 607, 758, 758, 233, 0, 0, - 0, 758, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 233, 233, 233, 233, 0, 184, 0, 758, 184, - 184, 184, 184, 184, 620, 0, 0, 0, 0, 0, - 0, 790, 0, 0, 184, 0, 773, 0, 575, 0, - 0, 0, 0, 184, 184, 633, 634, 635, 636, 637, - 638, 639, 0, 640, 641, 642, 643, 644, 621, 622, - 623, 624, 605, 606, 801, 0, 608, 0, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 625, 626, - 627, 628, 629, 630, 631, 632, 489, 499, 500, 492, - 493, 494, 495, 496, 497, 498, 491, 0, 0, 501, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, - 184, 0, 0, 184, 0, 0, 0, 0, 0, 0, - 0, 857, 0, 0, 0, 0, 0, 1191, 0, 0, - 881, 0, 0, 882, 0, 0, 0, 0, 664, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 233, 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, 184, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 1032, - 1033, 0, 0, 0, 0, 0, 0, 184, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1036, 0, 233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 664, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, - 758, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1125, 0, 184, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 184, 0, 0, 1132, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 575, 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, 399, 388, 0, - 360, 401, 338, 352, 409, 353, 354, 381, 324, 368, - 125, 350, 0, 341, 319, 347, 320, 339, 362, 93, - 365, 337, 390, 371, 107, 407, 109, 376, 0, 142, - 118, 0, 0, 364, 393, 366, 386, 359, 382, 329, - 375, 402, 351, 379, 403, 0, 0, 0, 75, 0, - 816, 817, 0, 0, 0, 0, 0, 86, 0, 378, - 398, 349, 380, 318, 377, 0, 322, 325, 408, 396, - 344, 345, 974, 0, 0, 0, 0, 0, 0, 363, - 367, 383, 357, 392, 0, 0, 0, 0, 0, 0, + 269, 47, 862, 1268, 650, 778, 526, 1226, 243, 1079, + 1177, 1107, 268, 814, 1080, 573, 796, 818, 950, 1008, + 1076, 217, 966, 53, 525, 3, 856, 1053, 842, 571, + 817, 211, 779, 914, 741, 751, 748, 999, 828, 589, + 955, 767, 714, 457, 852, 313, 463, 412, 47, 588, + 1011, 775, 307, 575, 560, 469, 222, 294, 894, 477, + 295, 241, 299, 226, 304, 302, 52, 1297, 1287, 836, + 1295, 1275, 216, 1293, 863, 212, 213, 214, 215, 879, + 1286, 1274, 1071, 1165, 416, 437, 1235, 1102, 1103, 810, + 811, 293, 540, 878, 590, 230, 591, 1250, 1101, 245, + 492, 491, 501, 502, 494, 495, 496, 497, 498, 499, + 500, 493, 57, 809, 503, 181, 177, 178, 179, 679, + 883, 452, 990, 1113, 1114, 1115, 680, 974, 835, 877, + 973, 1118, 1116, 975, 1189, 843, 425, 59, 60, 61, + 62, 63, 1154, 1204, 1152, 210, 448, 449, 1294, 1292, + 439, 1227, 441, 1269, 1054, 1032, 776, 830, 797, 799, + 426, 298, 1233, 419, 1229, 175, 174, 239, 175, 658, + 830, 649, 965, 830, 964, 963, 414, 438, 440, 874, + 871, 872, 422, 870, 1056, 413, 1255, 189, 176, 515, + 516, 1174, 1040, 930, 443, 443, 443, 443, 76, 443, + 906, 984, 186, 686, 1019, 186, 443, 481, 881, 884, + 493, 1029, 432, 503, 815, 503, 1058, 1031, 1062, 476, + 1057, 683, 1055, 47, 180, 1036, 1260, 1060, 1132, 186, + 186, 76, 1017, 1228, 798, 186, 1059, 76, 512, 953, + 592, 514, 1122, 876, 465, 889, 1073, 466, 768, 1061, + 1063, 829, 475, 474, 988, 1251, 827, 825, 436, 1075, + 826, 1234, 1232, 653, 829, 875, 843, 829, 524, 476, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 1273, + 539, 541, 541, 541, 541, 541, 541, 541, 541, 549, + 550, 551, 552, 1117, 1123, 475, 474, 768, 1018, 937, + 572, 1035, 880, 1023, 1020, 1013, 1014, 1021, 1016, 1015, + 1019, 1030, 476, 1028, 1263, 882, 428, 429, 430, 455, + 1022, 418, 471, 1279, 890, 474, 1025, 494, 495, 496, + 497, 498, 499, 500, 493, 1280, 467, 503, 1017, 50, + 513, 476, 186, 832, 186, 903, 904, 905, 833, 717, + 186, 496, 497, 498, 499, 500, 493, 186, 1195, 503, + 1194, 76, 76, 76, 76, 1003, 76, 580, 1002, 742, + 586, 743, 173, 76, 542, 543, 544, 545, 546, 547, + 548, 492, 491, 501, 502, 494, 495, 496, 497, 498, + 499, 500, 493, 420, 421, 503, 704, 706, 707, 298, + 76, 705, 991, 1261, 1018, 722, 1211, 689, 690, 1023, + 1020, 1013, 1014, 1021, 1016, 1015, 443, 1192, 236, 719, + 720, 718, 721, 723, 443, 1140, 1022, 915, 926, 685, + 925, 1000, 1012, 292, 1258, 443, 443, 443, 443, 443, + 443, 443, 443, 1283, 456, 456, 475, 474, 1110, 443, + 443, 1219, 1266, 475, 474, 1219, 456, 1219, 1220, 1239, + 186, 1161, 456, 476, 1109, 684, 985, 186, 186, 186, + 476, 1186, 1185, 76, 1098, 456, 1173, 456, 667, 76, + 976, 475, 474, 865, 927, 1129, 1128, 691, 1125, 1126, + 21, 665, 1125, 1124, 920, 456, 1238, 715, 476, 744, + 492, 491, 501, 502, 494, 495, 496, 497, 498, 499, + 500, 493, 557, 456, 503, 47, 501, 502, 494, 495, + 496, 497, 498, 499, 500, 493, 664, 712, 503, 528, + 663, 693, 475, 474, 753, 456, 951, 654, 708, 652, + 710, 647, 760, 763, 599, 598, 221, 434, 769, 476, + 427, 413, 23, 755, 23, 1119, 952, 753, 299, 299, + 299, 299, 299, 267, 1077, 780, 803, 951, 582, 583, + 1169, 1043, 557, 572, 54, 800, 945, 745, 746, 946, + 1131, 1214, 299, 76, 716, 1127, 952, 772, 23, 186, + 186, 76, 765, 186, 74, 977, 186, 755, 557, 50, + 186, 50, 76, 76, 76, 76, 76, 76, 76, 76, + 584, 804, 582, 920, 920, 781, 76, 76, 784, 782, + 783, 186, 785, 793, 556, 808, 920, 312, 951, 585, + 801, 802, 932, 417, 687, 50, 76, 807, 806, 929, + 186, 844, 845, 846, 50, 223, 76, 822, 557, 1199, + 837, 857, 1092, 443, 980, 443, 853, 298, 298, 298, + 298, 298, 456, 443, 848, 517, 518, 519, 520, 521, + 522, 523, 298, 858, 651, 931, 847, 838, 839, 840, + 841, 298, 928, 956, 957, 1112, 65, 860, 854, 855, + 962, 76, 50, 849, 850, 851, 1077, 1004, 959, 661, + 492, 491, 501, 502, 494, 495, 496, 497, 498, 499, + 500, 493, 907, 453, 503, 699, 961, 562, 565, 566, + 567, 563, 186, 564, 568, 186, 186, 186, 186, 186, + 444, 715, 712, 790, 895, 896, 788, 186, 791, 787, + 186, 789, 786, 792, 186, 566, 567, 227, 228, 186, + 186, 891, 750, 76, 1291, 1285, 1039, 312, 312, 312, + 312, 908, 312, 1290, 470, 901, 76, 900, 995, 312, + 258, 257, 260, 261, 262, 263, 948, 949, 468, 259, + 264, 562, 565, 566, 567, 563, 692, 564, 568, 458, + 597, 956, 957, 435, 310, 987, 479, 1265, 1200, 1264, + 947, 459, 1212, 981, 299, 1167, 867, 660, 936, 570, + 224, 225, 470, 218, 1244, 219, 899, 186, 716, 54, + 76, 968, 76, 970, 898, 960, 186, 1243, 1202, 186, + 76, 952, 472, 969, 1252, 978, 1190, 682, 56, 58, + 581, 51, 1, 864, 1007, 752, 754, 873, 971, 1267, + 1225, 1106, 824, 816, 411, 64, 994, 1259, 996, 997, + 998, 770, 443, 823, 1231, 982, 983, 992, 993, 312, + 1188, 831, 989, 834, 1111, 594, 1262, 986, 604, 602, + 603, 601, 606, 605, 1158, 456, 1001, 443, 600, 197, + 305, 795, 569, 593, 859, 473, 66, 1027, 1026, 869, + 1034, 1010, 713, 298, 678, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 1024, 492, 491, 501, 502, 494, 495, 496, + 497, 498, 499, 500, 493, 888, 451, 503, 199, 511, + 897, 972, 311, 1047, 1046, 1084, 688, 1082, 462, 47, + 1242, 1078, 1201, 935, 780, 1065, 1052, 537, 1072, 1081, + 780, 1064, 766, 244, 1094, 1095, 1096, 703, 76, 256, + 253, 186, 1086, 1083, 1087, 255, 712, 254, 694, 312, + 944, 483, 242, 234, 1088, 76, 297, 312, 1100, 553, + 561, 559, 1099, 558, 958, 954, 296, 1105, 312, 312, + 312, 312, 312, 312, 312, 312, 1120, 1121, 1104, 1042, + 1164, 1249, 312, 312, 698, 25, 55, 229, 19, 18, + 17, 20, 16, 15, 442, 14, 29, 13, 76, 76, + 12, 76, 695, 11, 10, 9, 310, 8, 7, 6, + 5, 4, 479, 1133, 299, 312, 220, 22, 2, 0, + 0, 0, 0, 0, 76, 0, 1135, 186, 186, 1138, + 0, 1142, 0, 0, 917, 186, 0, 0, 918, 0, + 232, 0, 1163, 1143, 76, 922, 923, 924, 0, 0, + 0, 0, 0, 0, 933, 1150, 0, 747, 0, 939, + 0, 940, 941, 942, 943, 0, 0, 761, 761, 1168, + 0, 0, 0, 761, 0, 1179, 1180, 1181, 0, 1176, + 0, 0, 0, 1182, 0, 0, 76, 76, 0, 0, + 761, 1184, 978, 0, 1147, 1148, 0, 1149, 0, 0, + 1151, 443, 1153, 0, 0, 0, 0, 0, 909, 910, + 911, 912, 913, 298, 0, 76, 0, 76, 76, 312, + 1198, 1197, 0, 1191, 0, 1193, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, + 1082, 0, 186, 1216, 0, 0, 0, 1203, 1187, 0, + 76, 0, 1081, 0, 1213, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 186, 0, 0, 1215, 1230, 1224, + 76, 1241, 0, 0, 0, 1236, 0, 1237, 76, 0, + 1240, 186, 711, 0, 0, 1082, 312, 47, 312, 445, + 446, 447, 0, 450, 1253, 0, 312, 1081, 0, 0, + 454, 0, 0, 1257, 0, 0, 0, 0, 0, 1051, + 0, 1254, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 1271, 0, 0, 0, 0, 0, 0, 1276, 300, + 76, 780, 76, 76, 76, 186, 76, 0, 0, 0, + 0, 1281, 76, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 756, 757, 1288, 0, 1097, 1289, 764, 460, + 464, 0, 0, 0, 183, 1296, 0, 0, 76, 76, + 76, 0, 771, 0, 773, 774, 482, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, + 461, 0, 303, 0, 0, 0, 0, 415, 0, 819, + 0, 0, 0, 0, 1049, 1050, 0, 0, 0, 0, + 527, 76, 76, 0, 0, 0, 0, 1066, 1067, 538, + 1069, 1070, 0, 0, 76, 184, 0, 0, 209, 0, + 0, 0, 0, 0, 967, 0, 1144, 76, 0, 0, + 0, 0, 0, 1146, 0, 0, 0, 0, 0, 0, + 233, 312, 184, 184, 1155, 1156, 1157, 76, 184, 1160, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1170, 1171, 1172, 0, 1175, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 711, 0, 0, + 0, 0, 0, 76, 1005, 312, 0, 312, 0, 0, + 0, 0, 0, 0, 423, 0, 424, 76, 0, 0, + 648, 0, 431, 0, 0, 0, 0, 0, 657, 433, + 312, 902, 0, 0, 0, 0, 0, 0, 0, 668, + 669, 670, 671, 672, 673, 674, 675, 1145, 0, 0, + 312, 0, 0, 676, 677, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1210, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 184, 0, 184, 0, 1221, + 1222, 1223, 919, 184, 0, 0, 0, 0, 0, 761, + 184, 0, 1085, 967, 0, 761, 0, 0, 934, 0, + 0, 0, 0, 0, 0, 1245, 1246, 1247, 1248, 491, + 501, 502, 494, 495, 496, 497, 498, 499, 500, 493, + 0, 312, 503, 312, 1108, 701, 702, 0, 819, 0, + 1162, 0, 555, 0, 0, 0, 0, 0, 0, 0, + 0, 579, 0, 0, 0, 1159, 0, 0, 0, 1272, + 0, 0, 0, 0, 1277, 0, 1134, 1205, 1206, 0, + 1207, 1208, 1209, 0, 0, 0, 0, 1282, 0, 1136, + 0, 0, 0, 0, 1009, 0, 1139, 0, 0, 527, + 0, 0, 758, 759, 312, 0, 0, 0, 0, 0, + 0, 0, 0, 184, 0, 0, 0, 0, 1300, 1301, + 184, 577, 184, 0, 492, 491, 501, 502, 494, 495, + 496, 497, 498, 499, 500, 493, 0, 1045, 503, 492, + 491, 501, 502, 494, 495, 496, 497, 498, 499, 500, + 493, 195, 0, 503, 0, 0, 1178, 0, 1178, 1178, + 1178, 1068, 1183, 813, 0, 0, 0, 0, 312, 0, + 0, 0, 0, 0, 0, 205, 0, 866, 0, 868, + 0, 655, 656, 0, 0, 659, 0, 887, 662, 0, + 0, 0, 0, 0, 312, 312, 312, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, + 819, 0, 0, 681, 0, 1298, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, + 0, 0, 700, 192, 0, 0, 0, 1217, 1218, 0, + 198, 194, 184, 184, 0, 0, 184, 0, 0, 184, + 1108, 0, 0, 666, 0, 892, 893, 0, 464, 0, + 0, 0, 0, 1178, 0, 0, 0, 196, 0, 0, + 200, 1045, 0, 0, 184, 0, 0, 0, 0, 0, + 0, 0, 0, 1256, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 184, 0, 0, 621, 0, 191, 0, + 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 777, 0, 761, 0, 0, 1278, + 0, 0, 0, 0, 921, 193, 0, 201, 202, 203, + 204, 208, 0, 1284, 0, 819, 207, 206, 0, 938, + 0, 0, 805, 0, 0, 233, 0, 0, 0, 0, + 233, 233, 0, 0, 762, 762, 233, 0, 0, 0, + 762, 0, 1009, 819, 0, 23, 24, 48, 26, 27, + 233, 233, 233, 233, 609, 184, 0, 762, 184, 184, + 184, 184, 184, 0, 42, 0, 1006, 0, 0, 28, + 794, 0, 0, 184, 0, 0, 0, 577, 0, 0, + 0, 0, 184, 184, 622, 0, 0, 0, 37, 861, + 0, 1033, 50, 0, 0, 0, 0, 0, 885, 0, + 0, 886, 0, 0, 0, 635, 636, 637, 638, 639, + 640, 641, 0, 642, 643, 644, 645, 646, 623, 624, + 625, 626, 607, 608, 0, 0, 610, 0, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 627, 628, + 629, 630, 631, 632, 633, 634, 0, 0, 0, 0, + 184, 0, 0, 30, 31, 33, 32, 35, 0, 184, + 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 43, 44, 0, 0, 45, + 46, 34, 0, 0, 0, 0, 0, 666, 1074, 0, + 0, 0, 0, 38, 39, 0, 40, 41, 0, 233, + 0, 0, 0, 1089, 1090, 0, 485, 1091, 489, 0, + 1093, 0, 0, 0, 504, 505, 506, 507, 508, 509, + 510, 0, 486, 487, 484, 488, 490, 492, 491, 501, + 502, 494, 495, 496, 497, 498, 499, 500, 493, 0, + 0, 503, 0, 0, 0, 0, 0, 0, 0, 0, + 233, 492, 491, 501, 502, 494, 495, 496, 497, 498, + 499, 500, 493, 0, 0, 503, 233, 1048, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 916, 0, 0, 0, 1141, 0, 492, + 491, 501, 502, 494, 495, 496, 497, 498, 499, 500, + 493, 0, 0, 503, 184, 492, 491, 501, 502, 494, + 495, 496, 497, 498, 499, 500, 493, 0, 0, 503, + 0, 0, 0, 0, 0, 0, 1166, 0, 0, 0, + 0, 0, 0, 527, 0, 1196, 0, 1041, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1037, 1038, 0, 0, 0, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1130, 0, 762, 0, 0, 0, + 0, 0, 762, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1137, 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, 1270, 527, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 0, 400, 388, 0, 360, + 402, 338, 352, 410, 353, 354, 381, 324, 368, 125, + 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, + 337, 390, 371, 107, 408, 109, 376, 0, 142, 118, + 0, 0, 364, 393, 366, 386, 359, 382, 329, 375, + 403, 351, 379, 404, 0, 0, 0, 75, 577, 820, + 821, 0, 0, 0, 0, 0, 86, 0, 378, 399, + 349, 380, 318, 377, 0, 322, 325, 409, 397, 344, + 345, 979, 0, 0, 0, 0, 0, 0, 363, 367, + 383, 357, 392, 394, 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, - 317, 387, 394, 358, 187, 397, 356, 355, 400, 131, - 0, 758, 145, 98, 97, 106, 391, 340, 348, 89, + 317, 387, 395, 358, 187, 398, 356, 355, 401, 131, + 0, 0, 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 321, 0, 143, 159, 172, 336, 395, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 121, 0, 321, 0, 143, 159, 172, 336, 396, 165, + 166, 167, 168, 762, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 332, - 335, 330, 331, 369, 370, 404, 405, 406, 385, 327, + 335, 330, 331, 369, 370, 405, 406, 407, 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, 108, 169, - 133, 95, 160, 399, 388, 0, 360, 401, 338, 352, - 409, 353, 354, 381, 324, 368, 125, 350, 0, 341, + 133, 95, 160, 400, 388, 0, 360, 402, 338, 352, + 410, 353, 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, 337, 390, 371, - 107, 407, 109, 376, 0, 142, 118, 0, 0, 364, - 393, 366, 386, 359, 382, 329, 375, 402, 351, 379, - 403, 0, 0, 0, 75, 0, 816, 817, 0, 0, - 0, 0, 0, 86, 0, 378, 398, 349, 380, 318, - 377, 0, 322, 325, 408, 396, 344, 345, 0, 0, + 107, 408, 109, 376, 0, 142, 118, 0, 0, 364, + 393, 366, 386, 359, 382, 329, 375, 403, 351, 379, + 404, 0, 0, 0, 75, 0, 820, 821, 0, 0, + 0, 0, 0, 86, 0, 378, 399, 349, 380, 318, + 377, 0, 322, 325, 409, 397, 344, 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, 357, 392, - 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, - 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, - 0, 328, 0, 343, 384, 0, 317, 387, 394, 358, - 187, 397, 356, 355, 400, 131, 0, 0, 145, 98, - 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, - 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 321, 0, - 143, 159, 172, 336, 395, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 332, 335, 330, 331, 369, - 370, 404, 405, 406, 385, 327, 0, 333, 334, 0, - 389, 372, 77, 0, 108, 169, 133, 95, 160, 399, - 388, 0, 360, 401, 338, 352, 409, 353, 354, 381, - 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, - 362, 93, 365, 337, 390, 371, 107, 407, 109, 376, - 0, 142, 118, 0, 0, 364, 393, 366, 386, 359, - 382, 329, 375, 402, 351, 379, 403, 50, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 378, 398, 349, 380, 318, 377, 0, 322, 325, - 408, 396, 344, 345, 0, 0, 0, 0, 0, 0, - 0, 363, 367, 383, 357, 392, 0, 0, 0, 0, - 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, - 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, - 384, 0, 317, 387, 394, 358, 187, 397, 356, 355, - 400, 131, 0, 0, 145, 98, 97, 106, 391, 340, - 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 321, 0, 143, 159, 172, 336, - 395, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 332, 335, 330, 331, 369, 370, 404, 405, 406, - 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, - 108, 169, 133, 95, 160, 399, 388, 0, 360, 401, - 338, 352, 409, 353, 354, 381, 324, 368, 125, 350, - 0, 341, 319, 347, 320, 339, 362, 93, 365, 337, - 390, 371, 107, 407, 109, 376, 0, 142, 118, 0, - 0, 364, 393, 366, 386, 359, 382, 329, 375, 402, - 351, 379, 403, 0, 0, 0, 75, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 378, 398, 349, - 380, 318, 377, 0, 322, 325, 408, 396, 344, 345, - 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, - 357, 392, 0, 0, 0, 0, 0, 0, 1039, 0, - 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, - 0, 0, 0, 328, 0, 343, 384, 0, 317, 387, - 394, 358, 187, 397, 356, 355, 400, 131, 0, 0, - 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, - 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 321, 0, 143, 159, 172, 336, 395, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 332, 335, 330, - 331, 369, 370, 404, 405, 406, 385, 327, 0, 333, - 334, 0, 389, 372, 77, 0, 108, 169, 133, 95, - 160, 399, 388, 0, 360, 401, 338, 352, 409, 353, - 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, - 320, 339, 362, 93, 365, 337, 390, 371, 107, 407, - 109, 376, 0, 142, 118, 0, 0, 364, 393, 366, - 386, 359, 382, 329, 375, 402, 351, 379, 403, 0, - 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 378, 398, 349, 380, 318, 377, 0, - 322, 325, 408, 396, 344, 345, 0, 0, 0, 0, - 0, 0, 0, 363, 367, 383, 357, 392, 0, 0, - 0, 0, 0, 0, 707, 0, 342, 0, 374, 0, + 394, 0, 0, 0, 0, 0, 0, 0, 0, 342, + 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, + 0, 0, 328, 0, 343, 384, 0, 317, 387, 395, + 358, 187, 398, 356, 355, 401, 131, 0, 0, 145, + 98, 97, 106, 391, 340, 348, 89, 346, 137, 127, + 157, 373, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 321, + 0, 143, 159, 172, 336, 396, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 332, 335, 330, 331, + 369, 370, 405, 406, 407, 385, 327, 0, 333, 334, + 0, 389, 372, 77, 0, 108, 169, 133, 95, 160, + 400, 388, 0, 360, 402, 338, 352, 410, 353, 354, + 381, 324, 368, 125, 350, 0, 341, 319, 347, 320, + 339, 362, 93, 365, 337, 390, 371, 107, 408, 109, + 376, 0, 142, 118, 0, 0, 364, 393, 366, 386, + 359, 382, 329, 375, 403, 351, 379, 404, 50, 0, + 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 378, 399, 349, 380, 318, 377, 0, 322, + 325, 409, 397, 344, 345, 0, 0, 0, 0, 0, + 0, 0, 363, 367, 383, 357, 392, 394, 0, 0, + 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, - 0, 343, 384, 0, 317, 387, 394, 358, 187, 397, - 356, 355, 400, 131, 0, 0, 145, 98, 97, 106, + 0, 343, 384, 0, 317, 387, 395, 358, 187, 398, + 356, 355, 401, 131, 0, 0, 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, @@ -1016,97 +960,48 @@ var yyAct = [...]int16{ 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 321, 0, 143, 159, - 172, 336, 395, 165, 166, 167, 168, 0, 0, 0, + 172, 336, 396, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 332, 335, 330, 331, 369, 370, 404, - 405, 406, 385, 327, 0, 333, 334, 0, 389, 372, - 77, 0, 108, 169, 133, 95, 160, 399, 388, 0, - 360, 401, 338, 352, 409, 353, 354, 381, 324, 368, + 88, 158, 141, 332, 335, 330, 331, 369, 370, 405, + 406, 407, 385, 327, 0, 333, 334, 0, 389, 372, + 77, 0, 108, 169, 133, 95, 160, 400, 388, 0, + 360, 402, 338, 352, 410, 353, 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, 362, 93, - 365, 337, 390, 371, 107, 407, 109, 376, 0, 142, + 365, 337, 390, 371, 107, 408, 109, 376, 0, 142, 118, 0, 0, 364, 393, 366, 386, 359, 382, 329, - 375, 402, 351, 379, 403, 0, 0, 0, 75, 0, + 375, 403, 351, 379, 404, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 378, - 398, 349, 380, 318, 377, 0, 322, 325, 408, 396, + 399, 349, 380, 318, 377, 0, 322, 325, 409, 397, 344, 345, 0, 0, 0, 0, 0, 0, 0, 363, - 367, 383, 357, 392, 0, 0, 0, 0, 0, 0, - 0, 0, 342, 0, 374, 0, 0, 0, 326, 323, - 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, - 317, 387, 394, 358, 187, 397, 356, 355, 400, 131, - 0, 0, 145, 98, 97, 106, 391, 340, 348, 89, - 346, 137, 127, 157, 373, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 321, 0, 143, 159, 172, 336, 395, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 332, - 335, 330, 331, 369, 370, 404, 405, 406, 385, 327, - 0, 333, 334, 0, 389, 372, 77, 0, 108, 169, - 133, 95, 160, 399, 388, 0, 360, 401, 338, 352, - 409, 353, 354, 381, 324, 368, 125, 350, 0, 341, - 319, 347, 320, 339, 362, 93, 365, 337, 390, 371, - 107, 407, 109, 376, 0, 142, 118, 0, 0, 364, - 393, 366, 386, 359, 382, 329, 375, 402, 351, 379, - 403, 0, 0, 0, 238, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 378, 398, 349, 380, 318, - 377, 0, 322, 325, 408, 396, 344, 345, 0, 0, - 0, 0, 0, 0, 0, 363, 367, 383, 357, 392, - 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, - 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, - 0, 328, 0, 343, 384, 0, 317, 387, 394, 358, - 187, 397, 356, 355, 400, 131, 0, 0, 145, 98, - 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, - 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 321, 0, - 143, 159, 172, 336, 395, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 332, 335, 330, 331, 369, - 370, 404, 405, 406, 385, 327, 0, 333, 334, 0, - 389, 372, 77, 0, 108, 169, 133, 95, 160, 399, - 388, 0, 360, 401, 338, 352, 409, 353, 354, 381, - 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, - 362, 93, 365, 337, 390, 371, 107, 407, 109, 376, - 0, 142, 118, 0, 0, 364, 393, 366, 386, 359, - 382, 329, 375, 402, 351, 379, 403, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 378, 398, 349, 380, 318, 377, 0, 322, 325, - 408, 396, 344, 345, 0, 0, 0, 0, 0, 0, - 0, 363, 367, 383, 357, 392, 0, 0, 0, 0, - 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, - 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, - 384, 0, 317, 387, 394, 358, 187, 397, 356, 355, - 400, 131, 0, 0, 145, 98, 97, 106, 391, 340, - 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 315, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 321, 0, 143, 159, 172, 336, - 395, 165, 166, 167, 168, 0, 0, 0, 316, 314, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 332, 335, 330, 331, 369, 370, 404, 405, 406, - 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, - 108, 169, 133, 95, 160, 399, 388, 0, 360, 401, - 338, 352, 409, 353, 354, 381, 324, 368, 125, 350, - 0, 341, 319, 347, 320, 339, 362, 93, 365, 337, - 390, 371, 107, 407, 109, 376, 0, 142, 118, 0, - 0, 364, 393, 366, 386, 359, 382, 329, 375, 402, - 351, 379, 403, 0, 0, 0, 185, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 378, 398, 349, - 380, 318, 377, 0, 322, 325, 408, 396, 344, 345, - 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, - 357, 392, 0, 0, 0, 0, 0, 0, 0, 0, + 367, 383, 357, 392, 394, 0, 0, 0, 0, 0, + 0, 1044, 0, 342, 0, 374, 0, 0, 0, 326, + 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, + 0, 317, 387, 395, 358, 187, 398, 356, 355, 401, + 131, 0, 0, 145, 98, 97, 106, 391, 340, 348, + 89, 346, 137, 127, 157, 373, 128, 136, 110, 149, + 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, + 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, + 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, + 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, + 119, 121, 0, 321, 0, 143, 159, 172, 336, 396, + 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, + 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, + 332, 335, 330, 331, 369, 370, 405, 406, 407, 385, + 327, 0, 333, 334, 0, 389, 372, 77, 0, 108, + 169, 133, 95, 160, 400, 388, 0, 360, 402, 338, + 352, 410, 353, 354, 381, 324, 368, 125, 350, 0, + 341, 319, 347, 320, 339, 362, 93, 365, 337, 390, + 371, 107, 408, 109, 376, 0, 142, 118, 0, 0, + 364, 393, 366, 386, 359, 382, 329, 375, 403, 351, + 379, 404, 0, 0, 0, 238, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 378, 399, 349, 380, + 318, 377, 0, 322, 325, 409, 397, 344, 345, 0, + 0, 0, 0, 0, 0, 0, 363, 367, 383, 357, + 392, 394, 0, 0, 0, 0, 0, 0, 709, 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, 387, - 394, 358, 187, 397, 356, 355, 400, 131, 0, 0, + 395, 358, 187, 398, 356, 355, 401, 131, 0, 0, 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, @@ -1114,48 +1009,147 @@ var yyAct = [...]int16{ 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 321, 0, 143, 159, 172, 336, 395, 165, 166, 167, + 321, 0, 143, 159, 172, 336, 396, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 332, 335, 330, - 331, 369, 370, 404, 405, 406, 385, 327, 0, 333, + 331, 369, 370, 405, 406, 407, 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, 108, 169, 133, 95, - 160, 399, 388, 0, 360, 401, 338, 352, 409, 353, + 160, 400, 388, 0, 360, 402, 338, 352, 410, 353, 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, - 320, 339, 362, 93, 365, 337, 390, 371, 107, 407, + 320, 339, 362, 93, 365, 337, 390, 371, 107, 408, 109, 376, 0, 142, 118, 0, 0, 364, 393, 366, - 386, 359, 382, 329, 375, 402, 351, 379, 403, 0, + 386, 359, 382, 329, 375, 403, 351, 379, 404, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 378, 398, 349, 380, 318, 377, 0, - 322, 325, 408, 396, 344, 345, 0, 0, 0, 0, - 0, 0, 0, 363, 367, 383, 357, 392, 0, 0, - 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, - 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, - 0, 343, 384, 0, 317, 387, 394, 358, 187, 397, - 356, 355, 400, 131, 0, 0, 145, 98, 97, 106, - 391, 340, 348, 89, 346, 137, 127, 157, 373, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 585, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 315, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 321, 0, 143, 159, - 172, 336, 395, 165, 166, 167, 168, 0, 0, 0, - 316, 314, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 332, 335, 330, 331, 369, 370, 404, - 405, 406, 385, 327, 0, 333, 334, 0, 389, 372, - 77, 0, 108, 169, 133, 95, 160, 399, 388, 0, - 360, 401, 338, 352, 409, 353, 354, 381, 324, 368, - 125, 350, 0, 341, 319, 347, 320, 339, 362, 93, - 365, 337, 390, 371, 107, 407, 109, 376, 0, 142, - 118, 0, 0, 364, 393, 366, 386, 359, 382, 329, - 375, 402, 351, 379, 403, 0, 0, 0, 75, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 378, - 398, 349, 380, 318, 377, 0, 322, 325, 408, 396, - 344, 345, 0, 0, 0, 0, 0, 0, 0, 363, - 367, 383, 357, 392, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 378, 399, 349, 380, 318, 377, 0, + 322, 325, 409, 397, 344, 345, 0, 0, 0, 0, + 0, 0, 0, 363, 367, 383, 357, 392, 394, 0, + 0, 0, 0, 0, 0, 0, 0, 342, 0, 374, + 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, + 328, 0, 343, 384, 0, 317, 387, 395, 358, 187, + 398, 356, 355, 401, 131, 0, 0, 145, 98, 97, + 106, 391, 340, 348, 89, 346, 137, 127, 157, 373, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 321, 0, 143, + 159, 172, 336, 396, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 332, 335, 330, 331, 369, 370, + 405, 406, 407, 385, 327, 0, 333, 334, 0, 389, + 372, 77, 0, 108, 169, 133, 95, 160, 400, 388, + 0, 360, 402, 338, 352, 410, 353, 354, 381, 324, + 368, 125, 350, 0, 341, 319, 347, 320, 339, 362, + 93, 365, 337, 390, 371, 107, 408, 109, 376, 0, + 142, 118, 0, 0, 364, 393, 366, 386, 359, 382, + 329, 375, 403, 351, 379, 404, 0, 0, 0, 238, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 378, 399, 349, 380, 318, 377, 0, 322, 325, 409, + 397, 344, 345, 0, 0, 0, 0, 0, 0, 0, + 363, 367, 383, 357, 392, 394, 0, 0, 0, 0, + 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, + 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, + 384, 0, 317, 387, 395, 358, 187, 398, 356, 355, + 401, 131, 0, 0, 145, 98, 97, 106, 391, 340, + 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 321, 0, 143, 159, 172, 336, + 396, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 332, 335, 330, 331, 369, 370, 405, 406, 407, + 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, + 108, 169, 133, 95, 160, 400, 388, 0, 360, 402, + 338, 352, 410, 353, 354, 381, 324, 368, 125, 350, + 0, 341, 319, 347, 320, 339, 362, 93, 365, 337, + 390, 371, 107, 408, 109, 376, 0, 142, 118, 0, + 0, 364, 393, 366, 386, 359, 382, 329, 375, 403, + 351, 379, 404, 0, 0, 0, 75, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 378, 399, 349, + 380, 318, 377, 0, 322, 325, 409, 397, 344, 345, + 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, + 357, 392, 394, 0, 0, 0, 0, 0, 0, 0, + 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, + 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, + 387, 395, 358, 187, 398, 356, 355, 401, 131, 0, + 0, 145, 98, 97, 106, 391, 340, 348, 89, 346, + 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 315, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 321, 0, 143, 159, 172, 336, 396, 165, 166, + 167, 168, 0, 0, 0, 316, 314, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 332, 335, + 330, 331, 369, 370, 405, 406, 407, 385, 327, 0, + 333, 334, 0, 389, 372, 77, 0, 108, 169, 133, + 95, 160, 400, 388, 0, 360, 402, 338, 352, 410, + 353, 354, 381, 324, 368, 125, 350, 0, 341, 319, + 347, 320, 339, 362, 93, 365, 337, 390, 371, 107, + 408, 109, 376, 0, 142, 118, 0, 0, 364, 393, + 366, 386, 359, 382, 329, 375, 403, 351, 379, 404, + 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 378, 399, 349, 380, 318, 377, + 0, 322, 325, 409, 397, 344, 345, 0, 0, 0, + 0, 0, 0, 0, 363, 367, 383, 357, 392, 394, + 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, + 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, + 0, 328, 0, 343, 384, 0, 317, 387, 395, 358, + 187, 398, 356, 355, 401, 131, 0, 0, 145, 98, + 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, + 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 321, 0, + 143, 159, 172, 336, 396, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 332, 335, 330, 331, 369, + 370, 405, 406, 407, 385, 327, 0, 333, 334, 0, + 389, 372, 77, 0, 108, 169, 133, 95, 160, 400, + 388, 0, 360, 402, 338, 352, 410, 353, 354, 381, + 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, + 362, 93, 365, 337, 390, 371, 107, 408, 109, 376, + 0, 142, 118, 0, 0, 364, 393, 366, 386, 359, + 382, 329, 375, 403, 351, 379, 404, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 378, 399, 349, 380, 318, 377, 0, 322, 325, + 409, 397, 344, 345, 0, 0, 0, 0, 0, 0, + 0, 363, 367, 383, 357, 392, 394, 0, 0, 0, + 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, + 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, + 343, 384, 0, 317, 387, 395, 358, 187, 398, 356, + 355, 401, 131, 0, 0, 145, 98, 97, 106, 391, + 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 587, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 315, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, + 336, 396, 165, 166, 167, 168, 0, 0, 0, 316, + 314, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 332, 335, 330, 331, 369, 370, 405, 406, + 407, 385, 327, 0, 333, 334, 0, 389, 372, 77, + 0, 108, 169, 133, 95, 160, 400, 388, 0, 360, + 402, 338, 352, 410, 353, 354, 381, 324, 368, 125, + 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, + 337, 390, 371, 107, 408, 109, 376, 0, 142, 118, + 0, 0, 364, 393, 366, 386, 359, 382, 329, 375, + 403, 351, 379, 404, 0, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 378, 399, + 349, 380, 318, 377, 0, 322, 325, 409, 397, 344, + 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, + 383, 357, 392, 394, 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, - 317, 387, 394, 358, 187, 397, 356, 355, 400, 131, + 317, 387, 395, 358, 187, 398, 356, 355, 401, 131, 0, 0, 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 306, 87, 139, @@ -1163,12 +1157,12 @@ var yyAct = [...]int16{ 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 315, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 321, 0, 143, 159, 172, 336, 395, 165, + 121, 0, 321, 0, 143, 159, 172, 336, 396, 165, 166, 167, 168, 0, 0, 0, 316, 314, 309, 308, 104, 111, 134, 170, 126, 138, 88, 158, 141, 332, - 335, 330, 331, 369, 370, 404, 405, 406, 385, 327, + 335, 330, 331, 369, 370, 405, 406, 407, 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, 108, 169, - 133, 95, 160, 125, 0, 0, 745, 0, 240, 0, + 133, 95, 160, 125, 0, 0, 749, 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, @@ -1176,98 +1170,28 @@ var yyAct = [...]int16{ 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 248, 249, 231, 0, 0, 0, 290, 0, 250, - 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 280, 289, 286, 287, 284, 285, 283, 282, - 281, 291, 272, 273, 274, 275, 277, 0, 276, 77, - 0, 108, 169, 133, 95, 160, 125, 0, 0, 0, - 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, - 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, - 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 455, 238, 258, 257, 260, 261, 262, - 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, - 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, - 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 288, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 280, 289, 286, 287, 284, - 285, 283, 282, 281, 291, 272, 273, 274, 275, 277, - 0, 276, 77, 0, 108, 169, 133, 95, 160, 125, - 0, 0, 0, 0, 240, 0, 0, 0, 93, 0, - 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, - 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, - 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, - 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 249, 231, - 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, - 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 288, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 280, 289, - 286, 287, 284, 285, 283, 282, 281, 291, 272, 273, - 274, 275, 277, 0, 276, 77, 0, 108, 169, 133, - 95, 160, 125, 0, 0, 0, 0, 240, 0, 0, - 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, - 0, 0, 0, 0, 0, 808, 0, 50, 0, 0, - 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, - 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 248, 249, 0, 0, 0, 0, 290, 0, 250, 0, - 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 288, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 280, 289, 286, 287, 284, 285, 283, 282, 281, - 291, 272, 273, 274, 275, 277, 23, 276, 77, 0, - 108, 169, 133, 95, 160, 0, 0, 0, 125, 0, - 0, 0, 0, 240, 0, 0, 0, 93, 0, 237, - 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, - 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, - 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, + 0, 0, 248, 249, 231, 0, 0, 0, 290, 0, + 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, + 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 280, 289, 286, 287, 284, 285, 283, + 282, 281, 291, 272, 273, 274, 275, 277, 0, 276, + 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, + 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, + 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, + 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 456, 238, 258, 257, 260, 261, + 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, + 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, @@ -1292,101 +1216,34 @@ var yyAct = [...]int16{ 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, - 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, - 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 288, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 280, 289, 286, 287, 284, 285, 283, 282, 281, 291, - 272, 273, 274, 275, 277, 125, 276, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 248, 249, 231, 0, 0, 0, 290, 0, 250, 0, + 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 288, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 280, 289, 286, 287, 284, 285, 283, 282, 281, + 291, 272, 273, 274, 275, 277, 0, 276, 77, 0, + 108, 169, 133, 95, 160, 125, 0, 0, 0, 0, + 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, - 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, + 270, 271, 0, 0, 0, 0, 0, 0, 812, 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, - 0, 0, 86, 259, 264, 265, 266, 0, 0, 0, + 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 248, 249, 0, 0, 0, 0, 290, - 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 288, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 1294, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 280, 289, 286, 287, 284, 285, - 283, 282, 281, 291, 272, 273, 274, 275, 277, 125, - 276, 77, 0, 108, 169, 133, 95, 160, 93, 0, - 0, 0, 0, 107, 279, 109, 0, 0, 142, 118, - 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, - 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, - 266, 0, 0, 0, 251, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, - 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, - 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 288, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 280, 289, - 286, 287, 284, 285, 283, 282, 281, 291, 272, 273, - 274, 275, 277, 125, 276, 77, 0, 108, 169, 133, - 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 490, 489, 499, - 500, 492, 493, 494, 495, 496, 497, 498, 491, 0, - 0, 501, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 108, 169, 133, 95, 160, 125, 0, 0, 0, - 477, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 75, 0, 479, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 0, 474, 473, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 475, 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, 248, 249, 0, 0, 0, 0, + 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, + 187, 0, 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, @@ -1396,43 +1253,21 @@ var yyAct = [...]int16{ 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, - 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, - 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 71, 72, 0, 67, 0, 0, 0, 73, 131, - 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, - 156, 69, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, - 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 0, 108, 169, - 133, 95, 160, 125, 0, 0, 0, 574, 0, 0, - 0, 0, 93, 0, 0, 0, 0, 107, 0, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 185, 0, 576, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 126, 138, 88, 158, 141, 280, 289, 286, 287, 284, + 285, 283, 282, 281, 291, 272, 273, 274, 275, 277, + 23, 276, 77, 0, 108, 169, 133, 95, 160, 0, + 0, 0, 125, 0, 0, 0, 0, 240, 0, 0, + 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, + 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, + 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, + 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 248, 249, 0, 0, 0, 0, 290, 0, 250, + 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, + 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, @@ -1442,19 +1277,65 @@ var yyAct = [...]int16{ 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 0, 0, 23, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, - 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, - 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, + 158, 141, 280, 289, 286, 287, 284, 285, 283, 282, + 281, 291, 272, 273, 274, 275, 277, 0, 276, 77, + 0, 108, 169, 133, 95, 160, 125, 0, 0, 0, + 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, + 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, + 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, + 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, + 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, + 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, + 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, + 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, + 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, + 284, 285, 283, 282, 281, 291, 272, 273, 274, 275, + 277, 125, 276, 77, 0, 108, 169, 133, 95, 160, + 93, 0, 0, 0, 0, 107, 279, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, + 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, + 264, 265, 266, 0, 0, 0, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 248, 249, 0, 0, 0, 0, 290, 0, 250, 0, + 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 288, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 1299, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 280, 289, 286, 287, 284, 285, 283, 282, 281, + 291, 272, 273, 274, 275, 277, 125, 276, 77, 0, + 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, + 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, + 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, + 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, + 0, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, + 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, + 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, @@ -1464,22 +1345,68 @@ var yyAct = [...]int16{ 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 23, + 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, + 284, 285, 283, 282, 281, 291, 272, 273, 274, 275, + 277, 125, 276, 77, 0, 108, 169, 133, 95, 160, + 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 492, 491, 501, 502, + 494, 495, 496, 497, 498, 499, 500, 493, 0, 0, + 503, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, + 108, 169, 133, 95, 160, 125, 0, 0, 0, 478, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 107, + 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 50, 0, 0, 185, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 75, 0, 480, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 475, 474, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 476, 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, + 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, + 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, + 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, + 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, + 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, + 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, + 0, 0, 71, 72, 0, 67, 0, 0, 0, 73, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 132, 156, 69, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, @@ -1487,13 +1414,14 @@ var yyAct = [...]int16{ 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, + 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, + 169, 133, 95, 160, 125, 0, 0, 0, 576, 0, + 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 0, 0, 694, 0, 0, 695, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 185, 0, 578, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1509,81 +1437,58 @@ var yyAct = [...]int16{ 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, + 138, 88, 158, 141, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, - 594, 0, 0, 107, 0, 109, 0, 0, 142, 118, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 75, 0, 593, + 0, 0, 0, 0, 50, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 187, 0, 0, 0, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 77, 0, 108, 169, 133, - 95, 160, 125, 0, 0, 0, 574, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 107, 0, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 185, 0, 576, 0, 0, 0, 0, 0, 0, 86, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 187, 0, 0, 0, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 572, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, - 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, - 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 185, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, - 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, - 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, - 576, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, + 696, 0, 0, 697, 0, 0, 86, 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, @@ -1602,15 +1507,61 @@ var yyAct = [...]int16{ 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, - 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 133, 95, 160, 93, 0, 596, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 0, 479, 0, 0, 0, 0, 0, + 0, 0, 75, 0, 595, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 0, 108, 169, 133, 95, 160, 125, 0, + 0, 0, 576, 0, 0, 0, 0, 93, 0, 0, + 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 578, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 187, 0, 0, 0, 0, 131, 0, + 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, + 137, 127, 157, 0, 574, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, + 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, + 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, + 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, @@ -1623,12 +1574,12 @@ var yyAct = [...]int16{ 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - 77, 0, 108, 169, 133, 95, 160, 552, 93, 0, - 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, + 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 578, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1645,80 +1596,103 @@ var yyAct = [...]int16{ 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, - 0, 0, 0, 0, 0, 0, 301, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 0, 480, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 187, 0, 0, - 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, - 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, - 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, + 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 77, 0, 108, 169, 133, 95, 160, 554, 93, 0, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 182, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, + 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, + 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 187, 0, 0, 0, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 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, 182, 0, 187, 0, 0, 0, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1739,39 +1713,60 @@ var yyAct = [...]int16{ 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 187, 0, 0, 0, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 77, 0, 108, 169, 133, - 95, 160, + 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, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 0, 108, 169, 133, 95, 160, } var yyPact = [...]int16{ - 1544, -1000, -191, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 847, 868, -1000, -1000, -1000, -1000, -1000, -1000, 688, - 7442, 44, 70, 16, 10149, 69, 196, 10821, -1000, -15, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 661, -1000, -1000, - -1000, -1000, -1000, 837, 840, 700, 831, 742, -1000, 5611, - 41, 9028, 9925, 4912, -1000, 499, 64, 10821, -154, 10373, - 38, 38, 38, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1859, -1000, -186, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 804, 833, -1000, -1000, -1000, -1000, -1000, -1000, 633, + 7372, 43, 67, -5, 10091, 66, 1619, 10766, -1000, -11, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 582, -1000, -1000, + -1000, -1000, -1000, 796, 799, 639, 790, 708, -1000, 5533, + 40, 8965, 9866, 4831, -1000, 495, 54, 10766, -153, 10316, + 37, 37, 37, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1780,22 +1775,22 @@ var yyPact = [...]int16{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 68, 10821, -1000, 10821, 36, 497, 36, - 36, 36, 10821, -1000, 104, -1000, -1000, -1000, -1000, 10821, - 482, 764, 27, 2944, 2944, 2944, 2944, 0, 2944, -114, - 701, -1000, -1000, -1000, -1000, 2944, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 417, 813, 6313, 6313, - 847, -1000, 661, -1000, -1000, -1000, 798, -1000, -1000, 254, - 855, -1000, 7218, 102, -1000, 6313, 1748, 620, -1000, -1000, - 620, -1000, -1000, 75, -1000, -1000, 6761, 6761, 6761, 6761, - 6761, 6761, 6761, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 620, -1000, 6080, - 620, 620, 620, 620, 620, 620, 620, 620, 6313, 620, - 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, - 620, 620, 9701, 583, 674, -1000, -1000, -1000, 825, 8123, - 8804, 10821, 598, -1000, 617, 4666, -91, -1000, -1000, -1000, - 176, 8571, -1000, -1000, -1000, 763, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 61, 10766, -1000, 10766, 34, 494, 34, + 34, 34, 10766, -1000, 101, -1000, -1000, -1000, -1000, 10766, + 491, 763, 29, 2855, 2855, 2855, 2855, -6, 2855, -92, + 662, -1000, -1000, -1000, -1000, 2855, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 390, 770, 6238, 6238, + 804, -1000, 582, -1000, -1000, -1000, 743, -1000, -1000, 258, + 821, -1000, 7147, 96, -1000, 6238, 1954, 591, -1000, -1000, + 591, -1000, -1000, 77, -1000, -1000, 6688, 6688, 6688, 6688, + 6688, 6688, 6688, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 591, -1000, 6004, + 591, 591, 591, 591, 591, 591, 591, 591, 6238, 591, + 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, + 591, 591, 9641, 594, 676, -1000, -1000, -1000, 787, 8056, + 8740, 10766, 558, -1000, 575, 4584, -125, -1000, -1000, -1000, + 160, 8506, -1000, -1000, -1000, 760, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1804,117 +1799,119 @@ var yyPact = [...]int16{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 511, -1000, 1757, 480, 2944, 48, 638, 479, 224, 470, - 10821, 10821, 2944, 46, 10821, 817, 699, 10821, 467, 458, - -1000, 4420, -1000, 2944, 2944, 2944, 2944, 2944, 2944, 2944, - 2944, -1000, -1000, -1000, -1000, -1000, -1000, 2944, 2944, -1000, - -56, -1000, 10821, -1000, -1000, -1000, -1000, 863, 144, 393, - 100, 618, -1000, 356, 837, 417, 742, 8347, 712, -1000, - -1000, 10821, -1000, 6313, 6313, 352, -1000, 9476, -1000, -1000, - 3436, 146, 6761, 379, 233, 6761, 6761, 6761, 6761, 6761, - 6761, 6761, 6761, 6761, 6761, 6761, 6761, 6761, 6761, 6761, - 6761, 340, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 456, -1000, 661, 637, 637, 111, 111, 111, 111, 111, - 111, 6985, 5145, 417, 476, 312, 6080, 5611, 5611, 6313, - 6313, 10597, 10597, 5611, 827, 191, 312, 10597, -1000, 417, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5611, 5611, 5611, - 5611, 17, 10821, -1000, 10597, 9028, 9028, 9028, 9028, 9028, - -1000, 730, 728, -1000, 729, 721, 736, 10821, -1000, 474, - 8123, 127, 620, -1000, 9252, -1000, -1000, 17, 533, 9028, - 10821, -1000, -1000, 4174, 617, -91, 606, -1000, -124, -102, - 5844, 109, -1000, -1000, -1000, -1000, 2698, 136, 238, -86, - -1000, -1000, -1000, 623, -1000, 623, 623, 623, 623, -50, - -50, -50, -50, -1000, -1000, -1000, -1000, -1000, 687, 686, - -1000, 623, 623, 623, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 683, 683, 683, 655, 655, 682, -1000, 10821, -172, 454, - 2944, 808, 2944, -1000, 65, -1000, 10821, -1000, -1000, 10821, - 2944, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 208, -1000, -1000, -1000, - -1000, 751, 6313, 6313, 3928, 6313, -1000, -1000, -1000, 813, - -1000, 827, 842, -1000, 758, 757, 5611, -1000, -1000, 146, - 321, -1000, -1000, 280, -1000, -1000, -1000, -1000, 93, 620, - -1000, 1696, -1000, -1000, -1000, -1000, 379, 6761, 6761, 6761, - 6761, 448, 1696, 1696, 1610, 232, 1863, 111, 253, 253, - 118, 118, 118, 118, 118, 355, 355, -1000, -1000, -1000, - 417, -1000, -1000, -1000, 417, 5611, 615, -1000, -1000, 6313, - -1000, 417, 451, 451, 306, 346, 657, -1000, 91, 651, - 451, 5611, 223, -1000, 6313, 417, -1000, 451, 417, 451, - 451, 531, 620, -1000, 653, -1000, 174, 674, 681, 698, - 794, -1000, -1000, -1000, -1000, 722, -1000, 714, -1000, -1000, - -1000, -1000, -1000, 61, 57, 52, 10373, -1000, 852, 9028, - 571, -1000, -1000, 606, -91, -133, -1000, -1000, -1000, 312, - -1000, 430, 604, 2452, -1000, -1000, -1000, -1000, -1000, -1000, - 660, 797, 143, 183, 406, -1000, -1000, 767, -1000, 228, - -103, -1000, -1000, 369, -50, -50, -1000, -1000, 109, 762, - 109, 109, 109, 387, 387, -1000, -1000, -1000, -1000, 336, - -1000, -1000, -1000, 319, -1000, 695, 10373, 2944, -1000, 3682, - -1000, -1000, -1000, -1000, -1000, -1000, 390, 366, 185, -1000, + -1000, 490, -1000, 1766, 485, 2855, 48, 622, 483, 191, + 481, 10766, 10766, 2855, 45, 10766, 784, 648, 10766, 474, + 470, -1000, 4337, -1000, 2855, 2855, 2855, 2855, 2855, 2855, + 2855, 2855, -1000, -1000, -1000, -1000, -1000, -1000, 2855, 2855, + -1000, -88, -1000, 10766, -1000, -1000, -1000, -1000, 828, 131, + 411, 92, 580, -1000, 383, 796, 390, 708, 8281, 673, + -1000, -1000, 10766, -1000, 6238, 6238, 329, -1000, 9415, -1000, + -1000, 3349, 132, 6688, 286, 331, 6688, 6688, 6688, 6688, + 6688, 6688, 6688, 6688, 6688, 6688, 6688, 6688, 6688, 6688, + 6688, 6688, 6688, 313, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 443, -1000, 582, 713, 713, 108, 108, 108, + 108, 108, 108, 6913, 5065, 390, 480, 225, 6004, 5533, + 5533, 6238, 6238, 10541, 10541, 5533, 791, 172, 225, 10541, + -1000, 390, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5533, + 5533, 5533, 5533, 12, 10766, -1000, 10541, 8965, 8965, 8965, + 8965, 8965, -1000, 701, 698, -1000, 695, 692, 702, 10766, + -1000, 458, 8056, 109, 591, -1000, 9190, -1000, -1000, 12, + 514, 8965, 10766, -1000, -1000, 4090, 575, -125, 571, -1000, + -107, -133, 5767, 107, -1000, -1000, -1000, -1000, 2608, 129, + 276, -76, -1000, -1000, -1000, 597, -1000, 597, 597, 597, + 597, -44, -44, -44, -44, -1000, -1000, -1000, -1000, -1000, + 623, 611, -1000, 597, 597, 597, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 15, -1000, 2944, -1000, 257, 10821, 10821, 749, 312, 312, - 90, -1000, -1000, 10821, -1000, -1000, -1000, -1000, 612, -1000, - -1000, -1000, 3190, 5611, -1000, 448, 1696, 1696, 1571, -1000, - 6761, 6761, -1000, -1000, 451, 5611, 312, -1000, -1000, -1000, - 47, 340, 47, 6761, 6761, 3928, 6761, 6761, -167, 582, - 179, -1000, 6313, 155, -1000, -1000, -1000, -1000, -1000, 694, - 10597, 620, -1000, 7899, 10373, 847, 10597, 6313, 6313, -1000, - -1000, 6313, 656, -1000, 6313, -1000, -1000, -1000, 620, 620, - 620, 429, -1000, 847, 571, -1000, -1000, -1000, -134, -136, - -1000, -1000, 2698, -1000, 2698, 10373, -1000, 394, 358, -1000, - -1000, 692, 66, -1000, -1000, -1000, 521, 109, 109, -1000, - 190, -1000, -1000, -1000, 447, -1000, 445, 600, 436, 10821, - -1000, -1000, 556, -1000, 173, -1000, -1000, 10373, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 10373, 10821, -1000, -1000, -1000, -1000, -1000, 10373, -1000, -1000, - 386, 6313, -1000, -1000, -1000, 3682, -1000, 852, 9028, -1000, - -1000, 417, -1000, 6761, 1696, 1696, -1000, -1000, 417, 623, - 623, -1000, 623, 655, -1000, 623, -24, 623, -29, 417, - 417, 1383, 1522, -1000, 711, 1507, 620, -161, -1000, 312, - 6313, -1000, 799, 527, 544, -1000, -1000, 5378, 417, 434, - 83, 429, 837, -1000, 312, 312, 312, 10373, 312, 10373, - 10373, 10373, 7675, 10373, 837, -1000, -1000, -1000, -1000, 2452, - -1000, 427, -1000, 623, -1000, -1000, -78, 860, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -50, - 373, -50, 316, -1000, 313, 2944, 3682, 2698, -1000, 621, - -1000, -1000, -1000, -1000, 803, -1000, 312, 850, 546, -1000, - 1696, -1000, -1000, 67, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 6761, 6761, -1000, 6761, 6761, 6761, 417, - 371, 312, 788, -1000, 620, -1000, -1000, 585, 10373, 10373, - -1000, -1000, 422, -1000, 420, 420, 420, 127, -1000, -1000, - 107, 10373, -1000, 134, -1000, -142, 109, -1000, 109, 512, - 477, -1000, -1000, -1000, 10373, 620, 843, 839, -1000, -1000, - 1465, 1465, 1465, 1465, 12, -1000, -1000, 858, -1000, 620, - -1000, 661, 81, -1000, 10373, -1000, -1000, -1000, -1000, -1000, - 107, -1000, 315, 167, 367, -1000, 249, 771, -1000, 770, - -1000, -1000, -1000, -1000, -1000, 416, 13, -1000, 6313, 6313, - -1000, -1000, -1000, -1000, 417, 49, -176, 10597, 544, 417, - 10373, -1000, -1000, -1000, 310, -1000, -1000, -1000, 281, -1000, - -1000, 638, 411, -1000, 10373, 312, 523, -1000, 747, -170, - -183, 449, -1000, -1000, -1000, -1000, -172, -1000, 13, 756, - -1000, 740, -1000, -1000, -1000, 8, -173, 2, -181, 620, - -185, 6537, -1000, 1465, 417, -1000, -1000, + -1000, -1000, 603, 603, 603, 598, 598, 635, -1000, 10766, + -174, 427, 2855, 783, 2855, -1000, 64, -1000, 10766, -1000, + -1000, 10766, 2855, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 234, -1000, + -1000, -1000, -1000, 714, 6238, 6238, 3843, 6238, -1000, -1000, + -1000, 770, -1000, 791, 805, -1000, 734, 732, 5533, -1000, + -1000, 132, 254, -1000, -1000, 278, -1000, -1000, -1000, -1000, + 89, 591, -1000, 1978, -1000, -1000, -1000, -1000, 286, 6688, + 6688, 6688, 6688, 6688, 288, 1978, 1978, 2032, 1978, 421, + 1435, 108, 252, 252, 106, 106, 106, 106, 106, 230, + 230, -1000, -1000, -1000, 390, -1000, -1000, -1000, 390, 5533, + 572, -1000, -1000, 6238, -1000, 390, 440, 440, 376, 462, + 628, -1000, 82, 621, 440, 5533, 221, -1000, 6238, 390, + -1000, 440, 390, 440, 440, 546, 591, -1000, 574, -1000, + 159, 676, 632, 647, 740, -1000, -1000, -1000, -1000, 675, + -1000, 649, -1000, -1000, -1000, -1000, -1000, 53, 52, 50, + 10316, -1000, 819, 8965, 544, -1000, -1000, 571, -125, -94, + -1000, -1000, -1000, 225, -1000, 424, 541, 2361, -1000, -1000, + -1000, -1000, -1000, -1000, 601, 775, 142, 145, 410, -1000, + -1000, 766, -1000, 187, -83, -1000, -1000, 343, -44, -44, + -1000, -1000, 107, 738, 107, 107, 107, 373, 373, -1000, + -1000, -1000, -1000, 309, -1000, -1000, -1000, 306, -1000, 646, + 10316, 2855, -1000, 3596, -1000, -1000, -1000, -1000, -1000, -1000, + 282, 176, 189, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 11, -1000, 2855, -1000, 213, 10766, + 10766, 718, 225, 225, 81, -1000, -1000, 10766, -1000, -1000, + -1000, -1000, 560, -1000, -1000, -1000, 3102, 5533, -1000, 288, + 1978, 1978, 2016, 1978, -1000, 6688, 6688, -1000, -1000, 440, + 5533, 225, -1000, -1000, -1000, 46, 313, 46, 6688, 6688, + 3843, 6688, 6688, -163, 559, 167, -1000, 6238, 182, -1000, + -1000, -1000, -1000, -1000, 645, 10541, 591, -1000, 7831, 10316, + 804, 10541, 6238, 6238, -1000, -1000, 6238, 599, -1000, 6238, + -1000, -1000, -1000, 591, 591, 591, 420, -1000, 804, 544, + -1000, -1000, -1000, -123, -138, -1000, -1000, 2608, -1000, 2608, + 10316, -1000, 408, 392, -1000, -1000, 634, 65, -1000, -1000, + -1000, 500, 107, 107, -1000, 186, -1000, -1000, -1000, 438, + -1000, 434, 531, 431, 10766, -1000, -1000, 526, -1000, 148, + -1000, -1000, 10316, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 10316, 10766, -1000, -1000, -1000, + -1000, -1000, 10316, -1000, -1000, 367, 6238, -1000, -1000, -1000, + 3596, -1000, 819, 8965, -1000, -1000, 390, -1000, 6688, 1978, + 1978, -1000, -1000, 390, 597, 597, -1000, 597, 598, -1000, + 597, -20, 597, -22, 390, 390, 830, 1546, -1000, 407, + 1531, 591, -160, -1000, 225, 6238, -1000, 778, 513, 516, + -1000, -1000, 5299, 390, 422, 80, 420, 796, -1000, 225, + 225, 225, 10316, 225, 10316, 10316, 10316, 7606, 10316, 796, + -1000, -1000, -1000, -1000, 2361, -1000, 417, -1000, 597, -1000, + -1000, -67, 827, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -44, 359, -44, 301, -1000, 299, + 2855, 3596, 2608, -1000, 596, -1000, -1000, -1000, -1000, 772, + -1000, 225, 815, 518, -1000, 1978, -1000, -1000, 87, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6688, 6688, + -1000, 6688, 6688, 6688, 390, 348, 225, 774, -1000, 591, + -1000, -1000, 548, 10316, 10316, -1000, -1000, 403, -1000, 401, + 401, 401, 109, -1000, -1000, 99, 10316, -1000, 134, -1000, + -142, 107, -1000, 107, 441, 404, -1000, -1000, -1000, 10316, + 591, 813, 798, -1000, -1000, 607, 607, 607, 607, 7, + -1000, -1000, 825, -1000, 591, -1000, 582, 75, -1000, 10316, + -1000, -1000, -1000, -1000, -1000, 99, -1000, 378, 146, 345, + -1000, 249, 771, -1000, 769, -1000, -1000, -1000, -1000, -1000, + 397, 9, -1000, 6238, 6238, -1000, -1000, -1000, -1000, 390, + 33, -178, 10541, 516, 390, 10316, -1000, -1000, -1000, 264, + -1000, -1000, -1000, 277, -1000, -1000, 622, 389, -1000, 10316, + 225, 503, -1000, 717, -167, -182, 482, -1000, -1000, -1000, + -1000, -174, -1000, 9, 730, -1000, 716, -1000, -1000, -1000, + 3, -175, 1, -179, 591, -183, 6463, -1000, 607, 390, + -1000, -1000, } var yyPgo = [...]int16{ - 0, 1098, 25, 507, 1097, 1093, 1092, 1091, 1090, 1088, - 1086, 1085, 1083, 1082, 1081, 1079, 1075, 1074, 1071, 1069, - 1068, 1065, 1063, 1062, 116, 1059, 1058, 1057, 59, 1056, - 57, 1051, 1046, 29, 849, 30, 32, 100, 1045, 34, - 65, 99, 1042, 41, 1041, 1038, 63, 1037, 52, 1036, - 1032, 1353, 1029, 1028, 9, 22, 1023, 1021, 1019, 1018, - 55, 430, 1016, 1015, 1014, 1013, 1012, 1009, 43, 4, - 7, 20, 11, 1008, 84, 79, 1007, 39, 1006, 1005, - 995, 993, 58, 990, 45, 989, 13, 40, 986, 12, - 44, 31, 15, 14, 61, 42, 984, 21, 49, 38, - 983, 982, 341, 980, 979, 978, 971, 966, 963, 131, - 337, 954, 952, 947, 943, 27, 167, 562, 91, 47, - 941, 940, 939, 1333, 53, 54, 17, 938, 24, 881, - 28, 937, 936, 23, 933, 932, 915, 914, 912, 911, - 910, 78, 909, 908, 907, 35, 46, 906, 904, 50, - 18, 903, 902, 900, 37, 51, 899, 36, 898, 897, - 896, 895, 19, 16, 894, 8, 893, 5, 892, 891, - 2, 886, 10, 880, 3, 879, 6, 33, 878, 877, - 0, 204, 876, 875, 103, + 0, 1048, 24, 490, 1047, 1046, 1041, 1040, 1039, 1038, + 1037, 1035, 1034, 1033, 1030, 1027, 1026, 1025, 1023, 1022, + 1021, 1020, 1019, 1018, 112, 1017, 1016, 1015, 55, 1014, + 63, 1011, 1010, 33, 752, 36, 35, 1070, 1009, 29, + 57, 60, 996, 40, 995, 994, 65, 993, 54, 991, + 990, 1259, 989, 986, 16, 18, 983, 982, 981, 980, + 61, 418, 978, 977, 975, 970, 969, 967, 42, 6, + 9, 12, 14, 963, 99, 8, 962, 41, 957, 953, + 952, 950, 23, 948, 46, 946, 21, 43, 945, 10, + 51, 22, 20, 5, 64, 49, 942, 32, 52, 39, + 941, 940, 372, 939, 938, 936, 935, 904, 900, 136, + 321, 899, 898, 897, 896, 45, 167, 563, 730, 59, + 895, 894, 893, 1320, 58, 53, 15, 892, 31, 1024, + 34, 890, 889, 27, 888, 883, 882, 881, 880, 879, + 878, 69, 877, 876, 874, 28, 13, 873, 872, 44, + 26, 871, 870, 864, 37, 47, 863, 38, 857, 855, + 854, 853, 30, 17, 852, 11, 851, 7, 850, 849, + 3, 847, 19, 844, 2, 843, 4, 50, 842, 841, + 0, 319, 840, 839, 92, } var yyR1 = [...]uint8{ @@ -1955,29 +1952,29 @@ var yyR1 = [...]uint8{ 48, 48, 48, 48, 50, 50, 52, 52, 51, 51, 54, 54, 54, 54, 55, 55, 37, 37, 37, 37, 37, 37, 37, 103, 103, 57, 57, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 67, - 67, 67, 67, 67, 67, 58, 58, 58, 58, 58, - 58, 58, 33, 33, 68, 68, 68, 74, 69, 69, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 67, 67, 67, 67, 67, 67, 58, 58, 58, + 58, 58, 58, 58, 33, 33, 68, 68, 68, 74, + 69, 69, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 65, 65, 65, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 64, - 64, 64, 64, 64, 64, 64, 64, 184, 184, 66, - 66, 66, 66, 31, 31, 31, 31, 31, 130, 130, - 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, - 133, 133, 133, 78, 78, 32, 32, 76, 76, 77, - 79, 79, 75, 75, 75, 60, 60, 60, 60, 60, - 60, 60, 60, 62, 62, 62, 80, 80, 81, 81, - 82, 82, 83, 83, 84, 85, 85, 85, 86, 86, - 86, 86, 87, 87, 87, 59, 59, 59, 59, 59, - 59, 88, 88, 88, 88, 92, 92, 70, 70, 72, - 72, 71, 73, 93, 93, 97, 94, 94, 98, 98, - 98, 96, 96, 96, 122, 122, 122, 101, 101, 109, - 109, 110, 110, 102, 102, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 112, 112, 112, 113, 113, - 114, 114, 114, 121, 121, 117, 117, 118, 118, 123, - 123, 124, 124, 115, 115, 115, 115, 115, 115, 115, + 61, 61, 61, 65, 65, 65, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 64, 64, 64, 64, 64, 64, 64, 64, 184, + 184, 66, 66, 66, 66, 31, 31, 31, 31, 31, + 130, 130, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 78, 78, 32, 32, 76, + 76, 77, 79, 79, 75, 75, 75, 60, 60, 60, + 60, 60, 60, 60, 60, 62, 62, 62, 80, 80, + 81, 81, 82, 82, 83, 83, 84, 85, 85, 85, + 86, 86, 86, 86, 87, 87, 87, 59, 59, 59, + 59, 59, 59, 88, 88, 88, 88, 92, 92, 70, + 70, 72, 72, 71, 73, 93, 93, 97, 94, 94, + 98, 98, 98, 96, 96, 96, 122, 122, 122, 101, + 101, 109, 109, 110, 110, 102, 102, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 112, 112, 112, + 113, 113, 114, 114, 114, 121, 121, 117, 117, 118, + 118, 123, 123, 124, 124, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, @@ -1986,7 +1983,7 @@ var yyR1 = [...]uint8{ 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, @@ -1996,7 +1993,8 @@ var yyR1 = [...]uint8{ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 180, 181, 128, 129, 129, 129, + 116, 116, 116, 116, 116, 116, 116, 180, 181, 128, + 129, 129, 129, } var yyR2 = [...]int8{ @@ -2037,28 +2035,28 @@ var yyR2 = [...]int8{ 2, 3, 2, 3, 2, 2, 2, 1, 1, 3, 0, 5, 5, 5, 0, 2, 1, 3, 3, 2, 3, 1, 2, 0, 3, 1, 1, 3, 3, 4, - 4, 5, 3, 4, 3, 4, 5, 6, 2, 1, - 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 0, 2, 1, 1, 1, 3, 1, 3, - 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, + 4, 5, 3, 4, 3, 4, 5, 6, 2, 3, + 4, 1, 2, 1, 2, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 0, 2, 1, 1, 1, 3, + 1, 3, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, - 1, 4, 5, 6, 4, 4, 6, 6, 6, 6, - 8, 8, 6, 8, 8, 9, 7, 5, 4, 2, - 2, 2, 2, 2, 2, 2, 2, 0, 2, 4, - 4, 4, 4, 0, 3, 4, 7, 3, 1, 1, - 2, 3, 3, 1, 2, 2, 1, 2, 1, 2, - 2, 1, 2, 0, 1, 0, 2, 1, 2, 4, - 0, 2, 1, 3, 5, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 0, 3, 0, 2, - 0, 3, 1, 3, 2, 0, 1, 1, 0, 2, - 4, 4, 0, 2, 4, 2, 1, 3, 5, 4, - 6, 1, 3, 3, 5, 0, 5, 1, 3, 1, - 2, 3, 1, 1, 3, 3, 1, 3, 3, 3, - 3, 1, 2, 1, 1, 1, 1, 1, 1, 0, - 2, 0, 3, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, - 0, 1, 1, 0, 2, 1, 1, 1, 1, 1, + 3, 3, 2, 2, 2, 2, 2, 2, 3, 1, + 1, 1, 1, 4, 5, 6, 4, 4, 6, 6, + 6, 6, 8, 8, 6, 8, 8, 9, 7, 5, + 4, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 4, 4, 4, 4, 0, 3, 4, 7, 3, + 1, 1, 2, 3, 3, 1, 2, 2, 1, 2, + 1, 2, 2, 1, 2, 0, 1, 0, 2, 1, + 2, 4, 0, 2, 1, 3, 5, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 0, 3, + 0, 2, 0, 3, 1, 3, 2, 0, 1, 1, + 0, 2, 4, 4, 0, 2, 4, 2, 1, 3, + 5, 4, 6, 1, 3, 3, 5, 0, 5, 1, + 3, 1, 2, 3, 1, 1, 3, 3, 1, 3, + 3, 3, 3, 1, 2, 1, 1, 1, 1, 1, + 1, 0, 2, 0, 3, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, + 1, 1, 0, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2078,289 +2076,292 @@ var yyR2 = [...]int8{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 1, 1, } var yyChk = [...]int16{ -1000, -178, -1, -2, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -17, -18, -19, -21, -22, -23, -20, -3, -4, 6, 7, -27, 9, 10, 30, -16, - 113, 114, 116, 115, 141, 117, 134, 49, 153, 154, - 156, 157, 25, 135, 136, 139, 140, -180, 8, 236, - 53, -179, 251, -82, 15, -26, 5, -24, -183, -24, - -24, -24, -24, -24, -159, 53, -114, 122, 70, 149, - 228, 119, 120, 126, -117, 56, -116, 244, 153, 164, - 158, 185, 177, 175, 178, 215, 65, 156, 224, 137, - 173, 169, 167, 27, 190, 249, 168, 132, 131, 191, - 195, 216, 162, 163, 218, 189, 133, 32, 246, 34, - 145, 219, 193, 188, 184, 187, 161, 183, 38, 197, - 196, 198, 214, 180, 170, 18, 222, 140, 143, 192, - 194, 127, 147, 248, 220, 166, 144, 139, 223, 157, - 217, 226, 37, 202, 160, 130, 154, 151, 181, 146, - 171, 172, 186, 159, 182, 155, 148, 141, 225, 203, - 250, 179, 176, 152, 150, 207, 208, 209, 210, 247, - 221, 174, 204, -102, 122, 124, 120, 120, 121, 122, - 228, 119, 120, -51, -123, 56, -116, 122, 149, 120, - 107, 178, 113, 205, 121, 32, 147, -132, 120, -104, - 150, 207, 208, 209, 210, 56, 217, 216, 211, -123, - 155, -128, -128, -128, -128, -128, -2, -86, 17, 16, + 114, 115, 117, 116, 142, 118, 135, 49, 154, 155, + 157, 158, 25, 136, 137, 140, 141, -180, 8, 237, + 53, -179, 252, -82, 15, -26, 5, -24, -183, -24, + -24, -24, -24, -24, -159, 53, -114, 123, 70, 150, + 229, 120, 121, 127, -117, 56, -116, 245, 154, 165, + 159, 186, 178, 176, 179, 216, 65, 157, 225, 138, + 174, 170, 168, 27, 191, 250, 169, 133, 132, 192, + 196, 217, 163, 164, 219, 190, 134, 32, 247, 34, + 146, 220, 194, 189, 185, 188, 162, 184, 38, 198, + 197, 199, 215, 181, 171, 18, 223, 141, 144, 193, + 195, 128, 148, 249, 221, 167, 145, 140, 224, 158, + 218, 227, 37, 203, 161, 131, 155, 152, 182, 147, + 172, 173, 187, 160, 183, 156, 149, 142, 226, 204, + 251, 180, 177, 153, 151, 208, 209, 210, 211, 248, + 222, 175, 205, -102, 123, 125, 121, 121, 122, 123, + 229, 120, 121, -51, -123, 56, -116, 123, 150, 121, + 108, 179, 114, 206, 122, 32, 148, -132, 121, -104, + 151, 208, 209, 210, 211, 56, 218, 217, 212, -123, + 156, -128, -128, -128, -128, -128, -2, -86, 17, 16, -5, -3, -180, 6, 20, 21, -30, 39, 40, -25, - -36, 98, -37, -123, -56, 72, -61, 29, 56, -116, - 23, -60, -57, -75, -73, -74, 107, 108, 96, 97, - 104, 73, 109, -65, -63, -64, -66, 58, 57, 66, + -36, 99, -37, -123, -56, 72, -61, 29, 56, -116, + 23, -60, -57, -75, -73, -74, 108, 109, 97, 98, + 105, 73, 110, -65, -63, -64, -66, 58, 57, 66, 59, 60, 61, 62, 67, 68, 69, -117, -71, -180, - 43, 44, 237, 238, 239, 240, 243, 241, 75, 33, - 227, 235, 234, 233, 231, 232, 229, 230, 125, 228, - 102, 236, -102, -39, -40, -41, -42, -53, -74, -180, - -51, 11, -46, -51, -94, -131, 155, -98, 217, 216, - -118, -96, -117, -115, 215, 178, 214, 118, 71, 22, - 24, 200, 74, 107, 16, 75, 106, 237, 113, 47, - 229, 230, 227, 239, 240, 228, 205, 29, 10, 25, - 135, 21, 100, 115, 78, 79, 138, 23, 136, 69, - 19, 50, 11, 13, 14, 125, 124, 90, 121, 45, - 8, 109, 26, 87, 41, 28, 43, 88, 17, 231, - 232, 31, 243, 142, 102, 48, 35, 72, 67, 51, - 70, 15, 46, 89, 116, 236, 44, 119, 6, 242, - 30, 134, 91, 42, 120, 206, 77, 123, 68, 5, - 126, 9, 49, 52, 233, 234, 235, 33, 76, 12, - -160, -155, 56, 121, -51, 236, -117, -110, 125, -110, - -110, 120, -51, -51, -109, 125, 56, -109, -109, -109, - -51, 110, -51, 56, 30, 228, 56, 147, 120, 148, - 122, -129, -180, -118, -129, -129, -129, 151, 152, -129, - -105, 212, 51, -129, -181, 55, -87, 19, 31, -37, - -123, -83, -84, -37, -82, -2, -24, 35, -28, 21, - 64, 11, -120, 71, 70, 87, -119, 22, -117, 58, - 110, -37, -58, 90, 72, 88, 89, 91, 74, 93, - 92, 103, 96, 97, 98, 99, 100, 101, 102, 94, - 95, 106, 80, 81, 82, 83, 84, 85, 86, -103, - -180, -74, -180, 111, 112, -61, -61, -61, -61, -61, - -61, -61, -180, -2, -69, -37, -180, -180, -180, -180, - -180, -180, -180, -180, -180, -78, -37, -180, -184, -180, - -184, -184, -184, -184, -184, -184, -184, -180, -180, -180, - -180, -52, 26, -51, 30, 54, -47, -49, -48, -50, - 41, 45, 47, 42, 43, 44, 48, -127, 22, -39, - -180, -126, 143, -125, 22, -123, 58, -51, -46, -182, - 54, 11, 52, 54, -94, 155, -95, -99, 218, 220, - 80, -122, -117, 58, 29, 30, 55, 54, -134, -137, - -139, -138, -140, -135, -136, 175, 176, 107, 179, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 30, - 137, 171, 172, 173, 174, 191, 192, 193, 194, 195, - 196, 197, 198, 158, 159, 160, 161, 162, 163, 164, - 166, 167, 168, 169, 170, 56, -129, 122, -176, 52, - 56, 72, 56, -51, -51, -129, 123, -51, 23, 51, - -51, 56, 56, -124, -123, -115, -129, -129, -129, -129, - -129, -129, -129, -129, -129, -129, -107, 206, 213, -51, - 9, 90, 54, 18, 110, 54, -85, 24, 25, -86, - -181, -30, -62, -117, 59, 62, -29, 42, -51, -37, - -37, -67, 67, 72, 68, 69, -119, 98, -124, -118, - -115, -61, -68, -71, -74, 63, 90, 88, 89, 91, - 74, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -61, -61, -61, -130, 56, 58, - 56, -60, -60, -117, -35, 21, -34, -36, -181, 54, - -181, -2, -34, -34, -37, -37, -75, -117, -123, -75, - -34, -28, -76, -77, 76, -75, -181, -34, -35, -34, - -34, -90, 143, -51, -93, -97, -75, -40, -41, -41, - -40, -41, 41, 41, 41, 46, 41, 46, 41, -48, - -123, -181, -54, 49, 124, 50, -180, -125, -90, 52, - -39, -51, -98, -95, 54, 219, 221, 222, 51, -37, - -146, 106, -161, -162, -163, -118, 58, 59, -155, -156, - -164, 127, 130, 126, -157, 121, 28, -151, 67, 72, - -147, 203, -141, 53, -141, -141, -141, -141, -145, 178, - -145, -145, -145, 53, 53, -141, -141, -141, -149, 53, - -149, -149, -150, 53, -150, -121, 52, -51, -174, 247, - -175, 56, -129, 23, -129, -111, 118, 115, 116, -171, - 114, 200, 178, 65, 29, 15, 237, 143, 250, 56, - 144, -51, -51, -129, -106, 11, 90, 37, -37, -37, - -124, -84, -87, -101, 19, 11, 33, 33, -34, 67, - 68, 69, 110, -180, -68, -61, -61, -61, -61, -33, - 138, 71, -181, -181, -34, 54, -37, -181, -181, -181, - 54, 52, 22, 54, 11, 110, 54, 11, -181, -34, - -79, -77, 78, -37, -181, -181, -181, -181, -181, -59, - 30, 33, -2, -180, -180, -55, 54, 12, 80, -44, - -43, 51, 52, -45, 51, -43, 41, 41, 121, 121, - 121, -91, -117, -55, -39, -55, -99, -100, 223, 220, - 226, 56, 54, -163, 80, 53, 28, -157, -157, 56, - 56, -142, 29, 67, -148, 204, 59, -145, -145, -146, - 30, -146, -146, -146, -154, 58, -154, 59, 59, 51, - -117, -129, -173, -172, -118, -128, -177, 149, 128, 129, - 132, 131, 56, 121, 28, 127, 130, 143, 126, -177, - 149, -112, -113, 123, 22, 121, 28, 143, -129, -108, - 88, 12, -123, -123, 38, 110, -51, -38, 11, 98, - -118, -35, -33, 71, -61, -61, -181, -36, -133, 107, - 175, 137, 173, 169, 189, 180, 202, 171, 203, -130, - -133, -61, -61, -118, -61, -61, 244, -82, 79, -37, - 77, -92, 51, -93, -70, -72, -71, -180, -2, -88, - -117, -91, -82, -97, -37, -37, -37, 53, -37, -180, - -180, -180, -181, 54, -82, -55, 220, 224, 225, -162, - -163, -166, -165, -117, 56, 56, -144, 51, 58, 59, - 60, 67, 227, 66, 55, -146, -146, 56, 107, 55, - 54, 55, 54, 55, 54, -51, 54, 80, -128, -117, - -128, -117, -51, -128, -117, 58, -37, -55, -39, -181, - -61, -181, -141, -141, -141, -150, -141, 163, -141, 163, - -181, -181, -181, 54, 19, -181, 54, 19, -180, -32, - 242, -37, 27, -92, 54, -181, -181, -181, 54, 110, - -181, -86, -89, -117, -89, -89, -89, -126, -117, -86, - 55, 54, -141, -152, 200, 9, -145, 58, -145, 59, - 59, -129, -172, -163, 53, 26, -80, 13, -145, 56, - -61, -61, -61, -61, -61, -181, 58, 28, -72, 33, - -2, -180, -117, -117, 54, 55, -181, -181, -181, -54, - -168, -167, 52, 133, 65, -165, -153, 127, 28, 126, - 227, -146, -146, 55, 55, -89, -180, -81, 14, 16, - -181, -181, -181, -181, -31, 90, 247, 9, -70, -2, - 110, -117, -167, 56, -158, 80, 58, -143, 65, 28, - 28, 55, -169, -170, 143, -37, -69, -181, 245, 48, - 248, -93, -181, -117, 59, 58, -176, -181, 54, -117, - 38, 246, 249, -174, -170, 33, 38, 145, 247, 146, - 248, -180, 249, -61, 142, -181, -181, + 43, 44, 238, 239, 240, 241, 244, 242, 75, 33, + 228, 236, 235, 234, 232, 233, 230, 231, 126, 229, + 103, 237, -102, -39, -40, -41, -42, -53, -74, -180, + -51, 11, -46, -51, -94, -131, 156, -98, 218, 217, + -118, -96, -117, -115, 216, 179, 215, 119, 71, 22, + 24, 201, 74, 108, 16, 75, 107, 238, 114, 47, + 230, 231, 228, 240, 241, 229, 206, 29, 10, 25, + 136, 21, 101, 116, 78, 79, 139, 23, 137, 69, + 19, 50, 11, 13, 14, 126, 125, 90, 122, 45, + 8, 110, 26, 87, 41, 28, 43, 88, 17, 232, + 233, 31, 244, 143, 103, 48, 35, 72, 67, 51, + 70, 15, 46, 89, 117, 237, 44, 120, 6, 243, + 30, 135, 91, 42, 92, 121, 207, 77, 124, 68, + 5, 127, 9, 49, 52, 234, 235, 236, 33, 76, + 12, -160, -155, 56, 122, -51, 237, -117, -110, 126, + -110, -110, 121, -51, -51, -109, 126, 56, -109, -109, + -109, -51, 111, -51, 56, 30, 229, 56, 148, 121, + 149, 123, -129, -180, -118, -129, -129, -129, 152, 153, + -129, -105, 213, 51, -129, -181, 55, -87, 19, 31, + -37, -123, -83, -84, -37, -82, -2, -24, 35, -28, + 21, 64, 11, -120, 71, 70, 87, -119, 22, -117, + 58, 111, -37, -58, 90, 72, 88, 89, 91, 74, + 92, 94, 93, 104, 97, 98, 99, 100, 101, 102, + 103, 95, 96, 107, 80, 81, 82, 83, 84, 85, + 86, -103, -180, -74, -180, 112, 113, -61, -61, -61, + -61, -61, -61, -61, -180, -2, -69, -37, -180, -180, + -180, -180, -180, -180, -180, -180, -180, -78, -37, -180, + -184, -180, -184, -184, -184, -184, -184, -184, -184, -180, + -180, -180, -180, -52, 26, -51, 30, 54, -47, -49, + -48, -50, 41, 45, 47, 42, 43, 44, 48, -127, + 22, -39, -180, -126, 144, -125, 22, -123, 58, -51, + -46, -182, 54, 11, 52, 54, -94, 156, -95, -99, + 219, 221, 80, -122, -117, 58, 29, 30, 55, 54, + -134, -137, -139, -138, -140, -135, -136, 176, 177, 108, + 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 30, 138, 172, 173, 174, 175, 192, 193, 194, + 195, 196, 197, 198, 199, 159, 160, 161, 162, 163, + 164, 165, 167, 168, 169, 170, 171, 56, -129, 123, + -176, 52, 56, 72, 56, -51, -51, -129, 124, -51, + 23, 51, -51, 56, 56, -124, -123, -115, -129, -129, + -129, -129, -129, -129, -129, -129, -129, -129, -107, 207, + 214, -51, 9, 90, 54, 18, 111, 54, -85, 24, + 25, -86, -181, -30, -62, -117, 59, 62, -29, 42, + -51, -37, -37, -67, 67, 72, 68, 69, -119, 99, + -124, -118, -115, -61, -68, -71, -74, 63, 90, 88, + 89, 91, 74, 92, -61, -61, -61, -61, -61, -61, + -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, + -61, -130, 56, 58, 56, -60, -60, -117, -35, 21, + -34, -36, -181, 54, -181, -2, -34, -34, -37, -37, + -75, -117, -123, -75, -34, -28, -76, -77, 76, -75, + -181, -34, -35, -34, -34, -90, 144, -51, -93, -97, + -75, -40, -41, -41, -40, -41, 41, 41, 41, 46, + 41, 46, 41, -48, -123, -181, -54, 49, 125, 50, + -180, -125, -90, 52, -39, -51, -98, -95, 54, 220, + 222, 223, 51, -37, -146, 107, -161, -162, -163, -118, + 58, 59, -155, -156, -164, 128, 131, 127, -157, 122, + 28, -151, 67, 72, -147, 204, -141, 53, -141, -141, + -141, -141, -145, 179, -145, -145, -145, 53, 53, -141, + -141, -141, -149, 53, -149, -149, -150, 53, -150, -121, + 52, -51, -174, 248, -175, 56, -129, 23, -129, -111, + 119, 116, 117, -171, 115, 201, 179, 65, 29, 15, + 238, 144, 251, 56, 145, -51, -51, -129, -106, 11, + 90, 37, -37, -37, -124, -84, -87, -101, 19, 11, + 33, 33, -34, 67, 68, 69, 111, -180, -68, -61, + -61, -61, -61, -61, -33, 139, 71, -181, -181, -34, + 54, -37, -181, -181, -181, 54, 52, 22, 54, 11, + 111, 54, 11, -181, -34, -79, -77, 78, -37, -181, + -181, -181, -181, -181, -59, 30, 33, -2, -180, -180, + -55, 54, 12, 80, -44, -43, 51, 52, -45, 51, + -43, 41, 41, 122, 122, 122, -91, -117, -55, -39, + -55, -99, -100, 224, 221, 227, 56, 54, -163, 80, + 53, 28, -157, -157, 56, 56, -142, 29, 67, -148, + 205, 59, -145, -145, -146, 30, -146, -146, -146, -154, + 58, -154, 59, 59, 51, -117, -129, -173, -172, -118, + -128, -177, 150, 129, 130, 133, 132, 56, 122, 28, + 128, 131, 144, 127, -177, 150, -112, -113, 124, 22, + 122, 28, 144, -129, -108, 88, 12, -123, -123, 38, + 111, -51, -38, 11, 99, -118, -35, -33, 71, -61, + -61, -181, -36, -133, 108, 176, 138, 174, 170, 190, + 181, 203, 172, 204, -130, -133, -61, -61, -118, -61, + -61, 245, -82, 79, -37, 77, -92, 51, -93, -70, + -72, -71, -180, -2, -88, -117, -91, -82, -97, -37, + -37, -37, 53, -37, -180, -180, -180, -181, 54, -82, + -55, 221, 225, 226, -162, -163, -166, -165, -117, 56, + 56, -144, 51, 58, 59, 60, 67, 228, 66, 55, + -146, -146, 56, 108, 55, 54, 55, 54, 55, 54, + -51, 54, 80, -128, -117, -128, -117, -51, -128, -117, + 58, -37, -55, -39, -181, -61, -181, -141, -141, -141, + -150, -141, 164, -141, 164, -181, -181, -181, 54, 19, + -181, 54, 19, -180, -32, 243, -37, 27, -92, 54, + -181, -181, -181, 54, 111, -181, -86, -89, -117, -89, + -89, -89, -126, -117, -86, 55, 54, -141, -152, 201, + 9, -145, 58, -145, 59, 59, -129, -172, -163, 53, + 26, -80, 13, -145, 56, -61, -61, -61, -61, -61, + -181, 58, 28, -72, 33, -2, -180, -117, -117, 54, + 55, -181, -181, -181, -54, -168, -167, 52, 134, 65, + -165, -153, 128, 28, 127, 228, -146, -146, 55, 55, + -89, -180, -81, 14, 16, -181, -181, -181, -181, -31, + 90, 248, 9, -70, -2, 111, -117, -167, 56, -158, + 80, 58, -143, 65, 28, 28, 55, -169, -170, 144, + -37, -69, -181, 246, 48, 249, -93, -181, -117, 59, + 58, -176, -181, 54, -117, 38, 247, 250, -174, -170, + 33, 38, 146, 248, 147, 249, -180, 250, -61, 143, + -181, -181, } var yyDef = [...]int16{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 510, 0, 277, 277, 277, 277, 277, 277, 0, - 580, 563, 0, 0, 0, 0, -2, 267, 268, 0, - 270, 271, 786, 786, 786, 786, 786, 0, 33, 34, - 784, 1, 3, 518, 0, 0, 281, 284, 279, 0, - 563, 0, 0, 0, 60, 0, 0, 773, 0, 774, - 561, 561, 561, 581, 582, 585, 586, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, - 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, - 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, - 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 772, 775, 776, 777, 778, 779, 780, - 781, 782, 783, 0, 0, 564, 0, 559, 0, 559, - 559, 559, 0, 226, 348, 589, 590, 773, 774, 0, - 0, 0, 0, 787, 787, 787, 787, 0, 787, 255, - 244, 246, 247, 248, 249, 787, 264, 265, 254, 266, - 269, 272, 273, 274, 275, 276, 27, 522, 0, 0, - 510, 29, 0, 277, 282, 283, 287, 285, 286, 278, + 21, 512, 0, 277, 277, 277, 277, 277, 277, 0, + 582, 565, 0, 0, 0, 0, -2, 267, 268, 0, + 270, 271, 789, 789, 789, 789, 789, 0, 33, 34, + 787, 1, 3, 520, 0, 0, 281, 284, 279, 0, + 565, 0, 0, 0, 60, 0, 0, 776, 0, 777, + 563, 563, 563, 583, 584, 587, 588, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, + 772, 773, 774, 775, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 0, 0, 566, 0, 561, 0, 561, + 561, 561, 0, 226, 348, 591, 592, 776, 777, 0, + 0, 0, 0, 790, 790, 790, 790, 0, 790, 255, + 244, 246, 247, 248, 249, 790, 264, 265, 254, 266, + 269, 272, 273, 274, 275, 276, 27, 524, 0, 0, + 512, 29, 0, 277, 282, 283, 287, 285, 286, 278, 0, 295, 299, 0, 356, 0, 361, 363, -2, -2, - 0, 400, 401, 402, 403, 404, 0, 0, 0, 0, - 0, 0, 0, 427, 428, 429, 430, 495, 496, 497, - 498, 499, 500, 501, 502, 365, 366, 492, 542, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 483, 0, - 457, 457, 457, 457, 457, 457, 457, 457, 0, 0, + 0, 402, 403, 404, 405, 406, 0, 0, 0, 0, + 0, 0, 0, 429, 430, 431, 432, 497, 498, 499, + 500, 501, 502, 503, 504, 365, 366, 494, 544, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 485, 0, + 459, 459, 459, 459, 459, 459, 459, 459, 0, 0, 0, 0, 0, 0, 306, 308, 309, 310, 329, 0, - 331, 0, 0, 41, 45, 0, 764, 546, -2, -2, - 0, 0, 587, 588, -2, 693, -2, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 0, 77, 0, 0, 787, 0, 67, 0, 0, 0, - 0, 0, 787, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 227, 787, 787, 787, 787, 787, 787, 787, - 787, 236, 788, 789, 237, 238, 239, 787, 787, 241, - 0, 256, 0, 250, 28, 785, 22, 0, 0, 519, - 0, 511, 512, 515, 518, 27, 284, 0, 289, 288, - 280, 0, 296, 0, 0, 0, 300, 0, 302, 303, - 0, 359, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 385, 386, 387, 388, 389, 390, 391, 362, - 0, 378, 0, 0, 0, 420, 421, 422, 423, 424, - 425, 0, 291, 27, 0, 398, 0, 0, 0, 0, - 0, 0, 0, 0, 287, 0, 484, 0, 449, 0, - 450, 451, 452, 453, 454, 455, 456, 0, 291, 0, - 0, 43, 0, 347, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 339, 0, 0, 0, 0, 330, 0, - 0, 350, 737, 332, 0, 334, 335, -2, 0, 0, - 0, 39, 40, 0, 46, 764, 48, 49, 0, 0, - 0, 157, 554, 555, 556, 552, 185, 0, 140, 136, - 82, 83, 84, 129, 86, 129, 129, 129, 129, 154, - 154, 154, 154, 112, 113, 114, 115, 116, 0, 0, - 99, 129, 129, 129, 103, 119, 120, 121, 122, 123, - 124, 125, 126, 87, 88, 89, 90, 91, 92, 93, - 131, 131, 131, 133, 133, 583, 62, 0, 70, 0, - 787, 0, 787, 75, 0, 201, 0, 220, 560, 0, - 787, 223, 224, 349, 591, 592, 228, 229, 230, 231, - 232, 233, 234, 235, 240, 243, 257, 251, 252, 245, - 523, 0, 0, 0, 0, 0, 514, 516, 517, 522, - 30, 287, 0, 503, 0, 0, 0, 290, 25, 357, - 358, 360, 379, 0, 381, 383, 301, 297, 0, 493, - -2, 367, 368, 394, 395, 396, 0, 0, 0, 0, - 0, 392, 372, 374, 0, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 419, 468, 469, - 0, 417, 418, 426, 0, 0, 292, 293, 397, 0, - 541, 27, 0, 0, 0, 0, 0, 492, 0, 0, - 0, 0, 490, 487, 0, 0, 458, 0, 0, 0, - 0, 0, 0, 346, 354, 543, 0, 307, 325, 327, - 0, 322, 337, 338, 340, 0, 342, 0, 344, 345, - 311, 312, 313, 0, 0, 0, 0, 333, 354, 0, - 354, 42, 547, 47, 0, 0, 52, 53, 548, 549, - 550, 0, 76, 186, 188, 191, 192, 193, 78, 79, - 0, 0, 0, 0, 0, 180, 181, 143, 141, 0, - 138, 137, 85, 0, 154, 154, 106, 107, 157, 0, - 157, 157, 157, 0, 0, 100, 101, 102, 94, 0, - 95, 96, 97, 0, 98, 0, 0, 787, 64, 0, - 68, 69, 65, 562, 66, 786, 0, 0, 575, 202, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 0, 219, 787, 222, 260, 0, 0, 0, 520, 521, - 0, 513, 23, 0, 557, 558, 504, 505, 304, 380, - 382, 384, 0, 291, 369, 392, 373, 375, 0, 370, - 0, 0, 364, 431, 0, 0, 399, -2, 434, 435, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, - 0, 488, 0, 0, 448, 459, 460, 461, 462, 535, - 0, 0, -2, 0, 0, 510, 0, 0, 0, 319, - 326, 0, 0, 320, 0, 321, 341, 343, 0, 0, - 0, 0, 317, 510, 354, 38, 50, 51, 0, 0, - 57, 158, 0, 189, 0, 0, 175, 0, 0, 178, - 179, 150, 0, 142, 81, 139, 0, 157, 157, 108, - 0, 109, 110, 111, 0, 127, 0, 0, 0, 0, - 584, 63, 71, 72, 0, 194, 786, 0, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 786, - 0, 0, 786, 576, 577, 578, 579, 0, 221, 242, - 0, 0, 258, 259, 524, 0, 24, 354, 0, 298, - 494, 0, 371, 0, 393, 376, 432, 294, 0, 129, - 129, 473, 129, 133, 476, 129, 478, 129, 481, 0, - 0, 0, 0, 493, 0, 0, 0, 485, 447, 491, - 0, 31, 0, 535, 525, 537, 539, 0, 27, 0, - 531, 0, 518, 544, 355, 545, 323, 0, 328, 0, - 0, 0, 331, 0, 518, 37, 54, 55, 56, 187, - 190, 0, 182, 129, 176, 177, 152, 0, 144, 145, - 146, 147, 148, 149, 130, 104, 105, 155, 156, 154, - 0, 154, 0, 134, 0, 787, 0, 0, 195, 0, - 196, 198, 199, 200, 0, 261, 262, 506, 305, 433, - 377, 436, 470, 154, 474, 475, 477, 479, 480, 482, - 438, 437, 439, 0, 0, 442, 0, 0, 0, 0, - 0, 489, 0, 32, 0, 540, -2, 0, 0, 0, - 44, 35, 0, 315, 0, 0, 0, 350, 318, 36, - 167, 0, 184, 159, 153, 0, 157, 128, 157, 0, - 0, 61, 73, 74, 0, 0, 508, 0, 471, 472, - 0, 0, 0, 0, 463, 446, 486, 0, 538, 0, - -2, 0, 533, 532, 0, 324, 351, 352, 353, 314, - 166, 168, 0, 173, 0, 183, 164, 0, 161, 163, - 151, 117, 118, 132, 135, 0, 0, 26, 0, 0, - 440, 441, 443, 444, 0, 0, 0, 0, 528, 27, - 0, 316, 169, 170, 0, 174, 172, 80, 0, 160, - 162, 67, 0, 215, 0, 509, 507, 445, 0, 0, - 0, 536, -2, 534, 171, 165, 70, 214, 0, 0, - 464, 0, 467, 197, 216, 0, 465, 0, 0, 0, - 0, 0, 466, 0, 0, 217, 218, + 331, 0, 0, 41, 45, 0, 767, 548, -2, -2, + 0, 0, 589, 590, -2, 696, -2, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 0, 77, 0, 0, 790, 0, 67, 0, 0, + 0, 0, 0, 790, 0, 0, 0, 0, 0, 0, + 0, 225, 0, 227, 790, 790, 790, 790, 790, 790, + 790, 790, 236, 791, 792, 237, 238, 239, 790, 790, + 241, 0, 256, 0, 250, 28, 788, 22, 0, 0, + 521, 0, 513, 514, 517, 520, 27, 284, 0, 289, + 288, 280, 0, 296, 0, 0, 0, 300, 0, 302, + 303, 0, 359, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 387, 388, 389, 390, 391, 392, + 393, 362, 0, 378, 0, 0, 0, 422, 423, 424, + 425, 426, 427, 0, 291, 27, 0, 400, 0, 0, + 0, 0, 0, 0, 0, 0, 287, 0, 486, 0, + 451, 0, 452, 453, 454, 455, 456, 457, 458, 0, + 291, 0, 0, 43, 0, 347, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 339, 0, 0, 0, 0, + 330, 0, 0, 350, 740, 332, 0, 334, 335, -2, + 0, 0, 0, 39, 40, 0, 46, 767, 48, 49, + 0, 0, 0, 157, 556, 557, 558, 554, 185, 0, + 140, 136, 82, 83, 84, 129, 86, 129, 129, 129, + 129, 154, 154, 154, 154, 112, 113, 114, 115, 116, + 0, 0, 99, 129, 129, 129, 103, 119, 120, 121, + 122, 123, 124, 125, 126, 87, 88, 89, 90, 91, + 92, 93, 131, 131, 131, 133, 133, 585, 62, 0, + 70, 0, 790, 0, 790, 75, 0, 201, 0, 220, + 562, 0, 790, 223, 224, 349, 593, 594, 228, 229, + 230, 231, 232, 233, 234, 235, 240, 243, 257, 251, + 252, 245, 525, 0, 0, 0, 0, 0, 516, 518, + 519, 524, 30, 287, 0, 505, 0, 0, 0, 290, + 25, 357, 358, 360, 381, 0, 383, 385, 301, 297, + 0, 495, -2, 367, 368, 396, 397, 398, 0, 0, + 0, 0, 0, 0, 394, 372, 374, 0, 379, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 421, 470, 471, 0, 419, 420, 428, 0, 0, + 292, 293, 399, 0, 543, 27, 0, 0, 0, 0, + 0, 494, 0, 0, 0, 0, 492, 489, 0, 0, + 460, 0, 0, 0, 0, 0, 0, 346, 354, 545, + 0, 307, 325, 327, 0, 322, 337, 338, 340, 0, + 342, 0, 344, 345, 311, 312, 313, 0, 0, 0, + 0, 333, 354, 0, 354, 42, 549, 47, 0, 0, + 52, 53, 550, 551, 552, 0, 76, 186, 188, 191, + 192, 193, 78, 79, 0, 0, 0, 0, 0, 180, + 181, 143, 141, 0, 138, 137, 85, 0, 154, 154, + 106, 107, 157, 0, 157, 157, 157, 0, 0, 100, + 101, 102, 94, 0, 95, 96, 97, 0, 98, 0, + 0, 790, 64, 0, 68, 69, 65, 564, 66, 789, + 0, 0, 577, 202, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 0, 219, 790, 222, 260, 0, + 0, 0, 522, 523, 0, 515, 23, 0, 559, 560, + 506, 507, 304, 382, 384, 386, 0, 291, 369, 394, + 373, 375, 0, 380, 370, 0, 0, 364, 433, 0, + 0, 401, -2, 436, 437, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 512, 0, 490, 0, 0, 450, + 461, 462, 463, 464, 537, 0, 0, -2, 0, 0, + 512, 0, 0, 0, 319, 326, 0, 0, 320, 0, + 321, 341, 343, 0, 0, 0, 0, 317, 512, 354, + 38, 50, 51, 0, 0, 57, 158, 0, 189, 0, + 0, 175, 0, 0, 178, 179, 150, 0, 142, 81, + 139, 0, 157, 157, 108, 0, 109, 110, 111, 0, + 127, 0, 0, 0, 0, 586, 63, 71, 72, 0, + 194, 789, 0, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 789, 0, 0, 789, 578, 579, + 580, 581, 0, 221, 242, 0, 0, 258, 259, 526, + 0, 24, 354, 0, 298, 496, 0, 371, 0, 395, + 376, 434, 294, 0, 129, 129, 475, 129, 133, 478, + 129, 480, 129, 483, 0, 0, 0, 0, 495, 0, + 0, 0, 487, 449, 493, 0, 31, 0, 537, 527, + 539, 541, 0, 27, 0, 533, 0, 520, 546, 355, + 547, 323, 0, 328, 0, 0, 0, 331, 0, 520, + 37, 54, 55, 56, 187, 190, 0, 182, 129, 176, + 177, 152, 0, 144, 145, 146, 147, 148, 149, 130, + 104, 105, 155, 156, 154, 0, 154, 0, 134, 0, + 790, 0, 0, 195, 0, 196, 198, 199, 200, 0, + 261, 262, 508, 305, 435, 377, 438, 472, 154, 476, + 477, 479, 481, 482, 484, 440, 439, 441, 0, 0, + 444, 0, 0, 0, 0, 0, 491, 0, 32, 0, + 542, -2, 0, 0, 0, 44, 35, 0, 315, 0, + 0, 0, 350, 318, 36, 167, 0, 184, 159, 153, + 0, 157, 128, 157, 0, 0, 61, 73, 74, 0, + 0, 510, 0, 473, 474, 0, 0, 0, 0, 465, + 448, 488, 0, 540, 0, -2, 0, 535, 534, 0, + 324, 351, 352, 353, 314, 166, 168, 0, 173, 0, + 183, 164, 0, 161, 163, 151, 117, 118, 132, 135, + 0, 0, 26, 0, 0, 442, 443, 445, 446, 0, + 0, 0, 0, 530, 27, 0, 316, 169, 170, 0, + 174, 172, 80, 0, 160, 162, 67, 0, 215, 0, + 511, 509, 447, 0, 0, 0, 538, -2, 536, 171, + 165, 70, 214, 0, 0, 466, 0, 469, 197, 216, + 0, 467, 0, 0, 0, 0, 0, 468, 0, 0, + 217, 218, } var yyTok1 = [...]uint8{ 1, 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, 73, 3, 3, 3, 101, 93, 3, - 53, 55, 98, 96, 54, 97, 110, 99, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 251, + 3, 3, 3, 73, 3, 3, 3, 102, 94, 3, + 53, 55, 99, 97, 54, 98, 111, 100, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 252, 81, 80, 82, 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, 103, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 104, 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, 92, 3, 104, + 3, 3, 3, 3, 93, 3, 105, } var yyTok2 = [...]uint8{ @@ -2372,8 +2373,8 @@ var yyTok2 = [...]uint8{ 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 94, 95, 100, 102, 105, 106, 107, - 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, + 89, 90, 91, 92, 95, 96, 101, 103, 106, 107, + 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, @@ -2387,7 +2388,7 @@ var yyTok2 = [...]uint8{ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, + 249, 250, 251, } var yyTok3 = [...]int8{ @@ -2733,29 +2734,29 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:302 +//line sql.y:303 { setParseTree(yylex, yyDollar[1].statement) } case 2: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:307 +//line sql.y:308 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:308 +//line sql.y:309 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:312 +//line sql.y:313 { yyVAL.statement = yyDollar[1].selStmt } case 22: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:335 +//line sql.y:336 { sel := yyDollar[1].selStmt.(*Select) sel.OrderBy = yyDollar[2].orderBy @@ -2765,55 +2766,55 @@ yydefault: } case 23: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:343 +//line sql.y:344 { yyVAL.selStmt = &Union{Type: yyDollar[2].str, Left: yyDollar[1].selStmt, Right: yyDollar[3].selStmt, OrderBy: yyDollar[4].orderBy, Limit: yyDollar[5].limit, Lock: yyDollar[6].str} } case 24: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:347 +//line sql.y:348 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, SelectExprs: SelectExprs{Nextval{Expr: yyDollar[5].expr}}, From: TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}} } case 25: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:353 +//line sql.y:354 { yyVAL.statement = &Stream{Comments: Comments(yyDollar[2].bytes2), SelectExpr: yyDollar[3].selectExpr, Table: yyDollar[5].tableName} } case 26: yyDollar = yyS[yypt-10 : yypt+1] -//line sql.y:360 +//line sql.y:361 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs, From: yyDollar[7].tableExprs, Where: NewWhere(WhereStr, yyDollar[8].expr), GroupBy: GroupBy(yyDollar[9].exprs), Having: NewWhere(HavingStr, yyDollar[10].expr)} } case 27: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:366 +//line sql.y:367 { yyVAL.selStmt = yyDollar[1].selStmt } case 28: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:370 +//line sql.y:371 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 29: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:376 +//line sql.y:377 { yyVAL.selStmt = yyDollar[1].selStmt } case 30: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:380 +//line sql.y:381 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 31: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:387 +//line sql.y:388 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].ins @@ -2827,7 +2828,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:399 +//line sql.y:400 { cols := make(Columns, 0, len(yyDollar[7].updateExprs)) vals := make(ValTuple, 0, len(yyDollar[8].updateExprs)) @@ -2839,193 +2840,193 @@ yydefault: } case 33: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:411 +//line sql.y:412 { yyVAL.str = InsertStr } case 34: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:415 +//line sql.y:416 { yyVAL.str = ReplaceStr } case 35: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:421 +//line sql.y:422 { yyVAL.statement = &Update{Comments: Comments(yyDollar[2].bytes2), TableExprs: yyDollar[3].tableExprs, Exprs: yyDollar[5].updateExprs, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } case 36: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:427 +//line sql.y:428 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[4].tableName}}, Partitions: yyDollar[5].partitions, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } case 37: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:431 +//line sql.y:432 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[4].tableNames, TableExprs: yyDollar[6].tableExprs, Where: NewWhere(WhereStr, yyDollar[7].expr)} } case 38: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:435 +//line sql.y:436 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[3].tableNames, TableExprs: yyDollar[5].tableExprs, Where: NewWhere(WhereStr, yyDollar[6].expr)} } case 39: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:440 +//line sql.y:441 { } case 40: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:441 +//line sql.y:442 { } case 41: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:445 +//line sql.y:446 { yyVAL.tableNames = TableNames{yyDollar[1].tableName} } case 42: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:449 +//line sql.y:450 { yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) } case 43: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:454 +//line sql.y:455 { yyVAL.partitions = nil } case 44: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:458 +//line sql.y:459 { yyVAL.partitions = yyDollar[3].partitions } case 45: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:464 +//line sql.y:465 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } case 46: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:468 +//line sql.y:469 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[4].setExprs} } case 47: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:472 +//line sql.y:473 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[5].setExprs} } case 48: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:476 +//line sql.y:477 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[4].setExprs} } case 49: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:482 +//line sql.y:483 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } case 50: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:486 +//line sql.y:487 { yyVAL.setExprs = append(yyVAL.setExprs, yyDollar[3].setExpr) } case 51: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:492 +//line sql.y:493 { yyVAL.setExpr = yyDollar[3].setExpr } case 52: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:496 +//line sql.y:497 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("0"))} } case 53: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:500 +//line sql.y:501 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("1"))} } case 54: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:506 +//line sql.y:507 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("repeatable read"))} } case 55: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:510 +//line sql.y:511 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read committed"))} } case 56: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:514 +//line sql.y:515 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read uncommitted"))} } case 57: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:518 +//line sql.y:519 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("serializable"))} } case 58: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:524 +//line sql.y:525 { yyVAL.str = SessionStr } case 59: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:528 +//line sql.y:529 { yyVAL.str = GlobalStr } case 60: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:534 +//line sql.y:535 { yyDollar[1].ddl.TableSpec = yyDollar[2].TableSpec yyVAL.statement = yyDollar[1].ddl } case 61: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:539 +//line sql.y:540 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[7].tableName, NewName: yyDollar[7].tableName} } case 62: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:544 +//line sql.y:545 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[3].tableName.ToViewName()} } case 63: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:548 +//line sql.y:549 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[5].tableName.ToViewName()} } case 64: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:552 +//line sql.y:553 { yyVAL.statement = &DDL{Action: CreateVindexStr, VindexSpec: &VindexSpec{ Name: yyDollar[3].colIdent, @@ -3035,102 +3036,102 @@ yydefault: } case 65: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:560 +//line sql.y:561 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } case 66: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:564 +//line sql.y:565 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } case 67: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:569 +//line sql.y:570 { yyVAL.colIdent = NewColIdent("") } case 68: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:573 +//line sql.y:574 { yyVAL.colIdent = yyDollar[2].colIdent } case 69: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:579 +//line sql.y:580 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 70: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:584 +//line sql.y:585 { var v []VindexParam yyVAL.vindexParams = v } case 71: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:589 +//line sql.y:590 { yyVAL.vindexParams = yyDollar[2].vindexParams } case 72: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:595 +//line sql.y:596 { yyVAL.vindexParams = make([]VindexParam, 0, 4) yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[1].vindexParam) } case 73: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:600 +//line sql.y:601 { yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[3].vindexParam) } case 74: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:606 +//line sql.y:607 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } case 75: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:612 +//line sql.y:613 { yyVAL.ddl = &DDL{Action: CreateStr, NewName: yyDollar[4].tableName} setDDL(yylex, yyVAL.ddl) } case 76: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:619 +//line sql.y:620 { yyVAL.TableSpec = yyDollar[2].TableSpec yyVAL.TableSpec.Options = yyDollar[4].str } case 77: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:626 +//line sql.y:627 { yyVAL.TableSpec = &TableSpec{} yyVAL.TableSpec.AddColumn(yyDollar[1].columnDefinition) } case 78: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:631 +//line sql.y:632 { yyVAL.TableSpec.AddColumn(yyDollar[3].columnDefinition) } case 79: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:635 +//line sql.y:636 { yyVAL.TableSpec.AddIndex(yyDollar[3].indexDefinition) } case 80: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:641 +//line sql.y:642 { yyDollar[2].columnType.NotNull = yyDollar[3].boolVal yyDollar[2].columnType.Default = yyDollar[4].optVal @@ -3142,7 +3143,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:652 +//line sql.y:653 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].boolVal @@ -3150,62 +3151,62 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:663 +//line sql.y:664 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].optVal } case 86: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:668 +//line sql.y:669 { yyVAL.columnType = yyDollar[1].columnType } case 87: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:674 +//line sql.y:675 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 88: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:678 +//line sql.y:679 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 89: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:682 +//line sql.y:683 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 90: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:686 +//line sql.y:687 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 91: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:690 +//line sql.y:691 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 92: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:694 +//line sql.y:695 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 93: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:698 +//line sql.y:699 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 94: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:704 +//line sql.y:705 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3213,7 +3214,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:710 +//line sql.y:711 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3221,7 +3222,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:716 +//line sql.y:717 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3229,7 +3230,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:722 +//line sql.y:723 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3237,7 +3238,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:728 +//line sql.y:729 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3245,206 +3246,206 @@ yydefault: } case 99: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:736 +//line sql.y:737 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 100: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:740 +//line sql.y:741 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 101: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:744 +//line sql.y:745 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 102: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:748 +//line sql.y:749 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 103: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:752 +//line sql.y:753 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 104: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:758 +//line sql.y:759 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 105: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:762 +//line sql.y:763 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 106: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:766 +//line sql.y:767 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 107: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:770 +//line sql.y:771 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:774 +//line sql.y:775 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 109: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:778 +//line sql.y:779 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 110: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:782 +//line sql.y:783 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:786 +//line sql.y:787 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 112: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:790 +//line sql.y:791 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 113: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:794 +//line sql.y:795 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 114: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:798 +//line sql.y:799 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:802 +//line sql.y:803 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 116: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:806 +//line sql.y:807 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 117: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:810 +//line sql.y:811 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 118: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:815 +//line sql.y:816 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 119: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:821 +//line sql.y:822 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 120: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:825 +//line sql.y:826 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 121: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:829 +//line sql.y:830 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 122: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:833 +//line sql.y:834 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 123: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:837 +//line sql.y:838 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 124: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:841 +//line sql.y:842 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:845 +//line sql.y:846 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 126: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:849 +//line sql.y:850 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 127: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:855 +//line sql.y:856 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, "'"+string(yyDollar[1].bytes)+"'") } case 128: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:860 +//line sql.y:861 { yyVAL.strs = append(yyDollar[1].strs, "'"+string(yyDollar[3].bytes)+"'") } case 129: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:865 +//line sql.y:866 { yyVAL.optVal = nil } case 130: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:869 +//line sql.y:870 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 131: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:874 +//line sql.y:875 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 132: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:878 +//line sql.y:879 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -3453,13 +3454,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:886 +//line sql.y:887 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 134: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:890 +//line sql.y:891 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -3467,7 +3468,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:896 +//line sql.y:897 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -3476,374 +3477,374 @@ yydefault: } case 136: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:904 +//line sql.y:905 { yyVAL.boolVal = BoolVal(false) } case 137: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:908 +//line sql.y:909 { yyVAL.boolVal = BoolVal(true) } case 138: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:913 +//line sql.y:914 { yyVAL.boolVal = BoolVal(false) } case 139: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:917 +//line sql.y:918 { yyVAL.boolVal = BoolVal(true) } case 140: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:923 +//line sql.y:924 { yyVAL.boolVal = BoolVal(false) } case 141: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:927 +//line sql.y:928 { yyVAL.boolVal = BoolVal(false) } case 142: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:931 +//line sql.y:932 { yyVAL.boolVal = BoolVal(true) } case 143: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:936 +//line sql.y:937 { yyVAL.optVal = nil } case 144: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:940 +//line sql.y:941 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 145: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:944 +//line sql.y:945 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 146: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:948 +//line sql.y:949 { yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) } case 147: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:952 +//line sql.y:953 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } case 148: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:956 +//line sql.y:957 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } case 149: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:960 +//line sql.y:961 { yyVAL.optVal = NewBitVal(yyDollar[2].bytes) } case 150: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:965 +//line sql.y:966 { yyVAL.optVal = nil } case 151: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:969 +//line sql.y:970 { yyVAL.optVal = NewValArg(yyDollar[3].bytes) } case 152: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:974 +//line sql.y:975 { yyVAL.boolVal = BoolVal(false) } case 153: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:978 +//line sql.y:979 { yyVAL.boolVal = BoolVal(true) } case 154: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:983 +//line sql.y:984 { yyVAL.str = "" } case 155: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:987 +//line sql.y:988 { yyVAL.str = string(yyDollar[3].bytes) } case 156: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:991 +//line sql.y:992 { yyVAL.str = string(yyDollar[3].bytes) } case 157: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:996 +//line sql.y:997 { yyVAL.str = "" } case 158: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1000 +//line sql.y:1001 { yyVAL.str = string(yyDollar[2].bytes) } case 159: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1005 +//line sql.y:1006 { yyVAL.colKeyOpt = colKeyNone } case 160: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1009 +//line sql.y:1010 { yyVAL.colKeyOpt = colKeyPrimary } case 161: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1013 +//line sql.y:1014 { yyVAL.colKeyOpt = colKey } case 162: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1017 +//line sql.y:1018 { yyVAL.colKeyOpt = colKeyUniqueKey } case 163: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1021 +//line sql.y:1022 { yyVAL.colKeyOpt = colKeyUnique } case 164: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1026 +//line sql.y:1027 { yyVAL.optVal = nil } case 165: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1030 +//line sql.y:1031 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 166: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1036 +//line sql.y:1037 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns, Options: yyDollar[5].indexOptions} } case 167: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1040 +//line sql.y:1041 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns} } case 168: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1046 +//line sql.y:1047 { yyVAL.indexOptions = []*IndexOption{yyDollar[1].indexOption} } case 169: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1050 +//line sql.y:1051 { yyVAL.indexOptions = append(yyVAL.indexOptions, yyDollar[2].indexOption) } case 170: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1056 +//line sql.y:1057 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Using: string(yyDollar[2].bytes)} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1060 +//line sql.y:1061 { // should not be string yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewIntVal(yyDollar[3].bytes)} } case 172: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1065 +//line sql.y:1066 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewStrVal(yyDollar[2].bytes)} } case 173: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1071 +//line sql.y:1072 { yyVAL.str = "" } case 174: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1075 +//line sql.y:1076 { yyVAL.str = string(yyDollar[1].bytes) } case 175: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1081 +//line sql.y:1082 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } case 176: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1085 +//line sql.y:1086 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Spatial: true, Unique: false} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1089 +//line sql.y:1090 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Unique: true} } case 178: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1093 +//line sql.y:1094 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: true} } case 179: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1097 +//line sql.y:1098 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: false} } case 180: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1103 +//line sql.y:1104 { yyVAL.str = string(yyDollar[1].bytes) } case 181: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1107 +//line sql.y:1108 { yyVAL.str = string(yyDollar[1].bytes) } case 182: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1113 +//line sql.y:1114 { yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } case 183: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1117 +//line sql.y:1118 { yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1123 +//line sql.y:1124 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].optVal} } case 185: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1128 +//line sql.y:1129 { yyVAL.str = "" } case 186: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1132 +//line sql.y:1133 { yyVAL.str = " " + string(yyDollar[1].str) } case 187: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1136 +//line sql.y:1137 { yyVAL.str = string(yyDollar[1].str) + ", " + string(yyDollar[3].str) } case 188: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1144 +//line sql.y:1145 { yyVAL.str = yyDollar[1].str } case 189: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1148 +//line sql.y:1149 { yyVAL.str = yyDollar[1].str + " " + yyDollar[2].str } case 190: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1152 +//line sql.y:1153 { yyVAL.str = yyDollar[1].str + "=" + yyDollar[3].str } case 191: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1158 +//line sql.y:1159 { yyVAL.str = yyDollar[1].colIdent.String() } case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1162 +//line sql.y:1163 { yyVAL.str = "'" + string(yyDollar[1].bytes) + "'" } case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1166 +//line sql.y:1167 { yyVAL.str = string(yyDollar[1].bytes) } case 194: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1172 +//line sql.y:1173 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 195: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1176 +//line sql.y:1177 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 196: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1180 +//line sql.y:1181 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 197: yyDollar = yyS[yypt-12 : yypt+1] -//line sql.y:1184 +//line sql.y:1185 { yyVAL.statement = &DDL{ Action: AddColVindexStr, @@ -3858,7 +3859,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1197 +//line sql.y:1198 { yyVAL.statement = &DDL{ Action: DropColVindexStr, @@ -3870,69 +3871,69 @@ yydefault: } case 199: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1207 +//line sql.y:1208 { // Change this to a rename statement yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} } case 200: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1212 +//line sql.y:1213 { // Rename an index can just be an alter yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 201: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1217 +//line sql.y:1218 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName(), NewName: yyDollar[3].tableName.ToViewName()} } case 202: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1221 +//line sql.y:1222 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, PartitionSpec: yyDollar[5].partSpec} } case 214: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1240 +//line sql.y:1241 { yyVAL.partSpec = &PartitionSpec{Action: ReorganizeStr, Name: yyDollar[3].colIdent, Definitions: yyDollar[6].partDefs} } case 215: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1246 +//line sql.y:1247 { yyVAL.partDefs = []*PartitionDefinition{yyDollar[1].partDef} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1250 +//line sql.y:1251 { yyVAL.partDefs = append(yyDollar[1].partDefs, yyDollar[3].partDef) } case 217: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:1256 +//line sql.y:1257 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].expr} } case 218: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:1260 +//line sql.y:1261 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } case 219: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1266 +//line sql.y:1267 { yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} } case 220: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1272 +//line sql.y:1273 { var exists bool if yyDollar[3].byt != 0 { @@ -3942,14 +3943,14 @@ yydefault: } case 221: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1280 +//line sql.y:1281 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} } case 222: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1285 +//line sql.y:1286 { var exists bool if yyDollar[3].byt != 0 { @@ -3959,121 +3960,121 @@ yydefault: } case 223: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1293 +//line sql.y:1294 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } case 224: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1297 +//line sql.y:1298 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } case 225: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1303 +//line sql.y:1304 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} } case 226: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1307 +//line sql.y:1308 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} } case 227: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1312 +//line sql.y:1313 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } case 228: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1318 +//line sql.y:1319 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 229: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1322 +//line sql.y:1323 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 230: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1326 +//line sql.y:1327 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 231: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1331 +//line sql.y:1332 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 232: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1335 +//line sql.y:1336 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 233: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1339 +//line sql.y:1340 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 234: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1343 +//line sql.y:1344 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 235: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1347 +//line sql.y:1348 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 236: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1351 +//line sql.y:1352 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 237: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1355 +//line sql.y:1356 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 238: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1359 +//line sql.y:1360 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 239: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1363 +//line sql.y:1364 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 240: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1367 +//line sql.y:1368 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 241: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1371 +//line sql.y:1372 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 242: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1375 +//line sql.y:1376 { // this is ugly, but I couldn't find a better way for now if yyDollar[4].str == "processlist" { @@ -4085,596 +4086,596 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1385 +//line sql.y:1386 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 244: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1389 +//line sql.y:1390 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 245: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1393 +//line sql.y:1394 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName} } case 246: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1397 +//line sql.y:1398 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 247: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1401 +//line sql.y:1402 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 248: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1405 +//line sql.y:1406 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 249: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1409 +//line sql.y:1410 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 250: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1419 +//line sql.y:1420 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 251: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1425 +//line sql.y:1426 { yyVAL.str = string(yyDollar[1].bytes) } case 252: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1429 +//line sql.y:1430 { yyVAL.str = string(yyDollar[1].bytes) } case 253: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1435 +//line sql.y:1436 { yyVAL.str = "" } case 254: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1439 +//line sql.y:1440 { yyVAL.str = "extended " } case 255: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1445 +//line sql.y:1446 { yyVAL.str = "" } case 256: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1449 +//line sql.y:1450 { yyVAL.str = "full " } case 257: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1455 +//line sql.y:1456 { yyVAL.str = "" } case 258: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1459 +//line sql.y:1460 { yyVAL.str = yyDollar[2].tableIdent.v } case 259: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1463 +//line sql.y:1464 { yyVAL.str = yyDollar[2].tableIdent.v } case 260: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1469 +//line sql.y:1470 { yyVAL.showFilter = nil } case 261: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1473 +//line sql.y:1474 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } case 262: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1477 +//line sql.y:1478 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } case 263: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1483 +//line sql.y:1484 { yyVAL.str = "" } case 264: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1487 +//line sql.y:1488 { yyVAL.str = SessionStr } case 265: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1491 +//line sql.y:1492 { yyVAL.str = GlobalStr } case 266: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1497 +//line sql.y:1498 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } case 267: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1501 +//line sql.y:1502 { yyVAL.statement = &Use{DBName: TableIdent{v: ""}} } case 268: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1507 +//line sql.y:1508 { yyVAL.statement = &Begin{} } case 269: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1511 +//line sql.y:1512 { yyVAL.statement = &Begin{} } case 270: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1517 +//line sql.y:1518 { yyVAL.statement = &Commit{} } case 271: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1523 +//line sql.y:1524 { yyVAL.statement = &Rollback{} } case 272: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1529 +//line sql.y:1530 { yyVAL.statement = &OtherRead{} } case 273: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1533 +//line sql.y:1534 { yyVAL.statement = &OtherRead{} } case 274: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1537 +//line sql.y:1538 { yyVAL.statement = &OtherRead{} } case 275: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1541 +//line sql.y:1542 { yyVAL.statement = &OtherAdmin{} } case 276: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1545 +//line sql.y:1546 { yyVAL.statement = &OtherAdmin{} } case 277: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1550 +//line sql.y:1551 { setAllowComments(yylex, true) } case 278: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1554 +//line sql.y:1555 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } case 279: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1560 +//line sql.y:1561 { yyVAL.bytes2 = nil } case 280: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1564 +//line sql.y:1565 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } case 281: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1570 +//line sql.y:1571 { yyVAL.str = UnionStr } case 282: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1574 +//line sql.y:1575 { yyVAL.str = UnionAllStr } case 283: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1578 +//line sql.y:1579 { yyVAL.str = UnionDistinctStr } case 284: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1583 +//line sql.y:1584 { yyVAL.str = "" } case 285: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1587 +//line sql.y:1588 { yyVAL.str = SQLNoCacheStr } case 286: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1591 +//line sql.y:1592 { yyVAL.str = SQLCacheStr } case 287: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1596 +//line sql.y:1597 { yyVAL.str = "" } case 288: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1600 +//line sql.y:1601 { yyVAL.str = DistinctStr } case 289: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1605 +//line sql.y:1606 { yyVAL.str = "" } case 290: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1609 +//line sql.y:1610 { yyVAL.str = StraightJoinHint } case 291: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1614 +//line sql.y:1615 { yyVAL.selectExprs = nil } case 292: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1618 +//line sql.y:1619 { yyVAL.selectExprs = yyDollar[1].selectExprs } case 293: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1624 +//line sql.y:1625 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } case 294: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1628 +//line sql.y:1629 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } case 295: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1634 +//line sql.y:1635 { yyVAL.selectExpr = &StarExpr{} } case 296: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1638 +//line sql.y:1639 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } case 297: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1642 +//line sql.y:1643 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } case 298: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1646 +//line sql.y:1647 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } case 299: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1651 +//line sql.y:1652 { yyVAL.colIdent = ColIdent{} } case 300: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1655 +//line sql.y:1656 { yyVAL.colIdent = yyDollar[1].colIdent } case 301: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1659 +//line sql.y:1660 { yyVAL.colIdent = yyDollar[2].colIdent } case 303: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1666 +//line sql.y:1667 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 304: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1671 +//line sql.y:1672 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } case 305: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1675 +//line sql.y:1676 { yyVAL.tableExprs = yyDollar[2].tableExprs } case 306: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1681 +//line sql.y:1682 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } case 307: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1685 +//line sql.y:1686 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } case 310: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1695 +//line sql.y:1696 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } case 311: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1699 +//line sql.y:1700 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } case 312: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1703 +//line sql.y:1704 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } case 313: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1709 +//line sql.y:1710 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } case 314: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1713 +//line sql.y:1714 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} } case 315: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1719 +//line sql.y:1720 { yyVAL.columns = Columns{yyDollar[1].colIdent} } case 316: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1723 +//line sql.y:1724 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 317: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1729 +//line sql.y:1730 { yyVAL.partitions = Partitions{yyDollar[1].colIdent} } case 318: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1733 +//line sql.y:1734 { yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } case 319: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1746 +//line sql.y:1747 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 320: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1750 +//line sql.y:1751 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 321: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1754 +//line sql.y:1755 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 322: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1758 +//line sql.y:1759 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } case 323: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1764 +//line sql.y:1765 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 324: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1766 +//line sql.y:1767 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } case 325: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1770 +//line sql.y:1771 { yyVAL.joinCondition = JoinCondition{} } case 326: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1772 +//line sql.y:1773 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 327: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1776 +//line sql.y:1777 { yyVAL.joinCondition = JoinCondition{} } case 328: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1778 +//line sql.y:1779 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 329: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1781 +//line sql.y:1782 { yyVAL.empty = struct{}{} } case 330: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1783 +//line sql.y:1784 { yyVAL.empty = struct{}{} } case 331: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1786 +//line sql.y:1787 { yyVAL.tableIdent = NewTableIdent("") } case 332: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1790 +//line sql.y:1791 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 333: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1794 +//line sql.y:1795 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 335: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1801 +//line sql.y:1802 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 336: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1807 +//line sql.y:1808 { yyVAL.str = JoinStr } case 337: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1811 +//line sql.y:1812 { yyVAL.str = JoinStr } case 338: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1815 +//line sql.y:1816 { yyVAL.str = JoinStr } case 339: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1821 +//line sql.y:1822 { yyVAL.str = StraightJoinStr } case 340: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1827 +//line sql.y:1828 { yyVAL.str = LeftJoinStr } case 341: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1831 +//line sql.y:1832 { yyVAL.str = LeftJoinStr } case 342: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1835 +//line sql.y:1836 { yyVAL.str = RightJoinStr } case 343: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1839 +//line sql.y:1840 { yyVAL.str = RightJoinStr } case 344: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1845 +//line sql.y:1846 { yyVAL.str = NaturalJoinStr } case 345: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1849 +//line sql.y:1850 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -4684,463 +4685,475 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1859 +//line sql.y:1860 { yyVAL.tableName = yyDollar[2].tableName } case 347: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1863 +//line sql.y:1864 { yyVAL.tableName = yyDollar[1].tableName } case 348: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1869 +//line sql.y:1870 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 349: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1873 +//line sql.y:1874 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 350: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1878 +//line sql.y:1879 { yyVAL.indexHints = nil } case 351: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1882 +//line sql.y:1883 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } case 352: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1886 +//line sql.y:1887 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } case 353: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1890 +//line sql.y:1891 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } case 354: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1895 +//line sql.y:1896 { yyVAL.expr = nil } case 355: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1899 +//line sql.y:1900 { yyVAL.expr = yyDollar[2].expr } case 356: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1905 +//line sql.y:1906 { yyVAL.expr = yyDollar[1].expr } case 357: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1909 +//line sql.y:1910 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 358: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1913 +//line sql.y:1914 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 359: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1917 +//line sql.y:1918 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } case 360: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1921 +//line sql.y:1922 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } case 361: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1925 +//line sql.y:1926 { yyVAL.expr = yyDollar[1].expr } case 362: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1929 +//line sql.y:1930 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } case 363: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1935 +//line sql.y:1936 { yyVAL.str = "" } case 364: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1939 +//line sql.y:1940 { yyVAL.str = string(yyDollar[2].bytes) } case 365: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1945 +//line sql.y:1946 { yyVAL.boolVal = BoolVal(true) } case 366: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1949 +//line sql.y:1950 { yyVAL.boolVal = BoolVal(false) } case 367: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1955 +//line sql.y:1956 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } case 368: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1959 +//line sql.y:1960 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } case 369: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1963 +//line sql.y:1964 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } case 370: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1967 +//line sql.y:1968 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } case 371: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1971 +//line sql.y:1972 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } case 372: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1975 +//line sql.y:1976 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } case 373: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1979 +//line sql.y:1980 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } case 374: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1983 +//line sql.y:1984 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: StartsWithStr, Right: yyDollar[3].expr} } case 375: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1987 +//line sql.y:1988 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotStartsWithStr, Right: yyDollar[4].expr} } case 376: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1991 +//line sql.y:1992 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } case 377: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1995 +//line sql.y:1996 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } case 378: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1999 +//line sql.y:2000 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } case 379: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:2004 + { + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: ContainsStr, Right: yyDollar[3].expr} + } + case 380: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:2008 + { + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotContainsStr, Right: yyDollar[4].expr} + } + case 381: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2005 +//line sql.y:2014 { yyVAL.str = IsNullStr } - case 380: + case 382: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2009 +//line sql.y:2018 { yyVAL.str = IsNotNullStr } - case 381: + case 383: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2013 +//line sql.y:2022 { yyVAL.str = IsTrueStr } - case 382: + case 384: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2017 +//line sql.y:2026 { yyVAL.str = IsNotTrueStr } - case 383: + case 385: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2021 +//line sql.y:2030 { yyVAL.str = IsFalseStr } - case 384: + case 386: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2025 +//line sql.y:2034 { yyVAL.str = IsNotFalseStr } - case 385: + case 387: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2031 +//line sql.y:2040 { yyVAL.str = EqualStr } - case 386: + case 388: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2035 +//line sql.y:2044 { yyVAL.str = LessThanStr } - case 387: + case 389: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2039 +//line sql.y:2048 { yyVAL.str = GreaterThanStr } - case 388: + case 390: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2043 +//line sql.y:2052 { yyVAL.str = LessEqualStr } - case 389: + case 391: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2047 +//line sql.y:2056 { yyVAL.str = GreaterEqualStr } - case 390: + case 392: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2051 +//line sql.y:2060 { yyVAL.str = NotEqualStr } - case 391: + case 393: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2055 +//line sql.y:2064 { yyVAL.str = NullSafeEqualStr } - case 392: + case 394: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2060 +//line sql.y:2069 { yyVAL.expr = nil } - case 393: + case 395: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2064 +//line sql.y:2073 { yyVAL.expr = yyDollar[2].expr } - case 394: + case 396: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2070 +//line sql.y:2079 { yyVAL.colTuple = yyDollar[1].valTuple } - case 395: + case 397: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2074 +//line sql.y:2083 { yyVAL.colTuple = yyDollar[1].subquery } - case 396: + case 398: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2078 +//line sql.y:2087 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } - case 397: + case 399: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2084 +//line sql.y:2093 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } - case 398: + case 400: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2090 +//line sql.y:2099 { yyVAL.exprs = Exprs{yyDollar[1].expr} } - case 399: + case 401: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2094 +//line sql.y:2103 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } - case 400: + case 402: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2100 +//line sql.y:2109 { yyVAL.expr = yyDollar[1].expr } - case 401: + case 403: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2104 +//line sql.y:2113 { yyVAL.expr = yyDollar[1].boolVal } - case 402: + case 404: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2108 +//line sql.y:2117 { yyVAL.expr = yyDollar[1].colName } - case 403: + case 405: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2112 +//line sql.y:2121 { yyVAL.expr = yyDollar[1].expr } - case 404: + case 406: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2116 +//line sql.y:2125 { yyVAL.expr = yyDollar[1].subquery } - case 405: + case 407: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2120 +//line sql.y:2129 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } - case 406: + case 408: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2124 +//line sql.y:2133 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } - case 407: + case 409: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2128 +//line sql.y:2137 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } - case 408: + case 410: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2132 +//line sql.y:2141 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } - case 409: + case 411: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2136 +//line sql.y:2145 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } - case 410: + case 412: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2140 +//line sql.y:2149 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } - case 411: + case 413: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2144 +//line sql.y:2153 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } - case 412: + case 414: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2148 +//line sql.y:2157 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } - case 413: + case 415: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2152 +//line sql.y:2161 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 414: + case 416: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2156 +//line sql.y:2165 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 415: + case 417: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2160 +//line sql.y:2169 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } - case 416: + case 418: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2164 +//line sql.y:2173 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } - case 417: + case 419: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2168 +//line sql.y:2177 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } - case 418: + case 420: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2172 +//line sql.y:2181 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } - case 419: + case 421: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2176 +//line sql.y:2185 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } - case 420: + case 422: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2180 +//line sql.y:2189 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } - case 421: + case 423: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2184 +//line sql.y:2193 { yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} } - case 422: + case 424: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2188 +//line sql.y:2197 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -5148,9 +5161,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 423: + case 425: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2196 +//line sql.y:2205 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -5164,21 +5177,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 424: + case 426: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2210 +//line sql.y:2219 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 425: + case 427: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2214 +//line sql.y:2223 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 426: + case 428: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2218 +//line sql.y:2227 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -5186,431 +5199,431 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} } - case 431: + case 433: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2236 +//line sql.y:2245 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 432: + case 434: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2240 +//line sql.y:2249 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 433: + case 435: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2244 +//line sql.y:2253 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 434: + case 436: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2254 +//line sql.y:2263 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } - case 435: + case 437: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2258 +//line sql.y:2267 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } - case 436: + case 438: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2262 +//line sql.y:2271 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 437: + case 439: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2266 +//line sql.y:2275 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 438: + case 440: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2270 +//line sql.y:2279 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } - case 439: + case 441: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2274 +//line sql.y:2283 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } - case 440: + case 442: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2278 +//line sql.y:2287 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 441: + case 443: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2282 +//line sql.y:2291 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 442: + case 444: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2286 +//line sql.y:2295 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } - case 443: + case 445: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2290 +//line sql.y:2299 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 444: + case 446: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2294 +//line sql.y:2303 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 445: + case 447: yyDollar = yyS[yypt-9 : yypt+1] -//line sql.y:2298 +//line sql.y:2307 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } - case 446: + case 448: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2302 +//line sql.y:2311 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } - case 447: + case 449: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2306 +//line sql.y:2315 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } - case 448: + case 450: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2310 +//line sql.y:2319 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } - case 449: + case 451: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2320 +//line sql.y:2329 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } - case 450: + case 452: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2324 +//line sql.y:2333 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } - case 451: + case 453: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2328 +//line sql.y:2337 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } - case 452: + case 454: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2332 +//line sql.y:2341 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } - case 453: + case 455: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2337 +//line sql.y:2346 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } - case 454: + case 456: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2342 +//line sql.y:2351 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } - case 455: + case 457: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2347 +//line sql.y:2356 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 456: + case 458: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2352 +//line sql.y:2361 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } - case 459: + case 461: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2366 +//line sql.y:2375 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } - case 460: + case 462: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2370 +//line sql.y:2379 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } - case 461: + case 463: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2374 +//line sql.y:2383 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } - case 462: + case 464: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2378 +//line sql.y:2387 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } - case 463: + case 465: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2384 +//line sql.y:2393 { yyVAL.str = "" } - case 464: + case 466: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2388 +//line sql.y:2397 { yyVAL.str = BooleanModeStr } - case 465: + case 467: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2392 +//line sql.y:2401 { yyVAL.str = NaturalLanguageModeStr } - case 466: + case 468: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2396 +//line sql.y:2405 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } - case 467: + case 469: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2400 +//line sql.y:2409 { yyVAL.str = QueryExpansionStr } - case 468: + case 470: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2406 +//line sql.y:2415 { yyVAL.str = string(yyDollar[1].bytes) } - case 469: + case 471: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2410 +//line sql.y:2419 { yyVAL.str = string(yyDollar[1].bytes) } - case 470: + case 472: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2416 +//line sql.y:2425 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 471: + case 473: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2420 +//line sql.y:2429 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } - case 472: + case 474: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2424 +//line sql.y:2433 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } - case 473: + case 475: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2428 +//line sql.y:2437 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 474: + case 476: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2432 +//line sql.y:2441 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 475: + case 477: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2436 +//line sql.y:2445 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 476: + case 478: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2442 +//line sql.y:2451 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 477: + case 479: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2446 +//line sql.y:2455 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 478: + case 480: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2450 +//line sql.y:2459 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 479: + case 481: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2454 +//line sql.y:2463 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 480: + case 482: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2458 +//line sql.y:2467 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 481: + case 483: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2462 +//line sql.y:2471 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 482: + case 484: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2466 +//line sql.y:2475 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 483: + case 485: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2471 +//line sql.y:2480 { yyVAL.expr = nil } - case 484: + case 486: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2475 +//line sql.y:2484 { yyVAL.expr = yyDollar[1].expr } - case 485: + case 487: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2480 +//line sql.y:2489 { yyVAL.str = string("") } - case 486: + case 488: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2484 +//line sql.y:2493 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 487: + case 489: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2490 +//line sql.y:2499 { yyVAL.whens = []*When{yyDollar[1].when} } - case 488: + case 490: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2494 +//line sql.y:2503 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 489: + case 491: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2500 +//line sql.y:2509 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 490: + case 492: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2505 +//line sql.y:2514 { yyVAL.expr = nil } - case 491: + case 493: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2509 +//line sql.y:2518 { yyVAL.expr = yyDollar[2].expr } - case 492: + case 494: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2515 +//line sql.y:2524 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } - case 493: + case 495: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2519 +//line sql.y:2528 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } - case 494: + case 496: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2523 +//line sql.y:2532 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } - case 495: + case 497: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2529 +//line sql.y:2538 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 496: + case 498: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2533 +//line sql.y:2542 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } - case 497: + case 499: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2537 +//line sql.y:2546 { yyVAL.expr = NewBitVal(yyDollar[1].bytes) } - case 498: + case 500: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2541 +//line sql.y:2550 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 499: + case 501: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2545 +//line sql.y:2554 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } - case 500: + case 502: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2549 +//line sql.y:2558 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } - case 501: + case 503: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2553 +//line sql.y:2562 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 502: + case 504: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2557 +//line sql.y:2566 { yyVAL.expr = &NullVal{} } - case 503: + case 505: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2563 +//line sql.y:2572 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5619,239 +5632,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 504: + case 506: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2572 +//line sql.y:2581 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 505: + case 507: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2576 +//line sql.y:2585 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 506: + case 508: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2581 +//line sql.y:2590 { yyVAL.exprs = nil } - case 507: + case 509: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2585 +//line sql.y:2594 { yyVAL.exprs = yyDollar[3].exprs } - case 508: + case 510: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2590 +//line sql.y:2599 { yyVAL.expr = nil } - case 509: + case 511: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2594 +//line sql.y:2603 { yyVAL.expr = yyDollar[2].expr } - case 510: + case 512: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2599 +//line sql.y:2608 { yyVAL.orderBy = nil } - case 511: + case 513: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2603 +//line sql.y:2612 { yyVAL.orderBy = yyDollar[3].orderBy } - case 512: + case 514: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2609 +//line sql.y:2618 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 513: + case 515: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2613 +//line sql.y:2622 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 514: + case 516: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2619 +//line sql.y:2628 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 515: + case 517: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2624 +//line sql.y:2633 { yyVAL.str = AscScr } - case 516: + case 518: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2628 +//line sql.y:2637 { yyVAL.str = AscScr } - case 517: + case 519: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2632 +//line sql.y:2641 { yyVAL.str = DescScr } - case 518: + case 520: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2637 +//line sql.y:2646 { yyVAL.limit = nil } - case 519: + case 521: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2641 +//line sql.y:2650 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 520: + case 522: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2645 +//line sql.y:2654 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 521: + case 523: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2649 +//line sql.y:2658 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 522: + case 524: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2654 +//line sql.y:2663 { yyVAL.str = "" } - case 523: + case 525: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2658 +//line sql.y:2667 { yyVAL.str = ForUpdateStr } - case 524: + case 526: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2662 +//line sql.y:2671 { yyVAL.str = ShareModeStr } - case 525: + case 527: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2675 +//line sql.y:2684 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 526: + case 528: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2679 +//line sql.y:2688 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 527: + case 529: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2683 +//line sql.y:2692 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 528: + case 530: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2688 +//line sql.y:2697 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 529: + case 531: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2692 +//line sql.y:2701 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 530: + case 532: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2696 +//line sql.y:2705 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 531: + case 533: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2703 +//line sql.y:2712 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 532: + case 534: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2707 +//line sql.y:2716 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 533: + case 535: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2711 +//line sql.y:2720 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 534: + case 536: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2715 +//line sql.y:2724 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 535: + case 537: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2720 +//line sql.y:2729 { yyVAL.updateExprs = nil } - case 536: + case 538: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2724 +//line sql.y:2733 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 537: + case 539: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2730 +//line sql.y:2739 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 538: + case 540: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2734 +//line sql.y:2743 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 539: + case 541: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2740 +//line sql.y:2749 { yyVAL.valTuple = yyDollar[1].valTuple } - case 540: + case 542: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2744 +//line sql.y:2753 { yyVAL.valTuple = ValTuple{} } - case 541: + case 543: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2750 +//line sql.y:2759 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 542: + case 544: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2756 +//line sql.y:2765 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5859,306 +5872,306 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 543: + case 545: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2766 +//line sql.y:2775 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 544: + case 546: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2770 +//line sql.y:2779 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 545: + case 547: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2776 +//line sql.y:2785 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 546: + case 548: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2782 +//line sql.y:2791 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 547: + case 549: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2786 +//line sql.y:2795 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 548: + case 550: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2792 +//line sql.y:2801 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 549: + case 551: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2796 +//line sql.y:2805 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 550: + case 552: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2800 +//line sql.y:2809 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 552: + case 554: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2807 +//line sql.y:2816 { yyVAL.bytes = []byte("charset") } - case 554: + case 556: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2814 +//line sql.y:2823 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 555: + case 557: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2818 +//line sql.y:2827 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 556: + case 558: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2822 +//line sql.y:2831 { yyVAL.expr = &Default{} } - case 559: + case 561: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2831 +//line sql.y:2840 { yyVAL.byt = 0 } - case 560: + case 562: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2833 +//line sql.y:2842 { yyVAL.byt = 1 } - case 561: + case 563: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2836 +//line sql.y:2845 { yyVAL.empty = struct{}{} } - case 562: + case 564: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2838 +//line sql.y:2847 { yyVAL.empty = struct{}{} } - case 563: + case 565: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2841 +//line sql.y:2850 { yyVAL.str = "" } - case 564: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2843 - { - yyVAL.str = IgnoreStr - } - case 565: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2847 - { - yyVAL.empty = struct{}{} - } case 566: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2849 +//line sql.y:2852 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 567: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2851 +//line sql.y:2856 { yyVAL.empty = struct{}{} } case 568: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2853 +//line sql.y:2858 { yyVAL.empty = struct{}{} } case 569: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2855 +//line sql.y:2860 { yyVAL.empty = struct{}{} } case 570: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2857 +//line sql.y:2862 { yyVAL.empty = struct{}{} } case 571: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2859 +//line sql.y:2864 { yyVAL.empty = struct{}{} } case 572: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2861 +//line sql.y:2866 { yyVAL.empty = struct{}{} } case 573: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2863 +//line sql.y:2868 { yyVAL.empty = struct{}{} } case 574: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2865 +//line sql.y:2870 { yyVAL.empty = struct{}{} } case 575: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2868 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2872 { yyVAL.empty = struct{}{} } case 576: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2870 +//line sql.y:2874 { yyVAL.empty = struct{}{} } case 577: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2872 + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2877 { yyVAL.empty = struct{}{} } case 578: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2876 +//line sql.y:2879 { yyVAL.empty = struct{}{} } case 579: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2878 +//line sql.y:2881 { yyVAL.empty = struct{}{} } case 580: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2881 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2885 { yyVAL.empty = struct{}{} } case 581: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2883 +//line sql.y:2887 { yyVAL.empty = struct{}{} } case 582: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2885 + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2890 { yyVAL.empty = struct{}{} } case 583: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2892 + { + yyVAL.empty = struct{}{} + } + case 584: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2894 + { + yyVAL.empty = struct{}{} + } + case 585: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2888 +//line sql.y:2897 { yyVAL.colIdent = ColIdent{} } - case 584: + case 586: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2890 +//line sql.y:2899 { yyVAL.colIdent = yyDollar[2].colIdent } - case 585: + case 587: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2894 +//line sql.y:2903 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 586: + case 588: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2898 +//line sql.y:2907 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 588: + case 590: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2905 +//line sql.y:2914 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 589: + case 591: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2911 +//line sql.y:2920 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 590: + case 592: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2915 +//line sql.y:2924 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 592: + case 594: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2922 +//line sql.y:2931 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 784: + case 787: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3139 +//line sql.y:3149 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 785: + case 788: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3148 +//line sql.y:3158 { decNesting(yylex) } - case 786: + case 789: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3153 +//line sql.y:3163 { forceEOF(yylex) } - case 787: + case 790: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3158 +//line sql.y:3168 { forceEOF(yylex) } - case 788: + case 791: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3162 +//line sql.y:3172 { forceEOF(yylex) } - case 789: + case 792: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3166 +//line sql.y:3176 { forceEOF(yylex) } diff --git a/sql.y b/sql.y index 6fcc68d..5e5c311 100644 --- a/sql.y +++ b/sql.y @@ -134,6 +134,7 @@ func forceEOF(yylex interface{}) { %right NOT '!' %left BETWEEN CASE WHEN THEN ELSE END %left '=' '<' '>' LE GE NE NULL_SAFE_EQUAL IS LIKE REGEXP IN STARTS_WITH +%left CONTAINS %left '|' %left '&' %left SHIFT_LEFT SHIFT_RIGHT @@ -1999,6 +2000,14 @@ condition: { $$ = &ExistsExpr{Subquery: $2} } +| value_expression CONTAINS value_expression + { + $$ = &ComparisonExpr{Left: $1, Operator: ContainsStr, Right: $3} + } +| value_expression NOT CONTAINS value_expression + { + $$ = &ComparisonExpr{Left: $1, Operator: NotContainsStr, Right: $4} + } is_suffix: NULL @@ -3010,6 +3019,7 @@ reserved_keyword: | SHOW | STARTS_WITH | STRAIGHT_JOIN +| CONTAINS | TABLE | TABLES | THEN diff --git a/token.go b/token.go index 36d25f7..e05458f 100644 --- a/token.go +++ b/token.go @@ -126,6 +126,7 @@ var keywords = map[string]int{ "convert": CONVERT, "substr": SUBSTR, "substring": SUBSTRING, + "contains": CONTAINS, "create": CREATE, "cross": CROSS, "current_date": CURRENT_DATE,