diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index d111bbcd16f..0ce019c84e4 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -294,46 +294,47 @@ const VITESS_KEYSPACES = 57535 const VITESS_SHARDS = 57536 const VITESS_TABLETS = 57537 const VSCHEMA_TABLES = 57538 -const FULL = 57539 -const PROCESSLIST = 57540 -const COLUMNS = 57541 -const NAMES = 57542 -const CHARSET = 57543 -const GLOBAL = 57544 -const SESSION = 57545 -const ISOLATION = 57546 -const LEVEL = 57547 -const READ = 57548 -const WRITE = 57549 -const ONLY = 57550 -const REPEATABLE = 57551 -const COMMITTED = 57552 -const UNCOMMITTED = 57553 -const SERIALIZABLE = 57554 -const CURRENT_TIMESTAMP = 57555 -const DATABASE = 57556 -const CURRENT_DATE = 57557 -const CURRENT_TIME = 57558 -const LOCALTIME = 57559 -const LOCALTIMESTAMP = 57560 -const UTC_DATE = 57561 -const UTC_TIME = 57562 -const UTC_TIMESTAMP = 57563 -const REPLACE = 57564 -const CONVERT = 57565 -const CAST = 57566 -const SUBSTR = 57567 -const SUBSTRING = 57568 -const GROUP_CONCAT = 57569 -const SEPARATOR = 57570 -const MATCH = 57571 -const AGAINST = 57572 -const BOOLEAN = 57573 -const LANGUAGE = 57574 -const WITH = 57575 -const QUERY = 57576 -const EXPANSION = 57577 -const UNUSED = 57578 +const VITESS_TARGET = 57539 +const FULL = 57540 +const PROCESSLIST = 57541 +const COLUMNS = 57542 +const NAMES = 57543 +const CHARSET = 57544 +const GLOBAL = 57545 +const SESSION = 57546 +const ISOLATION = 57547 +const LEVEL = 57548 +const READ = 57549 +const WRITE = 57550 +const ONLY = 57551 +const REPEATABLE = 57552 +const COMMITTED = 57553 +const UNCOMMITTED = 57554 +const SERIALIZABLE = 57555 +const CURRENT_TIMESTAMP = 57556 +const DATABASE = 57557 +const CURRENT_DATE = 57558 +const CURRENT_TIME = 57559 +const LOCALTIME = 57560 +const LOCALTIMESTAMP = 57561 +const UTC_DATE = 57562 +const UTC_TIME = 57563 +const UTC_TIMESTAMP = 57564 +const REPLACE = 57565 +const CONVERT = 57566 +const CAST = 57567 +const SUBSTR = 57568 +const SUBSTRING = 57569 +const GROUP_CONCAT = 57570 +const SEPARATOR = 57571 +const MATCH = 57572 +const AGAINST = 57573 +const BOOLEAN = 57574 +const LANGUAGE = 57575 +const WITH = 57576 +const QUERY = 57577 +const EXPANSION = 57578 +const UNUSED = 57579 var yyToknames = [...]string{ "$end", @@ -549,6 +550,7 @@ var yyToknames = [...]string{ "VITESS_SHARDS", "VITESS_TABLETS", "VSCHEMA_TABLES", + "VITESS_TARGET", "FULL", "PROCESSLIST", "COLUMNS", @@ -606,1146 +608,1180 @@ var yyExca = [...]int{ 5, 28, -2, 4, -1, 36, - 153, 269, - 154, 269, - -2, 261, - -1, 246, - 111, 596, - -2, 592, - -1, 247, + 153, 270, + 154, 270, + -2, 262, + -1, 248, 111, 597, -2, 593, - -1, 317, - 81, 759, + -1, 249, + 111, 598, + -2, 594, + -1, 319, + 81, 760, -2, 59, - -1, 318, - 81, 719, + -1, 320, + 81, 720, -2, 60, - -1, 323, - 81, 701, - -2, 558, -1, 325, - 81, 740, - -2, 560, - -1, 591, + 81, 702, + -2, 559, + -1, 327, + 81, 741, + -2, 561, + -1, 593, 53, 42, 55, 42, -2, 44, - -1, 726, - 111, 599, - -2, 595, - -1, 937, + -1, 728, + 111, 600, + -2, 596, + -1, 939, 5, 29, - -2, 403, - -1, 962, + -2, 404, + -1, 964, 5, 28, - -2, 533, - -1, 1187, - 5, 29, -2, 534, - -1, 1232, - 5, 28, - -2, 536, - -1, 1296, + -1, 1189, 5, 29, + -2, 535, + -1, 1234, + 5, 28, -2, 537, + -1, 1298, + 5, 29, + -2, 538, } const yyPrivate = 57344 -const yyLast = 10776 +const yyLast = 11114 var yyAct = [...]int{ - 247, 1287, 876, 538, 662, 1193, 1243, 240, 788, 1094, - 806, 251, 1095, 1122, 828, 225, 1025, 827, 870, 585, - 837, 583, 277, 55, 789, 1091, 965, 981, 322, 1016, - 761, 78, 929, 903, 1068, 191, 758, 691, 191, 751, - 777, 728, 841, 601, 470, 476, 420, 1028, 970, 600, - 537, 3, 217, 316, 785, 866, 304, 490, 856, 587, - 482, 572, 824, 303, 191, 191, 78, 278, 49, 249, - 191, 313, 78, 234, 311, 54, 1320, 1307, 552, 1318, - 911, 1294, 850, 1315, 877, 302, 1306, 1086, 1293, 1181, - 424, 445, 238, 1253, 1117, 1118, 218, 219, 220, 221, - 224, 59, 1130, 1131, 1132, 820, 821, 893, 1116, 819, - 1135, 1133, 186, 182, 183, 184, 989, 49, 602, 988, - 603, 892, 990, 223, 222, 230, 61, 62, 63, 64, - 65, 308, 1268, 503, 502, 512, 513, 505, 506, 507, - 508, 509, 510, 511, 504, 461, 1007, 514, 849, 897, - 1206, 462, 459, 433, 1221, 447, 857, 449, 891, 1170, - 1168, 1069, 216, 456, 457, 1317, 253, 503, 502, 512, - 513, 505, 506, 507, 508, 509, 510, 511, 504, 1314, - 191, 514, 191, 446, 448, 1288, 1280, 1049, 191, 786, - 842, 434, 1244, 1071, 427, 191, 179, 1251, 180, 78, - 78, 78, 78, 180, 78, 1246, 670, 888, 885, 886, - 844, 884, 78, 844, 661, 930, 980, 807, 809, 430, - 844, 979, 978, 185, 422, 1073, 1046, 1077, 194, 1072, - 307, 1070, 1048, 181, 473, 477, 1075, 895, 898, 760, - 1273, 78, 1000, 526, 527, 1074, 1190, 1055, 945, 421, - 1139, 495, 478, 468, 923, 700, 494, 440, 1076, 1078, - 504, 825, 514, 514, 697, 444, 451, 451, 451, 451, - 1278, 451, 890, 1134, 1245, 466, 467, 857, 905, 451, - 1149, 479, 489, 968, 488, 487, 539, 1292, 1036, 487, - 604, 1269, 808, 778, 889, 550, 1252, 1250, 49, 692, - 1140, 489, 191, 1088, 843, 489, 778, 843, 952, 191, - 191, 191, 665, 523, 843, 78, 525, 1034, 1005, 840, - 838, 78, 836, 839, 1282, 842, 1047, 735, 1045, 718, - 720, 721, 894, 480, 719, 920, 921, 922, 436, 437, - 438, 733, 734, 732, 536, 896, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 904, 551, 553, 553, 553, - 553, 553, 553, 553, 553, 561, 562, 563, 564, 554, - 555, 556, 557, 558, 559, 560, 584, 484, 846, 693, - 1298, 426, 1035, 847, 1212, 592, 598, 1040, 1037, 1030, - 1031, 1038, 1033, 1032, 505, 506, 507, 508, 509, 510, - 511, 504, 276, 178, 514, 1039, 1211, 1020, 1019, 488, - 487, 1042, 703, 704, 1008, 524, 1090, 507, 508, 509, - 510, 511, 504, 1300, 78, 514, 489, 1279, 1228, 52, - 191, 191, 78, 76, 191, 942, 699, 191, 1036, 731, - 752, 191, 753, 78, 78, 78, 78, 78, 78, 78, - 78, 1209, 941, 1052, 940, 428, 429, 78, 78, 488, - 487, 1017, 1236, 1316, 191, 1276, 301, 1034, 321, 679, - 488, 487, 695, 698, 425, 307, 489, 21, 1303, 469, - 1236, 1285, 78, 1126, 488, 487, 191, 489, 1125, 488, - 487, 451, 78, 452, 705, 715, 716, 1236, 1248, 451, - 1001, 489, 1236, 469, 1236, 1237, 489, 1202, 1201, 469, - 451, 451, 451, 451, 451, 451, 451, 451, 1113, 469, - 729, 677, 996, 726, 451, 451, 1189, 469, 1146, 1145, - 1142, 1143, 1035, 1142, 1141, 229, 78, 1040, 1037, 1030, - 1031, 1038, 1033, 1032, 935, 469, 966, 991, 539, 722, - 879, 768, 769, 754, 707, 1039, 676, 770, 773, 319, - 675, 1029, 23, 779, 569, 469, 1257, 191, 763, 469, - 191, 191, 191, 191, 191, 724, 666, 664, 659, 442, - 790, 435, 191, 611, 610, 191, 960, 421, 1256, 191, - 961, 765, 1136, 49, 191, 191, 755, 756, 78, 782, - 763, 321, 321, 321, 321, 1185, 321, 967, 540, 775, - 52, 78, 823, 595, 321, 814, 502, 512, 513, 505, - 506, 507, 508, 509, 510, 511, 504, 792, 793, 514, - 795, 23, 56, 791, 1058, 765, 794, 308, 308, 308, - 308, 308, 803, 492, 1092, 309, 812, 966, 811, 817, - 569, 816, 584, 967, 810, 596, 947, 594, 832, 1231, - 23, 308, 191, 568, 730, 78, 813, 78, 594, 944, - 244, 191, 935, 569, 191, 78, 1148, 872, 935, 52, - 188, 1144, 992, 858, 859, 860, 818, 935, 569, 597, - 701, 191, 52, 191, 191, 231, 966, 1308, 1216, 663, - 946, 851, 852, 853, 854, 855, 909, 910, 52, 477, - 312, 868, 869, 943, 871, 423, 1127, 321, 863, 864, - 865, 1129, 1107, 606, 574, 577, 578, 579, 575, 726, - 576, 580, 451, 706, 451, 995, 307, 307, 307, 307, - 307, 867, 451, 52, 971, 972, 874, 912, 862, 861, - 913, 307, 67, 1092, 1021, 729, 974, 673, 463, 713, - 307, 512, 513, 505, 506, 507, 508, 509, 510, 511, - 504, 936, 977, 514, 925, 267, 266, 269, 270, 271, - 272, 766, 767, 800, 268, 273, 953, 774, 801, 798, - 1178, 762, 764, 924, 799, 802, 976, 578, 579, 797, - 796, 781, 1312, 783, 784, 235, 236, 780, 319, 1305, - 908, 78, 1054, 1311, 191, 483, 918, 951, 917, 471, - 1012, 609, 443, 1183, 1004, 431, 321, 432, 78, 1284, - 481, 472, 1283, 439, 321, 984, 962, 805, 1229, 983, - 441, 985, 993, 975, 1002, 321, 321, 321, 321, 321, - 321, 321, 321, 963, 964, 997, 1217, 881, 672, 321, - 321, 582, 986, 503, 502, 512, 513, 505, 506, 507, - 508, 509, 510, 511, 504, 78, 78, 514, 78, 232, - 233, 308, 998, 999, 709, 483, 226, 916, 1262, 227, - 56, 1261, 1018, 1219, 492, 915, 967, 321, 464, 730, - 690, 78, 485, 1270, 1207, 696, 58, 60, 593, 53, - 1, 1009, 1010, 1053, 878, 191, 1024, 887, 1286, 1011, - 1242, 1013, 1014, 1015, 78, 528, 529, 530, 531, 532, - 533, 534, 535, 1041, 1121, 835, 1027, 826, 757, 419, - 1051, 66, 1277, 451, 834, 833, 1249, 567, 771, 771, - 1205, 845, 919, 1006, 771, 848, 591, 1128, 1281, 1062, - 1089, 1061, 1003, 616, 78, 78, 1067, 614, 451, 1093, - 615, 771, 790, 1087, 726, 1104, 1105, 1080, 790, 1106, - 307, 1079, 1108, 613, 1096, 618, 617, 612, 725, 1102, - 202, 1103, 1101, 78, 314, 78, 78, 581, 605, 934, - 321, 873, 486, 68, 1044, 1043, 883, 1114, 932, 1120, - 1119, 1115, 933, 321, 1098, 949, 460, 1124, 204, 937, - 938, 939, 191, 522, 914, 987, 320, 1099, 948, 1097, - 78, 49, 702, 954, 475, 955, 956, 957, 958, 1260, - 1218, 950, 549, 78, 191, 776, 1109, 1110, 1111, 252, - 78, 574, 577, 578, 579, 575, 78, 576, 580, 191, - 717, 971, 972, 265, 262, 264, 263, 321, 708, 321, - 959, 496, 1137, 1138, 250, 667, 668, 321, 242, 671, - 1159, 1150, 674, 306, 1158, 1157, 565, 573, 571, 570, - 973, 319, 1166, 969, 1152, 305, 1057, 1155, 1182, 1180, - 1267, 712, 25, 321, 829, 539, 57, 237, 78, 694, - 78, 78, 78, 191, 78, 1195, 1196, 1197, 1192, 1184, - 78, 19, 18, 17, 20, 16, 308, 15, 78, 14, - 1200, 714, 1198, 1204, 993, 29, 13, 12, 11, 10, - 9, 8, 7, 6, 5, 4, 228, 22, 78, 78, - 78, 2, 1163, 1164, 1179, 1165, 0, 0, 1167, 0, - 1169, 0, 0, 0, 1215, 1214, 0, 727, 0, 0, - 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, - 746, 747, 748, 749, 750, 0, 0, 0, 1066, 0, - 78, 78, 0, 474, 725, 0, 0, 0, 1230, 0, - 1208, 0, 1210, 78, 0, 0, 1203, 0, 1096, 1241, - 0, 0, 787, 982, 0, 451, 1247, 78, 0, 0, - 0, 0, 1258, 1220, 0, 307, 0, 0, 189, 0, - 321, 215, 0, 0, 0, 1112, 0, 78, 0, 1232, - 815, 1271, 0, 0, 0, 0, 0, 0, 0, 1275, - 0, 0, 0, 1097, 1096, 241, 1233, 189, 189, 0, - 450, 0, 0, 189, 0, 0, 1290, 0, 0, 1289, - 539, 1254, 0, 1255, 78, 0, 0, 1022, 321, 1295, - 321, 191, 790, 0, 1272, 1259, 0, 0, 0, 78, - 1301, 0, 0, 0, 0, 0, 0, 0, 0, 1097, - 0, 49, 0, 321, 1309, 1310, 0, 875, 0, 78, - 0, 0, 0, 0, 1313, 1160, 899, 0, 0, 900, - 0, 829, 1162, 0, 0, 0, 321, 0, 0, 0, - 0, 0, 0, 1171, 1172, 1173, 902, 0, 1176, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 321, 0, - 0, 1186, 1187, 1188, 0, 1191, 0, 0, 0, 0, - 0, 0, 0, 771, 0, 0, 1100, 982, 0, 771, - 0, 1026, 0, 189, 0, 189, 0, 0, 0, 0, - 0, 189, 1177, 469, 0, 1319, 0, 0, 189, 0, - 0, 0, 200, 0, 0, 321, 0, 321, 1123, 0, - 0, 0, 0, 0, 926, 927, 928, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 211, 1060, 0, 503, - 502, 512, 513, 505, 506, 507, 508, 509, 510, 511, - 504, 0, 1151, 514, 1227, 0, 0, 0, 0, 1083, - 0, 0, 0, 0, 0, 1153, 0, 0, 0, 1238, - 1239, 1240, 1156, 0, 0, 0, 0, 0, 321, 0, - 453, 454, 455, 0, 458, 0, 195, 0, 0, 0, - 0, 0, 465, 197, 0, 0, 1263, 1264, 1265, 1266, - 203, 199, 0, 0, 0, 0, 829, 0, 829, 0, - 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, - 0, 0, 189, 589, 189, 0, 0, 0, 201, 0, - 1194, 205, 1194, 1194, 1194, 0, 1199, 0, 0, 0, - 0, 1291, 321, 0, 0, 0, 1296, 0, 0, 0, - 1194, 0, 0, 0, 0, 0, 0, 0, 0, 196, - 1302, 0, 0, 1174, 469, 0, 0, 0, 0, 1060, - 321, 321, 321, 0, 0, 0, 0, 0, 0, 0, - 1056, 0, 0, 0, 0, 0, 206, 198, 0, 207, - 208, 209, 210, 214, 0, 1323, 1324, 0, 213, 212, - 503, 502, 512, 513, 505, 506, 507, 508, 509, 510, - 511, 504, 1234, 1235, 514, 0, 0, 0, 0, 0, - 0, 1064, 1065, 0, 0, 1123, 0, 0, 469, 0, - 0, 0, 0, 829, 1081, 1082, 0, 1084, 1085, 1194, - 0, 0, 0, 189, 189, 0, 0, 189, 0, 0, - 189, 0, 0, 0, 678, 0, 0, 0, 0, 1274, - 0, 0, 1026, 829, 503, 502, 512, 513, 505, 506, - 507, 508, 509, 510, 511, 504, 0, 189, 514, 0, - 633, 0, 0, 0, 0, 0, 0, 1147, 0, 0, - 0, 0, 0, 771, 0, 0, 1297, 0, 0, 189, - 0, 0, 0, 0, 660, 0, 0, 0, 678, 1154, - 0, 1304, 669, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 680, 681, 682, 683, 684, 685, 686, - 687, 1194, 0, 0, 0, 0, 0, 688, 689, 0, + 249, 1289, 878, 540, 1096, 790, 664, 1124, 253, 1245, + 279, 1195, 539, 3, 808, 830, 1097, 858, 587, 1027, + 872, 227, 829, 1093, 905, 791, 839, 324, 1070, 983, + 931, 78, 55, 760, 763, 192, 585, 753, 192, 693, + 1030, 1018, 967, 843, 603, 779, 972, 730, 472, 602, + 478, 422, 826, 318, 787, 306, 589, 484, 492, 251, + 236, 913, 226, 868, 192, 192, 78, 280, 49, 574, + 192, 762, 78, 313, 315, 54, 1322, 1309, 1320, 1296, + 1317, 879, 1308, 305, 1295, 1088, 1183, 426, 1255, 1132, + 1133, 1134, 187, 183, 184, 185, 240, 1137, 1135, 554, + 304, 219, 604, 991, 605, 447, 990, 59, 895, 992, + 1119, 1120, 822, 823, 1118, 821, 463, 49, 225, 224, + 1009, 851, 894, 464, 461, 232, 1208, 1223, 859, 1172, + 1170, 310, 61, 62, 63, 64, 65, 218, 458, 459, + 1319, 1316, 435, 1290, 1051, 220, 221, 222, 223, 788, + 899, 1246, 1282, 844, 436, 846, 181, 809, 811, 893, + 429, 180, 846, 181, 1248, 672, 255, 663, 846, 449, + 432, 451, 982, 981, 980, 1253, 1048, 424, 195, 182, + 1275, 192, 1050, 192, 423, 528, 529, 1192, 1057, 192, + 947, 1002, 925, 702, 311, 496, 192, 448, 450, 442, + 78, 78, 78, 78, 186, 78, 827, 516, 890, 887, + 888, 699, 886, 1280, 78, 1141, 1270, 505, 504, 514, + 515, 507, 508, 509, 510, 511, 512, 513, 506, 189, + 309, 516, 810, 1247, 506, 489, 694, 516, 897, 900, + 491, 1151, 907, 78, 1090, 481, 970, 606, 780, 845, + 859, 491, 667, 1007, 842, 840, 845, 838, 841, 314, + 844, 1136, 845, 480, 425, 1142, 452, 453, 453, 453, + 453, 1284, 453, 892, 1254, 1252, 1049, 780, 1047, 954, + 446, 453, 490, 489, 1294, 514, 515, 507, 508, 509, + 510, 511, 512, 513, 506, 891, 848, 516, 852, 491, + 49, 849, 486, 1300, 192, 454, 737, 490, 489, 1214, + 179, 192, 192, 192, 1092, 525, 695, 78, 527, 906, + 735, 736, 734, 78, 491, 52, 468, 469, 438, 439, + 440, 720, 722, 723, 896, 733, 721, 705, 706, 944, + 1071, 482, 922, 923, 924, 1213, 538, 898, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 1022, 553, 555, + 555, 555, 555, 555, 555, 555, 555, 563, 564, 565, + 566, 321, 1073, 303, 701, 433, 1271, 434, 586, 754, + 1021, 755, 1302, 441, 490, 489, 594, 1010, 490, 489, + 443, 600, 556, 557, 558, 559, 560, 561, 562, 428, + 943, 491, 942, 1281, 1075, 491, 1079, 1230, 1074, 1211, + 1072, 700, 1054, 1019, 21, 1077, 1278, 526, 490, 489, + 1238, 1318, 1305, 471, 1076, 1128, 78, 490, 489, 1238, + 1287, 471, 192, 192, 78, 491, 192, 1078, 1080, 192, + 1238, 1250, 1259, 192, 491, 78, 78, 78, 78, 78, + 78, 78, 78, 509, 510, 511, 512, 513, 506, 78, + 78, 516, 1238, 471, 1258, 470, 192, 455, 456, 457, + 681, 460, 231, 430, 431, 1238, 1239, 309, 1204, 1203, + 467, 1115, 471, 1138, 78, 1191, 471, 968, 192, 1148, + 1147, 1144, 1145, 453, 78, 1144, 1143, 665, 569, 1127, + 1003, 453, 707, 998, 679, 278, 993, 593, 937, 471, + 731, 881, 453, 453, 453, 453, 453, 453, 453, 453, + 571, 471, 765, 471, 728, 756, 453, 453, 678, 765, + 269, 268, 271, 272, 273, 274, 76, 23, 78, 270, + 275, 677, 668, 709, 507, 508, 509, 510, 511, 512, + 513, 506, 724, 666, 516, 767, 772, 775, 726, 661, + 597, 962, 781, 613, 612, 963, 444, 437, 423, 192, + 1187, 323, 192, 192, 192, 192, 192, 427, 246, 792, + 1094, 969, 969, 968, 192, 52, 23, 192, 757, 758, + 571, 192, 1060, 570, 1150, 49, 192, 192, 784, 767, + 78, 815, 598, 596, 596, 1146, 949, 994, 777, 56, + 542, 23, 820, 78, 1233, 768, 769, 946, 571, 937, + 599, 776, 321, 703, 571, 968, 669, 670, 794, 795, + 673, 797, 816, 676, 52, 783, 937, 785, 786, 310, + 310, 310, 310, 310, 860, 861, 862, 813, 814, 937, + 948, 819, 805, 818, 586, 793, 812, 52, 796, 52, + 696, 945, 1310, 310, 192, 834, 732, 78, 1218, 78, + 1038, 853, 233, 192, 873, 1129, 192, 78, 1109, 997, + 869, 874, 716, 576, 579, 580, 581, 577, 864, 578, + 582, 863, 662, 192, 67, 192, 192, 973, 974, 1036, + 671, 876, 1131, 1094, 1038, 323, 323, 323, 323, 1023, + 323, 682, 683, 684, 685, 686, 687, 688, 689, 323, + 52, 870, 871, 976, 675, 690, 691, 465, 715, 979, + 728, 978, 802, 1036, 453, 799, 453, 803, 309, 309, + 309, 309, 309, 798, 453, 731, 800, 804, 494, 580, + 581, 801, 1314, 309, 914, 1307, 915, 237, 238, 1056, + 910, 485, 309, 789, 1037, 1313, 920, 919, 473, 1042, + 1039, 1032, 1033, 1040, 1035, 1034, 483, 1014, 611, 1006, + 474, 445, 927, 1286, 1285, 1231, 921, 1041, 1004, 999, + 1185, 817, 1219, 1044, 883, 926, 674, 584, 1037, 485, + 964, 228, 727, 1042, 1039, 1032, 1033, 1040, 1035, 1034, + 234, 235, 918, 78, 1264, 1180, 192, 1263, 229, 56, + 917, 1041, 323, 1221, 953, 969, 466, 1031, 608, 692, + 78, 487, 1272, 936, 1209, 530, 531, 532, 533, 534, + 535, 536, 537, 977, 698, 995, 58, 60, 595, 951, + 53, 1, 986, 880, 1026, 965, 966, 985, 877, 987, + 889, 1288, 1244, 1123, 837, 988, 828, 901, 421, 66, + 902, 1279, 1011, 1012, 836, 835, 1251, 78, 78, 1207, + 78, 847, 1008, 310, 850, 1000, 1001, 904, 505, 504, + 514, 515, 507, 508, 509, 510, 511, 512, 513, 506, + 1130, 732, 516, 78, 1283, 321, 1020, 1005, 618, 616, + 617, 1013, 615, 1015, 1016, 1017, 620, 192, 831, 619, + 854, 855, 856, 857, 614, 203, 78, 316, 1043, 583, + 607, 323, 875, 882, 488, 884, 865, 866, 867, 323, + 68, 1046, 1045, 903, 1053, 453, 885, 708, 462, 205, + 323, 323, 323, 323, 323, 323, 323, 323, 524, 1064, + 1063, 916, 989, 322, 323, 323, 78, 78, 1095, 1101, + 453, 792, 1069, 1082, 1098, 728, 704, 792, 1100, 477, + 1262, 1081, 309, 1220, 1089, 952, 551, 1029, 778, 711, + 254, 719, 267, 264, 1105, 78, 1103, 78, 78, 494, + 1104, 266, 323, 265, 710, 764, 766, 961, 727, 498, + 252, 244, 1122, 308, 567, 575, 573, 1121, 1116, 572, + 975, 782, 971, 307, 192, 1126, 1059, 1182, 1269, 1117, + 714, 1099, 78, 49, 25, 57, 239, 19, 18, 17, + 20, 16, 15, 759, 14, 78, 192, 29, 1111, 1112, + 1113, 807, 78, 773, 773, 13, 12, 11, 78, 773, + 10, 192, 9, 242, 1139, 1140, 8, 7, 6, 5, + 4, 230, 22, 2, 0, 0, 773, 729, 1159, 0, + 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, + 748, 749, 750, 751, 752, 0, 1168, 1161, 0, 0, + 0, 0, 1160, 0, 0, 323, 0, 0, 0, 0, + 78, 1058, 78, 78, 78, 192, 78, 0, 323, 1186, + 0, 0, 78, 1197, 1198, 1199, 1194, 0, 310, 0, + 78, 0, 1152, 1200, 0, 831, 0, 995, 1202, 0, + 0, 1206, 0, 0, 1025, 1154, 0, 0, 1157, 0, + 78, 78, 78, 0, 0, 0, 1181, 0, 0, 0, + 0, 1210, 0, 1212, 0, 0, 0, 1217, 0, 1052, + 1216, 0, 323, 0, 323, 0, 0, 0, 0, 0, + 0, 0, 323, 0, 1222, 1028, 0, 0, 0, 0, + 0, 0, 78, 78, 0, 0, 0, 0, 1098, 0, + 0, 0, 0, 1234, 1232, 78, 0, 0, 323, 0, + 0, 0, 1249, 0, 0, 1243, 0, 453, 1149, 78, + 0, 0, 934, 0, 0, 0, 935, 309, 0, 0, + 1260, 1062, 0, 939, 940, 941, 0, 0, 1273, 78, + 1156, 0, 950, 0, 1098, 0, 0, 956, 1274, 957, + 958, 959, 960, 1085, 1277, 1099, 0, 0, 1235, 0, + 0, 0, 0, 1256, 0, 1257, 0, 0, 1292, 0, + 0, 0, 0, 0, 0, 0, 78, 0, 1297, 0, + 0, 792, 0, 192, 0, 0, 476, 1261, 0, 0, + 0, 78, 475, 479, 1303, 0, 0, 0, 0, 0, + 831, 1099, 831, 49, 0, 0, 1311, 1312, 0, 497, + 0, 78, 0, 0, 928, 929, 930, 201, 984, 0, + 0, 190, 1315, 0, 217, 0, 0, 576, 579, 580, + 581, 577, 0, 578, 582, 323, 0, 973, 974, 0, + 0, 213, 0, 0, 541, 0, 0, 0, 243, 0, + 190, 190, 0, 552, 0, 0, 190, 0, 0, 0, + 0, 0, 0, 1062, 0, 0, 0, 0, 0, 0, + 1165, 1166, 0, 1167, 0, 0, 1169, 0, 1171, 0, + 0, 0, 1024, 323, 0, 323, 0, 1321, 0, 0, + 0, 196, 0, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 1068, 0, 0, 204, 200, 0, 323, 0, + 0, 0, 0, 0, 0, 0, 1215, 0, 0, 0, + 0, 0, 0, 0, 1205, 0, 0, 831, 0, 0, + 0, 323, 0, 202, 0, 0, 206, 505, 504, 514, + 515, 507, 508, 509, 510, 511, 512, 513, 506, 1114, + 0, 516, 0, 323, 0, 0, 1028, 831, 0, 0, + 0, 0, 0, 0, 197, 0, 0, 190, 773, 190, + 0, 1102, 984, 0, 773, 190, 0, 1301, 0, 0, + 0, 0, 190, 0, 0, 932, 0, 0, 0, 0, + 0, 207, 199, 0, 208, 209, 210, 212, 211, 216, + 323, 0, 323, 1125, 215, 214, 0, 0, 0, 0, + 0, 1066, 1067, 504, 514, 515, 507, 508, 509, 510, + 511, 512, 513, 506, 1083, 1084, 516, 1086, 1087, 1162, + 697, 0, 0, 1179, 471, 0, 1164, 1153, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1173, 1174, 1175, + 1155, 0, 1178, 717, 718, 0, 0, 1158, 0, 0, + 0, 0, 0, 323, 0, 1188, 1189, 1190, 0, 1193, + 505, 504, 514, 515, 507, 508, 509, 510, 511, 512, + 513, 506, 0, 0, 516, 0, 0, 0, 0, 0, + 190, 0, 0, 0, 0, 0, 0, 190, 591, 190, + 0, 0, 0, 0, 0, 0, 541, 0, 0, 770, + 771, 0, 0, 0, 0, 1196, 0, 1196, 1196, 1196, + 0, 1201, 0, 0, 0, 0, 0, 323, 0, 0, + 0, 0, 0, 0, 0, 1196, 1176, 471, 0, 0, + 0, 0, 0, 0, 1163, 0, 0, 0, 1229, 0, + 0, 0, 0, 0, 0, 323, 323, 323, 0, 0, + 0, 0, 0, 1240, 1241, 1242, 0, 0, 0, 0, + 825, 0, 0, 505, 504, 514, 515, 507, 508, 509, + 510, 511, 512, 513, 506, 0, 0, 516, 0, 0, + 1265, 1266, 1267, 1268, 0, 0, 0, 1236, 1237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 241, 0, 0, 0, 1161, 241, 241, 621, 0, 772, - 772, 241, 0, 0, 0, 772, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 241, 241, 241, 241, 0, - 189, 0, 772, 189, 189, 189, 189, 189, 0, 634, - 0, 0, 0, 0, 0, 804, 0, 0, 189, 0, - 0, 0, 589, 0, 0, 0, 0, 189, 189, 0, - 647, 648, 649, 650, 651, 652, 653, 0, 654, 655, - 656, 657, 658, 635, 636, 637, 638, 619, 620, 0, - 0, 622, 0, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 639, 640, 641, 642, 643, 644, 645, - 646, 0, 0, 0, 1175, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1222, 1223, 0, 1224, 1225, - 1226, 0, 0, 0, 0, 189, 0, 0, 0, 0, - 0, 0, 0, 0, 189, 0, 0, 189, 503, 502, - 512, 513, 505, 506, 507, 508, 509, 510, 511, 504, - 0, 129, 514, 0, 189, 588, 906, 907, 0, 0, - 97, 0, 0, 0, 678, 0, 111, 0, 113, 0, - 0, 147, 122, 0, 0, 0, 241, 503, 502, 512, - 513, 505, 506, 507, 508, 509, 510, 511, 504, 0, - 190, 514, 590, 0, 0, 880, 1299, 882, 0, 90, - 0, 0, 0, 0, 0, 901, 0, 0, 498, 0, - 501, 0, 0, 0, 0, 0, 515, 516, 517, 518, - 519, 520, 521, 241, 499, 500, 497, 503, 502, 512, - 513, 505, 506, 507, 508, 509, 510, 511, 504, 241, - 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, - 1321, 135, 0, 0, 150, 102, 101, 140, 110, 0, - 0, 0, 93, 0, 142, 131, 162, 189, 132, 141, - 114, 154, 136, 161, 193, 169, 152, 168, 80, 151, - 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, - 0, 139, 96, 100, 95, 128, 155, 156, 94, 176, - 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, - 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, - 104, 124, 123, 125, 0, 0, 0, 148, 164, 177, - 88, 0, 0, 170, 171, 172, 173, 0, 0, 89, - 126, 87, 105, 145, 108, 115, 138, 175, 130, 143, - 92, 163, 146, 0, 0, 0, 0, 0, 23, 24, - 50, 26, 27, 0, 0, 0, 0, 0, 189, 0, - 79, 0, 112, 174, 137, 99, 165, 42, 241, 0, - 0, 0, 28, 47, 48, 0, 0, 0, 0, 241, - 0, 0, 0, 0, 0, 0, 1023, 0, 0, 678, - 0, 0, 37, 1063, 0, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 772, 0, 0, 0, 931, 0, - 772, 1050, 0, 503, 502, 512, 513, 505, 506, 507, - 508, 509, 510, 511, 504, 0, 0, 514, 503, 502, - 512, 513, 505, 506, 507, 508, 509, 510, 511, 504, - 0, 0, 514, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 30, 31, 33, 32, - 35, 0, 0, 0, 0, 189, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 43, - 44, 0, 0, 45, 46, 34, 0, 189, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 38, 39, 0, - 40, 41, 189, 0, 0, 0, 0, 0, 0, 0, + 1125, 0, 0, 0, 0, 0, 0, 0, 190, 190, + 0, 0, 190, 0, 1196, 190, 0, 0, 0, 680, + 0, 0, 0, 0, 0, 1293, 0, 0, 0, 0, + 1298, 0, 0, 0, 1276, 0, 0, 0, 0, 0, + 0, 0, 190, 0, 1304, 1224, 1225, 0, 1226, 1227, + 1228, 471, 0, 0, 911, 912, 0, 479, 0, 0, + 0, 0, 0, 0, 190, 0, 0, 0, 773, 0, + 0, 1299, 0, 680, 0, 0, 0, 0, 0, 1325, + 1326, 0, 0, 0, 0, 0, 1306, 505, 504, 514, + 515, 507, 508, 509, 510, 511, 512, 513, 506, 0, + 0, 516, 0, 0, 0, 0, 1196, 0, 0, 0, + 0, 0, 0, 0, 0, 243, 0, 0, 1177, 938, + 243, 243, 0, 0, 774, 774, 243, 0, 0, 0, + 774, 0, 0, 0, 955, 0, 0, 0, 0, 0, + 243, 243, 243, 243, 0, 190, 0, 774, 190, 190, + 190, 190, 190, 0, 0, 0, 0, 0, 0, 0, + 806, 0, 0, 190, 0, 0, 0, 591, 0, 0, + 0, 0, 190, 190, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 24, 50, 26, 27, 0, + 1323, 505, 504, 514, 515, 507, 508, 509, 510, 511, + 512, 513, 506, 42, 0, 516, 0, 0, 28, 47, + 48, 505, 504, 514, 515, 507, 508, 509, 510, 511, + 512, 513, 506, 0, 0, 516, 0, 0, 37, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 190, + 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 1055, 0, 0, 0, 0, 635, 0, 0, 190, + 0, 908, 909, 0, 0, 0, 0, 0, 0, 680, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 243, 30, 31, 33, 32, 35, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1091, 0, + 0, 0, 0, 0, 36, 43, 44, 0, 0, 45, + 46, 34, 0, 1106, 1107, 0, 0, 1108, 0, 0, + 1110, 0, 0, 38, 39, 0, 40, 41, 243, 500, + 0, 503, 0, 623, 0, 0, 0, 517, 518, 519, + 520, 521, 522, 523, 243, 501, 502, 499, 505, 504, + 514, 515, 507, 508, 509, 510, 511, 512, 513, 506, + 0, 0, 516, 0, 0, 636, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 190, 0, 0, 0, 649, 650, 651, 652, + 653, 654, 655, 0, 656, 657, 658, 659, 660, 637, + 638, 639, 640, 621, 622, 0, 0, 624, 51, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 641, + 642, 643, 644, 645, 646, 647, 648, 1065, 0, 0, + 0, 0, 0, 0, 0, 0, 1184, 0, 0, 0, + 0, 0, 933, 541, 0, 0, 0, 505, 504, 514, + 515, 507, 508, 509, 510, 511, 512, 513, 506, 0, + 0, 516, 505, 504, 514, 515, 507, 508, 509, 510, + 511, 512, 513, 506, 0, 0, 516, 0, 0, 0, + 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 774, + 0, 0, 0, 0, 0, 774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1291, 541, 0, + 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 407, 397, 0, 369, - 410, 347, 361, 418, 362, 363, 390, 333, 377, 129, - 359, 0, 350, 328, 356, 329, 348, 371, 97, 374, - 346, 399, 380, 409, 111, 416, 113, 385, 1213, 147, - 122, 0, 0, 373, 401, 375, 395, 368, 391, 338, - 384, 411, 360, 388, 412, 0, 0, 0, 77, 0, - 830, 831, 0, 0, 0, 0, 0, 90, 0, 387, - 406, 358, 389, 327, 386, 0, 331, 334, 417, 404, - 353, 354, 994, 0, 0, 0, 0, 0, 0, 372, - 376, 392, 366, 0, 772, 0, 0, 0, 0, 0, - 0, 351, 0, 383, 189, 0, 0, 335, 332, 0, - 0, 370, 0, 0, 0, 337, 0, 352, 393, 0, - 326, 396, 402, 367, 192, 405, 365, 364, 408, 135, - 0, 0, 150, 102, 101, 140, 110, 400, 349, 357, - 93, 355, 142, 131, 162, 382, 132, 141, 114, 154, - 136, 161, 193, 169, 152, 168, 80, 151, 160, 91, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 591, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 77, 0, + 832, 833, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 996, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 774, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 190, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, - 96, 100, 95, 128, 155, 156, 94, 176, 85, 167, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, - 123, 125, 0, 330, 0, 148, 164, 177, 88, 345, - 403, 170, 171, 172, 173, 0, 0, 89, 126, 87, - 105, 145, 108, 115, 138, 175, 130, 143, 92, 163, - 146, 341, 344, 339, 340, 378, 379, 413, 414, 415, - 394, 336, 0, 342, 343, 0, 398, 381, 79, 0, - 112, 174, 137, 99, 165, 407, 397, 0, 369, 410, - 347, 361, 418, 362, 363, 390, 333, 377, 129, 359, - 0, 350, 328, 356, 329, 348, 371, 97, 374, 346, - 399, 380, 409, 111, 416, 113, 385, 0, 147, 122, - 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, - 411, 360, 388, 412, 0, 0, 0, 77, 0, 830, - 831, 0, 0, 0, 0, 0, 90, 0, 387, 406, - 358, 389, 327, 386, 0, 331, 334, 417, 404, 353, - 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, - 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, - 351, 0, 383, 0, 0, 0, 335, 332, 0, 0, - 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, - 396, 402, 367, 192, 405, 365, 364, 408, 135, 0, - 0, 150, 102, 101, 140, 110, 400, 349, 357, 93, - 355, 142, 131, 162, 382, 132, 141, 114, 154, 136, - 161, 193, 169, 152, 168, 80, 151, 160, 91, 144, - 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, - 100, 95, 128, 155, 156, 94, 176, 85, 167, 84, - 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, - 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, - 125, 0, 330, 0, 148, 164, 177, 88, 345, 403, - 170, 171, 172, 173, 0, 0, 89, 126, 87, 105, - 145, 108, 115, 138, 175, 130, 143, 92, 163, 146, - 341, 344, 339, 340, 378, 379, 413, 414, 415, 394, - 336, 0, 342, 343, 0, 398, 381, 79, 0, 112, - 174, 137, 99, 165, 407, 397, 0, 369, 410, 347, - 361, 418, 362, 363, 390, 333, 377, 129, 359, 0, - 350, 328, 356, 329, 348, 371, 97, 374, 346, 399, - 380, 409, 111, 416, 113, 385, 0, 147, 122, 0, - 0, 373, 401, 375, 395, 368, 391, 338, 384, 411, - 360, 388, 412, 52, 0, 0, 77, 0, 0, 0, - 0, 0, 0, 0, 0, 90, 0, 387, 406, 358, - 389, 327, 386, 0, 331, 334, 417, 404, 353, 354, - 0, 0, 0, 0, 0, 0, 0, 372, 376, 392, - 366, 0, 0, 0, 0, 0, 0, 0, 0, 351, - 0, 383, 0, 0, 0, 335, 332, 0, 0, 370, - 0, 0, 0, 337, 0, 352, 393, 0, 326, 396, - 402, 367, 192, 405, 365, 364, 408, 135, 0, 0, - 150, 102, 101, 140, 110, 400, 349, 357, 93, 355, - 142, 131, 162, 382, 132, 141, 114, 154, 136, 161, - 193, 169, 152, 168, 80, 151, 160, 91, 144, 82, - 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, - 95, 128, 155, 156, 94, 176, 85, 167, 84, 86, - 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, - 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, - 0, 330, 0, 148, 164, 177, 88, 345, 403, 170, - 171, 172, 173, 0, 0, 89, 126, 87, 105, 145, - 108, 115, 138, 175, 130, 143, 92, 163, 146, 341, - 344, 339, 340, 378, 379, 413, 414, 415, 394, 336, - 0, 342, 343, 0, 398, 381, 79, 0, 112, 174, - 137, 99, 165, 407, 397, 0, 369, 410, 347, 361, - 418, 362, 363, 390, 333, 377, 129, 359, 0, 350, - 328, 356, 329, 348, 371, 97, 374, 346, 399, 380, - 409, 111, 416, 113, 385, 0, 147, 122, 0, 0, - 373, 401, 375, 395, 368, 391, 338, 384, 411, 360, - 388, 412, 0, 0, 0, 77, 0, 0, 0, 0, - 0, 0, 0, 0, 90, 0, 387, 406, 358, 389, - 327, 386, 0, 331, 334, 417, 404, 353, 354, 0, - 0, 0, 0, 0, 0, 0, 372, 376, 392, 366, - 0, 0, 0, 0, 0, 0, 1059, 0, 351, 0, - 383, 0, 0, 0, 335, 332, 0, 0, 370, 0, - 0, 0, 337, 0, 352, 393, 0, 326, 396, 402, - 367, 192, 405, 365, 364, 408, 135, 0, 0, 150, - 102, 101, 140, 110, 400, 349, 357, 93, 355, 142, - 131, 162, 382, 132, 141, 114, 154, 136, 161, 193, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 126, + 87, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 77, 0, + 832, 833, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 126, + 87, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 52, 0, 0, 77, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 126, + 87, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 77, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 1061, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 126, + 87, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 248, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 725, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 126, + 87, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 77, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 126, + 87, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 248, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 126, + 87, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 77, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 326, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 327, + 325, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 191, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 126, + 87, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 77, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 601, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 326, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 327, + 325, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 129, + 361, 0, 352, 330, 358, 331, 350, 373, 97, 376, + 348, 401, 382, 411, 111, 418, 113, 387, 0, 147, + 122, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 77, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 193, 407, 367, 366, 410, 135, + 0, 0, 150, 102, 101, 140, 110, 402, 351, 359, + 93, 357, 142, 131, 162, 384, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 317, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 326, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 332, 0, 148, 164, 178, 88, 347, + 405, 170, 171, 172, 173, 174, 0, 0, 89, 327, + 325, 320, 319, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 79, + 0, 112, 175, 137, 99, 165, 129, 0, 0, 761, + 0, 250, 0, 0, 0, 97, 0, 247, 0, 0, + 0, 111, 290, 113, 0, 0, 147, 122, 0, 0, + 0, 0, 281, 282, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 248, 269, 268, 271, 272, + 273, 274, 0, 0, 90, 270, 275, 276, 277, 0, + 0, 245, 262, 0, 289, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 259, 260, 241, 0, 0, 0, + 301, 0, 261, 0, 0, 256, 257, 258, 263, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 193, 0, 0, 299, 0, 135, 0, 0, 150, + 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, + 131, 162, 0, 132, 141, 114, 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, - 128, 155, 156, 94, 176, 85, 167, 84, 86, 166, + 128, 155, 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, - 330, 0, 148, 164, 177, 88, 345, 403, 170, 171, - 172, 173, 0, 0, 89, 126, 87, 105, 145, 108, - 115, 138, 175, 130, 143, 92, 163, 146, 341, 344, - 339, 340, 378, 379, 413, 414, 415, 394, 336, 0, - 342, 343, 0, 398, 381, 79, 0, 112, 174, 137, - 99, 165, 407, 397, 0, 369, 410, 347, 361, 418, - 362, 363, 390, 333, 377, 129, 359, 0, 350, 328, - 356, 329, 348, 371, 97, 374, 346, 399, 380, 409, - 111, 416, 113, 385, 0, 147, 122, 0, 0, 373, - 401, 375, 395, 368, 391, 338, 384, 411, 360, 388, - 412, 0, 0, 0, 246, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 387, 406, 358, 389, 327, - 386, 0, 331, 334, 417, 404, 353, 354, 0, 0, - 0, 0, 0, 0, 0, 372, 376, 392, 366, 0, - 0, 0, 0, 0, 0, 723, 0, 351, 0, 383, - 0, 0, 0, 335, 332, 0, 0, 370, 0, 0, - 0, 337, 0, 352, 393, 0, 326, 396, 402, 367, - 192, 405, 365, 364, 408, 135, 0, 0, 150, 102, - 101, 140, 110, 400, 349, 357, 93, 355, 142, 131, - 162, 382, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 330, - 0, 148, 164, 177, 88, 345, 403, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 341, 344, 339, - 340, 378, 379, 413, 414, 415, 394, 336, 0, 342, - 343, 0, 398, 381, 79, 0, 112, 174, 137, 99, - 165, 407, 397, 0, 369, 410, 347, 361, 418, 362, - 363, 390, 333, 377, 129, 359, 0, 350, 328, 356, - 329, 348, 371, 97, 374, 346, 399, 380, 409, 111, - 416, 113, 385, 0, 147, 122, 0, 0, 373, 401, - 375, 395, 368, 391, 338, 384, 411, 360, 388, 412, - 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, - 0, 0, 90, 0, 387, 406, 358, 389, 327, 386, - 0, 331, 334, 417, 404, 353, 354, 0, 0, 0, - 0, 0, 0, 0, 372, 376, 392, 366, 0, 0, - 0, 0, 0, 0, 0, 0, 351, 0, 383, 0, - 0, 0, 335, 332, 0, 0, 370, 0, 0, 0, - 337, 0, 352, 393, 0, 326, 396, 402, 367, 192, - 405, 365, 364, 408, 135, 0, 0, 150, 102, 101, - 140, 110, 400, 349, 357, 93, 355, 142, 131, 162, - 382, 132, 141, 114, 154, 136, 161, 193, 169, 152, - 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, - 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, - 156, 94, 176, 85, 167, 84, 86, 166, 127, 153, - 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, - 133, 116, 134, 104, 124, 123, 125, 0, 330, 0, - 148, 164, 177, 88, 345, 403, 170, 171, 172, 173, - 0, 0, 89, 126, 87, 105, 145, 108, 115, 138, - 175, 130, 143, 92, 163, 146, 341, 344, 339, 340, - 378, 379, 413, 414, 415, 394, 336, 0, 342, 343, - 0, 398, 381, 79, 0, 112, 174, 137, 99, 165, - 407, 397, 0, 369, 410, 347, 361, 418, 362, 363, - 390, 333, 377, 129, 359, 0, 350, 328, 356, 329, - 348, 371, 97, 374, 346, 399, 380, 409, 111, 416, - 113, 385, 0, 147, 122, 0, 0, 373, 401, 375, - 395, 368, 391, 338, 384, 411, 360, 388, 412, 0, - 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, - 0, 90, 0, 387, 406, 358, 389, 327, 386, 0, - 331, 334, 417, 404, 353, 354, 0, 0, 0, 0, - 0, 0, 0, 372, 376, 392, 366, 0, 0, 0, - 0, 0, 0, 0, 0, 351, 0, 383, 0, 0, - 0, 335, 332, 0, 0, 370, 0, 0, 0, 337, - 0, 352, 393, 0, 326, 396, 402, 367, 192, 405, - 365, 364, 408, 135, 0, 0, 150, 102, 101, 140, - 110, 400, 349, 357, 93, 355, 142, 131, 162, 382, - 132, 141, 114, 154, 136, 161, 193, 169, 152, 168, + 0, 0, 148, 164, 178, 88, 0, 0, 170, 171, + 172, 173, 174, 0, 0, 89, 126, 87, 105, 145, + 108, 115, 138, 176, 130, 143, 92, 163, 146, 291, + 300, 297, 298, 295, 296, 294, 293, 292, 302, 283, + 284, 285, 286, 288, 0, 287, 79, 0, 112, 175, + 137, 99, 165, 129, 0, 0, 0, 0, 250, 0, + 0, 0, 97, 0, 247, 0, 0, 0, 111, 290, + 113, 0, 0, 147, 122, 0, 0, 0, 0, 281, + 282, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 0, 471, 248, 269, 268, 271, 272, 273, 274, 0, + 0, 90, 270, 275, 276, 277, 0, 0, 245, 262, + 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 259, 260, 0, 0, 0, 0, 301, 0, 261, + 0, 0, 256, 257, 258, 263, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, + 0, 299, 0, 135, 0, 0, 150, 102, 101, 140, + 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, + 132, 141, 114, 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, 156, - 94, 176, 85, 167, 84, 86, 166, 127, 153, 159, + 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, - 116, 134, 104, 124, 123, 125, 0, 330, 0, 148, - 164, 177, 88, 345, 403, 170, 171, 172, 173, 0, - 0, 89, 126, 87, 105, 145, 108, 115, 138, 175, - 130, 143, 92, 163, 146, 341, 344, 339, 340, 378, - 379, 413, 414, 415, 394, 336, 0, 342, 343, 0, - 398, 381, 79, 0, 112, 174, 137, 99, 165, 407, - 397, 0, 369, 410, 347, 361, 418, 362, 363, 390, - 333, 377, 129, 359, 0, 350, 328, 356, 329, 348, - 371, 97, 374, 346, 399, 380, 409, 111, 416, 113, - 385, 0, 147, 122, 0, 0, 373, 401, 375, 395, - 368, 391, 338, 384, 411, 360, 388, 412, 0, 0, - 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, - 90, 0, 387, 406, 358, 389, 327, 386, 0, 331, - 334, 417, 404, 353, 354, 0, 0, 0, 0, 0, - 0, 0, 372, 376, 392, 366, 0, 0, 0, 0, - 0, 0, 0, 0, 351, 0, 383, 0, 0, 0, - 335, 332, 0, 0, 370, 0, 0, 0, 337, 0, - 352, 393, 0, 326, 396, 402, 367, 192, 405, 365, - 364, 408, 135, 0, 0, 150, 102, 101, 140, 110, - 400, 349, 357, 93, 355, 142, 131, 162, 382, 132, - 141, 114, 154, 136, 161, 193, 169, 152, 168, 80, - 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, - 81, 0, 139, 96, 100, 95, 128, 155, 156, 94, - 176, 85, 167, 84, 324, 166, 127, 153, 159, 121, - 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, - 134, 104, 124, 123, 125, 0, 330, 0, 148, 164, - 177, 88, 345, 403, 170, 171, 172, 173, 0, 0, - 89, 325, 323, 105, 145, 108, 115, 138, 175, 130, - 143, 92, 163, 146, 341, 344, 339, 340, 378, 379, - 413, 414, 415, 394, 336, 0, 342, 343, 0, 398, - 381, 79, 0, 112, 174, 137, 99, 165, 407, 397, - 0, 369, 410, 347, 361, 418, 362, 363, 390, 333, - 377, 129, 359, 0, 350, 328, 356, 329, 348, 371, - 97, 374, 346, 399, 380, 409, 111, 416, 113, 385, - 0, 147, 122, 0, 0, 373, 401, 375, 395, 368, - 391, 338, 384, 411, 360, 388, 412, 0, 0, 0, - 190, 0, 0, 0, 0, 0, 0, 0, 0, 90, - 0, 387, 406, 358, 389, 327, 386, 0, 331, 334, - 417, 404, 353, 354, 0, 0, 0, 0, 0, 0, - 0, 372, 376, 392, 366, 0, 0, 0, 0, 0, - 0, 0, 0, 351, 0, 383, 0, 0, 0, 335, - 332, 0, 0, 370, 0, 0, 0, 337, 0, 352, - 393, 0, 326, 396, 402, 367, 192, 405, 365, 364, - 408, 135, 0, 0, 150, 102, 101, 140, 110, 400, - 349, 357, 93, 355, 142, 131, 162, 382, 132, 141, - 114, 154, 136, 161, 193, 169, 152, 168, 80, 151, - 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, - 0, 139, 96, 100, 95, 128, 155, 156, 94, 176, - 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, - 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, - 104, 124, 123, 125, 0, 330, 0, 148, 164, 177, - 88, 345, 403, 170, 171, 172, 173, 0, 0, 89, - 126, 87, 105, 145, 108, 115, 138, 175, 130, 143, - 92, 163, 146, 341, 344, 339, 340, 378, 379, 413, - 414, 415, 394, 336, 0, 342, 343, 0, 398, 381, - 79, 0, 112, 174, 137, 99, 165, 407, 397, 0, - 369, 410, 347, 361, 418, 362, 363, 390, 333, 377, - 129, 359, 0, 350, 328, 356, 329, 348, 371, 97, - 374, 346, 399, 380, 409, 111, 416, 113, 385, 0, - 147, 122, 0, 0, 373, 401, 375, 395, 368, 391, - 338, 384, 411, 360, 388, 412, 0, 0, 0, 77, - 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, - 387, 406, 358, 389, 327, 386, 0, 331, 334, 417, - 404, 353, 354, 0, 0, 0, 0, 0, 0, 0, - 372, 376, 392, 366, 0, 0, 0, 0, 0, 0, - 0, 0, 351, 0, 383, 0, 0, 0, 335, 332, - 0, 0, 370, 0, 0, 0, 337, 0, 352, 393, - 0, 326, 396, 402, 367, 192, 405, 365, 364, 408, - 135, 0, 0, 150, 102, 101, 140, 110, 400, 349, - 357, 93, 355, 142, 131, 162, 382, 132, 141, 114, - 154, 136, 161, 193, 169, 152, 168, 80, 151, 599, + 116, 134, 104, 124, 123, 125, 0, 0, 0, 148, + 164, 178, 88, 0, 0, 170, 171, 172, 173, 174, + 0, 0, 89, 126, 87, 105, 145, 108, 115, 138, + 176, 130, 143, 92, 163, 146, 291, 300, 297, 298, + 295, 296, 294, 293, 292, 302, 283, 284, 285, 286, + 288, 0, 287, 79, 0, 112, 175, 137, 99, 165, + 129, 0, 0, 0, 0, 250, 0, 0, 0, 97, + 0, 247, 0, 0, 0, 111, 290, 113, 0, 0, + 147, 122, 0, 0, 0, 0, 281, 282, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 0, 0, 248, + 269, 268, 271, 272, 273, 274, 0, 0, 90, 270, + 275, 276, 277, 0, 0, 245, 262, 0, 289, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 259, 260, + 241, 0, 0, 0, 301, 0, 261, 0, 0, 256, + 257, 258, 263, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 0, 0, 299, 0, + 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, + 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, + 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, - 139, 96, 100, 95, 128, 155, 156, 94, 176, 85, - 167, 84, 324, 166, 127, 153, 159, 121, 118, 83, + 139, 96, 100, 95, 128, 155, 156, 94, 177, 85, + 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, - 124, 123, 125, 0, 330, 0, 148, 164, 177, 88, - 345, 403, 170, 171, 172, 173, 0, 0, 89, 325, - 323, 105, 145, 108, 115, 138, 175, 130, 143, 92, - 163, 146, 341, 344, 339, 340, 378, 379, 413, 414, - 415, 394, 336, 0, 342, 343, 0, 398, 381, 79, - 0, 112, 174, 137, 99, 165, 407, 397, 0, 369, - 410, 347, 361, 418, 362, 363, 390, 333, 377, 129, - 359, 0, 350, 328, 356, 329, 348, 371, 97, 374, - 346, 399, 380, 409, 111, 416, 113, 385, 0, 147, - 122, 0, 0, 373, 401, 375, 395, 368, 391, 338, - 384, 411, 360, 388, 412, 0, 0, 0, 77, 0, - 0, 0, 0, 0, 0, 0, 0, 90, 0, 387, - 406, 358, 389, 327, 386, 0, 331, 334, 417, 404, - 353, 354, 0, 0, 0, 0, 0, 0, 0, 372, - 376, 392, 366, 0, 0, 0, 0, 0, 0, 0, - 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, - 0, 370, 0, 0, 0, 337, 0, 352, 393, 0, - 326, 396, 402, 367, 192, 405, 365, 364, 408, 135, - 0, 0, 150, 102, 101, 140, 110, 400, 349, 357, - 93, 355, 142, 131, 162, 382, 132, 141, 114, 154, - 136, 161, 193, 169, 152, 168, 80, 151, 315, 91, - 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, - 96, 100, 95, 128, 155, 156, 94, 176, 85, 167, - 84, 324, 166, 127, 153, 159, 121, 118, 83, 157, - 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, - 123, 125, 0, 330, 0, 148, 164, 177, 88, 345, - 403, 170, 171, 172, 173, 0, 0, 89, 325, 323, - 318, 317, 108, 115, 138, 175, 130, 143, 92, 163, - 146, 341, 344, 339, 340, 378, 379, 413, 414, 415, - 394, 336, 0, 342, 343, 0, 398, 381, 79, 0, - 112, 174, 137, 99, 165, 129, 0, 0, 759, 0, - 248, 0, 0, 0, 97, 0, 245, 0, 0, 0, - 111, 288, 113, 0, 0, 147, 122, 0, 0, 0, - 0, 279, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 246, 267, 266, 269, 270, 271, - 272, 0, 0, 90, 268, 273, 274, 275, 0, 0, - 243, 260, 0, 287, 0, 0, 0, 0, 0, 0, + 124, 123, 125, 0, 0, 0, 148, 164, 178, 88, + 0, 0, 170, 171, 172, 173, 174, 0, 0, 89, + 126, 87, 105, 145, 108, 115, 138, 176, 130, 143, + 92, 163, 146, 291, 300, 297, 298, 295, 296, 294, + 293, 292, 302, 283, 284, 285, 286, 288, 0, 287, + 79, 0, 112, 175, 137, 99, 165, 129, 0, 0, + 0, 0, 250, 0, 0, 0, 97, 0, 247, 0, + 0, 0, 111, 290, 113, 0, 0, 147, 122, 0, + 0, 0, 0, 281, 282, 0, 0, 0, 0, 0, + 0, 824, 0, 52, 0, 0, 248, 269, 268, 271, + 272, 273, 274, 0, 0, 90, 270, 275, 276, 277, + 0, 0, 245, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 258, 239, 0, 0, 0, 299, - 0, 259, 0, 0, 254, 255, 256, 261, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 297, 0, 135, 0, 0, 150, 102, - 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 0, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 289, 298, 295, - 296, 293, 294, 292, 291, 290, 300, 281, 282, 283, - 284, 286, 0, 285, 79, 0, 112, 174, 137, 99, - 165, 129, 0, 0, 0, 0, 248, 0, 0, 0, - 97, 0, 245, 0, 0, 0, 111, 288, 113, 0, - 0, 147, 122, 0, 0, 0, 0, 279, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 469, - 246, 267, 266, 269, 270, 271, 272, 0, 0, 90, - 268, 273, 274, 275, 0, 0, 243, 260, 0, 287, + 0, 0, 0, 0, 0, 259, 260, 0, 0, 0, + 0, 301, 0, 261, 0, 0, 256, 257, 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, - 258, 0, 0, 0, 0, 299, 0, 259, 0, 0, - 254, 255, 256, 261, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 192, 0, 0, 297, - 0, 135, 0, 0, 150, 102, 101, 140, 110, 0, - 0, 0, 93, 0, 142, 131, 162, 0, 132, 141, - 114, 154, 136, 161, 193, 169, 152, 168, 80, 151, - 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, - 0, 139, 96, 100, 95, 128, 155, 156, 94, 176, - 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, - 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, - 104, 124, 123, 125, 0, 0, 0, 148, 164, 177, - 88, 0, 0, 170, 171, 172, 173, 0, 0, 89, - 126, 87, 105, 145, 108, 115, 138, 175, 130, 143, - 92, 163, 146, 289, 298, 295, 296, 293, 294, 292, - 291, 290, 300, 281, 282, 283, 284, 286, 0, 285, - 79, 0, 112, 174, 137, 99, 165, 129, 0, 0, - 0, 0, 248, 0, 0, 0, 97, 0, 245, 0, - 0, 0, 111, 288, 113, 0, 0, 147, 122, 0, - 0, 0, 0, 279, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 0, 246, 267, 266, 269, - 270, 271, 272, 0, 0, 90, 268, 273, 274, 275, - 0, 0, 243, 260, 0, 287, 0, 0, 0, 0, + 0, 0, 193, 0, 0, 299, 0, 135, 0, 0, + 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, + 142, 131, 162, 0, 132, 141, 114, 154, 136, 161, + 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, + 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, + 95, 128, 155, 156, 94, 177, 85, 167, 84, 86, + 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, + 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, + 0, 0, 0, 148, 164, 178, 88, 0, 0, 170, + 171, 172, 173, 174, 0, 0, 89, 126, 87, 105, + 145, 108, 115, 138, 176, 130, 143, 92, 163, 146, + 291, 300, 297, 298, 295, 296, 294, 293, 292, 302, + 283, 284, 285, 286, 288, 23, 287, 79, 0, 112, + 175, 137, 99, 165, 0, 0, 0, 129, 0, 0, + 0, 0, 250, 0, 0, 0, 97, 0, 247, 0, + 0, 0, 111, 290, 113, 0, 0, 147, 122, 0, + 0, 0, 0, 281, 282, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 0, 0, 248, 269, 268, 271, + 272, 273, 274, 0, 0, 90, 270, 275, 276, 277, + 0, 0, 245, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 258, 239, 0, 0, - 0, 299, 0, 259, 0, 0, 254, 255, 256, 261, + 0, 0, 0, 0, 0, 259, 260, 0, 0, 0, + 0, 301, 0, 261, 0, 0, 256, 257, 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 192, 0, 0, 297, 0, 135, 0, 0, + 0, 0, 193, 0, 0, 299, 0, 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, 154, 136, 161, - 193, 169, 152, 168, 80, 151, 160, 91, 144, 82, + 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, - 95, 128, 155, 156, 94, 176, 85, 167, 84, 86, + 95, 128, 155, 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, - 0, 0, 0, 148, 164, 177, 88, 0, 0, 170, - 171, 172, 173, 0, 0, 89, 126, 87, 105, 145, - 108, 115, 138, 175, 130, 143, 92, 163, 146, 289, - 298, 295, 296, 293, 294, 292, 291, 290, 300, 281, - 282, 283, 284, 286, 0, 285, 79, 0, 112, 174, - 137, 99, 165, 129, 0, 0, 0, 0, 248, 0, - 0, 0, 97, 0, 245, 0, 0, 0, 111, 288, - 113, 0, 0, 147, 122, 0, 0, 0, 0, 279, - 280, 0, 0, 0, 0, 0, 0, 822, 0, 52, - 0, 0, 246, 267, 266, 269, 270, 271, 272, 0, - 0, 90, 268, 273, 274, 275, 0, 0, 243, 260, - 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 164, 178, 88, 0, 0, 170, + 171, 172, 173, 174, 0, 0, 89, 126, 87, 105, + 145, 108, 115, 138, 176, 130, 143, 92, 163, 146, + 291, 300, 297, 298, 295, 296, 294, 293, 292, 302, + 283, 284, 285, 286, 288, 0, 287, 79, 0, 112, + 175, 137, 99, 165, 129, 0, 0, 0, 0, 250, + 0, 0, 0, 97, 0, 247, 0, 0, 0, 111, + 290, 113, 0, 0, 147, 122, 0, 0, 0, 0, + 281, 282, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 0, 248, 269, 268, 271, 272, 273, 274, + 0, 0, 90, 270, 275, 276, 277, 0, 0, 245, + 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 258, 0, 0, 0, 0, 299, 0, 259, - 0, 0, 254, 255, 256, 261, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, - 0, 297, 0, 135, 0, 0, 150, 102, 101, 140, - 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, - 132, 141, 114, 154, 136, 161, 193, 169, 152, 168, - 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, - 107, 81, 0, 139, 96, 100, 95, 128, 155, 156, - 94, 176, 85, 167, 84, 86, 166, 127, 153, 159, - 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, - 116, 134, 104, 124, 123, 125, 0, 0, 0, 148, - 164, 177, 88, 0, 0, 170, 171, 172, 173, 0, - 0, 89, 126, 87, 105, 145, 108, 115, 138, 175, - 130, 143, 92, 163, 146, 289, 298, 295, 296, 293, - 294, 292, 291, 290, 300, 281, 282, 283, 284, 286, - 23, 285, 79, 0, 112, 174, 137, 99, 165, 0, - 0, 0, 129, 0, 0, 0, 0, 248, 0, 0, - 0, 97, 0, 245, 0, 0, 0, 111, 288, 113, - 0, 0, 147, 122, 0, 0, 0, 0, 279, 280, + 0, 0, 259, 260, 0, 0, 0, 0, 301, 0, + 261, 0, 0, 256, 257, 258, 263, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 0, 0, 299, 0, 135, 0, 0, 150, 102, 101, + 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, + 0, 132, 141, 114, 154, 136, 161, 194, 169, 152, + 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, + 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, + 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, + 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, + 133, 116, 134, 104, 124, 123, 125, 0, 0, 0, + 148, 164, 178, 88, 0, 0, 170, 171, 172, 173, + 174, 0, 0, 89, 126, 87, 105, 145, 108, 115, + 138, 176, 130, 143, 92, 163, 146, 291, 300, 297, + 298, 295, 296, 294, 293, 292, 302, 283, 284, 285, + 286, 288, 129, 287, 79, 0, 112, 175, 137, 99, + 165, 97, 0, 0, 0, 0, 0, 111, 290, 113, + 0, 0, 147, 122, 0, 0, 0, 0, 281, 282, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 246, 267, 266, 269, 270, 271, 272, 0, 0, - 90, 268, 273, 274, 275, 0, 0, 243, 260, 0, - 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 248, 269, 268, 271, 272, 273, 274, 0, 0, + 90, 270, 275, 276, 277, 0, 0, 0, 262, 0, + 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 258, 0, 0, 0, 0, 299, 0, 259, 0, - 0, 254, 255, 256, 261, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, - 297, 0, 135, 0, 0, 150, 102, 101, 140, 110, - 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, - 141, 114, 154, 136, 161, 193, 169, 152, 168, 80, + 259, 260, 0, 0, 0, 0, 301, 0, 261, 0, + 0, 256, 257, 258, 263, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, + 299, 0, 135, 0, 0, 150, 102, 101, 140, 110, + 0, 0, 0, 93, 0, 142, 131, 162, 1324, 132, + 141, 114, 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, 156, 94, - 176, 85, 167, 84, 86, 166, 127, 153, 159, 121, + 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, 0, 148, 164, - 177, 88, 0, 0, 170, 171, 172, 173, 0, 0, - 89, 126, 87, 105, 145, 108, 115, 138, 175, 130, - 143, 92, 163, 146, 289, 298, 295, 296, 293, 294, - 292, 291, 290, 300, 281, 282, 283, 284, 286, 0, - 285, 79, 0, 112, 174, 137, 99, 165, 129, 0, - 0, 0, 0, 248, 0, 0, 0, 97, 0, 245, - 0, 0, 0, 111, 288, 113, 0, 0, 147, 122, - 0, 0, 0, 0, 279, 280, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 0, 0, 246, 267, 266, - 269, 270, 271, 272, 0, 0, 90, 268, 273, 274, - 275, 0, 0, 243, 260, 0, 287, 0, 0, 0, + 178, 88, 0, 0, 170, 171, 172, 173, 174, 0, + 0, 89, 126, 87, 105, 145, 108, 115, 138, 176, + 130, 143, 92, 163, 146, 291, 300, 297, 298, 295, + 296, 294, 293, 292, 302, 283, 284, 285, 286, 288, + 129, 287, 79, 0, 112, 175, 137, 99, 165, 97, + 0, 0, 0, 0, 0, 111, 290, 113, 0, 0, + 147, 122, 0, 0, 0, 0, 281, 282, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 0, 0, 248, + 269, 268, 271, 272, 273, 274, 0, 0, 90, 270, + 275, 276, 277, 0, 0, 0, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 258, 0, 0, - 0, 0, 299, 0, 259, 0, 0, 254, 255, 256, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 192, 0, 0, 297, 0, 135, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 259, 260, + 0, 0, 0, 0, 301, 0, 261, 0, 0, 256, + 257, 258, 263, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 0, 0, 299, 0, + 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, + 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, + 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, + 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, + 139, 96, 100, 95, 128, 155, 156, 94, 177, 85, + 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, + 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, + 124, 123, 125, 0, 0, 0, 148, 164, 178, 88, + 0, 0, 170, 171, 172, 173, 174, 0, 0, 89, + 126, 87, 105, 145, 108, 115, 138, 176, 130, 143, + 92, 163, 146, 291, 300, 297, 298, 295, 296, 294, + 293, 292, 302, 283, 284, 285, 286, 288, 129, 287, + 79, 0, 112, 175, 137, 99, 165, 97, 0, 0, + 0, 0, 0, 111, 0, 113, 0, 0, 147, 122, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, + 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 505, 504, 514, 515, 507, 508, 509, 510, + 511, 512, 513, 506, 0, 0, 516, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 193, 0, 0, 0, 0, 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, 154, 136, - 161, 193, 169, 152, 168, 80, 151, 160, 91, 144, + 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, - 100, 95, 128, 155, 156, 94, 176, 85, 167, 84, + 100, 95, 128, 155, 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, - 125, 0, 0, 0, 148, 164, 177, 88, 0, 0, - 170, 171, 172, 173, 0, 0, 89, 126, 87, 105, - 145, 108, 115, 138, 175, 130, 143, 92, 163, 146, - 289, 298, 295, 296, 293, 294, 292, 291, 290, 300, - 281, 282, 283, 284, 286, 129, 285, 79, 0, 112, - 174, 137, 99, 165, 97, 0, 0, 0, 0, 0, - 111, 288, 113, 0, 0, 147, 122, 0, 0, 0, - 0, 279, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 246, 267, 266, 269, 270, 271, - 272, 0, 0, 90, 268, 273, 274, 275, 0, 0, - 0, 260, 0, 287, 0, 0, 0, 0, 0, 0, + 125, 0, 0, 0, 148, 164, 178, 88, 0, 0, + 170, 171, 172, 173, 174, 0, 0, 89, 126, 87, + 105, 145, 108, 115, 138, 176, 130, 143, 92, 163, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 129, 0, 0, 0, 493, 0, 0, 0, 79, 97, + 112, 175, 137, 99, 165, 111, 0, 113, 0, 0, + 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 495, 0, 0, 0, 0, 0, 0, 90, 0, + 0, 0, 0, 490, 489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 258, 0, 0, 0, 0, 299, - 0, 259, 0, 0, 254, 255, 256, 261, 0, 0, + 491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 297, 0, 135, 0, 0, 150, 102, - 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 1322, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 289, 298, 295, - 296, 293, 294, 292, 291, 290, 300, 281, 282, 283, - 284, 286, 129, 285, 79, 0, 112, 174, 137, 99, - 165, 97, 0, 0, 0, 0, 0, 111, 288, 113, - 0, 0, 147, 122, 0, 0, 0, 0, 279, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 246, 267, 266, 269, 270, 271, 272, 0, 0, - 90, 268, 273, 274, 275, 0, 0, 0, 260, 0, - 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 258, 0, 0, 0, 0, 299, 0, 259, 0, - 0, 254, 255, 256, 261, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, - 297, 0, 135, 0, 0, 150, 102, 101, 140, 110, + 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, + 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, + 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, + 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, + 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, + 139, 96, 100, 95, 128, 155, 156, 94, 177, 85, + 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, + 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, + 124, 123, 125, 0, 0, 0, 148, 164, 178, 88, + 0, 0, 170, 171, 172, 173, 174, 0, 0, 89, + 126, 87, 105, 145, 108, 115, 138, 176, 130, 143, + 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, + 79, 97, 112, 175, 137, 99, 165, 111, 0, 113, + 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, + 90, 0, 0, 0, 0, 70, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 73, 74, 0, 69, 0, 0, + 0, 75, 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, - 141, 114, 154, 136, 161, 193, 169, 152, 168, 80, + 141, 114, 154, 136, 161, 71, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, 156, 94, - 176, 85, 167, 84, 86, 166, 127, 153, 159, 121, + 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, 0, 148, 164, - 177, 88, 0, 0, 170, 171, 172, 173, 0, 0, - 89, 126, 87, 105, 145, 108, 115, 138, 175, 130, - 143, 92, 163, 146, 289, 298, 295, 296, 293, 294, - 292, 291, 290, 300, 281, 282, 283, 284, 286, 129, - 285, 79, 0, 112, 174, 137, 99, 165, 97, 0, - 0, 0, 0, 0, 111, 0, 113, 0, 0, 147, - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, - 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, + 178, 88, 0, 0, 170, 171, 172, 173, 174, 0, + 0, 89, 126, 87, 105, 145, 108, 115, 138, 176, + 130, 143, 92, 163, 146, 0, 72, 0, 0, 0, + 0, 0, 0, 0, 129, 0, 0, 0, 590, 0, + 0, 0, 79, 97, 112, 175, 137, 99, 165, 111, + 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 191, 0, 592, 0, 0, 0, 0, + 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 503, 502, 512, 513, 505, 506, 507, - 508, 509, 510, 511, 504, 0, 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 192, 0, 0, 0, 0, 135, - 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, - 93, 0, 142, 131, 162, 0, 132, 141, 114, 154, - 136, 161, 193, 169, 152, 168, 80, 151, 160, 91, - 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, - 96, 100, 95, 128, 155, 156, 94, 176, 85, 167, - 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, - 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, - 123, 125, 0, 0, 0, 148, 164, 177, 88, 0, - 0, 170, 171, 172, 173, 0, 0, 89, 126, 87, - 105, 145, 108, 115, 138, 175, 130, 143, 92, 163, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129, 0, 0, 0, 491, 0, 0, 0, 79, 97, - 112, 174, 137, 99, 165, 111, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 0, 0, 0, 0, 135, 0, 0, 150, 102, 101, + 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, + 0, 132, 141, 114, 154, 136, 161, 194, 169, 152, + 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, + 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, + 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, + 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, + 133, 116, 134, 104, 124, 123, 125, 0, 0, 0, + 148, 164, 178, 88, 0, 0, 170, 171, 172, 173, + 174, 0, 0, 89, 126, 87, 105, 145, 108, 115, + 138, 176, 130, 143, 92, 163, 146, 0, 0, 0, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 129, 0, 79, 0, 112, 175, 137, 99, + 165, 97, 0, 0, 0, 0, 0, 111, 0, 113, + 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, + 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, + 0, 0, 135, 0, 0, 150, 102, 101, 140, 110, + 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, + 141, 114, 154, 136, 161, 194, 169, 152, 168, 80, + 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, + 81, 0, 139, 96, 100, 95, 128, 155, 156, 94, + 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, + 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, + 134, 104, 124, 123, 125, 0, 0, 0, 148, 164, + 178, 88, 0, 0, 170, 171, 172, 173, 174, 0, + 0, 89, 126, 87, 105, 145, 108, 115, 138, 176, + 130, 143, 92, 163, 146, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 129, 0, 79, 0, 112, 175, 137, 99, 165, 97, + 0, 0, 0, 0, 0, 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 493, 0, 0, 0, 0, 0, 0, 90, 0, - 0, 0, 0, 488, 487, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 0, 0, 191, + 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, - 154, 136, 161, 193, 169, 152, 168, 80, 151, 160, + 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, - 139, 96, 100, 95, 128, 155, 156, 94, 176, 85, + 139, 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, - 124, 123, 125, 0, 0, 0, 148, 164, 177, 88, - 0, 0, 170, 171, 172, 173, 0, 0, 89, 126, - 87, 105, 145, 108, 115, 138, 175, 130, 143, 92, - 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129, 0, 0, 0, 0, 0, 0, 0, 79, - 97, 112, 174, 137, 99, 165, 111, 0, 113, 0, - 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, + 124, 123, 125, 0, 0, 0, 148, 164, 178, 88, + 0, 0, 170, 171, 172, 173, 174, 0, 0, 89, + 126, 87, 105, 145, 108, 115, 138, 176, 130, 143, + 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, + 79, 97, 112, 175, 137, 99, 165, 111, 0, 113, + 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 0, 0, 0, 0, 0, 0, 0, 90, - 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, + 0, 77, 0, 0, 712, 0, 0, 713, 0, 0, + 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 73, 74, 0, 69, 0, 0, 0, - 75, 135, 0, 0, 150, 102, 101, 140, 110, 0, - 0, 0, 93, 0, 142, 131, 162, 0, 132, 141, - 114, 154, 136, 161, 71, 169, 152, 168, 80, 151, - 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, - 0, 139, 96, 100, 95, 128, 155, 156, 94, 176, - 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, - 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, - 104, 124, 123, 125, 0, 0, 0, 148, 164, 177, - 88, 0, 0, 170, 171, 172, 173, 0, 0, 89, - 126, 87, 105, 145, 108, 115, 138, 175, 130, 143, - 92, 163, 146, 0, 72, 0, 23, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, - 79, 0, 112, 174, 137, 99, 165, 97, 0, 0, - 0, 0, 0, 111, 0, 113, 0, 0, 147, 122, + 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, + 0, 0, 135, 0, 0, 150, 102, 101, 140, 110, + 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, + 141, 114, 154, 136, 161, 194, 169, 152, 168, 80, + 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, + 81, 0, 139, 96, 100, 95, 128, 155, 156, 94, + 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, + 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, + 134, 104, 124, 123, 125, 0, 0, 0, 148, 164, + 178, 88, 0, 0, 170, 171, 172, 173, 174, 0, + 0, 89, 126, 87, 105, 145, 108, 115, 138, 176, + 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 0, 0, 77, 0, 0, - 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, + 129, 0, 79, 0, 112, 175, 137, 99, 165, 97, + 0, 610, 0, 0, 0, 111, 0, 113, 0, 0, + 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 609, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 192, 0, 0, 0, 0, 135, 0, - 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, - 0, 142, 131, 162, 0, 132, 141, 114, 154, 136, - 161, 193, 169, 152, 168, 80, 151, 160, 91, 144, - 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, - 100, 95, 128, 155, 156, 94, 176, 85, 167, 84, - 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, - 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, - 125, 0, 0, 0, 148, 164, 177, 88, 0, 0, - 170, 171, 172, 173, 0, 0, 89, 126, 87, 105, - 145, 108, 115, 138, 175, 130, 143, 92, 163, 146, - 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 129, 0, 79, 0, 112, - 174, 137, 99, 165, 97, 0, 0, 0, 0, 0, - 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, + 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, + 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, + 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, + 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, + 139, 96, 100, 95, 128, 155, 156, 94, 177, 85, + 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, + 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, + 124, 123, 125, 0, 0, 0, 148, 164, 178, 88, + 0, 0, 170, 171, 172, 173, 174, 0, 0, 89, + 126, 87, 105, 145, 108, 115, 138, 176, 130, 143, + 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 129, 0, 0, 0, 590, 0, 0, 0, + 79, 97, 112, 175, 137, 99, 165, 111, 0, 113, + 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 190, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, + 0, 191, 0, 592, 0, 0, 0, 0, 0, 0, + 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, + 0, 0, 135, 0, 0, 150, 102, 101, 140, 110, + 0, 0, 0, 93, 0, 142, 131, 162, 0, 588, + 141, 114, 154, 136, 161, 194, 169, 152, 168, 80, + 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, + 81, 0, 139, 96, 100, 95, 128, 155, 156, 94, + 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, + 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, + 134, 104, 124, 123, 125, 0, 0, 0, 148, 164, + 178, 88, 0, 0, 170, 171, 172, 173, 174, 0, + 0, 89, 126, 87, 105, 145, 108, 115, 138, 176, + 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, + 0, 0, 79, 97, 112, 175, 137, 99, 165, 111, + 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 0, 0, 135, 0, 0, 150, 102, - 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 0, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 0, 0, 0, + 52, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 0, 0, 0, 0, 135, 0, 0, 150, 102, 101, + 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, + 0, 132, 141, 114, 154, 136, 161, 194, 169, 152, + 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, + 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, + 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, + 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, + 133, 116, 134, 104, 124, 123, 125, 0, 0, 0, + 148, 164, 178, 88, 0, 0, 170, 171, 172, 173, + 174, 0, 0, 89, 126, 87, 105, 145, 108, 115, + 138, 176, 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, - 0, 0, 0, 0, 79, 97, 112, 174, 137, 99, + 0, 0, 0, 0, 79, 97, 112, 175, 137, 99, 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 77, 0, 0, 710, 0, - 0, 711, 0, 0, 90, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 191, 0, 592, 0, 0, + 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 0, 0, 0, 0, 135, 0, 0, 150, + 0, 193, 0, 0, 0, 0, 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, - 131, 162, 0, 132, 141, 114, 154, 136, 161, 193, + 131, 162, 0, 132, 141, 114, 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, - 128, 155, 156, 94, 176, 85, 167, 84, 86, 166, + 128, 155, 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, - 0, 0, 148, 164, 177, 88, 0, 0, 170, 171, - 172, 173, 0, 0, 89, 126, 87, 105, 145, 108, - 115, 138, 175, 130, 143, 92, 163, 146, 0, 0, + 0, 0, 148, 164, 178, 88, 0, 0, 170, 171, + 172, 173, 174, 0, 0, 89, 126, 87, 105, 145, + 108, 115, 138, 176, 130, 143, 92, 163, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, + 0, 0, 0, 0, 0, 0, 79, 97, 112, 175, + 137, 99, 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 129, 0, 79, 0, 112, 174, 137, - 99, 165, 97, 0, 608, 0, 0, 0, 111, 0, - 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 495, + 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 77, 0, 607, 0, 0, 0, 0, 0, - 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, - 0, 0, 0, 135, 0, 0, 150, 102, 101, 140, - 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, - 132, 141, 114, 154, 136, 161, 193, 169, 152, 168, - 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, - 107, 81, 0, 139, 96, 100, 95, 128, 155, 156, - 94, 176, 85, 167, 84, 86, 166, 127, 153, 159, - 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, - 116, 134, 104, 124, 123, 125, 0, 0, 0, 148, - 164, 177, 88, 0, 0, 170, 171, 172, 173, 0, - 0, 89, 126, 87, 105, 145, 108, 115, 138, 175, - 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 129, 0, 0, 0, 588, 0, - 0, 0, 79, 97, 112, 174, 137, 99, 165, 111, - 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, + 0, 0, 0, 193, 0, 0, 0, 0, 135, 0, + 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, + 0, 142, 131, 162, 0, 132, 141, 114, 154, 136, + 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, + 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, + 100, 95, 128, 155, 156, 94, 177, 85, 167, 84, + 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, + 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, + 125, 0, 0, 0, 148, 164, 178, 88, 0, 0, + 170, 171, 172, 173, 174, 0, 0, 89, 126, 87, + 105, 145, 108, 115, 138, 176, 130, 143, 92, 163, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 129, 79, 0, + 112, 175, 137, 99, 165, 568, 97, 0, 0, 0, + 0, 0, 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 190, 0, 590, 0, 0, 0, 0, - 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, - 0, 0, 0, 0, 135, 0, 0, 150, 102, 101, - 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, - 0, 586, 141, 114, 154, 136, 161, 193, 169, 152, - 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, - 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, - 156, 94, 176, 85, 167, 84, 86, 166, 127, 153, - 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, - 133, 116, 134, 104, 124, 123, 125, 0, 0, 0, - 148, 164, 177, 88, 0, 0, 170, 171, 172, 173, - 0, 0, 89, 126, 87, 105, 145, 108, 115, 138, - 175, 130, 143, 92, 163, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, - 0, 0, 0, 79, 97, 112, 174, 137, 99, 165, - 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 190, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 0, 0, 0, 0, 135, 0, 0, + 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, + 142, 131, 162, 0, 132, 141, 114, 154, 136, 161, + 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, + 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, + 95, 128, 155, 156, 94, 177, 85, 167, 84, 86, + 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, + 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, + 0, 0, 0, 148, 164, 178, 88, 0, 0, 170, + 171, 172, 173, 174, 0, 0, 89, 126, 87, 105, + 145, 108, 115, 138, 176, 130, 143, 92, 163, 146, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 129, + 0, 0, 0, 0, 0, 0, 0, 79, 97, 112, + 175, 137, 99, 165, 111, 0, 113, 0, 0, 147, + 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 0, 0, 135, 0, 0, 150, 102, - 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 0, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, - 0, 0, 0, 0, 79, 97, 112, 174, 137, 99, - 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 190, 0, 590, 0, 0, - 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 193, 0, 0, 0, 0, 135, + 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, + 93, 0, 142, 131, 162, 0, 132, 141, 114, 154, + 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, + 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, + 96, 100, 95, 128, 155, 156, 94, 177, 85, 167, + 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, + 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, + 123, 125, 0, 0, 0, 148, 164, 178, 88, 0, + 0, 170, 171, 172, 173, 174, 0, 0, 89, 126, + 87, 105, 145, 108, 115, 138, 176, 130, 143, 92, + 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 129, 0, 0, 0, 0, 0, 0, 0, 79, + 97, 112, 175, 137, 99, 165, 111, 0, 113, 0, + 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 0, 0, 0, 0, 135, 0, 0, 150, - 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, - 131, 162, 0, 132, 141, 114, 154, 136, 161, 193, - 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, - 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, - 128, 155, 156, 94, 176, 85, 167, 84, 86, 166, - 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, - 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, - 0, 0, 148, 164, 177, 88, 0, 0, 170, 171, - 172, 173, 0, 0, 89, 126, 87, 105, 145, 108, - 115, 138, 175, 130, 143, 92, 163, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, - 0, 0, 0, 0, 0, 79, 97, 112, 174, 137, - 99, 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 0, 493, 0, - 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 188, 0, 193, 0, 0, 0, + 0, 135, 0, 0, 150, 102, 101, 140, 110, 0, + 0, 0, 93, 0, 142, 131, 162, 0, 132, 141, + 114, 154, 136, 161, 194, 169, 152, 168, 80, 151, + 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, + 0, 139, 96, 100, 95, 128, 155, 156, 94, 177, + 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, + 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, + 104, 124, 123, 125, 0, 0, 0, 148, 164, 178, + 88, 0, 0, 170, 171, 172, 173, 174, 0, 0, + 89, 126, 87, 105, 145, 108, 115, 138, 176, 130, + 143, 92, 163, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, + 0, 79, 97, 112, 175, 137, 99, 165, 111, 0, + 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, + 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 192, 0, 0, 0, 0, 135, 0, 0, - 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, - 142, 131, 162, 0, 132, 141, 114, 154, 136, 161, - 193, 169, 152, 168, 80, 151, 160, 91, 144, 82, - 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, - 95, 128, 155, 156, 94, 176, 85, 167, 84, 86, - 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, - 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, - 0, 0, 0, 148, 164, 177, 88, 0, 0, 170, - 171, 172, 173, 0, 0, 89, 126, 87, 105, 145, - 108, 115, 138, 175, 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 129, 79, 0, 112, 174, - 137, 99, 165, 566, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, + 0, 0, 0, 135, 0, 0, 150, 102, 101, 140, + 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, + 132, 141, 114, 154, 136, 161, 194, 169, 152, 168, + 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, + 107, 81, 0, 139, 96, 100, 95, 128, 155, 156, + 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, + 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, + 116, 134, 104, 124, 123, 125, 0, 0, 0, 148, + 164, 178, 88, 0, 0, 170, 171, 172, 173, 174, + 0, 0, 89, 126, 87, 105, 145, 108, 115, 138, + 176, 130, 143, 92, 163, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, + 0, 0, 0, 79, 97, 112, 175, 137, 99, 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 0, 0, 135, 0, 0, 150, 102, + 193, 0, 0, 0, 0, 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 0, 132, 141, 114, 154, 136, 161, 193, 169, + 162, 0, 132, 141, 114, 154, 136, 161, 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, + 155, 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 0, 0, 310, - 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, - 0, 0, 0, 0, 79, 97, 112, 174, 137, 99, - 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 0, 0, 0, 0, 135, 0, 0, 150, - 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, - 131, 162, 0, 132, 141, 114, 154, 136, 161, 193, - 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, - 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, - 128, 155, 156, 94, 176, 85, 167, 84, 86, 166, - 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, - 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, - 0, 0, 148, 164, 177, 88, 0, 0, 170, 171, - 172, 173, 0, 0, 89, 126, 87, 105, 145, 108, - 115, 138, 175, 130, 143, 92, 163, 146, 0, 0, + 0, 148, 164, 178, 88, 0, 0, 170, 171, 172, + 173, 174, 0, 0, 89, 126, 87, 105, 145, 108, + 115, 138, 176, 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, - 0, 0, 0, 0, 0, 79, 97, 112, 174, 137, + 0, 0, 0, 0, 0, 79, 97, 112, 175, 137, 99, 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 192, 0, 0, 0, 0, 135, 0, 0, + 0, 0, 193, 0, 0, 0, 0, 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, 154, 136, 161, - 193, 169, 152, 168, 80, 151, 160, 91, 144, 82, + 194, 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, - 95, 128, 155, 156, 94, 176, 85, 167, 84, 86, + 95, 128, 155, 156, 94, 177, 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, - 0, 0, 0, 148, 164, 177, 88, 0, 0, 170, - 171, 172, 173, 0, 0, 89, 126, 87, 105, 145, - 108, 115, 138, 175, 130, 143, 92, 163, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, - 0, 0, 0, 0, 0, 0, 79, 97, 112, 174, - 137, 99, 165, 111, 0, 113, 0, 0, 147, 122, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, - 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 192, 0, 0, 0, 0, 135, 0, - 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, - 0, 142, 131, 162, 0, 132, 141, 114, 154, 136, - 161, 193, 169, 152, 168, 80, 151, 160, 91, 144, - 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, - 100, 95, 128, 155, 156, 94, 176, 85, 167, 84, - 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, - 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, - 125, 0, 0, 0, 148, 164, 177, 88, 0, 0, - 170, 171, 172, 173, 0, 0, 89, 126, 87, 105, - 145, 108, 115, 138, 175, 130, 143, 92, 163, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 0, 0, 0, 0, 0, 0, 0, 79, 97, 112, - 174, 137, 99, 165, 111, 0, 113, 0, 0, 147, - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, - 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 192, 0, 0, 0, 0, 135, - 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, - 93, 0, 142, 131, 162, 0, 132, 141, 114, 154, - 136, 161, 193, 169, 152, 168, 80, 151, 160, 91, - 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, - 96, 100, 95, 128, 155, 156, 94, 176, 85, 167, - 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, - 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, - 123, 125, 0, 0, 0, 148, 164, 177, 88, 0, - 0, 170, 171, 172, 173, 0, 0, 89, 126, 87, - 105, 145, 108, 115, 138, 175, 130, 143, 92, 163, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129, 0, 0, 0, 0, 0, 0, 0, 79, 97, - 112, 174, 137, 99, 165, 111, 0, 113, 0, 0, - 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, - 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 164, 178, 88, 0, 0, 170, + 171, 172, 173, 174, 0, 0, 89, 126, 87, 105, + 145, 108, 115, 138, 176, 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, - 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, - 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, - 154, 136, 161, 193, 169, 152, 168, 80, 151, 160, - 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, - 139, 96, 100, 95, 128, 155, 156, 94, 176, 85, - 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, - 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, - 124, 123, 125, 0, 0, 0, 148, 164, 177, 88, - 0, 0, 170, 171, 172, 173, 0, 0, 89, 126, - 87, 105, 145, 108, 115, 138, 175, 130, 143, 92, - 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, - 0, 112, 174, 137, 99, 165, + 0, 0, 0, 0, 0, 0, 0, 79, 0, 112, + 175, 137, 99, 165, } var yyPact = [...]int{ - 2092, -1000, -179, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1888, -1000, -180, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 875, 901, -1000, -1000, -1000, -1000, -1000, -1000, 698, - 7403, 73, 112, -8, 9859, 107, 1359, 10301, -1000, 5, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -85, -86, 654, - -1000, -1000, -1000, -1000, -1000, 869, 873, 689, 859, 765, - -1000, 5569, 78, 8747, 9638, 4861, -1000, 530, 102, 10301, - -149, 10080, 68, 68, 68, -1000, -1000, -1000, -1000, -1000, + -1000, 804, 841, -1000, -1000, -1000, -1000, -1000, -1000, 640, + 7504, 38, 58, -28, 10193, 57, 1284, 10637, -1000, -20, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -90, -91, 605, + -1000, -1000, -1000, -1000, -1000, 784, 802, 666, 790, 717, + -1000, 5662, 31, 9076, 9971, 4951, -1000, 511, 55, 10637, + -153, 10415, 34, 34, 34, -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, @@ -1755,22 +1791,22 @@ var yyPact = [...]int{ -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, -1000, 98, 10301, - -1000, 10301, 65, 524, 65, 65, 65, 10301, -1000, 146, - -1000, -1000, -1000, -1000, 10301, 522, 792, 34, 2869, 2869, - 2869, 2869, 10, 2869, -64, 706, 886, -1000, -1000, -1000, - -1000, 2869, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 453, 800, 6280, 6280, 875, -1000, - 654, -1000, -1000, -1000, 794, -1000, -1000, 312, 891, -1000, - 7182, 145, -1000, 6280, 1865, 638, -1000, -1000, 638, -1000, - -1000, 131, -1000, -1000, 6734, 6734, 6734, 6734, 6734, 6734, - 6734, 6734, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 638, -1000, 6044, 638, - 638, 638, 638, 638, 638, 638, 638, 6280, 638, 638, - 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, - 638, 9417, 633, 682, -1000, -1000, -1000, 839, 7857, 8526, - 10301, 602, -1000, 634, 4612, -103, -1000, -1000, -1000, 209, - 8305, -1000, -1000, -1000, 791, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 49, + 10637, -1000, 10637, 28, 510, 28, 28, 28, 10637, -1000, + 88, -1000, -1000, -1000, -1000, 10637, 509, 751, 48, 2951, + 2951, 2951, 2951, -15, 2951, -93, 675, 814, -1000, -1000, + -1000, -1000, -1000, 2951, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 375, 749, 6376, 6376, + 804, -1000, 605, -1000, -1000, -1000, 740, -1000, -1000, 237, + 820, -1000, 7282, 84, -1000, 6376, 1976, 603, -1000, -1000, + 603, -1000, -1000, 73, -1000, -1000, 6832, 6832, 6832, 6832, + 6832, 6832, 6832, 6832, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 603, -1000, + 6139, 603, 603, 603, 603, 603, 603, 603, 603, 6376, + 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, + 603, 603, 603, 9749, 563, 641, -1000, -1000, -1000, 775, + 8182, 8854, 10637, 549, -1000, 565, 4701, -120, -1000, -1000, + -1000, 166, 8632, -1000, -1000, -1000, 748, -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, @@ -1779,120 +1815,120 @@ var yyPact = [...]int{ -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, -1000, -1000, 528, - -1000, 1630, 521, 2869, 91, 646, 520, 239, 519, 10301, - 10301, 2869, 82, 10301, 835, 705, 10301, 503, 499, -1000, - 4363, -1000, 2869, 2869, 2869, 2869, 2869, 2869, 2869, 2869, - -1000, -1000, -1000, -1000, -1000, -1000, 2869, 2869, -1000, 889, - 288, -1000, -1000, 10301, 6280, -1000, -1000, -1000, -1000, -1000, - -1000, 896, 173, 418, 144, 635, -1000, 388, 869, 453, - 765, 8078, 716, -1000, -1000, 10301, -1000, 6280, 6280, 261, - -1000, 9189, -1000, -1000, 3367, 194, 6734, 375, 252, 6734, - 6734, 6734, 6734, 6734, 6734, 6734, 6734, 6734, 6734, 6734, - 6734, 6734, 6734, 6734, 383, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 496, -1000, 654, 717, 717, 156, 156, - 156, 156, 156, 156, 156, 6961, 5097, 453, 513, 213, - 6044, 5569, 5569, 6280, 6280, 10522, 10522, 5569, 864, 216, - 213, 10522, -1000, 453, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 5569, 5569, 5569, 5569, 44, 10301, -1000, 10522, 8747, - 8747, 8747, 8747, 8747, -1000, 758, 757, -1000, 747, 741, - 753, 10301, -1000, 509, 7857, 167, 638, -1000, 8968, -1000, - -1000, 44, 613, 8747, 10301, -1000, -1000, 4114, 634, -103, - 631, -1000, -113, -119, 5805, 155, -1000, -1000, -1000, -1000, - 2620, 192, 310, -57, -1000, -1000, -1000, 647, -1000, 647, - 647, 647, 647, -24, -24, -24, -24, -1000, -1000, -1000, - -1000, -1000, 695, 694, -1000, 647, 647, 647, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 687, 687, 687, 660, 660, 693, - -1000, 10301, -166, 493, 2869, 834, 2869, -1000, 92, -1000, - 10301, -1000, -1000, 10301, 2869, -1000, -1000, -1000, -1000, -1000, + -1000, 508, -1000, 1946, 502, 2951, 44, 444, 496, 179, + 485, 10637, 10637, 2951, 41, 10637, 773, 672, 10637, 484, + 471, -1000, 4451, -1000, 2951, 2951, 2951, 2951, 2951, 2951, + 2951, 2951, -1000, -1000, -1000, -1000, -1000, -1000, 2951, 2951, + -1000, 818, 225, -1000, -1000, 10637, 6376, -1000, -1000, -1000, + -1000, -1000, -1000, 835, 120, 356, 82, 568, -1000, 313, + 784, 375, 717, 8404, 685, -1000, -1000, 10637, -1000, 6376, + 6376, 263, -1000, 9520, -1000, -1000, 3451, 152, 6832, 271, + 231, 6832, 6832, 6832, 6832, 6832, 6832, 6832, 6832, 6832, + 6832, 6832, 6832, 6832, 6832, 6832, 322, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 468, -1000, 605, 472, 472, + 101, 101, 101, 101, 101, 101, 101, 7060, 5188, 375, + 467, 211, 6139, 5662, 5662, 6376, 6376, 10859, 10859, 5662, + 778, 171, 211, 10859, -1000, 375, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 5662, 5662, 5662, 5662, 4, 10637, -1000, + 10859, 9076, 9076, 9076, 9076, 9076, -1000, 701, 693, -1000, + 704, 690, 705, 10637, -1000, 465, 8182, 107, 603, -1000, + 9298, -1000, -1000, 4, 548, 9076, 10637, -1000, -1000, 4201, + 565, -120, 557, -1000, -108, -113, 5899, 100, -1000, -1000, + -1000, -1000, 2701, 127, 228, -84, -1000, -1000, -1000, 617, + -1000, 617, 617, 617, 617, -52, -52, -52, -52, -1000, + -1000, -1000, -1000, -1000, 637, 634, -1000, 617, 617, 617, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 10301, 266, 10301, 10301, -1000, 213, -1000, 772, 6280, 6280, - 3865, 6280, -1000, -1000, -1000, 800, -1000, 864, 876, -1000, - 784, 782, 5569, -1000, -1000, 194, 217, -1000, -1000, 267, - -1000, -1000, -1000, -1000, 143, 638, -1000, 1776, -1000, -1000, - -1000, -1000, 375, 6734, 6734, 6734, 75, 1776, 2086, 667, - 523, 156, 319, 319, 157, 157, 157, 157, 157, 298, - 298, -1000, -1000, -1000, 453, -1000, -1000, -1000, 453, 5569, - 632, -1000, -1000, 6280, -1000, 453, 489, 489, 399, 413, - 658, -1000, 137, 645, 489, 5569, 229, -1000, 6280, 453, - -1000, 489, 453, 489, 489, 556, 638, -1000, 641, -1000, - 202, 682, 692, 704, 1009, -1000, -1000, -1000, -1000, 754, - -1000, 730, -1000, -1000, -1000, -1000, -1000, 100, 99, 94, - 10080, -1000, 884, 8747, 595, -1000, -1000, 631, -103, -107, - -1000, -1000, -1000, 213, -1000, 490, 627, 2371, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 681, 465, -1000, 827, 182, - 185, 443, 816, -1000, -1000, 795, -1000, 250, -60, -1000, - -1000, 354, -24, -24, -1000, -1000, 155, 790, 155, 155, - 155, 402, 402, -1000, -1000, -1000, -1000, 348, -1000, -1000, - -1000, 347, -1000, 702, 10080, 2869, -1000, 3616, -1000, -1000, - -1000, -1000, -1000, -1000, 410, 260, 204, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 42, -1000, - 2869, -1000, 288, -1000, 394, 6280, -1000, -1000, 773, 213, - 213, 136, -1000, -1000, 10301, -1000, -1000, -1000, -1000, 623, - -1000, -1000, -1000, 3118, 5569, -1000, 75, 1776, 2071, -1000, - 6734, 6734, -1000, -1000, 489, 5569, 213, -1000, -1000, -1000, - 54, 383, 54, 6734, 6734, 3865, 6734, 6734, -160, 617, - 223, -1000, 6280, 338, -1000, -1000, -1000, -1000, -1000, 701, - 10522, 638, -1000, 7630, 10080, 875, 10522, 6280, 6280, -1000, - -1000, 6280, 668, -1000, 6280, -1000, -1000, -1000, 638, 638, - 638, 463, -1000, 875, 595, -1000, -1000, -1000, -115, -133, - -1000, -1000, 2620, -1000, 2620, 10080, 57, -1000, 431, 426, - -1000, -1000, 662, 669, 43, -1000, -1000, -1000, 536, 155, - 155, -1000, 193, -1000, -1000, -1000, 478, -1000, 475, 626, - 473, 10301, -1000, -1000, 621, -1000, 199, -1000, -1000, 10080, + -1000, -1000, -1000, -1000, -1000, -1000, 626, 626, 626, 620, + 620, 648, -1000, 10637, -170, 454, 2951, 771, 2951, -1000, + 93, -1000, 10637, -1000, -1000, 10637, 2951, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 10080, 10301, -1000, -1000, -1000, -1000, -1000, 10080, - -1000, 266, -1000, 213, -1000, 3616, -1000, 884, 8747, -1000, - -1000, 453, -1000, 6734, 1776, 1776, -1000, -1000, 453, 647, - 647, -1000, 647, 660, -1000, 647, -5, 647, -6, 453, - 453, 1488, 1815, -1000, 1327, 771, 638, -156, -1000, 213, - 6280, -1000, 796, 592, 550, -1000, -1000, 5333, 453, 471, - 135, 463, 869, -1000, 213, 213, 213, 10080, 213, 10080, - 10080, 10080, 1863, 10080, 869, -1000, -1000, -1000, -1000, 2371, - -1000, 452, -1000, 647, -1000, -1000, -1000, 10080, -52, 895, + -1000, -1000, 10637, 230, 10637, 10637, -1000, 211, -1000, 722, + 6376, 6376, 3951, 6376, -1000, -1000, -1000, 749, -1000, 778, + 801, -1000, 733, 732, 5662, -1000, -1000, 152, 163, -1000, + -1000, 274, -1000, -1000, -1000, -1000, 81, 603, -1000, 1829, + -1000, -1000, -1000, -1000, 271, 6832, 6832, 6832, 1345, 1829, + 2090, 191, 1420, 101, 355, 355, 131, 131, 131, 131, + 131, 448, 448, -1000, -1000, -1000, 375, -1000, -1000, -1000, + 375, 5662, 564, -1000, -1000, 6376, -1000, 375, 453, 453, + 347, 317, 606, -1000, 79, 595, 453, 5662, 200, -1000, + 6376, 375, -1000, 453, 375, 453, 453, 531, 603, -1000, + 570, -1000, 165, 641, 645, 671, 1285, -1000, -1000, -1000, + -1000, 689, -1000, 687, -1000, -1000, -1000, -1000, -1000, 52, + 51, 50, 10415, -1000, 813, 9076, 569, -1000, -1000, 557, + -120, -121, -1000, -1000, -1000, 211, -1000, 449, 552, 2451, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 625, 446, -1000, + 761, 140, 134, 443, 760, -1000, -1000, 750, -1000, 185, + -86, -1000, -1000, 327, -52, -52, -1000, -1000, 100, 747, + 100, 100, 100, 354, 354, -1000, -1000, -1000, -1000, 320, + -1000, -1000, -1000, 297, -1000, 657, 10415, 2951, -1000, 3701, + -1000, -1000, -1000, -1000, -1000, -1000, 676, 642, 154, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -24, 392, -24, 346, -1000, 324, 2869, 3616, 2620, - -1000, 644, -1000, -1000, -1000, -1000, 830, -1000, 880, 618, - -1000, 1776, -1000, -1000, 97, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 6734, 6734, -1000, 6734, 6734, 6734, - 453, 369, 213, 810, -1000, 638, -1000, -1000, 625, 10080, - 10080, -1000, -1000, 449, -1000, 447, 447, 447, 167, -1000, - -1000, 139, 10080, -1000, 442, 169, -1000, -137, 155, -1000, - 155, 532, 510, -1000, -1000, -1000, 10080, 638, 877, 872, - -1000, -1000, 1552, 1552, 1552, 1552, 41, -1000, -1000, 894, - -1000, 638, -1000, 654, 129, -1000, 10080, -1000, -1000, -1000, - -1000, -1000, 139, -1000, 408, 189, 368, -1000, 52, 258, - 804, -1000, 801, -1000, -1000, -1000, -1000, -1000, 425, 40, - -1000, 6280, 6280, -1000, -1000, -1000, -1000, 453, 39, -170, - 10522, 550, 453, 10080, -1000, -1000, -1000, 320, -1000, -1000, - 10301, -1000, 364, -1000, -1000, 646, 423, -1000, 10080, 213, - 545, -1000, 770, -163, -175, 491, -1000, -1000, -1000, 643, - -1000, -166, -1000, 40, 779, -1000, 763, -1000, 10080, -1000, - -1000, 32, -167, 407, 17, -172, -1000, 638, -176, 6507, - -1000, 1552, 453, -1000, -1000, + -1, -1000, 2951, -1000, 225, -1000, 353, 6376, -1000, -1000, + 720, 211, 211, 77, -1000, -1000, 10637, -1000, -1000, -1000, + -1000, 581, -1000, -1000, -1000, 3201, 5662, -1000, 1345, 1829, + 2075, -1000, 6832, 6832, -1000, -1000, 453, 5662, 211, -1000, + -1000, -1000, 233, 322, 233, 6832, 6832, 3951, 6832, 6832, + -163, 594, 164, -1000, 6376, 236, -1000, -1000, -1000, -1000, + -1000, 651, 10859, 603, -1000, 7954, 10415, 804, 10859, 6376, + 6376, -1000, -1000, 6376, 624, -1000, 6376, -1000, -1000, -1000, + 603, 603, 603, 426, -1000, 804, 569, -1000, -1000, -1000, + -110, -118, -1000, -1000, 2701, -1000, 2701, 10415, 20, -1000, + 442, 368, -1000, -1000, 621, 650, 30, -1000, -1000, -1000, + 427, 100, 100, -1000, 158, -1000, -1000, -1000, 440, -1000, + 436, 550, 434, 10637, -1000, -1000, 539, -1000, 160, -1000, + -1000, 10415, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 10415, 10637, -1000, -1000, -1000, -1000, + -1000, 10415, -1000, 230, -1000, 211, -1000, 3701, -1000, 813, + 9076, -1000, -1000, 375, -1000, 6832, 1829, 1829, -1000, -1000, + 375, 617, 617, -1000, 617, 620, -1000, 617, -35, 617, + -36, 375, 375, 1581, 1809, -1000, 1478, 796, 603, -160, + -1000, 211, 6376, -1000, 763, 528, 515, -1000, -1000, 5425, + 375, 430, 76, 426, 784, -1000, 211, 211, 211, 10415, + 211, 10415, 10415, 10415, 7726, 10415, 784, -1000, -1000, -1000, + -1000, 2451, -1000, 423, -1000, 617, -1000, -1000, -1000, 10415, + -76, 825, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -52, 350, -52, 285, -1000, 249, 2951, + 3701, 2701, -1000, 614, -1000, -1000, -1000, -1000, 766, -1000, + 810, 535, -1000, 1829, -1000, -1000, 70, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 6832, 6832, -1000, 6832, + 6832, 6832, 375, 348, 211, 757, -1000, 603, -1000, -1000, + 580, 10415, 10415, -1000, -1000, 420, -1000, 407, 407, 407, + 107, -1000, -1000, 98, 10415, -1000, 385, 147, -1000, -143, + 100, -1000, 100, 408, 386, -1000, -1000, -1000, 10415, 603, + 803, 798, -1000, -1000, 1705, 1705, 1705, 1705, 125, -1000, + -1000, 823, -1000, 603, -1000, 605, 69, -1000, 10415, -1000, + -1000, -1000, -1000, -1000, 98, -1000, 359, 132, 344, -1000, + 18, 205, 756, -1000, 755, -1000, -1000, -1000, -1000, -1000, + 374, -2, -1000, 6376, 6376, -1000, -1000, -1000, -1000, 375, + 35, -173, 10859, 515, 375, 10415, -1000, -1000, -1000, 243, + -1000, -1000, 10637, -1000, 323, -1000, -1000, 444, 367, -1000, + 10415, 211, 474, -1000, 716, -168, -176, 432, -1000, -1000, + -1000, 608, -1000, -170, -1000, -2, 731, -1000, 713, -1000, + 10415, -1000, -1000, -6, -171, 365, -8, -174, -1000, 603, + -177, 6604, -1000, 1705, 375, -1000, -1000, } var yyPgo = [...]int{ - 0, 1151, 50, 477, 1147, 1146, 1145, 1144, 1143, 1142, - 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1129, 1127, 1125, - 1124, 1123, 1122, 1121, 101, 1107, 1106, 1102, 60, 1101, - 73, 1100, 1099, 32, 239, 36, 30, 7, 1096, 21, - 63, 56, 1095, 48, 1093, 1090, 74, 1089, 61, 1088, - 1087, 645, 1086, 1083, 10, 26, 1078, 1074, 1071, 1070, - 69, 670, 1068, 1066, 1065, 1064, 1063, 1060, 41, 3, - 9, 22, 12, 1049, 166, 11, 1045, 40, 1042, 1041, - 1040, 1039, 23, 1034, 45, 1032, 15, 44, 1027, 5, - 54, 27, 25, 8, 71, 49, 1026, 24, 53, 43, - 1025, 1024, 403, 1023, 1018, 37, 1016, 33, 153, 381, - 1006, 1005, 1004, 1003, 28, 0, 402, 493, 57, 1002, - 1001, 998, 1193, 80, 59, 19, 997, 52, 1260, 39, - 994, 990, 34, 987, 986, 985, 983, 970, 967, 963, - 82, 962, 958, 957, 58, 62, 955, 953, 55, 18, - 951, 950, 946, 29, 46, 945, 944, 42, 942, 941, - 939, 937, 17, 14, 935, 13, 934, 6, 920, 20, - 918, 1, 917, 16, 916, 2, 914, 4, 47, 910, - 909, 67, 253, 908, 907, 78, + 0, 1073, 12, 414, 1072, 1071, 1070, 1069, 1068, 1067, + 1066, 1062, 1060, 1057, 1056, 1055, 1047, 1044, 1042, 1041, + 1040, 1039, 1038, 1037, 107, 1036, 1035, 1034, 57, 1030, + 60, 1028, 1027, 30, 71, 33, 34, 1063, 1026, 36, + 83, 55, 1023, 46, 1022, 1020, 73, 1019, 69, 1016, + 1015, 194, 1014, 1013, 14, 42, 1011, 1010, 1009, 1007, + 59, 578, 1004, 1003, 1001, 993, 992, 991, 47, 3, + 4, 10, 16, 990, 166, 8, 988, 45, 986, 985, + 983, 980, 32, 979, 50, 976, 21, 48, 969, 11, + 54, 29, 23, 5, 74, 49, 963, 25, 53, 44, + 962, 961, 310, 958, 949, 39, 948, 24, 142, 399, + 946, 942, 941, 940, 27, 0, 505, 305, 58, 934, + 932, 930, 1286, 61, 56, 18, 929, 101, 266, 37, + 927, 925, 28, 924, 919, 916, 912, 910, 909, 908, + 298, 907, 904, 900, 17, 52, 884, 882, 63, 20, + 881, 879, 876, 41, 51, 875, 874, 43, 871, 869, + 868, 866, 22, 15, 864, 7, 863, 9, 862, 26, + 861, 1, 860, 19, 854, 2, 853, 6, 40, 851, + 850, 67, 465, 848, 847, 99, } var yyR1 = [...]int{ @@ -1921,41 +1957,42 @@ var yyR1 = [...]int{ 170, 170, 171, 171, 13, 14, 14, 14, 14, 14, 15, 15, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 106, - 106, 104, 104, 105, 105, 105, 107, 107, 107, 131, - 131, 131, 19, 19, 21, 21, 22, 23, 20, 20, - 20, 20, 20, 20, 20, 184, 24, 25, 25, 26, - 26, 26, 30, 30, 30, 28, 28, 29, 29, 35, - 35, 34, 34, 36, 36, 36, 36, 119, 119, 119, - 118, 118, 38, 38, 39, 39, 40, 40, 41, 41, - 41, 53, 53, 89, 89, 91, 91, 42, 42, 42, - 42, 43, 43, 44, 44, 45, 45, 126, 126, 125, - 125, 125, 124, 124, 47, 47, 47, 49, 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, 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, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 106, 106, 104, 104, 105, 105, 105, 107, 107, 107, + 131, 131, 131, 19, 19, 21, 21, 22, 23, 20, + 20, 20, 20, 20, 20, 20, 184, 24, 25, 25, + 26, 26, 26, 30, 30, 30, 28, 28, 29, 29, + 35, 35, 34, 34, 36, 36, 36, 36, 119, 119, + 119, 118, 118, 38, 38, 39, 39, 40, 40, 41, + 41, 41, 53, 53, 89, 89, 91, 91, 42, 42, + 42, 42, 43, 43, 44, 44, 45, 45, 126, 126, + 125, 125, 125, 124, 124, 47, 47, 47, 49, 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, 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, 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, 185, 185, 66, 66, 66, 66, - 31, 31, 31, 31, 31, 129, 129, 132, 132, 132, + 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, 185, 185, 66, 66, 66, + 66, 31, 31, 31, 31, 31, 129, 129, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 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, 121, 121, 121, 101, 101, 108, 108, 109, 109, - 102, 102, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 111, 111, 111, 112, 112, 113, 113, 113, - 120, 120, 116, 116, 117, 117, 122, 122, 123, 123, + 132, 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, 121, 121, 121, 101, 101, 108, 108, 109, + 109, 102, 102, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 111, 111, 111, 112, 112, 113, 113, + 113, 120, 120, 116, 116, 117, 117, 122, 122, 123, + 123, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, @@ -1964,8 +2001,7 @@ var yyR1 = [...]int{ 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, + 114, 114, 114, 114, 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, @@ -1975,7 +2011,8 @@ var yyR1 = [...]int{ 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, 181, 182, 127, 128, 128, 128, + 115, 115, 115, 115, 115, 115, 181, 182, 127, 128, + 128, 128, } var yyR2 = [...]int{ @@ -2004,41 +2041,41 @@ var yyR2 = [...]int{ 1, 3, 8, 8, 5, 4, 6, 5, 4, 4, 3, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 4, 3, 7, 5, 4, - 2, 2, 4, 4, 2, 2, 2, 2, 3, 1, - 1, 0, 1, 0, 2, 2, 0, 2, 2, 0, - 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, - 2, 2, 2, 3, 3, 0, 2, 0, 2, 1, - 2, 2, 0, 1, 1, 0, 1, 0, 1, 0, - 1, 1, 3, 1, 2, 3, 5, 0, 1, 2, - 1, 1, 0, 2, 1, 3, 1, 1, 1, 3, - 3, 3, 7, 1, 3, 1, 3, 4, 4, 4, - 3, 2, 4, 0, 1, 0, 2, 0, 1, 0, - 1, 2, 1, 1, 1, 2, 2, 1, 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, 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, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 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, + 2, 2, 4, 4, 2, 2, 2, 2, 2, 3, + 1, 1, 0, 1, 0, 2, 2, 0, 2, 2, + 0, 1, 1, 2, 1, 1, 2, 1, 1, 2, + 2, 2, 2, 2, 3, 3, 0, 2, 0, 2, + 1, 2, 2, 0, 1, 1, 0, 1, 0, 1, + 0, 1, 1, 3, 1, 2, 3, 5, 0, 1, + 2, 1, 1, 0, 2, 1, 3, 1, 1, 1, + 3, 3, 3, 7, 1, 3, 1, 3, 4, 4, + 4, 3, 2, 4, 0, 1, 0, 2, 0, 1, + 0, 1, 2, 1, 1, 1, 2, 2, 1, 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, 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, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 2, 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, 1, 1, 1, 1, @@ -2058,7 +2095,8 @@ var yyR2 = [...]int{ 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, 0, 0, + 1, 1, } var yyChk = [...]int{ @@ -2067,270 +2105,270 @@ var yyChk = [...]int{ -20, -3, -4, 6, 7, -27, 9, 10, 30, -16, 114, 115, 117, 116, 143, 118, 136, 50, 155, 156, 158, 159, 25, 137, 138, 141, 142, 31, 32, -181, - 8, 239, 54, -180, 254, -82, 15, -26, 5, -24, + 8, 240, 54, -180, 255, -82, 15, -26, 5, -24, -184, -24, -24, -24, -24, -24, -159, 54, -113, 123, - 71, 151, 231, 120, 121, 127, -116, 57, -115, 247, - 155, 166, 160, 187, 179, 177, 180, 218, 207, 216, - 66, 158, 227, 139, 175, 171, 169, 27, 192, 252, - 170, 133, 132, 193, 197, 219, 164, 165, 221, 191, - 135, 33, 249, 35, 147, 222, 195, 190, 186, 189, - 163, 185, 39, 199, 198, 200, 217, 182, 172, 18, - 225, 142, 145, 194, 196, 128, 149, 251, 223, 168, - 134, 146, 141, 226, 159, 220, 229, 38, 204, 162, + 71, 151, 232, 120, 121, 127, -116, 57, -115, 248, + 155, 166, 160, 187, 179, 177, 180, 219, 207, 217, + 66, 158, 228, 139, 175, 171, 169, 27, 192, 253, + 170, 133, 132, 193, 197, 220, 164, 165, 222, 191, + 135, 33, 250, 35, 147, 223, 195, 190, 186, 189, + 163, 185, 39, 199, 198, 200, 218, 182, 172, 18, + 226, 142, 145, 194, 196, 128, 149, 252, 224, 168, + 134, 146, 141, 227, 159, 221, 230, 38, 204, 162, 131, 156, 153, 183, 148, 173, 174, 188, 161, 184, - 157, 150, 143, 228, 205, 253, 181, 178, 154, 152, - 210, 211, 212, 213, 250, 224, 176, 206, -102, 123, - 125, 121, 121, 122, 123, 231, 120, 121, -51, -122, - 57, -115, 123, 151, 121, 107, 180, 114, 208, 122, - 33, 149, -131, 121, -104, 152, 207, 210, 211, 212, - 213, 57, 220, 219, 214, -122, 157, -127, -127, -127, - -127, -127, 209, 209, -2, -86, 17, 16, -5, -3, - -181, 6, 20, 21, -30, 40, 41, -25, -36, 98, - -37, -122, -56, 73, -61, 29, 57, -115, 23, -60, - -57, -75, -73, -74, 107, 108, 109, 96, 97, 104, - 74, 110, -65, -63, -64, -66, 59, 58, 67, 60, - 61, 62, 63, 68, 69, 70, -116, -71, -181, 44, - 45, 240, 241, 242, 243, 246, 244, 76, 34, 230, - 238, 237, 236, 234, 235, 232, 233, 126, 231, 102, - 239, -102, -39, -40, -41, -42, -53, -74, -181, -51, - 11, -46, -51, -94, -130, 157, -98, 220, 219, -117, - -96, -116, -114, 218, 180, 217, 119, 72, 22, 24, - 202, 75, 107, 16, 76, 106, 240, 114, 48, 232, - 233, 230, 242, 243, 231, 208, 29, 10, 25, 137, - 21, 100, 116, 79, 80, 140, 23, 138, 70, 19, - 51, 11, 13, 14, 126, 125, 91, 122, 46, 8, - 110, 26, 88, 42, 28, 44, 89, 17, 234, 235, - 31, 246, 144, 102, 49, 36, 73, 68, 52, 71, - 15, 47, 90, 117, 239, 45, 120, 6, 245, 30, - 136, 43, 121, 209, 78, 124, 69, 5, 127, 32, - 9, 50, 53, 236, 237, 238, 34, 77, 12, -160, - -154, 57, 122, -51, 239, -116, -109, 126, -109, -109, - 121, -51, -51, -108, 126, 57, -108, -108, -108, -51, - 111, -51, 57, 30, 231, 57, 149, 121, 150, 123, - -128, -181, -117, -128, -128, -128, 153, 154, -128, 216, - -106, 209, 215, 52, 12, -128, -127, -127, -182, 56, - -87, 19, 31, -37, -122, -83, -84, -37, -82, -2, - -24, 36, -28, 21, 65, 11, -119, 72, 71, 88, - -118, 22, -116, 59, 111, -37, -58, 91, 73, 89, - 90, 75, 93, 92, 103, 96, 97, 98, 99, 100, - 101, 102, 94, 95, 106, 81, 82, 83, 84, 85, - 86, 87, -103, -181, -74, -181, 112, 113, -61, -61, - -61, -61, -61, -61, -61, -61, -181, -2, -69, -37, - -181, -181, -181, -181, -181, -181, -181, -181, -181, -78, - -37, -181, -185, -181, -185, -185, -185, -185, -185, -185, - -185, -181, -181, -181, -181, -52, 26, -51, 30, 55, - -47, -49, -48, -50, 42, 46, 48, 43, 44, 45, - 49, -126, 22, -39, -181, -125, 145, -124, 22, -122, - 59, -51, -46, -183, 55, 11, 53, 55, -94, 157, - -95, -99, 221, 223, 81, -121, -116, 59, 29, 30, - 56, 55, -133, -136, -138, -137, -139, -134, -135, 177, - 178, 107, 181, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 30, 139, 173, 174, 175, 176, 193, - 194, 195, 196, 197, 198, 199, 200, 160, 161, 162, - 163, 164, 165, 166, 168, 169, 170, 171, 172, 57, - -128, 123, -177, 53, 57, 73, 57, -51, -51, -128, - 124, -51, 23, 52, -51, 57, 57, -123, -122, -114, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - 11, -105, 11, 91, -51, -37, 9, 91, 55, 18, - 111, 55, -85, 24, 25, -86, -182, -30, -62, -116, - 60, 63, -29, 43, -51, -37, -37, -67, 68, 73, - 69, 70, -118, 98, -123, -117, -114, -61, -68, -71, - -74, 64, 91, 89, 90, 75, -61, -61, -61, -61, + 157, 150, 143, 229, 205, 254, 181, 178, 154, 152, + 210, 211, 212, 213, 214, 251, 225, 176, 206, -102, + 123, 125, 121, 121, 122, 123, 232, 120, 121, -51, + -122, 57, -115, 123, 151, 121, 107, 180, 114, 208, + 122, 33, 149, -131, 121, -104, 152, 207, 210, 211, + 212, 214, 213, 57, 221, 220, 215, -122, 157, -127, + -127, -127, -127, -127, 209, 209, -2, -86, 17, 16, + -5, -3, -181, 6, 20, 21, -30, 40, 41, -25, + -36, 98, -37, -122, -56, 73, -61, 29, 57, -115, + 23, -60, -57, -75, -73, -74, 107, 108, 109, 96, + 97, 104, 74, 110, -65, -63, -64, -66, 59, 58, + 67, 60, 61, 62, 63, 68, 69, 70, -116, -71, + -181, 44, 45, 241, 242, 243, 244, 247, 245, 76, + 34, 231, 239, 238, 237, 235, 236, 233, 234, 126, + 232, 102, 240, -102, -39, -40, -41, -42, -53, -74, + -181, -51, 11, -46, -51, -94, -130, 157, -98, 221, + 220, -117, -96, -116, -114, 219, 180, 218, 119, 72, + 22, 24, 202, 75, 107, 16, 76, 106, 241, 114, + 48, 233, 234, 231, 243, 244, 232, 208, 29, 10, + 25, 137, 21, 100, 116, 79, 80, 140, 23, 138, + 70, 19, 51, 11, 13, 14, 126, 125, 91, 122, + 46, 8, 110, 26, 88, 42, 28, 44, 89, 17, + 235, 236, 31, 247, 144, 102, 49, 36, 73, 68, + 52, 71, 15, 47, 90, 117, 240, 45, 120, 6, + 246, 30, 136, 43, 121, 209, 78, 124, 69, 5, + 127, 32, 9, 50, 53, 237, 238, 239, 34, 77, + 12, -160, -154, 57, 122, -51, 240, -116, -109, 126, + -109, -109, 121, -51, -51, -108, 126, 57, -108, -108, + -108, -51, 111, -51, 57, 30, 232, 57, 149, 121, + 150, 123, -128, -181, -117, -128, -128, -128, 153, 154, + -128, 217, -106, 209, 216, 52, 12, -128, -127, -127, + -182, 56, -87, 19, 31, -37, -122, -83, -84, -37, + -82, -2, -24, 36, -28, 21, 65, 11, -119, 72, + 71, 88, -118, 22, -116, 59, 111, -37, -58, 91, + 73, 89, 90, 75, 93, 92, 103, 96, 97, 98, + 99, 100, 101, 102, 94, 95, 106, 81, 82, 83, + 84, 85, 86, 87, -103, -181, -74, -181, 112, 113, + -61, -61, -61, -61, -61, -61, -61, -61, -181, -2, + -69, -37, -181, -181, -181, -181, -181, -181, -181, -181, + -181, -78, -37, -181, -185, -181, -185, -185, -185, -185, + -185, -185, -185, -181, -181, -181, -181, -52, 26, -51, + 30, 55, -47, -49, -48, -50, 42, 46, 48, 43, + 44, 45, 49, -126, 22, -39, -181, -125, 145, -124, + 22, -122, 59, -51, -46, -183, 55, 11, 53, 55, + -94, 157, -95, -99, 222, 224, 81, -121, -116, 59, + 29, 30, 56, 55, -133, -136, -138, -137, -139, -134, + -135, 177, 178, 107, 181, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 30, 139, 173, 174, 175, + 176, 193, 194, 195, 196, 197, 198, 199, 200, 160, + 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, + 172, 57, -128, 123, -177, 53, 57, 73, 57, -51, + -51, -128, 124, -51, 23, 52, -51, 57, 57, -123, + -122, -114, -128, -128, -128, -128, -128, -128, -128, -128, + -128, -128, 11, -105, 11, 91, -51, -37, 9, 91, + 55, 18, 111, 55, -85, 24, 25, -86, -182, -30, + -62, -116, 60, 63, -29, 43, -51, -37, -37, -67, + 68, 73, 69, 70, -118, 98, -123, -117, -114, -61, + -68, -71, -74, 64, 91, 89, 90, 75, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -129, 57, 59, 57, -60, -60, -116, -35, 21, - -34, -36, -182, 55, -182, -2, -34, -34, -37, -37, - -75, -116, -122, -75, -34, -28, -76, -77, 77, -75, - -182, -34, -35, -34, -34, -90, 145, -51, -93, -97, - -75, -40, -41, -41, -40, -41, 42, 42, 42, 47, - 42, 47, 42, -48, -122, -182, -54, 50, 125, 51, - -181, -124, -90, 53, -39, -51, -98, -95, 55, 222, - 224, 225, 52, -37, -145, 106, -161, -162, -163, -117, - 59, 60, -154, -155, -156, -164, 130, -169, 128, 131, - 127, -157, 133, 122, 28, -150, 68, 73, -146, 205, - -140, 54, -140, -140, -140, -140, -144, 180, -144, -144, - -144, 54, 54, -140, -140, -140, -148, 54, -148, -148, - -149, 54, -149, -120, 53, -51, -175, 250, -176, 57, - -128, 23, -128, -110, 119, 116, 117, -172, 115, 202, - 180, 66, 29, 15, 240, 145, 253, 57, 146, -51, - -51, -128, -51, -107, 89, 12, -122, -122, 38, -37, - -37, -123, -84, -87, -101, 19, 11, 34, 34, -34, - 68, 69, 70, 111, -181, -68, -61, -61, -61, -33, - 140, 72, -182, -182, -34, 55, -37, -182, -182, -182, - 55, 53, 22, 55, 11, 111, 55, 11, -182, -34, - -79, -77, 79, -37, -182, -182, -182, -182, -182, -59, - 30, 34, -2, -181, -181, -55, 55, 12, 81, -44, - -43, 52, 53, -45, 52, -43, 42, 42, 122, 122, - 122, -91, -116, -55, -39, -55, -99, -100, 226, 223, - 229, 57, 55, -163, 81, 54, 57, 28, -157, -157, - 57, 57, 28, -141, 29, 68, -147, 206, 60, -144, - -144, -145, 30, -145, -145, -145, -153, 59, -153, 60, - 60, 52, -116, -128, -174, -173, -117, -127, -178, 151, - 129, 130, 133, 132, 57, 122, 28, 128, 131, 145, - 127, -178, 151, -111, -112, 124, 22, 122, 28, 145, - -128, -105, 59, -37, 39, 111, -51, -38, 11, 98, - -117, -35, -33, 72, -61, -61, -182, -36, -132, 107, - 177, 139, 175, 171, 191, 182, 204, 173, 205, -129, - -132, -61, -61, -117, -61, -61, 247, -82, 80, -37, - 78, -92, 52, -93, -70, -72, -71, -181, -2, -88, - -116, -91, -82, -97, -37, -37, -37, 54, -37, -181, - -181, -181, -182, 55, -82, -55, 223, 227, 228, -162, - -163, -166, -165, -116, -169, 57, 57, 54, -143, 52, - 59, 60, 61, 68, 230, 67, 56, -145, -145, 57, - 107, 56, 55, 56, 55, 56, 55, -51, 55, 81, - -127, -116, -127, -116, -51, -127, -116, -107, -55, -39, - -182, -61, -182, -140, -140, -140, -149, -140, 165, -140, - 165, -182, -182, -182, 55, 19, -182, 55, 19, -181, - -32, 245, -37, 27, -92, 55, -182, -182, -182, 55, - 111, -182, -86, -89, -116, -89, -89, -89, -125, -116, - -86, 56, 55, -140, -89, -151, 202, 9, -144, 59, - -144, 60, 60, -128, -173, -163, 54, 26, -80, 13, - -144, 57, -61, -61, -61, -61, -61, -182, 59, 28, - -72, 34, -2, -181, -116, -116, 55, 56, -182, -182, - -182, -54, -168, -167, 53, 135, 66, -165, 56, -152, - 128, 28, 127, 230, -145, -145, 56, 56, -89, -181, - -81, 14, 16, -182, -182, -182, -182, -31, 91, 250, - 9, -70, -2, 111, -116, -167, 57, -158, 81, 59, - 134, -142, 66, 28, 28, 56, -170, -171, 145, -37, - -69, -182, 248, 49, 251, -93, -182, -116, 60, -51, - 59, -177, -182, 55, -116, 39, 249, 252, 54, -175, - -171, 34, 39, -89, 147, 250, 56, 148, 251, -181, - 252, -61, 144, -182, -182, + -61, -61, -61, -129, 57, 59, 57, -60, -60, -116, + -35, 21, -34, -36, -182, 55, -182, -2, -34, -34, + -37, -37, -75, -116, -122, -75, -34, -28, -76, -77, + 77, -75, -182, -34, -35, -34, -34, -90, 145, -51, + -93, -97, -75, -40, -41, -41, -40, -41, 42, 42, + 42, 47, 42, 47, 42, -48, -122, -182, -54, 50, + 125, 51, -181, -124, -90, 53, -39, -51, -98, -95, + 55, 223, 225, 226, 52, -37, -145, 106, -161, -162, + -163, -117, 59, 60, -154, -155, -156, -164, 130, -169, + 128, 131, 127, -157, 133, 122, 28, -150, 68, 73, + -146, 205, -140, 54, -140, -140, -140, -140, -144, 180, + -144, -144, -144, 54, 54, -140, -140, -140, -148, 54, + -148, -148, -149, 54, -149, -120, 53, -51, -175, 251, + -176, 57, -128, 23, -128, -110, 119, 116, 117, -172, + 115, 202, 180, 66, 29, 15, 241, 145, 254, 57, + 146, -51, -51, -128, -51, -107, 89, 12, -122, -122, + 38, -37, -37, -123, -84, -87, -101, 19, 11, 34, + 34, -34, 68, 69, 70, 111, -181, -68, -61, -61, + -61, -33, 140, 72, -182, -182, -34, 55, -37, -182, + -182, -182, 55, 53, 22, 55, 11, 111, 55, 11, + -182, -34, -79, -77, 79, -37, -182, -182, -182, -182, + -182, -59, 30, 34, -2, -181, -181, -55, 55, 12, + 81, -44, -43, 52, 53, -45, 52, -43, 42, 42, + 122, 122, 122, -91, -116, -55, -39, -55, -99, -100, + 227, 224, 230, 57, 55, -163, 81, 54, 57, 28, + -157, -157, 57, 57, 28, -141, 29, 68, -147, 206, + 60, -144, -144, -145, 30, -145, -145, -145, -153, 59, + -153, 60, 60, 52, -116, -128, -174, -173, -117, -127, + -178, 151, 129, 130, 133, 132, 57, 122, 28, 128, + 131, 145, 127, -178, 151, -111, -112, 124, 22, 122, + 28, 145, -128, -105, 59, -37, 39, 111, -51, -38, + 11, 98, -117, -35, -33, 72, -61, -61, -182, -36, + -132, 107, 177, 139, 175, 171, 191, 182, 204, 173, + 205, -129, -132, -61, -61, -117, -61, -61, 248, -82, + 80, -37, 78, -92, 52, -93, -70, -72, -71, -181, + -2, -88, -116, -91, -82, -97, -37, -37, -37, 54, + -37, -181, -181, -181, -182, 55, -82, -55, 224, 228, + 229, -162, -163, -166, -165, -116, -169, 57, 57, 54, + -143, 52, 59, 60, 61, 68, 231, 67, 56, -145, + -145, 57, 107, 56, 55, 56, 55, 56, 55, -51, + 55, 81, -127, -116, -127, -116, -51, -127, -116, -107, + -55, -39, -182, -61, -182, -140, -140, -140, -149, -140, + 165, -140, 165, -182, -182, -182, 55, 19, -182, 55, + 19, -181, -32, 246, -37, 27, -92, 55, -182, -182, + -182, 55, 111, -182, -86, -89, -116, -89, -89, -89, + -125, -116, -86, 56, 55, -140, -89, -151, 202, 9, + -144, 59, -144, 60, 60, -128, -173, -163, 54, 26, + -80, 13, -144, 57, -61, -61, -61, -61, -61, -182, + 59, 28, -72, 34, -2, -181, -116, -116, 55, 56, + -182, -182, -182, -54, -168, -167, 53, 135, 66, -165, + 56, -152, 128, 28, 127, 231, -145, -145, 56, 56, + -89, -181, -81, 14, 16, -182, -182, -182, -182, -31, + 91, 251, 9, -70, -2, 111, -116, -167, 57, -158, + 81, 59, 134, -142, 66, 28, 28, 56, -170, -171, + 145, -37, -69, -182, 249, 49, 252, -93, -182, -116, + 60, -51, 59, -177, -182, 55, -116, 39, 250, 253, + 54, -175, -171, 34, 39, -89, 147, 251, 56, 148, + 252, -181, 253, -61, 144, -182, -182, } var yyDef = [...]int{ 22, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 517, 0, 285, 285, 285, 285, 285, 285, 0, - 587, 570, 0, 0, 0, 0, -2, 273, 274, 0, - 276, 277, 796, 796, 796, 796, 796, 0, 0, 0, - 34, 35, 794, 1, 3, 525, 0, 0, 289, 292, - 287, 0, 570, 0, 0, 0, 61, 0, 0, 783, - 0, 784, 568, 568, 568, 588, 589, 592, 593, 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, 776, 777, 778, 779, 780, 781, 782, 785, - 786, 787, 788, 789, 790, 791, 792, 793, 0, 0, - 571, 0, 566, 0, 566, 566, 566, 0, 231, 356, - 596, 597, 783, 784, 0, 0, 0, 0, 797, 797, - 797, 797, 0, 797, 0, 250, 251, 254, 255, 256, - 257, 797, 270, 271, 262, 272, 275, 278, 279, 280, - 281, 282, 796, 796, 28, 529, 0, 0, 517, 30, - 0, 285, 290, 291, 295, 293, 294, 286, 0, 303, - 307, 0, 364, 0, 369, 371, -2, -2, 0, 406, - 407, 408, 409, 410, 0, 0, 0, 0, 0, 0, - 0, 0, 434, 435, 436, 437, 502, 503, 504, 505, - 506, 507, 508, 509, 373, 374, 499, 549, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 490, 0, 464, - 464, 464, 464, 464, 464, 464, 464, 0, 0, 0, - 0, 0, 0, 314, 316, 317, 318, 337, 0, 339, - 0, 0, 42, 46, 0, 774, 553, -2, -2, 0, - 0, 594, 595, -2, 700, -2, 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, 689, 690, 691, 692, 0, - 78, 0, 0, 797, 0, 68, 0, 0, 0, 0, - 0, 797, 0, 0, 0, 0, 0, 0, 0, 230, - 0, 232, 797, 797, 797, 797, 797, 797, 797, 797, - 241, 798, 799, 242, 243, 244, 797, 797, 246, 0, - 263, 259, 260, 0, 0, 258, 283, 284, 29, 795, - 23, 0, 0, 526, 0, 518, 519, 522, 525, 28, - 292, 0, 297, 296, 288, 0, 304, 0, 0, 0, - 308, 0, 310, 311, 0, 367, 0, 0, 0, 0, + 21, 518, 0, 286, 286, 286, 286, 286, 286, 0, + 588, 571, 0, 0, 0, 0, -2, 274, 275, 0, + 277, 278, 798, 798, 798, 798, 798, 0, 0, 0, + 34, 35, 796, 1, 3, 526, 0, 0, 290, 293, + 288, 0, 571, 0, 0, 0, 61, 0, 0, 784, + 0, 785, 569, 569, 569, 589, 590, 593, 594, 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, 776, 777, 778, 779, 780, 781, 782, 783, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 0, + 0, 572, 0, 567, 0, 567, 567, 567, 0, 231, + 357, 597, 598, 784, 785, 0, 0, 0, 0, 799, + 799, 799, 799, 0, 799, 0, 250, 251, 254, 255, + 256, 257, 258, 799, 271, 272, 263, 273, 276, 279, + 280, 281, 282, 283, 798, 798, 28, 530, 0, 0, + 518, 30, 0, 286, 291, 292, 296, 294, 295, 287, + 0, 304, 308, 0, 365, 0, 370, 372, -2, -2, + 0, 407, 408, 409, 410, 411, 0, 0, 0, 0, + 0, 0, 0, 0, 435, 436, 437, 438, 503, 504, + 505, 506, 507, 508, 509, 510, 374, 375, 500, 550, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 491, + 0, 465, 465, 465, 465, 465, 465, 465, 465, 0, + 0, 0, 0, 0, 0, 315, 317, 318, 319, 338, + 0, 340, 0, 0, 42, 46, 0, 775, 554, -2, + -2, 0, 0, 595, 596, -2, 701, -2, 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, 689, 690, 691, 692, + 693, 0, 78, 0, 0, 799, 0, 68, 0, 0, + 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, + 0, 230, 0, 232, 799, 799, 799, 799, 799, 799, + 799, 799, 241, 800, 801, 242, 243, 244, 799, 799, + 246, 0, 264, 260, 261, 0, 0, 259, 284, 285, + 29, 797, 23, 0, 0, 527, 0, 519, 520, 523, + 526, 28, 293, 0, 298, 297, 289, 0, 305, 0, + 0, 0, 309, 0, 311, 312, 0, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 391, 392, 393, 394, 395, - 396, 397, 370, 0, 384, 0, 0, 0, 426, 427, - 428, 429, 430, 431, 432, 0, 299, 28, 0, 404, - 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, - 491, 0, 456, 0, 457, 458, 459, 460, 461, 462, - 463, 0, 299, 0, 0, 44, 0, 355, 0, 0, - 0, 0, 0, 0, 344, 0, 0, 347, 0, 0, - 0, 0, 338, 0, 0, 358, 746, 340, 0, 342, - 343, -2, 0, 0, 0, 40, 41, 0, 47, 774, - 49, 50, 0, 0, 0, 159, 561, 562, 563, 559, - 190, 0, 142, 138, 84, 85, 86, 131, 88, 131, - 131, 131, 131, 156, 156, 156, 156, 114, 115, 116, - 117, 118, 0, 0, 101, 131, 131, 131, 105, 121, - 122, 123, 124, 125, 126, 127, 128, 89, 90, 91, - 92, 93, 94, 95, 133, 133, 133, 135, 135, 590, - 63, 0, 71, 0, 797, 0, 797, 76, 0, 206, - 0, 225, 567, 0, 797, 228, 229, 357, 598, 599, - 233, 234, 235, 236, 237, 238, 239, 240, 245, 249, - 0, 266, 0, 0, 253, 252, 530, 0, 0, 0, - 0, 0, 521, 523, 524, 529, 31, 295, 0, 510, - 0, 0, 0, 298, 26, 365, 366, 368, 385, 0, - 387, 389, 309, 305, 0, 500, -2, 375, 376, 400, - 401, 402, 0, 0, 0, 0, 398, 380, 0, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 425, 475, 476, 0, 423, 424, 433, 0, 0, - 300, 301, 403, 0, 548, 28, 0, 0, 0, 0, - 0, 499, 0, 0, 0, 0, 497, 494, 0, 0, - 465, 0, 0, 0, 0, 0, 0, 354, 362, 550, - 0, 315, 333, 335, 0, 330, 345, 346, 348, 0, - 350, 0, 352, 353, 319, 320, 321, 0, 0, 0, - 0, 341, 362, 0, 362, 43, 554, 48, 0, 0, - 53, 54, 555, 556, 557, 0, 77, 191, 193, 196, - 197, 198, 79, 80, 81, 0, 0, 188, 0, 0, - 0, 0, 0, 182, 183, 145, 143, 0, 140, 139, - 87, 0, 156, 156, 108, 109, 159, 0, 159, 159, - 159, 0, 0, 102, 103, 104, 96, 0, 97, 98, - 99, 0, 100, 0, 0, 797, 65, 0, 69, 70, - 66, 569, 67, 796, 0, 0, 582, 207, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 0, 224, - 797, 227, 263, 248, 0, 0, 264, 265, 0, 527, - 528, 0, 520, 24, 0, 564, 565, 511, 512, 312, - 386, 388, 390, 0, 299, 377, 398, 381, 0, 378, - 0, 0, 372, 438, 0, 0, 405, -2, 441, 442, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 517, - 0, 495, 0, 0, 455, 466, 467, 468, 469, 542, - 0, 0, -2, 0, 0, 517, 0, 0, 0, 327, - 334, 0, 0, 328, 0, 329, 349, 351, 0, 0, - 0, 0, 325, 517, 362, 39, 51, 52, 0, 0, - 58, 160, 0, 194, 0, 0, 0, 177, 0, 0, - 180, 181, 0, 152, 0, 144, 83, 141, 0, 159, - 159, 110, 0, 111, 112, 113, 0, 129, 0, 0, - 0, 0, 591, 64, 72, 73, 0, 199, 796, 0, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 796, 0, 0, 796, 583, 584, 585, 586, 0, - 226, 266, 267, 268, 531, 0, 25, 362, 0, 306, - 501, 0, 379, 0, 399, 382, 439, 302, 0, 131, - 131, 480, 131, 135, 483, 131, 485, 131, 488, 0, - 0, 0, 0, 500, 0, 0, 0, 492, 454, 498, - 0, 32, 0, 542, 532, 544, 546, 0, 28, 0, - 538, 0, 525, 551, 363, 552, 331, 0, 336, 0, - 0, 0, 339, 0, 525, 38, 55, 56, 57, 192, - 195, 0, 184, 131, 187, 178, 179, 0, 154, 0, - 146, 147, 148, 149, 150, 151, 132, 106, 107, 157, - 158, 156, 0, 156, 0, 136, 0, 797, 0, 0, - 200, 0, 201, 203, 204, 205, 0, 247, 513, 313, - 440, 383, 443, 477, 156, 481, 482, 484, 486, 487, - 489, 445, 444, 446, 0, 0, 449, 0, 0, 0, - 0, 0, 496, 0, 33, 0, 547, -2, 0, 0, - 0, 45, 36, 0, 323, 0, 0, 0, 358, 326, - 37, 169, 0, 186, 0, 161, 155, 0, 159, 130, - 159, 0, 0, 62, 74, 75, 0, 0, 515, 0, - 478, 479, 0, 0, 0, 0, 470, 453, 493, 0, - 545, 0, -2, 0, 540, 539, 0, 332, 359, 360, - 361, 322, 168, 170, 0, 175, 0, 185, 0, 166, - 0, 163, 165, 153, 119, 120, 134, 137, 0, 0, - 27, 0, 0, 447, 448, 450, 451, 0, 0, 0, - 0, 535, 28, 0, 324, 171, 172, 0, 176, 174, - 0, 82, 0, 162, 164, 68, 0, 220, 0, 516, - 514, 452, 0, 0, 0, 543, -2, 541, 173, 0, - 167, 71, 219, 0, 0, 471, 0, 474, 0, 202, - 221, 0, 472, 0, 0, 0, 189, 0, 0, 0, - 473, 0, 0, 222, 223, + 0, 0, 0, 0, 0, 0, 0, 392, 393, 394, + 395, 396, 397, 398, 371, 0, 385, 0, 0, 0, + 427, 428, 429, 430, 431, 432, 433, 0, 300, 28, + 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, + 296, 0, 492, 0, 457, 0, 458, 459, 460, 461, + 462, 463, 464, 0, 300, 0, 0, 44, 0, 356, + 0, 0, 0, 0, 0, 0, 345, 0, 0, 348, + 0, 0, 0, 0, 339, 0, 0, 359, 747, 341, + 0, 343, 344, -2, 0, 0, 0, 40, 41, 0, + 47, 775, 49, 50, 0, 0, 0, 159, 562, 563, + 564, 560, 190, 0, 142, 138, 84, 85, 86, 131, + 88, 131, 131, 131, 131, 156, 156, 156, 156, 114, + 115, 116, 117, 118, 0, 0, 101, 131, 131, 131, + 105, 121, 122, 123, 124, 125, 126, 127, 128, 89, + 90, 91, 92, 93, 94, 95, 133, 133, 133, 135, + 135, 591, 63, 0, 71, 0, 799, 0, 799, 76, + 0, 206, 0, 225, 568, 0, 799, 228, 229, 358, + 599, 600, 233, 234, 235, 236, 237, 238, 239, 240, + 245, 249, 0, 267, 0, 0, 253, 252, 531, 0, + 0, 0, 0, 0, 522, 524, 525, 530, 31, 296, + 0, 511, 0, 0, 0, 299, 26, 366, 367, 369, + 386, 0, 388, 390, 310, 306, 0, 501, -2, 376, + 377, 401, 402, 403, 0, 0, 0, 0, 399, 381, + 0, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 426, 476, 477, 0, 424, 425, 434, + 0, 0, 301, 302, 404, 0, 549, 28, 0, 0, + 0, 0, 0, 500, 0, 0, 0, 0, 498, 495, + 0, 0, 466, 0, 0, 0, 0, 0, 0, 355, + 363, 551, 0, 316, 334, 336, 0, 331, 346, 347, + 349, 0, 351, 0, 353, 354, 320, 321, 322, 0, + 0, 0, 0, 342, 363, 0, 363, 43, 555, 48, + 0, 0, 53, 54, 556, 557, 558, 0, 77, 191, + 193, 196, 197, 198, 79, 80, 81, 0, 0, 188, + 0, 0, 0, 0, 0, 182, 183, 145, 143, 0, + 140, 139, 87, 0, 156, 156, 108, 109, 159, 0, + 159, 159, 159, 0, 0, 102, 103, 104, 96, 0, + 97, 98, 99, 0, 100, 0, 0, 799, 65, 0, + 69, 70, 66, 570, 67, 798, 0, 0, 583, 207, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 0, 224, 799, 227, 264, 248, 0, 0, 265, 266, + 0, 528, 529, 0, 521, 24, 0, 565, 566, 512, + 513, 313, 387, 389, 391, 0, 300, 378, 399, 382, + 0, 379, 0, 0, 373, 439, 0, 0, 406, -2, + 442, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 518, 0, 496, 0, 0, 456, 467, 468, 469, + 470, 543, 0, 0, -2, 0, 0, 518, 0, 0, + 0, 328, 335, 0, 0, 329, 0, 330, 350, 352, + 0, 0, 0, 0, 326, 518, 363, 39, 51, 52, + 0, 0, 58, 160, 0, 194, 0, 0, 0, 177, + 0, 0, 180, 181, 0, 152, 0, 144, 83, 141, + 0, 159, 159, 110, 0, 111, 112, 113, 0, 129, + 0, 0, 0, 0, 592, 64, 72, 73, 0, 199, + 798, 0, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 798, 0, 0, 798, 584, 585, 586, + 587, 0, 226, 267, 268, 269, 532, 0, 25, 363, + 0, 307, 502, 0, 380, 0, 400, 383, 440, 303, + 0, 131, 131, 481, 131, 135, 484, 131, 486, 131, + 489, 0, 0, 0, 0, 501, 0, 0, 0, 493, + 455, 499, 0, 32, 0, 543, 533, 545, 547, 0, + 28, 0, 539, 0, 526, 552, 364, 553, 332, 0, + 337, 0, 0, 0, 340, 0, 526, 38, 55, 56, + 57, 192, 195, 0, 184, 131, 187, 178, 179, 0, + 154, 0, 146, 147, 148, 149, 150, 151, 132, 106, + 107, 157, 158, 156, 0, 156, 0, 136, 0, 799, + 0, 0, 200, 0, 201, 203, 204, 205, 0, 247, + 514, 314, 441, 384, 444, 478, 156, 482, 483, 485, + 487, 488, 490, 446, 445, 447, 0, 0, 450, 0, + 0, 0, 0, 0, 497, 0, 33, 0, 548, -2, + 0, 0, 0, 45, 36, 0, 324, 0, 0, 0, + 359, 327, 37, 169, 0, 186, 0, 161, 155, 0, + 159, 130, 159, 0, 0, 62, 74, 75, 0, 0, + 516, 0, 479, 480, 0, 0, 0, 0, 471, 454, + 494, 0, 546, 0, -2, 0, 541, 540, 0, 333, + 360, 361, 362, 323, 168, 170, 0, 175, 0, 185, + 0, 166, 0, 163, 165, 153, 119, 120, 134, 137, + 0, 0, 27, 0, 0, 448, 449, 451, 452, 0, + 0, 0, 0, 536, 28, 0, 325, 171, 172, 0, + 176, 174, 0, 82, 0, 162, 164, 68, 0, 220, + 0, 517, 515, 453, 0, 0, 0, 544, -2, 542, + 173, 0, 167, 71, 219, 0, 0, 472, 0, 475, + 0, 202, 221, 0, 473, 0, 0, 0, 189, 0, + 0, 0, 474, 0, 0, 222, 223, } var yyTok1 = [...]int{ @@ -2339,7 +2377,7 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 74, 3, 3, 3, 101, 93, 3, 54, 56, 98, 96, 55, 97, 111, 99, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 254, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 255, 82, 81, 83, 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, @@ -2373,7 +2411,7 @@ var yyTok2 = [...]int{ 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, 251, 252, 253, + 249, 250, 251, 252, 253, 254, } var yyTok3 = [...]int{ 0, @@ -4160,16 +4198,16 @@ yydefault: yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 258: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1461 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1455 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 259: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1467 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1465 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 260: yyDollar = yyS[yypt-1 : yypt+1] @@ -4178,28 +4216,28 @@ yydefault: yyVAL.str = string(yyDollar[1].bytes) } case 261: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1477 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1475 { - yyVAL.str = "" + yyVAL.str = string(yyDollar[1].bytes) } case 262: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1481 { - yyVAL.str = "full " + yyVAL.str = "" } case 263: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1487 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1485 { - yyVAL.str = "" + yyVAL.str = "full " } case 264: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1491 { - yyVAL.str = yyDollar[2].tableIdent.v + yyVAL.str = "" } case 265: yyDollar = yyS[yypt-2 : yypt+1] @@ -4208,82 +4246,82 @@ yydefault: yyVAL.str = yyDollar[2].tableIdent.v } case 266: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1501 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1499 { - yyVAL.showFilter = nil + yyVAL.str = yyDollar[2].tableIdent.v } case 267: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1505 { - yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} + yyVAL.showFilter = nil } case 268: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1509 { - yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} + yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } case 269: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1515 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1513 { - yyVAL.str = "" + yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } case 270: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1519 { - yyVAL.str = SessionStr + yyVAL.str = "" } case 271: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1523 { - yyVAL.str = GlobalStr + yyVAL.str = SessionStr } case 272: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1529 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1527 { - yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} + yyVAL.str = GlobalStr } case 273: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1533 { - yyVAL.statement = &Use{DBName: TableIdent{v: ""}} + yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1539 + //line sql.y:1537 { - yyVAL.statement = &Begin{} + yyVAL.statement = &Use{DBName: TableIdent{v: ""}} } case 275: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1543 { yyVAL.statement = &Begin{} } case 276: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1549 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1547 { - yyVAL.statement = &Commit{} + yyVAL.statement = &Begin{} } case 277: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1555 + //line sql.y:1553 { - yyVAL.statement = &Rollback{} + yyVAL.statement = &Commit{} } case 278: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1561 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1559 { - yyVAL.statement = &OtherRead{} + yyVAL.statement = &Rollback{} } case 279: yyDollar = yyS[yypt-2 : yypt+1] @@ -4301,7 +4339,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1573 { - yyVAL.statement = &OtherAdmin{} + yyVAL.statement = &OtherRead{} } case 282: yyDollar = yyS[yypt-2 : yypt+1] @@ -4310,7 +4348,7 @@ yydefault: yyVAL.statement = &OtherAdmin{} } case 283: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1581 { yyVAL.statement = &OtherAdmin{} @@ -4322,246 +4360,246 @@ yydefault: yyVAL.statement = &OtherAdmin{} } case 285: + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1589 + { + yyVAL.statement = &OtherAdmin{} + } + case 286: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1590 + //line sql.y:1594 { setAllowComments(yylex, true) } - case 286: + case 287: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1594 + //line sql.y:1598 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } - case 287: + case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1600 + //line sql.y:1604 { yyVAL.bytes2 = nil } - case 288: + case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1604 + //line sql.y:1608 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } - case 289: + case 290: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1610 + //line sql.y:1614 { yyVAL.str = UnionStr } - case 290: + case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1614 + //line sql.y:1618 { yyVAL.str = UnionAllStr } - case 291: + case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1618 + //line sql.y:1622 { yyVAL.str = UnionDistinctStr } - case 292: + case 293: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1623 + //line sql.y:1627 { yyVAL.str = "" } - case 293: + case 294: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1627 + //line sql.y:1631 { yyVAL.str = SQLNoCacheStr } - case 294: + case 295: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1631 + //line sql.y:1635 { yyVAL.str = SQLCacheStr } - case 295: + case 296: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1636 + //line sql.y:1640 { yyVAL.str = "" } - case 296: + case 297: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1640 + //line sql.y:1644 { yyVAL.str = DistinctStr } - case 297: + case 298: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1645 + //line sql.y:1649 { yyVAL.str = "" } - case 298: + case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1649 + //line sql.y:1653 { yyVAL.str = StraightJoinHint } - case 299: + case 300: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1654 + //line sql.y:1658 { yyVAL.selectExprs = nil } - case 300: + case 301: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1658 + //line sql.y:1662 { yyVAL.selectExprs = yyDollar[1].selectExprs } - case 301: + case 302: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1664 + //line sql.y:1668 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } - case 302: + case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1668 + //line sql.y:1672 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } - case 303: + case 304: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1674 + //line sql.y:1678 { yyVAL.selectExpr = &StarExpr{} } - case 304: + case 305: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1678 + //line sql.y:1682 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } - case 305: + case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1682 + //line sql.y:1686 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } - case 306: + case 307: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1686 + //line sql.y:1690 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } - case 307: + case 308: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1691 + //line sql.y:1695 { yyVAL.colIdent = ColIdent{} } - case 308: + case 309: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1695 + //line sql.y:1699 { yyVAL.colIdent = yyDollar[1].colIdent } - case 309: + case 310: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1699 + //line sql.y:1703 { yyVAL.colIdent = yyDollar[2].colIdent } - case 311: + case 312: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1706 + //line sql.y:1710 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 312: + case 313: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1711 + //line sql.y:1715 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } - case 313: + case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1715 + //line sql.y:1719 { yyVAL.tableExprs = yyDollar[2].tableExprs } - case 314: + case 315: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1721 + //line sql.y:1725 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } - case 315: + case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1725 + //line sql.y:1729 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } - case 318: + case 319: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1735 + //line sql.y:1739 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } - case 319: + case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1739 + //line sql.y:1743 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } - case 320: + case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1743 + //line sql.y:1747 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } - case 321: + case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1749 + //line sql.y:1753 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } - case 322: + case 323: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1753 + //line sql.y:1757 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} } - case 323: + case 324: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1759 + //line sql.y:1763 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 324: + case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1763 + //line sql.y:1767 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 325: + case 326: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1769 + //line sql.y:1773 { yyVAL.partitions = Partitions{yyDollar[1].colIdent} } - case 326: + case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1773 + //line sql.y:1777 { yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } - case 327: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1786 - { - yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} - } case 328: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1790 @@ -4575,91 +4613,91 @@ yydefault: yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 330: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1798 { - yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} + yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 331: + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1802 + { + yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} + } + case 332: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1804 + //line sql.y:1808 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 332: + case 333: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1806 + //line sql.y:1810 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } - case 333: + case 334: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1810 + //line sql.y:1814 { yyVAL.joinCondition = JoinCondition{} } - case 334: + case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1812 + //line sql.y:1816 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 335: + case 336: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1816 + //line sql.y:1820 { yyVAL.joinCondition = JoinCondition{} } - case 336: + case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1818 + //line sql.y:1822 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 337: + case 338: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1821 + //line sql.y:1825 { yyVAL.empty = struct{}{} } - case 338: + case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1823 + //line sql.y:1827 { yyVAL.empty = struct{}{} } - case 339: + case 340: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1826 + //line sql.y:1830 { yyVAL.tableIdent = NewTableIdent("") } - case 340: + case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1830 + //line sql.y:1834 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 341: + case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1834 + //line sql.y:1838 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 343: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1841 - { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) - } case 344: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1847 + //line sql.y:1845 { - yyVAL.str = JoinStr + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 345: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1851 { yyVAL.str = JoinStr @@ -4671,44 +4709,50 @@ yydefault: yyVAL.str = JoinStr } case 347: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1861 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1859 { - yyVAL.str = StraightJoinStr + yyVAL.str = JoinStr } case 348: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1867 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1865 { - yyVAL.str = LeftJoinStr + yyVAL.str = StraightJoinStr } case 349: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1871 { yyVAL.str = LeftJoinStr } case 350: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1875 { - yyVAL.str = RightJoinStr + yyVAL.str = LeftJoinStr } case 351: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1879 { yyVAL.str = RightJoinStr } case 352: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1885 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1883 { - yyVAL.str = NaturalJoinStr + yyVAL.str = RightJoinStr } case 353: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1889 + { + yyVAL.str = NaturalJoinStr + } + case 354: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1893 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -4716,401 +4760,395 @@ yydefault: yyVAL.str = NaturalRightJoinStr } } - case 354: + case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1899 + //line sql.y:1903 { yyVAL.tableName = yyDollar[2].tableName } - case 355: + case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1903 + //line sql.y:1907 { yyVAL.tableName = yyDollar[1].tableName } - case 356: + case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1909 + //line sql.y:1913 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 357: + case 358: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1913 + //line sql.y:1917 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 358: + case 359: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1918 + //line sql.y:1922 { yyVAL.indexHints = nil } - case 359: + case 360: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1922 + //line sql.y:1926 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } - case 360: + case 361: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1926 + //line sql.y:1930 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } - case 361: + case 362: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1930 + //line sql.y:1934 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } - case 362: + case 363: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1935 + //line sql.y:1939 { yyVAL.expr = nil } - case 363: + case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1939 + //line sql.y:1943 { yyVAL.expr = yyDollar[2].expr } - case 364: + case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1945 + //line sql.y:1949 { yyVAL.expr = yyDollar[1].expr } - case 365: + case 366: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1949 + //line sql.y:1953 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 366: + case 367: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1953 + //line sql.y:1957 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 367: + case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1957 + //line sql.y:1961 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } - case 368: + case 369: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1961 + //line sql.y:1965 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } - case 369: + case 370: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1965 + //line sql.y:1969 { yyVAL.expr = yyDollar[1].expr } - case 370: + case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1969 + //line sql.y:1973 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } - case 371: + case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1975 + //line sql.y:1979 { yyVAL.str = "" } - case 372: + case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1979 + //line sql.y:1983 { yyVAL.str = string(yyDollar[2].bytes) } - case 373: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1985 - { - yyVAL.boolVal = BoolVal(true) - } case 374: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1989 { - yyVAL.boolVal = BoolVal(false) + yyVAL.boolVal = BoolVal(true) } case 375: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1995 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1993 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} + yyVAL.boolVal = BoolVal(false) } case 376: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1999 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } case 377: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2003 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } case 378: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2007 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } case 379: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2011 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } case 380: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:2015 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } case 381: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2019 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } case 382: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2023 { - yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } case 383: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:2027 { - yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} + yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } case 384: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2031 { - yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} + yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } case 385: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2037 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2035 { - yyVAL.str = IsNullStr + yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } case 386: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2041 { - yyVAL.str = IsNotNullStr + yyVAL.str = IsNullStr } case 387: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2045 { - yyVAL.str = IsTrueStr + yyVAL.str = IsNotNullStr } case 388: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2049 { - yyVAL.str = IsNotTrueStr + yyVAL.str = IsTrueStr } case 389: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2053 { - yyVAL.str = IsFalseStr + yyVAL.str = IsNotTrueStr } case 390: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2057 { - yyVAL.str = IsNotFalseStr + yyVAL.str = IsFalseStr } case 391: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2063 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2061 { - yyVAL.str = EqualStr + yyVAL.str = IsNotFalseStr } case 392: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2067 { - yyVAL.str = LessThanStr + yyVAL.str = EqualStr } case 393: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2071 { - yyVAL.str = GreaterThanStr + yyVAL.str = LessThanStr } case 394: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2075 { - yyVAL.str = LessEqualStr + yyVAL.str = GreaterThanStr } case 395: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2079 { - yyVAL.str = GreaterEqualStr + yyVAL.str = LessEqualStr } case 396: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2083 { - yyVAL.str = NotEqualStr + yyVAL.str = GreaterEqualStr } case 397: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2087 { - yyVAL.str = NullSafeEqualStr + yyVAL.str = NotEqualStr } case 398: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2092 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2091 { - yyVAL.expr = nil + yyVAL.str = NullSafeEqualStr } case 399: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2096 { - yyVAL.expr = yyDollar[2].expr + yyVAL.expr = nil } case 400: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2102 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2100 { - yyVAL.colTuple = yyDollar[1].valTuple + yyVAL.expr = yyDollar[2].expr } case 401: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2106 { - yyVAL.colTuple = yyDollar[1].subquery + yyVAL.colTuple = yyDollar[1].valTuple } case 402: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2110 { - yyVAL.colTuple = ListArg(yyDollar[1].bytes) + yyVAL.colTuple = yyDollar[1].subquery } case 403: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2116 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2114 { - yyVAL.subquery = &Subquery{yyDollar[2].selStmt} + yyVAL.colTuple = ListArg(yyDollar[1].bytes) } case 404: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2122 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2120 { - yyVAL.exprs = Exprs{yyDollar[1].expr} + yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } case 405: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2126 { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) + yyVAL.exprs = Exprs{yyDollar[1].expr} } case 406: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2132 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2130 { - yyVAL.expr = yyDollar[1].expr + yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } case 407: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2136 { - yyVAL.expr = yyDollar[1].boolVal + yyVAL.expr = yyDollar[1].expr } case 408: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2140 { - yyVAL.expr = yyDollar[1].colName + yyVAL.expr = yyDollar[1].boolVal } case 409: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2144 { - yyVAL.expr = yyDollar[1].expr + yyVAL.expr = yyDollar[1].colName } case 410: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2148 { - yyVAL.expr = yyDollar[1].subquery + yyVAL.expr = yyDollar[1].expr } case 411: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2152 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} + yyVAL.expr = yyDollar[1].subquery } case 412: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2156 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } case 413: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2160 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } case 414: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2164 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } case 415: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2168 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } case 416: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2172 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } case 417: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2176 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } case 418: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2180 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } case 419: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2184 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } case 420: yyDollar = yyS[yypt-3 : yypt+1] @@ -5122,53 +5160,59 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2192 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 422: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2196 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } case 423: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2200 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } case 424: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2204 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } case 425: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2208 { - yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } case 426: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2212 { - yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} + yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } case 427: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2216 { - yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} + yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } case 428: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2220 { - yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr} + yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} } case 429: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2224 + { + yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr} + } + case 430: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2228 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -5176,9 +5220,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 430: + case 431: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2232 + //line sql.y:2236 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -5192,21 +5236,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 431: + case 432: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2246 + //line sql.y:2250 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 432: + case 433: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2250 + //line sql.y:2254 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 433: + case 434: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2254 + //line sql.y:2258 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -5214,41 +5258,35 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} } - case 438: + case 439: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2272 + //line sql.y:2276 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 439: + case 440: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2276 + //line sql.y:2280 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 440: + case 441: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2280 + //line sql.y:2284 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 441: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2290 - { - yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} - } case 442: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2294 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } case 443: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2298 { - yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} + yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } case 444: yyDollar = yyS[yypt-6 : yypt+1] @@ -5260,19 +5298,19 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2306 { - yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} + yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 446: yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2310 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} + yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } case 447: - yyDollar = yyS[yypt-8 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2314 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 448: yyDollar = yyS[yypt-8 : yypt+1] @@ -5281,16 +5319,16 @@ yydefault: yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 449: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-8 : yypt+1] //line sql.y:2322 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 450: - yyDollar = yyS[yypt-8 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2326 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 451: yyDollar = yyS[yypt-8 : yypt+1] @@ -5299,136 +5337,136 @@ yydefault: yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 452: - yyDollar = yyS[yypt-9 : yypt+1] + yyDollar = yyS[yypt-8 : yypt+1] //line sql.y:2334 { - yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 453: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-9 : yypt+1] //line sql.y:2338 { - yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} + yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } case 454: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-7 : yypt+1] //line sql.y:2342 { - yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} + yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } case 455: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:2346 { - yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} + yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } case 456: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2356 + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:2350 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} + yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } case 457: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2360 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } case 458: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2364 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } case 459: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2368 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } case 460: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2373 + //line sql.y:2372 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } case 461: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2378 + //line sql.y:2377 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2383 + //line sql.y:2382 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } case 463: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2388 + //line sql.y:2387 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 466: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2402 + case 464: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2392 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } case 467: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2406 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } case 468: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2410 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } case 469: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2414 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } case 470: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2420 + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:2418 { - yyVAL.str = "" + yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } case 471: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2424 { - yyVAL.str = BooleanModeStr + yyVAL.str = "" } case 472: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2428 { - yyVAL.str = NaturalLanguageModeStr + yyVAL.str = BooleanModeStr } case 473: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2432 { - yyVAL.str = NaturalLanguageModeWithQueryExpansionStr + yyVAL.str = NaturalLanguageModeStr } case 474: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-7 : yypt+1] //line sql.y:2436 { - yyVAL.str = QueryExpansionStr + yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } case 475: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2442 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2440 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.str = QueryExpansionStr } case 476: yyDollar = yyS[yypt-1 : yypt+1] @@ -5437,63 +5475,63 @@ yydefault: yyVAL.str = string(yyDollar[1].bytes) } case 477: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2452 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2450 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.str = string(yyDollar[1].bytes) } case 478: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2456 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 479: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2460 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } case 480: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2464 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } case 481: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2468 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 482: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2472 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} - yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 483: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2478 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2476 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale } case 484: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2482 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 485: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2486 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 486: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2490 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} @@ -5502,143 +5540,149 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2494 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 488: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2498 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 489: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2502 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 490: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2506 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + } + case 491: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2507 + //line sql.y:2511 { yyVAL.expr = nil } - case 491: + case 492: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2511 + //line sql.y:2515 { yyVAL.expr = yyDollar[1].expr } - case 492: + case 493: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2516 + //line sql.y:2520 { yyVAL.str = string("") } - case 493: + case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2520 + //line sql.y:2524 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 494: + case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2526 + //line sql.y:2530 { yyVAL.whens = []*When{yyDollar[1].when} } - case 495: + case 496: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2530 + //line sql.y:2534 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 496: + case 497: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2536 + //line sql.y:2540 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 497: + case 498: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2541 + //line sql.y:2545 { yyVAL.expr = nil } - case 498: + case 499: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2545 + //line sql.y:2549 { yyVAL.expr = yyDollar[2].expr } - case 499: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2551 - { - yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} - } case 500: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2555 { - yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} + yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } case 501: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2559 { - yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} + yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } case 502: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2565 + yyDollar = yyS[yypt-5 : yypt+1] + //line sql.y:2563 { - yyVAL.expr = NewStrVal(yyDollar[1].bytes) + yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } case 503: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2569 { - yyVAL.expr = NewHexVal(yyDollar[1].bytes) + yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 504: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2573 { - yyVAL.expr = NewBitVal(yyDollar[1].bytes) + yyVAL.expr = NewHexVal(yyDollar[1].bytes) } case 505: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2577 { - yyVAL.expr = NewIntVal(yyDollar[1].bytes) + yyVAL.expr = NewBitVal(yyDollar[1].bytes) } case 506: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2581 { - yyVAL.expr = NewFloatVal(yyDollar[1].bytes) + yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 507: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2585 { - yyVAL.expr = NewHexNum(yyDollar[1].bytes) + yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } case 508: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2589 { - yyVAL.expr = NewValArg(yyDollar[1].bytes) + yyVAL.expr = NewHexNum(yyDollar[1].bytes) } case 509: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2593 { - yyVAL.expr = &NullVal{} + yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 510: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2599 + //line sql.y:2597 + { + yyVAL.expr = &NullVal{} + } + case 511: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2603 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5647,239 +5691,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 511: + case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2608 + //line sql.y:2612 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 512: + case 513: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2612 + //line sql.y:2616 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 513: + case 514: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2617 + //line sql.y:2621 { yyVAL.exprs = nil } - case 514: + case 515: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2621 + //line sql.y:2625 { yyVAL.exprs = yyDollar[3].exprs } - case 515: + case 516: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2626 + //line sql.y:2630 { yyVAL.expr = nil } - case 516: + case 517: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2630 + //line sql.y:2634 { yyVAL.expr = yyDollar[2].expr } - case 517: + case 518: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2635 + //line sql.y:2639 { yyVAL.orderBy = nil } - case 518: + case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2639 + //line sql.y:2643 { yyVAL.orderBy = yyDollar[3].orderBy } - case 519: + case 520: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2645 + //line sql.y:2649 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 520: + case 521: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2649 + //line sql.y:2653 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 521: + case 522: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2655 + //line sql.y:2659 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 522: + case 523: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2660 + //line sql.y:2664 { yyVAL.str = AscScr } - case 523: + case 524: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2664 + //line sql.y:2668 { yyVAL.str = AscScr } - case 524: + case 525: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2668 + //line sql.y:2672 { yyVAL.str = DescScr } - case 525: + case 526: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2673 + //line sql.y:2677 { yyVAL.limit = nil } - case 526: + case 527: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2677 + //line sql.y:2681 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 527: + case 528: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2681 + //line sql.y:2685 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 528: + case 529: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2685 + //line sql.y:2689 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 529: + case 530: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2690 + //line sql.y:2694 { yyVAL.str = "" } - case 530: + case 531: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2694 + //line sql.y:2698 { yyVAL.str = ForUpdateStr } - case 531: + case 532: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2698 + //line sql.y:2702 { yyVAL.str = ShareModeStr } - case 532: + case 533: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2711 + //line sql.y:2715 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 533: + case 534: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2715 + //line sql.y:2719 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 534: + case 535: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2719 + //line sql.y:2723 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 535: + case 536: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2724 + //line sql.y:2728 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 536: + case 537: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2728 + //line sql.y:2732 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 537: + case 538: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2732 + //line sql.y:2736 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 538: + case 539: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2739 + //line sql.y:2743 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 539: + case 540: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2743 + //line sql.y:2747 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 540: + case 541: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2747 + //line sql.y:2751 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 541: + case 542: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2751 + //line sql.y:2755 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 542: + case 543: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2756 + //line sql.y:2760 { yyVAL.updateExprs = nil } - case 543: + case 544: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2760 + //line sql.y:2764 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 544: + case 545: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2766 + //line sql.y:2770 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 545: + case 546: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2770 + //line sql.y:2774 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 546: + case 547: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2776 + //line sql.y:2780 { yyVAL.valTuple = yyDollar[1].valTuple } - case 547: + case 548: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2780 + //line sql.y:2784 { yyVAL.valTuple = ValTuple{} } - case 548: + case 549: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2786 + //line sql.y:2790 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 549: + case 550: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2792 + //line sql.y:2796 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5887,189 +5931,183 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 550: + case 551: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2802 + //line sql.y:2806 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 551: + case 552: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2806 + //line sql.y:2810 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 552: + case 553: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2812 + //line sql.y:2816 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 553: + case 554: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2818 + //line sql.y:2822 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 554: + case 555: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2822 + //line sql.y:2826 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 555: + case 556: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2828 + //line sql.y:2832 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 556: + case 557: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2832 + //line sql.y:2836 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 557: + case 558: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2836 + //line sql.y:2840 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 559: + case 560: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2843 + //line sql.y:2847 { yyVAL.bytes = []byte("charset") } - case 561: + case 562: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2850 + //line sql.y:2854 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 562: + case 563: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2854 + //line sql.y:2858 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 563: + case 564: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2858 + //line sql.y:2862 { yyVAL.expr = &Default{} } - case 566: + case 567: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2867 + //line sql.y:2871 { yyVAL.byt = 0 } - case 567: + case 568: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2869 + //line sql.y:2873 { yyVAL.byt = 1 } - case 568: + case 569: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2872 + //line sql.y:2876 { yyVAL.empty = struct{}{} } - case 569: + case 570: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2874 + //line sql.y:2878 { yyVAL.empty = struct{}{} } - case 570: + case 571: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2877 + //line sql.y:2881 { yyVAL.str = "" } - case 571: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2879 - { - yyVAL.str = IgnoreStr - } case 572: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2883 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 573: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2885 + //line sql.y:2887 { yyVAL.empty = struct{}{} } case 574: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2887 + //line sql.y:2889 { yyVAL.empty = struct{}{} } case 575: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2889 + //line sql.y:2891 { yyVAL.empty = struct{}{} } case 576: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2891 + //line sql.y:2893 { yyVAL.empty = struct{}{} } case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2893 + //line sql.y:2895 { yyVAL.empty = struct{}{} } case 578: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2895 + //line sql.y:2897 { yyVAL.empty = struct{}{} } case 579: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2897 + //line sql.y:2899 { yyVAL.empty = struct{}{} } case 580: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2899 + //line sql.y:2901 { yyVAL.empty = struct{}{} } case 581: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2901 + //line sql.y:2903 { yyVAL.empty = struct{}{} } case 582: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2904 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2905 { yyVAL.empty = struct{}{} } case 583: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2906 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2908 { yyVAL.empty = struct{}{} } case 584: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2908 + //line sql.y:2910 { yyVAL.empty = struct{}{} } @@ -6081,45 +6119,45 @@ yydefault: } case 586: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2914 + //line sql.y:2916 { yyVAL.empty = struct{}{} } case 587: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2917 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2918 { yyVAL.empty = struct{}{} } case 588: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2919 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2921 { yyVAL.empty = struct{}{} } case 589: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2921 + //line sql.y:2923 { yyVAL.empty = struct{}{} } case 590: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2924 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2925 { - yyVAL.colIdent = ColIdent{} + yyVAL.empty = struct{}{} } case 591: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2926 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2928 { - yyVAL.colIdent = yyDollar[2].colIdent + yyVAL.colIdent = ColIdent{} } case 592: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2930 { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = yyDollar[2].colIdent } case 593: yyDollar = yyS[yypt-1 : yypt+1] @@ -6127,17 +6165,17 @@ yydefault: { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 595: + case 594: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2941 + //line sql.y:2938 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 596: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2947 + //line sql.y:2945 { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 597: yyDollar = yyS[yypt-1 : yypt+1] @@ -6145,48 +6183,54 @@ yydefault: { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 599: + case 598: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2958 + //line sql.y:2955 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 794: + case 600: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3178 + //line sql.y:2962 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + } + case 796: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3183 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 795: + case 797: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3187 + //line sql.y:3192 { decNesting(yylex) } - case 796: + case 798: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3192 + //line sql.y:3197 { forceEOF(yylex) } - case 797: + case 799: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3197 + //line sql.y:3202 { forceEOF(yylex) } - case 798: + case 800: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3201 + //line sql.y:3206 { forceEOF(yylex) } - case 799: + case 801: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3205 + //line sql.y:3210 { forceEOF(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index b8bd85f8e24..29b09037070 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -177,7 +177,7 @@ func forceEOF(yylex interface{}) { %token NULLX AUTO_INCREMENT APPROXNUM SIGNED UNSIGNED ZEROFILL // Supported SHOW tokens -%token COLLATION DATABASES TABLES VITESS_KEYSPACES VITESS_SHARDS VITESS_TABLETS VSCHEMA_TABLES FULL PROCESSLIST COLUMNS +%token COLLATION DATABASES TABLES VITESS_KEYSPACES VITESS_SHARDS VITESS_TABLETS VSCHEMA_TABLES VITESS_TARGET FULL PROCESSLIST COLUMNS // SET tokens %token NAMES CHARSET GLOBAL SESSION ISOLATION LEVEL READ WRITE ONLY REPEATABLE COMMITTED UNCOMMITTED SERIALIZABLE @@ -1447,6 +1447,10 @@ show_statement: { $$ = &Show{Type: string($2)} } +| SHOW VITESS_TARGET + { + $$ = &Show{Type: string($2)} + } | SHOW VSCHEMA_TABLES { $$ = &Show{Type: string($2)} @@ -3168,6 +3172,7 @@ non_reserved_keyword: | VITESS_SHARDS | VITESS_TABLETS | VSCHEMA_TABLES +| VITESS_TARGET | WITH | WRITE | YEAR diff --git a/go/vt/sqlparser/token.go b/go/vt/sqlparser/token.go index 34bcebc9e5d..24a2c5740fc 100644 --- a/go/vt/sqlparser/token.go +++ b/go/vt/sqlparser/token.go @@ -384,6 +384,7 @@ var keywords = map[string]int{ "vitess_keyspaces": VITESS_KEYSPACES, "vitess_shards": VITESS_SHARDS, "vitess_tablets": VITESS_TABLETS, + "vitess_target": VITESS_TARGET, "vschema_tables": VSCHEMA_TABLES, "when": WHEN, "where": WHERE, diff --git a/go/vt/vtgate/executor.go b/go/vt/vtgate/executor.go index 3d85027ecc7..d55731c1257 100644 --- a/go/vt/vtgate/executor.go +++ b/go/vt/vtgate/executor.go @@ -822,6 +822,14 @@ func (e *Executor) handleShow(ctx context.Context, safeSession *SafeSession, sql Rows: rows, RowsAffected: uint64(len(rows)), }, nil + case sqlparser.KeywordString(sqlparser.VITESS_TARGET): + var rows [][]sqltypes.Value + rows = append(rows, buildVarCharRow(safeSession.TargetString)) + return &sqltypes.Result{ + Fields: buildVarCharFields("Target"), + Rows: rows, + RowsAffected: uint64(len(rows)), + }, nil case sqlparser.KeywordString(sqlparser.VSCHEMA_TABLES): if destKeyspace == "" { return nil, errNoKeyspace